Feature/Mistral FunctionAgent (#1912)

* add mistral ai agent, add used tools streaming

* fix AWS Bedrock imports

* update pnpm lock
This commit is contained in:
Henry Heng 2024-03-18 13:17:00 +08:00 committed by GitHub
parent 58122e985c
commit cd4c659009
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 30546 additions and 29817 deletions

View File

@ -9,7 +9,7 @@ import { RunnableSequence } from '@langchain/core/runnables'
import { ChatConversationalAgent } from 'langchain/agents' import { ChatConversationalAgent } from 'langchain/agents'
import { getBaseClasses } from '../../../src/utils' import { getBaseClasses } from '../../../src/utils'
import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler'
import { IVisionChatModal, FlowiseMemory, ICommonObject, IMessage, INode, INodeData, INodeParams } from '../../../src/Interface' import { IVisionChatModal, FlowiseMemory, ICommonObject, IMessage, INode, INodeData, INodeParams, IUsedTool } from '../../../src/Interface'
import { AgentExecutor } from '../../../src/agents' import { AgentExecutor } from '../../../src/agents'
import { addImagesToMessages, llmSupportsVision } from '../../../src/multiModalUtils' import { addImagesToMessages, llmSupportsVision } from '../../../src/multiModalUtils'
import { checkInputs, Moderation } from '../../moderation/Moderation' import { checkInputs, Moderation } from '../../moderation/Moderation'
@ -120,12 +120,28 @@ class ConversationalAgent_Agents implements INode {
const callbacks = await additionalCallbacks(nodeData, options) const callbacks = await additionalCallbacks(nodeData, options)
let res: ChainValues = {} let res: ChainValues = {}
let sourceDocuments: ICommonObject[] = []
let usedTools: IUsedTool[] = []
if (options.socketIO && options.socketIOClientId) { if (options.socketIO && options.socketIOClientId) {
const handler = new CustomChainHandler(options.socketIO, options.socketIOClientId) const handler = new CustomChainHandler(options.socketIO, options.socketIOClientId)
res = await executor.invoke({ input }, { callbacks: [loggerHandler, handler, ...callbacks] }) res = await executor.invoke({ input }, { callbacks: [loggerHandler, handler, ...callbacks] })
if (res.sourceDocuments) {
options.socketIO.to(options.socketIOClientId).emit('sourceDocuments', flatten(res.sourceDocuments))
sourceDocuments = res.sourceDocuments
}
if (res.usedTools) {
options.socketIO.to(options.socketIOClientId).emit('usedTools', res.usedTools)
usedTools = res.usedTools
}
} else { } else {
res = await executor.invoke({ input }, { callbacks: [loggerHandler, ...callbacks] }) res = await executor.invoke({ input }, { callbacks: [loggerHandler, ...callbacks] })
if (res.sourceDocuments) {
sourceDocuments = res.sourceDocuments
}
if (res.usedTools) {
usedTools = res.usedTools
}
} }
await memory.addChatMessages( await memory.addChatMessages(
@ -142,7 +158,20 @@ class ConversationalAgent_Agents implements INode {
this.sessionId this.sessionId
) )
return res?.output let finalRes = res?.output
if (sourceDocuments.length || usedTools.length) {
finalRes = { text: res?.output }
if (sourceDocuments.length) {
finalRes.sourceDocuments = flatten(sourceDocuments)
}
if (usedTools.length) {
finalRes.usedTools = usedTools
}
return finalRes
}
return finalRes
} }
} }

View File

@ -25,6 +25,7 @@ class ConversationalRetrievalAgent_Agents implements INode {
category: string category: string
baseClasses: string[] baseClasses: string[]
inputs: INodeParams[] inputs: INodeParams[]
badge?: string
sessionId?: string sessionId?: string
constructor(fields?: { sessionId?: string }) { constructor(fields?: { sessionId?: string }) {
@ -33,6 +34,7 @@ class ConversationalRetrievalAgent_Agents implements INode {
this.version = 4.0 this.version = 4.0
this.type = 'AgentExecutor' this.type = 'AgentExecutor'
this.category = 'Agents' this.category = 'Agents'
this.badge = 'DEPRECATING'
this.icon = 'agent.svg' this.icon = 'agent.svg'
this.description = `An agent optimized for retrieval during conversation, answering questions based on past dialogue, all using OpenAI's Function Calling` this.description = `An agent optimized for retrieval during conversation, answering questions based on past dialogue, all using OpenAI's Function Calling`
this.baseClasses = [this.type, ...getBaseClasses(AgentExecutor)] this.baseClasses = [this.type, ...getBaseClasses(AgentExecutor)]

View File

@ -0,0 +1 @@
<svg width="32" height="32" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M5 6H4v19.5h1m8-7.5v3h1m7-11.5V6h1m-5 7.5V10h1" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><mask id="MistralAI__a" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="5" y="6" width="22" height="20"><path d="M5 6v19.5h5v-8h4V21h4v-3.5h4V25h5V6h-4.5v4H18v3.5h-4v-4h-4V6H5Z" fill="#FD7000"/></mask><g mask="url(#MistralAI__a)"><path fill="#FFCD00" d="M4 6h25v4H4z"/></g><mask id="MistralAI__b" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="5" y="6" width="22" height="20"><path d="M5 6v19.5h5v-8h4V21h4v-3.5h4V25h5V6h-4.5v4H18v3.5h-4v-4h-4V6H5Z" fill="#FD7000"/></mask><g mask="url(#MistralAI__b)"><path fill="#FFA200" d="M4 10h25v4H4z"/></g><mask id="MistralAI__c" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="5" y="6" width="22" height="20"><path d="M5 6v19.5h5v-8h4V21h4v-3.5h4V25h5V6h-4.5v4H18v3.5h-4v-4h-4V6H5Z" fill="#FD7000"/></mask><g mask="url(#MistralAI__c)"><path fill="#FF6E00" d="M4 14h25v4H4z"/></g><mask id="MistralAI__d" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="5" y="6" width="22" height="20"><path d="M5 6v19.5h5v-8h4V21h4v-3.5h4V25h5V6h-4.5v4H18v3.5h-4v-4h-4V6H5Z" fill="#FD7000"/></mask><g mask="url(#MistralAI__d)"><path fill="#FF4A09" d="M4 18h25v4H4z"/></g><mask id="MistralAI__e" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="5" y="6" width="22" height="20"><path d="M5 6v19.5h5v-8h4V21h4v-3.5h4V25h5V6h-4.5v4H18v3.5h-4v-4h-4V6H5Z" fill="#FD7000"/></mask><g mask="url(#MistralAI__e)"><path fill="#FE060F" d="M4 22h25v4H4z"/></g><path d="M21 18v7h1" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M5 6v19.5h5v-8h4V21h4v-3.5h4V25h5V6h-4.5v4H18v3.5h-4v-4h-4V6H5Z" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -0,0 +1,207 @@
import { flatten } from 'lodash'
import { BaseMessage } from '@langchain/core/messages'
import { ChainValues } from '@langchain/core/utils/types'
import { AgentStep } from '@langchain/core/agents'
import { RunnableSequence } from '@langchain/core/runnables'
import { ChatOpenAI } from '@langchain/openai'
import { convertToOpenAITool } from '@langchain/core/utils/function_calling'
import { ChatPromptTemplate, MessagesPlaceholder } from '@langchain/core/prompts'
import { OpenAIToolsAgentOutputParser } from 'langchain/agents/openai/output_parser'
import { getBaseClasses } from '../../../src/utils'
import { FlowiseMemory, ICommonObject, IMessage, INode, INodeData, INodeParams, IUsedTool } from '../../../src/Interface'
import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler'
import { AgentExecutor, formatAgentSteps } from '../../../src/agents'
import { Moderation, checkInputs, streamResponse } from '../../moderation/Moderation'
import { formatResponse } from '../../outputparsers/OutputParserHelpers'
class MistralAIFunctionAgent_Agents implements INode {
label: string
name: string
version: number
description: string
type: string
icon: string
category: string
baseClasses: string[]
inputs: INodeParams[]
sessionId?: string
badge?: string
constructor(fields?: { sessionId?: string }) {
this.label = 'MistralAI Function Agent'
this.name = 'mistralAIFunctionAgent'
this.version = 1.0
this.type = 'AgentExecutor'
this.category = 'Agents'
this.icon = 'MistralAI.svg'
this.badge = 'NEW'
this.description = `An agent that uses MistralAI Function Calling to pick the tool and args to call`
this.baseClasses = [this.type, ...getBaseClasses(AgentExecutor)]
this.inputs = [
{
label: 'Tools',
name: 'tools',
type: 'Tool',
list: true
},
{
label: 'Memory',
name: 'memory',
type: 'BaseChatMemory'
},
{
label: 'MistralAI Chat Model',
name: 'model',
type: 'BaseChatModel'
},
{
label: 'System Message',
name: 'systemMessage',
type: 'string',
rows: 4,
optional: true,
additionalParams: true
},
{
label: 'Input Moderation',
description: 'Detect text that could generate harmful output and prevent it from being sent to the language model',
name: 'inputModeration',
type: 'Moderation',
optional: true,
list: true
}
]
this.sessionId = fields?.sessionId
}
async init(nodeData: INodeData, input: string, options: ICommonObject): Promise<any> {
return prepareAgent(nodeData, { sessionId: this.sessionId, chatId: options.chatId, input }, options.chatHistory)
}
async run(nodeData: INodeData, input: string, options: ICommonObject): Promise<string | ICommonObject> {
const memory = nodeData.inputs?.memory as FlowiseMemory
const moderations = nodeData.inputs?.inputModeration as Moderation[]
if (moderations && moderations.length > 0) {
try {
// Use the output of the moderation chain as input for the OpenAI Function Agent
input = await checkInputs(moderations, input)
} catch (e) {
await new Promise((resolve) => setTimeout(resolve, 500))
streamResponse(options.socketIO && options.socketIOClientId, e.message, options.socketIO, options.socketIOClientId)
return formatResponse(e.message)
}
}
const executor = prepareAgent(nodeData, { sessionId: this.sessionId, chatId: options.chatId, input }, options.chatHistory)
const loggerHandler = new ConsoleCallbackHandler(options.logger)
const callbacks = await additionalCallbacks(nodeData, options)
let res: ChainValues = {}
let sourceDocuments: ICommonObject[] = []
let usedTools: IUsedTool[] = []
if (options.socketIO && options.socketIOClientId) {
const handler = new CustomChainHandler(options.socketIO, options.socketIOClientId)
res = await executor.invoke({ input }, { callbacks: [loggerHandler, handler, ...callbacks] })
if (res.sourceDocuments) {
options.socketIO.to(options.socketIOClientId).emit('sourceDocuments', flatten(res.sourceDocuments))
sourceDocuments = res.sourceDocuments
}
if (res.usedTools) {
options.socketIO.to(options.socketIOClientId).emit('usedTools', res.usedTools)
usedTools = res.usedTools
}
} else {
res = await executor.invoke({ input }, { callbacks: [loggerHandler, ...callbacks] })
if (res.sourceDocuments) {
sourceDocuments = res.sourceDocuments
}
if (res.usedTools) {
usedTools = res.usedTools
}
}
await memory.addChatMessages(
[
{
text: input,
type: 'userMessage'
},
{
text: res?.output,
type: 'apiMessage'
}
],
this.sessionId
)
let finalRes = res?.output
if (sourceDocuments.length || usedTools.length) {
finalRes = { text: res?.output }
if (sourceDocuments.length) {
finalRes.sourceDocuments = flatten(sourceDocuments)
}
if (usedTools.length) {
finalRes.usedTools = usedTools
}
return finalRes
}
return finalRes
}
}
const prepareAgent = (
nodeData: INodeData,
flowObj: { sessionId?: string; chatId?: string; input?: string },
chatHistory: IMessage[] = []
) => {
const model = nodeData.inputs?.model as ChatOpenAI
const memory = nodeData.inputs?.memory as FlowiseMemory
const systemMessage = nodeData.inputs?.systemMessage as string
let tools = nodeData.inputs?.tools
tools = flatten(tools)
const memoryKey = memory.memoryKey ? memory.memoryKey : 'chat_history'
const inputKey = memory.inputKey ? memory.inputKey : 'input'
const prompt = ChatPromptTemplate.fromMessages([
['system', systemMessage ? systemMessage : `You are a helpful AI assistant.`],
new MessagesPlaceholder(memoryKey),
['human', `{${inputKey}}`],
new MessagesPlaceholder('agent_scratchpad')
])
const llmWithTools = model.bind({
tools: tools.map(convertToOpenAITool)
})
const runnableAgent = RunnableSequence.from([
{
[inputKey]: (i: { input: string; steps: AgentStep[] }) => i.input,
agent_scratchpad: (i: { input: string; steps: AgentStep[] }) => formatAgentSteps(i.steps),
[memoryKey]: async (_: { input: string; steps: AgentStep[] }) => {
const messages = (await memory.getChatMessages(flowObj?.sessionId, true, chatHistory)) as BaseMessage[]
return messages ?? []
}
},
prompt,
llmWithTools,
new OpenAIToolsAgentOutputParser()
])
const executor = AgentExecutor.fromAgentAndTools({
agent: runnableAgent,
tools,
sessionId: flowObj?.sessionId,
chatId: flowObj?.chatId,
input: flowObj?.input,
verbose: process.env.DEBUG === 'true' ? true : false
})
return executor
}
module.exports = { nodeClass: MistralAIFunctionAgent_Agents }

View File

@ -7,7 +7,7 @@ import { ChatOpenAI, formatToOpenAIFunction } from '@langchain/openai'
import { ChatPromptTemplate, MessagesPlaceholder } from '@langchain/core/prompts' import { ChatPromptTemplate, MessagesPlaceholder } from '@langchain/core/prompts'
import { OpenAIFunctionsAgentOutputParser } from 'langchain/agents/openai/output_parser' import { OpenAIFunctionsAgentOutputParser } from 'langchain/agents/openai/output_parser'
import { getBaseClasses } from '../../../src/utils' import { getBaseClasses } from '../../../src/utils'
import { FlowiseMemory, ICommonObject, IMessage, INode, INodeData, INodeParams } from '../../../src/Interface' import { FlowiseMemory, ICommonObject, IMessage, INode, INodeData, INodeParams, IUsedTool } from '../../../src/Interface'
import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler'
import { AgentExecutor, formatAgentSteps } from '../../../src/agents' import { AgentExecutor, formatAgentSteps } from '../../../src/agents'
import { Moderation, checkInputs } from '../../moderation/Moderation' import { Moderation, checkInputs } from '../../moderation/Moderation'
@ -97,6 +97,7 @@ class OpenAIFunctionAgent_Agents implements INode {
let res: ChainValues = {} let res: ChainValues = {}
let sourceDocuments: ICommonObject[] = [] let sourceDocuments: ICommonObject[] = []
let usedTools: IUsedTool[] = []
if (options.socketIO && options.socketIOClientId) { if (options.socketIO && options.socketIOClientId) {
const handler = new CustomChainHandler(options.socketIO, options.socketIOClientId) const handler = new CustomChainHandler(options.socketIO, options.socketIOClientId)
@ -105,11 +106,18 @@ class OpenAIFunctionAgent_Agents implements INode {
options.socketIO.to(options.socketIOClientId).emit('sourceDocuments', flatten(res.sourceDocuments)) options.socketIO.to(options.socketIOClientId).emit('sourceDocuments', flatten(res.sourceDocuments))
sourceDocuments = res.sourceDocuments sourceDocuments = res.sourceDocuments
} }
if (res.usedTools) {
options.socketIO.to(options.socketIOClientId).emit('usedTools', res.usedTools)
usedTools = res.usedTools
}
} else { } else {
res = await executor.invoke({ input }, { callbacks: [loggerHandler, ...callbacks] }) res = await executor.invoke({ input }, { callbacks: [loggerHandler, ...callbacks] })
if (res.sourceDocuments) { if (res.sourceDocuments) {
sourceDocuments = res.sourceDocuments sourceDocuments = res.sourceDocuments
} }
if (res.usedTools) {
usedTools = res.usedTools
}
} }
await memory.addChatMessages( await memory.addChatMessages(
@ -126,7 +134,20 @@ class OpenAIFunctionAgent_Agents implements INode {
this.sessionId this.sessionId
) )
return sourceDocuments.length ? { text: res?.output, sourceDocuments: flatten(sourceDocuments) } : res?.output let finalRes = res?.output
if (sourceDocuments.length || usedTools.length) {
finalRes = { text: res?.output }
if (sourceDocuments.length) {
finalRes.sourceDocuments = flatten(sourceDocuments)
}
if (usedTools.length) {
finalRes.usedTools = usedTools
}
return finalRes
}
return finalRes
} }
} }

View File

@ -7,7 +7,7 @@ import { Tool } from '@langchain/core/tools'
import { ChatPromptTemplate, HumanMessagePromptTemplate, MessagesPlaceholder } from '@langchain/core/prompts' import { ChatPromptTemplate, HumanMessagePromptTemplate, MessagesPlaceholder } from '@langchain/core/prompts'
import { formatLogToMessage } from 'langchain/agents/format_scratchpad/log_to_message' import { formatLogToMessage } from 'langchain/agents/format_scratchpad/log_to_message'
import { getBaseClasses } from '../../../src/utils' import { getBaseClasses } from '../../../src/utils'
import { FlowiseMemory, ICommonObject, IMessage, INode, INodeData, INodeParams } from '../../../src/Interface' import { FlowiseMemory, ICommonObject, IMessage, INode, INodeData, INodeParams, IUsedTool } from '../../../src/Interface'
import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler'
import { AgentExecutor, XMLAgentOutputParser } from '../../../src/agents' import { AgentExecutor, XMLAgentOutputParser } from '../../../src/agents'
import { Moderation, checkInputs } from '../../moderation/Moderation' import { Moderation, checkInputs } from '../../moderation/Moderation'
@ -48,6 +48,7 @@ class XMLAgent_Agents implements INode {
baseClasses: string[] baseClasses: string[]
inputs: INodeParams[] inputs: INodeParams[]
sessionId?: string sessionId?: string
badge?: string
constructor(fields?: { sessionId?: string }) { constructor(fields?: { sessionId?: string }) {
this.label = 'XML Agent' this.label = 'XML Agent'
@ -56,6 +57,7 @@ class XMLAgent_Agents implements INode {
this.type = 'XMLAgent' this.type = 'XMLAgent'
this.category = 'Agents' this.category = 'Agents'
this.icon = 'xmlagent.svg' this.icon = 'xmlagent.svg'
this.badge = 'NEW'
this.description = `Agent that is designed for LLMs that are good for reasoning/writing XML (e.g: Anthropic Claude)` this.description = `Agent that is designed for LLMs that are good for reasoning/writing XML (e.g: Anthropic Claude)`
this.baseClasses = [this.type, ...getBaseClasses(AgentExecutor)] this.baseClasses = [this.type, ...getBaseClasses(AgentExecutor)]
this.inputs = [ this.inputs = [
@ -121,6 +123,7 @@ class XMLAgent_Agents implements INode {
let res: ChainValues = {} let res: ChainValues = {}
let sourceDocuments: ICommonObject[] = [] let sourceDocuments: ICommonObject[] = []
let usedTools: IUsedTool[] = []
if (options.socketIO && options.socketIOClientId) { if (options.socketIO && options.socketIOClientId) {
const handler = new CustomChainHandler(options.socketIO, options.socketIOClientId) const handler = new CustomChainHandler(options.socketIO, options.socketIOClientId)
@ -129,11 +132,18 @@ class XMLAgent_Agents implements INode {
options.socketIO.to(options.socketIOClientId).emit('sourceDocuments', flatten(res.sourceDocuments)) options.socketIO.to(options.socketIOClientId).emit('sourceDocuments', flatten(res.sourceDocuments))
sourceDocuments = res.sourceDocuments sourceDocuments = res.sourceDocuments
} }
if (res.usedTools) {
options.socketIO.to(options.socketIOClientId).emit('usedTools', res.usedTools)
usedTools = res.usedTools
}
} else { } else {
res = await executor.invoke({ input }, { callbacks: [loggerHandler, ...callbacks] }) res = await executor.invoke({ input }, { callbacks: [loggerHandler, ...callbacks] })
if (res.sourceDocuments) { if (res.sourceDocuments) {
sourceDocuments = res.sourceDocuments sourceDocuments = res.sourceDocuments
} }
if (res.usedTools) {
usedTools = res.usedTools
}
} }
await memory.addChatMessages( await memory.addChatMessages(
@ -150,7 +160,20 @@ class XMLAgent_Agents implements INode {
this.sessionId this.sessionId
) )
return sourceDocuments.length ? { text: res?.output, sourceDocuments: flatten(sourceDocuments) } : res?.output let finalRes = res?.output
if (sourceDocuments.length || usedTools.length) {
finalRes = { text: res?.output }
if (sourceDocuments.length) {
finalRes.sourceDocuments = flatten(sourceDocuments)
}
if (usedTools.length) {
finalRes.usedTools = usedTools
}
return finalRes
}
return finalRes
} }
} }

View File

@ -1,8 +1,36 @@
import { ChatCompletionResponse, ToolCalls as MistralAIToolCalls } from '@mistralai/mistralai'
import { BaseCache } from '@langchain/core/caches' import { BaseCache } from '@langchain/core/caches'
import { ChatMistralAI, ChatMistralAIInput } from '@langchain/mistralai' import { CallbackManagerForLLMRun } from '@langchain/core/callbacks/manager'
import { NewTokenIndices } from '@langchain/core/callbacks/base'
import { ChatGeneration, ChatGenerationChunk, ChatResult } from '@langchain/core/outputs'
import {
MessageType,
type BaseMessage,
MessageContent,
AIMessage,
HumanMessage,
HumanMessageChunk,
AIMessageChunk,
ToolMessageChunk,
ChatMessageChunk
} from '@langchain/core/messages'
import { ChatMistralAI as LangchainChatMistralAI, ChatMistralAIInput } from '@langchain/mistralai'
import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface'
import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils'
interface TokenUsage {
completionTokens?: number
promptTokens?: number
totalTokens?: number
}
type MistralAIInputMessage = {
role: string
name?: string
content: string | string[]
tool_calls?: MistralAIToolCalls[] | any[]
}
class ChatMistral_ChatModels implements INode { class ChatMistral_ChatModels implements INode {
label: string label: string
name: string name: string
@ -135,4 +163,243 @@ class ChatMistral_ChatModels implements INode {
} }
} }
class ChatMistralAI extends LangchainChatMistralAI {
async _generate(
messages: BaseMessage[],
options?: this['ParsedCallOptions'],
runManager?: CallbackManagerForLLMRun
): Promise<ChatResult> {
const tokenUsage: TokenUsage = {}
const params = this.invocationParams(options)
const mistralMessages = this.convertMessagesToMistralMessages(messages)
const input = {
...params,
messages: mistralMessages
}
// Handle streaming
if (this.streaming) {
const stream = this._streamResponseChunks(messages, options, runManager)
const finalChunks: Record<number, ChatGenerationChunk> = {}
for await (const chunk of stream) {
const index = (chunk.generationInfo as NewTokenIndices)?.completion ?? 0
if (finalChunks[index] === undefined) {
finalChunks[index] = chunk
} else {
finalChunks[index] = finalChunks[index].concat(chunk)
}
}
const generations = Object.entries(finalChunks)
.sort(([aKey], [bKey]) => parseInt(aKey, 10) - parseInt(bKey, 10))
.map(([_, value]) => value)
return { generations, llmOutput: { estimatedTokenUsage: tokenUsage } }
}
// Not streaming, so we can just call the API once.
const response = await this.completionWithRetry(input, false)
const { completion_tokens: completionTokens, prompt_tokens: promptTokens, total_tokens: totalTokens } = response?.usage ?? {}
if (completionTokens) {
tokenUsage.completionTokens = (tokenUsage.completionTokens ?? 0) + completionTokens
}
if (promptTokens) {
tokenUsage.promptTokens = (tokenUsage.promptTokens ?? 0) + promptTokens
}
if (totalTokens) {
tokenUsage.totalTokens = (tokenUsage.totalTokens ?? 0) + totalTokens
}
const generations: ChatGeneration[] = []
for (const part of response?.choices ?? []) {
if ('delta' in part) {
throw new Error('Delta not supported in non-streaming mode.')
}
if (!('message' in part)) {
throw new Error('No message found in the choice.')
}
const text = part.message?.content ?? ''
const generation: ChatGeneration = {
text,
message: this.mistralAIResponseToChatMessage(part)
}
if (part.finish_reason) {
generation.generationInfo = { finish_reason: part.finish_reason }
}
generations.push(generation)
}
return {
generations,
llmOutput: { tokenUsage }
}
}
async *_streamResponseChunks(
messages: BaseMessage[],
options?: this['ParsedCallOptions'],
runManager?: CallbackManagerForLLMRun
): AsyncGenerator<ChatGenerationChunk> {
const mistralMessages = this.convertMessagesToMistralMessages(messages)
const params = this.invocationParams(options)
const input = {
...params,
messages: mistralMessages
}
const streamIterable = await this.completionWithRetry(input, true)
for await (const data of streamIterable) {
const choice = data?.choices[0]
if (!choice || !('delta' in choice)) {
continue
}
const { delta } = choice
if (!delta) {
continue
}
const newTokenIndices = {
prompt: 0,
completion: choice.index ?? 0
}
const message = this._convertDeltaToMessageChunk(delta)
if (message === null) {
// Do not yield a chunk if the message is empty
continue
}
const generationChunk = new ChatGenerationChunk({
message,
text: delta.content ?? '',
generationInfo: newTokenIndices
})
yield generationChunk
void runManager?.handleLLMNewToken(generationChunk.text ?? '', newTokenIndices, undefined, undefined, undefined, {
chunk: generationChunk
})
}
if (options?.signal?.aborted) {
throw new Error('AbortError')
}
}
_convertDeltaToMessageChunk(delta: {
role?: string | undefined
content?: string | undefined
tool_calls?: MistralAIToolCalls[] | undefined
}) {
if (!delta.content && !delta.tool_calls) {
return null
}
// Our merge additional kwargs util function will throw unless there
// is an index key in each tool object (as seen in OpenAI's) so we
// need to insert it here.
const toolCallsWithIndex = delta.tool_calls?.length
? delta.tool_calls?.map((toolCall, index) => ({
...toolCall,
index
}))
: undefined
let role = 'assistant'
if (delta.role) {
role = delta.role
} else if (toolCallsWithIndex) {
role = 'tool'
}
const content = delta.content ?? ''
let additional_kwargs
if (toolCallsWithIndex) {
additional_kwargs = {
tool_calls: toolCallsWithIndex
}
} else {
additional_kwargs = {}
}
if (role === 'user') {
return new HumanMessageChunk({ content })
} else if (role === 'assistant') {
return new AIMessageChunk({ content, additional_kwargs })
} else if (role === 'tool') {
return new ToolMessageChunk({
content,
additional_kwargs,
tool_call_id: toolCallsWithIndex?.[0].id ?? ''
})
} else {
return new ChatMessageChunk({ content, role })
}
}
convertMessagesToMistralMessages(messages: Array<BaseMessage>): Array<MistralAIInputMessage> {
const getRole = (role: MessageType) => {
switch (role) {
case 'human':
return 'user'
case 'ai':
return 'assistant'
case 'tool':
return 'tool'
case 'function':
return 'function'
case 'system':
return 'system'
default:
throw new Error(`Unknown message type: ${role}`)
}
}
const getContent = (content: MessageContent): string => {
if (typeof content === 'string') {
return content
}
throw new Error(`ChatMistralAI does not support non text message content. Received: ${JSON.stringify(content, null, 2)}`)
}
const mistralMessages = []
for (const msg of messages) {
const msgObj: MistralAIInputMessage = {
role: getRole(msg._getType()),
content: getContent(msg.content)
}
if (getRole(msg._getType()) === 'tool') {
msgObj.role = 'assistant'
msgObj.tool_calls = msg.additional_kwargs?.tool_calls ?? []
} else if (getRole(msg._getType()) === 'function') {
msgObj.role = 'tool'
msgObj.name = msg.name
}
mistralMessages.push(msgObj)
}
return mistralMessages
}
mistralAIResponseToChatMessage(choice: ChatCompletionResponse['choices'][0]): BaseMessage {
const { message } = choice
// MistralAI SDK does not include tool_calls in the non
// streaming return type, so we need to extract it like this
// to satisfy typescript.
let toolCalls: MistralAIToolCalls[] = []
if ('tool_calls' in message) {
toolCalls = message.tool_calls as MistralAIToolCalls[]
}
switch (message.role) {
case 'assistant':
return new AIMessage({
content: message.content ?? '',
additional_kwargs: {
tool_calls: toolCalls
}
})
default:
return new HumanMessage(message.content ?? '')
}
}
}
module.exports = { nodeClass: ChatMistral_ChatModels } module.exports = { nodeClass: ChatMistral_ChatModels }

View File

@ -38,9 +38,10 @@
"@langchain/community": "^0.0.39", "@langchain/community": "^0.0.39",
"@langchain/google-genai": "^0.0.10", "@langchain/google-genai": "^0.0.10",
"@langchain/groq": "^0.0.2", "@langchain/groq": "^0.0.2",
"@langchain/mistralai": "^0.0.7", "@langchain/mistralai": "^0.0.11",
"@langchain/openai": "^0.0.14", "@langchain/openai": "^0.0.14",
"@langchain/pinecone": "^0.0.3", "@langchain/pinecone": "^0.0.3",
"@mistralai/mistralai": "0.1.3",
"@notionhq/client": "^2.2.8", "@notionhq/client": "^2.2.8",
"@opensearch-project/opensearch": "^1.2.0", "@opensearch-project/opensearch": "^1.2.0",
"@pinecone-database/pinecone": "^2.0.1", "@pinecone-database/pinecone": "^2.0.1",
@ -70,7 +71,7 @@
"ioredis": "^5.3.2", "ioredis": "^5.3.2",
"jsdom": "^22.1.0", "jsdom": "^22.1.0",
"jsonpointer": "^5.0.1", "jsonpointer": "^5.0.1",
"langchain": "^0.1.20", "langchain": "^0.1.26",
"langfuse": "3.3.1", "langfuse": "3.3.1",
"langfuse-langchain": "^3.3.1", "langfuse-langchain": "^3.3.1",
"langsmith": "0.1.6", "langsmith": "0.1.6",

View File

@ -20,6 +20,7 @@ import {
StoppingMethod StoppingMethod
} from 'langchain/agents' } from 'langchain/agents'
import { formatLogToString } from 'langchain/agents/format_scratchpad/log' import { formatLogToString } from 'langchain/agents/format_scratchpad/log'
import { IUsedTool } from './Interface'
export const SOURCE_DOCUMENTS_PREFIX = '\n\n----FLOWISE_SOURCE_DOCUMENTS----\n\n' export const SOURCE_DOCUMENTS_PREFIX = '\n\n----FLOWISE_SOURCE_DOCUMENTS----\n\n'
type AgentFinish = { type AgentFinish = {
@ -341,11 +342,13 @@ export class AgentExecutor extends BaseChain<ChainValues, AgentExecutorOutput> {
const steps: AgentStep[] = [] const steps: AgentStep[] = []
let iterations = 0 let iterations = 0
let sourceDocuments: Array<Document> = [] let sourceDocuments: Array<Document> = []
const usedTools: IUsedTool[] = []
const getOutput = async (finishStep: AgentFinish): Promise<AgentExecutorOutput> => { const getOutput = async (finishStep: AgentFinish): Promise<AgentExecutorOutput> => {
const { returnValues } = finishStep const { returnValues } = finishStep
const additional = await this.agent.prepareForOutput(returnValues, steps) const additional = await this.agent.prepareForOutput(returnValues, steps)
if (sourceDocuments.length) additional.sourceDocuments = flatten(sourceDocuments) if (sourceDocuments.length) additional.sourceDocuments = flatten(sourceDocuments)
if (usedTools.length) additional.usedTools = usedTools
if (this.returnIntermediateSteps) { if (this.returnIntermediateSteps) {
return { ...returnValues, intermediateSteps: steps, ...additional } return { ...returnValues, intermediateSteps: steps, ...additional }
@ -410,8 +413,8 @@ export class AgentExecutor extends BaseChain<ChainValues, AgentExecutorOutput> {
* - tags?: string[] * - tags?: string[]
* - flowConfig?: { sessionId?: string, chatId?: string, input?: string } * - flowConfig?: { sessionId?: string, chatId?: string, input?: string }
*/ */
observation = tool if (tool) {
? await (tool as any).call( observation = await (tool as any).call(
this.isXML && typeof action.toolInput === 'string' ? { input: action.toolInput } : action.toolInput, this.isXML && typeof action.toolInput === 'string' ? { input: action.toolInput } : action.toolInput,
runManager?.getChild(), runManager?.getChild(),
undefined, undefined,
@ -421,7 +424,16 @@ export class AgentExecutor extends BaseChain<ChainValues, AgentExecutorOutput> {
input: this.input input: this.input
} }
) )
: `${action.tool} is not a valid tool, try another one.` usedTools.push({
tool: tool.name,
toolInput: action.toolInput as any,
toolOutput: observation.includes(SOURCE_DOCUMENTS_PREFIX)
? observation.split(SOURCE_DOCUMENTS_PREFIX)[0]
: observation
})
} else {
observation = `${action.tool} is not a valid tool, try another one.`
}
} catch (e) { } catch (e) {
if (e instanceof ToolInputParsingException) { if (e instanceof ToolInputParsingException) {
if (this.handleParsingErrors === true) { if (this.handleParsingErrors === true) {

View File

@ -905,7 +905,13 @@ export const isFlowValidForStream = (reactFlowNodes: IReactFlowNode[], endingNod
isValidChainOrAgent = !blacklistChains.includes(endingNodeData.name) isValidChainOrAgent = !blacklistChains.includes(endingNodeData.name)
} else if (endingNodeData.category === 'Agents') { } else if (endingNodeData.category === 'Agents') {
// Agent that are available to stream // Agent that are available to stream
const whitelistAgents = ['openAIFunctionAgent', 'csvAgent', 'airtableAgent', 'conversationalRetrievalAgent'] const whitelistAgents = [
'openAIFunctionAgent',
'mistralAIFunctionAgent',
'csvAgent',
'airtableAgent',
'conversationalRetrievalAgent'
]
isValidChainOrAgent = whitelistAgents.includes(endingNodeData.name) isValidChainOrAgent = whitelistAgents.includes(endingNodeData.name)
} else if (endingNodeData.category === 'Engine') { } else if (endingNodeData.category === 'Engine') {
const whitelistEngine = ['contextChatEngine', 'simpleChatEngine', 'queryEngine', 'subQuestionQueryEngine'] const whitelistEngine = ['contextChatEngine', 'simpleChatEngine', 'queryEngine', 'subQuestionQueryEngine']

View File

@ -23,7 +23,7 @@ import {
Typography Typography
} from '@mui/material' } from '@mui/material'
import { useTheme } from '@mui/material/styles' import { useTheme } from '@mui/material/styles'
import { IconCircleDot, IconDownload, IconSend, IconMicrophone, IconPhotoPlus, IconTrash, IconX } from '@tabler/icons' import { IconCircleDot, IconDownload, IconSend, IconMicrophone, IconPhotoPlus, IconTrash, IconX, IconTool } from '@tabler/icons'
import robotPNG from '@/assets/images/robot.png' import robotPNG from '@/assets/images/robot.png'
import userPNG from '@/assets/images/account.png' import userPNG from '@/assets/images/account.png'
import audioUploadSVG from '@/assets/images/wave-sound.jpg' import audioUploadSVG from '@/assets/images/wave-sound.jpg'
@ -340,6 +340,15 @@ export const ChatMessage = ({ open, chatflowid, isDialog, previews, setPreviews
}) })
} }
const updateLastMessageUsedTools = (usedTools) => {
setMessages((prevMessages) => {
let allMessages = [...cloneDeep(prevMessages)]
if (allMessages[allMessages.length - 1].type === 'userMessage') return allMessages
allMessages[allMessages.length - 1].usedTools = usedTools
return allMessages
})
}
// Handle errors // Handle errors
const handleError = (message = 'Oops! There seems to be an error. Please try again.') => { const handleError = (message = 'Oops! There seems to be an error. Please try again.') => {
message = message.replace(`Unable to parse JSON response from chat agent.\n\n`, '') message = message.replace(`Unable to parse JSON response from chat agent.\n\n`, '')
@ -596,6 +605,8 @@ export const ChatMessage = ({ open, chatflowid, isDialog, previews, setPreviews
socket.on('sourceDocuments', updateLastMessageSourceDocuments) socket.on('sourceDocuments', updateLastMessageSourceDocuments)
socket.on('usedTools', updateLastMessageUsedTools)
socket.on('token', updateLastMessage) socket.on('token', updateLastMessage)
} }
@ -770,6 +781,7 @@ export const ChatMessage = ({ open, chatflowid, isDialog, previews, setPreviews
sx={{ mr: 1, mt: 1 }} sx={{ mr: 1, mt: 1 }}
variant='outlined' variant='outlined'
clickable clickable
icon={<IconTool size={15} />}
onClick={() => onSourceDialogClick(tool, 'Used Tools')} onClick={() => onSourceDialogClick(tool, 'Used Tools')}
/> />
) )

View File

@ -1,9 +1,5 @@
lockfileVersion: '6.0' lockfileVersion: '6.0'
settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
onlyBuiltDependencies: onlyBuiltDependencies:
- faiss-node - faiss-node
- sqlite3 - sqlite3
@ -12,7 +8,6 @@ overrides:
'@qdrant/openapi-typescript-fetch': 1.2.1 '@qdrant/openapi-typescript-fetch': 1.2.1
importers: importers:
.: .:
devDependencies: devDependencies:
'@babel/preset-env': '@babel/preset-env':
@ -35,7 +30,7 @@ importers:
version: 8.10.0(eslint@8.57.0) version: 8.10.0(eslint@8.57.0)
eslint-config-react-app: eslint-config-react-app:
specifier: ^7.0.1 specifier: ^7.0.1
version: 7.0.1(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@8.57.0)(jest@27.5.1)(typescript@4.9.5) version: 7.0.1(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@8.57.0)(typescript@4.9.5)
eslint-plugin-jsx-a11y: eslint-plugin-jsx-a11y:
specifier: ^6.6.1 specifier: ^6.6.1
version: 6.8.0(eslint@8.57.0) version: 6.8.0(eslint@8.57.0)
@ -104,7 +99,7 @@ importers:
version: 8.12.2 version: 8.12.2
'@getzep/zep-cloud': '@getzep/zep-cloud':
specifier: npm:@getzep/zep-js@next specifier: npm:@getzep/zep-js@next
version: /@getzep/zep-js@2.0.0-rc.3(langchain@0.1.26) version: /@getzep/zep-js@2.0.0-rc.4(langchain@0.1.26)
'@getzep/zep-js': '@getzep/zep-js':
specifier: ^0.9.0 specifier: ^0.9.0
version: 0.9.0 version: 0.9.0
@ -139,14 +134,17 @@ importers:
specifier: ^0.0.2 specifier: ^0.0.2
version: 0.0.2 version: 0.0.2
'@langchain/mistralai': '@langchain/mistralai':
specifier: ^0.0.7 specifier: ^0.0.11
version: 0.0.7 version: 0.0.11
'@langchain/openai': '@langchain/openai':
specifier: ^0.0.14 specifier: ^0.0.14
version: 0.0.14 version: 0.0.14
'@langchain/pinecone': '@langchain/pinecone':
specifier: ^0.0.3 specifier: ^0.0.3
version: 0.0.3 version: 0.0.3
'@mistralai/mistralai':
specifier: 0.1.3
version: 0.1.3
'@notionhq/client': '@notionhq/client':
specifier: ^2.2.8 specifier: ^2.2.8
version: 2.2.14 version: 2.2.14
@ -235,7 +233,7 @@ importers:
specifier: ^5.0.1 specifier: ^5.0.1
version: 5.0.1 version: 5.0.1
langchain: langchain:
specifier: ^0.1.20 specifier: ^0.1.26
version: >- version: >-
0.1.26(@aws-sdk/client-bedrock-runtime@3.422.0)(@aws-sdk/client-dynamodb@3.529.1)(@aws-sdk/client-s3@3.529.1)(@aws-sdk/credential-provider-node@3.529.1)(@datastax/astra-db-ts@0.1.4)(@elastic/elasticsearch@8.12.2)(@getzep/zep-js@0.9.0)(@gomomento/sdk-core@1.68.1)(@gomomento/sdk@1.68.1)(@google-ai/generativelanguage@0.2.1)(@huggingface/inference@2.6.4)(@notionhq/client@2.2.14)(@opensearch-project/opensearch@1.2.0)(@pinecone-database/pinecone@2.1.0)(@qdrant/js-client-rest@1.8.1)(@supabase/supabase-js@2.39.8)(@upstash/redis@1.22.1)(@zilliz/milvus2-sdk-node@2.3.5)(apify-client@2.9.3)(assemblyai@4.3.2)(axios@1.6.2)(cheerio@1.0.0-rc.12)(chromadb@1.8.1)(cohere-ai@6.2.2)(d3-dsv@2.0.0)(faiss-node@0.2.3)(google-auth-library@9.6.3)(html-to-text@9.0.5)(ioredis@5.3.2)(jsdom@22.1.0)(lodash@4.17.21)(lunary@0.6.16)(mammoth@1.7.0)(mongodb@6.2.0)(mysql2@3.9.2)(notion-to-md@3.1.1)(pdf-parse@1.1.1)(pg@8.11.3)(playwright@1.42.1)(puppeteer@20.9.0)(pyodide@0.25.0)(redis@4.6.13)(replicate@0.12.3)(srt-parser-2@1.2.3)(typeorm@0.3.20)(weaviate-ts-client@1.6.0)(ws@8.16.0) 0.1.26(@aws-sdk/client-bedrock-runtime@3.422.0)(@aws-sdk/client-dynamodb@3.529.1)(@aws-sdk/client-s3@3.529.1)(@aws-sdk/credential-provider-node@3.529.1)(@datastax/astra-db-ts@0.1.4)(@elastic/elasticsearch@8.12.2)(@getzep/zep-js@0.9.0)(@gomomento/sdk-core@1.68.1)(@gomomento/sdk@1.68.1)(@google-ai/generativelanguage@0.2.1)(@huggingface/inference@2.6.4)(@notionhq/client@2.2.14)(@opensearch-project/opensearch@1.2.0)(@pinecone-database/pinecone@2.1.0)(@qdrant/js-client-rest@1.8.1)(@supabase/supabase-js@2.39.8)(@upstash/redis@1.22.1)(@zilliz/milvus2-sdk-node@2.3.5)(apify-client@2.9.3)(assemblyai@4.3.2)(axios@1.6.2)(cheerio@1.0.0-rc.12)(chromadb@1.8.1)(cohere-ai@6.2.2)(d3-dsv@2.0.0)(faiss-node@0.2.3)(google-auth-library@9.6.3)(html-to-text@9.0.5)(ioredis@5.3.2)(jsdom@22.1.0)(lodash@4.17.21)(lunary@0.6.16)(mammoth@1.7.0)(mongodb@6.2.0)(mysql2@3.9.2)(notion-to-md@3.1.1)(pdf-parse@1.1.1)(pg@8.11.3)(playwright@1.42.1)(puppeteer@20.9.0)(pyodide@0.25.0)(redis@4.6.13)(replicate@0.12.3)(srt-parser-2@1.2.3)(typeorm@0.3.20)(weaviate-ts-client@1.6.0)(ws@8.16.0)
langfuse: langfuse:
@ -273,7 +271,7 @@ importers:
version: 3.9.2 version: 3.9.2
node-fetch: node-fetch:
specifier: ^2.6.11 specifier: ^2.6.11
version: 2.7.0(encoding@0.1.13) version: 2.7.0
node-html-markdown: node-html-markdown:
specifier: ^1.3.0 specifier: ^1.3.0
version: 1.3.0 version: 1.3.0
@ -717,7 +715,6 @@ importers:
version: 1.0.7 version: 1.0.7
packages: packages:
/@aashutoshrathi/word-wrap@1.2.6: /@aashutoshrathi/word-wrap@1.2.6:
resolution: { integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== } resolution: { integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== }
engines: { node: '>=0.10.0' } engines: { node: '>=0.10.0' }
@ -749,7 +746,7 @@ packages:
digest-fetch: 1.3.0 digest-fetch: 1.3.0
form-data-encoder: 1.7.2 form-data-encoder: 1.7.2
formdata-node: 4.4.1 formdata-node: 4.4.1
node-fetch: 2.7.0(encoding@0.1.13) node-fetch: 2.7.0
web-streams-polyfill: 3.3.3 web-streams-polyfill: 3.3.3
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
@ -765,7 +762,7 @@ packages:
digest-fetch: 1.3.0 digest-fetch: 1.3.0
form-data-encoder: 1.7.2 form-data-encoder: 1.7.2
formdata-node: 4.4.1 formdata-node: 4.4.1
node-fetch: 2.7.0(encoding@0.1.13) node-fetch: 2.7.0
web-streams-polyfill: 3.3.3 web-streams-polyfill: 3.3.3
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
@ -1895,10 +1892,10 @@ packages:
'@babel/helpers': 7.24.0 '@babel/helpers': 7.24.0
'@babel/parser': 7.24.0 '@babel/parser': 7.24.0
'@babel/template': 7.24.0 '@babel/template': 7.24.0
'@babel/traverse': 7.24.0(supports-color@5.5.0) '@babel/traverse': 7.24.0
'@babel/types': 7.24.0 '@babel/types': 7.24.0
convert-source-map: 2.0.0 convert-source-map: 2.0.0
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
gensync: 1.0.0-beta.2 gensync: 1.0.0-beta.2
json5: 2.2.3 json5: 2.2.3
semver: 6.3.1 semver: 6.3.1
@ -1986,7 +1983,7 @@ packages:
'@babel/core': 7.24.0 '@babel/core': 7.24.0
'@babel/helper-compilation-targets': 7.23.6 '@babel/helper-compilation-targets': 7.23.6
'@babel/helper-plugin-utils': 7.24.0 '@babel/helper-plugin-utils': 7.24.0
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
lodash.debounce: 4.0.8 lodash.debounce: 4.0.8
resolve: 1.22.8 resolve: 1.22.8
transitivePeerDependencies: transitivePeerDependencies:
@ -2000,7 +1997,7 @@ packages:
'@babel/core': 7.24.0 '@babel/core': 7.24.0
'@babel/helper-compilation-targets': 7.23.6 '@babel/helper-compilation-targets': 7.23.6
'@babel/helper-plugin-utils': 7.24.0 '@babel/helper-plugin-utils': 7.24.0
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
lodash.debounce: 4.0.8 lodash.debounce: 4.0.8
resolve: 1.22.8 resolve: 1.22.8
transitivePeerDependencies: transitivePeerDependencies:
@ -2123,7 +2120,7 @@ packages:
engines: { node: '>=6.9.0' } engines: { node: '>=6.9.0' }
dependencies: dependencies:
'@babel/template': 7.24.0 '@babel/template': 7.24.0
'@babel/traverse': 7.24.0(supports-color@5.5.0) '@babel/traverse': 7.24.0
'@babel/types': 7.24.0 '@babel/types': 7.24.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -3200,6 +3197,23 @@ packages:
'@babel/parser': 7.24.0 '@babel/parser': 7.24.0
'@babel/types': 7.24.0 '@babel/types': 7.24.0
/@babel/traverse@7.24.0:
resolution: { integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw== }
engines: { node: '>=6.9.0' }
dependencies:
'@babel/code-frame': 7.23.5
'@babel/generator': 7.23.6
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-function-name': 7.23.0
'@babel/helper-hoist-variables': 7.22.5
'@babel/helper-split-export-declaration': 7.22.6
'@babel/parser': 7.24.0
'@babel/types': 7.24.0
debug: 4.3.4
globals: 11.12.0
transitivePeerDependencies:
- supports-color
/@babel/traverse@7.24.0(supports-color@5.5.0): /@babel/traverse@7.24.0(supports-color@5.5.0):
resolution: { integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw== } resolution: { integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw== }
engines: { node: '>=6.9.0' } engines: { node: '>=6.9.0' }
@ -3216,6 +3230,7 @@ packages:
globals: 11.12.0 globals: 11.12.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: false
/@babel/types@7.24.0: /@babel/types@7.24.0:
resolution: { integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w== } resolution: { integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w== }
@ -3532,7 +3547,7 @@ packages:
resolution: { integrity: sha512-/SXVuVnuU5b4dq8OFY4izG+dmGla185PcoqgK6+AJMpmOeY1QYVNbWtCwvSvoAANN5D/wV+EBU8+x7Vf9EphbA== } resolution: { integrity: sha512-/SXVuVnuU5b4dq8OFY4izG+dmGla185PcoqgK6+AJMpmOeY1QYVNbWtCwvSvoAANN5D/wV+EBU8+x7Vf9EphbA== }
engines: { node: '>=16' } engines: { node: '>=16' }
dependencies: dependencies:
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
hpagent: 1.2.0 hpagent: 1.2.0
ms: 2.1.3 ms: 2.1.3
secure-json-parse: 2.7.0 secure-json-parse: 2.7.0
@ -4058,7 +4073,7 @@ packages:
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
dependencies: dependencies:
ajv: 6.12.6 ajv: 6.12.6
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
espree: 9.6.1 espree: 9.6.1
globals: 13.24.0 globals: 13.24.0
ignore: 5.3.1 ignore: 5.3.1
@ -4120,12 +4135,12 @@ packages:
typescript: 5.4.2 typescript: 5.4.2
dev: false dev: false
/@getzep/zep-js@2.0.0-rc.3(langchain@0.1.26): /@getzep/zep-js@2.0.0-rc.4(langchain@0.1.26):
resolution: {integrity: sha512-rN5CVP9EEKKAK18Kqwt1fPKanDIxFCeooeq1YEYcoF4zMUIwBPIJCZ4l//0JgHw5Z/5TfRmdCA17Bbdhc/q6aA==} resolution: { integrity: sha512-QzL2UpeTCHDLa1K+EHfrrFdXa0vVrr5+xHNrn+Gn8u9nQfWqs+Tlfti+x2Ek1pg+Aut0RQC6YYOeez7UPDDvcQ== }
engines: { node: '>=18.0.0' } engines: { node: '>=18.0.0' }
peerDependencies: peerDependencies:
'@langchain/core': ^0.1.19 '@langchain/core': ~0.1.29
langchain: ^0.1.19 langchain: ~0.1.19
peerDependenciesMeta: peerDependenciesMeta:
'@langchain/core': '@langchain/core':
optional: true optional: true
@ -4259,7 +4274,7 @@ packages:
engines: { node: '>=10.10.0' } engines: { node: '>=10.10.0' }
dependencies: dependencies:
'@humanwhocodes/object-schema': 2.0.2 '@humanwhocodes/object-schema': 2.0.2
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
minimatch: 3.1.2 minimatch: 3.1.2
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -4648,7 +4663,7 @@ packages:
'@babel/preset-typescript': 7.18.6(@babel/core@7.24.0) '@babel/preset-typescript': 7.18.6(@babel/core@7.24.0)
'@babel/runtime': 7.24.0 '@babel/runtime': 7.24.0
'@babel/template': 7.24.0 '@babel/template': 7.24.0
'@babel/traverse': 7.24.0(supports-color@5.5.0) '@babel/traverse': 7.24.0
'@babel/types': 7.24.0 '@babel/types': 7.24.0
'@ladle/react-context': 1.0.1(react-dom@18.2.0)(react@18.2.0) '@ladle/react-context': 1.0.1(react-dom@18.2.0)(react@18.2.0)
'@vitejs/plugin-react': 3.1.0(vite@4.5.2) '@vitejs/plugin-react': 3.1.0(vite@4.5.2)
@ -4658,7 +4673,7 @@ packages:
classnames: 2.5.1 classnames: 2.5.1
commander: 9.5.0 commander: 9.5.0
cross-spawn: 7.0.3 cross-spawn: 7.0.3
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
default-browser: 3.1.0 default-browser: 3.1.0
express: 4.18.3 express: 4.18.3
get-port: 6.1.2 get-port: 6.1.2
@ -5050,14 +5065,16 @@ packages:
- encoding - encoding
dev: false dev: false
/@langchain/mistralai@0.0.7: /@langchain/mistralai@0.0.11:
resolution: {integrity: sha512-i0L463ojB9/LHSYo3MCYBWkCsb+qqNxD6PYRAJQ1fObSqLqpGIhRRIWegipIte8MFzIfREkOTiEQEbwIM1I7Wg==} resolution: { integrity: sha512-Vtfmi7+K2Y9XTrdz/9p6mqiotcSAsZsUr4eatkyh5a6aCi2pcp9TwWbrPe6QSZG5K7Fy2SnDbMLHZeD2TttJYA== }
engines: { node: '>=18' } engines: { node: '>=18' }
dependencies: dependencies:
'@langchain/core': 0.1.44 '@langchain/core': 0.1.44
'@mistralai/mistralai': 0.0.7 '@mistralai/mistralai': 0.1.3
zod: 3.22.4
zod-to-json-schema: 3.22.4(zod@3.22.4)
transitivePeerDependencies: transitivePeerDependencies:
- debug - encoding
dev: false dev: false
/@langchain/openai@0.0.14: /@langchain/openai@0.0.14:
@ -5139,7 +5156,7 @@ packages:
detect-libc: 2.0.2 detect-libc: 2.0.2
https-proxy-agent: 5.0.1 https-proxy-agent: 5.0.1
make-dir: 3.1.0 make-dir: 3.1.0
node-fetch: 2.7.0(encoding@0.1.13) node-fetch: 2.7.0
nopt: 5.0.0 nopt: 5.0.0
npmlog: 5.0.1 npmlog: 5.0.1
rimraf: 3.0.2 rimraf: 3.0.2
@ -5159,6 +5176,14 @@ packages:
- debug - debug
dev: false dev: false
/@mistralai/mistralai@0.1.3:
resolution: { integrity: sha512-WUHxC2xdeqX9PTXJEqdiNY54vT2ir72WSJrZTTBKRnkfhX6zIfCYA24faRlWjUB5WTpn+wfdGsTMl3ArijlXFA== }
dependencies:
node-fetch: 2.7.0
transitivePeerDependencies:
- encoding
dev: false
/@mongodb-js/saslprep@1.1.5: /@mongodb-js/saslprep@1.1.5:
resolution: { integrity: sha512-XLNOMH66KhJzUJNwT/qlMnS4WsNDWD5ASdyaSH3EtK+F4r/CFGa3jT4GNi4mfOitGvWXtdLgQJkQjxSVrio+jA== } resolution: { integrity: sha512-XLNOMH66KhJzUJNwT/qlMnS4WsNDWD5ASdyaSH3EtK+F4r/CFGa3jT4GNi4mfOitGvWXtdLgQJkQjxSVrio+jA== }
dependencies: dependencies:
@ -5427,7 +5452,7 @@ packages:
engines: { node: '>=12' } engines: { node: '>=12' }
dependencies: dependencies:
'@types/node-fetch': 2.6.2 '@types/node-fetch': 2.6.2
node-fetch: 2.7.0(encoding@0.1.13) node-fetch: 2.7.0
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
dev: false dev: false
@ -5751,7 +5776,7 @@ packages:
dependencies: dependencies:
'@oclif/core': 2.15.0(@types/node@20.11.26)(typescript@4.9.5) '@oclif/core': 2.15.0(@types/node@20.11.26)(typescript@4.9.5)
chalk: 4.1.2 chalk: 4.1.2
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
http-call: 5.3.0 http-call: 5.3.0
lodash.template: 4.5.0 lodash.template: 4.5.0
semver: 7.6.0 semver: 7.6.0
@ -5853,7 +5878,7 @@ packages:
'@octokit/request-error': 2.1.0 '@octokit/request-error': 2.1.0
'@octokit/types': 6.41.0 '@octokit/types': 6.41.0
is-plain-object: 5.0.0 is-plain-object: 5.0.0
node-fetch: 2.7.0(encoding@0.1.13) node-fetch: 2.7.0
universal-user-agent: 6.0.1 universal-user-agent: 6.0.1
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
@ -5881,7 +5906,7 @@ packages:
engines: { node: '>=10' } engines: { node: '>=10' }
dependencies: dependencies:
aws4: 1.12.0 aws4: 1.12.0
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
hpagent: 0.1.2 hpagent: 0.1.2
ms: 2.1.3 ms: 2.1.3
secure-json-parse: 2.7.0 secure-json-parse: 2.7.0
@ -6011,7 +6036,7 @@ packages:
typescript: typescript:
optional: true optional: true
dependencies: dependencies:
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
extract-zip: 2.0.1 extract-zip: 2.0.1
progress: 2.0.3 progress: 2.0.3
proxy-agent: 6.3.0 proxy-agent: 6.3.0
@ -7819,7 +7844,7 @@ packages:
/@types/node-fetch@2.6.11: /@types/node-fetch@2.6.11:
resolution: { integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g== } resolution: { integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g== }
dependencies: dependencies:
'@types/node': 18.19.23 '@types/node': 20.11.26
form-data: 4.0.0 form-data: 4.0.0
dev: false dev: false
@ -8108,7 +8133,7 @@ packages:
'@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/scope-manager': 5.62.0
'@typescript-eslint/type-utils': 5.62.0(eslint@8.57.0)(typescript@4.9.5) '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.0)(typescript@4.9.5)
'@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@4.9.5) '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@4.9.5)
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
eslint: 8.57.0 eslint: 8.57.0
graphemer: 1.4.0 graphemer: 1.4.0
ignore: 5.3.1 ignore: 5.3.1
@ -8146,7 +8171,7 @@ packages:
'@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/scope-manager': 5.62.0
'@typescript-eslint/types': 5.62.0 '@typescript-eslint/types': 5.62.0
'@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5)
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
eslint: 8.57.0 eslint: 8.57.0
typescript: 4.9.5 typescript: 4.9.5
transitivePeerDependencies: transitivePeerDependencies:
@ -8173,7 +8198,7 @@ packages:
dependencies: dependencies:
'@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5)
'@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@4.9.5) '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@4.9.5)
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
eslint: 8.57.0 eslint: 8.57.0
tsutils: 3.21.0(typescript@4.9.5) tsutils: 3.21.0(typescript@4.9.5)
typescript: 4.9.5 typescript: 4.9.5
@ -8197,7 +8222,7 @@ packages:
dependencies: dependencies:
'@typescript-eslint/types': 5.62.0 '@typescript-eslint/types': 5.62.0
'@typescript-eslint/visitor-keys': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
globby: 11.1.0 globby: 11.1.0
is-glob: 4.0.3 is-glob: 4.0.3
semver: 7.6.0 semver: 7.6.0
@ -8583,7 +8608,7 @@ packages:
resolution: { integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== } resolution: { integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== }
engines: { node: '>= 6.0.0' } engines: { node: '>= 6.0.0' }
dependencies: dependencies:
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -8591,7 +8616,7 @@ packages:
resolution: { integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== } resolution: { integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== }
engines: { node: '>= 14' } engines: { node: '>= 14' }
dependencies: dependencies:
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: false dev: false
@ -11383,7 +11408,7 @@ packages:
dependencies: dependencies:
form-data: 4.0.0 form-data: 4.0.0
js-base64: 3.7.2 js-base64: 3.7.2
node-fetch: 2.7.0(encoding@0.1.13) node-fetch: 2.7.0
qs: 6.11.2 qs: 6.11.2
url-join: 4.0.1 url-join: 4.0.1
transitivePeerDependencies: transitivePeerDependencies:
@ -11780,6 +11805,14 @@ packages:
resolution: { integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g== } resolution: { integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g== }
dev: false dev: false
/cross-fetch@3.1.8:
resolution: { integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== }
dependencies:
node-fetch: 2.7.0
transitivePeerDependencies:
- encoding
dev: false
/cross-fetch@3.1.8(encoding@0.1.13): /cross-fetch@3.1.8(encoding@0.1.13):
resolution: { integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== } resolution: { integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== }
dependencies: dependencies:
@ -11791,7 +11824,7 @@ packages:
/cross-fetch@4.0.0: /cross-fetch@4.0.0:
resolution: { integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g== } resolution: { integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g== }
dependencies: dependencies:
node-fetch: 2.7.0(encoding@0.1.13) node-fetch: 2.7.0
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
dev: false dev: false
@ -12278,6 +12311,16 @@ packages:
dependencies: dependencies:
ms: 2.0.0 ms: 2.0.0
/debug@3.2.7:
resolution: { integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== }
peerDependencies:
supports-color: '*'
peerDependenciesMeta:
supports-color:
optional: true
dependencies:
ms: 2.1.3
/debug@3.2.7(supports-color@5.5.0): /debug@3.2.7(supports-color@5.5.0):
resolution: { integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== } resolution: { integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== }
peerDependencies: peerDependencies:
@ -12288,6 +12331,18 @@ packages:
dependencies: dependencies:
ms: 2.1.3 ms: 2.1.3
supports-color: 5.5.0 supports-color: 5.5.0
dev: true
/debug@4.3.4:
resolution: { integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== }
engines: { node: '>=6.0' }
peerDependencies:
supports-color: '*'
peerDependenciesMeta:
supports-color:
optional: true
dependencies:
ms: 2.1.2
/debug@4.3.4(supports-color@5.5.0): /debug@4.3.4(supports-color@5.5.0):
resolution: { integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== } resolution: { integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== }
@ -12300,6 +12355,7 @@ packages:
dependencies: dependencies:
ms: 2.1.2 ms: 2.1.2
supports-color: 5.5.0 supports-color: 5.5.0
dev: false
/debug@4.3.4(supports-color@8.1.1): /debug@4.3.4(supports-color@8.1.1):
resolution: { integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== } resolution: { integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== }
@ -12964,7 +13020,7 @@ packages:
resolution: { integrity: sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q== } resolution: { integrity: sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q== }
dependencies: dependencies:
'@socket.io/component-emitter': 3.1.0 '@socket.io/component-emitter': 3.1.0
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
engine.io-parser: 5.2.2 engine.io-parser: 5.2.2
ws: 8.11.0 ws: 8.11.0
xmlhttprequest-ssl: 2.0.0 xmlhttprequest-ssl: 2.0.0
@ -12990,7 +13046,7 @@ packages:
base64id: 2.0.0 base64id: 2.0.0
cookie: 0.4.2 cookie: 0.4.2
cors: 2.8.5 cors: 2.8.5
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
engine.io-parser: 5.2.2 engine.io-parser: 5.2.2
ws: 8.11.0 ws: 8.11.0
transitivePeerDependencies: transitivePeerDependencies:
@ -13368,10 +13424,45 @@ packages:
- supports-color - supports-color
dev: true dev: true
/eslint-config-react-app@7.0.1(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@8.57.0)(typescript@4.9.5):
resolution: { integrity: sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA== }
engines: { node: '>=14.0.0' }
peerDependencies:
eslint: ^8.0.0
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
'@babel/core': 7.24.0
'@babel/eslint-parser': 7.23.10(@babel/core@7.24.0)(eslint@8.57.0)
'@rushstack/eslint-patch': 1.7.2
'@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@4.9.5)
'@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@4.9.5)
babel-preset-react-app: 10.0.1
confusing-browser-globals: 1.0.11
eslint: 8.57.0
eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@8.57.0)
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)
eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.57.0)(typescript@4.9.5)
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)
eslint-plugin-testing-library: 5.11.1(eslint@8.57.0)(typescript@4.9.5)
typescript: 4.9.5
transitivePeerDependencies:
- '@babel/plugin-syntax-flow'
- '@babel/plugin-transform-react-jsx'
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- jest
- supports-color
dev: true
/eslint-import-resolver-node@0.3.9: /eslint-import-resolver-node@0.3.9:
resolution: { integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== } resolution: { integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== }
dependencies: dependencies:
debug: 3.2.7(supports-color@5.5.0) debug: 3.2.7
is-core-module: 2.13.1 is-core-module: 2.13.1
resolve: 1.22.8 resolve: 1.22.8
transitivePeerDependencies: transitivePeerDependencies:
@ -13400,7 +13491,7 @@ packages:
optional: true optional: true
dependencies: dependencies:
'@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@4.9.5) '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@4.9.5)
debug: 3.2.7(supports-color@5.5.0) debug: 3.2.7
eslint: 8.57.0 eslint: 8.57.0
eslint-import-resolver-node: 0.3.9 eslint-import-resolver-node: 0.3.9
transitivePeerDependencies: transitivePeerDependencies:
@ -13437,7 +13528,7 @@ packages:
array.prototype.findlastindex: 1.2.4 array.prototype.findlastindex: 1.2.4
array.prototype.flat: 1.3.2 array.prototype.flat: 1.3.2
array.prototype.flatmap: 1.3.2 array.prototype.flatmap: 1.3.2
debug: 3.2.7(supports-color@5.5.0) debug: 3.2.7
doctrine: 2.1.0 doctrine: 2.1.0
eslint: 8.57.0 eslint: 8.57.0
eslint-import-resolver-node: 0.3.9 eslint-import-resolver-node: 0.3.9
@ -13479,6 +13570,27 @@ packages:
- typescript - typescript
dev: true dev: true
/eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.57.0)(typescript@4.9.5):
resolution: { integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ== }
engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 }
peerDependencies:
'@typescript-eslint/eslint-plugin': ^4.0.0 || ^5.0.0
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
jest: '*'
peerDependenciesMeta:
'@typescript-eslint/eslint-plugin':
optional: true
jest:
optional: true
dependencies:
'@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@4.9.5)
'@typescript-eslint/experimental-utils': 5.62.0(eslint@8.57.0)(typescript@4.9.5)
eslint: 8.57.0
transitivePeerDependencies:
- supports-color
- typescript
dev: true
/eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): /eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0):
resolution: { integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA== } resolution: { integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA== }
engines: { node: '>=4.0' } engines: { node: '>=4.0' }
@ -13658,7 +13770,7 @@ packages:
ajv: 6.12.6 ajv: 6.12.6
chalk: 4.1.2 chalk: 4.1.2
cross-spawn: 7.0.3 cross-spawn: 7.0.3
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
doctrine: 3.0.0 doctrine: 3.0.0
escape-string-regexp: 4.0.0 escape-string-regexp: 4.0.0
eslint-scope: 7.2.2 eslint-scope: 7.2.2
@ -14121,7 +14233,7 @@ packages:
engines: { node: '>= 10.17.0' } engines: { node: '>= 10.17.0' }
hasBin: true hasBin: true
dependencies: dependencies:
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
get-stream: 5.2.0 get-stream: 5.2.0
yauzl: 2.10.0 yauzl: 2.10.0
optionalDependencies: optionalDependencies:
@ -14261,7 +14373,7 @@ packages:
/fbjs@3.0.5: /fbjs@3.0.5:
resolution: { integrity: sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg== } resolution: { integrity: sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg== }
dependencies: dependencies:
cross-fetch: 3.1.8(encoding@0.1.13) cross-fetch: 3.1.8
fbjs-css-vars: 1.0.2 fbjs-css-vars: 1.0.2
loose-envify: 1.4.0 loose-envify: 1.4.0
object-assign: 4.1.1 object-assign: 4.1.1
@ -14999,7 +15111,7 @@ packages:
extend: 3.0.2 extend: 3.0.2
https-proxy-agent: 5.0.1 https-proxy-agent: 5.0.1
is-stream: 2.0.1 is-stream: 2.0.1
node-fetch: 2.7.0(encoding@0.1.13) node-fetch: 2.7.0
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
- supports-color - supports-color
@ -15012,7 +15124,7 @@ packages:
extend: 3.0.2 extend: 3.0.2
https-proxy-agent: 7.0.4 https-proxy-agent: 7.0.4
is-stream: 2.0.1 is-stream: 2.0.1
node-fetch: 2.7.0(encoding@0.1.13) node-fetch: 2.7.0
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
- supports-color - supports-color
@ -15120,7 +15232,7 @@ packages:
dependencies: dependencies:
basic-ftp: 5.0.5 basic-ftp: 5.0.5
data-uri-to-buffer: 6.0.2 data-uri-to-buffer: 6.0.2
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
fs-extra: 11.2.0 fs-extra: 11.2.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -15469,7 +15581,7 @@ packages:
fast-text-encoding: 1.0.6 fast-text-encoding: 1.0.6
google-auth-library: 8.9.0 google-auth-library: 8.9.0
is-stream-ended: 0.1.4 is-stream-ended: 0.1.4
node-fetch: 2.7.0(encoding@0.1.13) node-fetch: 2.7.0
object-hash: 3.0.0 object-hash: 3.0.0
proto3-json-serializer: 1.1.1 proto3-json-serializer: 1.1.1
protobufjs: 7.2.4 protobufjs: 7.2.4
@ -15527,7 +15639,7 @@ packages:
graphql: 14 - 16 graphql: 14 - 16
dependencies: dependencies:
'@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1)
cross-fetch: 3.1.8(encoding@0.1.13) cross-fetch: 3.1.8
extract-files: 9.0.0 extract-files: 9.0.0
form-data: 3.0.1 form-data: 3.0.1
graphql: 16.8.1 graphql: 16.8.1
@ -15560,7 +15672,7 @@ packages:
digest-fetch: 1.3.0 digest-fetch: 1.3.0
form-data-encoder: 1.7.2 form-data-encoder: 1.7.2
formdata-node: 4.4.1 formdata-node: 4.4.1
node-fetch: 2.7.0(encoding@0.1.13) node-fetch: 2.7.0
web-streams-polyfill: 3.3.3 web-streams-polyfill: 3.3.3
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
@ -16127,7 +16239,7 @@ packages:
engines: { node: '>=8.0.0' } engines: { node: '>=8.0.0' }
dependencies: dependencies:
content-type: 1.0.5 content-type: 1.0.5
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
is-retry-allowed: 1.2.0 is-retry-allowed: 1.2.0
is-stream: 2.0.1 is-stream: 2.0.1
parse-json: 4.0.0 parse-json: 4.0.0
@ -16170,7 +16282,7 @@ packages:
dependencies: dependencies:
'@tootallnate/once': 1.1.2 '@tootallnate/once': 1.1.2
agent-base: 6.0.2 agent-base: 6.0.2
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -16180,7 +16292,7 @@ packages:
dependencies: dependencies:
'@tootallnate/once': 2.0.0 '@tootallnate/once': 2.0.0
agent-base: 6.0.2 agent-base: 6.0.2
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -16189,7 +16301,7 @@ packages:
engines: { node: '>= 14' } engines: { node: '>= 14' }
dependencies: dependencies:
agent-base: 7.1.0 agent-base: 7.1.0
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: false dev: false
@ -16237,7 +16349,7 @@ packages:
engines: { node: '>= 6' } engines: { node: '>= 6' }
dependencies: dependencies:
agent-base: 6.0.2 agent-base: 6.0.2
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -16246,7 +16358,7 @@ packages:
engines: { node: '>= 14' } engines: { node: '>= 14' }
dependencies: dependencies:
agent-base: 7.1.0 agent-base: 7.1.0
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: false dev: false
@ -16485,7 +16597,7 @@ packages:
dependencies: dependencies:
'@ioredis/commands': 1.2.0 '@ioredis/commands': 1.2.0
cluster-key-slot: 1.1.2 cluster-key-slot: 1.1.2
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
denque: 2.1.0 denque: 2.1.0
lodash.defaults: 4.2.0 lodash.defaults: 4.2.0
lodash.isarguments: 3.1.0 lodash.isarguments: 3.1.0
@ -17162,7 +17274,7 @@ packages:
/isomorphic-fetch@3.0.0: /isomorphic-fetch@3.0.0:
resolution: { integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA== } resolution: { integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA== }
dependencies: dependencies:
node-fetch: 2.7.0(encoding@0.1.13) node-fetch: 2.7.0
whatwg-fetch: 3.6.20 whatwg-fetch: 3.6.20
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
@ -17199,7 +17311,7 @@ packages:
resolution: { integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== } resolution: { integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== }
engines: { node: '>=10' } engines: { node: '>=10' }
dependencies: dependencies:
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
istanbul-lib-coverage: 3.2.2 istanbul-lib-coverage: 3.2.2
source-map: 0.6.1 source-map: 0.6.1
transitivePeerDependencies: transitivePeerDependencies:
@ -17678,7 +17790,7 @@ packages:
'@babel/core': 7.24.0 '@babel/core': 7.24.0
'@babel/generator': 7.23.6 '@babel/generator': 7.23.6
'@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.0) '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.0)
'@babel/traverse': 7.24.0(supports-color@5.5.0) '@babel/traverse': 7.24.0
'@babel/types': 7.24.0 '@babel/types': 7.24.0
'@jest/transform': 27.5.1 '@jest/transform': 27.5.1
'@jest/types': 27.5.1 '@jest/types': 27.5.1
@ -18267,8 +18379,8 @@ packages:
resolution: { integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== } resolution: { integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== }
dev: false dev: false
? /langchain@0.1.26(@aws-sdk/client-bedrock-runtime@3.422.0)(@aws-sdk/client-dynamodb@3.529.1)(@aws-sdk/client-s3@3.529.1)(@aws-sdk/credential-provider-node@3.529.1)(@datastax/astra-db-ts@0.1.4)(@elastic/elasticsearch@8.12.2)(@getzep/zep-js@0.9.0)(@gomomento/sdk-core@1.68.1)(@gomomento/sdk@1.68.1)(@google-ai/generativelanguage@0.2.1)(@huggingface/inference@2.6.4)(@notionhq/client@2.2.14)(@opensearch-project/opensearch@1.2.0)(@pinecone-database/pinecone@2.1.0)(@qdrant/js-client-rest@1.8.1)(@supabase/supabase-js@2.39.8)(@upstash/redis@1.22.1)(@zilliz/milvus2-sdk-node@2.3.5)(apify-client@2.9.3)(assemblyai@4.3.2)(axios@1.6.2)(cheerio@1.0.0-rc.12)(chromadb@1.8.1)(cohere-ai@6.2.2)(d3-dsv@2.0.0)(faiss-node@0.2.3)(google-auth-library@9.6.3)(html-to-text@9.0.5)(ioredis@5.3.2)(jsdom@22.1.0)(lodash@4.17.21)(lunary@0.6.16)(mammoth@1.7.0)(mongodb@6.2.0)(mysql2@3.9.2)(notion-to-md@3.1.1)(pdf-parse@1.1.1)(pg@8.11.3)(playwright@1.42.1)(puppeteer@20.9.0)(pyodide@0.25.0)(redis@4.6.13)(replicate@0.12.3)(srt-parser-2@1.2.3)(typeorm@0.3.20)(weaviate-ts-client@1.6.0)(ws@8.16.0) /langchain@0.1.26(@aws-sdk/client-bedrock-runtime@3.422.0)(@aws-sdk/client-dynamodb@3.529.1)(@aws-sdk/client-s3@3.529.1)(@aws-sdk/credential-provider-node@3.529.1)(@datastax/astra-db-ts@0.1.4)(@elastic/elasticsearch@8.12.2)(@getzep/zep-js@0.9.0)(@gomomento/sdk-core@1.68.1)(@gomomento/sdk@1.68.1)(@google-ai/generativelanguage@0.2.1)(@huggingface/inference@2.6.4)(@notionhq/client@2.2.14)(@opensearch-project/opensearch@1.2.0)(@pinecone-database/pinecone@2.1.0)(@qdrant/js-client-rest@1.8.1)(@supabase/supabase-js@2.39.8)(@upstash/redis@1.22.1)(@zilliz/milvus2-sdk-node@2.3.5)(apify-client@2.9.3)(assemblyai@4.3.2)(axios@1.6.2)(cheerio@1.0.0-rc.12)(chromadb@1.8.1)(cohere-ai@6.2.2)(d3-dsv@2.0.0)(faiss-node@0.2.3)(google-auth-library@9.6.3)(html-to-text@9.0.5)(ioredis@5.3.2)(jsdom@22.1.0)(lodash@4.17.21)(lunary@0.6.16)(mammoth@1.7.0)(mongodb@6.2.0)(mysql2@3.9.2)(notion-to-md@3.1.1)(pdf-parse@1.1.1)(pg@8.11.3)(playwright@1.42.1)(puppeteer@20.9.0)(pyodide@0.25.0)(redis@4.6.13)(replicate@0.12.3)(srt-parser-2@1.2.3)(typeorm@0.3.20)(weaviate-ts-client@1.6.0)(ws@8.16.0):
: resolution: {integrity: sha512-2hCXDev/KkBKNHCrxqq7XQxAp/kpjMtwlIuKBzaSW8gM+BOrh8q6B9PM3ItbvG4s29JCW7xlJtIEO3LaWChwkQ==} resolution: { integrity: sha512-2hCXDev/KkBKNHCrxqq7XQxAp/kpjMtwlIuKBzaSW8gM+BOrh8q6B9PM3ItbvG4s29JCW7xlJtIEO3LaWChwkQ== }
engines: { node: '>=18' } engines: { node: '>=18' }
peerDependencies: peerDependencies:
'@aws-sdk/client-s3': ^3.310.0 '@aws-sdk/client-s3': ^3.310.0
@ -18740,7 +18852,7 @@ packages:
dependencies: dependencies:
chalk: 5.3.0 chalk: 5.3.0
commander: 11.0.0 commander: 11.0.0
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
execa: 7.2.0 execa: 7.2.0
lilconfig: 2.1.0 lilconfig: 2.1.0
listr2: 6.6.1 listr2: 6.6.1
@ -19810,6 +19922,27 @@ packages:
resolution: { integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== } resolution: { integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== }
engines: { node: '>= 0.6' } engines: { node: '>= 0.6' }
/mem-fs-editor@9.7.0:
resolution: { integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg== }
engines: { node: '>=12.10.0' }
peerDependencies:
mem-fs: ^2.1.0
peerDependenciesMeta:
mem-fs:
optional: true
dependencies:
binaryextensions: 4.19.0
commondir: 1.0.1
deep-extend: 0.6.0
ejs: 3.1.9
globby: 11.1.0
isbinaryfile: 5.0.2
minimatch: 7.4.6
multimatch: 5.0.0
normalize-path: 3.0.0
textextensions: 5.16.0
dev: true
/mem-fs-editor@9.7.0(mem-fs@2.3.0): /mem-fs-editor@9.7.0(mem-fs@2.3.0):
resolution: { integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg== } resolution: { integrity: sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg== }
engines: { node: '>=12.10.0' } engines: { node: '>=12.10.0' }
@ -20167,7 +20300,7 @@ packages:
/micromark@2.11.4: /micromark@2.11.4:
resolution: { integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA== } resolution: { integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA== }
dependencies: dependencies:
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
parse-entities: 2.0.0 parse-entities: 2.0.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -20177,7 +20310,7 @@ packages:
resolution: { integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA== } resolution: { integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA== }
dependencies: dependencies:
'@types/debug': 4.1.12 '@types/debug': 4.1.12
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
decode-named-character-reference: 1.0.2 decode-named-character-reference: 1.0.2
micromark-core-commonmark: 1.1.0 micromark-core-commonmark: 1.1.0
micromark-factory-space: 1.1.0 micromark-factory-space: 1.1.0
@ -20808,6 +20941,17 @@ packages:
resolution: { integrity: sha512-DRI60hzo2oKN1ma0ckc6nQWlHU69RH6xN0sjQTjMpChPfTYvKZdcQFfdYK2RWbJcKyUizSIy/l8OTGxMAM1QDw== } resolution: { integrity: sha512-DRI60hzo2oKN1ma0ckc6nQWlHU69RH6xN0sjQTjMpChPfTYvKZdcQFfdYK2RWbJcKyUizSIy/l8OTGxMAM1QDw== }
dev: false dev: false
/node-fetch@2.7.0:
resolution: { integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== }
engines: { node: 4.x || >=6.0.0 }
peerDependencies:
encoding: ^0.1.0
peerDependenciesMeta:
encoding:
optional: true
dependencies:
whatwg-url: 5.0.0
/node-fetch@2.7.0(encoding@0.1.13): /node-fetch@2.7.0(encoding@0.1.13):
resolution: { integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== } resolution: { integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== }
engines: { node: 4.x || >=6.0.0 } engines: { node: 4.x || >=6.0.0 }
@ -20819,6 +20963,7 @@ packages:
dependencies: dependencies:
encoding: 0.1.13 encoding: 0.1.13
whatwg-url: 5.0.0 whatwg-url: 5.0.0
dev: false
/node-forge@1.3.1: /node-forge@1.3.1:
resolution: { integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== } resolution: { integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== }
@ -21019,7 +21164,7 @@ packages:
engines: { node: '>=12' } engines: { node: '>=12' }
dependencies: dependencies:
markdown-table: 2.0.0 markdown-table: 2.0.0
node-fetch: 2.7.0(encoding@0.1.13) node-fetch: 2.7.0
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
dev: false dev: false
@ -21422,7 +21567,7 @@ packages:
async-retry: 1.3.3 async-retry: 1.3.3
aws-sdk: 2.1575.0 aws-sdk: 2.1575.0
concurrently: 7.6.0 concurrently: 7.6.0
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
find-yarn-workspace-root: 2.0.0 find-yarn-workspace-root: 2.0.0
fs-extra: 8.1.0 fs-extra: 8.1.0
github-slugger: 1.5.0 github-slugger: 1.5.0
@ -21558,7 +21703,7 @@ packages:
digest-fetch: 1.3.0 digest-fetch: 1.3.0
form-data-encoder: 1.7.2 form-data-encoder: 1.7.2
formdata-node: 4.4.1 formdata-node: 4.4.1
node-fetch: 2.7.0(encoding@0.1.13) node-fetch: 2.7.0
web-streams-polyfill: 3.3.3 web-streams-polyfill: 3.3.3
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
@ -21739,7 +21884,7 @@ packages:
resolution: { integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg== } resolution: { integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg== }
engines: { node: '>=12.10.0' } engines: { node: '>=12.10.0' }
dependencies: dependencies:
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
p-queue: 6.6.2 p-queue: 6.6.2
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -21756,7 +21901,7 @@ packages:
dependencies: dependencies:
'@tootallnate/quickjs-emscripten': 0.23.0 '@tootallnate/quickjs-emscripten': 0.23.0
agent-base: 7.1.0 agent-base: 7.1.0
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
get-uri: 6.0.3 get-uri: 6.0.3
http-proxy-agent: 7.0.2 http-proxy-agent: 7.0.2
https-proxy-agent: 7.0.4 https-proxy-agent: 7.0.4
@ -22139,7 +22284,7 @@ packages:
resolution: { integrity: sha512-v6ZJ/efsBpGrGGknjtq9J/oC8tZWq0KWL5vQrk2GlzLEQPUDB1ex+13Rmidl1neNN358Jn9EHZw5y07FFtaC7A== } resolution: { integrity: sha512-v6ZJ/efsBpGrGGknjtq9J/oC8tZWq0KWL5vQrk2GlzLEQPUDB1ex+13Rmidl1neNN358Jn9EHZw5y07FFtaC7A== }
engines: { node: '>=6.8.1' } engines: { node: '>=6.8.1' }
dependencies: dependencies:
debug: 3.2.7(supports-color@5.5.0) debug: 3.2.7
node-ensure: 0.0.0 node-ensure: 0.0.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -23585,7 +23730,7 @@ packages:
engines: { node: '>= 14' } engines: { node: '>= 14' }
dependencies: dependencies:
agent-base: 7.1.0 agent-base: 7.1.0
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
http-proxy-agent: 7.0.2 http-proxy-agent: 7.0.2
https-proxy-agent: 7.0.4 https-proxy-agent: 7.0.4
lru-cache: 7.18.3 lru-cache: 7.18.3
@ -23660,7 +23805,7 @@ packages:
'@puppeteer/browsers': 1.4.6(typescript@4.9.5) '@puppeteer/browsers': 1.4.6(typescript@4.9.5)
chromium-bidi: 0.4.16(devtools-protocol@0.0.1147663) chromium-bidi: 0.4.16(devtools-protocol@0.0.1147663)
cross-fetch: 4.0.0 cross-fetch: 4.0.0
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
devtools-protocol: 0.0.1147663 devtools-protocol: 0.0.1147663
typescript: 4.9.5 typescript: 4.9.5
ws: 8.13.0 ws: 8.13.0
@ -25112,7 +25257,7 @@ packages:
resolution: { integrity: sha512-wfI3pk7EE80lCIXprqh7ym48IHYdwmAAzESdbU8Q9l7pnRCk9LEhpbOTNKjz6FARLm/Bl5m+4F0ABxOkYUujSQ== } resolution: { integrity: sha512-wfI3pk7EE80lCIXprqh7ym48IHYdwmAAzESdbU8Q9l7pnRCk9LEhpbOTNKjz6FARLm/Bl5m+4F0ABxOkYUujSQ== }
engines: { node: '>=12' } engines: { node: '>=12' }
dependencies: dependencies:
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
extend: 3.0.2 extend: 3.0.2
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -25846,7 +25991,7 @@ packages:
/socket.io-adapter@2.5.4: /socket.io-adapter@2.5.4:
resolution: { integrity: sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg== } resolution: { integrity: sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg== }
dependencies: dependencies:
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
ws: 8.11.0 ws: 8.11.0
transitivePeerDependencies: transitivePeerDependencies:
- bufferutil - bufferutil
@ -25859,7 +26004,7 @@ packages:
engines: { node: '>=10.0.0' } engines: { node: '>=10.0.0' }
dependencies: dependencies:
'@socket.io/component-emitter': 3.1.0 '@socket.io/component-emitter': 3.1.0
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
engine.io-client: 6.5.3 engine.io-client: 6.5.3
socket.io-parser: 4.2.4 socket.io-parser: 4.2.4
transitivePeerDependencies: transitivePeerDependencies:
@ -25873,7 +26018,7 @@ packages:
engines: { node: '>=10.0.0' } engines: { node: '>=10.0.0' }
dependencies: dependencies:
'@socket.io/component-emitter': 3.1.0 '@socket.io/component-emitter': 3.1.0
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: false dev: false
@ -25885,7 +26030,7 @@ packages:
accepts: 1.3.8 accepts: 1.3.8
base64id: 2.0.0 base64id: 2.0.0
cors: 2.8.5 cors: 2.8.5
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
engine.io: 6.5.4 engine.io: 6.5.4
socket.io-adapter: 2.5.4 socket.io-adapter: 2.5.4
socket.io-parser: 4.2.4 socket.io-parser: 4.2.4
@ -25908,7 +26053,7 @@ packages:
engines: { node: '>= 10' } engines: { node: '>= 10' }
dependencies: dependencies:
agent-base: 6.0.2 agent-base: 6.0.2
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
socks: 2.8.1 socks: 2.8.1
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -25918,7 +26063,7 @@ packages:
engines: { node: '>= 10' } engines: { node: '>= 10' }
dependencies: dependencies:
agent-base: 6.0.2 agent-base: 6.0.2
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
socks: 2.8.1 socks: 2.8.1
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -25929,7 +26074,7 @@ packages:
engines: { node: '>= 14' } engines: { node: '>= 14' }
dependencies: dependencies:
agent-base: 7.1.0 agent-base: 7.1.0
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
socks: 2.8.1 socks: 2.8.1
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -26094,7 +26239,7 @@ packages:
/spdy-transport@3.0.0: /spdy-transport@3.0.0:
resolution: { integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== } resolution: { integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== }
dependencies: dependencies:
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
detect-node: 2.1.0 detect-node: 2.1.0
hpack.js: 2.1.6 hpack.js: 2.1.6
obuf: 1.1.2 obuf: 1.1.2
@ -26108,7 +26253,7 @@ packages:
resolution: { integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== } resolution: { integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== }
engines: { node: '>=6.0.0' } engines: { node: '>=6.0.0' }
dependencies: dependencies:
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
handle-thing: 2.0.1 handle-thing: 2.0.1
http-deceiver: 1.2.7 http-deceiver: 1.2.7
select-hose: 2.0.0 select-hose: 2.0.0
@ -27379,7 +27524,7 @@ packages:
engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 }
dependencies: dependencies:
'@tufjs/models': 1.0.4 '@tufjs/models': 1.0.4
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
make-fetch-happen: 11.1.1 make-fetch-happen: 11.1.1
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -27629,7 +27774,7 @@ packages:
chalk: 4.1.2 chalk: 4.1.2
cli-highlight: 2.1.11 cli-highlight: 2.1.11
dayjs: 1.11.10 dayjs: 1.11.10
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
dotenv: 16.4.5 dotenv: 16.4.5
glob: 10.3.10 glob: 10.3.10
ioredis: 5.3.2 ioredis: 5.3.2
@ -27711,7 +27856,7 @@ packages:
chalk: 4.1.2 chalk: 4.1.2
cli-highlight: 2.1.11 cli-highlight: 2.1.11
dayjs: 1.11.10 dayjs: 1.11.10
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
dotenv: 16.4.5 dotenv: 16.4.5
glob: 10.3.10 glob: 10.3.10
mkdirp: 2.1.6 mkdirp: 2.1.6
@ -28492,7 +28637,7 @@ packages:
workbox-build: ^7.0.0 workbox-build: ^7.0.0
workbox-window: ^7.0.0 workbox-window: ^7.0.0
dependencies: dependencies:
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
fast-glob: 3.3.2 fast-glob: 3.3.2
pretty-bytes: 6.1.1 pretty-bytes: 6.1.1
vite: 5.1.6(sass@1.71.1) vite: 5.1.6(sass@1.71.1)
@ -28519,7 +28664,7 @@ packages:
vite: vite:
optional: true optional: true
dependencies: dependencies:
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
globrex: 0.1.2 globrex: 0.1.2
tsconfck: 3.0.3(typescript@4.9.5) tsconfck: 3.0.3(typescript@4.9.5)
vite: 4.5.2(sass@1.71.1) vite: 4.5.2(sass@1.71.1)
@ -29255,7 +29400,6 @@ packages:
/workbox-google-analytics@7.0.0: /workbox-google-analytics@7.0.0:
resolution: { integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg== } resolution: { integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg== }
deprecated: It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained
dependencies: dependencies:
workbox-background-sync: 7.0.0 workbox-background-sync: 7.0.0
workbox-core: 7.0.0 workbox-core: 7.0.0
@ -29705,7 +29849,7 @@ packages:
cli-table: 0.3.11 cli-table: 0.3.11
commander: 7.1.0 commander: 7.1.0
dateformat: 4.6.3 dateformat: 4.6.3
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
diff: 5.2.0 diff: 5.2.0
error: 10.4.0 error: 10.4.0
escape-string-regexp: 4.0.0 escape-string-regexp: 4.0.0
@ -29750,11 +29894,11 @@ packages:
dependencies: dependencies:
chalk: 4.1.2 chalk: 4.1.2
dargs: 7.0.0 dargs: 7.0.0
debug: 4.3.4(supports-color@5.5.0) debug: 4.3.4
execa: 5.1.1 execa: 5.1.1
github-username: 6.0.0 github-username: 6.0.0
lodash: 4.17.21 lodash: 4.17.21
mem-fs-editor: 9.7.0(mem-fs@2.3.0) mem-fs-editor: 9.7.0
minimist: 1.2.8 minimist: 1.2.8
pacote: 15.2.0 pacote: 15.2.0
read-pkg-up: 7.0.1 read-pkg-up: 7.0.1
@ -29828,3 +29972,7 @@ packages:
/zwitch@2.0.4: /zwitch@2.0.4:
resolution: { integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== } resolution: { integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== }
dev: false dev: false
settings:
autoInstallPeers: true
excludeLinksFromLockfile: false