feat(search): Add ability to set default provider, model, and optimization mode when coming from a search query
This commit is contained in:
parent
b392aa2c21
commit
37c93c3c9b
17 changed files with 603 additions and 319 deletions
|
|
@ -222,6 +222,9 @@ This fork adds several enhancements to the original Perplexica project:
|
||||||
- ✅ Enhanced Balance mode that uses a headless web browser to retrieve web content and use relevant excerpts to enhance responses
|
- ✅ Enhanced Balance mode that uses a headless web browser to retrieve web content and use relevant excerpts to enhance responses
|
||||||
- ✅ Adds Agent mode that uses the full content of web pages to answer queries and an agentic flow to intelligently answer complex queries with accuracy
|
- ✅ Adds Agent mode that uses the full content of web pages to answer queries and an agentic flow to intelligently answer complex queries with accuracy
|
||||||
- See the [README.md](docs/architecture/README.md) in the docs architecture directory for more info
|
- See the [README.md](docs/architecture/README.md) in the docs architecture directory for more info
|
||||||
|
- ✅ Query-based settings override for browser search engine integration
|
||||||
|
- Automatically applies user's saved optimization mode and AI model preferences when accessing via URL with `q` parameter
|
||||||
|
- Enables seamless browser search bar integration with personalized settings
|
||||||
|
|
||||||
### AI Functionality
|
### AI Functionality
|
||||||
|
|
||||||
|
|
|
||||||
75
package-lock.json
generated
75
package-lock.json
generated
|
|
@ -16,6 +16,7 @@
|
||||||
"@langchain/community": "^0.3.45",
|
"@langchain/community": "^0.3.45",
|
||||||
"@langchain/core": "^0.3.57",
|
"@langchain/core": "^0.3.57",
|
||||||
"@langchain/google-genai": "^0.2.10",
|
"@langchain/google-genai": "^0.2.10",
|
||||||
|
"@langchain/groq": "^0.2.3",
|
||||||
"@langchain/langgraph": "^0.3.1",
|
"@langchain/langgraph": "^0.3.1",
|
||||||
"@langchain/ollama": "^0.2.0",
|
"@langchain/ollama": "^0.2.0",
|
||||||
"@langchain/openai": "^0.5.12",
|
"@langchain/openai": "^0.5.12",
|
||||||
|
|
@ -2574,9 +2575,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@langchain/core": {
|
"node_modules/@langchain/core": {
|
||||||
"version": "0.3.57",
|
"version": "0.3.61",
|
||||||
"resolved": "https://registry.npmjs.org/@langchain/core/-/core-0.3.57.tgz",
|
"resolved": "https://registry.npmjs.org/@langchain/core/-/core-0.3.61.tgz",
|
||||||
"integrity": "sha512-jz28qCTKJmi47b6jqhQ6vYRTG5jRpqhtPQjriRTB5wR8mgvzo6xKs0fG/kExS3ZvM79ytD1npBvgf8i19xOo9Q==",
|
"integrity": "sha512-4O7fw5SXNSE+uBnathLQrhm3t+7dZGagt/5kt37A+pXw0AkudxEBvveg73sSnpBd9SIz3/Vc7F4k8rCKXGbEDA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@cfworker/json-schema": "^4.0.2",
|
"@cfworker/json-schema": "^4.0.2",
|
||||||
|
|
@ -2584,12 +2585,12 @@
|
||||||
"camelcase": "6",
|
"camelcase": "6",
|
||||||
"decamelize": "1.2.0",
|
"decamelize": "1.2.0",
|
||||||
"js-tiktoken": "^1.0.12",
|
"js-tiktoken": "^1.0.12",
|
||||||
"langsmith": "^0.3.29",
|
"langsmith": "^0.3.33",
|
||||||
"mustache": "^4.2.0",
|
"mustache": "^4.2.0",
|
||||||
"p-queue": "^6.6.2",
|
"p-queue": "^6.6.2",
|
||||||
"p-retry": "4",
|
"p-retry": "4",
|
||||||
"uuid": "^10.0.0",
|
"uuid": "^10.0.0",
|
||||||
"zod": "^3.22.4",
|
"zod": "^3.25.32",
|
||||||
"zod-to-json-schema": "^3.22.3"
|
"zod-to-json-schema": "^3.22.3"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
|
@ -2626,6 +2627,22 @@
|
||||||
"uuid": "dist/esm/bin/uuid"
|
"uuid": "dist/esm/bin/uuid"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@langchain/groq": {
|
||||||
|
"version": "0.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@langchain/groq/-/groq-0.2.3.tgz",
|
||||||
|
"integrity": "sha512-r+yjysG36a0IZxTlCMr655Feumfb4IrOyA0jLLq4l7gEhVyMpYXMwyE6evseyU2LRP+7qOPbGRVpGqAIK0MsUA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"groq-sdk": "^0.19.0",
|
||||||
|
"zod": "^3.22.4"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@langchain/core": ">=0.3.58 <0.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@langchain/langgraph": {
|
"node_modules/@langchain/langgraph": {
|
||||||
"version": "0.3.1",
|
"version": "0.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/@langchain/langgraph/-/langgraph-0.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/@langchain/langgraph/-/langgraph-0.3.1.tgz",
|
||||||
|
|
@ -7072,6 +7089,36 @@
|
||||||
"graphql": "14 - 16"
|
"graphql": "14 - 16"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/groq-sdk": {
|
||||||
|
"version": "0.19.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/groq-sdk/-/groq-sdk-0.19.0.tgz",
|
||||||
|
"integrity": "sha512-vdh5h7ORvwvOvutA80dKF81b0gPWHxu6K/GOJBOM0n6p6CSqAVLhFfeS79Ef0j/yCycDR09jqY7jkYz9dLiS6w==",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/node": "^18.11.18",
|
||||||
|
"@types/node-fetch": "^2.6.4",
|
||||||
|
"abort-controller": "^3.0.0",
|
||||||
|
"agentkeepalive": "^4.2.1",
|
||||||
|
"form-data-encoder": "1.7.2",
|
||||||
|
"formdata-node": "^4.3.2",
|
||||||
|
"node-fetch": "^2.6.7"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/groq-sdk/node_modules/@types/node": {
|
||||||
|
"version": "18.19.115",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.115.tgz",
|
||||||
|
"integrity": "sha512-kNrFiTgG4a9JAn1LMQeLOv3MvXIPokzXziohMrMsvpYgLpdEt/mMiVYc4sGKtDfyxM5gIDF4VgrPRyCw4fHOYg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"undici-types": "~5.26.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/groq-sdk/node_modules/undici-types": {
|
||||||
|
"version": "5.26.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
|
||||||
|
"integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/guid-typescript": {
|
"node_modules/guid-typescript": {
|
||||||
"version": "1.0.9",
|
"version": "1.0.9",
|
||||||
"resolved": "https://registry.npmjs.org/guid-typescript/-/guid-typescript-1.0.9.tgz",
|
"resolved": "https://registry.npmjs.org/guid-typescript/-/guid-typescript-1.0.9.tgz",
|
||||||
|
|
@ -8347,9 +8394,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/langsmith": {
|
"node_modules/langsmith": {
|
||||||
"version": "0.3.30",
|
"version": "0.3.37",
|
||||||
"resolved": "https://registry.npmjs.org/langsmith/-/langsmith-0.3.30.tgz",
|
"resolved": "https://registry.npmjs.org/langsmith/-/langsmith-0.3.37.tgz",
|
||||||
"integrity": "sha512-ZaiaOx9MysuSQlAkRw8mjm7iqhrlF7HI0LCTLxiNBEWBPywdkgI7UnN+s7KtlRiM0tP1cOLm+dQY++Fi33jkPQ==",
|
"integrity": "sha512-aDFM+LbT01gP8hsJNs4QJjmbRNfoifqhpCSpk8j4k/V8wejEgvgATbgj9W9DQsfQFdtfwx+8G48sK5/0PqQisg==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/uuid": "^10.0.0",
|
"@types/uuid": "^10.0.0",
|
||||||
|
|
@ -8361,9 +8408,21 @@
|
||||||
"uuid": "^10.0.0"
|
"uuid": "^10.0.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
|
"@opentelemetry/api": "*",
|
||||||
|
"@opentelemetry/exporter-trace-otlp-proto": "*",
|
||||||
|
"@opentelemetry/sdk-trace-base": "*",
|
||||||
"openai": "*"
|
"openai": "*"
|
||||||
},
|
},
|
||||||
"peerDependenciesMeta": {
|
"peerDependenciesMeta": {
|
||||||
|
"@opentelemetry/api": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"@opentelemetry/exporter-trace-otlp-proto": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"@opentelemetry/sdk-trace-base": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
"openai": {
|
"openai": {
|
||||||
"optional": true
|
"optional": true
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@
|
||||||
"@langchain/community": "^0.3.45",
|
"@langchain/community": "^0.3.45",
|
||||||
"@langchain/core": "^0.3.57",
|
"@langchain/core": "^0.3.57",
|
||||||
"@langchain/google-genai": "^0.2.10",
|
"@langchain/google-genai": "^0.2.10",
|
||||||
|
"@langchain/groq": "^0.2.3",
|
||||||
"@langchain/langgraph": "^0.3.1",
|
"@langchain/langgraph": "^0.3.1",
|
||||||
"@langchain/ollama": "^0.2.0",
|
"@langchain/ollama": "^0.2.0",
|
||||||
"@langchain/openai": "^0.5.12",
|
"@langchain/openai": "^0.5.12",
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import {
|
||||||
PlusCircle,
|
PlusCircle,
|
||||||
Save,
|
Save,
|
||||||
X,
|
X,
|
||||||
|
RotateCcw,
|
||||||
} from 'lucide-react';
|
} from 'lucide-react';
|
||||||
import { useEffect, useState, useRef } from 'react';
|
import { useEffect, useState, useRef } from 'react';
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
|
|
@ -18,6 +19,8 @@ import ThemeSwitcher from '@/components/theme/Switcher';
|
||||||
import { ImagesIcon, VideoIcon, Layers3 } from 'lucide-react';
|
import { ImagesIcon, VideoIcon, Layers3 } from 'lucide-react';
|
||||||
import Link from 'next/link';
|
import Link from 'next/link';
|
||||||
import { PROVIDER_METADATA } from '@/lib/providers';
|
import { PROVIDER_METADATA } from '@/lib/providers';
|
||||||
|
import Optimization from '@/components/MessageInputActions/Optimization';
|
||||||
|
import ModelSelector from '@/components/MessageInputActions/ModelSelector';
|
||||||
|
|
||||||
interface SettingsType {
|
interface SettingsType {
|
||||||
chatModelProviders: {
|
chatModelProviders: {
|
||||||
|
|
@ -242,6 +245,13 @@ export default function SettingsPage() {
|
||||||
);
|
);
|
||||||
const [isAddingNewPrompt, setIsAddingNewPrompt] = useState(false);
|
const [isAddingNewPrompt, setIsAddingNewPrompt] = useState(false);
|
||||||
|
|
||||||
|
// Default Search Settings state variables
|
||||||
|
const [searchOptimizationMode, setSearchOptimizationMode] =
|
||||||
|
useState<string>('');
|
||||||
|
const [searchChatModelProvider, setSearchChatModelProvider] =
|
||||||
|
useState<string>('');
|
||||||
|
const [searchChatModel, setSearchChatModel] = useState<string>('');
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const fetchConfig = async () => {
|
const fetchConfig = async () => {
|
||||||
setIsLoading(true);
|
setIsLoading(true);
|
||||||
|
|
@ -311,6 +321,29 @@ export default function SettingsPage() {
|
||||||
|
|
||||||
fetchConfig();
|
fetchConfig();
|
||||||
|
|
||||||
|
// Load search settings from localStorage
|
||||||
|
const loadSearchSettings = () => {
|
||||||
|
const storedSearchOptimizationMode = localStorage.getItem(
|
||||||
|
'searchOptimizationMode',
|
||||||
|
);
|
||||||
|
const storedSearchChatModelProvider = localStorage.getItem(
|
||||||
|
'searchChatModelProvider',
|
||||||
|
);
|
||||||
|
const storedSearchChatModel = localStorage.getItem('searchChatModel');
|
||||||
|
|
||||||
|
if (storedSearchOptimizationMode) {
|
||||||
|
setSearchOptimizationMode(storedSearchOptimizationMode);
|
||||||
|
}
|
||||||
|
if (storedSearchChatModelProvider) {
|
||||||
|
setSearchChatModelProvider(storedSearchChatModelProvider);
|
||||||
|
}
|
||||||
|
if (storedSearchChatModel) {
|
||||||
|
setSearchChatModel(storedSearchChatModel);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
loadSearchSettings();
|
||||||
|
|
||||||
const fetchSystemPrompts = async () => {
|
const fetchSystemPrompts = async () => {
|
||||||
setIsLoading(true);
|
setIsLoading(true);
|
||||||
try {
|
try {
|
||||||
|
|
@ -492,6 +525,10 @@ export default function SettingsPage() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const saveSearchSetting = (key: string, value: string) => {
|
||||||
|
localStorage.setItem(key, value);
|
||||||
|
};
|
||||||
|
|
||||||
const handleAddOrUpdateSystemPrompt = async () => {
|
const handleAddOrUpdateSystemPrompt = async () => {
|
||||||
const currentPrompt = editingPrompt || {
|
const currentPrompt = editingPrompt || {
|
||||||
name: newPromptName,
|
name: newPromptName,
|
||||||
|
|
@ -997,6 +1034,79 @@ export default function SettingsPage() {
|
||||||
</div>
|
</div>
|
||||||
</SettingsSection>
|
</SettingsSection>
|
||||||
|
|
||||||
|
<SettingsSection
|
||||||
|
title="Default Search Settings"
|
||||||
|
tooltip='Select the settings that will be used when navigating to the site with a search query, such as "example.com/search?q=your+query".\nThese settings will override the global settings for search queries.\n\nIf settings are not specified, the global settings will be used.'
|
||||||
|
>
|
||||||
|
<div className="flex flex-col space-y-4">
|
||||||
|
<div className="flex flex-col space-y-1">
|
||||||
|
<p className="text-black/70 dark:text-white/70 text-sm">
|
||||||
|
Optimization Mode
|
||||||
|
</p>
|
||||||
|
<div className="flex justify-start items-center space-x-2">
|
||||||
|
<Optimization
|
||||||
|
optimizationMode={searchOptimizationMode}
|
||||||
|
setOptimizationMode={(mode) => {
|
||||||
|
setSearchOptimizationMode(mode);
|
||||||
|
saveSearchSetting('searchOptimizationMode', mode);
|
||||||
|
}}
|
||||||
|
showTitle={true}
|
||||||
|
/>
|
||||||
|
{searchOptimizationMode && (
|
||||||
|
<button
|
||||||
|
onClick={() => {
|
||||||
|
setSearchOptimizationMode('');
|
||||||
|
localStorage.removeItem('searchOptimizationMode');
|
||||||
|
}}
|
||||||
|
className="p-1.5 rounded-md hover:bg-light-200 dark:hover:bg-dark-200 text-black/50 dark:text-white/50 hover:text-black/80 dark:hover:text-white/80 transition-colors"
|
||||||
|
title="Reset optimization mode"
|
||||||
|
>
|
||||||
|
<RotateCcw size={16} />
|
||||||
|
</button>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="flex flex-col space-y-1">
|
||||||
|
<p className="text-black/70 dark:text-white/70 text-sm">
|
||||||
|
Chat Model
|
||||||
|
</p>
|
||||||
|
<div className="flex justify-start items-center space-x-2">
|
||||||
|
<ModelSelector
|
||||||
|
selectedModel={{
|
||||||
|
provider: searchChatModelProvider,
|
||||||
|
model: searchChatModel,
|
||||||
|
}}
|
||||||
|
setSelectedModel={(model) => {
|
||||||
|
setSearchChatModelProvider(model.provider);
|
||||||
|
setSearchChatModel(model.model);
|
||||||
|
saveSearchSetting(
|
||||||
|
'searchChatModelProvider',
|
||||||
|
model.provider,
|
||||||
|
);
|
||||||
|
saveSearchSetting('searchChatModel', model.model);
|
||||||
|
}}
|
||||||
|
truncateModelName={false}
|
||||||
|
/>
|
||||||
|
{(searchChatModelProvider || searchChatModel) && (
|
||||||
|
<button
|
||||||
|
onClick={() => {
|
||||||
|
setSearchChatModelProvider('');
|
||||||
|
setSearchChatModel('');
|
||||||
|
localStorage.removeItem('searchChatModelProvider');
|
||||||
|
localStorage.removeItem('searchChatModel');
|
||||||
|
}}
|
||||||
|
className="p-1.5 rounded-md hover:bg-light-200 dark:hover:bg-dark-200 text-black/50 dark:text-white/50 hover:text-black/80 dark:hover:text-white/80 transition-colors"
|
||||||
|
title="Reset chat model"
|
||||||
|
>
|
||||||
|
<RotateCcw size={16} />
|
||||||
|
</button>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</SettingsSection>
|
||||||
|
|
||||||
<SettingsSection title="Model Settings">
|
<SettingsSection title="Model Settings">
|
||||||
{config.chatModelProviders && (
|
{config.chatModelProviders && (
|
||||||
<div className="flex flex-col space-y-4">
|
<div className="flex flex-col space-y-4">
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import Chat from './Chat';
|
||||||
import EmptyChat from './EmptyChat';
|
import EmptyChat from './EmptyChat';
|
||||||
import crypto from 'crypto';
|
import crypto from 'crypto';
|
||||||
import { toast } from 'sonner';
|
import { toast } from 'sonner';
|
||||||
import { useSearchParams } from 'next/navigation';
|
import { useSearchParams, useRouter } from 'next/navigation';
|
||||||
import { getSuggestions } from '@/lib/actions';
|
import { getSuggestions } from '@/lib/actions';
|
||||||
import { Settings } from 'lucide-react';
|
import { Settings } from 'lucide-react';
|
||||||
import Link from 'next/link';
|
import Link from 'next/link';
|
||||||
|
|
@ -250,6 +250,7 @@ const loadMessages = async (
|
||||||
|
|
||||||
const ChatWindow = ({ id }: { id?: string }) => {
|
const ChatWindow = ({ id }: { id?: string }) => {
|
||||||
const searchParams = useSearchParams();
|
const searchParams = useSearchParams();
|
||||||
|
const router = useRouter();
|
||||||
const initialMessage = searchParams.get('q');
|
const initialMessage = searchParams.get('q');
|
||||||
|
|
||||||
const [chatId, setChatId] = useState<string | undefined>(id);
|
const [chatId, setChatId] = useState<string | undefined>(id);
|
||||||
|
|
@ -585,6 +586,9 @@ const ChatWindow = ({ id }: { id?: string }) => {
|
||||||
currentChatModelProvider || chatModelProvider.provider;
|
currentChatModelProvider || chatModelProvider.provider;
|
||||||
const modelName = currentChatModel || chatModelProvider.name;
|
const modelName = currentChatModel || chatModelProvider.name;
|
||||||
|
|
||||||
|
const currentOptimizationMode =
|
||||||
|
localStorage.getItem('optimizationMode') || optimizationMode;
|
||||||
|
|
||||||
const res = await fetch('/api/chat', {
|
const res = await fetch('/api/chat', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {
|
headers: {
|
||||||
|
|
@ -600,7 +604,7 @@ const ChatWindow = ({ id }: { id?: string }) => {
|
||||||
chatId: chatId!,
|
chatId: chatId!,
|
||||||
files: fileIds,
|
files: fileIds,
|
||||||
focusMode: focusMode,
|
focusMode: focusMode,
|
||||||
optimizationMode: optimizationMode,
|
optimizationMode: currentOptimizationMode,
|
||||||
history: messageChatHistory,
|
history: messageChatHistory,
|
||||||
chatModel: {
|
chatModel: {
|
||||||
name: modelName,
|
name: modelName,
|
||||||
|
|
@ -674,7 +678,42 @@ const ChatWindow = ({ id }: { id?: string }) => {
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (isReady && initialMessage && isConfigReady) {
|
if (isReady && initialMessage && isConfigReady) {
|
||||||
|
// Check if we have an initial query and apply saved search settings
|
||||||
|
const searchOptimizationMode = localStorage.getItem(
|
||||||
|
'searchOptimizationMode',
|
||||||
|
);
|
||||||
|
const searchChatModelProvider = localStorage.getItem(
|
||||||
|
'searchChatModelProvider',
|
||||||
|
);
|
||||||
|
const searchChatModel = localStorage.getItem('searchChatModel');
|
||||||
|
|
||||||
|
// Apply saved optimization mode if valid
|
||||||
|
if (
|
||||||
|
searchOptimizationMode &&
|
||||||
|
(searchOptimizationMode === 'speed' ||
|
||||||
|
searchOptimizationMode === 'agent')
|
||||||
|
) {
|
||||||
|
setOptimizationMode(searchOptimizationMode);
|
||||||
|
localStorage.setItem('optimizationMode', searchOptimizationMode);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Apply saved chat model if valid
|
||||||
|
if (searchChatModelProvider && searchChatModel) {
|
||||||
|
setChatModelProvider({
|
||||||
|
name: searchChatModel,
|
||||||
|
provider: searchChatModelProvider,
|
||||||
|
});
|
||||||
|
// Also update localStorage to ensure consistency
|
||||||
|
localStorage.setItem('chatModelProvider', searchChatModelProvider);
|
||||||
|
localStorage.setItem('chatModel', searchChatModel);
|
||||||
|
}
|
||||||
|
|
||||||
sendMessage(initialMessage);
|
sendMessage(initialMessage);
|
||||||
|
|
||||||
|
// Remove the query parameter from the URL to prevent re-execution on page reload
|
||||||
|
const url = new URL(window.location.href);
|
||||||
|
url.searchParams.delete('q');
|
||||||
|
router.replace(url.pathname + url.search, { scroll: false });
|
||||||
}
|
}
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [isConfigReady, isReady, initialMessage]);
|
}, [isConfigReady, isReady, initialMessage]);
|
||||||
|
|
|
||||||
|
|
@ -164,7 +164,14 @@ const MessageInput = ({
|
||||||
<div className="flex flex-row items-center space-x-2">
|
<div className="flex flex-row items-center space-x-2">
|
||||||
<ModelSelector
|
<ModelSelector
|
||||||
selectedModel={selectedModel}
|
selectedModel={selectedModel}
|
||||||
setSelectedModel={setSelectedModel}
|
setSelectedModel={(selectedModel) => {
|
||||||
|
setSelectedModel(selectedModel);
|
||||||
|
localStorage.setItem(
|
||||||
|
'chatModelProvider',
|
||||||
|
selectedModel.provider,
|
||||||
|
);
|
||||||
|
localStorage.setItem('chatModel', selectedModel.model);
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
<SystemPromptSelector
|
<SystemPromptSelector
|
||||||
selectedPromptIds={systemPromptIds}
|
selectedPromptIds={systemPromptIds}
|
||||||
|
|
@ -172,7 +179,10 @@ const MessageInput = ({
|
||||||
/>
|
/>
|
||||||
<Optimization
|
<Optimization
|
||||||
optimizationMode={optimizationMode}
|
optimizationMode={optimizationMode}
|
||||||
setOptimizationMode={setOptimizationMode}
|
setOptimizationMode={(optimizationMode) => {
|
||||||
|
setOptimizationMode(optimizationMode);
|
||||||
|
localStorage.setItem('optimizationMode', optimizationMode);
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
{loading ? (
|
{loading ? (
|
||||||
<button
|
<button
|
||||||
|
|
|
||||||
|
|
@ -90,8 +90,16 @@ const Attach = ({
|
||||||
>
|
>
|
||||||
{files.length > 1 && (
|
{files.length > 1 && (
|
||||||
<>
|
<>
|
||||||
<File size={19} className={isDisabled ? 'text-sky-900' : 'text-sky-400'} />
|
<File
|
||||||
<p className={cn("inline whitespace-nowrap text-xs font-medium", isDisabled ? 'text-sky-900' : 'text-sky-400')}>
|
size={19}
|
||||||
|
className={isDisabled ? 'text-sky-900' : 'text-sky-400'}
|
||||||
|
/>
|
||||||
|
<p
|
||||||
|
className={cn(
|
||||||
|
'inline whitespace-nowrap text-xs font-medium',
|
||||||
|
isDisabled ? 'text-sky-900' : 'text-sky-400',
|
||||||
|
)}
|
||||||
|
>
|
||||||
{files.length} files
|
{files.length} files
|
||||||
</p>
|
</p>
|
||||||
</>
|
</>
|
||||||
|
|
@ -99,8 +107,16 @@ const Attach = ({
|
||||||
|
|
||||||
{files.length === 1 && (
|
{files.length === 1 && (
|
||||||
<>
|
<>
|
||||||
<File size={18} className={isDisabled ? 'text-sky-900' : 'text-sky-400'} />
|
<File
|
||||||
<p className={cn("text-xs font-medium", isDisabled ? 'text-sky-900' : 'text-sky-400')}>
|
size={18}
|
||||||
|
className={isDisabled ? 'text-sky-900' : 'text-sky-400'}
|
||||||
|
/>
|
||||||
|
<p
|
||||||
|
className={cn(
|
||||||
|
'text-xs font-medium',
|
||||||
|
isDisabled ? 'text-sky-900' : 'text-sky-400',
|
||||||
|
)}
|
||||||
|
>
|
||||||
{files[0].fileName.length > 10
|
{files[0].fileName.length > 10
|
||||||
? files[0].fileName.replace(/\.\w+$/, '').substring(0, 3) +
|
? files[0].fileName.replace(/\.\w+$/, '').substring(0, 3) +
|
||||||
'...' +
|
'...' +
|
||||||
|
|
|
||||||
|
|
@ -25,9 +25,11 @@ interface ProviderModelMap {
|
||||||
const ModelSelector = ({
|
const ModelSelector = ({
|
||||||
selectedModel,
|
selectedModel,
|
||||||
setSelectedModel,
|
setSelectedModel,
|
||||||
|
truncateModelName = true,
|
||||||
}: {
|
}: {
|
||||||
selectedModel: { provider: string; model: string } | null;
|
selectedModel: { provider: string; model: string } | null;
|
||||||
setSelectedModel: (model: { provider: string; model: string }) => void;
|
setSelectedModel: (model: { provider: string; model: string }) => void;
|
||||||
|
truncateModelName?: boolean;
|
||||||
}) => {
|
}) => {
|
||||||
const [providerModels, setProviderModels] = useState<ProviderModelMap>({});
|
const [providerModels, setProviderModels] = useState<ProviderModelMap>({});
|
||||||
const [providersList, setProvidersList] = useState<string[]>([]);
|
const [providersList, setProvidersList] = useState<string[]>([]);
|
||||||
|
|
@ -114,7 +116,13 @@ const ModelSelector = ({
|
||||||
setSelectedModelDisplay(currentModel.displayName);
|
setSelectedModelDisplay(currentModel.displayName);
|
||||||
setSelectedProviderDisplay(provider.displayName);
|
setSelectedProviderDisplay(provider.displayName);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
setSelectedModelDisplay('');
|
||||||
|
setSelectedProviderDisplay('');
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
setSelectedModelDisplay('');
|
||||||
|
setSelectedProviderDisplay('');
|
||||||
}
|
}
|
||||||
|
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
|
|
@ -125,7 +133,7 @@ const ModelSelector = ({
|
||||||
};
|
};
|
||||||
|
|
||||||
fetchModels();
|
fetchModels();
|
||||||
}, [selectedModel, setSelectedModel]);
|
}, [selectedModel]);
|
||||||
|
|
||||||
const toggleProviderExpanded = (provider: string) => {
|
const toggleProviderExpanded = (provider: string) => {
|
||||||
setExpandedProviders((prev) => ({
|
setExpandedProviders((prev) => ({
|
||||||
|
|
@ -144,10 +152,6 @@ const ModelSelector = ({
|
||||||
setSelectedProviderDisplay(
|
setSelectedProviderDisplay(
|
||||||
providerModels[option.provider]?.displayName || option.provider,
|
providerModels[option.provider]?.displayName || option.provider,
|
||||||
);
|
);
|
||||||
|
|
||||||
// Save to localStorage for persistence
|
|
||||||
localStorage.setItem('chatModelProvider', option.provider);
|
|
||||||
localStorage.setItem('chatModel', option.model);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const getDisplayText = () => {
|
const getDisplayText = () => {
|
||||||
|
|
@ -162,9 +166,19 @@ const ModelSelector = ({
|
||||||
{({ open }) => (
|
{({ open }) => (
|
||||||
<>
|
<>
|
||||||
<div className="relative">
|
<div className="relative">
|
||||||
<PopoverButton className="group flex items-center justify-center text-black/50 dark:text-white/50 rounded-xl hover:bg-light-secondary dark:hover:bg-dark-secondary active:scale-95 transition duration-200 hover:text-black dark:hover:text-white">
|
<PopoverButton
|
||||||
|
type="button"
|
||||||
|
className="p-2 group flex text-black/50 dark:text-white/50 rounded-xl hover:bg-light-secondary dark:hover:bg-dark-secondary active:scale-95 transition duration-200 hover:text-black dark:hover:text-white"
|
||||||
|
>
|
||||||
<Cpu size={18} />
|
<Cpu size={18} />
|
||||||
<span className="mx-2 text-xs font-medium overflow-hidden text-ellipsis whitespace-nowrap max-w-44 hidden lg:block">
|
<span
|
||||||
|
className={cn(
|
||||||
|
'mx-2 text-xs font-medium overflow-hidden text-ellipsis whitespace-nowrap hidden lg:block',
|
||||||
|
{
|
||||||
|
'max-w-44': truncateModelName,
|
||||||
|
},
|
||||||
|
)}
|
||||||
|
>
|
||||||
{getDisplayText()}
|
{getDisplayText()}
|
||||||
</span>
|
</span>
|
||||||
<ChevronDown
|
<ChevronDown
|
||||||
|
|
|
||||||
|
|
@ -46,15 +46,12 @@ const OptimizationModes = [
|
||||||
const Optimization = ({
|
const Optimization = ({
|
||||||
optimizationMode,
|
optimizationMode,
|
||||||
setOptimizationMode,
|
setOptimizationMode,
|
||||||
|
showTitle = false,
|
||||||
}: {
|
}: {
|
||||||
optimizationMode: string;
|
optimizationMode: string;
|
||||||
setOptimizationMode: (mode: string) => void;
|
setOptimizationMode: (mode: string) => void;
|
||||||
|
showTitle?: boolean;
|
||||||
}) => {
|
}) => {
|
||||||
const handleOptimizationChange = (mode: string) => {
|
|
||||||
setOptimizationMode(mode);
|
|
||||||
localStorage.setItem('optimizationMode', mode);
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Popover className="relative">
|
<Popover className="relative">
|
||||||
<PopoverButton
|
<PopoverButton
|
||||||
|
|
@ -62,16 +59,14 @@ const Optimization = ({
|
||||||
className="p-2 text-black/50 dark:text-white/50 rounded-xl hover:bg-light-secondary dark:hover:bg-dark-secondary active:scale-95 transition duration-200 hover:text-black dark:hover:text-white"
|
className="p-2 text-black/50 dark:text-white/50 rounded-xl hover:bg-light-secondary dark:hover:bg-dark-secondary active:scale-95 transition duration-200 hover:text-black dark:hover:text-white"
|
||||||
>
|
>
|
||||||
<div className="flex flex-row items-center space-x-1">
|
<div className="flex flex-row items-center space-x-1">
|
||||||
{
|
{OptimizationModes.find((mode) => mode.key === optimizationMode)
|
||||||
OptimizationModes.find((mode) => mode.key === optimizationMode)
|
?.icon || <Minimize2 size={20} className="text-gray-400" />}
|
||||||
?.icon
|
{showTitle && (
|
||||||
}
|
<p className="text-xs font-medium">
|
||||||
{/* <p className="text-xs font-medium hidden lg:block">
|
{OptimizationModes.find((mode) => mode.key === optimizationMode)
|
||||||
{
|
?.title || 'Select mode'}
|
||||||
OptimizationModes.find((mode) => mode.key === optimizationMode)
|
</p>
|
||||||
?.title
|
)}
|
||||||
}
|
|
||||||
</p> */}
|
|
||||||
<ChevronDown size={20} />
|
<ChevronDown size={20} />
|
||||||
</div>
|
</div>
|
||||||
</PopoverButton>
|
</PopoverButton>
|
||||||
|
|
@ -88,7 +83,7 @@ const Optimization = ({
|
||||||
<div className="flex flex-col gap-2 bg-light-primary dark:bg-dark-primary border rounded-lg border-light-200 dark:border-dark-200 w-max max-w-[300px] p-4 max-h-[200px] md:max-h-none overflow-y-auto">
|
<div className="flex flex-col gap-2 bg-light-primary dark:bg-dark-primary border rounded-lg border-light-200 dark:border-dark-200 w-max max-w-[300px] p-4 max-h-[200px] md:max-h-none overflow-y-auto">
|
||||||
{OptimizationModes.map((mode, i) => (
|
{OptimizationModes.map((mode, i) => (
|
||||||
<PopoverButton
|
<PopoverButton
|
||||||
onClick={() => handleOptimizationChange(mode.key)}
|
onClick={() => setOptimizationMode(mode.key)}
|
||||||
key={i}
|
key={i}
|
||||||
className={cn(
|
className={cn(
|
||||||
'p-2 rounded-lg flex flex-col items-start justify-start text-start space-y-1 duration-200 cursor-pointer transition',
|
'p-2 rounded-lg flex flex-col items-start justify-start text-start space-y-1 duration-200 cursor-pointer transition',
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,9 @@ export class AnalyzerAgent {
|
||||||
const urls = [...new Set(state.query.match(urlRegex) || [])];
|
const urls = [...new Set(state.query.match(urlRegex) || [])];
|
||||||
|
|
||||||
if (urls.length > 0) {
|
if (urls.length > 0) {
|
||||||
console.log('URLs detected in initial query, routing to URL summarization');
|
console.log(
|
||||||
|
'URLs detected in initial query, routing to URL summarization',
|
||||||
|
);
|
||||||
console.log(`URLs found: ${urls.join(', ')}`);
|
console.log(`URLs found: ${urls.join(', ')}`);
|
||||||
|
|
||||||
// Emit URL detection event
|
// Emit URL detection event
|
||||||
|
|
|
||||||
|
|
@ -104,10 +104,10 @@ export class ContentRouterAgent {
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
const routerDecision = await structuredLlm.invoke(
|
const routerDecision = (await structuredLlm.invoke(
|
||||||
[...removeThinkingBlocksFromMessages(state.messages), prompt],
|
[...removeThinkingBlocksFromMessages(state.messages), prompt],
|
||||||
{ signal: this.signal },
|
{ signal: this.signal },
|
||||||
);
|
)) as RouterDecision;
|
||||||
|
|
||||||
console.log(`Router decision: ${routerDecision.decision}`);
|
console.log(`Router decision: ${routerDecision.decision}`);
|
||||||
console.log(`Router reasoning: ${routerDecision.reasoning}`);
|
console.log(`Router reasoning: ${routerDecision.reasoning}`);
|
||||||
|
|
|
||||||
|
|
@ -145,9 +145,9 @@ export class TaskManagerAgent {
|
||||||
name: 'break_down_tasks',
|
name: 'break_down_tasks',
|
||||||
});
|
});
|
||||||
|
|
||||||
const taskBreakdownResult = await structuredLlm.invoke([prompt], {
|
const taskBreakdownResult = (await structuredLlm.invoke([prompt], {
|
||||||
signal: this.signal,
|
signal: this.signal,
|
||||||
});
|
})) as TaskBreakdown;
|
||||||
|
|
||||||
console.log('Task breakdown response:', taskBreakdownResult);
|
console.log('Task breakdown response:', taskBreakdownResult);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -35,14 +35,22 @@ export class URLSummarizationAgent {
|
||||||
|
|
||||||
// Use pre-analyzed URLs from ContentRouterAgent
|
// Use pre-analyzed URLs from ContentRouterAgent
|
||||||
const urlsToProcess = state.urlsToSummarize || [];
|
const urlsToProcess = state.urlsToSummarize || [];
|
||||||
const summarizationIntent = state.summarizationIntent || 'process content to help answer the user query';
|
const summarizationIntent =
|
||||||
|
state.summarizationIntent ||
|
||||||
|
'process content to help answer the user query';
|
||||||
|
|
||||||
if (urlsToProcess.length === 0) {
|
if (urlsToProcess.length === 0) {
|
||||||
console.log('No URLs found for processing, routing back to content router');
|
console.log(
|
||||||
|
'No URLs found for processing, routing back to content router',
|
||||||
|
);
|
||||||
return new Command({
|
return new Command({
|
||||||
goto: 'content_router',
|
goto: 'content_router',
|
||||||
update: {
|
update: {
|
||||||
messages: [new AIMessage('No URLs found for processing, routing to content router')],
|
messages: [
|
||||||
|
new AIMessage(
|
||||||
|
'No URLs found for processing, routing to content router',
|
||||||
|
),
|
||||||
|
],
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -119,7 +127,9 @@ export class URLSummarizationAgent {
|
||||||
finalContent = webContent.pageContent;
|
finalContent = webContent.pageContent;
|
||||||
processingType = 'url-direct-content';
|
processingType = 'url-direct-content';
|
||||||
|
|
||||||
console.log(`Content is short (${contentLength} chars), using directly without summarization`);
|
console.log(
|
||||||
|
`Content is short (${contentLength} chars), using directly without summarization`,
|
||||||
|
);
|
||||||
|
|
||||||
// Emit direct content usage event
|
// Emit direct content usage event
|
||||||
this.emitter.emit('agent_action', {
|
this.emitter.emit('agent_action', {
|
||||||
|
|
@ -138,7 +148,9 @@ export class URLSummarizationAgent {
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
// Content is long, summarize using LLM
|
// Content is long, summarize using LLM
|
||||||
console.log(`Content is long (${contentLength} chars), generating summary`);
|
console.log(
|
||||||
|
`Content is long (${contentLength} chars), generating summary`,
|
||||||
|
);
|
||||||
|
|
||||||
const systemPrompt = this.systemInstructions
|
const systemPrompt = this.systemInstructions
|
||||||
? `${this.systemInstructions}\n\n`
|
? `${this.systemInstructions}\n\n`
|
||||||
|
|
|
||||||
|
|
@ -183,23 +183,26 @@ export class WebSearchAgent {
|
||||||
|
|
||||||
let previewContents: PreviewContent[] = [];
|
let previewContents: PreviewContent[] = [];
|
||||||
// Always take the top 3 results for preview content
|
// Always take the top 3 results for preview content
|
||||||
previewContents.push(...filteredResults.slice(0, 3)
|
previewContents.push(
|
||||||
.map((result) => ({
|
...filteredResults.slice(0, 3).map((result) => ({
|
||||||
title: result.title || 'Untitled',
|
title: result.title || 'Untitled',
|
||||||
snippet: result.content || '',
|
snippet: result.content || '',
|
||||||
url: result.url,
|
url: result.url,
|
||||||
}))
|
})),
|
||||||
);
|
);
|
||||||
|
|
||||||
// Sort by relevance score and take top 12 results for a total of 15
|
// Sort by relevance score and take top 12 results for a total of 15
|
||||||
previewContents.push(...resultsWithSimilarity.slice(3)
|
previewContents.push(
|
||||||
|
...resultsWithSimilarity
|
||||||
|
.slice(3)
|
||||||
.sort((a, b) => b.similarity - a.similarity)
|
.sort((a, b) => b.similarity - a.similarity)
|
||||||
.slice(0, 12)
|
.slice(0, 12)
|
||||||
.map(({ result }) => ({
|
.map(({ result }) => ({
|
||||||
title: result.title || 'Untitled',
|
title: result.title || 'Untitled',
|
||||||
snippet: result.content || '',
|
snippet: result.content || '',
|
||||||
url: result.url,
|
url: result.url,
|
||||||
})));
|
})),
|
||||||
|
);
|
||||||
|
|
||||||
console.log(
|
console.log(
|
||||||
`Extracted preview content from ${previewContents.length} search results for analysis`,
|
`Extracted preview content from ${previewContents.length} search results for analysis`,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { ChatOpenAI } from '@langchain/openai';
|
import { ChatGroq } from '@langchain/groq';
|
||||||
import { getGroqApiKey } from '../config';
|
import { getGroqApiKey } from '../config';
|
||||||
import { ChatModel } from '.';
|
import { ChatModel } from '.';
|
||||||
import { BaseChatModel } from '@langchain/core/language_models/chat_models';
|
import { BaseChatModel } from '@langchain/core/language_models/chat_models';
|
||||||
|
|
@ -47,7 +47,7 @@ const generateDisplayName = (modelId: string, ownedBy: string): string => {
|
||||||
let displayName = modelId
|
let displayName = modelId
|
||||||
.replace(/[-_]/g, ' ')
|
.replace(/[-_]/g, ' ')
|
||||||
.split(' ')
|
.split(' ')
|
||||||
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
||||||
.join(' ');
|
.join(' ');
|
||||||
|
|
||||||
// Add owner info for certain models
|
// Add owner info for certain models
|
||||||
|
|
@ -62,24 +62,27 @@ const fetchGroqModels = async (apiKey: string): Promise<GroqModel[]> => {
|
||||||
try {
|
try {
|
||||||
const response = await fetch('https://api.groq.com/openai/v1/models', {
|
const response = await fetch('https://api.groq.com/openai/v1/models', {
|
||||||
headers: {
|
headers: {
|
||||||
'Authorization': `Bearer ${apiKey}`,
|
Authorization: `Bearer ${apiKey}`,
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
throw new Error(`Failed to fetch models: ${response.status} ${response.statusText}`);
|
throw new Error(
|
||||||
|
`Failed to fetch models: ${response.status} ${response.statusText}`,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const data: GroqModelsResponse = await response.json();
|
const data: GroqModelsResponse = await response.json();
|
||||||
|
|
||||||
// Filter for active chat completion models (exclude audio/whisper models)
|
// Filter for active chat completion models (exclude audio/whisper models)
|
||||||
return data.data.filter(model =>
|
return data.data.filter(
|
||||||
|
(model) =>
|
||||||
model.active &&
|
model.active &&
|
||||||
!model.id.includes('whisper') &&
|
!model.id.includes('whisper') &&
|
||||||
!model.id.includes('tts') &&
|
!model.id.includes('tts') &&
|
||||||
!model.id.includes('guard') &&
|
!model.id.includes('guard') &&
|
||||||
!model.id.includes('prompt-guard')
|
!model.id.includes('prompt-guard'),
|
||||||
);
|
);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error fetching Groq models:', error);
|
console.error('Error fetching Groq models:', error);
|
||||||
|
|
@ -101,13 +104,9 @@ export const loadGroqChatModels = async () => {
|
||||||
availableModels.forEach((model) => {
|
availableModels.forEach((model) => {
|
||||||
chatModels[model.id] = {
|
chatModels[model.id] = {
|
||||||
displayName: generateDisplayName(model.id, model.owned_by),
|
displayName: generateDisplayName(model.id, model.owned_by),
|
||||||
model: new ChatOpenAI({
|
model: new ChatGroq({
|
||||||
openAIApiKey: groqApiKey,
|
apiKey: groqApiKey,
|
||||||
modelName: model.id,
|
model: model.id,
|
||||||
// temperature: 0.7,
|
|
||||||
configuration: {
|
|
||||||
baseURL: 'https://api.groq.com/openai/v1',
|
|
||||||
},
|
|
||||||
}) as unknown as BaseChatModel,
|
}) as unknown as BaseChatModel,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ const RelevanceCheckSchema = z.object({
|
||||||
.describe('Whether the content is relevant to the user query'),
|
.describe('Whether the content is relevant to the user query'),
|
||||||
reason: z
|
reason: z
|
||||||
.string()
|
.string()
|
||||||
.describe('Brief explanation of why content is or isn\'t relevant'),
|
.describe("Brief explanation of why content is or isn't relevant"),
|
||||||
});
|
});
|
||||||
|
|
||||||
export const summarizeWebContent = async (
|
export const summarizeWebContent = async (
|
||||||
|
|
@ -39,7 +39,8 @@ export const summarizeWebContent = async (
|
||||||
: '';
|
: '';
|
||||||
|
|
||||||
// Determine content length for short-circuit logic
|
// Determine content length for short-circuit logic
|
||||||
const contentToAnalyze = content.pageContent || content.metadata.html || '';
|
const contentToAnalyze =
|
||||||
|
content.pageContent || content.metadata.html || '';
|
||||||
const isShortContent = contentToAnalyze.length < 4000;
|
const isShortContent = contentToAnalyze.length < 4000;
|
||||||
|
|
||||||
if (isShortContent) {
|
if (isShortContent) {
|
||||||
|
|
@ -66,14 +67,16 @@ Here is the query you need to answer: ${query}
|
||||||
|
|
||||||
Here is the content to analyze:
|
Here is the content to analyze:
|
||||||
${contentToAnalyze}`,
|
${contentToAnalyze}`,
|
||||||
{ signal }
|
{ signal },
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!relevanceResult) {
|
if (!relevanceResult) {
|
||||||
console.error(`No relevance result returned for URL ${url}`);
|
console.error(`No relevance result returned for URL ${url}`);
|
||||||
// Fall through to full summarization as fallback
|
// Fall through to full summarization as fallback
|
||||||
} else if (relevanceResult.relevant) {
|
} else if (relevanceResult.relevant) {
|
||||||
console.log(`Short content for URL "${url}" is relevant: ${relevanceResult.reason}`);
|
console.log(
|
||||||
|
`Short content for URL "${url}" is relevant: ${relevanceResult.reason}`,
|
||||||
|
);
|
||||||
return {
|
return {
|
||||||
document: new Document({
|
document: new Document({
|
||||||
pageContent: content.pageContent,
|
pageContent: content.pageContent,
|
||||||
|
|
@ -86,14 +89,20 @@ ${contentToAnalyze}`,
|
||||||
notRelevantReason: undefined,
|
notRelevantReason: undefined,
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
console.log(`Short content for URL "${url}" is not relevant: ${relevanceResult.reason}`);
|
console.log(
|
||||||
|
`Short content for URL "${url}" is not relevant: ${relevanceResult.reason}`,
|
||||||
|
);
|
||||||
return {
|
return {
|
||||||
document: null,
|
document: null,
|
||||||
notRelevantReason: relevanceResult.reason || 'Content not relevant to query',
|
notRelevantReason:
|
||||||
|
relevanceResult.reason || 'Content not relevant to query',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(`Error checking relevance for short content from URL ${url}:`, error);
|
console.error(
|
||||||
|
`Error checking relevance for short content from URL ${url}:`,
|
||||||
|
error,
|
||||||
|
);
|
||||||
// Fall through to full summarization as fallback
|
// Fall through to full summarization as fallback
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
466
yarn.lock
466
yarn.lock
|
|
@ -20,7 +20,7 @@
|
||||||
formdata-node "^4.3.2"
|
formdata-node "^4.3.2"
|
||||||
node-fetch "^2.6.7"
|
node-fetch "^2.6.7"
|
||||||
|
|
||||||
"@asamuzakjp/css-color@^3.1.2":
|
"@asamuzakjp/css-color@^3.2.0":
|
||||||
version "3.2.0"
|
version "3.2.0"
|
||||||
resolved "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz"
|
resolved "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz"
|
||||||
integrity sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==
|
integrity sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==
|
||||||
|
|
@ -32,9 +32,9 @@
|
||||||
lru-cache "^10.4.3"
|
lru-cache "^10.4.3"
|
||||||
|
|
||||||
"@babel/runtime@^7.20.13", "@babel/runtime@^7.3.1":
|
"@babel/runtime@^7.20.13", "@babel/runtime@^7.3.1":
|
||||||
version "7.27.4"
|
version "7.27.6"
|
||||||
resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.4.tgz"
|
resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz"
|
||||||
integrity sha512-t3yaEOuGu9NlIZ+hIeGbBjFtZT7j2cb2tg0fuaJKeGotchRjjLfrBA9Kwf8quhpP1EUuxModQg04q/mBwyg8uA==
|
integrity sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==
|
||||||
|
|
||||||
"@cfworker/json-schema@^4.0.2":
|
"@cfworker/json-schema@^4.0.2":
|
||||||
version "4.1.1"
|
version "4.1.1"
|
||||||
|
|
@ -692,21 +692,21 @@
|
||||||
zod-to-json-schema "^3.22.5"
|
zod-to-json-schema "^3.22.5"
|
||||||
|
|
||||||
"@langchain/core@^0.3.57":
|
"@langchain/core@^0.3.57":
|
||||||
version "0.3.57"
|
version "0.3.61"
|
||||||
resolved "https://registry.npmjs.org/@langchain/core/-/core-0.3.57.tgz"
|
resolved "https://registry.npmjs.org/@langchain/core/-/core-0.3.61.tgz"
|
||||||
integrity sha512-jz28qCTKJmi47b6jqhQ6vYRTG5jRpqhtPQjriRTB5wR8mgvzo6xKs0fG/kExS3ZvM79ytD1npBvgf8i19xOo9Q==
|
integrity sha512-4O7fw5SXNSE+uBnathLQrhm3t+7dZGagt/5kt37A+pXw0AkudxEBvveg73sSnpBd9SIz3/Vc7F4k8rCKXGbEDA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@cfworker/json-schema" "^4.0.2"
|
"@cfworker/json-schema" "^4.0.2"
|
||||||
ansi-styles "^5.0.0"
|
ansi-styles "^5.0.0"
|
||||||
camelcase "6"
|
camelcase "6"
|
||||||
decamelize "1.2.0"
|
decamelize "1.2.0"
|
||||||
js-tiktoken "^1.0.12"
|
js-tiktoken "^1.0.12"
|
||||||
langsmith "^0.3.29"
|
langsmith "^0.3.33"
|
||||||
mustache "^4.2.0"
|
mustache "^4.2.0"
|
||||||
p-queue "^6.6.2"
|
p-queue "^6.6.2"
|
||||||
p-retry "4"
|
p-retry "4"
|
||||||
uuid "^10.0.0"
|
uuid "^10.0.0"
|
||||||
zod "^3.22.4"
|
zod "^3.25.32"
|
||||||
zod-to-json-schema "^3.22.3"
|
zod-to-json-schema "^3.22.3"
|
||||||
|
|
||||||
"@langchain/google-genai@^0.2.10":
|
"@langchain/google-genai@^0.2.10":
|
||||||
|
|
@ -718,6 +718,14 @@
|
||||||
uuid "^11.1.0"
|
uuid "^11.1.0"
|
||||||
zod-to-json-schema "^3.22.4"
|
zod-to-json-schema "^3.22.4"
|
||||||
|
|
||||||
|
"@langchain/groq@^0.2.3":
|
||||||
|
version "0.2.3"
|
||||||
|
resolved "https://registry.npmjs.org/@langchain/groq/-/groq-0.2.3.tgz"
|
||||||
|
integrity sha512-r+yjysG36a0IZxTlCMr655Feumfb4IrOyA0jLLq4l7gEhVyMpYXMwyE6evseyU2LRP+7qOPbGRVpGqAIK0MsUA==
|
||||||
|
dependencies:
|
||||||
|
groq-sdk "^0.19.0"
|
||||||
|
zod "^3.22.4"
|
||||||
|
|
||||||
"@langchain/langgraph-checkpoint@~0.0.18":
|
"@langchain/langgraph-checkpoint@~0.0.18":
|
||||||
version "0.0.18"
|
version "0.0.18"
|
||||||
resolved "https://registry.npmjs.org/@langchain/langgraph-checkpoint/-/langgraph-checkpoint-0.0.18.tgz"
|
resolved "https://registry.npmjs.org/@langchain/langgraph-checkpoint/-/langgraph-checkpoint-0.0.18.tgz"
|
||||||
|
|
@ -726,9 +734,9 @@
|
||||||
uuid "^10.0.0"
|
uuid "^10.0.0"
|
||||||
|
|
||||||
"@langchain/langgraph-sdk@~0.0.32":
|
"@langchain/langgraph-sdk@~0.0.32":
|
||||||
version "0.0.81"
|
version "0.0.84"
|
||||||
resolved "https://registry.npmjs.org/@langchain/langgraph-sdk/-/langgraph-sdk-0.0.81.tgz"
|
resolved "https://registry.npmjs.org/@langchain/langgraph-sdk/-/langgraph-sdk-0.0.84.tgz"
|
||||||
integrity sha512-2Vo6EHp3Wtcz40jbqj8NfZAEO+PY9UE5gIi0bGbnytta6g+ajz8fhFhsdwTGkZo1TtErZ6M23viOWk8Vi6knXQ==
|
integrity sha512-l0PFQyJ+6m6aclORNPPWlcRwgKcXVXsPaJCbCUYFABR3yf4cOpsjhUNR0cJ7+2cS400oieHjGRdGGyO/hbSjhg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/json-schema" "^7.0.15"
|
"@types/json-schema" "^7.0.15"
|
||||||
p-queue "^6.6.2"
|
p-queue "^6.6.2"
|
||||||
|
|
@ -737,7 +745,7 @@
|
||||||
|
|
||||||
"@langchain/langgraph@^0.3.1":
|
"@langchain/langgraph@^0.3.1":
|
||||||
version "0.3.1"
|
version "0.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/@langchain/langgraph/-/langgraph-0.3.1.tgz#12b55eed0ef6b9415c860c63692fd85a8f64e54c"
|
resolved "https://registry.npmjs.org/@langchain/langgraph/-/langgraph-0.3.1.tgz"
|
||||||
integrity sha512-BFa6DmKthPG1znkUhTBBqdza4dojs7QGg6o9V9aptIkWWdBF/UhRbjPvCx6ldkmU2oJRNWZ1BlkiP6RflxxPwA==
|
integrity sha512-BFa6DmKthPG1znkUhTBBqdza4dojs7QGg6o9V9aptIkWWdBF/UhRbjPvCx6ldkmU2oJRNWZ1BlkiP6RflxxPwA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@langchain/langgraph-checkpoint" "~0.0.18"
|
"@langchain/langgraph-checkpoint" "~0.0.18"
|
||||||
|
|
@ -746,28 +754,18 @@
|
||||||
zod "^3.23.8"
|
zod "^3.23.8"
|
||||||
|
|
||||||
"@langchain/ollama@^0.2.0":
|
"@langchain/ollama@^0.2.0":
|
||||||
version "0.2.0"
|
version "0.2.1"
|
||||||
resolved "https://registry.npmjs.org/@langchain/ollama/-/ollama-0.2.0.tgz"
|
resolved "https://registry.npmjs.org/@langchain/ollama/-/ollama-0.2.1.tgz"
|
||||||
integrity sha512-jLlYFqt+nbhaJKLakk7lRTWHZJ7wHeJLM6yuv4jToQ8zPzpL//372+MjggDoW0mnw8ofysg1T2C6mEJspKJtiA==
|
integrity sha512-9WQ/rJV002n2f/aBPzNKBZU7kJfhqDnaGTWeIKO5gM0wZ+Rb2mfk7psluFIedachwsM/FQ+oIBcViHriaXngzA==
|
||||||
dependencies:
|
dependencies:
|
||||||
ollama "^0.5.12"
|
ollama "^0.5.12"
|
||||||
uuid "^10.0.0"
|
uuid "^10.0.0"
|
||||||
zod "^3.24.1"
|
zod "^3.24.1"
|
||||||
zod-to-json-schema "^3.24.1"
|
zod-to-json-schema "^3.24.1"
|
||||||
|
|
||||||
"@langchain/openai@>=0.1.0 <0.6.0", "@langchain/openai@>=0.2.0 <0.6.0":
|
"@langchain/openai@>=0.1.0 <0.6.0", "@langchain/openai@>=0.2.0 <0.6.0", "@langchain/openai@^0.5.12":
|
||||||
version "0.5.11"
|
|
||||||
resolved "https://registry.npmjs.org/@langchain/openai/-/openai-0.5.11.tgz"
|
|
||||||
integrity sha512-DAp7x+NfjSqDvKVMle8yb85nzz+3ctP7zGJaeRS0vLmvkY9qf/jRkowsM0mcsIiEUKhG/AHzWqvxbhktb/jJ6Q==
|
|
||||||
dependencies:
|
|
||||||
js-tiktoken "^1.0.12"
|
|
||||||
openai "^4.96.0"
|
|
||||||
zod "^3.22.4"
|
|
||||||
zod-to-json-schema "^3.22.3"
|
|
||||||
|
|
||||||
"@langchain/openai@^0.5.12":
|
|
||||||
version "0.5.12"
|
version "0.5.12"
|
||||||
resolved "https://registry.yarnpkg.com/@langchain/openai/-/openai-0.5.12.tgz#1ade0f923238f73e0330fd91b988fbcb3d0a5689"
|
resolved "https://registry.npmjs.org/@langchain/openai/-/openai-0.5.12.tgz"
|
||||||
integrity sha512-k7rxBY3ed/HIiMLd6HBqFibsfB0+L6c82H8JgXDqKeyUoACJIi1JaKHXmofmCeF2SBXBU9dog4gEGpHfcUDGUA==
|
integrity sha512-k7rxBY3ed/HIiMLd6HBqFibsfB0+L6c82H8JgXDqKeyUoACJIi1JaKHXmofmCeF2SBXBU9dog4gEGpHfcUDGUA==
|
||||||
dependencies:
|
dependencies:
|
||||||
js-tiktoken "^1.0.12"
|
js-tiktoken "^1.0.12"
|
||||||
|
|
@ -795,7 +793,7 @@
|
||||||
resolved "https://registry.npmjs.org/@mozilla/readability/-/readability-0.6.0.tgz"
|
resolved "https://registry.npmjs.org/@mozilla/readability/-/readability-0.6.0.tgz"
|
||||||
integrity sha512-juG5VWh4qAivzTAeMzvY9xs9HY5rAcr2E4I7tiSSCokRFi7XIZCAu92ZkSTsIj1OPceCifL3cpfteP3pDT9/QQ==
|
integrity sha512-juG5VWh4qAivzTAeMzvY9xs9HY5rAcr2E4I7tiSSCokRFi7XIZCAu92ZkSTsIj1OPceCifL3cpfteP3pDT9/QQ==
|
||||||
|
|
||||||
"@napi-rs/wasm-runtime@^0.2.10":
|
"@napi-rs/wasm-runtime@^0.2.11":
|
||||||
version "0.2.11"
|
version "0.2.11"
|
||||||
resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.11.tgz#192c1610e1625048089ab4e35bc0649ce478500e"
|
resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.11.tgz#192c1610e1625048089ab4e35bc0649ce478500e"
|
||||||
integrity sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==
|
integrity sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==
|
||||||
|
|
@ -946,64 +944,64 @@
|
||||||
integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==
|
integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==
|
||||||
|
|
||||||
"@react-aria/focus@^3.20.2":
|
"@react-aria/focus@^3.20.2":
|
||||||
version "3.20.3"
|
version "3.20.4"
|
||||||
resolved "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.3.tgz"
|
resolved "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.4.tgz"
|
||||||
integrity sha512-rR5uZUMSY4xLHmpK/I8bP1V6vUNHFo33gTvrvNUsAKKqvMfa7R2nu5A6v97dr5g6tVH6xzpdkPsOJCWh90H2cw==
|
integrity sha512-E9M/kPYvF1fBZpkRXsKqMhvBVEyTY7vmkHeXLJo6tInKQOjYyYs0VeWlnGnxBjQIAH7J7ZKAORfTFQQHyhoueQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@react-aria/interactions" "^3.25.1"
|
"@react-aria/interactions" "^3.25.2"
|
||||||
"@react-aria/utils" "^3.29.0"
|
"@react-aria/utils" "^3.29.1"
|
||||||
"@react-types/shared" "^3.29.1"
|
"@react-types/shared" "^3.30.0"
|
||||||
"@swc/helpers" "^0.5.0"
|
"@swc/helpers" "^0.5.0"
|
||||||
clsx "^2.0.0"
|
clsx "^2.0.0"
|
||||||
|
|
||||||
"@react-aria/interactions@^3.25.0", "@react-aria/interactions@^3.25.1":
|
"@react-aria/interactions@^3.25.0", "@react-aria/interactions@^3.25.2":
|
||||||
version "3.25.1"
|
version "3.25.2"
|
||||||
resolved "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.25.1.tgz"
|
resolved "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.25.2.tgz"
|
||||||
integrity sha512-ntLrlgqkmZupbbjekz3fE/n3eQH2vhncx8gUp0+N+GttKWevx7jos11JUBjnJwb1RSOPgRUFcrluOqBp0VgcfQ==
|
integrity sha512-BWyZXBT4P17b9C9HfOIT2glDFMH9nUCfQF7vZ5FEeXNBudH/8OcSbzyBUG4Dg3XPtkOem5LP59ocaizkl32Tvg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@react-aria/ssr" "^3.9.8"
|
"@react-aria/ssr" "^3.9.9"
|
||||||
"@react-aria/utils" "^3.29.0"
|
"@react-aria/utils" "^3.29.1"
|
||||||
"@react-stately/flags" "^3.1.1"
|
"@react-stately/flags" "^3.1.2"
|
||||||
"@react-types/shared" "^3.29.1"
|
"@react-types/shared" "^3.30.0"
|
||||||
"@swc/helpers" "^0.5.0"
|
"@swc/helpers" "^0.5.0"
|
||||||
|
|
||||||
"@react-aria/ssr@^3.9.8":
|
"@react-aria/ssr@^3.9.9":
|
||||||
version "3.9.8"
|
version "3.9.9"
|
||||||
resolved "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.8.tgz"
|
resolved "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.9.tgz"
|
||||||
integrity sha512-lQDE/c9uTfBSDOjaZUJS8xP2jCKVk4zjQeIlCH90xaLhHDgbpCdns3xvFpJJujfj3nI4Ll9K7A+ONUBDCASOuw==
|
integrity sha512-2P5thfjfPy/np18e5wD4WPt8ydNXhij1jwA8oehxZTFqlgVMGXzcWKxTb4RtJrLFsqPO7RUQTiY8QJk0M4Vy2g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@swc/helpers" "^0.5.0"
|
"@swc/helpers" "^0.5.0"
|
||||||
|
|
||||||
"@react-aria/utils@^3.29.0":
|
"@react-aria/utils@^3.29.1":
|
||||||
version "3.29.0"
|
|
||||||
resolved "https://registry.npmjs.org/@react-aria/utils/-/utils-3.29.0.tgz"
|
|
||||||
integrity sha512-jSOrZimCuT1iKNVlhjIxDkAhgF7HSp3pqyT6qjg/ZoA0wfqCi/okmrMPiWSAKBnkgX93N8GYTLT3CIEO6WZe9Q==
|
|
||||||
dependencies:
|
|
||||||
"@react-aria/ssr" "^3.9.8"
|
|
||||||
"@react-stately/flags" "^3.1.1"
|
|
||||||
"@react-stately/utils" "^3.10.6"
|
|
||||||
"@react-types/shared" "^3.29.1"
|
|
||||||
"@swc/helpers" "^0.5.0"
|
|
||||||
clsx "^2.0.0"
|
|
||||||
|
|
||||||
"@react-stately/flags@^3.1.1":
|
|
||||||
version "3.1.1"
|
|
||||||
resolved "https://registry.npmjs.org/@react-stately/flags/-/flags-3.1.1.tgz"
|
|
||||||
integrity sha512-XPR5gi5LfrPdhxZzdIlJDz/B5cBf63l4q6/AzNqVWFKgd0QqY5LvWJftXkklaIUpKSJkIKQb8dphuZXDtkWNqg==
|
|
||||||
dependencies:
|
|
||||||
"@swc/helpers" "^0.5.0"
|
|
||||||
|
|
||||||
"@react-stately/utils@^3.10.6":
|
|
||||||
version "3.10.6"
|
|
||||||
resolved "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.6.tgz"
|
|
||||||
integrity sha512-O76ip4InfTTzAJrg8OaZxKU4vvjMDOpfA/PGNOytiXwBbkct2ZeZwaimJ8Bt9W1bj5VsZ81/o/tW4BacbdDOMA==
|
|
||||||
dependencies:
|
|
||||||
"@swc/helpers" "^0.5.0"
|
|
||||||
|
|
||||||
"@react-types/shared@^3.29.1":
|
|
||||||
version "3.29.1"
|
version "3.29.1"
|
||||||
resolved "https://registry.npmjs.org/@react-types/shared/-/shared-3.29.1.tgz"
|
resolved "https://registry.npmjs.org/@react-aria/utils/-/utils-3.29.1.tgz"
|
||||||
integrity sha512-KtM+cDf2CXoUX439rfEhbnEdAgFZX20UP2A35ypNIawR7/PFFPjQDWyA2EnClCcW/dLWJDEPX2U8+EJff8xqmQ==
|
integrity sha512-yXMFVJ73rbQ/yYE/49n5Uidjw7kh192WNN9PNQGV0Xoc7EJUlSOxqhnpHmYTyO0EotJ8fdM1fMH8durHjUSI8g==
|
||||||
|
dependencies:
|
||||||
|
"@react-aria/ssr" "^3.9.9"
|
||||||
|
"@react-stately/flags" "^3.1.2"
|
||||||
|
"@react-stately/utils" "^3.10.7"
|
||||||
|
"@react-types/shared" "^3.30.0"
|
||||||
|
"@swc/helpers" "^0.5.0"
|
||||||
|
clsx "^2.0.0"
|
||||||
|
|
||||||
|
"@react-stately/flags@^3.1.2":
|
||||||
|
version "3.1.2"
|
||||||
|
resolved "https://registry.npmjs.org/@react-stately/flags/-/flags-3.1.2.tgz"
|
||||||
|
integrity sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==
|
||||||
|
dependencies:
|
||||||
|
"@swc/helpers" "^0.5.0"
|
||||||
|
|
||||||
|
"@react-stately/utils@^3.10.7":
|
||||||
|
version "3.10.7"
|
||||||
|
resolved "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.7.tgz"
|
||||||
|
integrity sha512-cWvjGAocvy4abO9zbr6PW6taHgF24Mwy/LbQ4TC4Aq3tKdKDntxyD+sh7AkSRfJRT2ccMVaHVv2+FfHThd3PKQ==
|
||||||
|
dependencies:
|
||||||
|
"@swc/helpers" "^0.5.0"
|
||||||
|
|
||||||
|
"@react-types/shared@^3.30.0":
|
||||||
|
version "3.30.0"
|
||||||
|
resolved "https://registry.npmjs.org/@react-types/shared/-/shared-3.30.0.tgz"
|
||||||
|
integrity sha512-COIazDAx1ncDg046cTJ8SFYsX8aS3lB/08LDnbkH/SkdYrFPWDlXMrO/sUam8j1WWM+PJ+4d1mj7tODIKNiFog==
|
||||||
|
|
||||||
"@rtsao/scc@^1.1.0":
|
"@rtsao/scc@^1.1.0":
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
|
|
@ -1053,16 +1051,16 @@
|
||||||
postcss-selector-parser "6.0.10"
|
postcss-selector-parser "6.0.10"
|
||||||
|
|
||||||
"@tanstack/react-virtual@^3.13.9":
|
"@tanstack/react-virtual@^3.13.9":
|
||||||
version "3.13.9"
|
version "3.13.10"
|
||||||
resolved "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.9.tgz"
|
resolved "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.10.tgz"
|
||||||
integrity sha512-SPWC8kwG/dWBf7Py7cfheAPOxuvIv4fFQ54PdmYbg7CpXfsKxkucak43Q0qKsxVthhUJQ1A7CIMAIplq4BjVwA==
|
integrity sha512-nvrzk4E9mWB4124YdJ7/yzwou7IfHxlSef6ugCFcBfRmsnsma3heciiiV97sBNxyc3VuwtZvmwXd0aB5BpucVw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@tanstack/virtual-core" "3.13.9"
|
"@tanstack/virtual-core" "3.13.10"
|
||||||
|
|
||||||
"@tanstack/virtual-core@3.13.9":
|
"@tanstack/virtual-core@3.13.10":
|
||||||
version "3.13.9"
|
version "3.13.10"
|
||||||
resolved "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.9.tgz"
|
resolved "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.10.tgz"
|
||||||
integrity sha512-3jztt0jpaoJO5TARe2WIHC1UQC3VMLAFUW5mmMo0yrkwtDB2AQP0+sh10BVUpWrnvHjSLvzFizydtEGLCJKFoQ==
|
integrity sha512-sPEDhXREou5HyZYqSWIqdU580rsF6FGeN7vpzijmP3KTiOGjOMZASz4Y6+QKjiFQwhWrR58OP8izYaNGVxvViA==
|
||||||
|
|
||||||
"@tybys/wasm-util@^0.9.0":
|
"@tybys/wasm-util@^0.9.0":
|
||||||
version "0.9.0"
|
version "0.9.0"
|
||||||
|
|
@ -1123,16 +1121,16 @@
|
||||||
form-data "^4.0.0"
|
form-data "^4.0.0"
|
||||||
|
|
||||||
"@types/node@*", "@types/node@>=13.7.0", "@types/node@^20":
|
"@types/node@*", "@types/node@>=13.7.0", "@types/node@^20":
|
||||||
version "20.17.57"
|
version "20.19.0"
|
||||||
resolved "https://registry.npmjs.org/@types/node/-/node-20.17.57.tgz"
|
resolved "https://registry.npmjs.org/@types/node/-/node-20.19.0.tgz"
|
||||||
integrity sha512-f3T4y6VU4fVQDKVqJV4Uppy8c1p/sVvS3peyqxyWnzkqXFJLRU7Y1Bl7rMS1Qe9z0v4M6McY0Fp9yBsgHJUsWQ==
|
integrity sha512-hfrc+1tud1xcdVTABC2JiomZJEklMcXYNTVtZLAeqTVWD+qL5jkHKT+1lOtqDdGxt+mB53DTtiz673vfjU8D1Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
undici-types "~6.19.2"
|
undici-types "~6.21.0"
|
||||||
|
|
||||||
"@types/node@^18.11.18":
|
"@types/node@^18.11.18":
|
||||||
version "18.19.110"
|
version "18.19.111"
|
||||||
resolved "https://registry.npmjs.org/@types/node/-/node-18.19.110.tgz"
|
resolved "https://registry.npmjs.org/@types/node/-/node-18.19.111.tgz"
|
||||||
integrity sha512-WW2o4gTmREtSnqKty9nhqF/vA0GKd0V/rbC0OyjSk9Bz6bzlsXKT+i7WDdS/a0z74rfT2PO4dArVCSnapNLA5Q==
|
integrity sha512-90sGdgA+QLJr1F9X79tQuEut0gEYIfkX9pydI4XGRgvFo9g2JWswefI+WUSUHPYVBHYSEfTEqBxA5hQvAZB3Mw==
|
||||||
dependencies:
|
dependencies:
|
||||||
undici-types "~5.26.4"
|
undici-types "~5.26.4"
|
||||||
|
|
||||||
|
|
@ -1144,9 +1142,9 @@
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
|
|
||||||
"@types/prop-types@*":
|
"@types/prop-types@*":
|
||||||
version "15.7.14"
|
version "15.7.15"
|
||||||
resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz"
|
resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz"
|
||||||
integrity sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==
|
integrity sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==
|
||||||
|
|
||||||
"@types/react-dom@^18":
|
"@types/react-dom@^18":
|
||||||
version "18.3.7"
|
version "18.3.7"
|
||||||
|
|
@ -1244,92 +1242,92 @@
|
||||||
resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz"
|
resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz"
|
||||||
integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==
|
integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==
|
||||||
|
|
||||||
"@unrs/resolver-binding-darwin-arm64@1.7.8":
|
"@unrs/resolver-binding-darwin-arm64@1.7.12":
|
||||||
version "1.7.8"
|
version "1.7.12"
|
||||||
resolved "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.7.8.tgz"
|
resolved "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.7.12.tgz"
|
||||||
integrity sha512-rsRK8T7yxraNRDmpFLZCWqpea6OlXPNRRCjWMx24O1V86KFol7u2gj9zJCv6zB1oJjtnzWceuqdnCgOipFcJPA==
|
integrity sha512-C//UObaqVcGKpRMMThzBCDxbqM9YQg2dtWy3OwcERLu+qzLa781AqvGdgqwqakRO+cWCK6dl75ebAcsSozmARg==
|
||||||
|
|
||||||
"@unrs/resolver-binding-darwin-x64@1.7.8":
|
"@unrs/resolver-binding-darwin-x64@1.7.12":
|
||||||
version "1.7.8"
|
version "1.7.12"
|
||||||
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.7.8.tgz#d095a6c941b2d7892179c3afbd7c34e2416094fd"
|
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.7.12.tgz#4dad7ad7b3fd745ec7169373387aab1dc0902a3d"
|
||||||
integrity sha512-16yEMWa+Olqkk8Kl6Bu0ltT5OgEedkSAsxcz1B3yEctrDYp3EMBu/5PPAGhWVGnwhtf3hNe3y15gfYBAjOv5tQ==
|
integrity sha512-eRXO0uPaZtWIogCeVlpSCfzKr3ZJynQl3IRzhFucrA+efdjAylS+ZemWFfnhGbQgWv4lItKCfCpxGuZsosudWw==
|
||||||
|
|
||||||
"@unrs/resolver-binding-freebsd-x64@1.7.8":
|
"@unrs/resolver-binding-freebsd-x64@1.7.12":
|
||||||
version "1.7.8"
|
version "1.7.12"
|
||||||
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.7.8.tgz#0330e52103c400d0c9d5d27050bfda39c40ccae2"
|
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.7.12.tgz#8cd285da4b6a98b8a3fba8cf1673adaa971cf6ae"
|
||||||
integrity sha512-ST4uqF6FmdZQgv+Q73FU1uHzppeT4mhX3IIEmHlLObrv5Ep50olWRz0iQ4PWovadjHMTAmpuJAGaAuCZYb7UAQ==
|
integrity sha512-VUdT2CwMoyWy9Jolavu2fWTcusiA9FePjSyMLIrZvAeC2PMnM9msF3HJkO/j0S2fZkzgZy+UBBZjJwG0Mfds0g==
|
||||||
|
|
||||||
"@unrs/resolver-binding-linux-arm-gnueabihf@1.7.8":
|
"@unrs/resolver-binding-linux-arm-gnueabihf@1.7.12":
|
||||||
version "1.7.8"
|
version "1.7.12"
|
||||||
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.7.8.tgz#dcc2c61b6c49886c225ad25ab3e73bbaf768d906"
|
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.7.12.tgz#feb25431a2b9c62f2404f5f49963523a9bed18e2"
|
||||||
integrity sha512-Z/A/4Rm2VWku2g25C3tVb986fY6unx5jaaCFpx1pbAj0OKkyuJ5wcQLHvNbIcJ9qhiYwXfrkB7JNlxrAbg7YFg==
|
integrity sha512-hbWi7U2UlglpT1LQZbm7He3YpSRYGoHwFMMKC+oCD9UzPImFJZOFrQUL4FQVsOaxxz0ggWK1Q/ZcK23LpG2STg==
|
||||||
|
|
||||||
"@unrs/resolver-binding-linux-arm-musleabihf@1.7.8":
|
"@unrs/resolver-binding-linux-arm-musleabihf@1.7.12":
|
||||||
version "1.7.8"
|
version "1.7.12"
|
||||||
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.7.8.tgz#269f5d78cbfdfe3591005c7602bf9c559a6f6928"
|
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.7.12.tgz#76fc53f47a0cad563d4c00c2346fe25a4e346730"
|
||||||
integrity sha512-HN0p7o38qKmDo3bZUiQa6gP7Qhf0sKgJZtRfSHi6JL2Gi4NaUVF0EO1sQ1RHbeQ4VvfjUGMh3QE5dxEh06BgQQ==
|
integrity sha512-KBblhYFUhUTVSkTKxxaw4cFS3qgQMs2oM1DUSNrsFX7uRBG6SxXkLXGKua+uWq+G0vT7pp30BPXJ7c4I6vRGcw==
|
||||||
|
|
||||||
"@unrs/resolver-binding-linux-arm64-gnu@1.7.8":
|
"@unrs/resolver-binding-linux-arm64-gnu@1.7.12":
|
||||||
version "1.7.8"
|
version "1.7.12"
|
||||||
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.7.8.tgz#43c30aeecdb1d36aa2201196568209c46d99c234"
|
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.7.12.tgz#5d7e6ee9fb9e985bdb9833aefda269267b226a75"
|
||||||
integrity sha512-HsoVqDBt9G69AN0KWeDNJW+7i8KFlwxrbbnJffgTGpiZd6Jw+Q95sqkXp8y458KhKduKLmXfVZGnKBTNxAgPjw==
|
integrity sha512-A5jGMNiY5F/KyeLkph5/gaNXNs/P/FUJvhKIP79mIOn9KUqjqx+UbhZQ1UrRuGHsh0gXPVSnu2UJdhnvJsnEyw==
|
||||||
|
|
||||||
"@unrs/resolver-binding-linux-arm64-musl@1.7.8":
|
"@unrs/resolver-binding-linux-arm64-musl@1.7.12":
|
||||||
version "1.7.8"
|
version "1.7.12"
|
||||||
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.7.8.tgz#fc6cc665195a1d8f276cc3a83f4956ee3c1c0a6b"
|
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.7.12.tgz#6fdfafe4ff11cf43f18fe0ab8e9f9c98dc757d3d"
|
||||||
integrity sha512-VfR2yTDUbUvn+e/Aw22CC9fQg9zdShHAfwWctNBdOk7w9CHWl2OtYlcMvjzMAns8QxoHQoqn3/CEnZ4Ts7hfrA==
|
integrity sha512-Gv/duj5YStydJTNu2vSHFbSrRimpA6mnVmAnKTe1xMfhqDCm10EP/U6u7NII1jAjbpaRmqtnvFhtndzGxDyfhA==
|
||||||
|
|
||||||
"@unrs/resolver-binding-linux-ppc64-gnu@1.7.8":
|
"@unrs/resolver-binding-linux-ppc64-gnu@1.7.12":
|
||||||
version "1.7.8"
|
version "1.7.12"
|
||||||
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.7.8.tgz#bde19d505eab59ce82e812e8824c9d3e17ca71cf"
|
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.7.12.tgz#f1f36dc330d9410984c319fbcb982f31c180dc85"
|
||||||
integrity sha512-xUauVQNz4uDgs4UJJiUAwMe3N0PA0wvtImh7V0IFu++UKZJhssXbKHBRR4ecUJpUHCX2bc4Wc8sGsB6P+7BANg==
|
integrity sha512-BTjdqhVVl1Q8dZCdNkVXZrfFyqNRdWizFuY5N0eHP7zgtNmqwJ3F/eJF/60GnabIcmWHvWvugby2VqHZtW/bQw==
|
||||||
|
|
||||||
"@unrs/resolver-binding-linux-riscv64-gnu@1.7.8":
|
"@unrs/resolver-binding-linux-riscv64-gnu@1.7.12":
|
||||||
version "1.7.8"
|
version "1.7.12"
|
||||||
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.7.8.tgz#9b96ddfc4e88720d795629ad3c0cd7a2bcc4afa8"
|
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.7.12.tgz#a2e3acadc3731cdd55d26bc57c870ae8b16c4313"
|
||||||
integrity sha512-GqyIB+CuSHGhhc8ph5RrurtNetYJjb6SctSHafqmdGcRuGi6uyTMR8l18hMEhZFsXdFMc/MpInPLvmNV22xn+A==
|
integrity sha512-YkjQuWGi1o174Xz2R+oQOOYQgViCwkSdpsHGmLr0QRYgQclJCQ4ug6qT+EGTYi1g4994q3BAaFVgV0GzEM1YSQ==
|
||||||
|
|
||||||
"@unrs/resolver-binding-linux-riscv64-musl@1.7.8":
|
"@unrs/resolver-binding-linux-riscv64-musl@1.7.12":
|
||||||
version "1.7.8"
|
version "1.7.12"
|
||||||
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.7.8.tgz#287690c24f2b8106531968d22ad277af13bca57a"
|
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.7.12.tgz#cf940218bf0fbcd5dc6b7a5ece75b67d16bd4bcd"
|
||||||
integrity sha512-eEU3rWIFRv60xaAbtsgwHNWRZGD7cqkpCvNtio/f1TjEE3HfKLzPNB24fA9X/8ZXQrGldE65b7UKK3PmO4eWIQ==
|
integrity sha512-9ud5x0qYBuk1rGdGzdjKQq/o7tObgI3IdjaufxKLD6kJIQi6vqww1mfoJklYw2OR5JXOWc6WLNKHa0Rr9aFZsw==
|
||||||
|
|
||||||
"@unrs/resolver-binding-linux-s390x-gnu@1.7.8":
|
"@unrs/resolver-binding-linux-s390x-gnu@1.7.12":
|
||||||
version "1.7.8"
|
version "1.7.12"
|
||||||
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.7.8.tgz#b58bf7ed52f13753c9240fc59c2bd21cc348ee4e"
|
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.7.12.tgz#9efb533f226da434709bd43180ff7718b88816e9"
|
||||||
integrity sha512-GVLI0f4I4TlLqEUoOFvTWedLsJEdvsD0+sxhdvQ5s+N+m2DSynTs8h9jxR0qQbKlpHWpc2Ortz3z48NHRT4l+w==
|
integrity sha512-3CNVBpgsvZ4Vrr18JAxQ8Qxz+k4PqTJR05/xn5Tczs9jFEuxPDxZKFskv9QnK3flJtx+ur9MayiTGgFZQAa7hA==
|
||||||
|
|
||||||
"@unrs/resolver-binding-linux-x64-gnu@1.7.8":
|
"@unrs/resolver-binding-linux-x64-gnu@1.7.12":
|
||||||
version "1.7.8"
|
version "1.7.12"
|
||||||
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.7.8.tgz#578efe1a96f0e737ec9c65dd9211aff9c4bd4b99"
|
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.7.12.tgz#fc3094d404838720ab04b9c34ecf3b3de1211dc6"
|
||||||
integrity sha512-GX1pZ/4ncUreB0Rlp1l7bhKAZ8ZmvDIgXdeb5V2iK0eRRF332+6gRfR/r5LK88xfbtOpsmRHU6mQ4N8ZnwvGEA==
|
integrity sha512-bPACcY7lEp3M8IItjXEppQEsQ2N54a1aLb1yCWD16lccl8OG9aXQvji9x9VVcmdqR4JV4oWXzr0uIrZ+oFNvOw==
|
||||||
|
|
||||||
"@unrs/resolver-binding-linux-x64-musl@1.7.8":
|
"@unrs/resolver-binding-linux-x64-musl@1.7.12":
|
||||||
version "1.7.8"
|
version "1.7.12"
|
||||||
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.7.8.tgz#1f1aab9d047a2ab8830a2bb65dee950d7583518b"
|
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.7.12.tgz#d224c9c531ae53db1d1482f59175ce554cc51522"
|
||||||
integrity sha512-n1N84MnsvDupzVuYqJGj+2pb9s8BI1A5RgXHvtVFHedGZVBCFjDpQVRlmsFMt6xZiKwDPaqsM16O/1isCUGt7w==
|
integrity sha512-86WuRbj+0tK3qWPthfsR952CHxE23lDTjbKfHOczIkjRvKP/ggAzaiNMOEljxB5iel4HhGTQZBp1lx61aw2q/g==
|
||||||
|
|
||||||
"@unrs/resolver-binding-wasm32-wasi@1.7.8":
|
"@unrs/resolver-binding-wasm32-wasi@1.7.12":
|
||||||
version "1.7.8"
|
version "1.7.12"
|
||||||
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.7.8.tgz#85b627a4bf93d439df5e5c77c135f98699c1aa35"
|
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.7.12.tgz#604ba5dd33678df88c3537bea98e1f6ace96ccf4"
|
||||||
integrity sha512-x94WnaU5g+pCPDVedfnXzoG6lCOF2xFGebNwhtbJCWfceE94Zj8aysSxdxotlrZrxnz5D3ijtyFUYtpz04n39Q==
|
integrity sha512-RzWV0OyeARtKRNHSbVZyj869P+WHzT2OFEgigs+5qEIM8X3QzbQ90Ye/1hCvgu0zi/cDCXtKWp8Utr1Oym2UIA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@napi-rs/wasm-runtime" "^0.2.10"
|
"@napi-rs/wasm-runtime" "^0.2.11"
|
||||||
|
|
||||||
"@unrs/resolver-binding-win32-arm64-msvc@1.7.8":
|
"@unrs/resolver-binding-win32-arm64-msvc@1.7.12":
|
||||||
version "1.7.8"
|
version "1.7.12"
|
||||||
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.7.8.tgz#3acb45dbf6561c7c05d2fb554e36d2c46502bf1c"
|
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.7.12.tgz#a60f4256560350ada479b39da0e2db22ecd85d9f"
|
||||||
integrity sha512-vst2u8EJZ5L6jhJ6iLis3w9rg16aYqRxQuBAMYQRVrPMI43693hLP7DuqyOBRKgsQXy9/jgh204k0ViHkqQgdg==
|
integrity sha512-s9FdWj2QFT6PLNY/jPPmd7jF1Fn2HNSuLbZqUpdcSaMdeBGaDvy2C/eBYgGhrK7g8kIYUecT1LdT+SuDs6h+YA==
|
||||||
|
|
||||||
"@unrs/resolver-binding-win32-ia32-msvc@1.7.8":
|
"@unrs/resolver-binding-win32-ia32-msvc@1.7.12":
|
||||||
version "1.7.8"
|
version "1.7.12"
|
||||||
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.7.8.tgz#63628b5e12d14dd6275ec499398272ed5c272479"
|
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.7.12.tgz#918d19beb57d6475ac843092d3917910352c5205"
|
||||||
integrity sha512-yb3LZOLMFqnA+/ShlE1E5bpYPGDsA590VHHJPB+efnyowT776GJXBoh82em6O9WmYBUq57YblGTcMYAFBm72HA==
|
integrity sha512-Fo4Op3Il/6HZ8Gm+YhqBkRZpTGe/QJZWAsCB/CLYBDqJ2NjXptgFsuIvlgXv95+WUkoTw6ifRgxE9gwtcAk5YA==
|
||||||
|
|
||||||
"@unrs/resolver-binding-win32-x64-msvc@1.7.8":
|
"@unrs/resolver-binding-win32-x64-msvc@1.7.12":
|
||||||
version "1.7.8"
|
version "1.7.12"
|
||||||
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.7.8.tgz#ee29c817f285ccb328b206356eeee588a7388d2b"
|
resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.7.12.tgz#a8b737e111b72608e7abebe8d6c223d07304e687"
|
||||||
integrity sha512-hHKFx+opG5BA3/owMXon8ypwSotBGTdblG6oda/iOu9+OEYnk0cxD2uIcGyGT8jCK578kV+xMrNxqbn8Zjlpgw==
|
integrity sha512-00cVr73Qizmx7qycr9aO5NBofoAHuQIhNsuqj+I2Bun/yMddLfpXk86K3GWj096jXLzk0u/77u3qUTJPhuYWiw==
|
||||||
|
|
||||||
"@xenova/transformers@^2.17.2":
|
"@xenova/transformers@^2.17.2":
|
||||||
version "2.17.2"
|
version "2.17.2"
|
||||||
|
|
@ -1360,9 +1358,9 @@ acorn-jsx@^5.3.2:
|
||||||
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
|
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
|
||||||
|
|
||||||
acorn@^8.9.0:
|
acorn@^8.9.0:
|
||||||
version "8.14.1"
|
version "8.15.0"
|
||||||
resolved "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz"
|
resolved "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz"
|
||||||
integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==
|
integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==
|
||||||
|
|
||||||
agent-base@^7.1.0, agent-base@^7.1.2:
|
agent-base@^7.1.0, agent-base@^7.1.2:
|
||||||
version "7.1.3"
|
version "7.1.3"
|
||||||
|
|
@ -1771,9 +1769,9 @@ camelcase@6:
|
||||||
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
|
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
|
||||||
|
|
||||||
caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001702, caniuse-lite@^1.0.30001718:
|
caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001702, caniuse-lite@^1.0.30001718:
|
||||||
version "1.0.30001720"
|
version "1.0.30001721"
|
||||||
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001720.tgz"
|
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001721.tgz"
|
||||||
integrity sha512-Ec/2yV2nNPwb4DnTANEV99ZWwm3ZWfdlfkQbWSDDt+PsXEVYwlhPH8tdMaPunYTKKmz7AnHi2oNEi1GcmKCD8g==
|
integrity sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ==
|
||||||
|
|
||||||
chalk@^4.0.0, chalk@^4.1.2:
|
chalk@^4.0.0, chalk@^4.1.2:
|
||||||
version "4.1.2"
|
version "4.1.2"
|
||||||
|
|
@ -1812,7 +1810,7 @@ cheerio-select@^2.1.0:
|
||||||
|
|
||||||
cheerio@^1.1.0:
|
cheerio@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.1.0.tgz#87b9bec6dd3696e405ea79da7d2749d8308b0953"
|
resolved "https://registry.npmjs.org/cheerio/-/cheerio-1.1.0.tgz"
|
||||||
integrity sha512-+0hMx9eYhJvWbgpKV9hN7jg0JcwydpopZE4hgi+KvQtByZXPp04NiCWU0LzcAbP63abZckIHkTQaXVF52mX3xQ==
|
integrity sha512-+0hMx9eYhJvWbgpKV9hN7jg0JcwydpopZE4hgi+KvQtByZXPp04NiCWU0LzcAbP63abZckIHkTQaXVF52mX3xQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
cheerio-select "^2.1.0"
|
cheerio-select "^2.1.0"
|
||||||
|
|
@ -1971,9 +1969,9 @@ concat-map@0.0.1:
|
||||||
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
|
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
|
||||||
|
|
||||||
console-table-printer@^2.12.1:
|
console-table-printer@^2.12.1:
|
||||||
version "2.14.1"
|
version "2.14.2"
|
||||||
resolved "https://registry.npmjs.org/console-table-printer/-/console-table-printer-2.14.1.tgz"
|
resolved "https://registry.npmjs.org/console-table-printer/-/console-table-printer-2.14.2.tgz"
|
||||||
integrity sha512-Nvz+lt5BRvG8qJ8KrqhK0rtbE4hbi0oj4G5/2ig7pbMXBCvy+zcHEZbyIdidl2GEL0AwtxYX4Zc3C28fFSPXyA==
|
integrity sha512-TyXKHIzSBFAuxRpgB4MA3RhFVzghJGpG8/eHmpWGm/2ezdswpbdVkxN7xTvDM3snIDKc8UrUs2NiR4LFjv/F1w==
|
||||||
dependencies:
|
dependencies:
|
||||||
simple-wcswidth "^1.0.1"
|
simple-wcswidth "^1.0.1"
|
||||||
|
|
||||||
|
|
@ -2015,11 +2013,11 @@ cssesc@^3.0.0:
|
||||||
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
|
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
|
||||||
|
|
||||||
cssstyle@^4.2.1:
|
cssstyle@^4.2.1:
|
||||||
version "4.3.1"
|
version "4.4.0"
|
||||||
resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-4.3.1.tgz"
|
resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-4.4.0.tgz"
|
||||||
integrity sha512-ZgW+Jgdd7i52AaLYCriF8Mxqft0gD/R9i9wi6RWBhs1pqdPEzPjym7rvRKi397WmQFf3SlyUsszhw+VVCbx79Q==
|
integrity sha512-W0Y2HOXlPkb2yaKrCVRjinYKciu/qSLEmK0K9mcfDei3zwlnHFEHAs/Du3cIRwPqY+J4JsiBzUjoHyc8RsJ03A==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@asamuzakjp/css-color" "^3.1.2"
|
"@asamuzakjp/css-color" "^3.2.0"
|
||||||
rrweb-cssom "^0.8.0"
|
rrweb-cssom "^0.8.0"
|
||||||
|
|
||||||
csstype@^3.0.2:
|
csstype@^3.0.2:
|
||||||
|
|
@ -2233,9 +2231,9 @@ eastasianwidth@^0.2.0:
|
||||||
integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
|
integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
|
||||||
|
|
||||||
electron-to-chromium@^1.5.160:
|
electron-to-chromium@^1.5.160:
|
||||||
version "1.5.162"
|
version "1.5.166"
|
||||||
resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.162.tgz"
|
resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.166.tgz"
|
||||||
integrity sha512-hQA+Zb5QQwoSaXJWEAGEw1zhk//O7qDzib05Z4qTqZfNju/FAkrm5ZInp0JbTp4Z18A6bilopdZWEYrFSsfllA==
|
integrity sha512-QPWqHL0BglzPYyJJ1zSSmwFFL6MFXhbACOCcsCdUMCkzPdS9/OIBVxg516X/Ado2qwAq8k0nJJ7phQPCqiaFAw==
|
||||||
|
|
||||||
emoji-regex@^8.0.0:
|
emoji-regex@^8.0.0:
|
||||||
version "8.0.0"
|
version "8.0.0"
|
||||||
|
|
@ -2253,9 +2251,9 @@ enabled@2.0.x:
|
||||||
integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==
|
integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==
|
||||||
|
|
||||||
encoding-sniffer@^0.2.0:
|
encoding-sniffer@^0.2.0:
|
||||||
version "0.2.0"
|
version "0.2.1"
|
||||||
resolved "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz"
|
resolved "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz"
|
||||||
integrity sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==
|
integrity sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==
|
||||||
dependencies:
|
dependencies:
|
||||||
iconv-lite "^0.6.3"
|
iconv-lite "^0.6.3"
|
||||||
whatwg-encoding "^3.1.1"
|
whatwg-encoding "^3.1.1"
|
||||||
|
|
@ -2273,9 +2271,9 @@ entities@^4.2.0, entities@^4.4.0:
|
||||||
integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
|
integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
|
||||||
|
|
||||||
entities@^6.0.0:
|
entities@^6.0.0:
|
||||||
version "6.0.0"
|
version "6.0.1"
|
||||||
resolved "https://registry.npmjs.org/entities/-/entities-6.0.0.tgz"
|
resolved "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz"
|
||||||
integrity sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==
|
integrity sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==
|
||||||
|
|
||||||
env-paths@^3.0.0:
|
env-paths@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
|
|
@ -2854,13 +2852,14 @@ form-data-encoder@1.7.2:
|
||||||
integrity sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==
|
integrity sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==
|
||||||
|
|
||||||
form-data@^4.0.0:
|
form-data@^4.0.0:
|
||||||
version "4.0.2"
|
version "4.0.3"
|
||||||
resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz"
|
resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz"
|
||||||
integrity sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==
|
integrity sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==
|
||||||
dependencies:
|
dependencies:
|
||||||
asynckit "^0.4.0"
|
asynckit "^0.4.0"
|
||||||
combined-stream "^1.0.8"
|
combined-stream "^1.0.8"
|
||||||
es-set-tostringtag "^2.1.0"
|
es-set-tostringtag "^2.1.0"
|
||||||
|
hasown "^2.0.2"
|
||||||
mime-types "^2.1.12"
|
mime-types "^2.1.12"
|
||||||
|
|
||||||
format@^0.2.0:
|
format@^0.2.0:
|
||||||
|
|
@ -3067,6 +3066,19 @@ graphql@^16.10.0:
|
||||||
resolved "https://registry.npmjs.org/graphql/-/graphql-16.11.0.tgz"
|
resolved "https://registry.npmjs.org/graphql/-/graphql-16.11.0.tgz"
|
||||||
integrity sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==
|
integrity sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==
|
||||||
|
|
||||||
|
groq-sdk@^0.19.0:
|
||||||
|
version "0.19.0"
|
||||||
|
resolved "https://registry.npmjs.org/groq-sdk/-/groq-sdk-0.19.0.tgz"
|
||||||
|
integrity sha512-vdh5h7ORvwvOvutA80dKF81b0gPWHxu6K/GOJBOM0n6p6CSqAVLhFfeS79Ef0j/yCycDR09jqY7jkYz9dLiS6w==
|
||||||
|
dependencies:
|
||||||
|
"@types/node" "^18.11.18"
|
||||||
|
"@types/node-fetch" "^2.6.4"
|
||||||
|
abort-controller "^3.0.0"
|
||||||
|
agentkeepalive "^4.2.1"
|
||||||
|
form-data-encoder "1.7.2"
|
||||||
|
formdata-node "^4.3.2"
|
||||||
|
node-fetch "^2.6.7"
|
||||||
|
|
||||||
guid-typescript@^1.0.9:
|
guid-typescript@^1.0.9:
|
||||||
version "1.0.9"
|
version "1.0.9"
|
||||||
resolved "https://registry.npmjs.org/guid-typescript/-/guid-typescript-1.0.9.tgz"
|
resolved "https://registry.npmjs.org/guid-typescript/-/guid-typescript-1.0.9.tgz"
|
||||||
|
|
@ -3161,7 +3173,7 @@ html-to-text@^9.0.5:
|
||||||
|
|
||||||
htmlparser2@^10.0.0:
|
htmlparser2@^10.0.0:
|
||||||
version "10.0.0"
|
version "10.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-10.0.0.tgz#77ad249037b66bf8cc99c6e286ef73b83aeb621d"
|
resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz"
|
||||||
integrity sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==
|
integrity sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==
|
||||||
dependencies:
|
dependencies:
|
||||||
domelementtype "^2.3.0"
|
domelementtype "^2.3.0"
|
||||||
|
|
@ -3656,10 +3668,10 @@ kuler@^2.0.0:
|
||||||
zod "^3.22.4"
|
zod "^3.22.4"
|
||||||
zod-to-json-schema "^3.22.3"
|
zod-to-json-schema "^3.22.3"
|
||||||
|
|
||||||
langsmith@^0.3.29:
|
langsmith@^0.3.29, langsmith@^0.3.33:
|
||||||
version "0.3.30"
|
version "0.3.37"
|
||||||
resolved "https://registry.npmjs.org/langsmith/-/langsmith-0.3.30.tgz"
|
resolved "https://registry.npmjs.org/langsmith/-/langsmith-0.3.37.tgz"
|
||||||
integrity sha512-ZaiaOx9MysuSQlAkRw8mjm7iqhrlF7HI0LCTLxiNBEWBPywdkgI7UnN+s7KtlRiM0tP1cOLm+dQY++Fi33jkPQ==
|
integrity sha512-aDFM+LbT01gP8hsJNs4QJjmbRNfoifqhpCSpk8j4k/V8wejEgvgATbgj9W9DQsfQFdtfwx+8G48sK5/0PqQisg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/uuid" "^10.0.0"
|
"@types/uuid" "^10.0.0"
|
||||||
chalk "^4.1.2"
|
chalk "^4.1.2"
|
||||||
|
|
@ -4226,7 +4238,7 @@ parse-entities@^2.0.0:
|
||||||
|
|
||||||
parse5-htmlparser2-tree-adapter@^7.1.0:
|
parse5-htmlparser2-tree-adapter@^7.1.0:
|
||||||
version "7.1.0"
|
version "7.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz#b5a806548ed893a43e24ccb42fbb78069311e81b"
|
resolved "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz"
|
||||||
integrity sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==
|
integrity sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==
|
||||||
dependencies:
|
dependencies:
|
||||||
domhandler "^5.0.3"
|
domhandler "^5.0.3"
|
||||||
|
|
@ -5004,9 +5016,9 @@ streamsearch@^1.1.0:
|
||||||
integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
|
integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
|
||||||
|
|
||||||
streamx@^2.15.0, streamx@^2.21.0:
|
streamx@^2.15.0, streamx@^2.21.0:
|
||||||
version "2.22.0"
|
version "2.22.1"
|
||||||
resolved "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz"
|
resolved "https://registry.npmjs.org/streamx/-/streamx-2.22.1.tgz"
|
||||||
integrity sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==
|
integrity sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==
|
||||||
dependencies:
|
dependencies:
|
||||||
fast-fifo "^1.3.2"
|
fast-fifo "^1.3.2"
|
||||||
text-decoder "^1.1.0"
|
text-decoder "^1.1.0"
|
||||||
|
|
@ -5468,40 +5480,40 @@ undici-types@~5.26.4:
|
||||||
resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz"
|
resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz"
|
||||||
integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
|
integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
|
||||||
|
|
||||||
undici-types@~6.19.2:
|
undici-types@~6.21.0:
|
||||||
version "6.19.8"
|
version "6.21.0"
|
||||||
resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz"
|
resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz"
|
||||||
integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==
|
integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==
|
||||||
|
|
||||||
undici@^7.10.0:
|
undici@^7.10.0:
|
||||||
version "7.10.0"
|
version "7.10.0"
|
||||||
resolved "https://registry.yarnpkg.com/undici/-/undici-7.10.0.tgz#8ae17a976acc6593b13c9ff3342840bea9b24670"
|
resolved "https://registry.npmjs.org/undici/-/undici-7.10.0.tgz"
|
||||||
integrity sha512-u5otvFBOBZvmdjWLVW+5DAc9Nkq8f24g0O9oY7qw2JVIF1VocIFoyz9JFkuVOS2j41AufeO0xnlweJ2RLT8nGw==
|
integrity sha512-u5otvFBOBZvmdjWLVW+5DAc9Nkq8f24g0O9oY7qw2JVIF1VocIFoyz9JFkuVOS2j41AufeO0xnlweJ2RLT8nGw==
|
||||||
|
|
||||||
unrs-resolver@^1.6.2:
|
unrs-resolver@^1.6.2:
|
||||||
version "1.7.8"
|
version "1.7.12"
|
||||||
resolved "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.7.8.tgz"
|
resolved "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.7.12.tgz"
|
||||||
integrity sha512-2zsXwyOXmCX9nGz4vhtZRYhe30V78heAv+KDc21A/KMdovGHbZcixeD5JHEF0DrFXzdytwuzYclcPbvp8A3Jlw==
|
integrity sha512-pfcdDxrVoUc5ZB3VCVJNSWbs63lgQVYLVw4k/rCr8Smi/V2Sxi1odEckVq6Zf803OtbYia1+YpiGCZoODfWLsQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
napi-postinstall "^0.2.2"
|
napi-postinstall "^0.2.2"
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
"@unrs/resolver-binding-darwin-arm64" "1.7.8"
|
"@unrs/resolver-binding-darwin-arm64" "1.7.12"
|
||||||
"@unrs/resolver-binding-darwin-x64" "1.7.8"
|
"@unrs/resolver-binding-darwin-x64" "1.7.12"
|
||||||
"@unrs/resolver-binding-freebsd-x64" "1.7.8"
|
"@unrs/resolver-binding-freebsd-x64" "1.7.12"
|
||||||
"@unrs/resolver-binding-linux-arm-gnueabihf" "1.7.8"
|
"@unrs/resolver-binding-linux-arm-gnueabihf" "1.7.12"
|
||||||
"@unrs/resolver-binding-linux-arm-musleabihf" "1.7.8"
|
"@unrs/resolver-binding-linux-arm-musleabihf" "1.7.12"
|
||||||
"@unrs/resolver-binding-linux-arm64-gnu" "1.7.8"
|
"@unrs/resolver-binding-linux-arm64-gnu" "1.7.12"
|
||||||
"@unrs/resolver-binding-linux-arm64-musl" "1.7.8"
|
"@unrs/resolver-binding-linux-arm64-musl" "1.7.12"
|
||||||
"@unrs/resolver-binding-linux-ppc64-gnu" "1.7.8"
|
"@unrs/resolver-binding-linux-ppc64-gnu" "1.7.12"
|
||||||
"@unrs/resolver-binding-linux-riscv64-gnu" "1.7.8"
|
"@unrs/resolver-binding-linux-riscv64-gnu" "1.7.12"
|
||||||
"@unrs/resolver-binding-linux-riscv64-musl" "1.7.8"
|
"@unrs/resolver-binding-linux-riscv64-musl" "1.7.12"
|
||||||
"@unrs/resolver-binding-linux-s390x-gnu" "1.7.8"
|
"@unrs/resolver-binding-linux-s390x-gnu" "1.7.12"
|
||||||
"@unrs/resolver-binding-linux-x64-gnu" "1.7.8"
|
"@unrs/resolver-binding-linux-x64-gnu" "1.7.12"
|
||||||
"@unrs/resolver-binding-linux-x64-musl" "1.7.8"
|
"@unrs/resolver-binding-linux-x64-musl" "1.7.12"
|
||||||
"@unrs/resolver-binding-wasm32-wasi" "1.7.8"
|
"@unrs/resolver-binding-wasm32-wasi" "1.7.12"
|
||||||
"@unrs/resolver-binding-win32-arm64-msvc" "1.7.8"
|
"@unrs/resolver-binding-win32-arm64-msvc" "1.7.12"
|
||||||
"@unrs/resolver-binding-win32-ia32-msvc" "1.7.8"
|
"@unrs/resolver-binding-win32-ia32-msvc" "1.7.12"
|
||||||
"@unrs/resolver-binding-win32-x64-msvc" "1.7.8"
|
"@unrs/resolver-binding-win32-x64-msvc" "1.7.12"
|
||||||
|
|
||||||
update-browserslist-db@^1.1.3:
|
update-browserslist-db@^1.1.3:
|
||||||
version "1.1.3"
|
version "1.1.3"
|
||||||
|
|
@ -5832,7 +5844,7 @@ zod-to-json-schema@^3.22.3, zod-to-json-schema@^3.22.4, zod-to-json-schema@^3.22
|
||||||
resolved "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.5.tgz"
|
resolved "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.5.tgz"
|
||||||
integrity sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==
|
integrity sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==
|
||||||
|
|
||||||
zod@^3.22.3, zod@^3.22.4, zod@^3.23.8, zod@^3.24.1:
|
zod@^3.22.3, zod@^3.22.4, zod@^3.23.8, zod@^3.24.1, zod@^3.25.32:
|
||||||
version "3.25.49"
|
version "3.25.57"
|
||||||
resolved "https://registry.npmjs.org/zod/-/zod-3.25.49.tgz"
|
resolved "https://registry.npmjs.org/zod/-/zod-3.25.57.tgz"
|
||||||
integrity sha512-JMMPMy9ZBk3XFEdbM3iL1brx4NUSejd6xr3ELrrGEfGb355gjhiAWtG3K5o+AViV/3ZfkIrCzXsZn6SbLwTR8Q==
|
integrity sha512-6tgzLuwVST5oLUxXTmBqoinKMd3JeesgbgseXeFasKKj8Q1FCZrHnbqJOyiEvr4cVAlbug+CgIsmJ8cl/pU5FA==
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue