diff --git a/packages/components/package.json b/packages/components/package.json index 7ecbcce99..c58d8dcac 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -119,7 +119,7 @@ "weaviate-ts-client": "^1.1.0", "winston": "^3.9.0", "ws": "^8.9.0", - "zod": "^3.22.4", + "zod": "3.22.4", "zod-to-json-schema": "^3.21.4" }, "devDependencies": { diff --git a/packages/components/src/Interface.ts b/packages/components/src/Interface.ts index f8058fe4f..d90a4ebab 100644 --- a/packages/components/src/Interface.ts +++ b/packages/components/src/Interface.ts @@ -419,3 +419,25 @@ export interface IServerSideEventStreamer { streamAbortEvent(chatId: string): void streamEndEvent(chatId: string): void } + +export enum FollowUpPromptProvider { + ANTHROPIC = 'chatAnthropic', + AZURE_OPENAI = 'azureChatOpenAI', + GOOGLE_GENAI = 'chatGoogleGenerativeAI', + MISTRALAI = 'chatMistralAI', + OPENAI = 'chatOpenAI' +} + +export type FollowUpPromptProviderConfig = { + [key in FollowUpPromptProvider]: { + credentialId: string + modelName: string + prompt: string + temperature: string + } +} + +export type FollowUpPromptConfig = { + status: boolean + selectedProvider: FollowUpPromptProvider +} & FollowUpPromptProviderConfig diff --git a/packages/components/src/followUpPrompts.ts b/packages/components/src/followUpPrompts.ts new file mode 100644 index 000000000..2fc2524f4 --- /dev/null +++ b/packages/components/src/followUpPrompts.ts @@ -0,0 +1,113 @@ +import { FollowUpPromptConfig, FollowUpPromptProvider, ICommonObject } from './Interface' +import { getCredentialData } from './utils' +import { ChatAnthropic } from '@langchain/anthropic' +import { ChatGoogleGenerativeAI } from '@langchain/google-genai' +import { ChatMistralAI } from '@langchain/mistralai' +import { ChatOpenAI } from '@langchain/openai' +import { z } from 'zod' +import { PromptTemplate } from '@langchain/core/prompts' +import { StructuredOutputParser } from '@langchain/core/output_parsers' + +const FollowUpPromptType = z + .object({ + questions: z.array(z.string()) + }) + .describe('Generate Follow Up Prompts') + +export const generateFollowUpPrompts = async ( + followUpPromptsConfig: FollowUpPromptConfig, + apiMessageContent: string, + options: ICommonObject +) => { + if (followUpPromptsConfig) { + const providerConfig = followUpPromptsConfig[followUpPromptsConfig.selectedProvider] + const credentialId = providerConfig.credentialId as string + const credentialData = await getCredentialData(credentialId ?? '', options) + const followUpPromptsPrompt = providerConfig.prompt.replace('{history}', apiMessageContent) + + switch (followUpPromptsConfig.selectedProvider) { + case FollowUpPromptProvider.ANTHROPIC: { + const llm = new ChatAnthropic({ + apiKey: credentialData.anthropicApiKey, + model: providerConfig.modelName, + temperature: parseFloat(`${providerConfig.temperature}`) + }) + const structuredLLM = llm.withStructuredOutput(FollowUpPromptType) + const structuredResponse = await structuredLLM.invoke(followUpPromptsPrompt) + return structuredResponse + } + case FollowUpPromptProvider.AZURE_OPENAI: { + const azureOpenAIApiKey = credentialData['azureOpenAIApiKey'] + const azureOpenAIApiInstanceName = credentialData['azureOpenAIApiInstanceName'] + const azureOpenAIApiDeploymentName = credentialData['azureOpenAIApiDeploymentName'] + const azureOpenAIApiVersion = credentialData['azureOpenAIApiVersion'] + + const llm = new ChatOpenAI({ + azureOpenAIApiKey, + azureOpenAIApiInstanceName, + azureOpenAIApiDeploymentName, + azureOpenAIApiVersion, + model: providerConfig.modelName, + temperature: parseFloat(`${providerConfig.temperature}`) + }) + // use structured output parser because withStructuredOutput is not working + const parser = StructuredOutputParser.fromZodSchema(FollowUpPromptType) + const formatInstructions = parser.getFormatInstructions() + const prompt = PromptTemplate.fromTemplate(` + ${providerConfig.prompt} + + {format_instructions} + `) + const chain = prompt.pipe(llm).pipe(parser) + const structuredResponse = await chain.invoke({ + history: apiMessageContent, + format_instructions: formatInstructions + }) + return structuredResponse + } + case FollowUpPromptProvider.GOOGLE_GENAI: { + const llm = new ChatGoogleGenerativeAI({ + apiKey: credentialData.googleGenerativeAPIKey, + model: providerConfig.modelName, + temperature: parseFloat(`${providerConfig.temperature}`) + }) + // use structured output parser because withStructuredOutput is not working + const parser = StructuredOutputParser.fromZodSchema(FollowUpPromptType) + const formatInstructions = parser.getFormatInstructions() + const prompt = PromptTemplate.fromTemplate(` + ${providerConfig.prompt} + + {format_instructions} + `) + const chain = prompt.pipe(llm).pipe(parser) + const structuredResponse = await chain.invoke({ + history: apiMessageContent, + format_instructions: formatInstructions + }) + return structuredResponse + } + case FollowUpPromptProvider.MISTRALAI: { + const model = new ChatMistralAI({ + apiKey: credentialData.mistralAIAPIKey, + model: providerConfig.modelName, + temperature: parseFloat(`${providerConfig.temperature}`) + }) + const structuredLLM = model.withStructuredOutput(FollowUpPromptType) + const structuredResponse = await structuredLLM.invoke(followUpPromptsPrompt) + return structuredResponse + } + case FollowUpPromptProvider.OPENAI: { + const model = new ChatOpenAI({ + apiKey: credentialData.openAIApiKey, + model: providerConfig.modelName, + temperature: parseFloat(`${providerConfig.temperature}`) + }) + const structuredLLM = model.withStructuredOutput(FollowUpPromptType) + const structuredResponse = await structuredLLM.invoke(followUpPromptsPrompt) + return structuredResponse + } + } + } else { + return undefined + } +} diff --git a/packages/components/src/index.ts b/packages/components/src/index.ts index d47075018..ec713bec3 100644 --- a/packages/components/src/index.ts +++ b/packages/components/src/index.ts @@ -9,3 +9,4 @@ export * from './utils' export * from './speechToText' export * from './storageUtils' export * from './handler' +export * from './followUpPrompts' diff --git a/packages/server/src/Interface.ts b/packages/server/src/Interface.ts index a6bb205b7..04ac2519d 100644 --- a/packages/server/src/Interface.ts +++ b/packages/server/src/Interface.ts @@ -27,6 +27,7 @@ export interface IChatFlow { apikeyid?: string analytic?: string chatbotConfig?: string + followUpPrompts?: string apiConfig?: string category?: string type?: ChatflowType @@ -50,6 +51,7 @@ export interface IChatMessage { createdDate: Date leadEmail?: string action?: string | null + followUpPrompts?: string } export interface IChatMessageFeedback { diff --git a/packages/server/src/database/entities/ChatFlow.ts b/packages/server/src/database/entities/ChatFlow.ts index e0d2da502..b3a07b82d 100644 --- a/packages/server/src/database/entities/ChatFlow.ts +++ b/packages/server/src/database/entities/ChatFlow.ts @@ -34,6 +34,9 @@ export class ChatFlow implements IChatFlow { @Column({ nullable: true, type: 'text' }) speechToText?: string + @Column({ nullable: true, type: 'text' }) + followUpPrompts?: string + @Column({ nullable: true, type: 'text' }) category?: string diff --git a/packages/server/src/database/entities/ChatMessage.ts b/packages/server/src/database/entities/ChatMessage.ts index ebd059f36..5ab161afe 100644 --- a/packages/server/src/database/entities/ChatMessage.ts +++ b/packages/server/src/database/entities/ChatMessage.ts @@ -56,4 +56,7 @@ export class ChatMessage implements IChatMessage { @Column({ nullable: true, type: 'text' }) leadEmail?: string + + @Column({ nullable: true, type: 'text' }) + followUpPrompts?: string } diff --git a/packages/server/src/database/migrations/mariadb/1726666318346-AddFollowUpPrompts.ts b/packages/server/src/database/migrations/mariadb/1726666318346-AddFollowUpPrompts.ts new file mode 100644 index 000000000..8f3dae88d --- /dev/null +++ b/packages/server/src/database/migrations/mariadb/1726666318346-AddFollowUpPrompts.ts @@ -0,0 +1,14 @@ +import { MigrationInterface, QueryRunner } from 'typeorm' + +export class AddFollowUpPrompts1726666318346 implements MigrationInterface { + public async up(queryRunner: QueryRunner): Promise { + const columnExistsInChatflow = await queryRunner.hasColumn('chat_flow', 'followUpPrompts') + if (!columnExistsInChatflow) queryRunner.query(`ALTER TABLE \`chat_flow\` ADD COLUMN \`followUpPrompts\` TEXT;`) + const columnExistsInChatMessage = await queryRunner.hasColumn('chat_flow', 'followUpPrompts') + if (!columnExistsInChatMessage) queryRunner.query(`ALTER TABLE \`chat_flow\` ADD COLUMN \`followUpPrompts\` TEXT;`) + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`chat_flow\` DROP COLUMN \`followUpPrompts\`;`) + } +} diff --git a/packages/server/src/database/migrations/mariadb/index.ts b/packages/server/src/database/migrations/mariadb/index.ts index a3ee9a8b2..6c0f6274d 100644 --- a/packages/server/src/database/migrations/mariadb/index.ts +++ b/packages/server/src/database/migrations/mariadb/index.ts @@ -25,6 +25,7 @@ import { AddActionToChatMessage1721078251523 } from './1721078251523-AddActionTo import { LongTextColumn1722301395521 } from './1722301395521-LongTextColumn' import { AddCustomTemplate1725629836652 } from './1725629836652-AddCustomTemplate' import { AddArtifactsToChatMessage1726156258465 } from './1726156258465-AddArtifactsToChatMessage' +import { AddFollowUpPrompts1726666318346 } from './1726666318346-AddFollowUpPrompts' export const mariadbMigrations = [ Init1693840429259, @@ -53,5 +54,6 @@ export const mariadbMigrations = [ AddActionToChatMessage1721078251523, LongTextColumn1722301395521, AddCustomTemplate1725629836652, - AddArtifactsToChatMessage1726156258465 + AddArtifactsToChatMessage1726156258465, + AddFollowUpPrompts1726666318346 ] diff --git a/packages/server/src/database/migrations/mysql/1726666302024-AddFollowUpPrompts.ts b/packages/server/src/database/migrations/mysql/1726666302024-AddFollowUpPrompts.ts new file mode 100644 index 000000000..5285068cc --- /dev/null +++ b/packages/server/src/database/migrations/mysql/1726666302024-AddFollowUpPrompts.ts @@ -0,0 +1,15 @@ +import { MigrationInterface, QueryRunner } from 'typeorm' + +export class AddFollowUpPrompts1726666302024 implements MigrationInterface { + public async up(queryRunner: QueryRunner): Promise { + const columnExistsInChatflow = await queryRunner.hasColumn('chat_flow', 'followUpPrompts') + if (!columnExistsInChatflow) queryRunner.query(`ALTER TABLE \`chat_flow\` ADD COLUMN \`followUpPrompts\` TEXT;`) + const columnExistsInChatMessage = await queryRunner.hasColumn('chat_message', 'followUpPrompts') + if (!columnExistsInChatMessage) queryRunner.query(`ALTER TABLE \`chat_message\` ADD COLUMN \`followUpPrompts\` TEXT;`) + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`chat_flow\` DROP COLUMN \`followUpPrompts\`;`) + await queryRunner.query(`ALTER TABLE \`chat_message\` DROP COLUMN \`followUpPrompts\`;`) + } +} diff --git a/packages/server/src/database/migrations/mysql/index.ts b/packages/server/src/database/migrations/mysql/index.ts index 107b9e2de..9ac9354ae 100644 --- a/packages/server/src/database/migrations/mysql/index.ts +++ b/packages/server/src/database/migrations/mysql/index.ts @@ -26,6 +26,7 @@ import { AddActionToChatMessage1721078251523 } from './1721078251523-AddActionTo import { LongTextColumn1722301395521 } from './1722301395521-LongTextColumn' import { AddCustomTemplate1725629836652 } from './1725629836652-AddCustomTemplate' import { AddArtifactsToChatMessage1726156258465 } from './1726156258465-AddArtifactsToChatMessage' +import { AddFollowUpPrompts1726666302024 } from './1726666302024-AddFollowUpPrompts' export const mysqlMigrations = [ Init1693840429259, @@ -55,5 +56,6 @@ export const mysqlMigrations = [ AddActionToChatMessage1721078251523, LongTextColumn1722301395521, AddCustomTemplate1725629836652, - AddArtifactsToChatMessage1726156258465 + AddArtifactsToChatMessage1726156258465, + AddFollowUpPrompts1726666302024 ] diff --git a/packages/server/src/database/migrations/postgres/1726666309552-AddFollowUpPrompts.ts b/packages/server/src/database/migrations/postgres/1726666309552-AddFollowUpPrompts.ts new file mode 100644 index 000000000..ef460363b --- /dev/null +++ b/packages/server/src/database/migrations/postgres/1726666309552-AddFollowUpPrompts.ts @@ -0,0 +1,13 @@ +import { MigrationInterface, QueryRunner } from 'typeorm' + +export class AddFollowUpPrompts1726666309552 implements MigrationInterface { + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "chat_flow" ADD COLUMN IF NOT EXISTS "followUpPrompts" TEXT;`) + await queryRunner.query(`ALTER TABLE "chat_message" ADD COLUMN IF NOT EXISTS "followUpPrompts" TEXT;`) + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "chat_flow" DROP COLUMN "followUpPrompts";`) + await queryRunner.query(`ALTER TABLE "chat_message" DROP COLUMN "followUpPrompts";`) + } +} diff --git a/packages/server/src/database/migrations/postgres/index.ts b/packages/server/src/database/migrations/postgres/index.ts index 3455c5d41..464bcaaba 100644 --- a/packages/server/src/database/migrations/postgres/index.ts +++ b/packages/server/src/database/migrations/postgres/index.ts @@ -26,6 +26,7 @@ import { AddApiKey1720230151480 } from './1720230151480-AddApiKey' import { AddActionToChatMessage1721078251523 } from './1721078251523-AddActionToChatMessage' import { AddCustomTemplate1725629836652 } from './1725629836652-AddCustomTemplate' import { AddArtifactsToChatMessage1726156258465 } from './1726156258465-AddArtifactsToChatMessage' +import { AddFollowUpPrompts1726666309552 } from './1726666309552-AddFollowUpPrompts' export const postgresMigrations = [ Init1693891895163, @@ -55,5 +56,6 @@ export const postgresMigrations = [ AddApiKey1720230151480, AddActionToChatMessage1721078251523, AddCustomTemplate1725629836652, - AddArtifactsToChatMessage1726156258465 + AddArtifactsToChatMessage1726156258465, + AddFollowUpPrompts1726666309552 ] diff --git a/packages/server/src/database/migrations/sqlite/1726666294213-AddFollowUpPrompts.ts b/packages/server/src/database/migrations/sqlite/1726666294213-AddFollowUpPrompts.ts new file mode 100644 index 000000000..6f0d61cc9 --- /dev/null +++ b/packages/server/src/database/migrations/sqlite/1726666294213-AddFollowUpPrompts.ts @@ -0,0 +1,13 @@ +import { MigrationInterface, QueryRunner } from 'typeorm' + +export class AddFollowUpPrompts1726666294213 implements MigrationInterface { + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "chat_flow" ADD COLUMN "followUpPrompts" TEXT;`) + await queryRunner.query(`ALTER TABLE "chat_message" ADD COLUMN "followUpPrompts" TEXT;`) + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "chat_flow" DROP COLUMN "followUpPrompts";`) + await queryRunner.query(`ALTER TABLE "chat_message" DROP COLUMN "followUpPrompts";`) + } +} diff --git a/packages/server/src/database/migrations/sqlite/index.ts b/packages/server/src/database/migrations/sqlite/index.ts index 33c04bdf7..75a900297 100644 --- a/packages/server/src/database/migrations/sqlite/index.ts +++ b/packages/server/src/database/migrations/sqlite/index.ts @@ -25,6 +25,7 @@ import { AddApiKey1720230151480 } from './1720230151480-AddApiKey' import { AddActionToChatMessage1721078251523 } from './1721078251523-AddActionToChatMessage' import { AddArtifactsToChatMessage1726156258465 } from './1726156258465-AddArtifactsToChatMessage' import { AddCustomTemplate1725629836652 } from './1725629836652-AddCustomTemplate' +import { AddFollowUpPrompts1726666294213 } from './1726666294213-AddFollowUpPrompts' export const sqliteMigrations = [ Init1693835579790, @@ -53,5 +54,6 @@ export const sqliteMigrations = [ AddApiKey1720230151480, AddActionToChatMessage1721078251523, AddArtifactsToChatMessage1726156258465, - AddCustomTemplate1725629836652 + AddCustomTemplate1725629836652, + AddFollowUpPrompts1726666294213 ] diff --git a/packages/server/src/utils/SSEStreamer.ts b/packages/server/src/utils/SSEStreamer.ts index 4217925f2..ffa7693a5 100644 --- a/packages/server/src/utils/SSEStreamer.ts +++ b/packages/server/src/utils/SSEStreamer.ts @@ -211,6 +211,9 @@ export class SSEStreamer implements IServerSideEventStreamer { if (apiResponse.memoryType) { metadataJson['memoryType'] = apiResponse.memoryType } + if (apiResponse.followUpPrompts) { + metadataJson['followUpPrompts'] = JSON.parse(apiResponse.followUpPrompts) + } if (Object.keys(metadataJson).length > 0) { this.streamCustomEvent(chatId, 'metadata', metadataJson) } diff --git a/packages/server/src/utils/buildChatflow.ts b/packages/server/src/utils/buildChatflow.ts index 5ff9ddcaf..90297076f 100644 --- a/packages/server/src/utils/buildChatflow.ts +++ b/packages/server/src/utils/buildChatflow.ts @@ -8,6 +8,7 @@ import { addArrayFilesToStorage, mapMimeTypeToInputField, mapExtToInputField, + generateFollowUpPrompts, IServerSideEventStreamer } from 'flowise-components' import { StatusCodes } from 'http-status-codes' @@ -452,6 +453,18 @@ export const utilBuildChatflow = async (req: Request, isInternal: boolean = fals if (result?.usedTools) apiMessage.usedTools = JSON.stringify(result.usedTools) if (result?.fileAnnotations) apiMessage.fileAnnotations = JSON.stringify(result.fileAnnotations) if (result?.artifacts) apiMessage.artifacts = JSON.stringify(result.artifacts) + if (chatflow.followUpPrompts) { + const followUpPromptsConfig = JSON.parse(chatflow.followUpPrompts) + const followUpPrompts = await generateFollowUpPrompts(followUpPromptsConfig, apiMessage.content, { + chatId, + chatflowid, + appDataSource: appServer.AppDataSource, + databaseEntities + }) + if (followUpPrompts?.questions) { + apiMessage.followUpPrompts = JSON.stringify(followUpPrompts.questions) + } + } const chatMessage = await utilAddChatMessage(apiMessage) @@ -470,6 +483,7 @@ export const utilBuildChatflow = async (req: Request, isInternal: boolean = fals result.question = incomingInput.question result.chatId = chatId result.chatMessageId = chatMessage?.id + result.followUpPrompts = JSON.stringify(apiMessage.followUpPrompts) result.isStreamValid = isStreamValid if (sessionId) result.sessionId = sessionId @@ -543,6 +557,18 @@ const utilBuildAgentResponse = async ( if (usedTools?.length) apiMessage.usedTools = JSON.stringify(usedTools) if (agentReasoning?.length) apiMessage.agentReasoning = JSON.stringify(agentReasoning) if (finalAction && Object.keys(finalAction).length) apiMessage.action = JSON.stringify(finalAction) + if (agentflow.followUpPrompts) { + const followUpPromptsConfig = JSON.parse(agentflow.followUpPrompts) + const generatedFollowUpPrompts = await generateFollowUpPrompts(followUpPromptsConfig, apiMessage.content, { + chatId, + chatflowid: agentflow.id, + appDataSource: appServer.AppDataSource, + databaseEntities + }) + if (generatedFollowUpPrompts?.questions) { + apiMessage.followUpPrompts = JSON.stringify(generatedFollowUpPrompts.questions) + } + } const chatMessage = await utilAddChatMessage(apiMessage) await appServer.telemetry.sendTelemetry('agentflow_prediction_sent', { @@ -591,6 +617,7 @@ const utilBuildAgentResponse = async ( if (memoryType) result.memoryType = memoryType if (agentReasoning?.length) result.agentReasoning = agentReasoning if (finalAction && Object.keys(finalAction).length) result.action = finalAction + result.followUpPrompts = JSON.stringify(apiMessage.followUpPrompts) return result } diff --git a/packages/ui/src/assets/images/anthropic.svg b/packages/ui/src/assets/images/anthropic.svg new file mode 100644 index 000000000..84bc18ca5 --- /dev/null +++ b/packages/ui/src/assets/images/anthropic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/src/assets/images/azure_openai.svg b/packages/ui/src/assets/images/azure_openai.svg new file mode 100644 index 000000000..7b1508111 --- /dev/null +++ b/packages/ui/src/assets/images/azure_openai.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/src/assets/images/mistralai.svg b/packages/ui/src/assets/images/mistralai.svg new file mode 100644 index 000000000..aa84b39c5 --- /dev/null +++ b/packages/ui/src/assets/images/mistralai.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/src/ui-component/cards/FollowUpPromptsCard.jsx b/packages/ui/src/ui-component/cards/FollowUpPromptsCard.jsx new file mode 100644 index 000000000..75aceb85b --- /dev/null +++ b/packages/ui/src/ui-component/cards/FollowUpPromptsCard.jsx @@ -0,0 +1,45 @@ +import Box from '@mui/material/Box' +import PropTypes from 'prop-types' +import { Chip } from '@mui/material' +import './StarterPromptsCard.css' +import { useSelector } from 'react-redux' + +const FollowUpPromptsCard = ({ isGrid, followUpPrompts, sx, onPromptClick }) => { + const customization = useSelector((state) => state.customization) + + return ( + + {followUpPrompts.map((fp, index) => ( + onPromptClick(fp, e)} + sx={{ + backgroundColor: 'transparent', + border: '1px solid', + boxShadow: '0px 2px 1px -1px rgba(0,0,0,0.2)', + color: '#2196f3', + transition: 'all 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms', + '&:hover': { + backgroundColor: customization.isDarkMode ? 'rgba(0, 0, 0, 0.12)' : 'rgba(0, 0, 0, 0.05)', + border: '1px solid' + } + }} + /> + ))} + + ) +} + +FollowUpPromptsCard.propTypes = { + isGrid: PropTypes.bool, + followUpPrompts: PropTypes.array, + sx: PropTypes.object, + onPromptClick: PropTypes.func +} + +export default FollowUpPromptsCard diff --git a/packages/ui/src/ui-component/dialog/ChatflowConfigurationDialog.jsx b/packages/ui/src/ui-component/dialog/ChatflowConfigurationDialog.jsx index 8743abcdf..1155eec56 100644 --- a/packages/ui/src/ui-component/dialog/ChatflowConfigurationDialog.jsx +++ b/packages/ui/src/ui-component/dialog/ChatflowConfigurationDialog.jsx @@ -10,6 +10,7 @@ import ChatFeedback from '@/ui-component/extended/ChatFeedback' import AnalyseFlow from '@/ui-component/extended/AnalyseFlow' import StarterPrompts from '@/ui-component/extended/StarterPrompts' import Leads from '@/ui-component/extended/Leads' +import FollowUpPrompts from '@/ui-component/extended/FollowUpPrompts' const CHATFLOW_CONFIGURATION_TABS = [ { @@ -20,6 +21,10 @@ const CHATFLOW_CONFIGURATION_TABS = [ label: 'Starter Prompts', id: 'conversationStarters' }, + { + label: 'Follow-up Prompts', + id: 'followUpPrompts' + }, { label: 'Speech to Text', id: 'speechToText' @@ -116,6 +121,7 @@ const ChatflowConfigurationDialog = ({ show, dialogProps, onCancel }) => { {item.id === 'rateLimiting' && } {item.id === 'conversationStarters' ? : null} + {item.id === 'followUpPrompts' ? : null} {item.id === 'speechToText' ? : null} {item.id === 'chatFeedback' ? : null} {item.id === 'allowedDomains' ? : null} diff --git a/packages/ui/src/ui-component/extended/FollowUpPrompts.jsx b/packages/ui/src/ui-component/extended/FollowUpPrompts.jsx new file mode 100644 index 000000000..5d0c703a0 --- /dev/null +++ b/packages/ui/src/ui-component/extended/FollowUpPrompts.jsx @@ -0,0 +1,527 @@ +import PropTypes from 'prop-types' +import { Box, Button, FormControl, ListItem, ListItemAvatar, ListItemText, MenuItem, Select, Typography } from '@mui/material' +import { useEffect, useState } from 'react' +import { useDispatch } from 'react-redux' + +// Project Imports +import { StyledButton } from '@/ui-component/button/StyledButton' +import { SwitchInput } from '@/ui-component/switch/Switch' +import chatflowsApi from '@/api/chatflows' +import { closeSnackbar as closeSnackbarAction, enqueueSnackbar as enqueueSnackbarAction, SET_CHATFLOW } from '@/store/actions' +import useNotifier from '@/utils/useNotifier' +import anthropicIcon from '@/assets/images/anthropic.svg' +import azureOpenAiIcon from '@/assets/images/azure_openai.svg' +import mistralAiIcon from '@/assets/images/mistralai.svg' +import openAiIcon from '@/assets/images/openai.svg' +import { TooltipWithParser } from '@/ui-component/tooltip/TooltipWithParser' +import CredentialInputHandler from '@/views/canvas/CredentialInputHandler' +import { Input } from '@/ui-component/input/Input' +import { AsyncDropdown } from '@/ui-component/dropdown/AsyncDropdown' + +// Icons +import { IconX } from '@tabler/icons-react' +import { Dropdown } from '@/ui-component/dropdown/Dropdown' + +const promptDescription = + 'Prompt to generate questions based on the conversation history. You can use variable {history} to refer to the conversation history.' +const defaultPrompt = + 'Given the following conversations: {history}. Please help me predict the three most likely questions that human would ask and keeping each question short and concise.' + +// update when adding new providers +const FollowUpPromptProviders = { + ANTHROPIC: 'chatAnthropic', + AZURE_OPENAI: 'azureChatOpenAI', + GOOGLE_GENAI: 'chatGoogleGenerativeAI', + MISTRALAI: 'chatMistralAI', + OPENAI: 'chatOpenAI' +} + +const followUpPromptsOptions = { + [FollowUpPromptProviders.ANTHROPIC]: { + label: 'Anthropic Claude', + name: FollowUpPromptProviders.ANTHROPIC, + icon: anthropicIcon, + inputs: [ + { + label: 'Connect Credential', + name: 'credential', + type: 'credential', + credentialNames: ['anthropicApi'] + }, + { + label: 'Model Name', + name: 'modelName', + type: 'asyncOptions', + loadMethod: 'listModels' + }, + { + label: 'Prompt', + name: 'prompt', + type: 'string', + rows: 4, + description: promptDescription, + optional: true, + default: defaultPrompt + }, + { + label: 'Temperature', + name: 'temperature', + type: 'number', + step: 0.1, + optional: true, + default: 0.9 + } + ] + }, + [FollowUpPromptProviders.AZURE_OPENAI]: { + label: 'Azure ChatOpenAI', + name: FollowUpPromptProviders.AZURE_OPENAI, + icon: azureOpenAiIcon, + inputs: [ + { + label: 'Connect Credential', + name: 'credential', + type: 'credential', + credentialNames: ['azureOpenAIApi'] + }, + { + label: 'Model Name', + name: 'modelName', + type: 'asyncOptions', + loadMethod: 'listModels' + }, + { + label: 'Prompt', + name: 'prompt', + type: 'string', + rows: 4, + description: promptDescription, + optional: true, + default: defaultPrompt + }, + { + label: 'Temperature', + name: 'temperature', + type: 'number', + step: 0.1, + optional: true, + default: 0.9 + } + ] + }, + [FollowUpPromptProviders.GOOGLE_GENAI]: { + label: 'Google Gemini', + name: FollowUpPromptProviders.GOOGLE_GENAI, + icon: azureOpenAiIcon, + inputs: [ + { + label: 'Connect Credential', + name: 'credential', + type: 'credential', + credentialNames: ['googleGenerativeAI'] + }, + { + label: 'Model Name', + name: 'modelName', + type: 'options', + default: 'gemini-1.5-pro-latest', + options: [ + { label: 'gemini-1.5-flash-latest', name: 'gemini-1.5-flash-latest' }, + { label: 'gemini-1.5-pro-latest', name: 'gemini-1.5-pro-latest' } + ] + }, + { + label: 'Prompt', + name: 'prompt', + type: 'string', + rows: 4, + description: promptDescription, + optional: true, + default: defaultPrompt + }, + { + label: 'Temperature', + name: 'temperature', + type: 'number', + step: 0.1, + optional: true, + default: 0.9 + } + ] + }, + [FollowUpPromptProviders.MISTRALAI]: { + label: 'Mistral AI', + name: FollowUpPromptProviders.MISTRALAI, + icon: mistralAiIcon, + inputs: [ + { + label: 'Connect Credential', + name: 'credential', + type: 'credential', + credentialNames: ['mistralAIApi'] + }, + { + label: 'Model Name', + name: 'modelName', + type: 'options', + options: [ + { label: 'mistral-large-latest', name: 'mistral-large-latest' }, + { label: 'mistral-large-2402', name: 'mistral-large-2402' } + ] + }, + { + label: 'Prompt', + name: 'prompt', + type: 'string', + rows: 4, + description: promptDescription, + optional: true, + default: defaultPrompt + }, + { + label: 'Temperature', + name: 'temperature', + type: 'number', + step: 0.1, + optional: true, + default: 0.9 + } + ] + }, + [FollowUpPromptProviders.OPENAI]: { + label: 'OpenAI', + name: FollowUpPromptProviders.OPENAI, + icon: openAiIcon, + inputs: [ + { + label: 'Connect Credential', + name: 'credential', + type: 'credential', + credentialNames: ['openAIApi'] + }, + { + label: 'Model Name', + name: 'modelName', + type: 'asyncOptions', + loadMethod: 'listModels' + }, + { + label: 'Prompt', + name: 'prompt', + type: 'string', + rows: 4, + description: promptDescription, + optional: true, + default: defaultPrompt + }, + { + label: 'Temperature', + name: 'temperature', + type: 'number', + step: 0.1, + optional: true, + default: 0.9 + } + ] + } +} + +const FollowUpPrompts = ({ dialogProps }) => { + const dispatch = useDispatch() + + useNotifier() + + const enqueueSnackbar = (...args) => dispatch(enqueueSnackbarAction(...args)) + const closeSnackbar = (...args) => dispatch(closeSnackbarAction(...args)) + + const [followUpPromptsConfig, setFollowUpPromptsConfig] = useState({}) + const [chatbotConfig, setChatbotConfig] = useState({}) + const [selectedProvider, setSelectedProvider] = useState('none') + + const handleChange = (key, value) => { + setFollowUpPromptsConfig({ + ...followUpPromptsConfig, + [key]: value + }) + } + + const handleSelectedProviderChange = (event) => { + const selectedProvider = event.target.value + setSelectedProvider(selectedProvider) + handleChange('selectedProvider', selectedProvider) + } + + const setValue = (value, providerName, inputParamName) => { + let newVal = {} + if (!Object.prototype.hasOwnProperty.call(followUpPromptsConfig, providerName)) { + newVal = { ...followUpPromptsConfig, [providerName]: {} } + } else { + newVal = { ...followUpPromptsConfig } + } + + newVal[providerName][inputParamName] = value + if (inputParamName === 'status' && value === true) { + // ensure that the others are turned off + Object.keys(followUpPromptsOptions).forEach((key) => { + const provider = followUpPromptsOptions[key] + if (provider.name !== providerName) { + newVal[provider.name] = { ...followUpPromptsConfig[provider.name], status: false } + } + }) + } + setFollowUpPromptsConfig(newVal) + return newVal + } + + const onSave = async () => { + // TODO: saving without changing the prompt will not save the prompt + try { + let value = { + followUpPrompts: { status: followUpPromptsConfig.status } + } + chatbotConfig.followUpPrompts = value.followUpPrompts + + // if the prompt is not set, save the default prompt + if (!followUpPromptsConfig[followUpPromptsConfig.selectedProvider].prompt) { + followUpPromptsConfig[followUpPromptsConfig.selectedProvider].prompt = followUpPromptsOptions[ + followUpPromptsConfig.selectedProvider + ].inputs.find((input) => input.name === 'prompt').default + } + + if (!followUpPromptsConfig[followUpPromptsConfig.selectedProvider].temperature) { + followUpPromptsConfig[followUpPromptsConfig.selectedProvider].temperature = followUpPromptsOptions[ + followUpPromptsConfig.selectedProvider + ].inputs.find((input) => input.name === 'temperature').default + } + + const saveResp = await chatflowsApi.updateChatflow(dialogProps.chatflow.id, { + chatbotConfig: JSON.stringify(chatbotConfig), + followUpPrompts: JSON.stringify(followUpPromptsConfig) + }) + if (saveResp.data) { + enqueueSnackbar({ + message: 'Follow-up Prompts configuration saved', + options: { + key: new Date().getTime() + Math.random(), + variant: 'success', + action: (key) => ( + + ) + } + }) + dispatch({ type: SET_CHATFLOW, chatflow: saveResp.data }) + } + } catch (error) { + const errorData = error.response.data || `${error.response.status}: ${error.response.statusText}` + enqueueSnackbar({ + message: `Failed to save follow-up prompts configuration: ${errorData}`, + options: { + key: new Date().getTime() + Math.random(), + variant: 'error', + persist: true, + action: (key) => ( + + ) + } + }) + } + } + + useEffect(() => { + if (dialogProps.chatflow && dialogProps.chatflow.followUpPrompts) { + let chatbotConfig = JSON.parse(dialogProps.chatflow.chatbotConfig) + let followUpPromptsConfig = JSON.parse(dialogProps.chatflow.followUpPrompts) + setChatbotConfig(chatbotConfig || {}) + if (followUpPromptsConfig) { + setFollowUpPromptsConfig(followUpPromptsConfig) + setSelectedProvider(followUpPromptsConfig.selectedProvider) + } + } + + return () => {} + }, [dialogProps]) + + const checkDisabled = () => { + if (followUpPromptsConfig && followUpPromptsConfig.status) { + if (selectedProvider === 'none') { + return true + } + const provider = followUpPromptsOptions[selectedProvider] + for (let inputParam of provider.inputs) { + if (!inputParam.optional) { + const param = inputParam.name === 'credential' ? 'credentialId' : inputParam.name + if ( + !followUpPromptsConfig[selectedProvider] || + !followUpPromptsConfig[selectedProvider][param] || + followUpPromptsConfig[selectedProvider][param] === '' + ) { + return true + } + } + } + } + return false + } + + return ( + <> + + handleChange('status', value)} + value={followUpPromptsConfig.status} + /> + {followUpPromptsConfig && followUpPromptsConfig.status && ( + <> + Providers + + + + {selectedProvider !== 'none' && ( + <> + + +
+ AI +
+
+ + {followUpPromptsOptions[selectedProvider].url} + + } + /> +
+ {followUpPromptsOptions[selectedProvider].inputs.map((inputParam, index) => ( + +
+ + {inputParam.label} + {!inputParam.optional &&  *} + {inputParam.description && ( + + )} + +
+ {inputParam.type === 'credential' && ( + setValue(newValue, selectedProvider, 'credentialId')} + /> + )} + + {(inputParam.type === 'string' || + inputParam.type === 'password' || + inputParam.type === 'number') && ( + setValue(newValue, selectedProvider, inputParam.name)} + value={ + followUpPromptsConfig[selectedProvider] && + followUpPromptsConfig[selectedProvider][inputParam.name] + ? followUpPromptsConfig[selectedProvider][inputParam.name] + : inputParam.default ?? '' + } + /> + )} + + {inputParam.type === 'asyncOptions' && ( + <> +
+ setValue(newValue, selectedProvider, inputParam.name)} + /> +
+ + )} + + {inputParam.type === 'options' && ( + setValue(newValue, selectedProvider, inputParam.name)} + value={ + followUpPromptsConfig[selectedProvider] && + followUpPromptsConfig[selectedProvider][inputParam.name] + ? followUpPromptsConfig[selectedProvider][inputParam] + : inputParam.default ?? 'choose an option' + } + /> + )} +
+ ))} + + )} + + )} +
+ + Save + + + ) +} + +FollowUpPrompts.propTypes = { + dialogProps: PropTypes.object +} + +export default FollowUpPrompts diff --git a/packages/ui/src/views/chatmessage/ChatMessage.jsx b/packages/ui/src/views/chatmessage/ChatMessage.jsx index df5bb25d4..c2faa51a2 100644 --- a/packages/ui/src/views/chatmessage/ChatMessage.jsx +++ b/packages/ui/src/views/chatmessage/ChatMessage.jsx @@ -38,7 +38,8 @@ import { IconSquareFilled, IconDeviceSdCard, IconCheck, - IconPaperclip + IconPaperclip, + IconSparkles } from '@tabler/icons-react' import robotPNG from '@/assets/images/robot.png' import userPNG from '@/assets/images/account.png' @@ -79,6 +80,7 @@ import { enqueueSnackbar as enqueueSnackbarAction, closeSnackbar as closeSnackba // Utils import { isValidURL, removeDuplicateURL, setLocalStorageChatflow, getLocalStorageChatflow } from '@/utils/genericHelper' import useNotifier from '@/utils/useNotifier' +import FollowUpPromptsCard from '@/ui-component/cards/FollowUpPromptsCard' const messageImageStyle = { width: '128px', @@ -202,6 +204,10 @@ export const ChatMessage = ({ open, chatflowid, isAgentCanvas, isDialog, preview const [isLeadSaving, setIsLeadSaving] = useState(false) const [isLeadSaved, setIsLeadSaved] = useState(false) + // follow-up prompts + const [followUpPromptsStatus, setFollowUpPromptsStatus] = useState(false) + const [followUpPrompts, setFollowUpPrompts] = useState([]) + // drag & drop and file input const imgUploadRef = useRef(null) const fileUploadRef = useRef(null) @@ -627,6 +633,12 @@ export const ChatMessage = ({ open, chatflowid, isAgentCanvas, isDialog, preview handleSubmit(undefined, promptStarterInput) } + const handleFollowUpPromptClick = async (promptStarterInput) => { + setUserInput(promptStarterInput) + setFollowUpPrompts([]) + handleSubmit(undefined, promptStarterInput) + } + const handleActionClick = async (elem, action) => { setUserInput(elem.label) setMessages((prevMessages) => { @@ -664,6 +676,11 @@ export const ChatMessage = ({ open, chatflowid, isAgentCanvas, isDialog, preview return allMessages }) } + + if (data.followUpPrompts) { + const followUpPrompts = JSON.parse(data.followUpPrompts) + setFollowUpPrompts(followUpPrompts) + } } // Handle form submission @@ -954,6 +971,7 @@ export const ChatMessage = ({ open, chatflowid, isAgentCanvas, isDialog, preview } }) } + if (message.followUpPrompts) obj.followUpPrompts = JSON.parse(message.followUpPrompts) return obj }) setMessages((prevMessages) => [...prevMessages, ...loadedMessages]) @@ -1013,6 +1031,10 @@ export const ChatMessage = ({ open, chatflowid, isAgentCanvas, isDialog, preview }) } } + + if (config.followUpPrompts) { + setFollowUpPromptsStatus(config.followUpPrompts.status) + } } } // eslint-disable-next-line react-hooks/exhaustive-deps @@ -1078,6 +1100,17 @@ export const ChatMessage = ({ open, chatflowid, isAgentCanvas, isDialog, preview // eslint-disable-next-line }, [previews]) + useEffect(() => { + if (followUpPromptsStatus && messages.length > 0) { + const lastMessage = messages[messages.length - 1] + if (lastMessage.type === 'apiMessage' && lastMessage.followUpPrompts) { + setFollowUpPrompts(lastMessage.followUpPrompts) + } else if (lastMessage.type === 'userMessage') { + setFollowUpPrompts([]) + } + } + }, [followUpPromptsStatus, messages]) + const copyMessageToClipboard = async (text) => { try { await navigator.clipboard.writeText(text || '') @@ -1970,6 +2003,26 @@ export const ChatMessage = ({ open, chatflowid, isAgentCanvas, isDialog, preview )} + {messages && messages.length > 2 && followUpPromptsStatus && followUpPrompts.length > 0 && ( + <> + + + + + + Try these prompts + + + 0 ? 70 : 0 }} + followUpPrompts={followUpPrompts || []} + onPromptClick={handleFollowUpPromptClick} + isGrid={isDialog} + /> + + + )} +
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 894aa00fc..3dc4d4b2f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,7 +35,7 @@ importers: version: 8.10.0(eslint@8.57.0) eslint-config-react-app: specifier: ^7.0.1 - version: 7.0.1(@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.0))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.0))(eslint@8.57.0)(jest@27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2)))(typescript@5.5.2) + version: 7.0.1(@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.0))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.0))(eslint@8.57.0)(jest@27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)))(typescript@5.5.2) eslint-plugin-jsx-a11y: specifier: ^6.6.1 version: 6.8.0(eslint@8.57.0) @@ -159,13 +159,13 @@ importers: version: 0.0.7(encoding@0.1.13)(langchain@0.2.11)(openai@4.51.0(encoding@0.1.13)) '@langchain/community': specifier: ^0.2.17 - version: 0.2.17(zxx4jpbxqhs7oe3oglbsfznx6a) + version: 0.2.17(rqn77hvkkdahc2ybmydnhh3cf4) '@langchain/core': specifier: 0.2.18 - version: 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + version: 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) '@langchain/exa': specifier: ^0.0.5 - version: 0.0.5(encoding@0.1.13)(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + version: 0.0.5(encoding@0.1.13)(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) '@langchain/google-genai': specifier: ^0.0.22 version: 0.0.22(langchain@0.2.11)(openai@4.51.0(encoding@0.1.13))(zod@3.22.4) @@ -177,28 +177,28 @@ importers: version: 0.0.8(encoding@0.1.13)(langchain@0.2.11)(openai@4.51.0(encoding@0.1.13)) '@langchain/langgraph': specifier: ^0.0.22 - version: 0.0.22(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + version: 0.0.22(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) '@langchain/mistralai': specifier: ^0.0.26 version: 0.0.26(encoding@0.1.13)(langchain@0.2.11)(openai@4.51.0(encoding@0.1.13)) '@langchain/mongodb': specifier: ^0.0.1 - version: 0.0.1(gcp-metadata@5.3.0(encoding@0.1.13))(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13))(socks@2.8.1) + version: 0.0.1(gcp-metadata@5.3.0(encoding@0.1.13))(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13))(socks@2.8.1) '@langchain/ollama': specifier: ^0.0.2 version: 0.0.2(langchain@0.2.11)(openai@4.51.0(encoding@0.1.13)) '@langchain/openai': specifier: ^0.0.30 - version: 0.0.30(encoding@0.1.13)(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra)) + version: 0.0.30(encoding@0.1.13)(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua)) '@langchain/pinecone': specifier: ^0.0.3 - version: 0.0.3(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + version: 0.0.3(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) '@langchain/qdrant': specifier: ^0.0.5 - version: 0.0.5(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13))(typescript@5.5.2) + version: 0.0.5(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13))(typescript@5.5.2) '@langchain/weaviate': specifier: ^0.0.1 - version: 0.0.1(encoding@0.1.13)(graphql@16.8.1)(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + version: 0.0.1(encoding@0.1.13)(graphql@16.8.1)(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) '@mendable/firecrawl-js': specifier: ^0.0.28 version: 0.0.28 @@ -300,19 +300,19 @@ importers: version: 5.0.1 langchain: specifier: ^0.2.11 - version: 0.2.11(rijpiaudoghub5wl4aggkbywra) + version: 0.2.11(d46g2oh7pzryev2vs75vns4aua) langfuse: specifier: 3.3.4 version: 3.3.4 langfuse-langchain: specifier: ^3.3.4 - version: 3.3.4(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra)) + version: 3.3.4(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua)) langsmith: specifier: 0.1.6 version: 0.1.6 langwatch: specifier: ^0.1.1 - version: 0.1.1(encoding@0.1.13)(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(react@18.2.0)(svelte@4.2.18)(vue@3.4.31(typescript@5.5.2)) + version: 0.1.1(encoding@0.1.13)(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(react@18.2.0)(svelte@4.2.18)(vue@3.4.31(typescript@5.5.2)) linkifyjs: specifier: ^4.1.1 version: 4.1.3 @@ -390,7 +390,7 @@ importers: version: 1.2.3 typeorm: specifier: ^0.3.6 - version: 0.3.20(ioredis@5.3.2)(mongodb@6.3.0(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.1))(mysql2@3.9.2)(pg@8.11.3)(redis@4.6.13)(sqlite3@5.1.7)(ts-node@10.9.2(@swc/core@1.4.6)(typescript@5.5.2)) + version: 0.3.20(ioredis@5.3.2)(mongodb@6.3.0(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.1))(mysql2@3.9.2)(pg@8.11.3)(redis@4.6.13)(sqlite3@5.1.7)(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)) weaviate-ts-client: specifier: ^1.1.0 version: 1.6.0(encoding@0.1.13)(graphql@16.8.1) @@ -401,7 +401,7 @@ importers: specifier: ^8.9.0 version: 8.16.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) zod: - specifier: ^3.22.4 + specifier: 3.22.4 version: 3.22.4 zod-to-json-schema: specifier: ^3.21.4 @@ -541,7 +541,7 @@ importers: version: 5.1.7 typeorm: specifier: ^0.3.6 - version: 0.3.20(ioredis@5.3.2)(mongodb@6.3.0(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.1))(mysql2@3.9.2)(pg@8.11.3)(redis@4.6.13)(sqlite3@5.1.7)(ts-node@10.9.2(@swc/core@1.4.6)(typescript@5.5.2)) + version: 0.3.20(ioredis@5.3.2)(mongodb@6.3.0(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.1))(mysql2@3.9.2)(pg@8.11.3)(redis@4.6.13)(sqlite3@5.1.7)(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)) uuid: specifier: ^9.0.1 version: 9.0.1 @@ -777,7 +777,7 @@ importers: version: 3.3.1(prettier@3.2.5) react-scripts: specifier: ^5.0.1 - version: 5.0.1(@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.0))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.0))(@types/babel__core@7.20.5)(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(eslint@8.57.0)(react@18.2.0)(sass@1.71.1)(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2))(type-fest@4.12.0)(typescript@5.5.2) + version: 5.0.1(@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.0))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.0))(@swc/core@1.4.6)(@types/babel__core@7.20.5)(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(eslint@8.57.0)(react@18.2.0)(sass@1.71.1)(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2))(type-fest@4.12.0)(typescript@5.5.2) rimraf: specifier: ^5.0.5 version: 5.0.5 @@ -19248,8 +19248,8 @@ snapshots: url-join: 4.0.1 zod: 3.23.8 optionalDependencies: - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) - langchain: 0.2.11(rijpiaudoghub5wl4aggkbywra) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) + langchain: 0.2.11(d46g2oh7pzryev2vs75vns4aua) transitivePeerDependencies: - encoding @@ -19421,7 +19421,7 @@ snapshots: jest-util: 28.1.3 slash: 3.0.0 - '@jest/core@27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2))': + '@jest/core@27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2))': dependencies: '@jest/console': 27.5.1 '@jest/reporters': 27.5.1 @@ -19435,7 +19435,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 27.5.1 - jest-config: 27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2)) + jest-config: 27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)) jest-haste-map: 27.5.1 jest-message-util: 27.5.1 jest-regex-util: 27.5.1 @@ -19686,7 +19686,7 @@ snapshots: '@langchain/anthropic@0.2.1(encoding@0.1.13)(langchain@0.2.11)(openai@4.51.0(encoding@0.1.13))': dependencies: '@anthropic-ai/sdk': 0.21.1(encoding@0.1.13) - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) fast-xml-parser: 4.3.5 zod: 3.22.4 zod-to-json-schema: 3.22.5(zod@3.22.4) @@ -19701,7 +19701,7 @@ snapshots: '@aws-sdk/client-bedrock-runtime': 3.624.0 '@aws-sdk/client-kendra': 3.624.0 '@aws-sdk/credential-provider-node': 3.624.0(@aws-sdk/client-sso-oidc@3.624.0(@aws-sdk/client-sts@3.624.0))(@aws-sdk/client-sts@3.624.0) - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) zod: 3.23.8 zod-to-json-schema: 3.23.1(zod@3.23.8) transitivePeerDependencies: @@ -19713,23 +19713,23 @@ snapshots: '@langchain/cohere@0.0.7(encoding@0.1.13)(langchain@0.2.11)(openai@4.51.0(encoding@0.1.13))': dependencies: - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) cohere-ai: 7.10.0(encoding@0.1.13) transitivePeerDependencies: - encoding - langchain - openai - '@langchain/community@0.2.17(zxx4jpbxqhs7oe3oglbsfznx6a)': + '@langchain/community@0.2.17(rqn77hvkkdahc2ybmydnhh3cf4)': dependencies: - '@langchain/core': 0.2.18(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky))(openai@4.51.0(encoding@0.1.13)) - '@langchain/openai': 0.1.3(encoding@0.1.13)(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky)) + '@langchain/core': 0.2.18(langchain@0.2.3(6gucoml2zeyvfd3acm6anx5zwa))(openai@4.51.0(encoding@0.1.13)) + '@langchain/openai': 0.1.3(encoding@0.1.13)(langchain@0.2.3(6gucoml2zeyvfd3acm6anx5zwa)) binary-extensions: 2.2.0 expr-eval: 2.0.2 flat: 5.0.2 js-yaml: 4.1.0 - langchain: 0.2.3(qtzklq3trxgbwvwvhhdjhpcdky) - langsmith: 0.1.32(@langchain/core@0.2.18(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky))(openai@4.51.0(encoding@0.1.13)))(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky))(openai@4.51.0(encoding@0.1.13)) + langchain: 0.2.3(6gucoml2zeyvfd3acm6anx5zwa) + langsmith: 0.1.32(@langchain/core@0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)))(langchain@0.2.3(6gucoml2zeyvfd3acm6anx5zwa))(openai@4.51.0(encoding@0.1.13)) uuid: 9.0.1 zod: 3.22.4 zod-to-json-schema: 3.22.5(zod@3.22.4) @@ -19792,7 +19792,7 @@ snapshots: redis: 4.6.13 replicate: 0.31.1 srt-parser-2: 1.2.3 - typeorm: 0.3.20(ioredis@5.3.2)(mongodb@6.3.0(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.1))(mysql2@3.9.2)(pg@8.11.3)(redis@4.6.13)(sqlite3@5.1.7)(ts-node@10.9.2(@swc/core@1.4.6)(typescript@5.5.2)) + typeorm: 0.3.20(ioredis@5.3.2)(mongodb@6.3.0(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.1))(mysql2@3.9.2)(pg@8.11.3)(redis@4.6.13)(sqlite3@5.1.7)(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)) weaviate-ts-client: 1.6.0(encoding@0.1.13)(graphql@16.8.1) ws: 8.16.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) transitivePeerDependencies: @@ -19805,54 +19805,54 @@ snapshots: - peggy - pyodide - '@langchain/core@0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13))': + '@langchain/core@0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13))': dependencies: ansi-styles: 5.2.0 camelcase: 6.3.0 decamelize: 1.2.0 js-tiktoken: 1.0.12 - langsmith: 0.1.39(@langchain/core@0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)))(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + langsmith: 0.1.39(@langchain/core@0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)))(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) ml-distance: 4.0.1 mustache: 4.2.0 p-queue: 6.6.2 p-retry: 4.6.2 uuid: 10.0.0 - zod: 3.23.8 - zod-to-json-schema: 3.23.1(zod@3.23.8) + zod: 3.22.4 + zod-to-json-schema: 3.23.1(zod@3.22.4) transitivePeerDependencies: - langchain - openai - '@langchain/core@0.2.18(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky))(openai@4.51.0(encoding@0.1.13))': + '@langchain/core@0.2.18(langchain@0.2.3(6gucoml2zeyvfd3acm6anx5zwa))(openai@4.51.0(encoding@0.1.13))': dependencies: ansi-styles: 5.2.0 camelcase: 6.3.0 decamelize: 1.2.0 js-tiktoken: 1.0.12 - langsmith: 0.1.39(@langchain/core@0.2.18(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky))(openai@4.51.0(encoding@0.1.13)))(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky))(openai@4.51.0(encoding@0.1.13)) + langsmith: 0.1.39(@langchain/core@0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)))(langchain@0.2.3(6gucoml2zeyvfd3acm6anx5zwa))(openai@4.51.0(encoding@0.1.13)) ml-distance: 4.0.1 mustache: 4.2.0 p-queue: 6.6.2 p-retry: 4.6.2 uuid: 10.0.0 - zod: 3.23.8 - zod-to-json-schema: 3.23.1(zod@3.23.8) + zod: 3.22.4 + zod-to-json-schema: 3.23.1(zod@3.22.4) transitivePeerDependencies: - langchain - openai - '@langchain/exa@0.0.5(encoding@0.1.13)(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13))': + '@langchain/exa@0.0.5(encoding@0.1.13)(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13))': dependencies: - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) exa-js: 1.0.12(encoding@0.1.13) transitivePeerDependencies: - encoding - langchain - openai - '@langchain/google-common@0.0.20(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13))(zod@3.22.4)': + '@langchain/google-common@0.0.20(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13))(zod@3.22.4)': dependencies: - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) uuid: 10.0.0 zod-to-json-schema: 3.23.1(zod@3.22.4) transitivePeerDependencies: @@ -19860,10 +19860,10 @@ snapshots: - openai - zod - '@langchain/google-gauth@0.0.19(encoding@0.1.13)(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13))(zod@3.22.4)': + '@langchain/google-gauth@0.0.19(encoding@0.1.13)(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13))(zod@3.22.4)': dependencies: - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) - '@langchain/google-common': 0.0.20(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13))(zod@3.22.4) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) + '@langchain/google-common': 0.0.20(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13))(zod@3.22.4) google-auth-library: 8.9.0(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -19875,7 +19875,7 @@ snapshots: '@langchain/google-genai@0.0.22(langchain@0.2.11)(openai@4.51.0(encoding@0.1.13))(zod@3.22.4)': dependencies: '@google/generative-ai': 0.15.0 - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) zod-to-json-schema: 3.23.1(zod@3.22.4) transitivePeerDependencies: - langchain @@ -19884,8 +19884,8 @@ snapshots: '@langchain/google-vertexai@0.0.19(encoding@0.1.13)(langchain@0.2.11)(openai@4.51.0(encoding@0.1.13))(zod@3.22.4)': dependencies: - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) - '@langchain/google-gauth': 0.0.19(encoding@0.1.13)(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13))(zod@3.22.4) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) + '@langchain/google-gauth': 0.0.19(encoding@0.1.13)(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13))(zod@3.22.4) transitivePeerDependencies: - encoding - langchain @@ -19895,8 +19895,8 @@ snapshots: '@langchain/groq@0.0.8(encoding@0.1.13)(langchain@0.2.11)(openai@4.51.0(encoding@0.1.13))': dependencies: - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) - '@langchain/openai': 0.0.30(encoding@0.1.13)(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra)) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) + '@langchain/openai': 0.0.30(encoding@0.1.13)(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua)) groq-sdk: 0.3.2(encoding@0.1.13) zod: 3.22.4 zod-to-json-schema: 3.22.5(zod@3.22.4) @@ -19905,9 +19905,9 @@ snapshots: - langchain - openai - '@langchain/langgraph@0.0.22(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13))': + '@langchain/langgraph@0.0.22(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13))': dependencies: - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) uuid: 9.0.1 transitivePeerDependencies: - langchain @@ -19915,19 +19915,19 @@ snapshots: '@langchain/mistralai@0.0.26(encoding@0.1.13)(langchain@0.2.11)(openai@4.51.0(encoding@0.1.13))': dependencies: - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) '@mistralai/mistralai': 0.4.0(encoding@0.1.13) uuid: 10.0.0 - zod: 3.23.8 - zod-to-json-schema: 3.23.1(zod@3.23.8) + zod: 3.22.4 + zod-to-json-schema: 3.23.1(zod@3.22.4) transitivePeerDependencies: - encoding - langchain - openai - '@langchain/mongodb@0.0.1(gcp-metadata@5.3.0(encoding@0.1.13))(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13))(socks@2.8.1)': + '@langchain/mongodb@0.0.1(gcp-metadata@5.3.0(encoding@0.1.13))(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13))(socks@2.8.1)': dependencies: - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) mongodb: 6.3.0(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.1) transitivePeerDependencies: - '@aws-sdk/credential-providers' @@ -19942,16 +19942,16 @@ snapshots: '@langchain/ollama@0.0.2(langchain@0.2.11)(openai@4.51.0(encoding@0.1.13))': dependencies: - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) ollama: 0.5.6 uuid: 10.0.0 transitivePeerDependencies: - langchain - openai - '@langchain/openai@0.0.30(encoding@0.1.13)(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))': + '@langchain/openai@0.0.30(encoding@0.1.13)(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))': dependencies: - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) js-tiktoken: 1.0.12 openai: 4.51.0(encoding@0.1.13) zod: 3.22.4 @@ -19960,9 +19960,9 @@ snapshots: - encoding - langchain - '@langchain/openai@0.0.30(encoding@0.1.13)(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky))': + '@langchain/openai@0.0.30(encoding@0.1.13)(langchain@0.2.3(6gucoml2zeyvfd3acm6anx5zwa))': dependencies: - '@langchain/core': 0.2.18(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky))(openai@4.51.0(encoding@0.1.13)) + '@langchain/core': 0.2.18(langchain@0.2.3(6gucoml2zeyvfd3acm6anx5zwa))(openai@4.51.0(encoding@0.1.13)) js-tiktoken: 1.0.12 openai: 4.51.0(encoding@0.1.13) zod: 3.22.4 @@ -19971,31 +19971,31 @@ snapshots: - encoding - langchain - '@langchain/openai@0.1.3(encoding@0.1.13)(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))': + '@langchain/openai@0.1.3(encoding@0.1.13)(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))': dependencies: - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) js-tiktoken: 1.0.12 openai: 4.51.0(encoding@0.1.13) - zod: 3.23.8 - zod-to-json-schema: 3.23.1(zod@3.23.8) + zod: 3.22.4 + zod-to-json-schema: 3.23.1(zod@3.22.4) transitivePeerDependencies: - encoding - langchain - '@langchain/openai@0.1.3(encoding@0.1.13)(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky))': + '@langchain/openai@0.1.3(encoding@0.1.13)(langchain@0.2.3(6gucoml2zeyvfd3acm6anx5zwa))': dependencies: - '@langchain/core': 0.2.18(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky))(openai@4.51.0(encoding@0.1.13)) + '@langchain/core': 0.2.18(langchain@0.2.3(6gucoml2zeyvfd3acm6anx5zwa))(openai@4.51.0(encoding@0.1.13)) js-tiktoken: 1.0.12 openai: 4.51.0(encoding@0.1.13) - zod: 3.23.8 - zod-to-json-schema: 3.23.1(zod@3.23.8) + zod: 3.22.4 + zod-to-json-schema: 3.23.1(zod@3.22.4) transitivePeerDependencies: - encoding - langchain - '@langchain/pinecone@0.0.3(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13))': + '@langchain/pinecone@0.0.3(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13))': dependencies: - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) '@pinecone-database/pinecone': 2.2.2 flat: 5.0.2 uuid: 9.0.1 @@ -20003,9 +20003,9 @@ snapshots: - langchain - openai - '@langchain/qdrant@0.0.5(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13))(typescript@5.5.2)': + '@langchain/qdrant@0.0.5(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13))(typescript@5.5.2)': dependencies: - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) '@qdrant/js-client-rest': 1.9.0(typescript@5.5.2) uuid: 9.0.1 transitivePeerDependencies: @@ -20013,25 +20013,25 @@ snapshots: - openai - typescript - '@langchain/textsplitters@0.0.1(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13))': + '@langchain/textsplitters@0.0.1(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13))': dependencies: - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) js-tiktoken: 1.0.12 transitivePeerDependencies: - langchain - openai - '@langchain/textsplitters@0.0.1(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky))(openai@4.51.0(encoding@0.1.13))': + '@langchain/textsplitters@0.0.1(langchain@0.2.3(6gucoml2zeyvfd3acm6anx5zwa))(openai@4.51.0(encoding@0.1.13))': dependencies: - '@langchain/core': 0.2.18(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky))(openai@4.51.0(encoding@0.1.13)) + '@langchain/core': 0.2.18(langchain@0.2.3(6gucoml2zeyvfd3acm6anx5zwa))(openai@4.51.0(encoding@0.1.13)) js-tiktoken: 1.0.12 transitivePeerDependencies: - langchain - openai - '@langchain/weaviate@0.0.1(encoding@0.1.13)(graphql@16.8.1)(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13))': + '@langchain/weaviate@0.0.1(encoding@0.1.13)(graphql@16.8.1)(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13))': dependencies: - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) uuid: 9.0.1 weaviate-ts-client: 2.1.1(encoding@0.1.13)(graphql@16.8.1) transitivePeerDependencies: @@ -20668,7 +20668,7 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@pmmmwh/react-refresh-webpack-plugin@0.5.11(react-refresh@0.11.0)(type-fest@4.12.0)(webpack-dev-server@4.15.1(bufferutil@4.0.8)(webpack@5.90.3))(webpack@5.90.3)': + '@pmmmwh/react-refresh-webpack-plugin@0.5.11(react-refresh@0.11.0)(type-fest@4.12.0)(webpack-dev-server@4.15.1(bufferutil@4.0.8)(webpack@5.90.3(@swc/core@1.4.6)))(webpack@5.90.3(@swc/core@1.4.6))': dependencies: ansi-html-community: 0.0.8 common-path-prefix: 3.0.0 @@ -20680,10 +20680,10 @@ snapshots: react-refresh: 0.11.0 schema-utils: 3.3.0 source-map: 0.7.4 - webpack: 5.90.3 + webpack: 5.90.3(@swc/core@1.4.6) optionalDependencies: type-fest: 4.12.0 - webpack-dev-server: 4.15.1(bufferutil@4.0.8)(webpack@5.90.3) + webpack-dev-server: 4.15.1(bufferutil@4.0.8)(webpack@5.90.3(@swc/core@1.4.6)) '@popperjs/core@2.11.8': {} @@ -23254,14 +23254,14 @@ snapshots: transitivePeerDependencies: - supports-color - babel-loader@8.3.0(@babel/core@7.24.0)(webpack@5.90.3): + babel-loader@8.3.0(@babel/core@7.24.0)(webpack@5.90.3(@swc/core@1.4.6)): dependencies: '@babel/core': 7.24.0 find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: 5.90.3 + webpack: 5.90.3(@swc/core@1.4.6) babel-messages@6.23.0: dependencies: @@ -24443,7 +24443,7 @@ snapshots: postcss: 8.4.35 postcss-selector-parser: 6.0.15 - css-loader@6.10.0(webpack@5.90.3): + css-loader@6.10.0(webpack@5.90.3(@swc/core@1.4.6)): dependencies: icss-utils: 5.1.0(postcss@8.4.35) postcss: 8.4.35 @@ -24454,9 +24454,9 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.6.0 optionalDependencies: - webpack: 5.90.3 + webpack: 5.90.3(@swc/core@1.4.6) - css-minimizer-webpack-plugin@3.4.1(webpack@5.90.3): + css-minimizer-webpack-plugin@3.4.1(webpack@5.90.3(@swc/core@1.4.6)): dependencies: cssnano: 5.1.15(postcss@8.4.35) jest-worker: 27.5.1 @@ -24464,7 +24464,7 @@ snapshots: schema-utils: 4.2.0 serialize-javascript: 6.0.2 source-map: 0.6.1 - webpack: 5.90.3 + webpack: 5.90.3(@swc/core@1.4.6) css-prefers-color-scheme@6.0.3(postcss@8.4.35): dependencies: @@ -25375,7 +25375,7 @@ snapshots: dependencies: eslint: 8.57.0 - eslint-config-react-app@7.0.1(@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.0))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.0))(eslint@8.57.0)(jest@27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2)))(typescript@5.5.2): + eslint-config-react-app@7.0.1(@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.0))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.0))(eslint@8.57.0)(jest@27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)))(typescript@5.5.2): dependencies: '@babel/core': 7.24.0 '@babel/eslint-parser': 7.23.10(@babel/core@7.24.0)(eslint@8.57.0) @@ -25387,7 +25387,7 @@ snapshots: eslint: 8.57.0 eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.0))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.0))(eslint@8.57.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0) - eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(jest@27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2)))(typescript@5.5.2) + eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(jest@27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)))(typescript@5.5.2) eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0) eslint-plugin-react: 7.34.0(eslint@8.57.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0) @@ -25455,13 +25455,13 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(jest@27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2)))(typescript@5.5.2): + eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(jest@27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)))(typescript@5.5.2): dependencies: '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.57.0)(typescript@5.5.2) eslint: 8.57.0 optionalDependencies: '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2) - jest: 27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2)) + jest: 27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)) transitivePeerDependencies: - supports-color - typescript @@ -25558,7 +25558,7 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint-webpack-plugin@3.2.0(eslint@8.57.0)(webpack@5.90.3): + eslint-webpack-plugin@3.2.0(eslint@8.57.0)(webpack@5.90.3(@swc/core@1.4.6)): dependencies: '@types/eslint': 8.56.5 eslint: 8.57.0 @@ -25566,7 +25566,7 @@ snapshots: micromatch: 4.0.5 normalize-path: 3.0.0 schema-utils: 4.2.0 - webpack: 5.90.3 + webpack: 5.90.3(@swc/core@1.4.6) eslint@8.57.0: dependencies: @@ -25993,11 +25993,11 @@ snapshots: dependencies: flat-cache: 3.2.0 - file-loader@6.2.0(webpack@5.90.3): + file-loader@6.2.0(webpack@5.90.3(@swc/core@1.4.6)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.90.3 + webpack: 5.90.3(@swc/core@1.4.6) file-uri-to-path@1.0.0: {} @@ -26139,7 +26139,7 @@ snapshots: prettier: 3.2.5 solid-element: 1.7.0(solid-js@1.7.1) solid-js: 1.7.1 - zod: 3.23.8 + zod: 3.22.4 transitivePeerDependencies: - supports-color @@ -26195,7 +26195,7 @@ snapshots: forever-agent@0.6.1: {} - fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.5.2)(webpack@5.90.3): + fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.5.2)(webpack@5.90.3(@swc/core@1.4.6)): dependencies: '@babel/code-frame': 7.23.5 '@types/json-schema': 7.0.15 @@ -26211,7 +26211,7 @@ snapshots: semver: 7.6.0 tapable: 1.1.3 typescript: 5.5.2 - webpack: 5.90.3 + webpack: 5.90.3(@swc/core@1.4.6) optionalDependencies: eslint: 8.57.0 @@ -27049,7 +27049,7 @@ snapshots: html-void-elements@3.0.0: {} - html-webpack-plugin@5.6.0(webpack@5.90.3): + html-webpack-plugin@5.6.0(webpack@5.90.3(@swc/core@1.4.6)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -27057,7 +27057,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.90.3 + webpack: 5.90.3(@swc/core@1.4.6) htmlparser2@6.1.0: dependencies: @@ -27684,16 +27684,16 @@ snapshots: transitivePeerDependencies: - supports-color - jest-cli@27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2)): + jest-cli@27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)): dependencies: - '@jest/core': 27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2)) + '@jest/core': 27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)) '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 import-local: 3.1.0 - jest-config: 27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2)) + jest-config: 27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)) jest-util: 27.5.1 jest-validate: 27.5.1 prompts: 2.4.2 @@ -27705,7 +27705,7 @@ snapshots: - ts-node - utf-8-validate - jest-config@27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2)): + jest-config@27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)): dependencies: '@babel/core': 7.24.0 '@jest/test-sequencer': 27.5.1 @@ -28045,11 +28045,11 @@ snapshots: leven: 3.1.0 pretty-format: 27.5.1 - jest-watch-typeahead@1.1.0(jest@27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2))): + jest-watch-typeahead@1.1.0(jest@27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2))): dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 - jest: 27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2)) + jest: 27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)) jest-regex-util: 28.0.2 jest-watcher: 28.1.3 slash: 4.0.0 @@ -28095,11 +28095,11 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2)): + jest@27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)): dependencies: - '@jest/core': 27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2)) + '@jest/core': 27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)) import-local: 3.1.0 - jest-cli: 27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2)) + jest-cli: 27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)) transitivePeerDependencies: - bufferutil - canvas @@ -28388,24 +28388,24 @@ snapshots: kuler@2.0.0: {} - langchain@0.2.11(rijpiaudoghub5wl4aggkbywra): + langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua): dependencies: - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) - '@langchain/openai': 0.1.3(encoding@0.1.13)(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra)) - '@langchain/textsplitters': 0.0.1(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) + '@langchain/openai': 0.1.3(encoding@0.1.13)(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua)) + '@langchain/textsplitters': 0.0.1(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) binary-extensions: 2.2.0 js-tiktoken: 1.0.12 js-yaml: 4.1.0 jsonpointer: 5.0.1 langchainhub: 0.0.8 - langsmith: 0.1.32(@langchain/core@0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)))(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + langsmith: 0.1.32(@langchain/core@0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)))(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) ml-distance: 4.0.1 openapi-types: 12.1.3 p-retry: 4.6.2 uuid: 10.0.0 yaml: 2.4.1 - zod: 3.23.8 - zod-to-json-schema: 3.23.1(zod@3.23.8) + zod: 3.22.4 + zod-to-json-schema: 3.23.1(zod@3.22.4) optionalDependencies: '@aws-sdk/client-s3': 3.529.1 '@aws-sdk/credential-provider-node': 3.529.1 @@ -28414,7 +28414,7 @@ snapshots: '@langchain/anthropic': 0.2.1(encoding@0.1.13)(langchain@0.2.11)(openai@4.51.0(encoding@0.1.13)) '@langchain/aws': 0.0.9(@aws-sdk/client-sso-oidc@3.624.0(@aws-sdk/client-sts@3.624.0))(@aws-sdk/client-sts@3.624.0)(langchain@0.2.11)(openai@4.51.0(encoding@0.1.13)) '@langchain/cohere': 0.0.7(encoding@0.1.13)(langchain@0.2.11)(openai@4.51.0(encoding@0.1.13)) - '@langchain/community': 0.2.17(zxx4jpbxqhs7oe3oglbsfznx6a) + '@langchain/community': 0.2.17(rqn77hvkkdahc2ybmydnhh3cf4) '@langchain/google-genai': 0.0.22(langchain@0.2.11)(openai@4.51.0(encoding@0.1.13))(zod@3.22.4) '@langchain/google-vertexai': 0.0.19(encoding@0.1.13)(langchain@0.2.11)(openai@4.51.0(encoding@0.1.13))(zod@3.22.4) '@langchain/groq': 0.0.8(encoding@0.1.13)(langchain@0.2.11)(openai@4.51.0(encoding@0.1.13)) @@ -28446,31 +28446,31 @@ snapshots: pyodide: 0.25.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) redis: 4.6.13 srt-parser-2: 1.2.3 - typeorm: 0.3.20(ioredis@5.3.2)(mongodb@6.3.0(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.1))(mysql2@3.9.2)(pg@8.11.3)(redis@4.6.13)(sqlite3@5.1.7)(ts-node@10.9.2(@swc/core@1.4.6)(typescript@5.5.2)) + typeorm: 0.3.20(ioredis@5.3.2)(mongodb@6.3.0(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.1))(mysql2@3.9.2)(pg@8.11.3)(redis@4.6.13)(sqlite3@5.1.7)(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)) weaviate-ts-client: 1.6.0(encoding@0.1.13)(graphql@16.8.1) ws: 8.16.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) transitivePeerDependencies: - encoding - openai - langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky): + langchain@0.2.3(6gucoml2zeyvfd3acm6anx5zwa): dependencies: - '@langchain/core': 0.2.18(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky))(openai@4.51.0(encoding@0.1.13)) - '@langchain/openai': 0.0.30(encoding@0.1.13)(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky)) - '@langchain/textsplitters': 0.0.1(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky))(openai@4.51.0(encoding@0.1.13)) + '@langchain/core': 0.2.18(langchain@0.2.3(6gucoml2zeyvfd3acm6anx5zwa))(openai@4.51.0(encoding@0.1.13)) + '@langchain/openai': 0.0.30(encoding@0.1.13)(langchain@0.2.3(6gucoml2zeyvfd3acm6anx5zwa)) + '@langchain/textsplitters': 0.0.1(langchain@0.2.3(6gucoml2zeyvfd3acm6anx5zwa))(openai@4.51.0(encoding@0.1.13)) binary-extensions: 2.2.0 js-tiktoken: 1.0.12 js-yaml: 4.1.0 jsonpointer: 5.0.1 langchainhub: 0.0.11 - langsmith: 0.1.32(@langchain/core@0.2.18(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky))(openai@4.51.0(encoding@0.1.13)))(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky))(openai@4.51.0(encoding@0.1.13)) + langsmith: 0.1.32(@langchain/core@0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)))(langchain@0.2.3(6gucoml2zeyvfd3acm6anx5zwa))(openai@4.51.0(encoding@0.1.13)) ml-distance: 4.0.1 openapi-types: 12.1.3 p-retry: 4.6.2 uuid: 9.0.1 yaml: 2.4.1 - zod: 3.23.8 - zod-to-json-schema: 3.23.1(zod@3.23.8) + zod: 3.22.4 + zod-to-json-schema: 3.23.1(zod@3.22.4) optionalDependencies: '@aws-sdk/client-s3': 3.529.1 '@aws-sdk/credential-provider-node': 3.529.1 @@ -28502,7 +28502,7 @@ snapshots: pyodide: 0.25.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) redis: 4.6.13 srt-parser-2: 1.2.3 - typeorm: 0.3.20(ioredis@5.3.2)(mongodb@6.3.0(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.1))(mysql2@3.9.2)(pg@8.11.3)(redis@4.6.13)(sqlite3@5.1.7)(ts-node@10.9.2(@swc/core@1.4.6)(typescript@5.5.2)) + typeorm: 0.3.20(ioredis@5.3.2)(mongodb@6.3.0(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.1))(mysql2@3.9.2)(pg@8.11.3)(redis@4.6.13)(sqlite3@5.1.7)(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)) weaviate-ts-client: 1.6.0(encoding@0.1.13)(graphql@16.8.1) ws: 8.16.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) transitivePeerDependencies: @@ -28517,9 +28517,9 @@ snapshots: dependencies: mustache: 4.2.0 - langfuse-langchain@3.3.4(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra)): + langfuse-langchain@3.3.4(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua)): dependencies: - langchain: 0.2.11(rijpiaudoghub5wl4aggkbywra) + langchain: 0.2.11(d46g2oh7pzryev2vs75vns4aua) langfuse: 3.3.4 langfuse-core: 3.3.4 @@ -28527,7 +28527,7 @@ snapshots: dependencies: langfuse-core: 3.3.4 - langsmith@0.1.32(@langchain/core@0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)))(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)): + langsmith@0.1.32(@langchain/core@0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)))(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)): dependencies: '@types/uuid': 9.0.8 commander: 10.0.1 @@ -28535,11 +28535,11 @@ snapshots: p-retry: 4.6.2 uuid: 9.0.1 optionalDependencies: - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) - langchain: 0.2.11(rijpiaudoghub5wl4aggkbywra) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) + langchain: 0.2.11(d46g2oh7pzryev2vs75vns4aua) openai: 4.51.0(encoding@0.1.13) - langsmith@0.1.32(@langchain/core@0.2.18(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky))(openai@4.51.0(encoding@0.1.13)))(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky))(openai@4.51.0(encoding@0.1.13)): + langsmith@0.1.32(@langchain/core@0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)))(langchain@0.2.3(6gucoml2zeyvfd3acm6anx5zwa))(openai@4.51.0(encoding@0.1.13)): dependencies: '@types/uuid': 9.0.8 commander: 10.0.1 @@ -28547,11 +28547,11 @@ snapshots: p-retry: 4.6.2 uuid: 9.0.1 optionalDependencies: - '@langchain/core': 0.2.18(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky))(openai@4.51.0(encoding@0.1.13)) - langchain: 0.2.3(qtzklq3trxgbwvwvhhdjhpcdky) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) + langchain: 0.2.3(6gucoml2zeyvfd3acm6anx5zwa) openai: 4.51.0(encoding@0.1.13) - langsmith@0.1.39(@langchain/core@0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)))(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)): + langsmith@0.1.39(@langchain/core@0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)))(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)): dependencies: '@types/uuid': 9.0.8 commander: 10.0.1 @@ -28559,11 +28559,11 @@ snapshots: p-retry: 4.6.2 uuid: 9.0.1 optionalDependencies: - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) - langchain: 0.2.11(rijpiaudoghub5wl4aggkbywra) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) + langchain: 0.2.11(d46g2oh7pzryev2vs75vns4aua) openai: 4.51.0(encoding@0.1.13) - langsmith@0.1.39(@langchain/core@0.2.18(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky))(openai@4.51.0(encoding@0.1.13)))(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky))(openai@4.51.0(encoding@0.1.13)): + langsmith@0.1.39(@langchain/core@0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)))(langchain@0.2.3(6gucoml2zeyvfd3acm6anx5zwa))(openai@4.51.0(encoding@0.1.13)): dependencies: '@types/uuid': 9.0.8 commander: 10.0.1 @@ -28571,8 +28571,8 @@ snapshots: p-retry: 4.6.2 uuid: 9.0.1 optionalDependencies: - '@langchain/core': 0.2.18(langchain@0.2.3(qtzklq3trxgbwvwvhhdjhpcdky))(openai@4.51.0(encoding@0.1.13)) - langchain: 0.2.3(qtzklq3trxgbwvwvhhdjhpcdky) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) + langchain: 0.2.3(6gucoml2zeyvfd3acm6anx5zwa) openai: 4.51.0(encoding@0.1.13) langsmith@0.1.6: @@ -28589,9 +28589,9 @@ snapshots: dependencies: language-subtag-registry: 0.3.22 - langwatch@0.1.1(encoding@0.1.13)(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(react@18.2.0)(svelte@4.2.18)(vue@3.4.31(typescript@5.5.2)): + langwatch@0.1.1(encoding@0.1.13)(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(react@18.2.0)(svelte@4.2.18)(vue@3.4.31(typescript@5.5.2)): dependencies: - '@langchain/core': 0.2.18(langchain@0.2.11(rijpiaudoghub5wl4aggkbywra))(openai@4.51.0(encoding@0.1.13)) + '@langchain/core': 0.2.18(langchain@0.2.11(d46g2oh7pzryev2vs75vns4aua))(openai@4.51.0(encoding@0.1.13)) ai: 3.2.22(openai@4.51.0(encoding@0.1.13))(react@18.2.0)(svelte@4.2.18)(vue@3.4.31(typescript@5.5.2))(zod@3.22.4) javascript-stringify: 2.1.0 llm-cost: 1.0.4 @@ -29573,11 +29573,11 @@ snapshots: min-indent@1.0.1: {} - mini-css-extract-plugin@2.8.1(webpack@5.90.3): + mini-css-extract-plugin@2.8.1(webpack@5.90.3(@swc/core@1.4.6)): dependencies: schema-utils: 4.2.0 tapable: 2.2.1 - webpack: 5.90.3 + webpack: 5.90.3(@swc/core@1.4.6) minimalistic-assert@1.0.1: {} @@ -30955,7 +30955,7 @@ snapshots: postcss: 8.4.35 postcss-value-parser: 4.2.0 - postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2)): + postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)): dependencies: lilconfig: 3.1.1 yaml: 2.4.1 @@ -30963,13 +30963,13 @@ snapshots: postcss: 8.4.35 ts-node: 10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2) - postcss-loader@6.2.1(postcss@8.4.35)(webpack@5.90.3): + postcss-loader@6.2.1(postcss@8.4.35)(webpack@5.90.3(@swc/core@1.4.6)): dependencies: cosmiconfig: 7.1.0 klona: 2.0.6 postcss: 8.4.35 semver: 7.6.0 - webpack: 5.90.3 + webpack: 5.90.3(@swc/core@1.4.6) postcss-logical@5.0.4(postcss@8.4.35): dependencies: @@ -31706,7 +31706,7 @@ snapshots: react-onclickoutside: 6.13.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-popper: 2.3.0(@popperjs/core@2.11.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.5.2)(webpack@5.90.3): + react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.5.2)(webpack@5.90.3(@swc/core@1.4.6)): dependencies: '@babel/code-frame': 7.23.5 address: 1.2.2 @@ -31717,7 +31717,7 @@ snapshots: escape-string-regexp: 4.0.0 filesize: 8.0.7 find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.57.0)(typescript@5.5.2)(webpack@5.90.3) + fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.57.0)(typescript@5.5.2)(webpack@5.90.3(@swc/core@1.4.6)) global-modules: 2.0.0 globby: 11.1.0 gzip-size: 6.0.0 @@ -31732,7 +31732,7 @@ snapshots: shell-quote: 1.8.1 strip-ansi: 6.0.1 text-table: 0.2.0 - webpack: 5.90.3 + webpack: 5.90.3(@swc/core@1.4.6) optionalDependencies: typescript: 5.5.2 transitivePeerDependencies: @@ -31851,56 +31851,56 @@ snapshots: history: 5.3.0 react: 18.2.0 - react-scripts@5.0.1(@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.0))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.0))(@types/babel__core@7.20.5)(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(eslint@8.57.0)(react@18.2.0)(sass@1.71.1)(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2))(type-fest@4.12.0)(typescript@5.5.2): + react-scripts@5.0.1(@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.0))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.0))(@swc/core@1.4.6)(@types/babel__core@7.20.5)(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(eslint@8.57.0)(react@18.2.0)(sass@1.71.1)(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2))(type-fest@4.12.0)(typescript@5.5.2): dependencies: '@babel/core': 7.24.0 - '@pmmmwh/react-refresh-webpack-plugin': 0.5.11(react-refresh@0.11.0)(type-fest@4.12.0)(webpack-dev-server@4.15.1(bufferutil@4.0.8)(webpack@5.90.3))(webpack@5.90.3) + '@pmmmwh/react-refresh-webpack-plugin': 0.5.11(react-refresh@0.11.0)(type-fest@4.12.0)(webpack-dev-server@4.15.1(bufferutil@4.0.8)(webpack@5.90.3(@swc/core@1.4.6)))(webpack@5.90.3(@swc/core@1.4.6)) '@svgr/webpack': 5.5.0 babel-jest: 27.5.1(@babel/core@7.24.0) - babel-loader: 8.3.0(@babel/core@7.24.0)(webpack@5.90.3) + babel-loader: 8.3.0(@babel/core@7.24.0)(webpack@5.90.3(@swc/core@1.4.6)) babel-plugin-named-asset-import: 0.3.8(@babel/core@7.24.0) babel-preset-react-app: 10.0.1 bfj: 7.1.0 browserslist: 4.23.0 camelcase: 6.3.0 case-sensitive-paths-webpack-plugin: 2.4.0 - css-loader: 6.10.0(webpack@5.90.3) - css-minimizer-webpack-plugin: 3.4.1(webpack@5.90.3) + css-loader: 6.10.0(webpack@5.90.3(@swc/core@1.4.6)) + css-minimizer-webpack-plugin: 3.4.1(webpack@5.90.3(@swc/core@1.4.6)) dotenv: 10.0.0 dotenv-expand: 5.1.0 eslint: 8.57.0 - eslint-config-react-app: 7.0.1(@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.0))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.0))(eslint@8.57.0)(jest@27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2)))(typescript@5.5.2) - eslint-webpack-plugin: 3.2.0(eslint@8.57.0)(webpack@5.90.3) - file-loader: 6.2.0(webpack@5.90.3) + eslint-config-react-app: 7.0.1(@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.0))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.0))(eslint@8.57.0)(jest@27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)))(typescript@5.5.2) + eslint-webpack-plugin: 3.2.0(eslint@8.57.0)(webpack@5.90.3(@swc/core@1.4.6)) + file-loader: 6.2.0(webpack@5.90.3(@swc/core@1.4.6)) fs-extra: 10.1.0 - html-webpack-plugin: 5.6.0(webpack@5.90.3) + html-webpack-plugin: 5.6.0(webpack@5.90.3(@swc/core@1.4.6)) identity-obj-proxy: 3.0.0 - jest: 27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2)) + jest: 27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)) jest-resolve: 27.5.1 - jest-watch-typeahead: 1.1.0(jest@27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2))) - mini-css-extract-plugin: 2.8.1(webpack@5.90.3) + jest-watch-typeahead: 1.1.0(jest@27.5.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2))) + mini-css-extract-plugin: 2.8.1(webpack@5.90.3(@swc/core@1.4.6)) postcss: 8.4.35 postcss-flexbugs-fixes: 5.0.2(postcss@8.4.35) - postcss-loader: 6.2.1(postcss@8.4.35)(webpack@5.90.3) + postcss-loader: 6.2.1(postcss@8.4.35)(webpack@5.90.3(@swc/core@1.4.6)) postcss-normalize: 10.0.1(browserslist@4.23.0)(postcss@8.4.35) postcss-preset-env: 7.8.3(postcss@8.4.35) prompts: 2.4.2 react: 18.2.0 react-app-polyfill: 3.0.0 - react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.5.2)(webpack@5.90.3) + react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.5.2)(webpack@5.90.3(@swc/core@1.4.6)) react-refresh: 0.11.0 resolve: 1.22.8 resolve-url-loader: 4.0.0 - sass-loader: 12.6.0(sass@1.71.1)(webpack@5.90.3) + sass-loader: 12.6.0(sass@1.71.1)(webpack@5.90.3(@swc/core@1.4.6)) semver: 7.6.0 - source-map-loader: 3.0.2(webpack@5.90.3) - style-loader: 3.3.4(webpack@5.90.3) - tailwindcss: 3.4.1(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2)) - terser-webpack-plugin: 5.3.10(webpack@5.90.3) - webpack: 5.90.3 - webpack-dev-server: 4.15.1(bufferutil@4.0.8)(webpack@5.90.3) - webpack-manifest-plugin: 4.1.1(webpack@5.90.3) - workbox-webpack-plugin: 6.6.0(@types/babel__core@7.20.5)(webpack@5.90.3) + source-map-loader: 3.0.2(webpack@5.90.3(@swc/core@1.4.6)) + style-loader: 3.3.4(webpack@5.90.3(@swc/core@1.4.6)) + tailwindcss: 3.4.1(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)) + terser-webpack-plugin: 5.3.10(@swc/core@1.4.6)(webpack@5.90.3(@swc/core@1.4.6)) + webpack: 5.90.3(@swc/core@1.4.6) + webpack-dev-server: 4.15.1(bufferutil@4.0.8)(webpack@5.90.3(@swc/core@1.4.6)) + webpack-manifest-plugin: 4.1.1(webpack@5.90.3(@swc/core@1.4.6)) + workbox-webpack-plugin: 6.6.0(@types/babel__core@7.20.5)(webpack@5.90.3(@swc/core@1.4.6)) optionalDependencies: fsevents: 2.3.3 typescript: 5.5.2 @@ -32487,11 +32487,11 @@ snapshots: sanitize.css@13.0.0: {} - sass-loader@12.6.0(sass@1.71.1)(webpack@5.90.3): + sass-loader@12.6.0(sass@1.71.1)(webpack@5.90.3(@swc/core@1.4.6)): dependencies: klona: 2.0.6 neo-async: 2.6.2 - webpack: 5.90.3 + webpack: 5.90.3(@swc/core@1.4.6) optionalDependencies: sass: 1.71.1 @@ -32882,12 +32882,12 @@ snapshots: source-map-js@1.2.0: {} - source-map-loader@3.0.2(webpack@5.90.3): + source-map-loader@3.0.2(webpack@5.90.3(@swc/core@1.4.6)): dependencies: abab: 2.0.6 iconv-lite: 0.6.3 source-map-js: 1.0.2 - webpack: 5.90.3 + webpack: 5.90.3(@swc/core@1.4.6) source-map-resolve@0.5.3: dependencies: @@ -33241,9 +33241,9 @@ snapshots: stubs@3.0.0: {} - style-loader@3.3.4(webpack@5.90.3): + style-loader@3.3.4(webpack@5.90.3(@swc/core@1.4.6)): dependencies: - webpack: 5.90.3 + webpack: 5.90.3(@swc/core@1.4.6) style-mod@4.1.2: {} @@ -33408,7 +33408,7 @@ snapshots: symbol-tree@3.2.4: {} - tailwindcss@3.4.1(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2)): + tailwindcss@3.4.1(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -33427,7 +33427,7 @@ snapshots: postcss: 8.4.35 postcss-import: 15.1.0(postcss@8.4.35) postcss-js: 4.0.1(postcss@8.4.35) - postcss-load-config: 4.0.2(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.2)) + postcss-load-config: 4.0.2(postcss@8.4.35)(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)) postcss-nested: 6.0.1(postcss@8.4.35) postcss-selector-parser: 6.0.15 resolve: 1.22.8 @@ -33508,14 +33508,16 @@ snapshots: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 - terser-webpack-plugin@5.3.10(webpack@5.90.3): + terser-webpack-plugin@5.3.10(@swc/core@1.4.6)(webpack@5.90.3(@swc/core@1.4.6)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.29.1 - webpack: 5.90.3 + webpack: 5.90.3(@swc/core@1.4.6) + optionalDependencies: + '@swc/core': 1.4.6 terser@5.29.1: dependencies: @@ -33845,7 +33847,7 @@ snapshots: typedarray@0.0.6: {} - typeorm@0.3.20(ioredis@5.3.2)(mongodb@6.3.0(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.1))(mysql2@3.9.2)(pg@8.11.3)(redis@4.6.13)(sqlite3@5.1.7)(ts-node@10.9.2(@swc/core@1.4.6)(typescript@5.5.2)): + typeorm@0.3.20(ioredis@5.3.2)(mongodb@6.3.0(gcp-metadata@5.3.0(encoding@0.1.13))(socks@2.8.1))(mysql2@3.9.2)(pg@8.11.3)(redis@4.6.13)(sqlite3@5.1.7)(ts-node@10.9.2(@swc/core@1.4.6)(@types/node@20.12.12)(typescript@5.5.2)): dependencies: '@sqltools/formatter': 1.2.5 app-root-path: 3.1.0 @@ -34424,16 +34426,16 @@ snapshots: webidl-conversions@7.0.0: {} - webpack-dev-middleware@5.3.3(webpack@5.90.3): + webpack-dev-middleware@5.3.3(webpack@5.90.3(@swc/core@1.4.6)): dependencies: colorette: 2.0.20 memfs: 3.5.3 mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.2.0 - webpack: 5.90.3 + webpack: 5.90.3(@swc/core@1.4.6) - webpack-dev-server@4.15.1(bufferutil@4.0.8)(webpack@5.90.3): + webpack-dev-server@4.15.1(bufferutil@4.0.8)(webpack@5.90.3(@swc/core@1.4.6)): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -34463,20 +34465,20 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 5.3.3(webpack@5.90.3) + webpack-dev-middleware: 5.3.3(webpack@5.90.3(@swc/core@1.4.6)) ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) optionalDependencies: - webpack: 5.90.3 + webpack: 5.90.3(@swc/core@1.4.6) transitivePeerDependencies: - bufferutil - debug - supports-color - utf-8-validate - webpack-manifest-plugin@4.1.1(webpack@5.90.3): + webpack-manifest-plugin@4.1.1(webpack@5.90.3(@swc/core@1.4.6)): dependencies: tapable: 2.2.1 - webpack: 5.90.3 + webpack: 5.90.3(@swc/core@1.4.6) webpack-sources: 2.3.1 webpack-sources@1.4.3: @@ -34493,7 +34495,7 @@ snapshots: webpack-virtual-modules@0.6.1: {} - webpack@5.90.3: + webpack@5.90.3(@swc/core@1.4.6): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 @@ -34516,7 +34518,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.90.3) + terser-webpack-plugin: 5.3.10(@swc/core@1.4.6)(webpack@5.90.3(@swc/core@1.4.6)) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -34898,12 +34900,12 @@ snapshots: workbox-sw@7.0.0: {} - workbox-webpack-plugin@6.6.0(@types/babel__core@7.20.5)(webpack@5.90.3): + workbox-webpack-plugin@6.6.0(@types/babel__core@7.20.5)(webpack@5.90.3(@swc/core@1.4.6)): dependencies: fast-json-stable-stringify: 2.1.0 pretty-bytes: 5.6.0 upath: 1.2.0 - webpack: 5.90.3 + webpack: 5.90.3(@swc/core@1.4.6) webpack-sources: 1.4.3 workbox-build: 6.6.0(@types/babel__core@7.20.5) transitivePeerDependencies: