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.
Files changed (104) hide show
  1. package/README.md +21 -14
  2. package/dist/adapters/vercel/backend/chat.cjs +11 -1
  3. package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
  4. package/dist/adapters/vercel/backend/chat.js +12 -2
  5. package/dist/adapters/vercel/backend/chat.js.map +1 -1
  6. package/dist/agents/base.cjs +1 -4
  7. package/dist/agents/base.cjs.map +1 -1
  8. package/dist/agents/base.js +1 -4
  9. package/dist/agents/base.js.map +1 -1
  10. package/dist/agents/react/prompts.d.cts +4 -4
  11. package/dist/agents/react/prompts.d.ts +4 -4
  12. package/dist/agents/react/runners/deep-think/prompts.d.cts +4 -4
  13. package/dist/agents/react/runners/deep-think/prompts.d.ts +4 -4
  14. package/dist/agents/react/runners/deep-think/runner.d.cts +4 -4
  15. package/dist/agents/react/runners/deep-think/runner.d.ts +4 -4
  16. package/dist/agents/react/runners/default/runner.d.cts +4 -4
  17. package/dist/agents/react/runners/default/runner.d.ts +4 -4
  18. package/dist/agents/react/runners/granite/prompts.d.cts +4 -4
  19. package/dist/agents/react/runners/granite/prompts.d.ts +4 -4
  20. package/dist/agents/react/runners/granite/runner.d.cts +4 -4
  21. package/dist/agents/react/runners/granite/runner.d.ts +4 -4
  22. package/dist/backend/chat.cjs +1 -3
  23. package/dist/backend/chat.cjs.map +1 -1
  24. package/dist/backend/chat.js +2 -4
  25. package/dist/backend/chat.js.map +1 -1
  26. package/dist/tools/base.cjs +1 -3
  27. package/dist/tools/base.cjs.map +1 -1
  28. package/dist/tools/base.js +2 -4
  29. package/dist/tools/base.js.map +1 -1
  30. package/dist/tools/database/milvus.d.cts +4 -4
  31. package/dist/tools/database/milvus.d.ts +4 -4
  32. package/dist/version.cjs +1 -1
  33. package/dist/version.cjs.map +1 -1
  34. package/dist/version.js +1 -1
  35. package/dist/version.js.map +1 -1
  36. package/dist/workflows/agent.d.cts +45 -45
  37. package/dist/workflows/agent.d.ts +45 -45
  38. package/package.json +1 -8
  39. package/dist/instrumentation/config.cjs +0 -12
  40. package/dist/instrumentation/config.cjs.map +0 -1
  41. package/dist/instrumentation/config.d.cts +0 -19
  42. package/dist/instrumentation/config.d.ts +0 -19
  43. package/dist/instrumentation/config.js +0 -9
  44. package/dist/instrumentation/config.js.map +0 -1
  45. package/dist/instrumentation/create-telemetry-middleware.cjs +0 -239
  46. package/dist/instrumentation/create-telemetry-middleware.cjs.map +0 -1
  47. package/dist/instrumentation/create-telemetry-middleware.d.cts +0 -26
  48. package/dist/instrumentation/create-telemetry-middleware.d.ts +0 -26
  49. package/dist/instrumentation/create-telemetry-middleware.js +0 -237
  50. package/dist/instrumentation/create-telemetry-middleware.js.map +0 -1
  51. package/dist/instrumentation/helpers/create-span.cjs +0 -36
  52. package/dist/instrumentation/helpers/create-span.cjs.map +0 -1
  53. package/dist/instrumentation/helpers/create-span.d.cts +0 -34
  54. package/dist/instrumentation/helpers/create-span.d.ts +0 -34
  55. package/dist/instrumentation/helpers/create-span.js +0 -34
  56. package/dist/instrumentation/helpers/create-span.js.map +0 -1
  57. package/dist/instrumentation/helpers/get-error-safe.cjs +0 -20
  58. package/dist/instrumentation/helpers/get-error-safe.cjs.map +0 -1
  59. package/dist/instrumentation/helpers/get-error-safe.d.cts +0 -18
  60. package/dist/instrumentation/helpers/get-error-safe.d.ts +0 -18
  61. package/dist/instrumentation/helpers/get-error-safe.js +0 -18
  62. package/dist/instrumentation/helpers/get-error-safe.js.map +0 -1
  63. package/dist/instrumentation/helpers/get-serialized-object-safe.cjs +0 -27
  64. package/dist/instrumentation/helpers/get-serialized-object-safe.cjs.map +0 -1
  65. package/dist/instrumentation/helpers/get-serialized-object-safe.d.cts +0 -18
  66. package/dist/instrumentation/helpers/get-serialized-object-safe.d.ts +0 -18
  67. package/dist/instrumentation/helpers/get-serialized-object-safe.js +0 -25
  68. package/dist/instrumentation/helpers/get-serialized-object-safe.js.map +0 -1
  69. package/dist/instrumentation/helpers/id-name-manager.cjs +0 -34
  70. package/dist/instrumentation/helpers/id-name-manager.cjs.map +0 -1
  71. package/dist/instrumentation/helpers/id-name-manager.d.cts +0 -31
  72. package/dist/instrumentation/helpers/id-name-manager.d.ts +0 -31
  73. package/dist/instrumentation/helpers/id-name-manager.js +0 -32
  74. package/dist/instrumentation/helpers/id-name-manager.js.map +0 -1
  75. package/dist/instrumentation/helpers/trace-serializer.cjs +0 -30
  76. package/dist/instrumentation/helpers/trace-serializer.cjs.map +0 -1
  77. package/dist/instrumentation/helpers/trace-serializer.d.cts +0 -20
  78. package/dist/instrumentation/helpers/trace-serializer.d.ts +0 -20
  79. package/dist/instrumentation/helpers/trace-serializer.js +0 -28
  80. package/dist/instrumentation/helpers/trace-serializer.js.map +0 -1
  81. package/dist/instrumentation/helpers/utils.cjs +0 -14
  82. package/dist/instrumentation/helpers/utils.cjs.map +0 -1
  83. package/dist/instrumentation/helpers/utils.d.cts +0 -40
  84. package/dist/instrumentation/helpers/utils.d.ts +0 -40
  85. package/dist/instrumentation/helpers/utils.js +0 -12
  86. package/dist/instrumentation/helpers/utils.js.map +0 -1
  87. package/dist/instrumentation/logger.cjs +0 -12
  88. package/dist/instrumentation/logger.cjs.map +0 -1
  89. package/dist/instrumentation/logger.d.cts +0 -26
  90. package/dist/instrumentation/logger.d.ts +0 -26
  91. package/dist/instrumentation/logger.js +0 -10
  92. package/dist/instrumentation/logger.js.map +0 -1
  93. package/dist/instrumentation/tracer.cjs +0 -84
  94. package/dist/instrumentation/tracer.cjs.map +0 -1
  95. package/dist/instrumentation/tracer.d.cts +0 -36
  96. package/dist/instrumentation/tracer.d.ts +0 -36
  97. package/dist/instrumentation/tracer.js +0 -76
  98. package/dist/instrumentation/tracer.js.map +0 -1
  99. package/dist/instrumentation/types.cjs +0 -4
  100. package/dist/instrumentation/types.cjs.map +0 -1
  101. package/dist/instrumentation/types.d.cts +0 -39
  102. package/dist/instrumentation/types.d.ts +0 -39
  103. package/dist/instrumentation/types.js +0 -3
  104. 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 | 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
- | [**instrumentation**](/typescript/docs/instrumentation.md) | Integrate monitoring tools into your application. |
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.text
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":";;;;;;;;;;;;;AAmDO,MAAeA,wBAEZC,kBAAAA,CAAAA;EArDV;;;;AAsDkBC,EAAAA,OAAAA;AACAC,EAAAA,qBAAAA;AAEhBC,EAAAA,WAAAA,CAA6BC,KAAU,EAAA;AACrC,IAAA,KAAA,EAAK,EAAA,IAAA,CADsBA,KAAAA,GAAAA,KAAAA,EAAAA,KAFbF,qBAAiC,GAAA,IAAA;AAI/C,IAAI,IAAA,CAAC,KAAKG,OAAS,EAAA;AACjB,MAAM,MAAA,IAAIC,sBAAW,+BAAA,CAAA;AACvB;AACA,IAAKL,IAAAA,CAAAA,OAAAA,GAAUM,mBAAQC,CAAAA,IAAAA,CAAKC,KAAM,CAAA;MAChCC,SAAW,EAAA;AAAC,QAAA,SAAA;QAAW,IAAKC,CAAAA,UAAAA;AAAY,QAAA;;MACxCC,OAAS,EAAA;KACX,CAAA;AACF;AAEA,EAAA,IAAIP,OAAkB,GAAA;AACpB,IAAA,OAAO,KAAKD,KAAMC,CAAAA,OAAAA;AACpB;AAEA,EAAA,IAAIM,UAAqB,GAAA;AACvB,IAAA,MAAME,QAAW,GAAA,IAAA,CAAKT,KAAMS,CAAAA,QAAAA,CAASC,KAAM,CAAA,GAAA,CAAK,CAAA,CAAA,CAAGA,CAAAA,KAAAA,CAAM,GAAA,CAAA,CAAK,CAAA,CAAA;AAC9D,IAAA,OAAOC,mBAAYF,QAAAA,CAAAA;AACrB;EAEA,MAAgBG,OAAAA,CAAQC,OAAuBC,IAA2B,EAAA;AACxE,IAAA,MAAM,EACJC,YAAAA,EACAC,KACAC,EAAAA,QAAAA,EAAU,EAAEC,QAAQ,EAAA,EAClB,GAAA,MAAMC,eAAa,CAAA,MAAM,IAAKC,CAAAA,cAAAA,CAAeP,KAAAA,CAAAA,CAAAA;AAEjD,IAAA,OAAO,IAAIQ,wBAAgB,CAAA,IAAA,CAAKC,kBAAkBJ,QAAAA,CAAAA,EAAWF,OAAOD,YAAAA,CAAAA;AACtE;AAEA,EAAA,MAAgBQ,iBACd,EAAEC,MAAAA,EAAQ,GAAGX,KAAAA,IACbY,GACmC,EAAA;AACnC,IAAMC,MAAAA,WAAAA,GAAcF,OAAOG,MAAUH,IAAAA,MAAAA;AAErC,IAAMP,MAAAA,QAAAA,GAAW,MAAMW,iBAAe,CAAA;MACpCC,WAAa,EAAA,CAAA;MACb,GAAI,MAAM,IAAKT,CAAAA,cAAAA,CAAeP,KAAAA,CAAAA;AAC9BW,MAAAA,MAAAA;AACAM,MAAAA,WAAAA,EAAaL,GAAIM,CAAAA,MAAAA;AACjB/B,MAAAA,KAAAA,EAAO,IAAKA,CAAAA,KAAAA;;AAEZgC,MAAAA,MAAAA,EACEN,WAAuBO,YAAAA,YAAAA,GACnB,OACAP,GAAAA,WAAAA,YAAuBQ,cACrB,MACA,GAAA;KACV,CAAA;AAEA,IAAO,OAAA;AAAEC,MAAAA,MAAAA,EAAQlB,QAASkB,CAAAA;AAAO,KAAA;AACnC;EAEA,OAAOC,aAAAA,CAAcvB,OAAuBY,GAA0B,EAAA;AACpE,IAAI,IAAA,CAAC,KAAK3B,qBAAyB,IAAA,CAACuC,eAAQxB,KAAMyB,CAAAA,KAAAA,IAAS,EAAE,CAAG,EAAA;AAC9D,MAAA,MAAMrB,SAAW,GAAA,MAAM,IAAKL,CAAAA,OAAAA,CAAQC,OAAOY,GAAAA,CAAAA;AAC3C,MAAMR,MAAAA,SAAAA;AACN,MAAA;AACF;AAEA,IAAA,MAAM,EAAEsB,UAAYvB,EAAAA,KAAAA,EAAOD,YAAcE,EAAAA,QAAAA,KAAauB,aAAW,CAAA;MAC/D,GAAI,MAAM,IAAKpB,CAAAA,cAAAA,CAAeP,KAAAA,CAAAA;AAC9BiB,MAAAA,WAAAA,EAAaL,GAAIM,CAAAA;KACnB,CAAA;AAEA,IAAA,IAAIU,SAAoC,GAAA,IAAA;AACxC,IAAA,WAAA,MAAiBC,SAASH,UAAY,EAAA;AACpC,MAAII,IAAAA,OAAAA;AACJ,MAAA,QAAQD,MAAME,IAAI;QAChB,KAAK,YAAA;AACHD,UAAU,OAAA,GAAA,IAAIE,4BAAiBH,CAAAA,KAAAA,CAAMI,SAAS,CAAA;AAC9C,UAAA;QACF,KAAK,WAAA;AACHH,UAAAA,OAAAA,GAAU,IAAIE,4BAAiB,CAAA;AAC7BD,YAAAA,IAAAA,EAAMF,KAAME,CAAAA,IAAAA;AACZG,YAAAA,UAAAA,EAAYL,KAAMK,CAAAA,UAAAA;AAClBC,YAAAA,QAAAA,EAAUN,KAAMM,CAAAA,QAAAA;AAChBC,YAAAA,IAAAA,EAAMP,KAAMO,CAAAA;WACd,CAAA;AACA,UAAA;QACF,KAAK,OAAA;AACH,UAAM,MAAA,IAAIC,4BAAe,iBAAmB,EAAA;YAACR,KAAMS,CAAAA;AAAe,WAAA,CAAA;QACpE,KAAK,aAAA;QACL,KAAK,YAAA;AACH,UAAA;QACF,KAAK,aAAA;AACHR,UAAAA,OAAAA,GAAU,IAAIS,uBAAY,CAAA;AACxBR,YAAAA,IAAAA,EAAMF,KAAME,CAAAA,IAAAA;AACZG,YAAAA,UAAAA,EAAYL,KAAMK,CAAAA,UAAAA;AAClBC,YAAAA,QAAAA,EAAUN,KAAMM,CAAAA,QAAAA;AAChBK,YAAAA,MAAAA,EAAQX,KAAMW,CAAAA;WAChB,CAAA;AACA,UAAA;QACF,KAAK,2BAAA;QACL,KAAK,iBAAA;AACH,UAAA;QACF,KAAK,QAAA;AACH,UAAA;AACF,QAAA;AACE,UAAA,MAAM,IAAIC,KAAAA,CAAM,CAAoBZ,iBAAAA,EAAAA,KAAAA,CAAME,IAAI,CAAG,CAAA,CAAA,CAAA;AACrD;AACAH,MAAAA,SAAAA,GAAY,IAAIpB,wBAAgB,CAAA;AAACsB,QAAAA;AAAQ,OAAA,CAAA;AACzC,MAAMF,MAAAA,SAAAA;AACR;AAEA,IAAA,IAAI,CAACA,SAAW,EAAA;AACd,MAAM,MAAA,IAAIS,4BAAe,+BAAA,CAAA;AAC3B;AACAT,IAAAA,SAAAA,CAAUzB,QAAQ,MAAMA,KAAAA;AACxByB,IAAAA,SAAAA,CAAU1B,eAAe,MAAMA,YAAAA;AAC/B,IAAME,MAAAA,QAAAA;AACR;AAEA,EAAA,MAAgBG,eACdP,KACkE,EAAA;AAClE,IAAMyB,MAAAA,KAAAA,GAAQ,MAAMiB,OAAAA,CAAQC,GACzB3C,CAAAA,CAAAA,KAAAA,CAAMyB,SAAS,EAAA,EAAImB,GAAI,CAAA,OAAOC,IAAU,MAAA;AACvCC,MAAAA,IAAAA,EAAMD,IAAKC,CAAAA,IAAAA;AACXC,MAAAA,WAAAA,EAAaF,IAAKE,CAAAA,WAAAA;AAClBC,MAAAA,UAAAA,EAAYC,aAAW,CAAA,MAAMJ,IAAKK,CAAAA,kBAAAA,EAAkB;AACtD,KAAA,CAAA,CAAA,CAAA;AAGF,IAAA,MAAM7C,QAAWL,GAAAA,KAAAA,CAAMK,QAASuC,CAAAA,GAAAA,CAAI,CAACO,GAAAA,KAAAA;AACnC,MAAA,IAAIA,eAAenB,4BAAkB,EAAA;AACnC,QAAO,OAAA;UAAEoB,IAAM,EAAA,WAAA;AAAaC,UAAAA,OAAAA,EAASF,GAAIE,CAAAA;AAAQ,SAAA;AACnD,OAAA,MAAA,IAAWF,eAAeZ,uBAAa,EAAA;AACrC,QAAO,OAAA;UAAEa,IAAM,EAAA,MAAA;AAAQC,UAAAA,OAAAA,EAASF,GAAIE,CAAAA;AAAQ,SAAA;AAC9C,OAAA,MAAA,IAAWF,eAAeG,uBAAa,EAAA;AACrC,QAAO,OAAA;UAAEF,IAAM,EAAA,MAAA;AAAQC,UAAAA,OAAAA,EAASF,GAAIE,CAAAA;AAAQ,SAAA;AAC9C,OAAA,MAAA,IAAWF,eAAeI,yBAAe,EAAA;AACvC,QAAO,OAAA;UAAEH,IAAM,EAAA,MAAA;AAAQC,UAAAA,OAAAA,EAASF,GAAIE,CAAAA;AAAQ,SAAA;AAC9C;AACA,MAAO,OAAA;AAAED,QAAAA,IAAAA,EAAMD,GAAIC,CAAAA,IAAAA;AAAMC,QAAAA,OAAAA,EAASF,GAAIE,CAAAA;AAAQ,OAAA;KAChD,CAAA;AAEA,IAAO,OAAA;AACL,MAAA,GAAG,IAAKL,CAAAA,UAAAA;MACR,GAAGhD,KAAAA;AACHb,MAAAA,KAAAA,EAAO,IAAKA,CAAAA,KAAAA;AACZsC,MAAAA,KAAAA,EAAO+B,gBAAS/B,KAAO,EAAA,CAAC,EAAEqB,IAAM,EAAA,GAAGD,MAAW,KAAA;AAACC,QAAAA,IAAAA;AAAMD,QAAAA;AAAK,OAAA,CAAA;AAC1DxC,MAAAA;AACF,KAAA;AACF;AAEUI,EAAAA,iBAAAA,CAAkBJ,QAAiE,EAAA;AAC3F,IAAOA,OAAAA,QAAAA,CAASoD,OAAQ,CAAA,CAACN,GAAAA,KAAAA;AACvB,MAAIA,IAAAA,GAAAA,CAAIC,SAAS,MAAQ,EAAA;AACvB,QAAA,OAAO,IAAIb,uBAAAA,CAAYY,GAAIE,CAAAA,OAAAA,EAASF,IAAIO,eAAe,CAAA;AACzD;AACA,MAAA,OAAO,IAAI1B,4BAAAA,CACTmB,GAAIE,CAAAA,OAAAA,EACJF,IAAIO,eAAe,CAAA;KAEvB,CAAA;AACF;EAEAC,cAAiB,GAAA;AACf,IAAO,OAAA;AACL,MAAA,GAAG,MAAMA,cAAAA,EAAAA;AACTjE,MAAAA,UAAAA,EAAY,IAAKA,CAAAA,UAAAA;AACjBN,MAAAA,OAAAA,EAAS,IAAKA,CAAAA,OAAAA;AACdH,MAAAA,qBAAAA,EAAuB,IAAKA,CAAAA;AAC9B,KAAA;AACF;AAEA,EAAA,MAAM2E,aAAa,EAAElE,UAAAA,EAAYN,OAAS,EAAA,GAAGyE,UAAoD,EAAA;AAC/F,IAAMC,MAAAA,QAAAA,GAAW,MAAM/E,kBAAUgF,CAAAA,QAAAA,CAAS,GAAGrE,UAAAA,CAAAA,CAAAA,EAAcN,OAAAA,CAAS,CAAA,CAAA;AACpE,IAAI,IAAA,EAAE0E,oBAAoBhF,eAAkB,CAAA,EAAA;AAC1C,MAAM,MAAA,IAAI2D,MAAM,4BAAA,CAAA;AAClB;AACAqB,IAAAA,QAAAA,CAASE,OAAO,EAAA;AAChBC,IAAAA,MAAAA,CAAOC,OAAO,IAAM,EAAA;MAClB,GAAGL,QAAAA;AACH1E,MAAAA,KAAAA,EAAO2E,QAAS3E,CAAAA;KAClB,CAAA;AACF;AACF","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.text
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"]}
@@ -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
- }).middleware(config_cjs.INSTRUMENTATION_ENABLED ? createTelemetryMiddleware_cjs.createTelemetryMiddleware() : remeda.doNothing());
44
+ });
48
45
  }
49
46
  destroy() {
50
47
  this.emitter.destroy();
@@ -1 +1 @@
1
- {"version":3,"sources":["base.ts"],"names":["AgentError","FrameworkError","BaseAgent","Serializable","isRunning","run","input","options","RunContext","enter","signal","params","context","_run","e","middleware","INSTRUMENTATION_ENABLED","createTelemetryMiddleware","doNothing","destroy","emitter","meta","name","constructor","description","tools","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;;;;;;;;AA0BO,MAAMA,mBAAmBC,yBAAAA,CAAAA;EA1BhC;;;AA0BgD;AAMzC,MAAeC,kBAIZC,6BAAAA,CAAAA;EApCV;;;EAqCYC,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;AACF,KAAA,EACAW,UAAWC,CAAAA,kCAAAA,GAA0BC,uDAAAA,EAAAA,GAA8BC,kBAAAA,CAAAA;AACvE;EAQAC,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;MAAEtB,SAAW,EAAA,KAAA;AAAOgB,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 { createTelemetryMiddleware } from \"@/instrumentation/create-telemetry-middleware.js\";\nimport { INSTRUMENTATION_ENABLED } from \"@/instrumentation/config.js\";\nimport { doNothing } from \"remeda\";\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 ).middleware(INSTRUMENTATION_ENABLED ? createTelemetryMiddleware() : doNothing());\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"]}
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"]}
@@ -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
- }).middleware(INSTRUMENTATION_ENABLED ? createTelemetryMiddleware() : doNothing());
42
+ });
46
43
  }
47
44
  destroy() {
48
45
  this.emitter.destroy();
@@ -1 +1 @@
1
- {"version":3,"sources":["base.ts"],"names":["AgentError","FrameworkError","BaseAgent","Serializable","isRunning","run","input","options","RunContext","enter","signal","params","context","_run","e","middleware","INSTRUMENTATION_ENABLED","createTelemetryMiddleware","doNothing","destroy","emitter","meta","name","constructor","description","tools","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;;;;;;AA0BO,MAAMA,mBAAmBC,cAAAA,CAAAA;EA1BhC;;;AA0BgD;AAMzC,MAAeC,kBAIZC,YAAAA,CAAAA;EApCV;;;EAqCYC,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;AACF,KAAA,EACAW,UAAWC,CAAAA,uBAAAA,GAA0BC,yBAAAA,EAAAA,GAA8BC,WAAAA,CAAAA;AACvE;EAQAC,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;MAAEtB,SAAW,EAAA,KAAA;AAAOgB,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 { createTelemetryMiddleware } from \"@/instrumentation/create-telemetry-middleware.js\";\nimport { INSTRUMENTATION_ENABLED } from \"@/instrumentation/config.js\";\nimport { doNothing } from \"remeda\";\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 ).middleware(INSTRUMENTATION_ENABLED ? createTelemetryMiddleware() : doNothing());\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"]}
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;