beeai-framework 0.1.8 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -14
- package/dist/adapters/vercel/backend/chat.cjs +11 -1
- package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
- package/dist/adapters/vercel/backend/chat.js +12 -2
- package/dist/adapters/vercel/backend/chat.js.map +1 -1
- package/dist/agents/base.cjs +1 -4
- package/dist/agents/base.cjs.map +1 -1
- package/dist/agents/base.js +1 -4
- package/dist/agents/base.js.map +1 -1
- package/dist/agents/react/prompts.d.cts +4 -4
- package/dist/agents/react/prompts.d.ts +4 -4
- package/dist/agents/react/runners/deep-think/prompts.d.cts +4 -4
- package/dist/agents/react/runners/deep-think/prompts.d.ts +4 -4
- package/dist/agents/react/runners/deep-think/runner.d.cts +4 -4
- package/dist/agents/react/runners/deep-think/runner.d.ts +4 -4
- package/dist/agents/react/runners/default/runner.d.cts +4 -4
- package/dist/agents/react/runners/default/runner.d.ts +4 -4
- package/dist/agents/react/runners/granite/prompts.d.cts +4 -4
- package/dist/agents/react/runners/granite/prompts.d.ts +4 -4
- package/dist/agents/react/runners/granite/runner.d.cts +4 -4
- package/dist/agents/react/runners/granite/runner.d.ts +4 -4
- package/dist/backend/chat.cjs +1 -3
- package/dist/backend/chat.cjs.map +1 -1
- package/dist/backend/chat.js +2 -4
- package/dist/backend/chat.js.map +1 -1
- package/dist/tools/base.cjs +1 -3
- package/dist/tools/base.cjs.map +1 -1
- package/dist/tools/base.js +2 -4
- package/dist/tools/base.js.map +1 -1
- package/dist/tools/database/milvus.d.cts +4 -4
- package/dist/tools/database/milvus.d.ts +4 -4
- package/dist/version.cjs +1 -1
- package/dist/version.cjs.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/dist/workflows/agent.d.cts +45 -45
- package/dist/workflows/agent.d.ts +45 -45
- package/package.json +1 -8
- package/dist/instrumentation/config.cjs +0 -12
- package/dist/instrumentation/config.cjs.map +0 -1
- package/dist/instrumentation/config.d.cts +0 -19
- package/dist/instrumentation/config.d.ts +0 -19
- package/dist/instrumentation/config.js +0 -9
- package/dist/instrumentation/config.js.map +0 -1
- package/dist/instrumentation/create-telemetry-middleware.cjs +0 -239
- package/dist/instrumentation/create-telemetry-middleware.cjs.map +0 -1
- package/dist/instrumentation/create-telemetry-middleware.d.cts +0 -26
- package/dist/instrumentation/create-telemetry-middleware.d.ts +0 -26
- package/dist/instrumentation/create-telemetry-middleware.js +0 -237
- package/dist/instrumentation/create-telemetry-middleware.js.map +0 -1
- package/dist/instrumentation/helpers/create-span.cjs +0 -36
- package/dist/instrumentation/helpers/create-span.cjs.map +0 -1
- package/dist/instrumentation/helpers/create-span.d.cts +0 -34
- package/dist/instrumentation/helpers/create-span.d.ts +0 -34
- package/dist/instrumentation/helpers/create-span.js +0 -34
- package/dist/instrumentation/helpers/create-span.js.map +0 -1
- package/dist/instrumentation/helpers/get-error-safe.cjs +0 -20
- package/dist/instrumentation/helpers/get-error-safe.cjs.map +0 -1
- package/dist/instrumentation/helpers/get-error-safe.d.cts +0 -18
- package/dist/instrumentation/helpers/get-error-safe.d.ts +0 -18
- package/dist/instrumentation/helpers/get-error-safe.js +0 -18
- package/dist/instrumentation/helpers/get-error-safe.js.map +0 -1
- package/dist/instrumentation/helpers/get-serialized-object-safe.cjs +0 -27
- package/dist/instrumentation/helpers/get-serialized-object-safe.cjs.map +0 -1
- package/dist/instrumentation/helpers/get-serialized-object-safe.d.cts +0 -18
- package/dist/instrumentation/helpers/get-serialized-object-safe.d.ts +0 -18
- package/dist/instrumentation/helpers/get-serialized-object-safe.js +0 -25
- package/dist/instrumentation/helpers/get-serialized-object-safe.js.map +0 -1
- package/dist/instrumentation/helpers/id-name-manager.cjs +0 -34
- package/dist/instrumentation/helpers/id-name-manager.cjs.map +0 -1
- package/dist/instrumentation/helpers/id-name-manager.d.cts +0 -31
- package/dist/instrumentation/helpers/id-name-manager.d.ts +0 -31
- package/dist/instrumentation/helpers/id-name-manager.js +0 -32
- package/dist/instrumentation/helpers/id-name-manager.js.map +0 -1
- package/dist/instrumentation/helpers/trace-serializer.cjs +0 -30
- package/dist/instrumentation/helpers/trace-serializer.cjs.map +0 -1
- package/dist/instrumentation/helpers/trace-serializer.d.cts +0 -20
- package/dist/instrumentation/helpers/trace-serializer.d.ts +0 -20
- package/dist/instrumentation/helpers/trace-serializer.js +0 -28
- package/dist/instrumentation/helpers/trace-serializer.js.map +0 -1
- package/dist/instrumentation/helpers/utils.cjs +0 -14
- package/dist/instrumentation/helpers/utils.cjs.map +0 -1
- package/dist/instrumentation/helpers/utils.d.cts +0 -40
- package/dist/instrumentation/helpers/utils.d.ts +0 -40
- package/dist/instrumentation/helpers/utils.js +0 -12
- package/dist/instrumentation/helpers/utils.js.map +0 -1
- package/dist/instrumentation/logger.cjs +0 -12
- package/dist/instrumentation/logger.cjs.map +0 -1
- package/dist/instrumentation/logger.d.cts +0 -26
- package/dist/instrumentation/logger.d.ts +0 -26
- package/dist/instrumentation/logger.js +0 -10
- package/dist/instrumentation/logger.js.map +0 -1
- package/dist/instrumentation/tracer.cjs +0 -84
- package/dist/instrumentation/tracer.cjs.map +0 -1
- package/dist/instrumentation/tracer.d.cts +0 -36
- package/dist/instrumentation/tracer.d.ts +0 -36
- package/dist/instrumentation/tracer.js +0 -76
- package/dist/instrumentation/tracer.js.map +0 -1
- package/dist/instrumentation/types.cjs +0 -4
- package/dist/instrumentation/types.cjs.map +0 -1
- package/dist/instrumentation/types.d.cts +0 -39
- package/dist/instrumentation/types.d.ts +0 -39
- package/dist/instrumentation/types.js +0 -3
- package/dist/instrumentation/types.js.map +0 -1
package/README.md
CHANGED
|
@@ -11,20 +11,27 @@ Build production-ready multi-agent systems in TypeScript. BeeAI framework is als
|
|
|
11
11
|
|
|
12
12
|
The source directory (`src`) contains the available modules:
|
|
13
13
|
|
|
14
|
-
| Name
|
|
15
|
-
|
|
|
16
|
-
| [**agents**](/typescript/docs/agents.md)
|
|
17
|
-
| [**backend**](/typescript/docs/backend.md)
|
|
18
|
-
| [**template**](/typescript/docs/templates.md)
|
|
19
|
-
| [**memory**](/typescript/docs/memory.md)
|
|
20
|
-
| [**tools**](/typescript/docs/tools.md)
|
|
21
|
-
| [**cache**](/typescript/docs/cache.md)
|
|
22
|
-
| [**errors**](/typescript/docs/errors.md)
|
|
23
|
-
| [**logger**](/typescript/docs/logger.md)
|
|
24
|
-
| [**serializer**](/typescript/docs/serialization.md)
|
|
25
|
-
| [**version**](/typescript/docs/version.md)
|
|
26
|
-
| [**emitter**](/typescript/docs/emitter.md)
|
|
27
|
-
|
|
14
|
+
| Name | Description |
|
|
15
|
+
| --------------------------------------------------- | ------------------------------------------------------------------------------------------- |
|
|
16
|
+
| [**agents**](/typescript/docs/agents.md) | Base classes defining the common interface for agent. |
|
|
17
|
+
| [**backend**](/typescript/docs/backend.md) | Functionalities that relates to AI models (chat, embedding, image, tool calling, ...) |
|
|
18
|
+
| [**template**](/typescript/docs/templates.md) | Prompt Templating system based on `Mustache` with various improvements. |
|
|
19
|
+
| [**memory**](/typescript/docs/memory.md) | Various types of memories to use with agent. |
|
|
20
|
+
| [**tools**](/typescript/docs/tools.md) | Tools that an agent can use. |
|
|
21
|
+
| [**cache**](/typescript/docs/cache.md) | Preset of different caching approaches that can be used together with tools. |
|
|
22
|
+
| [**errors**](/typescript/docs/errors.md) | Base framework error classes used by each module. |
|
|
23
|
+
| [**logger**](/typescript/docs/logger.md) | Core component for logging all actions within the framework. |
|
|
24
|
+
| [**serializer**](/typescript/docs/serialization.md) | Core component for the ability to serialize/deserialize modules into the serialized format. |
|
|
25
|
+
| [**version**](/typescript/docs/version.md) | Constants representing the framework (e.g., the latest version) |
|
|
26
|
+
| [**emitter**](/typescript/docs/emitter.md) | Bringing visibility to the system by emitting events. |
|
|
27
|
+
|
|
28
|
+
## External modules
|
|
29
|
+
|
|
30
|
+
Use these packages to extend the base BeeAI framework functionality:
|
|
31
|
+
|
|
32
|
+
| Name | Description |
|
|
33
|
+
| -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------- |
|
|
34
|
+
| [**instrumentation**](https://github.com/Arize-ai/openinference/tree/main/js/packages/openinference-instrumentation-beeai) | Integrate monitoring tools into your application. |
|
|
28
35
|
|
|
29
36
|
## Installation
|
|
30
37
|
|
|
@@ -135,10 +135,20 @@ class VercelChatModel extends chat_cjs.ChatModel {
|
|
|
135
135
|
role: "tool",
|
|
136
136
|
content: msg.content
|
|
137
137
|
};
|
|
138
|
+
} else if (msg instanceof message_cjs.UserMessage) {
|
|
139
|
+
return {
|
|
140
|
+
role: "user",
|
|
141
|
+
content: msg.content
|
|
142
|
+
};
|
|
143
|
+
} else if (msg instanceof message_cjs.SystemMessage) {
|
|
144
|
+
return {
|
|
145
|
+
role: "user",
|
|
146
|
+
content: msg.content
|
|
147
|
+
};
|
|
138
148
|
}
|
|
139
149
|
return {
|
|
140
150
|
role: msg.role,
|
|
141
|
-
content: msg.
|
|
151
|
+
content: msg.content
|
|
142
152
|
};
|
|
143
153
|
});
|
|
144
154
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["chat.ts"],"names":["VercelChatModel","ChatModel","emitter","supportsToolStreaming","constructor","model","modelId","ValueError","Emitter","root","child","namespace","providerId","creator","provider","split","toCamelCase","_create","input","_run","finishReason","usage","response","messages","generateText","transformInput","ChatModelOutput","transformMessages","_createStructure","schema","run","inputSchema","_input","generateObject","temperature","abortSignal","signal","output","ZodArray","ZodEnum","object","_createStream","isEmpty","tools","fullStream","streamText","lastChunk","event","message","type","AssistantMessage","textDelta","toolCallId","toolName","args","ChatModelError","error","ToolMessage","result","Error","Promise","all","map","tool","name","description","parameters","jsonSchema","getInputJsonSchema","msg","role","content","text","mapToObj","flatMap","providerOptions","createSnapshot","loadSnapshot","snapshot","instance","fromName","destroy","Object","assign"],"mappings":"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","file":"chat.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ChatModelInput,\n ChatModel,\n ChatModelOutput,\n ChatModelEvents,\n ChatModelObjectInput,\n ChatModelObjectOutput,\n} from \"@/backend/chat.js\";\nimport {\n CoreAssistantMessage,\n CoreMessage,\n CoreToolMessage,\n generateObject,\n generateText,\n jsonSchema,\n LanguageModelV1,\n streamText,\n TextPart,\n ToolCallPart,\n} from \"ai\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { AssistantMessage, Message, ToolMessage } from \"@/backend/message.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { isEmpty, mapToObj, toCamelCase } from \"remeda\";\nimport { FullModelName } from \"@/backend/utils.js\";\nimport { ChatModelError } from \"@/backend/errors.js\";\nimport { ZodArray, ZodEnum } from \"zod\";\n\nexport abstract class VercelChatModel<\n M extends LanguageModelV1 = LanguageModelV1,\n> extends ChatModel {\n public readonly emitter: Emitter<ChatModelEvents>;\n public readonly supportsToolStreaming: boolean = true;\n\n constructor(private readonly model: M) {\n super();\n if (!this.modelId) {\n throw new ValueError(\"No modelId has been provided!\");\n }\n this.emitter = Emitter.root.child({\n namespace: [\"backend\", this.providerId, \"chat\"],\n creator: this,\n });\n }\n\n get modelId(): string {\n return this.model.modelId;\n }\n\n get providerId(): string {\n const provider = this.model.provider.split(\".\")[0].split(\"-\")[0];\n return toCamelCase(provider);\n }\n\n protected async _create(input: ChatModelInput, _run: GetRunContext<this>) {\n const {\n finishReason,\n usage,\n response: { messages },\n } = await generateText(await this.transformInput(input));\n\n return new ChatModelOutput(this.transformMessages(messages), usage, finishReason);\n }\n\n protected async _createStructure<T>(\n { schema, ...input }: ChatModelObjectInput<T>,\n run: GetRunContext<this>,\n ): Promise<ChatModelObjectOutput<T>> {\n const inputSchema = schema._input || schema;\n\n const response = await generateObject({\n temperature: 0,\n ...(await this.transformInput(input)),\n schema,\n abortSignal: run.signal,\n model: this.model,\n // @ts-expect-error\n output:\n inputSchema instanceof ZodArray\n ? \"array\"\n : inputSchema instanceof ZodEnum\n ? \"enum\"\n : \"object\",\n });\n\n return { object: response.object };\n }\n\n async *_createStream(input: ChatModelInput, run: GetRunContext<this>) {\n if (!this.supportsToolStreaming && !isEmpty(input.tools ?? [])) {\n const response = await this._create(input, run);\n yield response;\n return;\n }\n\n const { fullStream, usage, finishReason, response } = streamText({\n ...(await this.transformInput(input)),\n abortSignal: run.signal,\n });\n\n let lastChunk: ChatModelOutput | null = null;\n for await (const event of fullStream) {\n let message: Message;\n switch (event.type) {\n case \"text-delta\":\n message = new AssistantMessage(event.textDelta);\n break;\n case \"tool-call\":\n message = new AssistantMessage({\n type: event.type,\n toolCallId: event.toolCallId,\n toolName: event.toolName,\n args: event.args,\n });\n break;\n case \"error\":\n throw new ChatModelError(\"Unhandled error\", [event.error as Error]);\n case \"step-finish\":\n case \"step-start\":\n continue;\n case \"tool-result\":\n message = new ToolMessage({\n type: event.type,\n toolCallId: event.toolCallId,\n toolName: event.toolName,\n result: event.result,\n });\n break;\n case \"tool-call-streaming-start\":\n case \"tool-call-delta\":\n continue;\n case \"finish\":\n continue;\n default:\n throw new Error(`Unhandled event \"${event.type}\"`);\n }\n lastChunk = new ChatModelOutput([message]);\n yield lastChunk;\n }\n\n if (!lastChunk) {\n throw new ChatModelError(\"No chunks have been received!\");\n }\n lastChunk.usage = await usage;\n lastChunk.finishReason = await finishReason;\n await response;\n }\n\n protected async transformInput(\n input: ChatModelInput,\n ): Promise<Parameters<typeof generateText<Record<string, any>>>[0]> {\n const tools = await Promise.all(\n (input.tools ?? []).map(async (tool) => ({\n name: tool.name,\n description: tool.description,\n parameters: jsonSchema(await tool.getInputJsonSchema()),\n })),\n );\n\n const messages = input.messages.map((msg): CoreMessage => {\n if (msg instanceof AssistantMessage) {\n return { role: \"assistant\", content: msg.content };\n } else if (msg instanceof ToolMessage) {\n return { role: \"tool\", content: msg.content };\n }\n return { role: msg.role as \"user\" | \"system\", content: msg.text };\n });\n\n return {\n ...this.parameters,\n ...input,\n model: this.model,\n tools: mapToObj(tools, ({ name, ...tool }) => [name, tool]),\n messages,\n };\n }\n\n protected transformMessages(messages: (CoreAssistantMessage | CoreToolMessage)[]): Message[] {\n return messages.flatMap((msg) => {\n if (msg.role === \"tool\") {\n return new ToolMessage(msg.content, msg.providerOptions);\n }\n return new AssistantMessage(\n msg.content as TextPart | ToolCallPart | string,\n msg.providerOptions,\n );\n });\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n providerId: this.providerId,\n modelId: this.modelId,\n supportsToolStreaming: this.supportsToolStreaming,\n };\n }\n\n async loadSnapshot({ providerId, modelId, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n const instance = await ChatModel.fromName(`${providerId}:${modelId}` as FullModelName);\n if (!(instance instanceof VercelChatModel)) {\n throw new Error(\"Incorrect deserialization!\");\n }\n instance.destroy();\n Object.assign(this, {\n ...snapshot,\n model: instance.model,\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["chat.ts"],"names":["VercelChatModel","ChatModel","emitter","supportsToolStreaming","constructor","model","modelId","ValueError","Emitter","root","child","namespace","providerId","creator","provider","split","toCamelCase","_create","input","_run","finishReason","usage","response","messages","generateText","transformInput","ChatModelOutput","transformMessages","_createStructure","schema","run","inputSchema","_input","generateObject","temperature","abortSignal","signal","output","ZodArray","ZodEnum","object","_createStream","isEmpty","tools","fullStream","streamText","lastChunk","event","message","type","AssistantMessage","textDelta","toolCallId","toolName","args","ChatModelError","error","ToolMessage","result","Error","Promise","all","map","tool","name","description","parameters","jsonSchema","getInputJsonSchema","msg","role","content","UserMessage","SystemMessage","mapToObj","flatMap","providerOptions","createSnapshot","loadSnapshot","snapshot","instance","fromName","destroy","Object","assign"],"mappings":"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","file":"chat.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ChatModelInput,\n ChatModel,\n ChatModelOutput,\n ChatModelEvents,\n ChatModelObjectInput,\n ChatModelObjectOutput,\n} from \"@/backend/chat.js\";\nimport {\n CoreAssistantMessage,\n CoreMessage,\n CoreToolMessage,\n generateObject,\n generateText,\n jsonSchema,\n LanguageModelV1,\n streamText,\n TextPart,\n ToolCallPart,\n} from \"ai\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport {\n AssistantMessage,\n Message,\n SystemMessage,\n ToolMessage,\n UserMessage,\n} from \"@/backend/message.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { isEmpty, mapToObj, toCamelCase } from \"remeda\";\nimport { FullModelName } from \"@/backend/utils.js\";\nimport { ChatModelError } from \"@/backend/errors.js\";\nimport { ZodArray, ZodEnum } from \"zod\";\n\nexport abstract class VercelChatModel<\n M extends LanguageModelV1 = LanguageModelV1,\n> extends ChatModel {\n public readonly emitter: Emitter<ChatModelEvents>;\n public readonly supportsToolStreaming: boolean = true;\n\n constructor(private readonly model: M) {\n super();\n if (!this.modelId) {\n throw new ValueError(\"No modelId has been provided!\");\n }\n this.emitter = Emitter.root.child({\n namespace: [\"backend\", this.providerId, \"chat\"],\n creator: this,\n });\n }\n\n get modelId(): string {\n return this.model.modelId;\n }\n\n get providerId(): string {\n const provider = this.model.provider.split(\".\")[0].split(\"-\")[0];\n return toCamelCase(provider);\n }\n\n protected async _create(input: ChatModelInput, _run: GetRunContext<this>) {\n const {\n finishReason,\n usage,\n response: { messages },\n } = await generateText(await this.transformInput(input));\n\n return new ChatModelOutput(this.transformMessages(messages), usage, finishReason);\n }\n\n protected async _createStructure<T>(\n { schema, ...input }: ChatModelObjectInput<T>,\n run: GetRunContext<this>,\n ): Promise<ChatModelObjectOutput<T>> {\n const inputSchema = schema._input || schema;\n\n const response = await generateObject({\n temperature: 0,\n ...(await this.transformInput(input)),\n schema,\n abortSignal: run.signal,\n model: this.model,\n // @ts-expect-error\n output:\n inputSchema instanceof ZodArray\n ? \"array\"\n : inputSchema instanceof ZodEnum\n ? \"enum\"\n : \"object\",\n });\n\n return { object: response.object };\n }\n\n async *_createStream(input: ChatModelInput, run: GetRunContext<this>) {\n if (!this.supportsToolStreaming && !isEmpty(input.tools ?? [])) {\n const response = await this._create(input, run);\n yield response;\n return;\n }\n\n const { fullStream, usage, finishReason, response } = streamText({\n ...(await this.transformInput(input)),\n abortSignal: run.signal,\n });\n\n let lastChunk: ChatModelOutput | null = null;\n for await (const event of fullStream) {\n let message: Message;\n switch (event.type) {\n case \"text-delta\":\n message = new AssistantMessage(event.textDelta);\n break;\n case \"tool-call\":\n message = new AssistantMessage({\n type: event.type,\n toolCallId: event.toolCallId,\n toolName: event.toolName,\n args: event.args,\n });\n break;\n case \"error\":\n throw new ChatModelError(\"Unhandled error\", [event.error as Error]);\n case \"step-finish\":\n case \"step-start\":\n continue;\n case \"tool-result\":\n message = new ToolMessage({\n type: event.type,\n toolCallId: event.toolCallId,\n toolName: event.toolName,\n result: event.result,\n });\n break;\n case \"tool-call-streaming-start\":\n case \"tool-call-delta\":\n continue;\n case \"finish\":\n continue;\n default:\n throw new Error(`Unhandled event \"${event.type}\"`);\n }\n lastChunk = new ChatModelOutput([message]);\n yield lastChunk;\n }\n\n if (!lastChunk) {\n throw new ChatModelError(\"No chunks have been received!\");\n }\n lastChunk.usage = await usage;\n lastChunk.finishReason = await finishReason;\n await response;\n }\n\n protected async transformInput(\n input: ChatModelInput,\n ): Promise<Parameters<typeof generateText<Record<string, any>>>[0]> {\n const tools = await Promise.all(\n (input.tools ?? []).map(async (tool) => ({\n name: tool.name,\n description: tool.description,\n parameters: jsonSchema(await tool.getInputJsonSchema()),\n })),\n );\n\n const messages = input.messages.map((msg): CoreMessage => {\n if (msg instanceof AssistantMessage) {\n return { role: \"assistant\", content: msg.content };\n } else if (msg instanceof ToolMessage) {\n return { role: \"tool\", content: msg.content };\n } else if (msg instanceof UserMessage) {\n return { role: \"user\", content: msg.content };\n } else if (msg instanceof SystemMessage) {\n return { role: \"user\", content: msg.content };\n }\n return { role: msg.role, content: msg.content } as CoreMessage;\n });\n\n return {\n ...this.parameters,\n ...input,\n model: this.model,\n tools: mapToObj(tools, ({ name, ...tool }) => [name, tool]),\n messages,\n };\n }\n\n protected transformMessages(messages: (CoreAssistantMessage | CoreToolMessage)[]): Message[] {\n return messages.flatMap((msg) => {\n if (msg.role === \"tool\") {\n return new ToolMessage(msg.content, msg.providerOptions);\n }\n return new AssistantMessage(\n msg.content as TextPart | ToolCallPart | string,\n msg.providerOptions,\n );\n });\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n providerId: this.providerId,\n modelId: this.modelId,\n supportsToolStreaming: this.supportsToolStreaming,\n };\n }\n\n async loadSnapshot({ providerId, modelId, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n const instance = await ChatModel.fromName(`${providerId}:${modelId}` as FullModelName);\n if (!(instance instanceof VercelChatModel)) {\n throw new Error(\"Incorrect deserialization!\");\n }\n instance.destroy();\n Object.assign(this, {\n ...snapshot,\n model: instance.model,\n });\n }\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ChatModel, ChatModelOutput } from '../../../backend/chat.js';
|
|
2
2
|
import { generateText, generateObject, streamText, jsonSchema } from 'ai';
|
|
3
3
|
import { Emitter } from '../../../emitter/emitter.js';
|
|
4
|
-
import { ToolMessage, AssistantMessage } from '../../../backend/message.js';
|
|
4
|
+
import { ToolMessage, AssistantMessage, UserMessage, SystemMessage } from '../../../backend/message.js';
|
|
5
5
|
import { ValueError } from '../../../errors.js';
|
|
6
6
|
import { toCamelCase, isEmpty, mapToObj } from 'remeda';
|
|
7
7
|
import { ChatModelError } from '../../../backend/errors.js';
|
|
@@ -133,10 +133,20 @@ class VercelChatModel extends ChatModel {
|
|
|
133
133
|
role: "tool",
|
|
134
134
|
content: msg.content
|
|
135
135
|
};
|
|
136
|
+
} else if (msg instanceof UserMessage) {
|
|
137
|
+
return {
|
|
138
|
+
role: "user",
|
|
139
|
+
content: msg.content
|
|
140
|
+
};
|
|
141
|
+
} else if (msg instanceof SystemMessage) {
|
|
142
|
+
return {
|
|
143
|
+
role: "user",
|
|
144
|
+
content: msg.content
|
|
145
|
+
};
|
|
136
146
|
}
|
|
137
147
|
return {
|
|
138
148
|
role: msg.role,
|
|
139
|
-
content: msg.
|
|
149
|
+
content: msg.content
|
|
140
150
|
};
|
|
141
151
|
});
|
|
142
152
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["chat.ts"],"names":["VercelChatModel","ChatModel","emitter","supportsToolStreaming","constructor","model","modelId","ValueError","Emitter","root","child","namespace","providerId","creator","provider","split","toCamelCase","_create","input","_run","finishReason","usage","response","messages","generateText","transformInput","ChatModelOutput","transformMessages","_createStructure","schema","run","inputSchema","_input","generateObject","temperature","abortSignal","signal","output","ZodArray","ZodEnum","object","_createStream","isEmpty","tools","fullStream","streamText","lastChunk","event","message","type","AssistantMessage","textDelta","toolCallId","toolName","args","ChatModelError","error","ToolMessage","result","Error","Promise","all","map","tool","name","description","parameters","jsonSchema","getInputJsonSchema","msg","role","content","text","mapToObj","flatMap","providerOptions","createSnapshot","loadSnapshot","snapshot","instance","fromName","destroy","Object","assign"],"mappings":"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","file":"chat.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ChatModelInput,\n ChatModel,\n ChatModelOutput,\n ChatModelEvents,\n ChatModelObjectInput,\n ChatModelObjectOutput,\n} from \"@/backend/chat.js\";\nimport {\n CoreAssistantMessage,\n CoreMessage,\n CoreToolMessage,\n generateObject,\n generateText,\n jsonSchema,\n LanguageModelV1,\n streamText,\n TextPart,\n ToolCallPart,\n} from \"ai\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { AssistantMessage, Message, ToolMessage } from \"@/backend/message.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { isEmpty, mapToObj, toCamelCase } from \"remeda\";\nimport { FullModelName } from \"@/backend/utils.js\";\nimport { ChatModelError } from \"@/backend/errors.js\";\nimport { ZodArray, ZodEnum } from \"zod\";\n\nexport abstract class VercelChatModel<\n M extends LanguageModelV1 = LanguageModelV1,\n> extends ChatModel {\n public readonly emitter: Emitter<ChatModelEvents>;\n public readonly supportsToolStreaming: boolean = true;\n\n constructor(private readonly model: M) {\n super();\n if (!this.modelId) {\n throw new ValueError(\"No modelId has been provided!\");\n }\n this.emitter = Emitter.root.child({\n namespace: [\"backend\", this.providerId, \"chat\"],\n creator: this,\n });\n }\n\n get modelId(): string {\n return this.model.modelId;\n }\n\n get providerId(): string {\n const provider = this.model.provider.split(\".\")[0].split(\"-\")[0];\n return toCamelCase(provider);\n }\n\n protected async _create(input: ChatModelInput, _run: GetRunContext<this>) {\n const {\n finishReason,\n usage,\n response: { messages },\n } = await generateText(await this.transformInput(input));\n\n return new ChatModelOutput(this.transformMessages(messages), usage, finishReason);\n }\n\n protected async _createStructure<T>(\n { schema, ...input }: ChatModelObjectInput<T>,\n run: GetRunContext<this>,\n ): Promise<ChatModelObjectOutput<T>> {\n const inputSchema = schema._input || schema;\n\n const response = await generateObject({\n temperature: 0,\n ...(await this.transformInput(input)),\n schema,\n abortSignal: run.signal,\n model: this.model,\n // @ts-expect-error\n output:\n inputSchema instanceof ZodArray\n ? \"array\"\n : inputSchema instanceof ZodEnum\n ? \"enum\"\n : \"object\",\n });\n\n return { object: response.object };\n }\n\n async *_createStream(input: ChatModelInput, run: GetRunContext<this>) {\n if (!this.supportsToolStreaming && !isEmpty(input.tools ?? [])) {\n const response = await this._create(input, run);\n yield response;\n return;\n }\n\n const { fullStream, usage, finishReason, response } = streamText({\n ...(await this.transformInput(input)),\n abortSignal: run.signal,\n });\n\n let lastChunk: ChatModelOutput | null = null;\n for await (const event of fullStream) {\n let message: Message;\n switch (event.type) {\n case \"text-delta\":\n message = new AssistantMessage(event.textDelta);\n break;\n case \"tool-call\":\n message = new AssistantMessage({\n type: event.type,\n toolCallId: event.toolCallId,\n toolName: event.toolName,\n args: event.args,\n });\n break;\n case \"error\":\n throw new ChatModelError(\"Unhandled error\", [event.error as Error]);\n case \"step-finish\":\n case \"step-start\":\n continue;\n case \"tool-result\":\n message = new ToolMessage({\n type: event.type,\n toolCallId: event.toolCallId,\n toolName: event.toolName,\n result: event.result,\n });\n break;\n case \"tool-call-streaming-start\":\n case \"tool-call-delta\":\n continue;\n case \"finish\":\n continue;\n default:\n throw new Error(`Unhandled event \"${event.type}\"`);\n }\n lastChunk = new ChatModelOutput([message]);\n yield lastChunk;\n }\n\n if (!lastChunk) {\n throw new ChatModelError(\"No chunks have been received!\");\n }\n lastChunk.usage = await usage;\n lastChunk.finishReason = await finishReason;\n await response;\n }\n\n protected async transformInput(\n input: ChatModelInput,\n ): Promise<Parameters<typeof generateText<Record<string, any>>>[0]> {\n const tools = await Promise.all(\n (input.tools ?? []).map(async (tool) => ({\n name: tool.name,\n description: tool.description,\n parameters: jsonSchema(await tool.getInputJsonSchema()),\n })),\n );\n\n const messages = input.messages.map((msg): CoreMessage => {\n if (msg instanceof AssistantMessage) {\n return { role: \"assistant\", content: msg.content };\n } else if (msg instanceof ToolMessage) {\n return { role: \"tool\", content: msg.content };\n }\n return { role: msg.role as \"user\" | \"system\", content: msg.text };\n });\n\n return {\n ...this.parameters,\n ...input,\n model: this.model,\n tools: mapToObj(tools, ({ name, ...tool }) => [name, tool]),\n messages,\n };\n }\n\n protected transformMessages(messages: (CoreAssistantMessage | CoreToolMessage)[]): Message[] {\n return messages.flatMap((msg) => {\n if (msg.role === \"tool\") {\n return new ToolMessage(msg.content, msg.providerOptions);\n }\n return new AssistantMessage(\n msg.content as TextPart | ToolCallPart | string,\n msg.providerOptions,\n );\n });\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n providerId: this.providerId,\n modelId: this.modelId,\n supportsToolStreaming: this.supportsToolStreaming,\n };\n }\n\n async loadSnapshot({ providerId, modelId, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n const instance = await ChatModel.fromName(`${providerId}:${modelId}` as FullModelName);\n if (!(instance instanceof VercelChatModel)) {\n throw new Error(\"Incorrect deserialization!\");\n }\n instance.destroy();\n Object.assign(this, {\n ...snapshot,\n model: instance.model,\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["chat.ts"],"names":["VercelChatModel","ChatModel","emitter","supportsToolStreaming","constructor","model","modelId","ValueError","Emitter","root","child","namespace","providerId","creator","provider","split","toCamelCase","_create","input","_run","finishReason","usage","response","messages","generateText","transformInput","ChatModelOutput","transformMessages","_createStructure","schema","run","inputSchema","_input","generateObject","temperature","abortSignal","signal","output","ZodArray","ZodEnum","object","_createStream","isEmpty","tools","fullStream","streamText","lastChunk","event","message","type","AssistantMessage","textDelta","toolCallId","toolName","args","ChatModelError","error","ToolMessage","result","Error","Promise","all","map","tool","name","description","parameters","jsonSchema","getInputJsonSchema","msg","role","content","UserMessage","SystemMessage","mapToObj","flatMap","providerOptions","createSnapshot","loadSnapshot","snapshot","instance","fromName","destroy","Object","assign"],"mappings":"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","file":"chat.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ChatModelInput,\n ChatModel,\n ChatModelOutput,\n ChatModelEvents,\n ChatModelObjectInput,\n ChatModelObjectOutput,\n} from \"@/backend/chat.js\";\nimport {\n CoreAssistantMessage,\n CoreMessage,\n CoreToolMessage,\n generateObject,\n generateText,\n jsonSchema,\n LanguageModelV1,\n streamText,\n TextPart,\n ToolCallPart,\n} from \"ai\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport {\n AssistantMessage,\n Message,\n SystemMessage,\n ToolMessage,\n UserMessage,\n} from \"@/backend/message.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { isEmpty, mapToObj, toCamelCase } from \"remeda\";\nimport { FullModelName } from \"@/backend/utils.js\";\nimport { ChatModelError } from \"@/backend/errors.js\";\nimport { ZodArray, ZodEnum } from \"zod\";\n\nexport abstract class VercelChatModel<\n M extends LanguageModelV1 = LanguageModelV1,\n> extends ChatModel {\n public readonly emitter: Emitter<ChatModelEvents>;\n public readonly supportsToolStreaming: boolean = true;\n\n constructor(private readonly model: M) {\n super();\n if (!this.modelId) {\n throw new ValueError(\"No modelId has been provided!\");\n }\n this.emitter = Emitter.root.child({\n namespace: [\"backend\", this.providerId, \"chat\"],\n creator: this,\n });\n }\n\n get modelId(): string {\n return this.model.modelId;\n }\n\n get providerId(): string {\n const provider = this.model.provider.split(\".\")[0].split(\"-\")[0];\n return toCamelCase(provider);\n }\n\n protected async _create(input: ChatModelInput, _run: GetRunContext<this>) {\n const {\n finishReason,\n usage,\n response: { messages },\n } = await generateText(await this.transformInput(input));\n\n return new ChatModelOutput(this.transformMessages(messages), usage, finishReason);\n }\n\n protected async _createStructure<T>(\n { schema, ...input }: ChatModelObjectInput<T>,\n run: GetRunContext<this>,\n ): Promise<ChatModelObjectOutput<T>> {\n const inputSchema = schema._input || schema;\n\n const response = await generateObject({\n temperature: 0,\n ...(await this.transformInput(input)),\n schema,\n abortSignal: run.signal,\n model: this.model,\n // @ts-expect-error\n output:\n inputSchema instanceof ZodArray\n ? \"array\"\n : inputSchema instanceof ZodEnum\n ? \"enum\"\n : \"object\",\n });\n\n return { object: response.object };\n }\n\n async *_createStream(input: ChatModelInput, run: GetRunContext<this>) {\n if (!this.supportsToolStreaming && !isEmpty(input.tools ?? [])) {\n const response = await this._create(input, run);\n yield response;\n return;\n }\n\n const { fullStream, usage, finishReason, response } = streamText({\n ...(await this.transformInput(input)),\n abortSignal: run.signal,\n });\n\n let lastChunk: ChatModelOutput | null = null;\n for await (const event of fullStream) {\n let message: Message;\n switch (event.type) {\n case \"text-delta\":\n message = new AssistantMessage(event.textDelta);\n break;\n case \"tool-call\":\n message = new AssistantMessage({\n type: event.type,\n toolCallId: event.toolCallId,\n toolName: event.toolName,\n args: event.args,\n });\n break;\n case \"error\":\n throw new ChatModelError(\"Unhandled error\", [event.error as Error]);\n case \"step-finish\":\n case \"step-start\":\n continue;\n case \"tool-result\":\n message = new ToolMessage({\n type: event.type,\n toolCallId: event.toolCallId,\n toolName: event.toolName,\n result: event.result,\n });\n break;\n case \"tool-call-streaming-start\":\n case \"tool-call-delta\":\n continue;\n case \"finish\":\n continue;\n default:\n throw new Error(`Unhandled event \"${event.type}\"`);\n }\n lastChunk = new ChatModelOutput([message]);\n yield lastChunk;\n }\n\n if (!lastChunk) {\n throw new ChatModelError(\"No chunks have been received!\");\n }\n lastChunk.usage = await usage;\n lastChunk.finishReason = await finishReason;\n await response;\n }\n\n protected async transformInput(\n input: ChatModelInput,\n ): Promise<Parameters<typeof generateText<Record<string, any>>>[0]> {\n const tools = await Promise.all(\n (input.tools ?? []).map(async (tool) => ({\n name: tool.name,\n description: tool.description,\n parameters: jsonSchema(await tool.getInputJsonSchema()),\n })),\n );\n\n const messages = input.messages.map((msg): CoreMessage => {\n if (msg instanceof AssistantMessage) {\n return { role: \"assistant\", content: msg.content };\n } else if (msg instanceof ToolMessage) {\n return { role: \"tool\", content: msg.content };\n } else if (msg instanceof UserMessage) {\n return { role: \"user\", content: msg.content };\n } else if (msg instanceof SystemMessage) {\n return { role: \"user\", content: msg.content };\n }\n return { role: msg.role, content: msg.content } as CoreMessage;\n });\n\n return {\n ...this.parameters,\n ...input,\n model: this.model,\n tools: mapToObj(tools, ({ name, ...tool }) => [name, tool]),\n messages,\n };\n }\n\n protected transformMessages(messages: (CoreAssistantMessage | CoreToolMessage)[]): Message[] {\n return messages.flatMap((msg) => {\n if (msg.role === \"tool\") {\n return new ToolMessage(msg.content, msg.providerOptions);\n }\n return new AssistantMessage(\n msg.content as TextPart | ToolCallPart | string,\n msg.providerOptions,\n );\n });\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n providerId: this.providerId,\n modelId: this.modelId,\n supportsToolStreaming: this.supportsToolStreaming,\n };\n }\n\n async loadSnapshot({ providerId, modelId, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n const instance = await ChatModel.fromName(`${providerId}:${modelId}` as FullModelName);\n if (!(instance instanceof VercelChatModel)) {\n throw new Error(\"Incorrect deserialization!\");\n }\n instance.destroy();\n Object.assign(this, {\n ...snapshot,\n model: instance.model,\n });\n }\n}\n"]}
|
package/dist/agents/base.cjs
CHANGED
|
@@ -3,9 +3,6 @@
|
|
|
3
3
|
var errors_cjs = require('../errors.cjs');
|
|
4
4
|
var serializable_cjs = require('../internals/serializable.cjs');
|
|
5
5
|
var context_cjs = require('../context.cjs');
|
|
6
|
-
var createTelemetryMiddleware_cjs = require('../instrumentation/create-telemetry-middleware.cjs');
|
|
7
|
-
var config_cjs = require('../instrumentation/config.cjs');
|
|
8
|
-
var remeda = require('remeda');
|
|
9
6
|
|
|
10
7
|
var __defProp = Object.defineProperty;
|
|
11
8
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
@@ -44,7 +41,7 @@ class BaseAgent extends serializable_cjs.Serializable {
|
|
|
44
41
|
} finally {
|
|
45
42
|
this.isRunning = false;
|
|
46
43
|
}
|
|
47
|
-
})
|
|
44
|
+
});
|
|
48
45
|
}
|
|
49
46
|
destroy() {
|
|
50
47
|
this.emitter.destroy();
|
package/dist/agents/base.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["base.ts"],"names":["AgentError","FrameworkError","BaseAgent","Serializable","isRunning","run","input","options","RunContext","enter","signal","params","context","_run","e","
|
|
1
|
+
{"version":3,"sources":["base.ts"],"names":["AgentError","FrameworkError","BaseAgent","Serializable","isRunning","run","input","options","RunContext","enter","signal","params","context","_run","e","destroy","emitter","meta","name","constructor","description","tools","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;;;;;AAuBO,MAAMA,mBAAmBC,yBAAAA,CAAAA;EAvBhC;;;AAuBgD;AAMzC,MAAeC,kBAIZC,6BAAAA,CAAAA;EAjCV;;;EAkCYC,SAAY,GAAA,KAAA;EAIfC,GACF,CAAA,GAAA,CAACC,KAAOC,EAAAA,OAAAA,CAGX,EAAA;AACA,IAAA,IAAI,KAAKH,SAAW,EAAA;AAClB,MAAM,MAAA,IAAIJ,WAAW,2BAAA,CAAA;AACvB;AAEA,IAAOQ,OAAAA,sBAAAA,CAAWC,MAChB,IACA,EAAA;AAAEC,MAAAA,MAAAA,EAAQH,OAASG,EAAAA,MAAAA;MAAQC,MAAQ,EAAA;AAACL,QAAAA,KAAAA;AAAOC,QAAAA;;AAAkB,KAAA,EAC7D,OAAOK,OAAAA,KAAAA;AACL,MAAI,IAAA;AACF,QAAA,IAAA,CAAKR,SAAY,GAAA,IAAA;AAEjB,QAAA,OAAO,MAAM,IAAA,CAAKS,IAAKP,CAAAA,KAAAA,EAAOC,SAASK,OAAAA,CAAAA;AACzC,OAAA,CAAA,OAASE,CAAG,EAAA;AACV,QAAA,IAAIA,aAAad,UAAY,EAAA;AAC3B,UAAMc,MAAAA,CAAAA;SACD,MAAA;AACL,UAAM,MAAA,IAAId,WAAW,CAAuC,mCAAA,CAAA,EAAA;AAACc,YAAAA;AAAE,WAAA,CAAA;AACjE;OACF,SAAA;AACE,QAAA,IAAA,CAAKV,SAAY,GAAA,KAAA;AACnB;KACF,CAAA;AAEJ;EAQAW,OAAU,GAAA;AACR,IAAA,IAAA,CAAKC,QAAQD,OAAO,EAAA;AACtB;AAKA,EAAA,IAAWE,IAAkB,GAAA;AAC3B,IAAO,OAAA;MACLC,IAAM,EAAA,IAAA,CAAKC,YAAYD,IAAQ,IAAA,WAAA;MAC/BE,WAAa,EAAA,EAAA;AACbC,MAAAA,KAAAA,EAAO;AACT,KAAA;AACF;EAEAC,cAAiB,GAAA;AACf,IAAO,OAAA;MAAElB,SAAW,EAAA,KAAA;AAAOY,MAAAA,OAAAA,EAAS,IAAKA,CAAAA;AAAQ,KAAA;AACnD;AAEAO,EAAAA,YAAAA,CAAaC,QAAkD,EAAA;AAC7DC,IAAOC,MAAAA,CAAAA,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF","file":"base.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FrameworkError } from \"@/errors.js\";\nimport { AgentMeta } from \"@/agents/types.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { GetRunContext, RunContext } from \"@/context.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\n\nexport class AgentError extends FrameworkError {}\n\nexport interface BaseAgentRunOptions {\n signal?: AbortSignal;\n}\n\nexport abstract class BaseAgent<\n TInput,\n TOutput,\n TOptions extends BaseAgentRunOptions = BaseAgentRunOptions,\n> extends Serializable {\n protected isRunning = false;\n\n public abstract readonly emitter: Emitter<unknown>;\n\n public run(\n ...[input, options]: Partial<TOptions> extends TOptions\n ? [input: TInput, options?: TOptions]\n : [input: TInput, options: TOptions]\n ) {\n if (this.isRunning) {\n throw new AgentError(\"Agent is already running!\");\n }\n\n return RunContext.enter(\n this,\n { signal: options?.signal, params: [input, options] as const },\n async (context) => {\n try {\n this.isRunning = true;\n // @ts-expect-error\n return await this._run(input, options, context);\n } catch (e) {\n if (e instanceof AgentError) {\n throw e;\n } else {\n throw new AgentError(`The Agent has encountered an error.`, [e]);\n }\n } finally {\n this.isRunning = false;\n }\n },\n );\n }\n\n protected abstract _run(\n input: TInput,\n options: TOptions,\n run: GetRunContext<typeof this>,\n ): Promise<TOutput>;\n\n destroy() {\n this.emitter.destroy();\n }\n\n public abstract set memory(memory: BaseMemory);\n public abstract get memory(): BaseMemory;\n\n public get meta(): AgentMeta {\n return {\n name: this.constructor.name ?? \"BaseAgent\",\n description: \"\",\n tools: [],\n };\n }\n\n createSnapshot() {\n return { isRunning: false, emitter: this.emitter };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
|
package/dist/agents/base.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { FrameworkError } from '../errors.js';
|
|
2
2
|
import { Serializable } from '../internals/serializable.js';
|
|
3
3
|
import { RunContext } from '../context.js';
|
|
4
|
-
import { createTelemetryMiddleware } from '../instrumentation/create-telemetry-middleware.js';
|
|
5
|
-
import { INSTRUMENTATION_ENABLED } from '../instrumentation/config.js';
|
|
6
|
-
import { doNothing } from 'remeda';
|
|
7
4
|
|
|
8
5
|
var __defProp = Object.defineProperty;
|
|
9
6
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
@@ -42,7 +39,7 @@ class BaseAgent extends Serializable {
|
|
|
42
39
|
} finally {
|
|
43
40
|
this.isRunning = false;
|
|
44
41
|
}
|
|
45
|
-
})
|
|
42
|
+
});
|
|
46
43
|
}
|
|
47
44
|
destroy() {
|
|
48
45
|
this.emitter.destroy();
|
package/dist/agents/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["base.ts"],"names":["AgentError","FrameworkError","BaseAgent","Serializable","isRunning","run","input","options","RunContext","enter","signal","params","context","_run","e","
|
|
1
|
+
{"version":3,"sources":["base.ts"],"names":["AgentError","FrameworkError","BaseAgent","Serializable","isRunning","run","input","options","RunContext","enter","signal","params","context","_run","e","destroy","emitter","meta","name","constructor","description","tools","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;;;AAuBO,MAAMA,mBAAmBC,cAAAA,CAAAA;EAvBhC;;;AAuBgD;AAMzC,MAAeC,kBAIZC,YAAAA,CAAAA;EAjCV;;;EAkCYC,SAAY,GAAA,KAAA;EAIfC,GACF,CAAA,GAAA,CAACC,KAAOC,EAAAA,OAAAA,CAGX,EAAA;AACA,IAAA,IAAI,KAAKH,SAAW,EAAA;AAClB,MAAM,MAAA,IAAIJ,WAAW,2BAAA,CAAA;AACvB;AAEA,IAAOQ,OAAAA,UAAAA,CAAWC,MAChB,IACA,EAAA;AAAEC,MAAAA,MAAAA,EAAQH,OAASG,EAAAA,MAAAA;MAAQC,MAAQ,EAAA;AAACL,QAAAA,KAAAA;AAAOC,QAAAA;;AAAkB,KAAA,EAC7D,OAAOK,OAAAA,KAAAA;AACL,MAAI,IAAA;AACF,QAAA,IAAA,CAAKR,SAAY,GAAA,IAAA;AAEjB,QAAA,OAAO,MAAM,IAAA,CAAKS,IAAKP,CAAAA,KAAAA,EAAOC,SAASK,OAAAA,CAAAA;AACzC,OAAA,CAAA,OAASE,CAAG,EAAA;AACV,QAAA,IAAIA,aAAad,UAAY,EAAA;AAC3B,UAAMc,MAAAA,CAAAA;SACD,MAAA;AACL,UAAM,MAAA,IAAId,WAAW,CAAuC,mCAAA,CAAA,EAAA;AAACc,YAAAA;AAAE,WAAA,CAAA;AACjE;OACF,SAAA;AACE,QAAA,IAAA,CAAKV,SAAY,GAAA,KAAA;AACnB;KACF,CAAA;AAEJ;EAQAW,OAAU,GAAA;AACR,IAAA,IAAA,CAAKC,QAAQD,OAAO,EAAA;AACtB;AAKA,EAAA,IAAWE,IAAkB,GAAA;AAC3B,IAAO,OAAA;MACLC,IAAM,EAAA,IAAA,CAAKC,YAAYD,IAAQ,IAAA,WAAA;MAC/BE,WAAa,EAAA,EAAA;AACbC,MAAAA,KAAAA,EAAO;AACT,KAAA;AACF;EAEAC,cAAiB,GAAA;AACf,IAAO,OAAA;MAAElB,SAAW,EAAA,KAAA;AAAOY,MAAAA,OAAAA,EAAS,IAAKA,CAAAA;AAAQ,KAAA;AACnD;AAEAO,EAAAA,YAAAA,CAAaC,QAAkD,EAAA;AAC7DC,IAAOC,MAAAA,CAAAA,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF","file":"base.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FrameworkError } from \"@/errors.js\";\nimport { AgentMeta } from \"@/agents/types.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { GetRunContext, RunContext } from \"@/context.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\n\nexport class AgentError extends FrameworkError {}\n\nexport interface BaseAgentRunOptions {\n signal?: AbortSignal;\n}\n\nexport abstract class BaseAgent<\n TInput,\n TOutput,\n TOptions extends BaseAgentRunOptions = BaseAgentRunOptions,\n> extends Serializable {\n protected isRunning = false;\n\n public abstract readonly emitter: Emitter<unknown>;\n\n public run(\n ...[input, options]: Partial<TOptions> extends TOptions\n ? [input: TInput, options?: TOptions]\n : [input: TInput, options: TOptions]\n ) {\n if (this.isRunning) {\n throw new AgentError(\"Agent is already running!\");\n }\n\n return RunContext.enter(\n this,\n { signal: options?.signal, params: [input, options] as const },\n async (context) => {\n try {\n this.isRunning = true;\n // @ts-expect-error\n return await this._run(input, options, context);\n } catch (e) {\n if (e instanceof AgentError) {\n throw e;\n } else {\n throw new AgentError(`The Agent has encountered an error.`, [e]);\n }\n } finally {\n this.isRunning = false;\n }\n },\n );\n }\n\n protected abstract _run(\n input: TInput,\n options: TOptions,\n run: GetRunContext<typeof this>,\n ): Promise<TOutput>;\n\n destroy() {\n this.emitter.destroy();\n }\n\n public abstract set memory(memory: BaseMemory);\n public abstract get memory(): BaseMemory;\n\n public get meta(): AgentMeta {\n return {\n name: this.constructor.name ?? \"BaseAgent\",\n description: \"\",\n tools: [],\n };\n }\n\n createSnapshot() {\n return { isRunning: false, emitter: this.emitter };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
|
|
@@ -39,12 +39,12 @@ declare const ReActAgentSystemPrompt: PromptTemplate<z.ZodObject<{
|
|
|
39
39
|
}, z.ZodTypeAny, "passthrough">>, "many">;
|
|
40
40
|
createdAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
41
41
|
}, "strip", z.ZodTypeAny, {
|
|
42
|
-
instructions: string;
|
|
43
42
|
tools: z.objectOutputType<{
|
|
44
43
|
name: z.ZodString;
|
|
45
44
|
description: z.ZodString;
|
|
46
45
|
schema: z.ZodString;
|
|
47
46
|
}, z.ZodTypeAny, "passthrough">[];
|
|
47
|
+
instructions: string;
|
|
48
48
|
createdAt?: string | null | undefined;
|
|
49
49
|
}, {
|
|
50
50
|
tools: z.objectInputType<{
|
|
@@ -52,8 +52,8 @@ declare const ReActAgentSystemPrompt: PromptTemplate<z.ZodObject<{
|
|
|
52
52
|
description: z.ZodString;
|
|
53
53
|
schema: z.ZodString;
|
|
54
54
|
}, z.ZodTypeAny, "passthrough">[];
|
|
55
|
-
createdAt?: string | null | undefined;
|
|
56
55
|
instructions?: string | undefined;
|
|
56
|
+
createdAt?: string | null | undefined;
|
|
57
57
|
}>>;
|
|
58
58
|
declare const ReActAgentAssistantPrompt: PromptTemplate<z.ZodObject<{
|
|
59
59
|
thought: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
@@ -62,14 +62,14 @@ declare const ReActAgentAssistantPrompt: PromptTemplate<z.ZodObject<{
|
|
|
62
62
|
toolOutput: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
63
63
|
finalAnswer: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
64
64
|
}, "strip", z.ZodTypeAny, {
|
|
65
|
-
toolName?: string[] | undefined;
|
|
66
65
|
thought?: string[] | undefined;
|
|
66
|
+
toolName?: string[] | undefined;
|
|
67
67
|
toolInput?: string[] | undefined;
|
|
68
68
|
toolOutput?: string[] | undefined;
|
|
69
69
|
finalAnswer?: string[] | undefined;
|
|
70
70
|
}, {
|
|
71
|
-
toolName?: string[] | undefined;
|
|
72
71
|
thought?: string[] | undefined;
|
|
72
|
+
toolName?: string[] | undefined;
|
|
73
73
|
toolInput?: string[] | undefined;
|
|
74
74
|
toolOutput?: string[] | undefined;
|
|
75
75
|
finalAnswer?: string[] | undefined;
|
|
@@ -39,12 +39,12 @@ declare const ReActAgentSystemPrompt: PromptTemplate<z.ZodObject<{
|
|
|
39
39
|
}, z.ZodTypeAny, "passthrough">>, "many">;
|
|
40
40
|
createdAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
41
41
|
}, "strip", z.ZodTypeAny, {
|
|
42
|
-
instructions: string;
|
|
43
42
|
tools: z.objectOutputType<{
|
|
44
43
|
name: z.ZodString;
|
|
45
44
|
description: z.ZodString;
|
|
46
45
|
schema: z.ZodString;
|
|
47
46
|
}, z.ZodTypeAny, "passthrough">[];
|
|
47
|
+
instructions: string;
|
|
48
48
|
createdAt?: string | null | undefined;
|
|
49
49
|
}, {
|
|
50
50
|
tools: z.objectInputType<{
|
|
@@ -52,8 +52,8 @@ declare const ReActAgentSystemPrompt: PromptTemplate<z.ZodObject<{
|
|
|
52
52
|
description: z.ZodString;
|
|
53
53
|
schema: z.ZodString;
|
|
54
54
|
}, z.ZodTypeAny, "passthrough">[];
|
|
55
|
-
createdAt?: string | null | undefined;
|
|
56
55
|
instructions?: string | undefined;
|
|
56
|
+
createdAt?: string | null | undefined;
|
|
57
57
|
}>>;
|
|
58
58
|
declare const ReActAgentAssistantPrompt: PromptTemplate<z.ZodObject<{
|
|
59
59
|
thought: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
@@ -62,14 +62,14 @@ declare const ReActAgentAssistantPrompt: PromptTemplate<z.ZodObject<{
|
|
|
62
62
|
toolOutput: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
63
63
|
finalAnswer: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
64
64
|
}, "strip", z.ZodTypeAny, {
|
|
65
|
-
toolName?: string[] | undefined;
|
|
66
65
|
thought?: string[] | undefined;
|
|
66
|
+
toolName?: string[] | undefined;
|
|
67
67
|
toolInput?: string[] | undefined;
|
|
68
68
|
toolOutput?: string[] | undefined;
|
|
69
69
|
finalAnswer?: string[] | undefined;
|
|
70
70
|
}, {
|
|
71
|
-
toolName?: string[] | undefined;
|
|
72
71
|
thought?: string[] | undefined;
|
|
72
|
+
toolName?: string[] | undefined;
|
|
73
73
|
toolInput?: string[] | undefined;
|
|
74
74
|
toolOutput?: string[] | undefined;
|
|
75
75
|
finalAnswer?: string[] | undefined;
|
|
@@ -28,14 +28,14 @@ declare const DeepThinkReActAgentAssistantPrompt: PromptTemplate<zod.ZodObject<{
|
|
|
28
28
|
toolOutput: zod.ZodOptional<zod.ZodArray<zod.ZodString, "many">>;
|
|
29
29
|
finalAnswer: zod.ZodOptional<zod.ZodArray<zod.ZodString, "many">>;
|
|
30
30
|
}, "strip", zod.ZodTypeAny, {
|
|
31
|
-
toolName?: string[] | undefined;
|
|
32
31
|
thought?: string[] | undefined;
|
|
32
|
+
toolName?: string[] | undefined;
|
|
33
33
|
toolInput?: string[] | undefined;
|
|
34
34
|
toolOutput?: string[] | undefined;
|
|
35
35
|
finalAnswer?: string[] | undefined;
|
|
36
36
|
}, {
|
|
37
|
-
toolName?: string[] | undefined;
|
|
38
37
|
thought?: string[] | undefined;
|
|
38
|
+
toolName?: string[] | undefined;
|
|
39
39
|
toolInput?: string[] | undefined;
|
|
40
40
|
toolOutput?: string[] | undefined;
|
|
41
41
|
finalAnswer?: string[] | undefined;
|
|
@@ -57,12 +57,12 @@ declare const DeepThinkReActAgentSystemPrompt: PromptTemplate<zod.ZodObject<{
|
|
|
57
57
|
}, zod.ZodTypeAny, "passthrough">>, "many">;
|
|
58
58
|
createdAt: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
|
|
59
59
|
}, "strip", zod.ZodTypeAny, {
|
|
60
|
-
instructions: string;
|
|
61
60
|
tools: zod.objectOutputType<{
|
|
62
61
|
name: zod.ZodString;
|
|
63
62
|
description: zod.ZodString;
|
|
64
63
|
schema: zod.ZodString;
|
|
65
64
|
}, zod.ZodTypeAny, "passthrough">[];
|
|
65
|
+
instructions: string;
|
|
66
66
|
createdAt?: string | null | undefined;
|
|
67
67
|
}, {
|
|
68
68
|
tools: zod.objectInputType<{
|
|
@@ -70,8 +70,8 @@ declare const DeepThinkReActAgentSystemPrompt: PromptTemplate<zod.ZodObject<{
|
|
|
70
70
|
description: zod.ZodString;
|
|
71
71
|
schema: zod.ZodString;
|
|
72
72
|
}, zod.ZodTypeAny, "passthrough">[];
|
|
73
|
-
createdAt?: string | null | undefined;
|
|
74
73
|
instructions?: string | undefined;
|
|
74
|
+
createdAt?: string | null | undefined;
|
|
75
75
|
}>>;
|
|
76
76
|
declare const DeepThinkReActAgentSchemaErrorPrompt: PromptTemplate<zod.ZodObject<{}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{}, zod.ZodTypeAny, "passthrough">>>;
|
|
77
77
|
declare const DeepThinkReActAgentUserPrompt: PromptTemplate<zod.ZodObject<{
|
|
@@ -28,14 +28,14 @@ declare const DeepThinkReActAgentAssistantPrompt: PromptTemplate<zod.ZodObject<{
|
|
|
28
28
|
toolOutput: zod.ZodOptional<zod.ZodArray<zod.ZodString, "many">>;
|
|
29
29
|
finalAnswer: zod.ZodOptional<zod.ZodArray<zod.ZodString, "many">>;
|
|
30
30
|
}, "strip", zod.ZodTypeAny, {
|
|
31
|
-
toolName?: string[] | undefined;
|
|
32
31
|
thought?: string[] | undefined;
|
|
32
|
+
toolName?: string[] | undefined;
|
|
33
33
|
toolInput?: string[] | undefined;
|
|
34
34
|
toolOutput?: string[] | undefined;
|
|
35
35
|
finalAnswer?: string[] | undefined;
|
|
36
36
|
}, {
|
|
37
|
-
toolName?: string[] | undefined;
|
|
38
37
|
thought?: string[] | undefined;
|
|
38
|
+
toolName?: string[] | undefined;
|
|
39
39
|
toolInput?: string[] | undefined;
|
|
40
40
|
toolOutput?: string[] | undefined;
|
|
41
41
|
finalAnswer?: string[] | undefined;
|
|
@@ -57,12 +57,12 @@ declare const DeepThinkReActAgentSystemPrompt: PromptTemplate<zod.ZodObject<{
|
|
|
57
57
|
}, zod.ZodTypeAny, "passthrough">>, "many">;
|
|
58
58
|
createdAt: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
|
|
59
59
|
}, "strip", zod.ZodTypeAny, {
|
|
60
|
-
instructions: string;
|
|
61
60
|
tools: zod.objectOutputType<{
|
|
62
61
|
name: zod.ZodString;
|
|
63
62
|
description: zod.ZodString;
|
|
64
63
|
schema: zod.ZodString;
|
|
65
64
|
}, zod.ZodTypeAny, "passthrough">[];
|
|
65
|
+
instructions: string;
|
|
66
66
|
createdAt?: string | null | undefined;
|
|
67
67
|
}, {
|
|
68
68
|
tools: zod.objectInputType<{
|
|
@@ -70,8 +70,8 @@ declare const DeepThinkReActAgentSystemPrompt: PromptTemplate<zod.ZodObject<{
|
|
|
70
70
|
description: zod.ZodString;
|
|
71
71
|
schema: zod.ZodString;
|
|
72
72
|
}, zod.ZodTypeAny, "passthrough">[];
|
|
73
|
-
createdAt?: string | null | undefined;
|
|
74
73
|
instructions?: string | undefined;
|
|
74
|
+
createdAt?: string | null | undefined;
|
|
75
75
|
}>>;
|
|
76
76
|
declare const DeepThinkReActAgentSchemaErrorPrompt: PromptTemplate<zod.ZodObject<{}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{}, zod.ZodTypeAny, "passthrough">>>;
|
|
77
77
|
declare const DeepThinkReActAgentUserPrompt: PromptTemplate<zod.ZodObject<{
|
|
@@ -51,12 +51,12 @@ declare class DeepThinkRunner extends DefaultRunner {
|
|
|
51
51
|
}, z.ZodTypeAny, "passthrough">>, "many">;
|
|
52
52
|
createdAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
53
53
|
}, "strip", z.ZodTypeAny, {
|
|
54
|
-
instructions: string;
|
|
55
54
|
tools: z.objectOutputType<{
|
|
56
55
|
name: z.ZodString;
|
|
57
56
|
description: z.ZodString;
|
|
58
57
|
schema: z.ZodString;
|
|
59
58
|
}, z.ZodTypeAny, "passthrough">[];
|
|
59
|
+
instructions: string;
|
|
60
60
|
createdAt?: string | null | undefined;
|
|
61
61
|
}, {
|
|
62
62
|
tools: z.objectInputType<{
|
|
@@ -64,8 +64,8 @@ declare class DeepThinkRunner extends DefaultRunner {
|
|
|
64
64
|
description: z.ZodString;
|
|
65
65
|
schema: z.ZodString;
|
|
66
66
|
}, z.ZodTypeAny, "passthrough">[];
|
|
67
|
-
createdAt?: string | null | undefined;
|
|
68
67
|
instructions?: string | undefined;
|
|
68
|
+
createdAt?: string | null | undefined;
|
|
69
69
|
}>>;
|
|
70
70
|
assistant: PromptTemplate<z.ZodObject<{
|
|
71
71
|
thought: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
@@ -74,14 +74,14 @@ declare class DeepThinkRunner extends DefaultRunner {
|
|
|
74
74
|
toolOutput: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
75
75
|
finalAnswer: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
76
76
|
}, "strip", z.ZodTypeAny, {
|
|
77
|
-
toolName?: string[] | undefined;
|
|
78
77
|
thought?: string[] | undefined;
|
|
78
|
+
toolName?: string[] | undefined;
|
|
79
79
|
toolInput?: string[] | undefined;
|
|
80
80
|
toolOutput?: string[] | undefined;
|
|
81
81
|
finalAnswer?: string[] | undefined;
|
|
82
82
|
}, {
|
|
83
|
-
toolName?: string[] | undefined;
|
|
84
83
|
thought?: string[] | undefined;
|
|
84
|
+
toolName?: string[] | undefined;
|
|
85
85
|
toolInput?: string[] | undefined;
|
|
86
86
|
toolOutput?: string[] | undefined;
|
|
87
87
|
finalAnswer?: string[] | undefined;
|
|
@@ -51,12 +51,12 @@ declare class DeepThinkRunner extends DefaultRunner {
|
|
|
51
51
|
}, z.ZodTypeAny, "passthrough">>, "many">;
|
|
52
52
|
createdAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
53
53
|
}, "strip", z.ZodTypeAny, {
|
|
54
|
-
instructions: string;
|
|
55
54
|
tools: z.objectOutputType<{
|
|
56
55
|
name: z.ZodString;
|
|
57
56
|
description: z.ZodString;
|
|
58
57
|
schema: z.ZodString;
|
|
59
58
|
}, z.ZodTypeAny, "passthrough">[];
|
|
59
|
+
instructions: string;
|
|
60
60
|
createdAt?: string | null | undefined;
|
|
61
61
|
}, {
|
|
62
62
|
tools: z.objectInputType<{
|
|
@@ -64,8 +64,8 @@ declare class DeepThinkRunner extends DefaultRunner {
|
|
|
64
64
|
description: z.ZodString;
|
|
65
65
|
schema: z.ZodString;
|
|
66
66
|
}, z.ZodTypeAny, "passthrough">[];
|
|
67
|
-
createdAt?: string | null | undefined;
|
|
68
67
|
instructions?: string | undefined;
|
|
68
|
+
createdAt?: string | null | undefined;
|
|
69
69
|
}>>;
|
|
70
70
|
assistant: PromptTemplate<z.ZodObject<{
|
|
71
71
|
thought: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
@@ -74,14 +74,14 @@ declare class DeepThinkRunner extends DefaultRunner {
|
|
|
74
74
|
toolOutput: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
75
75
|
finalAnswer: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
76
76
|
}, "strip", z.ZodTypeAny, {
|
|
77
|
-
toolName?: string[] | undefined;
|
|
78
77
|
thought?: string[] | undefined;
|
|
78
|
+
toolName?: string[] | undefined;
|
|
79
79
|
toolInput?: string[] | undefined;
|
|
80
80
|
toolOutput?: string[] | undefined;
|
|
81
81
|
finalAnswer?: string[] | undefined;
|
|
82
82
|
}, {
|
|
83
|
-
toolName?: string[] | undefined;
|
|
84
83
|
thought?: string[] | undefined;
|
|
84
|
+
toolName?: string[] | undefined;
|
|
85
85
|
toolInput?: string[] | undefined;
|
|
86
86
|
toolOutput?: string[] | undefined;
|
|
87
87
|
finalAnswer?: string[] | undefined;
|
|
@@ -51,12 +51,12 @@ declare class DefaultRunner extends BaseRunner {
|
|
|
51
51
|
}, z.ZodTypeAny, "passthrough">>, "many">;
|
|
52
52
|
createdAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
53
53
|
}, "strip", z.ZodTypeAny, {
|
|
54
|
-
instructions: string;
|
|
55
54
|
tools: z.objectOutputType<{
|
|
56
55
|
name: z.ZodString;
|
|
57
56
|
description: z.ZodString;
|
|
58
57
|
schema: z.ZodString;
|
|
59
58
|
}, z.ZodTypeAny, "passthrough">[];
|
|
59
|
+
instructions: string;
|
|
60
60
|
createdAt?: string | null | undefined;
|
|
61
61
|
}, {
|
|
62
62
|
tools: z.objectInputType<{
|
|
@@ -64,8 +64,8 @@ declare class DefaultRunner extends BaseRunner {
|
|
|
64
64
|
description: z.ZodString;
|
|
65
65
|
schema: z.ZodString;
|
|
66
66
|
}, z.ZodTypeAny, "passthrough">[];
|
|
67
|
-
createdAt?: string | null | undefined;
|
|
68
67
|
instructions?: string | undefined;
|
|
68
|
+
createdAt?: string | null | undefined;
|
|
69
69
|
}>>;
|
|
70
70
|
assistant: PromptTemplate<z.ZodObject<{
|
|
71
71
|
thought: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
@@ -74,14 +74,14 @@ declare class DefaultRunner extends BaseRunner {
|
|
|
74
74
|
toolOutput: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
75
75
|
finalAnswer: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
76
76
|
}, "strip", z.ZodTypeAny, {
|
|
77
|
-
toolName?: string[] | undefined;
|
|
78
77
|
thought?: string[] | undefined;
|
|
78
|
+
toolName?: string[] | undefined;
|
|
79
79
|
toolInput?: string[] | undefined;
|
|
80
80
|
toolOutput?: string[] | undefined;
|
|
81
81
|
finalAnswer?: string[] | undefined;
|
|
82
82
|
}, {
|
|
83
|
-
toolName?: string[] | undefined;
|
|
84
83
|
thought?: string[] | undefined;
|
|
84
|
+
toolName?: string[] | undefined;
|
|
85
85
|
toolInput?: string[] | undefined;
|
|
86
86
|
toolOutput?: string[] | undefined;
|
|
87
87
|
finalAnswer?: string[] | undefined;
|