Spaces:
Build error
Build error
Update Header to be Mobile Responsive
Browse files- backend/poetry.lock +10 -24
- backend/pyproject.toml +3 -3
- frontend/app/components/header.tsx +153 -18
- frontend/package-lock.json +248 -1
- frontend/package.json +2 -1
backend/poetry.lock
CHANGED
@@ -109,20 +109,6 @@ files = [
|
|
109 |
[package.dependencies]
|
110 |
frozenlist = ">=1.1.0"
|
111 |
|
112 |
-
[[package]]
|
113 |
-
name = "aiostream"
|
114 |
-
version = "0.5.2"
|
115 |
-
description = "Generator-based operators for asynchronous iteration"
|
116 |
-
optional = false
|
117 |
-
python-versions = ">=3.8"
|
118 |
-
files = [
|
119 |
-
{file = "aiostream-0.5.2-py3-none-any.whl", hash = "sha256:054660370be9d37f6fe3ece3851009240416bd082e469fd90cc8673d3818cf71"},
|
120 |
-
{file = "aiostream-0.5.2.tar.gz", hash = "sha256:b71b519a2d66c38f0872403ab86417955b77352f08d9ad02ad46fc3926b389f4"},
|
121 |
-
]
|
122 |
-
|
123 |
-
[package.dependencies]
|
124 |
-
typing-extensions = "*"
|
125 |
-
|
126 |
[[package]]
|
127 |
name = "annotated-types"
|
128 |
version = "0.6.0"
|
@@ -799,20 +785,19 @@ test = ["httpx (>=0.24.1)", "pytest (>=7.4.0)"]
|
|
799 |
|
800 |
[[package]]
|
801 |
name = "llama-index"
|
802 |
-
version = "0.9.
|
803 |
description = "Interface between LLMs and your data"
|
804 |
optional = false
|
805 |
-
python-versions = ">=3.8.1,<
|
806 |
files = [
|
807 |
-
{file = "llama_index-0.9.
|
808 |
-
{file = "llama_index-0.9.
|
809 |
]
|
810 |
|
811 |
[package.dependencies]
|
812 |
aiohttp = ">=3.8.6,<4.0.0"
|
813 |
-
aiostream = ">=0.5.2,<0.6.0"
|
814 |
beautifulsoup4 = ">=4.12.2,<5.0.0"
|
815 |
-
dataclasses-json = "
|
816 |
deprecated = ">=1.2.9.3"
|
817 |
fsspec = ">=2023.5.0"
|
818 |
httpx = "*"
|
@@ -820,19 +805,20 @@ nest-asyncio = ">=1.5.8,<2.0.0"
|
|
820 |
nltk = ">=3.8.1,<4.0.0"
|
821 |
numpy = "*"
|
822 |
openai = ">=1.1.0"
|
823 |
-
pandas =
|
|
|
824 |
SQLAlchemy = {version = ">=1.4.49", extras = ["asyncio"]}
|
825 |
tenacity = ">=8.2.0,<9.0.0"
|
826 |
tiktoken = ">=0.3.3"
|
827 |
typing-extensions = ">=4.5.0"
|
828 |
typing-inspect = ">=0.8.0"
|
829 |
-
urllib3 = "<2"
|
830 |
|
831 |
[package.extras]
|
|
|
832 |
langchain = ["langchain (>=0.0.303)"]
|
833 |
local-models = ["optimum[onnxruntime] (>=1.13.2,<2.0.0)", "sentencepiece (>=0.1.99,<0.2.0)", "transformers[torch] (>=4.34.0,<5.0.0)"]
|
834 |
postgres = ["asyncpg (>=0.28.0,<0.29.0)", "pgvector (>=0.1.0,<0.2.0)", "psycopg-binary (>=3.1.12,<4.0.0)"]
|
835 |
-
query-tools = ["guidance (>=0.0.64,<0.0.65)", "jsonpath-ng (>=1.6.0,<2.0.0)", "lm-format-enforcer (>=0.4.3,<0.5.0)", "rank-bm25 (>=0.2.2,<0.3.0)", "scikit-learn
|
836 |
|
837 |
[[package]]
|
838 |
name = "markupsafe"
|
@@ -2794,4 +2780,4 @@ multidict = ">=4.0"
|
|
2794 |
[metadata]
|
2795 |
lock-version = "2.0"
|
2796 |
python-versions = "^3.11,<3.12"
|
2797 |
-
content-hash = "
|
|
|
109 |
[package.dependencies]
|
110 |
frozenlist = ">=1.1.0"
|
111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
[[package]]
|
113 |
name = "annotated-types"
|
114 |
version = "0.6.0"
|
|
|
785 |
|
786 |
[[package]]
|
787 |
name = "llama-index"
|
788 |
+
version = "0.9.22"
|
789 |
description = "Interface between LLMs and your data"
|
790 |
optional = false
|
791 |
+
python-versions = ">=3.8.1,<4.0"
|
792 |
files = [
|
793 |
+
{file = "llama_index-0.9.22-py3-none-any.whl", hash = "sha256:8731b2137decfae9f56a2837f3791d8e4ce434a9ec9d6d74d6dafb2d736f05f7"},
|
794 |
+
{file = "llama_index-0.9.22.tar.gz", hash = "sha256:7eecb62106398f9c5b1c04e79fee82a1004c26387055335c23a8f33833c8afff"},
|
795 |
]
|
796 |
|
797 |
[package.dependencies]
|
798 |
aiohttp = ">=3.8.6,<4.0.0"
|
|
|
799 |
beautifulsoup4 = ">=4.12.2,<5.0.0"
|
800 |
+
dataclasses-json = "*"
|
801 |
deprecated = ">=1.2.9.3"
|
802 |
fsspec = ">=2023.5.0"
|
803 |
httpx = "*"
|
|
|
805 |
nltk = ">=3.8.1,<4.0.0"
|
806 |
numpy = "*"
|
807 |
openai = ">=1.1.0"
|
808 |
+
pandas = "*"
|
809 |
+
requests = ">=2.31.0"
|
810 |
SQLAlchemy = {version = ">=1.4.49", extras = ["asyncio"]}
|
811 |
tenacity = ">=8.2.0,<9.0.0"
|
812 |
tiktoken = ">=0.3.3"
|
813 |
typing-extensions = ">=4.5.0"
|
814 |
typing-inspect = ">=0.8.0"
|
|
|
815 |
|
816 |
[package.extras]
|
817 |
+
gradientai = ["gradientai (>=1.4.0)"]
|
818 |
langchain = ["langchain (>=0.0.303)"]
|
819 |
local-models = ["optimum[onnxruntime] (>=1.13.2,<2.0.0)", "sentencepiece (>=0.1.99,<0.2.0)", "transformers[torch] (>=4.34.0,<5.0.0)"]
|
820 |
postgres = ["asyncpg (>=0.28.0,<0.29.0)", "pgvector (>=0.1.0,<0.2.0)", "psycopg-binary (>=3.1.12,<4.0.0)"]
|
821 |
+
query-tools = ["guidance (>=0.0.64,<0.0.65)", "jsonpath-ng (>=1.6.0,<2.0.0)", "lm-format-enforcer (>=0.4.3,<0.5.0)", "rank-bm25 (>=0.2.2,<0.3.0)", "scikit-learn", "spacy (>=3.7.1,<4.0.0)"]
|
822 |
|
823 |
[[package]]
|
824 |
name = "markupsafe"
|
|
|
2780 |
[metadata]
|
2781 |
lock-version = "2.0"
|
2782 |
python-versions = "^3.11,<3.12"
|
2783 |
+
content-hash = "5d6afd898b5a1c9f177f523fecff666723292db0858f92516d0346a43f01890d"
|
backend/pyproject.toml
CHANGED
@@ -10,13 +10,13 @@ packages = [{include = "backend"}]
|
|
10 |
python = "^3.11,<3.12"
|
11 |
fastapi = "^0.104.1"
|
12 |
uvicorn = { extras = ["standard"], version = "^0.23.2" }
|
13 |
-
llama-index = "^0.9.
|
14 |
pypdf = "^3.17.0"
|
15 |
python-dotenv = "^1.0.0"
|
16 |
llama-cpp-python = "^0.2.18"
|
17 |
transformers = "^4.35.2"
|
18 |
-
|
19 |
-
torch = { url = "https://download.pytorch.org/whl/cu121/torch-2.1.1%2Bcu121-cp311-cp311-win_amd64.whl"} # For Windows with Cuda 12.1
|
20 |
# torch = { url = "https://download.pytorch.org/whl/cu121/torch-2.1.1%2Bcu121-cp311-cp311-linux_x86_64.whl"} # For Linux with Cuda 12.1
|
21 |
docx2txt = "^0.8"
|
22 |
|
|
|
10 |
python = "^3.11,<3.12"
|
11 |
fastapi = "^0.104.1"
|
12 |
uvicorn = { extras = ["standard"], version = "^0.23.2" }
|
13 |
+
llama-index = "^0.9.22"
|
14 |
pypdf = "^3.17.0"
|
15 |
python-dotenv = "^1.0.0"
|
16 |
llama-cpp-python = "^0.2.18"
|
17 |
transformers = "^4.35.2"
|
18 |
+
torch = "^2.1.1" # For CPU version both Windows and Linux
|
19 |
+
# torch = { url = "https://download.pytorch.org/whl/cu121/torch-2.1.1%2Bcu121-cp311-cp311-win_amd64.whl"} # For Windows with Cuda 12.1
|
20 |
# torch = { url = "https://download.pytorch.org/whl/cu121/torch-2.1.1%2Bcu121-cp311-cp311-linux_x86_64.whl"} # For Linux with Cuda 12.1
|
21 |
docx2txt = "^0.8"
|
22 |
|
frontend/app/components/header.tsx
CHANGED
@@ -2,28 +2,127 @@
|
|
2 |
|
3 |
import Link from 'next/link';
|
4 |
import Image from 'next/image';
|
5 |
-
import { Home, InfoIcon, MessageCircle, Search } from 'lucide-react';
|
6 |
import { usePathname } from 'next/navigation';
|
7 |
import { useTheme } from "next-themes";
|
8 |
-
import { useEffect, useState } from "react";
|
|
|
9 |
import logo from '../../public/smart-retrieval-logo.webp'
|
10 |
|
11 |
interface NavLinkProps {
|
12 |
href: string;
|
13 |
children: React.ReactNode;
|
|
|
14 |
}
|
15 |
|
16 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
// Use the useRouter hook to get information about the current route
|
18 |
const pathname = usePathname();
|
19 |
|
20 |
// Determine if the current tab is active
|
21 |
const isActive = pathname === href;
|
22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
return (
|
24 |
<Link href={href} passHref>
|
25 |
{/* Add a class to highlight the active tab */}
|
26 |
-
<div className={`flex items-center font-bold ${isActive ? 'text-blue-500' : ''}`}>
|
27 |
{children}
|
28 |
</div>
|
29 |
</Link>
|
@@ -31,6 +130,7 @@ const NavLink: React.FC<NavLinkProps> = ({ href, children }) => {
|
|
31 |
};
|
32 |
|
33 |
export default function Header() {
|
|
|
34 |
const [mounted, setMounted] = useState(false);
|
35 |
const { theme, setTheme } = useTheme();
|
36 |
|
@@ -38,6 +138,19 @@ export default function Header() {
|
|
38 |
setMounted(true);
|
39 |
}, []);
|
40 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
if (!mounted) return null;
|
42 |
|
43 |
return (
|
@@ -45,24 +158,40 @@ export default function Header() {
|
|
45 |
{/* Navigation Bar */}
|
46 |
<nav className="fixed left-0 top-0 w-full bg-gradient-to-b from-zinc-200 pb-2 pt-2 backdrop-blur-2xl dark:border-neutral-700 dark:bg-zinc-700/30 dark:from-inherit lg:static lg:w-auto lg:rounded-xl lg:border lg:bg-gray-100 lg:p-4 lg:dark:bg-zinc-800/30 shadow-xl">
|
47 |
<div className="flex items-center flex-wrap lg:flex-nowrap px-4">
|
48 |
-
|
49 |
-
<
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
|
|
|
|
61 |
<div className="flex items-center pr-2 pl-2 gap-2">
|
62 |
<span className="hidden lg:inline lg:text-lg font-nunito font-bold">Smart Retrieval</span>
|
63 |
<span className="hidden lg:inline lg:text-lg font-nunito">|</span>
|
64 |
</div>
|
65 |
-
<div className="flex items-center gap-4">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
<NavLink href="/">
|
67 |
<div className="flex items-center transition duration-300 ease-in-out transform hover:scale-125">
|
68 |
<Home className="mr-1 h-4 w-4" />
|
@@ -81,6 +210,12 @@ export default function Header() {
|
|
81 |
Chat
|
82 |
</div>
|
83 |
</NavLink>
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
<NavLink href="/search">
|
85 |
<div className="flex items-center transition duration-300 ease-in-out transform hover:scale-125">
|
86 |
<Search className="mr-1 h-4 w-4" />
|
|
|
2 |
|
3 |
import Link from 'next/link';
|
4 |
import Image from 'next/image';
|
5 |
+
import { Home, InfoIcon, MessageCircle, Search, FileQuestion, Menu } from 'lucide-react';
|
6 |
import { usePathname } from 'next/navigation';
|
7 |
import { useTheme } from "next-themes";
|
8 |
+
import { useEffect, useState, useRef } from "react";
|
9 |
+
import { useMedia } from 'react-use';
|
10 |
import logo from '../../public/smart-retrieval-logo.webp'
|
11 |
|
12 |
interface NavLinkProps {
|
13 |
href: string;
|
14 |
children: React.ReactNode;
|
15 |
+
onClick?: () => void; // Include onClick as an optional prop
|
16 |
}
|
17 |
|
18 |
+
interface MobileMenuProps {
|
19 |
+
isOpen: boolean;
|
20 |
+
onClose: () => void;
|
21 |
+
}
|
22 |
+
|
23 |
+
const MobileMenu: React.FC<MobileMenuProps> = ({ isOpen, onClose }) => {
|
24 |
+
const isLargeScreen = useMedia('(min-width: 1024px)');
|
25 |
+
const menuRef = useRef<HTMLDivElement | null>(null);
|
26 |
+
|
27 |
+
useEffect(() => {
|
28 |
+
const handleOutsideClick = (event: MouseEvent | TouchEvent) => {
|
29 |
+
if (
|
30 |
+
!isLargeScreen &&
|
31 |
+
isOpen &&
|
32 |
+
!menuRef.current?.contains(event.target as Node) &&
|
33 |
+
!((event.target as HTMLElement).closest('.toggle-button')) // Exclude the toggle button
|
34 |
+
) {
|
35 |
+
onClose(); // Close the menu
|
36 |
+
}
|
37 |
+
};
|
38 |
+
|
39 |
+
if (!isLargeScreen && isOpen) {
|
40 |
+
// Add event listeners for both mouse and touch events
|
41 |
+
document.addEventListener('mousedown', handleOutsideClick);
|
42 |
+
}
|
43 |
+
|
44 |
+
return () => {
|
45 |
+
// Remove the event listener when the component unmounts
|
46 |
+
document.removeEventListener('mousedown', handleOutsideClick);
|
47 |
+
};
|
48 |
+
}, [isLargeScreen, isOpen, onClose]);
|
49 |
+
|
50 |
+
useEffect(() => {
|
51 |
+
if (isLargeScreen && isOpen) {
|
52 |
+
onClose();
|
53 |
+
}
|
54 |
+
}, [isLargeScreen, isOpen, onClose]);
|
55 |
+
return (
|
56 |
+
<div ref={menuRef} className={`w-full h-full p-2 bg-opacity-80 ${isOpen ? 'flex' : 'hidden'}`}>
|
57 |
+
<div className="flex items-center justify-center mt-2" style={{ width: '9%', height: '9%' }}>
|
58 |
+
<Image
|
59 |
+
className='rounded-full max-w-full'
|
60 |
+
src={logo}
|
61 |
+
alt="Logo"
|
62 |
+
style={{
|
63 |
+
width: 'auto',
|
64 |
+
height: 'auto',
|
65 |
+
}}
|
66 |
+
priority
|
67 |
+
sizes="100vw, 50vw, 33vw"
|
68 |
+
/>
|
69 |
+
</div>
|
70 |
+
<div className="flex items-center justify-center h-full">
|
71 |
+
{/* Mobile menu content */}
|
72 |
+
<div className="w-64 p-4 rounded-r-md">
|
73 |
+
<NavLink href="/" onClick={onClose}>
|
74 |
+
<div className="flex items-center mb-4">
|
75 |
+
<Home className="mr-2 h-5 w-5" />
|
76 |
+
Home
|
77 |
+
</div>
|
78 |
+
</NavLink>
|
79 |
+
<NavLink href="/about" onClick={onClose}>
|
80 |
+
<div className="flex items-center mb-4">
|
81 |
+
<InfoIcon className="mr-2 h-5 w-5" />
|
82 |
+
About
|
83 |
+
</div>
|
84 |
+
</NavLink>
|
85 |
+
<NavLink href="/chat" onClick={onClose}>
|
86 |
+
<div className="flex items-center mb-4">
|
87 |
+
<MessageCircle className="mr-2 h-5 w-5" />
|
88 |
+
Chat
|
89 |
+
</div>
|
90 |
+
</NavLink>
|
91 |
+
<NavLink href="/query" onClick={onClose}>
|
92 |
+
<div className="flex items-center mb-4">
|
93 |
+
<FileQuestion className="mr-2 h-5 w-5" />
|
94 |
+
Query
|
95 |
+
</div>
|
96 |
+
</NavLink>
|
97 |
+
<NavLink href="/search" onClick={onClose}>
|
98 |
+
<div className="flex items-center">
|
99 |
+
<Search className="mr-2 h-5 w-5" />
|
100 |
+
Search
|
101 |
+
</div>
|
102 |
+
</NavLink>
|
103 |
+
</div>
|
104 |
+
</div>
|
105 |
+
</div>
|
106 |
+
);
|
107 |
+
};
|
108 |
+
|
109 |
+
const NavLink: React.FC<NavLinkProps> = ({ href, children, onClick }) => {
|
110 |
// Use the useRouter hook to get information about the current route
|
111 |
const pathname = usePathname();
|
112 |
|
113 |
// Determine if the current tab is active
|
114 |
const isActive = pathname === href;
|
115 |
|
116 |
+
const handleClick = () => {
|
117 |
+
if (onClick) {
|
118 |
+
onClick(); // Call the onClick handler if provided
|
119 |
+
}
|
120 |
+
};
|
121 |
+
|
122 |
return (
|
123 |
<Link href={href} passHref>
|
124 |
{/* Add a class to highlight the active tab */}
|
125 |
+
<div className={`flex items-center font-bold ${isActive ? 'text-blue-500' : ''}`} onClick={handleClick}>
|
126 |
{children}
|
127 |
</div>
|
128 |
</Link>
|
|
|
130 |
};
|
131 |
|
132 |
export default function Header() {
|
133 |
+
const isLargeScreen = useMedia('(min-width: 1024px)');
|
134 |
const [mounted, setMounted] = useState(false);
|
135 |
const { theme, setTheme } = useTheme();
|
136 |
|
|
|
138 |
setMounted(true);
|
139 |
}, []);
|
140 |
|
141 |
+
const [isMobileMenuOpen, setMobileMenuOpen] = useState(false);
|
142 |
+
|
143 |
+
const toggleMobileMenu = () => {
|
144 |
+
// Handle the toggle click here
|
145 |
+
if (isMobileMenuOpen) {
|
146 |
+
// If the menu is open, close it
|
147 |
+
setMobileMenuOpen(false);
|
148 |
+
} else {
|
149 |
+
// If the menu is closed, open it
|
150 |
+
setMobileMenuOpen(true);
|
151 |
+
}
|
152 |
+
};
|
153 |
+
|
154 |
if (!mounted) return null;
|
155 |
|
156 |
return (
|
|
|
158 |
{/* Navigation Bar */}
|
159 |
<nav className="fixed left-0 top-0 w-full bg-gradient-to-b from-zinc-200 pb-2 pt-2 backdrop-blur-2xl dark:border-neutral-700 dark:bg-zinc-700/30 dark:from-inherit lg:static lg:w-auto lg:rounded-xl lg:border lg:bg-gray-100 lg:p-4 lg:dark:bg-zinc-800/30 shadow-xl">
|
160 |
<div className="flex items-center flex-wrap lg:flex-nowrap px-4">
|
161 |
+
{isLargeScreen && (
|
162 |
+
<div className="flex items-center" style={{ width: '6%', height: 'auto' }}>
|
163 |
+
<Image
|
164 |
+
className='rounded-full max-w-full'
|
165 |
+
src={logo}
|
166 |
+
alt="Logo"
|
167 |
+
style={{
|
168 |
+
width: 'auto',
|
169 |
+
height: 'auto',
|
170 |
+
}}
|
171 |
+
priority
|
172 |
+
sizes="100vw, 50vw, 33vw"
|
173 |
+
/>
|
174 |
+
</div>
|
175 |
+
)}
|
176 |
<div className="flex items-center pr-2 pl-2 gap-2">
|
177 |
<span className="hidden lg:inline lg:text-lg font-nunito font-bold">Smart Retrieval</span>
|
178 |
<span className="hidden lg:inline lg:text-lg font-nunito">|</span>
|
179 |
</div>
|
180 |
+
<div className="flex items-center gap-4 lg:hidden">
|
181 |
+
{/* Toggle button for mobile menu */}
|
182 |
+
<button
|
183 |
+
className="flex items-center text-xl transition duration-300 ease-in-out transform hover:scale-125 toggle-button"
|
184 |
+
title="Toggle mobile menu"
|
185 |
+
onClick={toggleMobileMenu}
|
186 |
+
>
|
187 |
+
<span role="img" aria-label="menu icon">
|
188 |
+
<Menu />
|
189 |
+
</span>
|
190 |
+
</button>
|
191 |
+
</div>
|
192 |
+
{/* Mobile menu component */}
|
193 |
+
<MobileMenu isOpen={isMobileMenuOpen} onClose={() => setMobileMenuOpen(false)} />
|
194 |
+
<div className={`hidden items-center gap-4 lg:flex`}>
|
195 |
<NavLink href="/">
|
196 |
<div className="flex items-center transition duration-300 ease-in-out transform hover:scale-125">
|
197 |
<Home className="mr-1 h-4 w-4" />
|
|
|
210 |
Chat
|
211 |
</div>
|
212 |
</NavLink>
|
213 |
+
<NavLink href="/query">
|
214 |
+
<div className="flex items-center transition duration-300 ease-in-out transform hover:scale-125">
|
215 |
+
<FileQuestion className="mr-1 h-4 w-4" />
|
216 |
+
Query
|
217 |
+
</div>
|
218 |
+
</NavLink>
|
219 |
<NavLink href="/search">
|
220 |
<div className="flex items-center transition duration-300 ease-in-out transform hover:scale-125">
|
221 |
<Search className="mr-1 h-4 w-4" />
|
frontend/package-lock.json
CHANGED
@@ -14,7 +14,7 @@
|
|
14 |
"axios": "^1.6.2",
|
15 |
"class-variance-authority": "^0.7",
|
16 |
"llamaindex": "0.0.35",
|
17 |
-
"lucide-react": "^0.291",
|
18 |
"next": "^13",
|
19 |
"next-auth": "^4.24.5",
|
20 |
"next-themes": "^0.2.1",
|
@@ -23,6 +23,7 @@
|
|
23 |
"react-dom": "^18",
|
24 |
"react-markdown": "^8.0.7",
|
25 |
"react-syntax-highlighter": "^15.5.0",
|
|
|
26 |
"remark": "^14.0.3",
|
27 |
"remark-code-import": "^1.2.0",
|
28 |
"remark-gfm": "^3.0.1",
|
@@ -2785,6 +2786,11 @@
|
|
2785 |
"@types/unist": "^2"
|
2786 |
}
|
2787 |
},
|
|
|
|
|
|
|
|
|
|
|
2788 |
"node_modules/@types/katex": {
|
2789 |
"version": "0.16.6",
|
2790 |
"resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.6.tgz",
|
@@ -3036,6 +3042,11 @@
|
|
3036 |
"node": ">=10.0.0"
|
3037 |
}
|
3038 |
},
|
|
|
|
|
|
|
|
|
|
|
3039 |
"node_modules/abort-controller": {
|
3040 |
"version": "3.0.0",
|
3041 |
"resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
|
@@ -3604,6 +3615,14 @@
|
|
3604 |
"node": ">= 0.6"
|
3605 |
}
|
3606 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3607 |
"node_modules/core-util-is": {
|
3608 |
"version": "1.0.3",
|
3609 |
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
|
@@ -3617,6 +3636,14 @@
|
|
3617 |
"node": "*"
|
3618 |
}
|
3619 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3620 |
"node_modules/css-tree": {
|
3621 |
"version": "2.3.1",
|
3622 |
"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
|
@@ -3750,6 +3777,14 @@
|
|
3750 |
"integrity": "sha512-qMa+E6yf1fNQbg3G66pHLXeJUP5CCCzNat1VPczOZOqgI2w4u+8y9sQnswMdGs5m4C1rOePq37EVBr/nsPQY7w==",
|
3751 |
"dev": true
|
3752 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3753 |
"node_modules/es6-promise": {
|
3754 |
"version": "4.2.8",
|
3755 |
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
|
@@ -3805,6 +3840,11 @@
|
|
3805 |
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
3806 |
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
|
3807 |
},
|
|
|
|
|
|
|
|
|
|
|
3808 |
"node_modules/fast-glob": {
|
3809 |
"version": "3.3.2",
|
3810 |
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
|
@@ -3831,6 +3871,21 @@
|
|
3831 |
"node": ">= 6"
|
3832 |
}
|
3833 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3834 |
"node_modules/fastq": {
|
3835 |
"version": "1.15.0",
|
3836 |
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
|
@@ -4181,6 +4236,11 @@
|
|
4181 |
"ms": "^2.0.0"
|
4182 |
}
|
4183 |
},
|
|
|
|
|
|
|
|
|
|
|
4184 |
"node_modules/ieee754": {
|
4185 |
"version": "1.2.1",
|
4186 |
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
|
@@ -4224,6 +4284,15 @@
|
|
4224 |
"resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz",
|
4225 |
"integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q=="
|
4226 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4227 |
"node_modules/intl-messageformat": {
|
4228 |
"version": "10.5.8",
|
4229 |
"resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.8.tgz",
|
@@ -4383,6 +4452,11 @@
|
|
4383 |
"url": "https://github.com/sponsors/panva"
|
4384 |
}
|
4385 |
},
|
|
|
|
|
|
|
|
|
|
|
4386 |
"node_modules/js-tiktoken": {
|
4387 |
"version": "1.0.8",
|
4388 |
"resolved": "https://registry.npmjs.org/js-tiktoken/-/js-tiktoken-1.0.8.tgz",
|
@@ -5599,6 +5673,50 @@
|
|
5599 |
"thenify-all": "^1.0.0"
|
5600 |
}
|
5601 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5602 |
"node_modules/nanoid": {
|
5603 |
"version": "3.3.6",
|
5604 |
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
|
@@ -6459,6 +6577,40 @@
|
|
6459 |
"react": "^16.8.0 || ^17.0.0 || ^18.0.0"
|
6460 |
}
|
6461 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6462 |
"node_modules/read-cache": {
|
6463 |
"version": "1.0.0",
|
6464 |
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
|
@@ -6631,6 +6783,11 @@
|
|
6631 |
"yarn": ">=1.7.0"
|
6632 |
}
|
6633 |
},
|
|
|
|
|
|
|
|
|
|
|
6634 |
"node_modules/resolve": {
|
6635 |
"version": "1.22.8",
|
6636 |
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
|
@@ -6661,6 +6818,14 @@
|
|
6661 |
"resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
|
6662 |
"integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA=="
|
6663 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6664 |
"node_modules/run-parallel": {
|
6665 |
"version": "1.2.0",
|
6666 |
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
|
@@ -6707,6 +6872,17 @@
|
|
6707 |
"loose-envify": "^1.1.0"
|
6708 |
}
|
6709 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6710 |
"node_modules/scroll-into-view-if-needed": {
|
6711 |
"version": "3.0.10",
|
6712 |
"resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.0.10.tgz",
|
@@ -6724,6 +6900,14 @@
|
|
6724 |
"node": ">=10"
|
6725 |
}
|
6726 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6727 |
"node_modules/setimmediate": {
|
6728 |
"version": "1.0.5",
|
6729 |
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
|
@@ -6759,6 +6943,14 @@
|
|
6759 |
"swr-store": "^0.10"
|
6760 |
}
|
6761 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6762 |
"node_modules/source-map-js": {
|
6763 |
"version": "1.0.2",
|
6764 |
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
|
@@ -6800,6 +6992,38 @@
|
|
6800 |
"svelte": "^4.0.0"
|
6801 |
}
|
6802 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6803 |
"node_modules/streamsearch": {
|
6804 |
"version": "1.1.0",
|
6805 |
"resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
|
@@ -6905,6 +7129,11 @@
|
|
6905 |
}
|
6906 |
}
|
6907 |
},
|
|
|
|
|
|
|
|
|
|
|
6908 |
"node_modules/sucrase": {
|
6909 |
"version": "3.34.0",
|
6910 |
"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz",
|
@@ -7109,6 +7338,14 @@
|
|
7109 |
"node": ">=0.8"
|
7110 |
}
|
7111 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7112 |
"node_modules/tiny-invariant": {
|
7113 |
"version": "1.3.1",
|
7114 |
"resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz",
|
@@ -7208,6 +7445,11 @@
|
|
7208 |
"url": "https://opencollective.com/unified"
|
7209 |
}
|
7210 |
},
|
|
|
|
|
|
|
|
|
|
|
7211 |
"node_modules/tr46": {
|
7212 |
"version": "4.1.1",
|
7213 |
"resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz",
|
@@ -7237,6 +7479,11 @@
|
|
7237 |
"url": "https://github.com/sponsors/wooorm"
|
7238 |
}
|
7239 |
},
|
|
|
|
|
|
|
|
|
|
|
7240 |
"node_modules/ts-interface-checker": {
|
7241 |
"version": "0.1.13",
|
7242 |
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
|
|
|
14 |
"axios": "^1.6.2",
|
15 |
"class-variance-authority": "^0.7",
|
16 |
"llamaindex": "0.0.35",
|
17 |
+
"lucide-react": "^0.291.0",
|
18 |
"next": "^13",
|
19 |
"next-auth": "^4.24.5",
|
20 |
"next-themes": "^0.2.1",
|
|
|
23 |
"react-dom": "^18",
|
24 |
"react-markdown": "^8.0.7",
|
25 |
"react-syntax-highlighter": "^15.5.0",
|
26 |
+
"react-use": "^17.4.2",
|
27 |
"remark": "^14.0.3",
|
28 |
"remark-code-import": "^1.2.0",
|
29 |
"remark-gfm": "^3.0.1",
|
|
|
2786 |
"@types/unist": "^2"
|
2787 |
}
|
2788 |
},
|
2789 |
+
"node_modules/@types/js-cookie": {
|
2790 |
+
"version": "2.2.7",
|
2791 |
+
"resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.7.tgz",
|
2792 |
+
"integrity": "sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA=="
|
2793 |
+
},
|
2794 |
"node_modules/@types/katex": {
|
2795 |
"version": "0.16.6",
|
2796 |
"resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.6.tgz",
|
|
|
3042 |
"node": ">=10.0.0"
|
3043 |
}
|
3044 |
},
|
3045 |
+
"node_modules/@xobotyi/scrollbar-width": {
|
3046 |
+
"version": "1.9.5",
|
3047 |
+
"resolved": "https://registry.npmjs.org/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz",
|
3048 |
+
"integrity": "sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ=="
|
3049 |
+
},
|
3050 |
"node_modules/abort-controller": {
|
3051 |
"version": "3.0.0",
|
3052 |
"resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
|
|
|
3615 |
"node": ">= 0.6"
|
3616 |
}
|
3617 |
},
|
3618 |
+
"node_modules/copy-to-clipboard": {
|
3619 |
+
"version": "3.3.3",
|
3620 |
+
"resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz",
|
3621 |
+
"integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==",
|
3622 |
+
"dependencies": {
|
3623 |
+
"toggle-selection": "^1.0.6"
|
3624 |
+
}
|
3625 |
+
},
|
3626 |
"node_modules/core-util-is": {
|
3627 |
"version": "1.0.3",
|
3628 |
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
|
|
|
3636 |
"node": "*"
|
3637 |
}
|
3638 |
},
|
3639 |
+
"node_modules/css-in-js-utils": {
|
3640 |
+
"version": "3.1.0",
|
3641 |
+
"resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz",
|
3642 |
+
"integrity": "sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==",
|
3643 |
+
"dependencies": {
|
3644 |
+
"hyphenate-style-name": "^1.0.3"
|
3645 |
+
}
|
3646 |
+
},
|
3647 |
"node_modules/css-tree": {
|
3648 |
"version": "2.3.1",
|
3649 |
"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
|
|
|
3777 |
"integrity": "sha512-qMa+E6yf1fNQbg3G66pHLXeJUP5CCCzNat1VPczOZOqgI2w4u+8y9sQnswMdGs5m4C1rOePq37EVBr/nsPQY7w==",
|
3778 |
"dev": true
|
3779 |
},
|
3780 |
+
"node_modules/error-stack-parser": {
|
3781 |
+
"version": "2.1.4",
|
3782 |
+
"resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz",
|
3783 |
+
"integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==",
|
3784 |
+
"dependencies": {
|
3785 |
+
"stackframe": "^1.3.4"
|
3786 |
+
}
|
3787 |
+
},
|
3788 |
"node_modules/es6-promise": {
|
3789 |
"version": "4.2.8",
|
3790 |
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
|
|
|
3840 |
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
3841 |
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
|
3842 |
},
|
3843 |
+
"node_modules/fast-deep-equal": {
|
3844 |
+
"version": "3.1.3",
|
3845 |
+
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
3846 |
+
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
|
3847 |
+
},
|
3848 |
"node_modules/fast-glob": {
|
3849 |
"version": "3.3.2",
|
3850 |
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
|
|
|
3871 |
"node": ">= 6"
|
3872 |
}
|
3873 |
},
|
3874 |
+
"node_modules/fast-loops": {
|
3875 |
+
"version": "1.1.3",
|
3876 |
+
"resolved": "https://registry.npmjs.org/fast-loops/-/fast-loops-1.1.3.tgz",
|
3877 |
+
"integrity": "sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g=="
|
3878 |
+
},
|
3879 |
+
"node_modules/fast-shallow-equal": {
|
3880 |
+
"version": "1.0.0",
|
3881 |
+
"resolved": "https://registry.npmjs.org/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz",
|
3882 |
+
"integrity": "sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw=="
|
3883 |
+
},
|
3884 |
+
"node_modules/fastest-stable-stringify": {
|
3885 |
+
"version": "2.0.2",
|
3886 |
+
"resolved": "https://registry.npmjs.org/fastest-stable-stringify/-/fastest-stable-stringify-2.0.2.tgz",
|
3887 |
+
"integrity": "sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q=="
|
3888 |
+
},
|
3889 |
"node_modules/fastq": {
|
3890 |
"version": "1.15.0",
|
3891 |
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
|
|
|
4236 |
"ms": "^2.0.0"
|
4237 |
}
|
4238 |
},
|
4239 |
+
"node_modules/hyphenate-style-name": {
|
4240 |
+
"version": "1.0.4",
|
4241 |
+
"resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz",
|
4242 |
+
"integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ=="
|
4243 |
+
},
|
4244 |
"node_modules/ieee754": {
|
4245 |
"version": "1.2.1",
|
4246 |
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
|
|
|
4284 |
"resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz",
|
4285 |
"integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q=="
|
4286 |
},
|
4287 |
+
"node_modules/inline-style-prefixer": {
|
4288 |
+
"version": "7.0.0",
|
4289 |
+
"resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-7.0.0.tgz",
|
4290 |
+
"integrity": "sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==",
|
4291 |
+
"dependencies": {
|
4292 |
+
"css-in-js-utils": "^3.1.0",
|
4293 |
+
"fast-loops": "^1.1.3"
|
4294 |
+
}
|
4295 |
+
},
|
4296 |
"node_modules/intl-messageformat": {
|
4297 |
"version": "10.5.8",
|
4298 |
"resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.8.tgz",
|
|
|
4452 |
"url": "https://github.com/sponsors/panva"
|
4453 |
}
|
4454 |
},
|
4455 |
+
"node_modules/js-cookie": {
|
4456 |
+
"version": "2.2.1",
|
4457 |
+
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz",
|
4458 |
+
"integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ=="
|
4459 |
+
},
|
4460 |
"node_modules/js-tiktoken": {
|
4461 |
"version": "1.0.8",
|
4462 |
"resolved": "https://registry.npmjs.org/js-tiktoken/-/js-tiktoken-1.0.8.tgz",
|
|
|
5673 |
"thenify-all": "^1.0.0"
|
5674 |
}
|
5675 |
},
|
5676 |
+
"node_modules/nano-css": {
|
5677 |
+
"version": "5.6.1",
|
5678 |
+
"resolved": "https://registry.npmjs.org/nano-css/-/nano-css-5.6.1.tgz",
|
5679 |
+
"integrity": "sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==",
|
5680 |
+
"dependencies": {
|
5681 |
+
"@jridgewell/sourcemap-codec": "^1.4.15",
|
5682 |
+
"css-tree": "^1.1.2",
|
5683 |
+
"csstype": "^3.1.2",
|
5684 |
+
"fastest-stable-stringify": "^2.0.2",
|
5685 |
+
"inline-style-prefixer": "^7.0.0",
|
5686 |
+
"rtl-css-js": "^1.16.1",
|
5687 |
+
"stacktrace-js": "^2.0.2",
|
5688 |
+
"stylis": "^4.3.0"
|
5689 |
+
},
|
5690 |
+
"peerDependencies": {
|
5691 |
+
"react": "*",
|
5692 |
+
"react-dom": "*"
|
5693 |
+
}
|
5694 |
+
},
|
5695 |
+
"node_modules/nano-css/node_modules/css-tree": {
|
5696 |
+
"version": "1.1.3",
|
5697 |
+
"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
|
5698 |
+
"integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
|
5699 |
+
"dependencies": {
|
5700 |
+
"mdn-data": "2.0.14",
|
5701 |
+
"source-map": "^0.6.1"
|
5702 |
+
},
|
5703 |
+
"engines": {
|
5704 |
+
"node": ">=8.0.0"
|
5705 |
+
}
|
5706 |
+
},
|
5707 |
+
"node_modules/nano-css/node_modules/mdn-data": {
|
5708 |
+
"version": "2.0.14",
|
5709 |
+
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
|
5710 |
+
"integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="
|
5711 |
+
},
|
5712 |
+
"node_modules/nano-css/node_modules/source-map": {
|
5713 |
+
"version": "0.6.1",
|
5714 |
+
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
5715 |
+
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
5716 |
+
"engines": {
|
5717 |
+
"node": ">=0.10.0"
|
5718 |
+
}
|
5719 |
+
},
|
5720 |
"node_modules/nanoid": {
|
5721 |
"version": "3.3.6",
|
5722 |
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
|
|
|
6577 |
"react": "^16.8.0 || ^17.0.0 || ^18.0.0"
|
6578 |
}
|
6579 |
},
|
6580 |
+
"node_modules/react-universal-interface": {
|
6581 |
+
"version": "0.6.2",
|
6582 |
+
"resolved": "https://registry.npmjs.org/react-universal-interface/-/react-universal-interface-0.6.2.tgz",
|
6583 |
+
"integrity": "sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==",
|
6584 |
+
"peerDependencies": {
|
6585 |
+
"react": "*",
|
6586 |
+
"tslib": "*"
|
6587 |
+
}
|
6588 |
+
},
|
6589 |
+
"node_modules/react-use": {
|
6590 |
+
"version": "17.4.2",
|
6591 |
+
"resolved": "https://registry.npmjs.org/react-use/-/react-use-17.4.2.tgz",
|
6592 |
+
"integrity": "sha512-1jPtmWLD8OJJNYCdYLJEH/HM+bPDfJuyGwCYeJFgPmWY8ttwpgZnW5QnzgM55CYUByUiTjHxsGOnEpLl6yQaoQ==",
|
6593 |
+
"dependencies": {
|
6594 |
+
"@types/js-cookie": "^2.2.6",
|
6595 |
+
"@xobotyi/scrollbar-width": "^1.9.5",
|
6596 |
+
"copy-to-clipboard": "^3.3.1",
|
6597 |
+
"fast-deep-equal": "^3.1.3",
|
6598 |
+
"fast-shallow-equal": "^1.0.0",
|
6599 |
+
"js-cookie": "^2.2.1",
|
6600 |
+
"nano-css": "^5.6.1",
|
6601 |
+
"react-universal-interface": "^0.6.2",
|
6602 |
+
"resize-observer-polyfill": "^1.5.1",
|
6603 |
+
"screenfull": "^5.1.0",
|
6604 |
+
"set-harmonic-interval": "^1.0.1",
|
6605 |
+
"throttle-debounce": "^3.0.1",
|
6606 |
+
"ts-easing": "^0.2.0",
|
6607 |
+
"tslib": "^2.1.0"
|
6608 |
+
},
|
6609 |
+
"peerDependencies": {
|
6610 |
+
"react": "*",
|
6611 |
+
"react-dom": "*"
|
6612 |
+
}
|
6613 |
+
},
|
6614 |
"node_modules/read-cache": {
|
6615 |
"version": "1.0.0",
|
6616 |
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
|
|
|
6783 |
"yarn": ">=1.7.0"
|
6784 |
}
|
6785 |
},
|
6786 |
+
"node_modules/resize-observer-polyfill": {
|
6787 |
+
"version": "1.5.1",
|
6788 |
+
"resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
|
6789 |
+
"integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
|
6790 |
+
},
|
6791 |
"node_modules/resolve": {
|
6792 |
"version": "1.22.8",
|
6793 |
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
|
|
|
6818 |
"resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
|
6819 |
"integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA=="
|
6820 |
},
|
6821 |
+
"node_modules/rtl-css-js": {
|
6822 |
+
"version": "1.16.1",
|
6823 |
+
"resolved": "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.16.1.tgz",
|
6824 |
+
"integrity": "sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==",
|
6825 |
+
"dependencies": {
|
6826 |
+
"@babel/runtime": "^7.1.2"
|
6827 |
+
}
|
6828 |
+
},
|
6829 |
"node_modules/run-parallel": {
|
6830 |
"version": "1.2.0",
|
6831 |
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
|
|
|
6872 |
"loose-envify": "^1.1.0"
|
6873 |
}
|
6874 |
},
|
6875 |
+
"node_modules/screenfull": {
|
6876 |
+
"version": "5.2.0",
|
6877 |
+
"resolved": "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz",
|
6878 |
+
"integrity": "sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==",
|
6879 |
+
"engines": {
|
6880 |
+
"node": ">=0.10.0"
|
6881 |
+
},
|
6882 |
+
"funding": {
|
6883 |
+
"url": "https://github.com/sponsors/sindresorhus"
|
6884 |
+
}
|
6885 |
+
},
|
6886 |
"node_modules/scroll-into-view-if-needed": {
|
6887 |
"version": "3.0.10",
|
6888 |
"resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.0.10.tgz",
|
|
|
6900 |
"node": ">=10"
|
6901 |
}
|
6902 |
},
|
6903 |
+
"node_modules/set-harmonic-interval": {
|
6904 |
+
"version": "1.0.1",
|
6905 |
+
"resolved": "https://registry.npmjs.org/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz",
|
6906 |
+
"integrity": "sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==",
|
6907 |
+
"engines": {
|
6908 |
+
"node": ">=6.9"
|
6909 |
+
}
|
6910 |
+
},
|
6911 |
"node_modules/setimmediate": {
|
6912 |
"version": "1.0.5",
|
6913 |
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
|
|
|
6943 |
"swr-store": "^0.10"
|
6944 |
}
|
6945 |
},
|
6946 |
+
"node_modules/source-map": {
|
6947 |
+
"version": "0.5.6",
|
6948 |
+
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
|
6949 |
+
"integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==",
|
6950 |
+
"engines": {
|
6951 |
+
"node": ">=0.10.0"
|
6952 |
+
}
|
6953 |
+
},
|
6954 |
"node_modules/source-map-js": {
|
6955 |
"version": "1.0.2",
|
6956 |
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
|
|
|
6992 |
"svelte": "^4.0.0"
|
6993 |
}
|
6994 |
},
|
6995 |
+
"node_modules/stack-generator": {
|
6996 |
+
"version": "2.0.10",
|
6997 |
+
"resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz",
|
6998 |
+
"integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==",
|
6999 |
+
"dependencies": {
|
7000 |
+
"stackframe": "^1.3.4"
|
7001 |
+
}
|
7002 |
+
},
|
7003 |
+
"node_modules/stackframe": {
|
7004 |
+
"version": "1.3.4",
|
7005 |
+
"resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz",
|
7006 |
+
"integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw=="
|
7007 |
+
},
|
7008 |
+
"node_modules/stacktrace-gps": {
|
7009 |
+
"version": "3.1.2",
|
7010 |
+
"resolved": "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz",
|
7011 |
+
"integrity": "sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==",
|
7012 |
+
"dependencies": {
|
7013 |
+
"source-map": "0.5.6",
|
7014 |
+
"stackframe": "^1.3.4"
|
7015 |
+
}
|
7016 |
+
},
|
7017 |
+
"node_modules/stacktrace-js": {
|
7018 |
+
"version": "2.0.2",
|
7019 |
+
"resolved": "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz",
|
7020 |
+
"integrity": "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==",
|
7021 |
+
"dependencies": {
|
7022 |
+
"error-stack-parser": "^2.0.6",
|
7023 |
+
"stack-generator": "^2.0.5",
|
7024 |
+
"stacktrace-gps": "^3.0.4"
|
7025 |
+
}
|
7026 |
+
},
|
7027 |
"node_modules/streamsearch": {
|
7028 |
"version": "1.1.0",
|
7029 |
"resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
|
|
|
7129 |
}
|
7130 |
}
|
7131 |
},
|
7132 |
+
"node_modules/stylis": {
|
7133 |
+
"version": "4.3.1",
|
7134 |
+
"resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.1.tgz",
|
7135 |
+
"integrity": "sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ=="
|
7136 |
+
},
|
7137 |
"node_modules/sucrase": {
|
7138 |
"version": "3.34.0",
|
7139 |
"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz",
|
|
|
7338 |
"node": ">=0.8"
|
7339 |
}
|
7340 |
},
|
7341 |
+
"node_modules/throttle-debounce": {
|
7342 |
+
"version": "3.0.1",
|
7343 |
+
"resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz",
|
7344 |
+
"integrity": "sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==",
|
7345 |
+
"engines": {
|
7346 |
+
"node": ">=10"
|
7347 |
+
}
|
7348 |
+
},
|
7349 |
"node_modules/tiny-invariant": {
|
7350 |
"version": "1.3.1",
|
7351 |
"resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz",
|
|
|
7445 |
"url": "https://opencollective.com/unified"
|
7446 |
}
|
7447 |
},
|
7448 |
+
"node_modules/toggle-selection": {
|
7449 |
+
"version": "1.0.6",
|
7450 |
+
"resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz",
|
7451 |
+
"integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ=="
|
7452 |
+
},
|
7453 |
"node_modules/tr46": {
|
7454 |
"version": "4.1.1",
|
7455 |
"resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz",
|
|
|
7479 |
"url": "https://github.com/sponsors/wooorm"
|
7480 |
}
|
7481 |
},
|
7482 |
+
"node_modules/ts-easing": {
|
7483 |
+
"version": "0.2.0",
|
7484 |
+
"resolved": "https://registry.npmjs.org/ts-easing/-/ts-easing-0.2.0.tgz",
|
7485 |
+
"integrity": "sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ=="
|
7486 |
+
},
|
7487 |
"node_modules/ts-interface-checker": {
|
7488 |
"version": "0.1.13",
|
7489 |
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
|
frontend/package.json
CHANGED
@@ -14,7 +14,7 @@
|
|
14 |
"axios": "^1.6.2",
|
15 |
"class-variance-authority": "^0.7",
|
16 |
"llamaindex": "0.0.35",
|
17 |
-
"lucide-react": "^0.291",
|
18 |
"next": "^13",
|
19 |
"next-auth": "^4.24.5",
|
20 |
"next-themes": "^0.2.1",
|
@@ -23,6 +23,7 @@
|
|
23 |
"react-dom": "^18",
|
24 |
"react-markdown": "^8.0.7",
|
25 |
"react-syntax-highlighter": "^15.5.0",
|
|
|
26 |
"remark": "^14.0.3",
|
27 |
"remark-code-import": "^1.2.0",
|
28 |
"remark-gfm": "^3.0.1",
|
|
|
14 |
"axios": "^1.6.2",
|
15 |
"class-variance-authority": "^0.7",
|
16 |
"llamaindex": "0.0.35",
|
17 |
+
"lucide-react": "^0.291.0",
|
18 |
"next": "^13",
|
19 |
"next-auth": "^4.24.5",
|
20 |
"next-themes": "^0.2.1",
|
|
|
23 |
"react-dom": "^18",
|
24 |
"react-markdown": "^8.0.7",
|
25 |
"react-syntax-highlighter": "^15.5.0",
|
26 |
+
"react-use": "^17.4.2",
|
27 |
"remark": "^14.0.3",
|
28 |
"remark-code-import": "^1.2.0",
|
29 |
"remark-gfm": "^3.0.1",
|