Dockerfile CHANGED
@@ -28,7 +28,6 @@ COPY . .
28
  # ENV NEXT_TELEMETRY_DISABLED 1
29
 
30
  ENV NEXT_PUBLIC_CHAT_API https://praneeth-hakeem-patrick-backend.hf.space/api/chat
31
- ENV NEXT_PUBLIC_BASE_URL=https://praneeth-hakeem-patrick-backend.hf.space
32
 
33
  RUN \
34
  if [ -f yarn.lock ]; then yarn run build; \
 
28
  # ENV NEXT_TELEMETRY_DISABLED 1
29
 
30
  ENV NEXT_PUBLIC_CHAT_API https://praneeth-hakeem-patrick-backend.hf.space/api/chat
 
31
 
32
  RUN \
33
  if [ -f yarn.lock ]; then yarn run build; \
app/(auth)/login/page.tsx DELETED
@@ -1,69 +0,0 @@
1
- 'use client';
2
- import React from 'react';
3
- import { Form, Input, Button, Checkbox, Typography, Layout, FormProps } from 'antd';
4
- import './styles.css';
5
- import { useRouter } from 'next/navigation';
6
-
7
- const { Title } = Typography;
8
- const { Content } = Layout;
9
-
10
- type FieldType = {
11
- username?: string;
12
- password?: string;
13
- remember?: string;
14
- };
15
-
16
- const LoginPage = () => {
17
- const router = useRouter();
18
- const onFinish: FormProps<FieldType>['onFinish'] = (values) => {
19
- console.log('Success:', values);
20
- router.push('/dashboard');
21
- };
22
-
23
- const onFinishFailed: FormProps<FieldType>['onFinishFailed'] = (errorInfo) => {
24
- console.log('Failed:', errorInfo);
25
- };
26
-
27
- return (
28
- <Layout className="layout">
29
- <Content className="content">
30
- <div className="login-container">
31
- <Title level={2}>Login</Title>
32
- <Form
33
- name="basic"
34
- initialValues={{ remember: true }}
35
- onFinish={onFinish}
36
- onFinishFailed={onFinishFailed}
37
- autoComplete="off"
38
- >
39
- <Form.Item
40
- name="username"
41
- rules={[{ required: true, message: 'Please input your username!' }]}
42
- >
43
- <Input placeholder="Username" />
44
- </Form.Item>
45
-
46
- <Form.Item
47
- name="password"
48
- rules={[{ required: true, message: 'Please input your password!' }]}
49
- >
50
- <Input.Password placeholder="Password" />
51
- </Form.Item>
52
-
53
- <Form.Item name="remember" valuePropName="checked">
54
- <Checkbox>Remember me</Checkbox>
55
- </Form.Item>
56
-
57
- <Form.Item>
58
- <Button type="primary" htmlType="submit" block>
59
- Log in
60
- </Button>
61
- </Form.Item>
62
- </Form>
63
- </div>
64
- </Content>
65
- </Layout>
66
- );
67
- };
68
-
69
- export default LoginPage;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/(auth)/login/styles.css DELETED
@@ -1,26 +0,0 @@
1
- .layout {
2
- min-height: 100vh;
3
- display: flex;
4
- justify-content: center;
5
- align-items: center;
6
- background-color: #f0f2f5; /* Optional: Change the background color as needed */
7
- }
8
-
9
- .content {
10
- width: 100%;
11
- max-height: 450px;
12
- max-width: 400px;
13
- padding: 24px;
14
- background: white;
15
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
16
- border-radius: 8px; /* Optional: Add border radius for rounded corners */
17
- }
18
-
19
- .login-container {
20
- width: 100%;
21
- text-align: center;
22
- }
23
-
24
- .login-container .ant-typography {
25
- margin-bottom: 24px;
26
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/(home)/dashboard/page.tsx DELETED
@@ -1,72 +0,0 @@
1
- 'use client';
2
- import { Button, Table, Upload, message } from "antd";
3
- import { UploadOutlined } from '@ant-design/icons';
4
- import React, { useEffect, useState } from "react";
5
- import { UploadProps } from "antd/es/upload";
6
- import { fielUploadEndpoint, transactionsEndpoint } from "@/app/lib/endpoints";
7
-
8
- const props: UploadProps = {
9
- name: 'upload_file',
10
- action: fielUploadEndpoint,
11
- onChange(info) {
12
- if (info.file.status !== 'uploading') {
13
- console.log(info.file, info.fileList);
14
- }
15
- if (info.file.status === 'done') {
16
- message.success(`${info.file.name} file uploaded successfully`);
17
- } else if (info.file.status === 'error') {
18
- message.error(`${info.file.name} file upload failed.`);
19
- }
20
- },
21
- };
22
-
23
- const Dashboard = () => {
24
- const [transactions, setTransactions] = useState([]);
25
- useEffect(() => {
26
- (async () => {
27
- const resp = await fetch(transactionsEndpoint);
28
- const t = await resp.json();
29
- setTransactions(t);
30
- })();
31
- }, []);
32
- const columns = [
33
- {
34
- title: 'Date',
35
- dataIndex: 'transaction_date',
36
- key: 'date',
37
- },
38
- {
39
- title: 'Description',
40
- dataIndex: 'name_description',
41
- key: 'description',
42
- },
43
- {
44
- title: 'Amount',
45
- dataIndex: 'amount',
46
- key: 'amount',
47
- },
48
- {
49
- title: 'Category',
50
- dataIndex: 'category',
51
- key: 'category',
52
- },
53
- {
54
- title: 'Type',
55
- dataIndex: 'type',
56
- key: 'type',
57
- },
58
- ];
59
-
60
-
61
-
62
- return (
63
- <div style={{ display: 'flex', flexDirection: 'column', gap: '1rem' }}>
64
- <Upload {...props}>
65
- <Button icon={<UploadOutlined />}>Click to Upload</Button>
66
- </Upload>
67
- <Table dataSource={transactions} columns={columns} />
68
- </div>
69
- );
70
- }
71
-
72
- export default Dashboard;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/(home)/layout.tsx DELETED
@@ -1,98 +0,0 @@
1
- 'use client';
2
- import React, { useState } from "react";
3
- import {
4
- MenuFoldOutlined,
5
- MenuUnfoldOutlined,
6
- AuditOutlined,
7
- DashboardOutlined,
8
- DatabaseOutlined,
9
- } from '@ant-design/icons';
10
- import { Button, Layout, Menu, theme } from 'antd';
11
- import { useRouter } from "next/navigation";
12
- import TopBar from "../components/Topbar";
13
- const { Header, Sider, Content } = Layout;
14
-
15
- const Dashboard = ({
16
- children,
17
- }: {
18
- children: React.ReactNode;
19
- }) => {
20
- const [collapsed, setCollapsed] = useState(false);
21
- const {
22
- token: { colorBgContainer, borderRadiusLG },
23
- } = theme.useToken();
24
- const router = useRouter();
25
- function handleNav(route: string) {
26
- router.push(route);
27
- }
28
- return (
29
- <>
30
- <TopBar />
31
- <main className="flex min-h-screen flex-col">
32
- <Layout>
33
- <Sider trigger={null} collapsible collapsed={collapsed}>
34
- <div className="demo-logo-vertical" />
35
- <Menu
36
- theme="dark"
37
- mode="inline"
38
- defaultSelectedKeys={['1']}
39
- items={[
40
- {
41
- key: '1',
42
- icon: <DashboardOutlined />,
43
- label: 'Dashboard',
44
- onClick: () => {
45
- handleNav('/dashboard');
46
- }
47
- },
48
- {
49
- key: '2',
50
- icon: <DatabaseOutlined />,
51
- label: 'My Data',
52
- onClick: () => {
53
- handleNav('/mydata');
54
- }
55
- },
56
- {
57
- key: '3',
58
- icon: <AuditOutlined />,
59
- label: 'Reports',
60
- onClick: () => {
61
- handleNav('/reports');
62
- }
63
- },
64
- ]}
65
- />
66
- </Sider>
67
- <Layout>
68
- <Header style={{ padding: 0, background: colorBgContainer }}>
69
- <Button
70
- type="text"
71
- icon={collapsed ? <MenuUnfoldOutlined /> : <MenuFoldOutlined />}
72
- onClick={() => setCollapsed(!collapsed)}
73
- style={{
74
- fontSize: '16px',
75
- width: 64,
76
- height: 64,
77
- }}
78
- />
79
- </Header>
80
- <Content
81
- style={{
82
- margin: '24px 16px',
83
- padding: 24,
84
- minHeight: 280,
85
- background: colorBgContainer,
86
- borderRadius: borderRadiusLG,
87
- }}
88
- >
89
- {children}
90
- </Content>
91
- </Layout>
92
- </Layout>
93
- </main >
94
- </>
95
- );
96
- }
97
-
98
- export default Dashboard;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/(home)/mydata/page.tsx DELETED
@@ -1,9 +0,0 @@
1
- 'use client';
2
- import React from "react";
3
- const Dashboard = () => {
4
- return (
5
- <div>mydata route</div>
6
- );
7
- }
8
-
9
- export default Dashboard;
 
 
 
 
 
 
 
 
 
 
app/(home)/reports/page.tsx DELETED
@@ -1,110 +0,0 @@
1
- 'use client';
2
- import { createIncomeStatementEndpoint, incomeStatements } from "@/app/lib/endpoints";
3
- import moment from "moment";
4
- import { Button, List, Modal, DatePicker, message } from "antd";
5
- import React, { Suspense, useEffect, useState } from "react";
6
- import { useRouter, useSearchParams } from "next/navigation";
7
- import IncomeStatement from "@/app/components/IncomeStatement";
8
-
9
- const { RangePicker } = DatePicker;
10
-
11
- const Reports = () => {
12
- const [isModalVisible, setIsModalVisible] = useState(false);
13
- const searchParams = useSearchParams()
14
- const statement_id = searchParams.get('statement_id')
15
- const [statements, setStatements] = useState([]);
16
- const [loading, setLoading] = useState(false);
17
- const [selectedDates, setSelectedDates] = useState<string[] | null>(null);
18
- const router = useRouter();
19
-
20
- useEffect(() => {
21
- (async () => {
22
- const data = await fetch(incomeStatements);
23
- console.log('data', data);
24
- const statements = await data.json();
25
- setStatements(statements);
26
- })();
27
- }, []);
28
-
29
- function showModal() {
30
- setIsModalVisible(true);
31
- }
32
-
33
- function handleCancel() {
34
- setIsModalVisible(true);
35
- };
36
-
37
- async function handleOk() {
38
- if (selectedDates == null) {
39
- message.error('Please select a date range');
40
- return;
41
- }
42
- setLoading(true);
43
- try {
44
- const resp = await fetch(createIncomeStatementEndpoint, {
45
- method: 'POST',
46
- headers: {
47
- 'Content-Type': 'application/json'
48
- },
49
- body: JSON.stringify({ user_id: 3, date_from: selectedDates[0], date_to: selectedDates[1] })
50
- });
51
- } catch (error) {
52
- console.error('error', error);
53
- message.error(`An error occurred, ${error}`);
54
- } finally {
55
- setLoading(false);
56
- setIsModalVisible(false);
57
- }
58
- };
59
-
60
- function handleRangeSelect(dates: string[]) {
61
- console.log('dates', dates);
62
- setSelectedDates(dates);
63
- }
64
-
65
- return (
66
- <Suspense fallback={<div>Loading...</div>}>
67
- <div style={{ display: 'flex', flexDirection: 'column' }}>
68
- <div style={{ width: '30%', alignSelf: 'end' }}>
69
- <Button type="primary" onClick={showModal}>
70
- Create new statement
71
- </Button>
72
- <Modal
73
- title="Select Date Range"
74
- open={isModalVisible}
75
- onOk={handleOk}
76
- confirmLoading={loading}
77
- onCancel={handleCancel}
78
- >
79
- <DatePicker.RangePicker
80
- allowEmpty={[false, false]}
81
- onChange={(date, dateString) => {
82
- handleRangeSelect(dateString);
83
- }}
84
- />
85
- </Modal>
86
- </div>
87
- <div style={{ padding: 24 }}>
88
- <h1>Statements</h1>
89
- {statement_id ?
90
- <IncomeStatement statementData={statements.find(({ id }) => id === Number(statement_id))} />
91
- :
92
- <List
93
- itemLayout="horizontal"
94
- dataSource={statements}
95
- renderItem={(item: any) => (
96
- <List.Item>
97
- <List.Item.Meta
98
- title={<a onClick={() => router.push(`?statement_id=${item.id}`)}>{`${moment(item.date_from).format('MM-DD-YYYY')} until ${moment(item.date_to).format('MM-DD-YYYY')}`}</a>}
99
- />
100
- </List.Item>
101
-
102
- )}
103
- />}
104
- </div>
105
- </div>
106
- </Suspense >
107
- );
108
- }
109
-
110
- export default Reports;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/components/IncomeStatement/index.tsx DELETED
@@ -1,117 +0,0 @@
1
- import { Flex, Spin, Table, Typography } from 'antd';
2
- import Title from 'antd/es/typography/Title';
3
- import { useEffect, useState } from 'react';
4
- import styles from './styles.module.css'
5
-
6
- type Props = {
7
- statementData: any | undefined;
8
- };
9
-
10
- const IncomeStatement = ({ statementData }: Props) => {
11
- const [data, setData] = useState<any | undefined>(undefined);
12
- const [profit, setProfit] = useState(0);
13
- const [summaryData, setSummaryData] = useState<any[]>([]);
14
-
15
- useEffect(() => {
16
- if (statementData) {
17
- const incomeTotal = statementData.income.total;
18
- const expensesTotal = statementData.expenses.total;
19
- const profit = incomeTotal - expensesTotal;
20
-
21
- const incomeData = statementData.income.category_totals.map((item: any) => ({
22
- key: Object.keys(item)[0],
23
- category: `Income - ${Object.keys(item)[0]}`,
24
- amount: Object.values(item)[0],
25
- }));
26
-
27
- const expensesData = statementData.expenses.category_totals.map((item: any) => ({
28
- key: Object.keys(item)[0],
29
- category: `Expense - ${Object.keys(item)[0]}`,
30
- amount: Object.values(item)[0],
31
- }));
32
-
33
- const summaryData = [
34
- ...incomeData,
35
- ...expensesData,
36
- {
37
- key: 'total-income',
38
- category: 'Total Income',
39
- amount: incomeTotal,
40
- },
41
- {
42
- key: 'total-expenses',
43
- category: 'Total Expenses',
44
- amount: expensesTotal,
45
- },
46
- {
47
- key: 'profit',
48
- category: 'Profit',
49
- amount: profit,
50
- },
51
- ];
52
-
53
- setProfit(profit);
54
- setSummaryData(summaryData);
55
- }
56
- setData(statementData);
57
- }, []);
58
-
59
- const columns = [
60
- {
61
- title: 'Category',
62
- dataIndex: 'category',
63
- key: 'category',
64
- },
65
- {
66
- title: 'Amount',
67
- dataIndex: 'amount',
68
- key: 'amount',
69
- render: (amount: Number) => `$${amount.toFixed(2)}`,
70
- },
71
- ];
72
-
73
- const rowClassName = (record: any) => {
74
- if (record.key === 'total-income') return styles.totalIncomeRow;
75
- if (record.key === 'total-expenses') return styles.totalExpensesRow;
76
- if (record.key === 'profit') return styles.profitRow;
77
- return '';
78
- };
79
-
80
- if (!data) {
81
- return (
82
- <Flex align="center" gap="middle">
83
- <Spin size="large" />
84
- </Flex>
85
- )
86
- }
87
-
88
- return (
89
- <>
90
- <Title level={3}>Profit & Loss Statement</Title>
91
- <Table
92
- columns={columns}
93
- dataSource={summaryData}
94
- pagination={false}
95
- rowClassName={rowClassName}
96
- summary={() => (
97
- <Table.Summary.Row>
98
- <Table.Summary.Cell index={1} colSpan={1}>Net Profit</Table.Summary.Cell>
99
- <Table.Summary.Cell index={2}>
100
- <span style={{
101
- fontWeight: 'bold',
102
- backgroundColor: '#f6ffed',
103
- padding: '2px 4px',
104
- display: 'inline-block',
105
- }}>
106
- ${profit.toFixed(2)}
107
- </span>
108
- </Table.Summary.Cell>
109
- </Table.Summary.Row>
110
- )}
111
- />
112
- </>
113
- );
114
- };
115
-
116
-
117
- export default IncomeStatement
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/components/IncomeStatement/styles.module.css DELETED
@@ -1,14 +0,0 @@
1
- .totalIncomeRow{
2
- background-color: #e6f7ff;
3
- font-weight: bold;
4
- }
5
-
6
- .totalExpenseRow {
7
- background-color: #fff2e8;
8
- font-weight: bold;
9
- }
10
-
11
- .profitRow {
12
- background-color: #f6ffed;
13
- font-weight: bold;
14
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/components/Topbar/index.tsx DELETED
@@ -1,30 +0,0 @@
1
- import React from 'react';
2
- import { Layout, Menu, Avatar } from 'antd';
3
- import { SettingOutlined } from '@ant-design/icons';
4
- import './styles.css'; // Create a CSS file for any custom styling
5
- import Link from 'next/link';
6
-
7
- const { Header } = Layout;
8
-
9
- const TopBar = () => {
10
-
11
- return (
12
- <Layout>
13
- <Header className="header">
14
- <div className="logo">
15
- <Link href={'/dashboard'}>
16
- <img src="/llama.png" alt="Company Logo" />
17
- </Link>
18
- </div>
19
- <Menu theme="dark" mode="horizontal" style={{ flex: 1 }}>
20
- {/* You can add menu items here if needed */}
21
- </Menu>
22
- <div className="settings">
23
- <Avatar icon={<SettingOutlined />} />
24
- </div>
25
- </Header>
26
- </Layout>
27
- );
28
- };
29
-
30
- export default TopBar;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/components/Topbar/styles.css DELETED
@@ -1,14 +0,0 @@
1
- .header {
2
- display: flex;
3
- align-items: center;
4
- padding: 0 24px;
5
- background-color: #3b5998; /* Change this to your desired top bar color */
6
- }
7
-
8
- .logo img {
9
- height: 32px;
10
- }
11
-
12
- .settings {
13
- margin-left: auto;
14
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/lib/data/index.ts DELETED
@@ -1,75 +0,0 @@
1
-
2
- export const data = {
3
- "transactions": [
4
- {
5
- "transaction_date": "2021-01-01",
6
- "category": "Food",
7
- "name_description": "McDonalds",
8
- "amount": 10.00,
9
- "type": "Debit"
10
- },
11
- {
12
- "transaction_date": "2021-01-02",
13
- "category": "Transport",
14
- "name_description": "Uber",
15
- "amount": 15.50,
16
- "type": "Debit"
17
- },
18
- {
19
- "transaction_date": "2021-01-03",
20
- "category": "Entertainment",
21
- "name_description": "Netflix",
22
- "amount": 12.99,
23
- "type": "Debit"
24
- },
25
- {
26
- "transaction_date": "2021-01-04",
27
- "category": "Groceries",
28
- "name_description": "Walmart",
29
- "amount": 45.23,
30
- "type": "Debit"
31
- },
32
- {
33
- "transaction_date": "2021-01-05",
34
- "category": "Utilities",
35
- "name_description": "Electricity Bill",
36
- "amount": 75.00,
37
- "type": "Debit"
38
- },
39
- {
40
- "transaction_date": "2021-01-06",
41
- "category": "Income",
42
- "name_description": "Salary",
43
- "amount": 2000.00,
44
- "type": "Credit"
45
- },
46
- {
47
- "transaction_date": "2021-01-07",
48
- "category": "Health",
49
- "name_description": "Pharmacy",
50
- "amount": 20.00,
51
- "type": "Debit"
52
- },
53
- {
54
- "transaction_date": "2021-01-08",
55
- "category": "Entertainment",
56
- "name_description": "Movie Theater",
57
- "amount": 25.00,
58
- "type": "Debit"
59
- },
60
- {
61
- "transaction_date": "2021-01-09",
62
- "category": "Transport",
63
- "name_description": "Gas Station",
64
- "amount": 30.00,
65
- "type": "Debit"
66
- },
67
- {
68
- "transaction_date": "2021-01-10",
69
- "category": "Food",
70
- "name_description": "Starbucks",
71
- "amount": 5.75,
72
- "type": "Debit"
73
- }
74
- ]
75
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/lib/endpoints/index.ts DELETED
@@ -1,9 +0,0 @@
1
- const baseUrl = process.env.NEXT_PUBLIC_BASE_URL;
2
- const url = `${baseUrl}/api/v1`
3
-
4
- export const transactionsEndpoint = `${url}/transactions/3`;
5
- export const fielUploadEndpoint = `${url}/file_upload`;
6
- export const incomeStatements = `${url}/income_statement/user/3`;
7
- export const statementEndpoint = `${url}/statement/report/1`;
8
- export const createIncomeStatementEndpoint = `${url}/income_statement`;
9
-
 
 
 
 
 
 
 
 
 
 
app/page.tsx ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import Header from "@/app/components/header";
2
+ import ChatSection from "./components/chat-section";
3
+
4
+ export default function Home() {
5
+ return (
6
+ <main className="flex min-h-screen flex-col items-center gap-10 p-24 background-gradient">
7
+ <Header />
8
+ <ChatSection />
9
+ </main>
10
+ );
11
+ }
middleware.ts DELETED
@@ -1,23 +0,0 @@
1
- import { NextResponse } from 'next/server'
2
- import type { NextRequest } from 'next/server'
3
-
4
- // This function can be marked `async` if using `await` inside
5
- export function middleware(request: NextRequest) {
6
- if (request.nextUrl.pathname === '/') {
7
- return NextResponse.redirect(new URL('/login', request.url))
8
- }
9
- return NextResponse.next();
10
- }
11
-
12
- // Ensure the middleware is only called for relevant paths.
13
- export const config = {
14
- matcher: [
15
- /*
16
- * Match all request paths except for the ones starting with:
17
- * - _next/static (static files)
18
- * - _next/image (image optimization files)
19
- * - favicon.ico (favicon file)
20
- */
21
- '/((?!_next/static|_next/image|auth|monitoring|svgs|favicon.ico).*)',
22
- ],
23
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
next.config.json CHANGED
@@ -1,6 +1,5 @@
1
  {
2
  "experimental": {
3
- "missingSuspenseWithCSRBailout": false,
4
  "outputFileTracingIncludes": {
5
  "/*": ["./cache/**/*"]
6
  },
 
1
  {
2
  "experimental": {
 
3
  "outputFileTracingIncludes": {
4
  "/*": ["./cache/**/*"]
5
  },
package-lock.json CHANGED
@@ -8,7 +8,6 @@
8
  "name": "codepath-project",
9
  "version": "0.1.0",
10
  "dependencies": {
11
- "@ant-design/nextjs-registry": "^1.0.0",
12
  "@llamaindex/pdf-viewer": "^1.1.1",
13
  "@radix-ui/react-collapsible": "^1.0.3",
14
  "@radix-ui/react-hover-card": "^1.0.7",
@@ -16,13 +15,11 @@
16
  "@traceloop/node-server-sdk": "^0.5.19",
17
  "ai": "^3.0.21",
18
  "ajv": "^8.12.0",
19
- "antd": "^5.17.4",
20
  "class-variance-authority": "^0.7.0",
21
  "clsx": "^2.1.1",
22
  "dotenv": "^16.3.1",
23
  "llamaindex": "0.3.13",
24
  "lucide-react": "^0.294.0",
25
- "moment": "^2.30.1",
26
  "next": "^14.0.3",
27
  "pdf2json": "3.0.5",
28
  "react": "^18.2.0",
@@ -115,83 +112,6 @@
115
  "node": ">=6.0.0"
116
  }
117
  },
118
- "node_modules/@ant-design/colors": {
119
- "version": "7.0.2",
120
- "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.0.2.tgz",
121
- "integrity": "sha512-7KJkhTiPiLHSu+LmMJnehfJ6242OCxSlR3xHVBecYxnMW8MS/878NXct1GqYARyL59fyeFdKRxXTfvR9SnDgJg==",
122
- "dependencies": {
123
- "@ctrl/tinycolor": "^3.6.1"
124
- }
125
- },
126
- "node_modules/@ant-design/cssinjs": {
127
- "version": "1.20.0",
128
- "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.20.0.tgz",
129
- "integrity": "sha512-uG3iWzJxgNkADdZmc6W0Ci3iQAUOvLMcM8SnnmWq3r6JeocACft4ChnY/YWvI2Y+rG/68QBla/O+udke1yH3vg==",
130
- "dependencies": {
131
- "@babel/runtime": "^7.11.1",
132
- "@emotion/hash": "^0.8.0",
133
- "@emotion/unitless": "^0.7.5",
134
- "classnames": "^2.3.1",
135
- "csstype": "^3.1.3",
136
- "rc-util": "^5.35.0",
137
- "stylis": "^4.0.13"
138
- },
139
- "peerDependencies": {
140
- "react": ">=16.0.0",
141
- "react-dom": ">=16.0.0"
142
- }
143
- },
144
- "node_modules/@ant-design/icons": {
145
- "version": "5.3.7",
146
- "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.3.7.tgz",
147
- "integrity": "sha512-bCPXTAg66f5bdccM4TT21SQBDO1Ek2gho9h3nO9DAKXJP4sq+5VBjrQMSxMVXSB3HyEz+cUbHQ5+6ogxCOpaew==",
148
- "dependencies": {
149
- "@ant-design/colors": "^7.0.0",
150
- "@ant-design/icons-svg": "^4.4.0",
151
- "@babel/runtime": "^7.11.2",
152
- "classnames": "^2.2.6",
153
- "rc-util": "^5.31.1"
154
- },
155
- "engines": {
156
- "node": ">=8"
157
- },
158
- "peerDependencies": {
159
- "react": ">=16.0.0",
160
- "react-dom": ">=16.0.0"
161
- }
162
- },
163
- "node_modules/@ant-design/icons-svg": {
164
- "version": "4.4.2",
165
- "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz",
166
- "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA=="
167
- },
168
- "node_modules/@ant-design/nextjs-registry": {
169
- "version": "1.0.0",
170
- "resolved": "https://registry.npmjs.org/@ant-design/nextjs-registry/-/nextjs-registry-1.0.0.tgz",
171
- "integrity": "sha512-kU1K1UOhwrF6DPv73MhuL5a6U4e6/TiFapeLUt/c/kch9h5qFwEaJPb4RSJKNw0PRBfqCAPS011wVm4wYcrqbQ==",
172
- "peerDependencies": {
173
- "@ant-design/cssinjs": "^1.18.2",
174
- "antd": "^5.0.0",
175
- "next": "^14.0.0",
176
- "react": ">=16.0.0",
177
- "react-dom": ">=16.0.0"
178
- }
179
- },
180
- "node_modules/@ant-design/react-slick": {
181
- "version": "1.1.2",
182
- "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.1.2.tgz",
183
- "integrity": "sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==",
184
- "dependencies": {
185
- "@babel/runtime": "^7.10.4",
186
- "classnames": "^2.2.5",
187
- "json2mq": "^0.2.0",
188
- "resize-observer-polyfill": "^1.5.1",
189
- "throttle-debounce": "^5.0.0"
190
- },
191
- "peerDependencies": {
192
- "react": ">=16.9.0"
193
- }
194
- },
195
  "node_modules/@anthropic-ai/sdk": {
196
  "version": "0.20.9",
197
  "resolved": "https://registry.npmjs.org/@anthropic-ai/sdk/-/sdk-0.20.9.tgz",
@@ -281,14 +201,6 @@
281
  "node": ">=0.1.90"
282
  }
283
  },
284
- "node_modules/@ctrl/tinycolor": {
285
- "version": "3.6.1",
286
- "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz",
287
- "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==",
288
- "engines": {
289
- "node": ">=10"
290
- }
291
- },
292
  "node_modules/@dabh/diagnostics": {
293
  "version": "2.0.3",
294
  "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz",
@@ -314,16 +226,6 @@
314
  "node": ">=14.0.0"
315
  }
316
  },
317
- "node_modules/@emotion/hash": {
318
- "version": "0.8.0",
319
- "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
320
- "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow=="
321
- },
322
- "node_modules/@emotion/unitless": {
323
- "version": "0.7.5",
324
- "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz",
325
- "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg=="
326
- },
327
  "node_modules/@esbuild/aix-ppc64": {
328
  "version": "0.20.2",
329
  "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz",
@@ -2230,129 +2132,6 @@
2230
  "@babel/runtime": "^7.13.10"
2231
  }
2232
  },
2233
- "node_modules/@rc-component/async-validator": {
2234
- "version": "5.0.4",
2235
- "resolved": "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.0.4.tgz",
2236
- "integrity": "sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==",
2237
- "dependencies": {
2238
- "@babel/runtime": "^7.24.4"
2239
- },
2240
- "engines": {
2241
- "node": ">=14.x"
2242
- }
2243
- },
2244
- "node_modules/@rc-component/color-picker": {
2245
- "version": "1.5.3",
2246
- "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-1.5.3.tgz",
2247
- "integrity": "sha512-+tGGH3nLmYXTalVe0L8hSZNs73VTP5ueSHwUlDC77KKRaN7G4DS4wcpG5DTDzdcV/Yas+rzA6UGgIyzd8fS4cw==",
2248
- "dependencies": {
2249
- "@babel/runtime": "^7.23.6",
2250
- "@ctrl/tinycolor": "^3.6.1",
2251
- "classnames": "^2.2.6",
2252
- "rc-util": "^5.38.1"
2253
- },
2254
- "peerDependencies": {
2255
- "react": ">=16.9.0",
2256
- "react-dom": ">=16.9.0"
2257
- }
2258
- },
2259
- "node_modules/@rc-component/context": {
2260
- "version": "1.4.0",
2261
- "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-1.4.0.tgz",
2262
- "integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==",
2263
- "dependencies": {
2264
- "@babel/runtime": "^7.10.1",
2265
- "rc-util": "^5.27.0"
2266
- },
2267
- "peerDependencies": {
2268
- "react": ">=16.9.0",
2269
- "react-dom": ">=16.9.0"
2270
- }
2271
- },
2272
- "node_modules/@rc-component/mini-decimal": {
2273
- "version": "1.1.0",
2274
- "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz",
2275
- "integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==",
2276
- "dependencies": {
2277
- "@babel/runtime": "^7.18.0"
2278
- },
2279
- "engines": {
2280
- "node": ">=8.x"
2281
- }
2282
- },
2283
- "node_modules/@rc-component/mutate-observer": {
2284
- "version": "1.1.0",
2285
- "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz",
2286
- "integrity": "sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==",
2287
- "dependencies": {
2288
- "@babel/runtime": "^7.18.0",
2289
- "classnames": "^2.3.2",
2290
- "rc-util": "^5.24.4"
2291
- },
2292
- "engines": {
2293
- "node": ">=8.x"
2294
- },
2295
- "peerDependencies": {
2296
- "react": ">=16.9.0",
2297
- "react-dom": ">=16.9.0"
2298
- }
2299
- },
2300
- "node_modules/@rc-component/portal": {
2301
- "version": "1.1.2",
2302
- "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz",
2303
- "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==",
2304
- "dependencies": {
2305
- "@babel/runtime": "^7.18.0",
2306
- "classnames": "^2.3.2",
2307
- "rc-util": "^5.24.4"
2308
- },
2309
- "engines": {
2310
- "node": ">=8.x"
2311
- },
2312
- "peerDependencies": {
2313
- "react": ">=16.9.0",
2314
- "react-dom": ">=16.9.0"
2315
- }
2316
- },
2317
- "node_modules/@rc-component/tour": {
2318
- "version": "1.15.0",
2319
- "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.15.0.tgz",
2320
- "integrity": "sha512-h6hyILDwL+In9GAgRobwRWihLqqsD7Uft3fZGrJ7L4EiyCoxbnNYwzPXDfz7vNDhWeVyvAWQJj9fJCzpI4+b4g==",
2321
- "dependencies": {
2322
- "@babel/runtime": "^7.18.0",
2323
- "@rc-component/portal": "^1.0.0-9",
2324
- "@rc-component/trigger": "^2.0.0",
2325
- "classnames": "^2.3.2",
2326
- "rc-util": "^5.24.4"
2327
- },
2328
- "engines": {
2329
- "node": ">=8.x"
2330
- },
2331
- "peerDependencies": {
2332
- "react": ">=16.9.0",
2333
- "react-dom": ">=16.9.0"
2334
- }
2335
- },
2336
- "node_modules/@rc-component/trigger": {
2337
- "version": "2.2.0",
2338
- "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.2.0.tgz",
2339
- "integrity": "sha512-QarBCji02YE9aRFhZgRZmOpXBj0IZutRippsVBv85sxvG4FGk/vRxwAlkn3MS9zK5mwbETd86mAVg2tKqTkdJA==",
2340
- "dependencies": {
2341
- "@babel/runtime": "^7.23.2",
2342
- "@rc-component/portal": "^1.1.0",
2343
- "classnames": "^2.3.2",
2344
- "rc-motion": "^2.0.0",
2345
- "rc-resize-observer": "^1.3.1",
2346
- "rc-util": "^5.38.0"
2347
- },
2348
- "engines": {
2349
- "node": ">=8.x"
2350
- },
2351
- "peerDependencies": {
2352
- "react": ">=16.9.0",
2353
- "react-dom": ">=16.9.0"
2354
- }
2355
- },
2356
  "node_modules/@rushstack/eslint-patch": {
2357
  "version": "1.10.3",
2358
  "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.3.tgz",
@@ -3447,69 +3226,6 @@
3447
  "url": "https://github.com/chalk/ansi-styles?sponsor=1"
3448
  }
3449
  },
3450
- "node_modules/antd": {
3451
- "version": "5.17.4",
3452
- "resolved": "https://registry.npmjs.org/antd/-/antd-5.17.4.tgz",
3453
- "integrity": "sha512-oDWrcibe1s72223vpvA3/dNBEotGkggyWQVX1+GVrhuVXt/QYE3oU3Tsg3PeMurohvO8kjxambqG/zbmsMG34g==",
3454
- "dependencies": {
3455
- "@ant-design/colors": "^7.0.2",
3456
- "@ant-design/cssinjs": "^1.19.1",
3457
- "@ant-design/icons": "^5.3.7",
3458
- "@ant-design/react-slick": "~1.1.2",
3459
- "@babel/runtime": "^7.24.5",
3460
- "@ctrl/tinycolor": "^3.6.1",
3461
- "@rc-component/color-picker": "~1.5.3",
3462
- "@rc-component/mutate-observer": "^1.1.0",
3463
- "@rc-component/tour": "~1.15.0",
3464
- "@rc-component/trigger": "^2.1.1",
3465
- "classnames": "^2.5.1",
3466
- "copy-to-clipboard": "^3.3.3",
3467
- "dayjs": "^1.11.10",
3468
- "qrcode.react": "^3.1.0",
3469
- "rc-cascader": "~3.26.0",
3470
- "rc-checkbox": "~3.3.0",
3471
- "rc-collapse": "~3.7.3",
3472
- "rc-dialog": "~9.4.0",
3473
- "rc-drawer": "~7.1.0",
3474
- "rc-dropdown": "~4.2.0",
3475
- "rc-field-form": "~2.0.1",
3476
- "rc-image": "~7.6.0",
3477
- "rc-input": "~1.5.1",
3478
- "rc-input-number": "~9.1.0",
3479
- "rc-mentions": "~2.13.1",
3480
- "rc-menu": "~9.14.0",
3481
- "rc-motion": "^2.9.1",
3482
- "rc-notification": "~5.4.0",
3483
- "rc-pagination": "~4.0.4",
3484
- "rc-picker": "~4.5.0",
3485
- "rc-progress": "~4.0.0",
3486
- "rc-rate": "~2.12.0",
3487
- "rc-resize-observer": "^1.4.0",
3488
- "rc-segmented": "~2.3.0",
3489
- "rc-select": "~14.14.0",
3490
- "rc-slider": "~10.6.2",
3491
- "rc-steps": "~6.0.1",
3492
- "rc-switch": "~4.1.0",
3493
- "rc-table": "~7.45.6",
3494
- "rc-tabs": "~15.1.0",
3495
- "rc-textarea": "~1.7.0",
3496
- "rc-tooltip": "~6.2.0",
3497
- "rc-tree": "~5.8.7",
3498
- "rc-tree-select": "~5.21.0",
3499
- "rc-upload": "~4.5.2",
3500
- "rc-util": "^5.41.0",
3501
- "scroll-into-view-if-needed": "^3.1.0",
3502
- "throttle-debounce": "^5.0.0"
3503
- },
3504
- "funding": {
3505
- "type": "opencollective",
3506
- "url": "https://opencollective.com/ant-design"
3507
- },
3508
- "peerDependencies": {
3509
- "react": ">=16.9.0",
3510
- "react-dom": ">=16.9.0"
3511
- }
3512
- },
3513
  "node_modules/any-promise": {
3514
  "version": "1.3.0",
3515
  "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
@@ -3595,11 +3311,6 @@
3595
  "url": "https://github.com/sponsors/ljharb"
3596
  }
3597
  },
3598
- "node_modules/array-tree-filter": {
3599
- "version": "2.1.0",
3600
- "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz",
3601
- "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw=="
3602
- },
3603
  "node_modules/array-union": {
3604
  "version": "2.1.0",
3605
  "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
@@ -4329,11 +4040,6 @@
4329
  "node": ">=6"
4330
  }
4331
  },
4332
- "node_modules/classnames": {
4333
- "version": "2.5.1",
4334
- "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz",
4335
- "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow=="
4336
- },
4337
  "node_modules/client-only": {
4338
  "version": "0.0.1",
4339
  "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
@@ -4544,25 +4250,12 @@
4544
  "node": ">= 6"
4545
  }
4546
  },
4547
- "node_modules/compute-scroll-into-view": {
4548
- "version": "3.1.0",
4549
- "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz",
4550
- "integrity": "sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg=="
4551
- },
4552
  "node_modules/concat-map": {
4553
  "version": "0.0.1",
4554
  "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
4555
  "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
4556
  "dev": true
4557
  },
4558
- "node_modules/copy-to-clipboard": {
4559
- "version": "3.3.3",
4560
- "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz",
4561
- "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==",
4562
- "dependencies": {
4563
- "toggle-selection": "^1.0.6"
4564
- }
4565
- },
4566
  "node_modules/core-util-is": {
4567
  "version": "1.0.3",
4568
  "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
@@ -7652,14 +7345,6 @@
7652
  "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
7653
  "dev": true
7654
  },
7655
- "node_modules/json2mq": {
7656
- "version": "0.2.0",
7657
- "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz",
7658
- "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==",
7659
- "dependencies": {
7660
- "string-convert": "^0.2.0"
7661
- }
7662
- },
7663
  "node_modules/json5": {
7664
  "version": "2.2.3",
7665
  "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
@@ -9125,14 +8810,6 @@
9125
  "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz",
9126
  "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A=="
9127
  },
9128
- "node_modules/moment": {
9129
- "version": "2.30.1",
9130
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
9131
- "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
9132
- "engines": {
9133
- "node": "*"
9134
- }
9135
- },
9136
  "node_modules/mongodb": {
9137
  "version": "6.6.2",
9138
  "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.6.2.tgz",
@@ -10561,14 +10238,6 @@
10561
  "node": ">=6"
10562
  }
10563
  },
10564
- "node_modules/qrcode.react": {
10565
- "version": "3.1.0",
10566
- "resolved": "https://registry.npmjs.org/qrcode.react/-/qrcode.react-3.1.0.tgz",
10567
- "integrity": "sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==",
10568
- "peerDependencies": {
10569
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
10570
- }
10571
- },
10572
  "node_modules/qs": {
10573
  "version": "6.11.2",
10574
  "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz",
@@ -10692,583 +10361,6 @@
10692
  "rc": "cli.js"
10693
  }
10694
  },
10695
- "node_modules/rc-cascader": {
10696
- "version": "3.26.0",
10697
- "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.26.0.tgz",
10698
- "integrity": "sha512-L1dml383TPSJD1I11YwxuVbmqaJY64psZqFp1ETlgl3LEOwDu76Cyl11fw5dmjJhMlUWwM5dECQfqJgfebhUjg==",
10699
- "dependencies": {
10700
- "@babel/runtime": "^7.12.5",
10701
- "array-tree-filter": "^2.1.0",
10702
- "classnames": "^2.3.1",
10703
- "rc-select": "~14.14.0",
10704
- "rc-tree": "~5.8.1",
10705
- "rc-util": "^5.37.0"
10706
- },
10707
- "peerDependencies": {
10708
- "react": ">=16.9.0",
10709
- "react-dom": ">=16.9.0"
10710
- }
10711
- },
10712
- "node_modules/rc-checkbox": {
10713
- "version": "3.3.0",
10714
- "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.3.0.tgz",
10715
- "integrity": "sha512-Ih3ZaAcoAiFKJjifzwsGiT/f/quIkxJoklW4yKGho14Olulwn8gN7hOBve0/WGDg5o/l/5mL0w7ff7/YGvefVw==",
10716
- "dependencies": {
10717
- "@babel/runtime": "^7.10.1",
10718
- "classnames": "^2.3.2",
10719
- "rc-util": "^5.25.2"
10720
- },
10721
- "peerDependencies": {
10722
- "react": ">=16.9.0",
10723
- "react-dom": ">=16.9.0"
10724
- }
10725
- },
10726
- "node_modules/rc-collapse": {
10727
- "version": "3.7.3",
10728
- "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.7.3.tgz",
10729
- "integrity": "sha512-60FJcdTRn0X5sELF18TANwtVi7FtModq649H11mYF1jh83DniMoM4MqY627sEKRCTm4+WXfGDcB7hY5oW6xhyw==",
10730
- "dependencies": {
10731
- "@babel/runtime": "^7.10.1",
10732
- "classnames": "2.x",
10733
- "rc-motion": "^2.3.4",
10734
- "rc-util": "^5.27.0"
10735
- },
10736
- "peerDependencies": {
10737
- "react": ">=16.9.0",
10738
- "react-dom": ">=16.9.0"
10739
- }
10740
- },
10741
- "node_modules/rc-dialog": {
10742
- "version": "9.4.0",
10743
- "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.4.0.tgz",
10744
- "integrity": "sha512-AScCexaLACvf8KZRqCPz12BJ8olszXOS4lKlkMyzDQHS1m0zj1KZMYgmMCh39ee0Dcv8kyrj8mTqxuLyhH+QuQ==",
10745
- "dependencies": {
10746
- "@babel/runtime": "^7.10.1",
10747
- "@rc-component/portal": "^1.0.0-8",
10748
- "classnames": "^2.2.6",
10749
- "rc-motion": "^2.3.0",
10750
- "rc-util": "^5.21.0"
10751
- },
10752
- "peerDependencies": {
10753
- "react": ">=16.9.0",
10754
- "react-dom": ">=16.9.0"
10755
- }
10756
- },
10757
- "node_modules/rc-drawer": {
10758
- "version": "7.1.0",
10759
- "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.1.0.tgz",
10760
- "integrity": "sha512-nBE1rF5iZvpavoyqhSSz2mk/yANltA7g3aF0U45xkx381n3we/RKs9cJfNKp9mSWCedOKWt9FLEwZDaAaOGn2w==",
10761
- "dependencies": {
10762
- "@babel/runtime": "^7.23.9",
10763
- "@rc-component/portal": "^1.1.1",
10764
- "classnames": "^2.2.6",
10765
- "rc-motion": "^2.6.1",
10766
- "rc-util": "^5.38.1"
10767
- },
10768
- "peerDependencies": {
10769
- "react": ">=16.9.0",
10770
- "react-dom": ">=16.9.0"
10771
- }
10772
- },
10773
- "node_modules/rc-dropdown": {
10774
- "version": "4.2.0",
10775
- "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.2.0.tgz",
10776
- "integrity": "sha512-odM8Ove+gSh0zU27DUj5cG1gNKg7mLWBYzB5E4nNLrLwBmYEgYP43vHKDGOVZcJSVElQBI0+jTQgjnq0NfLjng==",
10777
- "dependencies": {
10778
- "@babel/runtime": "^7.18.3",
10779
- "@rc-component/trigger": "^2.0.0",
10780
- "classnames": "^2.2.6",
10781
- "rc-util": "^5.17.0"
10782
- },
10783
- "peerDependencies": {
10784
- "react": ">=16.11.0",
10785
- "react-dom": ">=16.11.0"
10786
- }
10787
- },
10788
- "node_modules/rc-field-form": {
10789
- "version": "2.0.1",
10790
- "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-2.0.1.tgz",
10791
- "integrity": "sha512-3WK/POHBcfMFKrzScrkmgMIXqoVQ0KgVwcVnej/ukwuQG4ZHCJaTi2KhM+tWTK4WODBXbmjKg5pKHj2IVmSg4A==",
10792
- "dependencies": {
10793
- "@babel/runtime": "^7.18.0",
10794
- "@rc-component/async-validator": "^5.0.3",
10795
- "rc-util": "^5.32.2"
10796
- },
10797
- "engines": {
10798
- "node": ">=8.x"
10799
- },
10800
- "peerDependencies": {
10801
- "react": ">=16.9.0",
10802
- "react-dom": ">=16.9.0"
10803
- }
10804
- },
10805
- "node_modules/rc-image": {
10806
- "version": "7.6.0",
10807
- "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.6.0.tgz",
10808
- "integrity": "sha512-tL3Rvd1sS+frZQ01i+tkeUPaOeFz2iG9/scAt/Cfs0hyCRVA/w0Pu1J/JxIX8blalvmHE0bZQRYdOmRAzWu4Hg==",
10809
- "dependencies": {
10810
- "@babel/runtime": "^7.11.2",
10811
- "@rc-component/portal": "^1.0.2",
10812
- "classnames": "^2.2.6",
10813
- "rc-dialog": "~9.4.0",
10814
- "rc-motion": "^2.6.2",
10815
- "rc-util": "^5.34.1"
10816
- },
10817
- "peerDependencies": {
10818
- "react": ">=16.9.0",
10819
- "react-dom": ">=16.9.0"
10820
- }
10821
- },
10822
- "node_modules/rc-input": {
10823
- "version": "1.5.1",
10824
- "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.5.1.tgz",
10825
- "integrity": "sha512-+nOzQJDeIfIpNP/SgY45LXSKbuMlp4Yap2y8c+ZpU7XbLmNzUd6+d5/S75sA/52jsVE6S/AkhkkDEAOjIu7i6g==",
10826
- "dependencies": {
10827
- "@babel/runtime": "^7.11.1",
10828
- "classnames": "^2.2.1",
10829
- "rc-util": "^5.18.1"
10830
- },
10831
- "peerDependencies": {
10832
- "react": ">=16.0.0",
10833
- "react-dom": ">=16.0.0"
10834
- }
10835
- },
10836
- "node_modules/rc-input-number": {
10837
- "version": "9.1.0",
10838
- "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.1.0.tgz",
10839
- "integrity": "sha512-NqJ6i25Xn/AgYfVxynlevIhX3FuKlMwIFpucGG1h98SlK32wQwDK0zhN9VY32McOmuaqzftduNYWWooWz8pXQA==",
10840
- "dependencies": {
10841
- "@babel/runtime": "^7.10.1",
10842
- "@rc-component/mini-decimal": "^1.0.1",
10843
- "classnames": "^2.2.5",
10844
- "rc-input": "~1.5.0",
10845
- "rc-util": "^5.40.1"
10846
- },
10847
- "peerDependencies": {
10848
- "react": ">=16.9.0",
10849
- "react-dom": ">=16.9.0"
10850
- }
10851
- },
10852
- "node_modules/rc-mentions": {
10853
- "version": "2.13.1",
10854
- "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.13.1.tgz",
10855
- "integrity": "sha512-DSyUDq/PPCleUX1eghIn371lTSRQsIuCs1N7xR9nZcHP9R1NkE7JjpWUP8Gy4EGVPu0JN0qIcokxYJaoGPnofg==",
10856
- "dependencies": {
10857
- "@babel/runtime": "^7.22.5",
10858
- "@rc-component/trigger": "^2.0.0",
10859
- "classnames": "^2.2.6",
10860
- "rc-input": "~1.5.0",
10861
- "rc-menu": "~9.14.0",
10862
- "rc-textarea": "~1.7.0",
10863
- "rc-util": "^5.34.1"
10864
- },
10865
- "peerDependencies": {
10866
- "react": ">=16.9.0",
10867
- "react-dom": ">=16.9.0"
10868
- }
10869
- },
10870
- "node_modules/rc-menu": {
10871
- "version": "9.14.0",
10872
- "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.14.0.tgz",
10873
- "integrity": "sha512-La3LBCDMLMs9Q/8mTGbnscb+ZeJ26ebkLz9xJFHd2SD8vfsCKl1Z/k3mwbxyKL01lB40fel1s9Nn9LAv/nmVJQ==",
10874
- "dependencies": {
10875
- "@babel/runtime": "^7.10.1",
10876
- "@rc-component/trigger": "^2.0.0",
10877
- "classnames": "2.x",
10878
- "rc-motion": "^2.4.3",
10879
- "rc-overflow": "^1.3.1",
10880
- "rc-util": "^5.27.0"
10881
- },
10882
- "peerDependencies": {
10883
- "react": ">=16.9.0",
10884
- "react-dom": ">=16.9.0"
10885
- }
10886
- },
10887
- "node_modules/rc-motion": {
10888
- "version": "2.9.1",
10889
- "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.1.tgz",
10890
- "integrity": "sha512-QD4bUqByjVQs7PhUT1d4bNxvtTcK9ETwtg7psbDfo6TmYalH/1hhjj4r2hbhW7g5OOEqYHhfwfj4noIvuOVRtQ==",
10891
- "dependencies": {
10892
- "@babel/runtime": "^7.11.1",
10893
- "classnames": "^2.2.1",
10894
- "rc-util": "^5.39.3"
10895
- },
10896
- "peerDependencies": {
10897
- "react": ">=16.9.0",
10898
- "react-dom": ">=16.9.0"
10899
- }
10900
- },
10901
- "node_modules/rc-notification": {
10902
- "version": "5.4.0",
10903
- "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.4.0.tgz",
10904
- "integrity": "sha512-li19y9RoYJciF3WRFvD+DvWS70jdL8Fr+Gfb/OshK+iY6iTkwzoigmSIp76/kWh5tF5i/i9im12X3nsF85GYdA==",
10905
- "dependencies": {
10906
- "@babel/runtime": "^7.10.1",
10907
- "classnames": "2.x",
10908
- "rc-motion": "^2.9.0",
10909
- "rc-util": "^5.20.1"
10910
- },
10911
- "engines": {
10912
- "node": ">=8.x"
10913
- },
10914
- "peerDependencies": {
10915
- "react": ">=16.9.0",
10916
- "react-dom": ">=16.9.0"
10917
- }
10918
- },
10919
- "node_modules/rc-overflow": {
10920
- "version": "1.3.2",
10921
- "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.3.2.tgz",
10922
- "integrity": "sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==",
10923
- "dependencies": {
10924
- "@babel/runtime": "^7.11.1",
10925
- "classnames": "^2.2.1",
10926
- "rc-resize-observer": "^1.0.0",
10927
- "rc-util": "^5.37.0"
10928
- },
10929
- "peerDependencies": {
10930
- "react": ">=16.9.0",
10931
- "react-dom": ">=16.9.0"
10932
- }
10933
- },
10934
- "node_modules/rc-pagination": {
10935
- "version": "4.0.4",
10936
- "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-4.0.4.tgz",
10937
- "integrity": "sha512-GGrLT4NgG6wgJpT/hHIpL9nELv27A1XbSZzECIuQBQTVSf4xGKxWr6I/jhpRPauYEWEbWVw22ObG6tJQqwJqWQ==",
10938
- "dependencies": {
10939
- "@babel/runtime": "^7.10.1",
10940
- "classnames": "^2.3.2",
10941
- "rc-util": "^5.38.0"
10942
- },
10943
- "peerDependencies": {
10944
- "react": ">=16.9.0",
10945
- "react-dom": ">=16.9.0"
10946
- }
10947
- },
10948
- "node_modules/rc-picker": {
10949
- "version": "4.5.0",
10950
- "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.5.0.tgz",
10951
- "integrity": "sha512-suqz9bzuhBQlf7u+bZd1bJLPzhXpk12w6AjQ9BTPTiFwexVZgUKViG1KNLyfFvW6tCUZZK0HmCCX7JAyM+JnCg==",
10952
- "dependencies": {
10953
- "@babel/runtime": "^7.10.1",
10954
- "@rc-component/trigger": "^2.0.0",
10955
- "classnames": "^2.2.1",
10956
- "rc-overflow": "^1.3.2",
10957
- "rc-resize-observer": "^1.4.0",
10958
- "rc-util": "^5.38.1"
10959
- },
10960
- "engines": {
10961
- "node": ">=8.x"
10962
- },
10963
- "peerDependencies": {
10964
- "date-fns": ">= 2.x",
10965
- "dayjs": ">= 1.x",
10966
- "luxon": ">= 3.x",
10967
- "moment": ">= 2.x",
10968
- "react": ">=16.9.0",
10969
- "react-dom": ">=16.9.0"
10970
- },
10971
- "peerDependenciesMeta": {
10972
- "date-fns": {
10973
- "optional": true
10974
- },
10975
- "dayjs": {
10976
- "optional": true
10977
- },
10978
- "luxon": {
10979
- "optional": true
10980
- },
10981
- "moment": {
10982
- "optional": true
10983
- }
10984
- }
10985
- },
10986
- "node_modules/rc-progress": {
10987
- "version": "4.0.0",
10988
- "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-4.0.0.tgz",
10989
- "integrity": "sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==",
10990
- "dependencies": {
10991
- "@babel/runtime": "^7.10.1",
10992
- "classnames": "^2.2.6",
10993
- "rc-util": "^5.16.1"
10994
- },
10995
- "peerDependencies": {
10996
- "react": ">=16.9.0",
10997
- "react-dom": ">=16.9.0"
10998
- }
10999
- },
11000
- "node_modules/rc-rate": {
11001
- "version": "2.12.0",
11002
- "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.12.0.tgz",
11003
- "integrity": "sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg==",
11004
- "dependencies": {
11005
- "@babel/runtime": "^7.10.1",
11006
- "classnames": "^2.2.5",
11007
- "rc-util": "^5.0.1"
11008
- },
11009
- "engines": {
11010
- "node": ">=8.x"
11011
- },
11012
- "peerDependencies": {
11013
- "react": ">=16.9.0",
11014
- "react-dom": ">=16.9.0"
11015
- }
11016
- },
11017
- "node_modules/rc-resize-observer": {
11018
- "version": "1.4.0",
11019
- "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.4.0.tgz",
11020
- "integrity": "sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==",
11021
- "dependencies": {
11022
- "@babel/runtime": "^7.20.7",
11023
- "classnames": "^2.2.1",
11024
- "rc-util": "^5.38.0",
11025
- "resize-observer-polyfill": "^1.5.1"
11026
- },
11027
- "peerDependencies": {
11028
- "react": ">=16.9.0",
11029
- "react-dom": ">=16.9.0"
11030
- }
11031
- },
11032
- "node_modules/rc-segmented": {
11033
- "version": "2.3.0",
11034
- "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.3.0.tgz",
11035
- "integrity": "sha512-I3FtM5Smua/ESXutFfb8gJ8ZPcvFR+qUgeeGFQHBOvRiRKyAk4aBE5nfqrxXx+h8/vn60DQjOt6i4RNtrbOobg==",
11036
- "dependencies": {
11037
- "@babel/runtime": "^7.11.1",
11038
- "classnames": "^2.2.1",
11039
- "rc-motion": "^2.4.4",
11040
- "rc-util": "^5.17.0"
11041
- },
11042
- "peerDependencies": {
11043
- "react": ">=16.0.0",
11044
- "react-dom": ">=16.0.0"
11045
- }
11046
- },
11047
- "node_modules/rc-select": {
11048
- "version": "14.14.0",
11049
- "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.14.0.tgz",
11050
- "integrity": "sha512-Uo2wulrjoPPRLCPd7zlK4ZFVJxlTN//yp1xWP/U+TUOQCyXrT+Duvq/Si5OzVcmQyWAUSbsplc2OwNNhvbOeKQ==",
11051
- "dependencies": {
11052
- "@babel/runtime": "^7.10.1",
11053
- "@rc-component/trigger": "^2.1.1",
11054
- "classnames": "2.x",
11055
- "rc-motion": "^2.0.1",
11056
- "rc-overflow": "^1.3.1",
11057
- "rc-util": "^5.16.1",
11058
- "rc-virtual-list": "^3.5.2"
11059
- },
11060
- "engines": {
11061
- "node": ">=8.x"
11062
- },
11063
- "peerDependencies": {
11064
- "react": "*",
11065
- "react-dom": "*"
11066
- }
11067
- },
11068
- "node_modules/rc-slider": {
11069
- "version": "10.6.2",
11070
- "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-10.6.2.tgz",
11071
- "integrity": "sha512-FjkoFjyvUQWcBo1F3RgSglky3ar0+qHLM41PlFVYB4Bj3RD8E/Mv7kqMouLFBU+3aFglMzzctAIWRwajEuueSw==",
11072
- "dependencies": {
11073
- "@babel/runtime": "^7.10.1",
11074
- "classnames": "^2.2.5",
11075
- "rc-util": "^5.36.0"
11076
- },
11077
- "engines": {
11078
- "node": ">=8.x"
11079
- },
11080
- "peerDependencies": {
11081
- "react": ">=16.9.0",
11082
- "react-dom": ">=16.9.0"
11083
- }
11084
- },
11085
- "node_modules/rc-steps": {
11086
- "version": "6.0.1",
11087
- "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-6.0.1.tgz",
11088
- "integrity": "sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==",
11089
- "dependencies": {
11090
- "@babel/runtime": "^7.16.7",
11091
- "classnames": "^2.2.3",
11092
- "rc-util": "^5.16.1"
11093
- },
11094
- "engines": {
11095
- "node": ">=8.x"
11096
- },
11097
- "peerDependencies": {
11098
- "react": ">=16.9.0",
11099
- "react-dom": ">=16.9.0"
11100
- }
11101
- },
11102
- "node_modules/rc-switch": {
11103
- "version": "4.1.0",
11104
- "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-4.1.0.tgz",
11105
- "integrity": "sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==",
11106
- "dependencies": {
11107
- "@babel/runtime": "^7.21.0",
11108
- "classnames": "^2.2.1",
11109
- "rc-util": "^5.30.0"
11110
- },
11111
- "peerDependencies": {
11112
- "react": ">=16.9.0",
11113
- "react-dom": ">=16.9.0"
11114
- }
11115
- },
11116
- "node_modules/rc-table": {
11117
- "version": "7.45.7",
11118
- "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.45.7.tgz",
11119
- "integrity": "sha512-wi9LetBL1t1csxyGkMB2p3mCiMt+NDexMlPbXHvQFmBBAsMxrgNSAPwUci2zDLUq9m8QdWc1Nh8suvrpy9mXrg==",
11120
- "dependencies": {
11121
- "@babel/runtime": "^7.10.1",
11122
- "@rc-component/context": "^1.4.0",
11123
- "classnames": "^2.2.5",
11124
- "rc-resize-observer": "^1.1.0",
11125
- "rc-util": "^5.37.0",
11126
- "rc-virtual-list": "^3.14.2"
11127
- },
11128
- "engines": {
11129
- "node": ">=8.x"
11130
- },
11131
- "peerDependencies": {
11132
- "react": ">=16.9.0",
11133
- "react-dom": ">=16.9.0"
11134
- }
11135
- },
11136
- "node_modules/rc-tabs": {
11137
- "version": "15.1.0",
11138
- "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-15.1.0.tgz",
11139
- "integrity": "sha512-xTNz4Km1025emtkv1q7xKhjPwAtXr/wycuXVTAcFJg+DKhnPDDbnwbA9KRW0SawAVOGvVEj8ZrBlU0u0FGLrbg==",
11140
- "dependencies": {
11141
- "@babel/runtime": "^7.11.2",
11142
- "classnames": "2.x",
11143
- "rc-dropdown": "~4.2.0",
11144
- "rc-menu": "~9.14.0",
11145
- "rc-motion": "^2.6.2",
11146
- "rc-resize-observer": "^1.0.0",
11147
- "rc-util": "^5.34.1"
11148
- },
11149
- "engines": {
11150
- "node": ">=8.x"
11151
- },
11152
- "peerDependencies": {
11153
- "react": ">=16.9.0",
11154
- "react-dom": ">=16.9.0"
11155
- }
11156
- },
11157
- "node_modules/rc-textarea": {
11158
- "version": "1.7.0",
11159
- "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.7.0.tgz",
11160
- "integrity": "sha512-UxizYJkWkmxP3zofXgc487QiGyDmhhheDLLjIWbFtDmiru1ls30KpO8odDaPyqNUIy9ugj5djxTEuezIn6t3Jg==",
11161
- "dependencies": {
11162
- "@babel/runtime": "^7.10.1",
11163
- "classnames": "^2.2.1",
11164
- "rc-input": "~1.5.0",
11165
- "rc-resize-observer": "^1.0.0",
11166
- "rc-util": "^5.27.0"
11167
- },
11168
- "peerDependencies": {
11169
- "react": ">=16.9.0",
11170
- "react-dom": ">=16.9.0"
11171
- }
11172
- },
11173
- "node_modules/rc-tooltip": {
11174
- "version": "6.2.0",
11175
- "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.2.0.tgz",
11176
- "integrity": "sha512-iS/3iOAvtDh9GIx1ulY7EFUXUtktFccNLsARo3NPgLf0QW9oT0w3dA9cYWlhqAKmD+uriEwdWz1kH0Qs4zk2Aw==",
11177
- "dependencies": {
11178
- "@babel/runtime": "^7.11.2",
11179
- "@rc-component/trigger": "^2.0.0",
11180
- "classnames": "^2.3.1"
11181
- },
11182
- "peerDependencies": {
11183
- "react": ">=16.9.0",
11184
- "react-dom": ">=16.9.0"
11185
- }
11186
- },
11187
- "node_modules/rc-tree": {
11188
- "version": "5.8.7",
11189
- "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.8.7.tgz",
11190
- "integrity": "sha512-cpsIQZ4nNYwpj6cqPRt52e/69URuNdgQF9wZ10InmEf8W3+i0A41OVmZWwHuX9gegQSqj+DPmaDkZFKQZ+ZV1w==",
11191
- "dependencies": {
11192
- "@babel/runtime": "^7.10.1",
11193
- "classnames": "2.x",
11194
- "rc-motion": "^2.0.1",
11195
- "rc-util": "^5.16.1",
11196
- "rc-virtual-list": "^3.5.1"
11197
- },
11198
- "engines": {
11199
- "node": ">=10.x"
11200
- },
11201
- "peerDependencies": {
11202
- "react": "*",
11203
- "react-dom": "*"
11204
- }
11205
- },
11206
- "node_modules/rc-tree-select": {
11207
- "version": "5.21.0",
11208
- "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.21.0.tgz",
11209
- "integrity": "sha512-w+9qEu6zh0G3wt9N/hzWNSnqYH1i9mH1Nqxo0caxLRRFXF5yZWYmpCDoDTMdQM1Y4z3Q5yj08qyrPH/d4AtumA==",
11210
- "dependencies": {
11211
- "@babel/runtime": "^7.10.1",
11212
- "classnames": "2.x",
11213
- "rc-select": "~14.14.0",
11214
- "rc-tree": "~5.8.1",
11215
- "rc-util": "^5.16.1"
11216
- },
11217
- "peerDependencies": {
11218
- "react": "*",
11219
- "react-dom": "*"
11220
- }
11221
- },
11222
- "node_modules/rc-upload": {
11223
- "version": "4.5.2",
11224
- "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.5.2.tgz",
11225
- "integrity": "sha512-QO3ne77DwnAPKFn0bA5qJM81QBjQi0e0NHdkvpFyY73Bea2NfITiotqJqVjHgeYPOJu5lLVR32TNGP084aSoXA==",
11226
- "dependencies": {
11227
- "@babel/runtime": "^7.18.3",
11228
- "classnames": "^2.2.5",
11229
- "rc-util": "^5.2.0"
11230
- },
11231
- "peerDependencies": {
11232
- "react": ">=16.9.0",
11233
- "react-dom": ">=16.9.0"
11234
- }
11235
- },
11236
- "node_modules/rc-util": {
11237
- "version": "5.41.0",
11238
- "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.41.0.tgz",
11239
- "integrity": "sha512-xtlCim9RpmVv0Ar2Nnc3WfJCxjQkTf3xHPWoFdjp1fSs2NirQwqiQrfqdU9HUe0kdfb168M/T8Dq0IaX50xeKg==",
11240
- "dependencies": {
11241
- "@babel/runtime": "^7.18.3",
11242
- "react-is": "^18.2.0"
11243
- },
11244
- "peerDependencies": {
11245
- "react": ">=16.9.0",
11246
- "react-dom": ">=16.9.0"
11247
- }
11248
- },
11249
- "node_modules/rc-util/node_modules/react-is": {
11250
- "version": "18.3.1",
11251
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
11252
- "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="
11253
- },
11254
- "node_modules/rc-virtual-list": {
11255
- "version": "3.14.2",
11256
- "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.14.2.tgz",
11257
- "integrity": "sha512-rA+W5xryhklJAcmswNyuKB3ZGeB855io+yOFQK5u/RXhjdshGblfKpNkQr4/9fBhZns0+uiL/0/s6IP2krtSmg==",
11258
- "dependencies": {
11259
- "@babel/runtime": "^7.20.0",
11260
- "classnames": "^2.2.6",
11261
- "rc-resize-observer": "^1.0.0",
11262
- "rc-util": "^5.36.0"
11263
- },
11264
- "engines": {
11265
- "node": ">=8.x"
11266
- },
11267
- "peerDependencies": {
11268
- "react": ">=16.9.0",
11269
- "react-dom": ">=16.9.0"
11270
- }
11271
- },
11272
  "node_modules/rc/node_modules/strip-json-comments": {
11273
  "version": "2.0.1",
11274
  "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
@@ -11781,11 +10873,6 @@
11781
  "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
11782
  "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
11783
  },
11784
- "node_modules/resize-observer-polyfill": {
11785
- "version": "1.5.1",
11786
- "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
11787
- "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
11788
- },
11789
  "node_modules/resolve": {
11790
  "version": "1.22.8",
11791
  "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
@@ -12052,14 +11139,6 @@
12052
  "dev": true,
12053
  "peer": true
12054
  },
12055
- "node_modules/scroll-into-view-if-needed": {
12056
- "version": "3.1.0",
12057
- "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz",
12058
- "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==",
12059
- "dependencies": {
12060
- "compute-scroll-into-view": "^3.0.2"
12061
- }
12062
- },
12063
  "node_modules/secure-json-parse": {
12064
  "version": "2.7.0",
12065
  "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz",
@@ -12422,11 +11501,6 @@
12422
  "node": ">=14.18.0"
12423
  }
12424
  },
12425
- "node_modules/string-convert": {
12426
- "version": "0.2.1",
12427
- "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz",
12428
- "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A=="
12429
- },
12430
  "node_modules/string-left-right": {
12431
  "version": "6.0.17",
12432
  "resolved": "https://registry.npmjs.org/string-left-right/-/string-left-right-6.0.17.tgz",
@@ -12693,11 +11767,6 @@
12693
  }
12694
  }
12695
  },
12696
- "node_modules/stylis": {
12697
- "version": "4.3.2",
12698
- "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz",
12699
- "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg=="
12700
- },
12701
  "node_modules/sucrase": {
12702
  "version": "3.35.0",
12703
  "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
@@ -12995,14 +12064,6 @@
12995
  "node": ">=0.8"
12996
  }
12997
  },
12998
- "node_modules/throttle-debounce": {
12999
- "version": "5.0.0",
13000
- "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.0.tgz",
13001
- "integrity": "sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==",
13002
- "engines": {
13003
- "node": ">=12.22"
13004
- }
13005
- },
13006
  "node_modules/through2": {
13007
  "version": "4.0.2",
13008
  "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
@@ -13117,11 +12178,6 @@
13117
  "url": "https://opencollective.com/unified"
13118
  }
13119
  },
13120
- "node_modules/toggle-selection": {
13121
- "version": "1.0.6",
13122
- "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz",
13123
- "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ=="
13124
- },
13125
  "node_modules/tough-cookie": {
13126
  "version": "4.1.4",
13127
  "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz",
 
8
  "name": "codepath-project",
9
  "version": "0.1.0",
10
  "dependencies": {
 
11
  "@llamaindex/pdf-viewer": "^1.1.1",
12
  "@radix-ui/react-collapsible": "^1.0.3",
13
  "@radix-ui/react-hover-card": "^1.0.7",
 
15
  "@traceloop/node-server-sdk": "^0.5.19",
16
  "ai": "^3.0.21",
17
  "ajv": "^8.12.0",
 
18
  "class-variance-authority": "^0.7.0",
19
  "clsx": "^2.1.1",
20
  "dotenv": "^16.3.1",
21
  "llamaindex": "0.3.13",
22
  "lucide-react": "^0.294.0",
 
23
  "next": "^14.0.3",
24
  "pdf2json": "3.0.5",
25
  "react": "^18.2.0",
 
112
  "node": ">=6.0.0"
113
  }
114
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
115
  "node_modules/@anthropic-ai/sdk": {
116
  "version": "0.20.9",
117
  "resolved": "https://registry.npmjs.org/@anthropic-ai/sdk/-/sdk-0.20.9.tgz",
 
201
  "node": ">=0.1.90"
202
  }
203
  },
 
 
 
 
 
 
 
 
204
  "node_modules/@dabh/diagnostics": {
205
  "version": "2.0.3",
206
  "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz",
 
226
  "node": ">=14.0.0"
227
  }
228
  },
 
 
 
 
 
 
 
 
 
 
229
  "node_modules/@esbuild/aix-ppc64": {
230
  "version": "0.20.2",
231
  "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz",
 
2132
  "@babel/runtime": "^7.13.10"
2133
  }
2134
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2135
  "node_modules/@rushstack/eslint-patch": {
2136
  "version": "1.10.3",
2137
  "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.3.tgz",
 
3226
  "url": "https://github.com/chalk/ansi-styles?sponsor=1"
3227
  }
3228
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3229
  "node_modules/any-promise": {
3230
  "version": "1.3.0",
3231
  "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
 
3311
  "url": "https://github.com/sponsors/ljharb"
3312
  }
3313
  },
 
 
 
 
 
3314
  "node_modules/array-union": {
3315
  "version": "2.1.0",
3316
  "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
 
4040
  "node": ">=6"
4041
  }
4042
  },
 
 
 
 
 
4043
  "node_modules/client-only": {
4044
  "version": "0.0.1",
4045
  "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
 
4250
  "node": ">= 6"
4251
  }
4252
  },
 
 
 
 
 
4253
  "node_modules/concat-map": {
4254
  "version": "0.0.1",
4255
  "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
4256
  "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
4257
  "dev": true
4258
  },
 
 
 
 
 
 
 
 
4259
  "node_modules/core-util-is": {
4260
  "version": "1.0.3",
4261
  "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
 
7345
  "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
7346
  "dev": true
7347
  },
 
 
 
 
 
 
 
 
7348
  "node_modules/json5": {
7349
  "version": "2.2.3",
7350
  "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
 
8810
  "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz",
8811
  "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A=="
8812
  },
 
 
 
 
 
 
 
 
8813
  "node_modules/mongodb": {
8814
  "version": "6.6.2",
8815
  "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.6.2.tgz",
 
10238
  "node": ">=6"
10239
  }
10240
  },
 
 
 
 
 
 
 
 
10241
  "node_modules/qs": {
10242
  "version": "6.11.2",
10243
  "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz",
 
10361
  "rc": "cli.js"
10362
  }
10363
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10364
  "node_modules/rc/node_modules/strip-json-comments": {
10365
  "version": "2.0.1",
10366
  "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
 
10873
  "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
10874
  "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
10875
  },
 
 
 
 
 
10876
  "node_modules/resolve": {
10877
  "version": "1.22.8",
10878
  "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
 
11139
  "dev": true,
11140
  "peer": true
11141
  },
 
 
 
 
 
 
 
 
11142
  "node_modules/secure-json-parse": {
11143
  "version": "2.7.0",
11144
  "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz",
 
11501
  "node": ">=14.18.0"
11502
  }
11503
  },
 
 
 
 
 
11504
  "node_modules/string-left-right": {
11505
  "version": "6.0.17",
11506
  "resolved": "https://registry.npmjs.org/string-left-right/-/string-left-right-6.0.17.tgz",
 
11767
  }
11768
  }
11769
  },
 
 
 
 
 
11770
  "node_modules/sucrase": {
11771
  "version": "3.35.0",
11772
  "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
 
12064
  "node": ">=0.8"
12065
  }
12066
  },
 
 
 
 
 
 
 
 
12067
  "node_modules/through2": {
12068
  "version": "4.0.2",
12069
  "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
 
12178
  "url": "https://opencollective.com/unified"
12179
  }
12180
  },
 
 
 
 
 
12181
  "node_modules/tough-cookie": {
12182
  "version": "4.1.4",
12183
  "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz",
package.json CHANGED
@@ -11,35 +11,32 @@
11
  "generate": "tsx app/api/chat/engine/generate.ts"
12
  },
13
  "dependencies": {
14
- "@ant-design/nextjs-registry": "^1.0.0",
15
- "@llamaindex/pdf-viewer": "^1.1.1",
16
  "@radix-ui/react-collapsible": "^1.0.3",
17
  "@radix-ui/react-hover-card": "^1.0.7",
18
  "@radix-ui/react-slot": "^1.0.2",
19
- "@traceloop/node-server-sdk": "^0.5.19",
20
  "ai": "^3.0.21",
21
  "ajv": "^8.12.0",
22
- "antd": "^5.17.4",
23
  "class-variance-authority": "^0.7.0",
24
  "clsx": "^2.1.1",
25
  "dotenv": "^16.3.1",
26
  "llamaindex": "0.3.13",
27
  "lucide-react": "^0.294.0",
28
- "moment": "^2.30.1",
29
  "next": "^14.0.3",
30
  "pdf2json": "3.0.5",
31
  "react": "^18.2.0",
32
  "react-dom": "^18.2.0",
33
  "react-markdown": "^8.0.7",
34
  "react-syntax-highlighter": "^15.5.0",
35
- "rehype-katex": "^7.0.0",
36
  "remark": "^14.0.3",
37
  "remark-code-import": "^1.2.0",
38
  "remark-gfm": "^3.0.1",
39
  "remark-math": "^5.1.1",
 
40
  "supports-color": "^8.1.1",
41
  "tailwind-merge": "^2.1.0",
42
- "vaul": "^0.9.1"
 
 
43
  },
44
  "devDependencies": {
45
  "@types/node": "^20.10.3",
@@ -51,12 +48,12 @@
51
  "eslint": "^8.55.0",
52
  "eslint-config-next": "^14.0.3",
53
  "eslint-config-prettier": "^8.10.0",
54
- "node-loader": "^2.0.0",
55
  "postcss": "^8.4.32",
56
  "prettier": "^3.2.5",
57
  "prettier-plugin-organize-imports": "^3.2.4",
58
  "tailwindcss": "^3.3.6",
59
  "tsx": "^4.7.2",
60
- "typescript": "^5.3.2"
 
61
  }
62
  }
 
11
  "generate": "tsx app/api/chat/engine/generate.ts"
12
  },
13
  "dependencies": {
 
 
14
  "@radix-ui/react-collapsible": "^1.0.3",
15
  "@radix-ui/react-hover-card": "^1.0.7",
16
  "@radix-ui/react-slot": "^1.0.2",
 
17
  "ai": "^3.0.21",
18
  "ajv": "^8.12.0",
 
19
  "class-variance-authority": "^0.7.0",
20
  "clsx": "^2.1.1",
21
  "dotenv": "^16.3.1",
22
  "llamaindex": "0.3.13",
23
  "lucide-react": "^0.294.0",
 
24
  "next": "^14.0.3",
25
  "pdf2json": "3.0.5",
26
  "react": "^18.2.0",
27
  "react-dom": "^18.2.0",
28
  "react-markdown": "^8.0.7",
29
  "react-syntax-highlighter": "^15.5.0",
 
30
  "remark": "^14.0.3",
31
  "remark-code-import": "^1.2.0",
32
  "remark-gfm": "^3.0.1",
33
  "remark-math": "^5.1.1",
34
+ "rehype-katex": "^7.0.0",
35
  "supports-color": "^8.1.1",
36
  "tailwind-merge": "^2.1.0",
37
+ "vaul": "^0.9.1",
38
+ "@llamaindex/pdf-viewer": "^1.1.1",
39
+ "@traceloop/node-server-sdk": "^0.5.19"
40
  },
41
  "devDependencies": {
42
  "@types/node": "^20.10.3",
 
48
  "eslint": "^8.55.0",
49
  "eslint-config-next": "^14.0.3",
50
  "eslint-config-prettier": "^8.10.0",
 
51
  "postcss": "^8.4.32",
52
  "prettier": "^3.2.5",
53
  "prettier-plugin-organize-imports": "^3.2.4",
54
  "tailwindcss": "^3.3.6",
55
  "tsx": "^4.7.2",
56
+ "typescript": "^5.3.2",
57
+ "node-loader": "^2.0.0"
58
  }
59
  }
public/logo.jpg DELETED
Binary file (159 kB)