@anvia/core 0.14.0 → 0.15.0

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 (63) hide show
  1. package/dist/agent/index.d.ts +11 -11
  2. package/dist/agent/index.js +6 -6
  3. package/dist/{agent-ib2-Ahyi.d.ts → agent-C1yoidvI.d.ts} +15 -8
  4. package/dist/audio-generation/index.d.ts +1 -1
  5. package/dist/{chunk-FBHF7WZJ.js → chunk-7NULHGAO.js} +3 -3
  6. package/dist/{chunk-2XD7Z7NB.js → chunk-BIYXGG33.js} +2 -2
  7. package/dist/chunk-BIYXGG33.js.map +1 -0
  8. package/dist/{chunk-CESSRJYD.js → chunk-BPU264XB.js} +5 -5
  9. package/dist/{chunk-BOJP4ARV.js → chunk-CNANX5OL.js} +39 -12
  10. package/dist/chunk-CNANX5OL.js.map +1 -0
  11. package/dist/{chunk-YQF7QOCO.js → chunk-GCZIIYZW.js} +6 -5
  12. package/dist/chunk-GCZIIYZW.js.map +1 -0
  13. package/dist/{chunk-X2Q3AXFM.js → chunk-MEUZ4NBO.js} +2 -2
  14. package/dist/{chunk-HHHNMP3V.js → chunk-QTZHDPQX.js} +2 -2
  15. package/dist/{chunk-HU55YP24.js → chunk-TIV3WFSR.js} +1 -1
  16. package/dist/{chunk-HU55YP24.js.map → chunk-TIV3WFSR.js.map} +1 -1
  17. package/dist/completion/index.d.ts +3 -3
  18. package/dist/completion/index.js +2 -2
  19. package/dist/evals/index.d.ts +8 -8
  20. package/dist/evals/index.js +7 -7
  21. package/dist/extractor/index.d.ts +8 -8
  22. package/dist/extractor/index.js +7 -7
  23. package/dist/guardrails/index.d.ts +1 -1
  24. package/dist/hooks/index.d.ts +3 -3
  25. package/dist/image-generation/index.d.ts +1 -1
  26. package/dist/{index-AK084cvC.d.ts → index-VH93vDXo.d.ts} +26 -6
  27. package/dist/index.d.ts +12 -12
  28. package/dist/index.js +7 -7
  29. package/dist/internal/agent.d.ts +8 -8
  30. package/dist/internal/agent.js +5 -5
  31. package/dist/{json-k5r34q-F.d.ts → json-CaCUxJqG.d.ts} +1 -1
  32. package/dist/loaders/index.d.ts +1 -1
  33. package/dist/mcp/index.d.ts +4 -4
  34. package/dist/memory/index.d.ts +3 -3
  35. package/dist/{middleware-C6ZuwXjf.d.ts → middleware-CGEYQndv.d.ts} +3 -3
  36. package/dist/observability/index.d.ts +3 -3
  37. package/dist/pipeline/index.d.ts +8 -8
  38. package/dist/request/index.d.ts +8 -8
  39. package/dist/request/index.js +4 -4
  40. package/dist/skills/index.d.ts +4 -4
  41. package/dist/skills/index.js +2 -2
  42. package/dist/{think-tool-D3_K8NJa.d.ts → think-tool-DABDgW_E.d.ts} +1 -1
  43. package/dist/tool/index.d.ts +5 -5
  44. package/dist/tool/index.js +2 -2
  45. package/dist/{tool-DyC_XPPY.d.ts → tool-tHPNeWMR.d.ts} +2 -1
  46. package/dist/transcription/index.d.ts +1 -1
  47. package/dist/{types-D1iyZY9M.d.ts → types-BHxJcHMk.d.ts} +1 -1
  48. package/dist/{types-t_DnP78R.d.ts → types-BbLcbRqM.d.ts} +2 -2
  49. package/dist/{types-BySyFZTT.d.ts → types-Byo50mwr.d.ts} +3 -1
  50. package/dist/{types-CqlNB5VN.d.ts → types-D78Vnorg.d.ts} +1 -1
  51. package/dist/{types-VadeVz_w.d.ts → types-DPYoqg8M.d.ts} +1 -1
  52. package/dist/{types-DBd1zAyo.d.ts → types-DW1Va3vx.d.ts} +1 -1
  53. package/dist/ui/index.d.ts +1 -1
  54. package/dist/ui/index.js +2 -2
  55. package/dist/vector-store/index.d.ts +4 -4
  56. package/package.json +1 -1
  57. package/dist/chunk-2XD7Z7NB.js.map +0 -1
  58. package/dist/chunk-BOJP4ARV.js.map +0 -1
  59. package/dist/chunk-YQF7QOCO.js.map +0 -1
  60. /package/dist/{chunk-FBHF7WZJ.js.map → chunk-7NULHGAO.js.map} +0 -0
  61. /package/dist/{chunk-CESSRJYD.js.map → chunk-BPU264XB.js.map} +0 -0
  62. /package/dist/{chunk-X2Q3AXFM.js.map → chunk-MEUZ4NBO.js.map} +0 -0
  63. /package/dist/{chunk-HHHNMP3V.js.map → chunk-QTZHDPQX.js.map} +0 -0
@@ -1,16 +1,16 @@
1
- import { D as DynamicContextOptions, b as DynamicToolOptions, c as AgentEventStore, d as AgentEventStoreOptions, A as Agent } from '../agent-ib2-Ahyi.js';
2
- export { e as AgentEventAppendInput, f as AgentEventRecord, g as AgentEventStoreInclude, h as AgentSession, i as AgentToolOptions } from '../agent-ib2-Ahyi.js';
1
+ import { D as DynamicContextOptions, b as DynamicToolOptions, c as AgentEventStore, d as AgentEventStoreOptions, A as Agent } from '../agent-C1yoidvI.js';
2
+ export { e as AgentEventAppendInput, f as AgentEventRecord, g as AgentEventStoreInclude, h as AgentSession, i as AgentToolOptions } from '../agent-C1yoidvI.js';
3
3
  import { Z as ZodSchema } from '../zod-schema-C7F4clpm.js';
4
- import { C as CompletionModel, g as JsonValue, v as ToolChoice } from '../types-BySyFZTT.js';
4
+ import { C as CompletionModel, g as JsonValue, v as ToolChoice } from '../types-Byo50mwr.js';
5
5
  import { GuardrailPolicyInput } from '../guardrails/index.js';
6
- import { P as PromptHook } from '../types-CqlNB5VN.js';
7
- import { a as McpServer } from '../types-t_DnP78R.js';
8
- import { e as MemoryStore, f as MemoryOptions } from '../types-VadeVz_w.js';
9
- import { c as AgentObserver, O as ObserveOptions } from '../index-AK084cvC.js';
10
- import { a as SkillSet } from '../types-DBd1zAyo.js';
11
- import { k as ToolSearchDocument, l as ToolSet, A as AgentMiddleware, e as ToolMiddleware } from '../middleware-C6ZuwXjf.js';
12
- import { A as AnyTool, e as ToolApprovalsOptions } from '../tool-DyC_XPPY.js';
13
- import { a as VectorSearchIndex } from '../types-D1iyZY9M.js';
6
+ import { P as PromptHook } from '../types-D78Vnorg.js';
7
+ import { a as McpServer } from '../types-BbLcbRqM.js';
8
+ import { e as MemoryStore, f as MemoryOptions } from '../types-DPYoqg8M.js';
9
+ import { i as AgentObserver, O as ObserveOptions } from '../index-VH93vDXo.js';
10
+ import { a as SkillSet } from '../types-DW1Va3vx.js';
11
+ import { k as ToolSearchDocument, l as ToolSet, A as AgentMiddleware, e as ToolMiddleware } from '../middleware-CGEYQndv.js';
12
+ import { A as AnyTool, e as ToolApprovalsOptions } from '../tool-tHPNeWMR.js';
13
+ import { a as VectorSearchIndex } from '../types-BHxJcHMk.js';
14
14
  import 'zod';
15
15
  import '@modelcontextprotocol/sdk/client/sse.js';
16
16
  import '@modelcontextprotocol/sdk/client/stdio.js';
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  AgentBuilder
3
- } from "../chunk-FBHF7WZJ.js";
4
- import "../chunk-YQF7QOCO.js";
5
- import "../chunk-BOJP4ARV.js";
3
+ } from "../chunk-7NULHGAO.js";
4
+ import "../chunk-GCZIIYZW.js";
5
+ import "../chunk-CNANX5OL.js";
6
6
  import "../chunk-YK4WAAS4.js";
7
7
  import "../chunk-XUUY2L2D.js";
8
- import "../chunk-2XD7Z7NB.js";
8
+ import "../chunk-BIYXGG33.js";
9
9
  import "../chunk-I7TM7TKX.js";
10
10
  import "../chunk-2ODTMRHP.js";
11
11
  import "../chunk-M6RPFHG7.js";
12
- import "../chunk-HHHNMP3V.js";
13
- import "../chunk-HU55YP24.js";
12
+ import "../chunk-QTZHDPQX.js";
13
+ import "../chunk-TIV3WFSR.js";
14
14
  import "../chunk-WQKHFADH.js";
15
15
  import "../chunk-YBBD4HZ3.js";
16
16
  import "../chunk-OIMLU4SF.js";
@@ -1,11 +1,11 @@
1
- import { C as CompletionModel, M as Message, D as Document, g as JsonValue, v as ToolChoice, J as JsonObject } from './types-BySyFZTT.js';
1
+ import { C as CompletionModel, M as Message, D as Document, g as JsonValue, v as ToolChoice, J as JsonObject } from './types-Byo50mwr.js';
2
2
  import { GuardrailPolicyInput, GuardrailPolicy } from './guardrails/index.js';
3
- import { P as PromptHook } from './types-CqlNB5VN.js';
4
- import { h as MemoryContext, j as MemoryRegistration, S as SessionOptions } from './types-VadeVz_w.js';
5
- import { d as AgentTraceOptions, P as PromptResponse, b as AgentStreamEvent, e as AgentObserverRegistration } from './index-AK084cvC.js';
6
- import { e as ToolApprovalsOptions, T as Tool, A as AnyTool, f as ToolCallContext, N as NormalizedToolOutput } from './tool-DyC_XPPY.js';
7
- import { A as AgentMiddleware, e as ToolMiddleware, k as ToolSearchDocument, l as ToolSet } from './middleware-C6ZuwXjf.js';
8
- import { V as VectorFilter, c as VectorSearchResult, a as VectorSearchIndex } from './types-D1iyZY9M.js';
3
+ import { P as PromptHook } from './types-D78Vnorg.js';
4
+ import { h as MemoryContext, j as MemoryRegistration, S as SessionOptions } from './types-DPYoqg8M.js';
5
+ import { j as AgentTraceOptions, P as PromptResponse, d as AgentStreamEvent, f as AgentStreamEventWithoutToolCallDeltas, g as AgentStreamOptions, k as AgentObserverRegistration } from './index-VH93vDXo.js';
6
+ import { e as ToolApprovalsOptions, T as Tool, A as AnyTool, f as ToolCallContext, N as NormalizedToolOutput } from './tool-tHPNeWMR.js';
7
+ import { A as AgentMiddleware, e as ToolMiddleware, k as ToolSearchDocument, l as ToolSet } from './middleware-CGEYQndv.js';
8
+ import { V as VectorFilter, c as VectorSearchResult, a as VectorSearchIndex } from './types-BHxJcHMk.js';
9
9
 
10
10
  type CompletionRetryContext = {
11
11
  error: unknown;
@@ -66,7 +66,14 @@ declare class PromptRequest<M extends CompletionModel = CompletionModel> {
66
66
  steer(input: string | Message | Message[]): boolean;
67
67
  send(): Promise<PromptResponse>;
68
68
  stream(): AsyncIterable<AgentStreamEvent>;
69
- readableStream(): ReadableStream<Uint8Array>;
69
+ stream(options: {
70
+ includeToolCallDeltas: false;
71
+ }): AsyncIterable<AgentStreamEventWithoutToolCallDeltas>;
72
+ stream(options: {
73
+ includeToolCallDeltas?: true;
74
+ }): AsyncIterable<AgentStreamEvent>;
75
+ stream(options: AgentStreamOptions): AsyncIterable<AgentStreamEvent>;
76
+ readableStream(options?: AgentStreamOptions): ReadableStream<Uint8Array>;
70
77
  private runCompletion;
71
78
  private generatedAssistantMessage;
72
79
  private providerTraceRequest;
@@ -1,4 +1,4 @@
1
- import { g as JsonValue } from '../types-BySyFZTT.js';
1
+ import { g as JsonValue } from '../types-Byo50mwr.js';
2
2
 
3
3
  type AudioGenerationRequest = {
4
4
  text: string;
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  Agent,
3
3
  normalizeAgentId
4
- } from "./chunk-YQF7QOCO.js";
4
+ } from "./chunk-GCZIIYZW.js";
5
5
  import {
6
6
  ToolSet
7
- } from "./chunk-2XD7Z7NB.js";
7
+ } from "./chunk-BIYXGG33.js";
8
8
  import {
9
9
  resolveMemoryOptions
10
10
  } from "./chunk-M6RPFHG7.js";
@@ -212,4 +212,4 @@ var AgentBuilder = class {
212
212
  export {
213
213
  AgentBuilder
214
214
  };
215
- //# sourceMappingURL=chunk-FBHF7WZJ.js.map
215
+ //# sourceMappingURL=chunk-7NULHGAO.js.map
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  isToolResultContentArray,
7
7
  serializeToolResultOutput
8
- } from "./chunk-HU55YP24.js";
8
+ } from "./chunk-TIV3WFSR.js";
9
9
  import {
10
10
  embedDocuments
11
11
  } from "./chunk-YBBD4HZ3.js";
@@ -224,4 +224,4 @@ export {
224
224
  createToolMiddleware,
225
225
  createThinkTool
226
226
  };
227
- //# sourceMappingURL=chunk-2XD7Z7NB.js.map
227
+ //# sourceMappingURL=chunk-BIYXGG33.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tool/errors.ts","../src/tool/tool.ts","../src/tool/tool-set.ts","../src/tool/dynamic-tools.ts","../src/tool/middleware.ts","../src/tool/think-tool.ts"],"sourcesContent":["export class ToolCallError extends Error {\n constructor(\n message: string,\n readonly cause?: unknown,\n ) {\n super(message);\n this.name = \"ToolCallError\";\n }\n}\n\nexport class ToolNotFoundError extends Error {\n constructor(readonly toolName: string) {\n super(`Tool not found: ${toolName}`);\n this.name = \"ToolNotFoundError\";\n }\n}\n\nexport class ToolJsonError extends Error {\n constructor(\n message: string,\n readonly cause?: unknown,\n ) {\n super(message);\n this.name = \"ToolJsonError\";\n }\n}\n","import type { JsonObject, JsonValue, ToolDefinition, ToolResultContent } from \"../completion/types\";\nimport {\n isToolResultContentArray,\n serializeToolResultOutput as serializeToolOutput,\n} from \"../completion/types\";\n\nexport type ToolApprovalRunContext = {\n agentId: string;\n runId: string;\n sessionId?: string;\n metadata?: JsonObject;\n};\n\nexport type ToolApprovalContext<Args = unknown> = {\n toolName: string;\n args: Args;\n rawArgs: string;\n toolCallId?: string;\n internalCallId: string;\n run: ToolApprovalRunContext;\n};\n\nexport type ToolApprovalPolicy<Args = unknown> = {\n when(ctx: ToolApprovalContext<Args>): boolean | Promise<boolean>;\n reason?: string | ((ctx: ToolApprovalContext<Args>) => string | Promise<string>);\n rejectMessage?: string | ((ctx: ToolApprovalContext<Args>) => string | Promise<string>);\n};\n\nexport type ToolApprovalRequest<Args = unknown> = ToolApprovalContext<Args> & {\n reason?: string;\n rejectMessage?: string;\n};\n\nexport type ToolApprovalDecision =\n | boolean\n | { approved: true; reason?: string }\n | { approved: false; reason?: string; rejectMessage?: string };\n\nexport type ToolApprovalsOptions = {\n handler(request: ToolApprovalRequest): ToolApprovalDecision | Promise<ToolApprovalDecision>;\n};\n\nexport type ToolCallStreamEvent = {\n agentId: string;\n agentName?: string | undefined;\n event: unknown;\n};\n\nexport type ToolCallContext = {\n emitStreamEvent?(event: ToolCallStreamEvent): void | Promise<void>;\n includeToolCallDeltas?: boolean;\n};\n\nexport interface Tool<Args = unknown, Output = unknown> {\n readonly name: string;\n readonly approval?: ToolApprovalPolicy<Args>;\n definition(prompt: string): ToolDefinition | Promise<ToolDefinition>;\n call(args: Args, context?: ToolCallContext): Output | Promise<Output>;\n parseApprovalArgs?(args: unknown): Args;\n}\n\nexport type AnyTool = Omit<Tool<unknown, unknown>, \"approval\"> & {\n readonly approval?: unknown;\n};\n\nexport type NormalizedToolOutput = string | ToolResultContent[];\n\nexport const ToolOutput = {\n content(content: ToolResultContent[]): ToolResultContent[] {\n return content;\n },\n};\n\nexport { isToolResultContentArray, serializeToolOutput };\n\nexport function normalizeToolResultOutput(output: unknown): NormalizedToolOutput {\n return isToolResultContentArray(output) ? output : serializeToolOutput(output);\n}\n\nexport function toolResultContentToText(content: ToolResultContent[]): string {\n return content\n .map((item) => (item.type === \"text\" ? item.text : `[image:${item.mediaType ?? \"image/png\"}]`))\n .join(\"\\n\");\n}\n\nexport function parseToolArgs(args: string): JsonValue {\n if (args.trim() === \"\") {\n return {};\n }\n\n return JSON.parse(args) as JsonValue;\n}\n","import type { ToolDefinition } from \"../completion/types\";\nimport { ToolCallError, ToolJsonError, ToolNotFoundError } from \"./errors\";\nimport {\n type AnyTool,\n type NormalizedToolOutput,\n normalizeToolResultOutput,\n parseToolArgs,\n type ToolCallContext,\n} from \"./tool\";\n\nexport class ToolSet {\n private readonly tools = new Map<string, AnyTool>();\n\n static fromTools(tools: AnyTool[]): ToolSet {\n const toolSet = new ToolSet();\n for (const tool of tools) {\n toolSet.addTool(tool);\n }\n return toolSet;\n }\n\n addTool(tool: AnyTool): this {\n this.tools.set(tool.name, tool);\n return this;\n }\n\n addTools(tools: AnyTool[] | ToolSet): this {\n const values = Array.isArray(tools) ? tools : tools.values();\n for (const tool of values) {\n this.addTool(tool);\n }\n return this;\n }\n\n deleteTool(toolName: string): boolean {\n return this.tools.delete(toolName);\n }\n\n contains(toolName: string): boolean {\n return this.tools.has(toolName);\n }\n\n get(toolName: string): AnyTool | undefined {\n return this.tools.get(toolName);\n }\n\n values(): AnyTool[] {\n return [...this.tools.values()];\n }\n\n async getToolDefinitions(prompt = \"\"): Promise<ToolDefinition[]> {\n const defs: ToolDefinition[] = [];\n for (const tool of this.tools.values()) {\n defs.push(await tool.definition(prompt));\n }\n return defs;\n }\n\n async call(\n toolName: string,\n args: string,\n context?: ToolCallContext,\n ): Promise<NormalizedToolOutput> {\n const tool = this.tools.get(toolName);\n if (tool === undefined) {\n throw new ToolNotFoundError(toolName);\n }\n\n let parsedArgs: unknown;\n try {\n parsedArgs = parseToolArgs(args);\n } catch (error) {\n throw new ToolJsonError(`Invalid JSON arguments for tool ${toolName}`, error);\n }\n\n try {\n const output = await tool.call(parsedArgs, context);\n return normalizeToolResultOutput(output);\n } catch (error) {\n if (error instanceof Error) {\n throw new ToolCallError(error.message, error);\n }\n throw new ToolCallError(`Tool ${toolName} failed`, error);\n }\n }\n}\n","import type { ToolDefinition } from \"../completion\";\nimport type { EmbeddedDocument, EmbeddingModel, VectorMetadata } from \"../embeddings\";\nimport { embedDocuments } from \"../embeddings\";\nimport type {\n VectorInspectPage,\n VectorInspectRequest,\n VectorSearchResult,\n VectorSearchToolOptions,\n} from \"../vector-store\";\nimport {\n InMemoryVectorStore,\n type VectorSearchIndex,\n type VectorSearchRequest,\n} from \"../vector-store\";\nimport type { AnyTool, Tool } from \"./tool\";\nimport { ToolSet } from \"./tool-set\";\n\nexport type ToolSearchDocument<Metadata extends VectorMetadata = VectorMetadata> = {\n toolName: string;\n definition: ToolDefinition;\n text: string;\n metadata?: Metadata | undefined;\n};\n\nexport type EmbedToolsOptions<Metadata extends VectorMetadata = VectorMetadata> = {\n content?: ((tool: AnyTool, definition: ToolDefinition) => string | string[]) | undefined;\n metadata?: ((tool: AnyTool, definition: ToolDefinition) => Metadata | undefined) | undefined;\n concurrency?: number | undefined;\n};\n\nexport interface DynamicToolIndex<Metadata extends VectorMetadata = VectorMetadata>\n extends VectorSearchIndex<ToolSearchDocument<Metadata>, Metadata> {\n readonly toolSet: ToolSet;\n}\n\nexport async function embedTools<Metadata extends VectorMetadata = VectorMetadata>(\n model: EmbeddingModel,\n tools: AnyTool[] | ToolSet,\n options: EmbedToolsOptions<Metadata> = {},\n): Promise<Array<EmbeddedDocument<ToolSearchDocument<Metadata>, Metadata>>> {\n const toolList = Array.isArray(tools) ? tools : tools.values();\n const definitions = await Promise.all(\n toolList.map(async (tool) => ({ tool, definition: await tool.definition(\"\") })),\n );\n const documents = definitions.map(({ tool, definition }) => {\n const content = options.content?.(tool, definition) ?? defaultToolEmbeddingText(definition);\n const texts = Array.isArray(content) ? content : [content];\n const metadata = options.metadata?.(tool, definition);\n const document: ToolSearchDocument<Metadata> = {\n toolName: tool.name,\n definition,\n text: texts.join(\"\\n\"),\n };\n if (metadata !== undefined) {\n document.metadata = metadata;\n }\n return { tool, document, texts, metadata };\n });\n\n return embedDocuments(model, documents, {\n id: (item) => item.tool.name,\n content: (item) => item.texts,\n metadata: (item) => item.metadata,\n concurrency: options.concurrency,\n }).then((embedded) =>\n embedded.map((item) => ({\n ...item,\n document: item.document.document,\n })),\n );\n}\n\nexport async function createToolIndex<Metadata extends VectorMetadata = VectorMetadata>(\n model: EmbeddingModel,\n tools: AnyTool[] | ToolSet,\n options: EmbedToolsOptions<Metadata> = {},\n): Promise<DynamicToolIndex<Metadata>> {\n const toolSet = Array.isArray(tools) ? ToolSet.fromTools(tools) : tools;\n const embedded = await embedTools(model, toolSet, options);\n const index = InMemoryVectorStore.fromDocuments(embedded).index(model);\n return new DynamicToolSearchIndex(index, toolSet);\n}\n\nexport function isDynamicToolIndex(value: unknown): value is DynamicToolIndex {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"toolSet\" in value &&\n (value as { toolSet?: unknown }).toolSet instanceof ToolSet\n );\n}\n\nclass DynamicToolSearchIndex<Metadata extends VectorMetadata>\n implements DynamicToolIndex<Metadata>\n{\n readonly inspect?: (\n request: VectorInspectRequest,\n ) => Promise<VectorInspectPage<ToolSearchDocument<Metadata>, Metadata>>;\n\n constructor(\n private readonly index: VectorSearchIndex<ToolSearchDocument<Metadata>, Metadata>,\n readonly toolSet: ToolSet,\n ) {\n if (index.inspect !== undefined) {\n this.inspect = (request) =>\n index.inspect?.(request) as Promise<\n VectorInspectPage<ToolSearchDocument<Metadata>, Metadata>\n >;\n }\n }\n\n search(\n request: VectorSearchRequest,\n ): Promise<Array<VectorSearchResult<ToolSearchDocument<Metadata>, Metadata>>> {\n return this.index.search(request);\n }\n\n searchIds(request: VectorSearchRequest): Promise<Array<{ score: number; id: string }>> {\n return this.index.searchIds(request);\n }\n\n asTool(options: VectorSearchToolOptions): Tool<{ query: string; topK?: number }, unknown> {\n return this.index.asTool(options);\n }\n}\n\nfunction defaultToolEmbeddingText(definition: ToolDefinition): string[] {\n return [definition.name, definition.description, JSON.stringify(definition.parameters)];\n}\n","import type {\n CompletionRequest,\n CompletionResponse,\n JsonValue,\n ToolResultContent,\n} from \"../completion\";\n\ntype MaybePromise<T> = T | Promise<T>;\n\nexport type CompletionRequestMiddlewareArgs = {\n turn: number;\n request: CompletionRequest;\n originalRequest: CompletionRequest;\n};\n\nexport type CompletionRequestMiddlewareResult =\n | {\n request: CompletionRequest;\n }\n | undefined;\n\nexport type CompletionResponseMiddlewareArgs<RawResponse = unknown> = {\n turn: number;\n request: CompletionRequest;\n response: CompletionResponse<RawResponse>;\n originalResponse: CompletionResponse<RawResponse>;\n};\n\nexport type CompletionResponseMiddlewareResult<RawResponse = unknown> =\n | {\n response: CompletionResponse<RawResponse>;\n }\n | undefined;\n\nexport type ToolInputMiddlewareArgs = {\n toolName: string;\n args: string;\n originalArgs: string;\n turn: number;\n toolCallId?: string | undefined;\n internalCallId: string;\n};\n\nexport type ToolInputMiddlewareResult =\n | {\n args: JsonValue | string;\n }\n | undefined;\n\nexport type ToolResultMiddlewareArgs = {\n toolName: string;\n args: string;\n result: string;\n originalResult: string;\n structuredResult?: ToolResultContent[] | undefined;\n originalStructuredResult?: ToolResultContent[] | undefined;\n turn: number;\n toolCallId?: string | undefined;\n internalCallId: string;\n};\n\nexport type ToolOutputMiddlewareArgs = ToolResultMiddlewareArgs;\n\nexport type ToolOutputMiddlewareResult =\n | string\n | {\n result?: string | undefined;\n structuredResult?: ToolResultContent[] | undefined;\n }\n | undefined;\n\nexport interface AgentMiddleware<RawResponse = unknown> {\n onCompletionRequest?(\n args: CompletionRequestMiddlewareArgs,\n ): MaybePromise<CompletionRequestMiddlewareResult>;\n onCompletionResponse?(\n args: CompletionResponseMiddlewareArgs<RawResponse>,\n ): MaybePromise<CompletionResponseMiddlewareResult<RawResponse>>;\n onToolInput?(args: ToolInputMiddlewareArgs): MaybePromise<ToolInputMiddlewareResult>;\n onToolOutput?(args: ToolOutputMiddlewareArgs): MaybePromise<ToolOutputMiddlewareResult>;\n /**\n * @deprecated Use `onToolOutput` instead.\n */\n onResult?(args: ToolResultMiddlewareArgs): string | undefined | Promise<string | undefined>;\n}\n\n/**\n * @deprecated Use `AgentMiddleware` instead.\n */\nexport type ToolMiddleware<RawResponse = unknown> = AgentMiddleware<RawResponse>;\n\nexport function createMiddleware<RawResponse = unknown>(\n middleware: AgentMiddleware<RawResponse>,\n): AgentMiddleware<RawResponse> {\n return middleware;\n}\n\n/**\n * @deprecated Use `createMiddleware` instead.\n */\nexport function createToolMiddleware<RawResponse = unknown>(\n middleware: ToolMiddleware<RawResponse>,\n): ToolMiddleware<RawResponse> {\n return middleware;\n}\n","import { z } from \"zod\";\nimport { createTool } from \"./create-tool\";\n\nconst defaultThinkToolDescription =\n \"Use this tool to record a thought while reasoning through a complex task. It does not retrieve information, store memory, or change external state.\";\n\nconst thinkToolInput = z.object({\n thought: z.string().describe(\"A thought to record while reasoning through a task.\"),\n});\n\nexport type CreateThinkToolOptions = {\n name?: string;\n description?: string;\n};\n\nexport function createThinkTool(options: CreateThinkToolOptions = {}) {\n return createTool({\n name: options.name ?? \"think\",\n description: options.description ?? defaultThinkToolDescription,\n input: thinkToolInput,\n output: z.string(),\n execute: (args) => args.thought,\n });\n}\n"],"mappings":";;;;;;;;;;;;;AAAO,IAAM,gBAAN,cAA4B,MAAM;AAAA,EACvC,YACE,SACS,OACT;AACA,UAAM,OAAO;AAFJ;AAGT,SAAK,OAAO;AAAA,EACd;AAAA,EAJW;AAKb;AAEO,IAAM,oBAAN,cAAgC,MAAM;AAAA,EAC3C,YAAqB,UAAkB;AACrC,UAAM,mBAAmB,QAAQ,EAAE;AADhB;AAEnB,SAAK,OAAO;AAAA,EACd;AAAA,EAHqB;AAIvB;AAEO,IAAM,gBAAN,cAA4B,MAAM;AAAA,EACvC,YACE,SACS,OACT;AACA,UAAM,OAAO;AAFJ;AAGT,SAAK,OAAO;AAAA,EACd;AAAA,EAJW;AAKb;;;AC0CO,IAAM,aAAa;AAAA,EACxB,QAAQ,SAAmD;AACzD,WAAO;AAAA,EACT;AACF;AAIO,SAAS,0BAA0B,QAAuC;AAC/E,SAAO,yBAAyB,MAAM,IAAI,SAAS,0BAAoB,MAAM;AAC/E;AAEO,SAAS,wBAAwB,SAAsC;AAC5E,SAAO,QACJ,IAAI,CAAC,SAAU,KAAK,SAAS,SAAS,KAAK,OAAO,UAAU,KAAK,aAAa,WAAW,GAAI,EAC7F,KAAK,IAAI;AACd;AAEO,SAAS,cAAc,MAAyB;AACrD,MAAI,KAAK,KAAK,MAAM,IAAI;AACtB,WAAO,CAAC;AAAA,EACV;AAEA,SAAO,KAAK,MAAM,IAAI;AACxB;;;ACjFO,IAAM,UAAN,MAAM,SAAQ;AAAA,EACF,QAAQ,oBAAI,IAAqB;AAAA,EAElD,OAAO,UAAU,OAA2B;AAC1C,UAAM,UAAU,IAAI,SAAQ;AAC5B,eAAW,QAAQ,OAAO;AACxB,cAAQ,QAAQ,IAAI;AAAA,IACtB;AACA,WAAO;AAAA,EACT;AAAA,EAEA,QAAQ,MAAqB;AAC3B,SAAK,MAAM,IAAI,KAAK,MAAM,IAAI;AAC9B,WAAO;AAAA,EACT;AAAA,EAEA,SAAS,OAAkC;AACzC,UAAM,SAAS,MAAM,QAAQ,KAAK,IAAI,QAAQ,MAAM,OAAO;AAC3D,eAAW,QAAQ,QAAQ;AACzB,WAAK,QAAQ,IAAI;AAAA,IACnB;AACA,WAAO;AAAA,EACT;AAAA,EAEA,WAAW,UAA2B;AACpC,WAAO,KAAK,MAAM,OAAO,QAAQ;AAAA,EACnC;AAAA,EAEA,SAAS,UAA2B;AAClC,WAAO,KAAK,MAAM,IAAI,QAAQ;AAAA,EAChC;AAAA,EAEA,IAAI,UAAuC;AACzC,WAAO,KAAK,MAAM,IAAI,QAAQ;AAAA,EAChC;AAAA,EAEA,SAAoB;AAClB,WAAO,CAAC,GAAG,KAAK,MAAM,OAAO,CAAC;AAAA,EAChC;AAAA,EAEA,MAAM,mBAAmB,SAAS,IAA+B;AAC/D,UAAM,OAAyB,CAAC;AAChC,eAAW,QAAQ,KAAK,MAAM,OAAO,GAAG;AACtC,WAAK,KAAK,MAAM,KAAK,WAAW,MAAM,CAAC;AAAA,IACzC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,KACJ,UACA,MACA,SAC+B;AAC/B,UAAM,OAAO,KAAK,MAAM,IAAI,QAAQ;AACpC,QAAI,SAAS,QAAW;AACtB,YAAM,IAAI,kBAAkB,QAAQ;AAAA,IACtC;AAEA,QAAI;AACJ,QAAI;AACF,mBAAa,cAAc,IAAI;AAAA,IACjC,SAAS,OAAO;AACd,YAAM,IAAI,cAAc,mCAAmC,QAAQ,IAAI,KAAK;AAAA,IAC9E;AAEA,QAAI;AACF,YAAM,SAAS,MAAM,KAAK,KAAK,YAAY,OAAO;AAClD,aAAO,0BAA0B,MAAM;AAAA,IACzC,SAAS,OAAO;AACd,UAAI,iBAAiB,OAAO;AAC1B,cAAM,IAAI,cAAc,MAAM,SAAS,KAAK;AAAA,MAC9C;AACA,YAAM,IAAI,cAAc,QAAQ,QAAQ,WAAW,KAAK;AAAA,IAC1D;AAAA,EACF;AACF;;;AClDA,eAAsB,WACpB,OACA,OACA,UAAuC,CAAC,GACkC;AAC1E,QAAM,WAAW,MAAM,QAAQ,KAAK,IAAI,QAAQ,MAAM,OAAO;AAC7D,QAAM,cAAc,MAAM,QAAQ;AAAA,IAChC,SAAS,IAAI,OAAO,UAAU,EAAE,MAAM,YAAY,MAAM,KAAK,WAAW,EAAE,EAAE,EAAE;AAAA,EAChF;AACA,QAAM,YAAY,YAAY,IAAI,CAAC,EAAE,MAAM,WAAW,MAAM;AAC1D,UAAM,UAAU,QAAQ,UAAU,MAAM,UAAU,KAAK,yBAAyB,UAAU;AAC1F,UAAM,QAAQ,MAAM,QAAQ,OAAO,IAAI,UAAU,CAAC,OAAO;AACzD,UAAM,WAAW,QAAQ,WAAW,MAAM,UAAU;AACpD,UAAM,WAAyC;AAAA,MAC7C,UAAU,KAAK;AAAA,MACf;AAAA,MACA,MAAM,MAAM,KAAK,IAAI;AAAA,IACvB;AACA,QAAI,aAAa,QAAW;AAC1B,eAAS,WAAW;AAAA,IACtB;AACA,WAAO,EAAE,MAAM,UAAU,OAAO,SAAS;AAAA,EAC3C,CAAC;AAED,SAAO,eAAe,OAAO,WAAW;AAAA,IACtC,IAAI,CAAC,SAAS,KAAK,KAAK;AAAA,IACxB,SAAS,CAAC,SAAS,KAAK;AAAA,IACxB,UAAU,CAAC,SAAS,KAAK;AAAA,IACzB,aAAa,QAAQ;AAAA,EACvB,CAAC,EAAE;AAAA,IAAK,CAAC,aACP,SAAS,IAAI,CAAC,UAAU;AAAA,MACtB,GAAG;AAAA,MACH,UAAU,KAAK,SAAS;AAAA,IAC1B,EAAE;AAAA,EACJ;AACF;AAEA,eAAsB,gBACpB,OACA,OACA,UAAuC,CAAC,GACH;AACrC,QAAM,UAAU,MAAM,QAAQ,KAAK,IAAI,QAAQ,UAAU,KAAK,IAAI;AAClE,QAAM,WAAW,MAAM,WAAW,OAAO,SAAS,OAAO;AACzD,QAAM,QAAQ,oBAAoB,cAAc,QAAQ,EAAE,MAAM,KAAK;AACrE,SAAO,IAAI,uBAAuB,OAAO,OAAO;AAClD;AAEO,SAAS,mBAAmB,OAA2C;AAC5E,SACE,OAAO,UAAU,YACjB,UAAU,QACV,aAAa,SACZ,MAAgC,mBAAmB;AAExD;AAEA,IAAM,yBAAN,MAEA;AAAA,EAKE,YACmB,OACR,SACT;AAFiB;AACR;AAET,QAAI,MAAM,YAAY,QAAW;AAC/B,WAAK,UAAU,CAAC,YACd,MAAM,UAAU,OAAO;AAAA,IAG3B;AAAA,EACF;AAAA,EATmB;AAAA,EACR;AAAA,EANF;AAAA,EAgBT,OACE,SAC4E;AAC5E,WAAO,KAAK,MAAM,OAAO,OAAO;AAAA,EAClC;AAAA,EAEA,UAAU,SAA6E;AACrF,WAAO,KAAK,MAAM,UAAU,OAAO;AAAA,EACrC;AAAA,EAEA,OAAO,SAAmF;AACxF,WAAO,KAAK,MAAM,OAAO,OAAO;AAAA,EAClC;AACF;AAEA,SAAS,yBAAyB,YAAsC;AACtE,SAAO,CAAC,WAAW,MAAM,WAAW,aAAa,KAAK,UAAU,WAAW,UAAU,CAAC;AACxF;;;ACrCO,SAAS,iBACd,YAC8B;AAC9B,SAAO;AACT;AAKO,SAAS,qBACd,YAC6B;AAC7B,SAAO;AACT;;;ACxGA,SAAS,SAAS;AAGlB,IAAM,8BACJ;AAEF,IAAM,iBAAiB,EAAE,OAAO;AAAA,EAC9B,SAAS,EAAE,OAAO,EAAE,SAAS,qDAAqD;AACpF,CAAC;AAOM,SAAS,gBAAgB,UAAkC,CAAC,GAAG;AACpE,SAAO,WAAW;AAAA,IAChB,MAAM,QAAQ,QAAQ;AAAA,IACtB,aAAa,QAAQ,eAAe;AAAA,IACpC,OAAO;AAAA,IACP,QAAQ,EAAE,OAAO;AAAA,IACjB,SAAS,CAAC,SAAS,KAAK;AAAA,EAC1B,CAAC;AACH;","names":[]}
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  AgentBuilder
3
- } from "./chunk-FBHF7WZJ.js";
3
+ } from "./chunk-7NULHGAO.js";
4
4
  import {
5
5
  extractRagText
6
- } from "./chunk-BOJP4ARV.js";
6
+ } from "./chunk-CNANX5OL.js";
7
7
  import {
8
8
  createTool
9
9
  } from "./chunk-I7TM7TKX.js";
10
10
  import {
11
11
  CompletionRequestBuilder
12
- } from "./chunk-HHHNMP3V.js";
12
+ } from "./chunk-QTZHDPQX.js";
13
13
  import {
14
14
  CompletionCapabilityError,
15
15
  Message,
16
16
  Usage
17
- } from "./chunk-HU55YP24.js";
17
+ } from "./chunk-TIV3WFSR.js";
18
18
 
19
19
  // src/extractor/extractor.ts
20
20
  var SUBMIT_TOOL_NAME = "submit";
@@ -138,4 +138,4 @@ export {
138
138
  Extractor,
139
139
  ExtractorBuilder
140
140
  };
141
- //# sourceMappingURL=chunk-CESSRJYD.js.map
141
+ //# sourceMappingURL=chunk-BPU264XB.js.map
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  parseToolArgs,
6
6
  toolResultContentToText
7
- } from "./chunk-2XD7Z7NB.js";
7
+ } from "./chunk-BIYXGG33.js";
8
8
  import {
9
9
  runControl,
10
10
  toolCallControl
@@ -12,7 +12,7 @@ import {
12
12
  import {
13
13
  CompletionRequestBuilder,
14
14
  isStreamingCompletionModel
15
- } from "./chunk-HHHNMP3V.js";
15
+ } from "./chunk-QTZHDPQX.js";
16
16
  import {
17
17
  AssistantContent,
18
18
  Message,
@@ -20,7 +20,7 @@ import {
20
20
  Usage,
21
21
  assertCompletionRequestSupported,
22
22
  textFromAssistantContent
23
- } from "./chunk-HU55YP24.js";
23
+ } from "./chunk-TIV3WFSR.js";
24
24
  import {
25
25
  mapWithConcurrency
26
26
  } from "./chunk-OIMLU4SF.js";
@@ -313,7 +313,11 @@ var CompletionStreamAccumulator = class {
313
313
  if (event.name !== void 0 && event.name.length > 0) toolCall.name = event.name;
314
314
  if (event.signature !== void 0) toolCall.signature = event.signature;
315
315
  if (event.argumentsDelta !== void 0) {
316
- toolCall.argumentsText += event.argumentsDelta;
316
+ if (event.argumentsMode === "replace") {
317
+ toolCall.argumentsText = event.argumentsDelta;
318
+ } else {
319
+ toolCall.argumentsText += event.argumentsDelta;
320
+ }
317
321
  }
318
322
  return void 0;
319
323
  }
@@ -640,6 +644,19 @@ function addTurn(turn, event) {
640
644
  }
641
645
  return { type: "tool_call", turn, toolCall: event.toolCall };
642
646
  }
647
+ function addTurnToToolCallDelta(turn, event) {
648
+ const mapped = {
649
+ type: "tool_call_delta",
650
+ turn,
651
+ id: event.id
652
+ };
653
+ if (event.callId !== void 0) mapped.callId = event.callId;
654
+ if (event.name !== void 0) mapped.name = event.name;
655
+ if (event.argumentsDelta !== void 0) mapped.argumentsDelta = event.argumentsDelta;
656
+ if (event.argumentsMode !== void 0) mapped.argumentsMode = event.argumentsMode;
657
+ if (event.signature !== void 0) mapped.signature = event.signature;
658
+ return mapped;
659
+ }
643
660
  function isGenerationDeltaEvent(type) {
644
661
  return type === "text_delta" || type === "reasoning_delta" || type === "tool_call_delta" || type === "tool_call";
645
662
  }
@@ -647,13 +664,14 @@ function isGenerationDeltaEvent(type) {
647
664
  // src/internal/prompt-runtime/tool-execution.ts
648
665
  var MCP_TOOL_METADATA_KEY = /* @__PURE__ */ Symbol.for("anvia.mcp.tool.metadata");
649
666
  var ToolCallExecutor = class {
650
- constructor(agent, activeHook, approvals, runContext, concurrency, requestMiddlewares, cancel) {
667
+ constructor(agent, activeHook, approvals, runContext, concurrency, requestMiddlewares, includeToolCallDeltas, cancel) {
651
668
  this.agent = agent;
652
669
  this.activeHook = activeHook;
653
670
  this.approvals = approvals;
654
671
  this.runContext = runContext;
655
672
  this.concurrency = concurrency;
656
673
  this.requestMiddlewares = requestMiddlewares;
674
+ this.includeToolCallDeltas = includeToolCallDeltas;
657
675
  this.cancel = cancel;
658
676
  }
659
677
  agent;
@@ -662,6 +680,7 @@ var ToolCallExecutor = class {
662
680
  runContext;
663
681
  concurrency;
664
682
  requestMiddlewares;
683
+ includeToolCallDeltas;
665
684
  cancel;
666
685
  async execute(toolCalls, onResult, onStreamEvent, observation) {
667
686
  for (const toolCall of toolCalls) {
@@ -829,7 +848,7 @@ var ToolCallExecutor = class {
829
848
  }) : effectiveArgs;
830
849
  hookArgs.args = middlewareArgs;
831
850
  try {
832
- return await this.agent.callTool(toolCall.function.name, middlewareArgs, {
851
+ const toolContext = {
833
852
  emitStreamEvent: async (event) => {
834
853
  const streamEventArgs = {
835
854
  turn: observation?.turn ?? 0,
@@ -848,7 +867,9 @@ var ToolCallExecutor = class {
848
867
  onStreamEvent?.(payload);
849
868
  }
850
869
  }
851
- });
870
+ };
871
+ toolContext.includeToolCallDeltas = this.includeToolCallDeltas;
872
+ return await this.agent.callTool(toolCall.function.name, middlewareArgs, toolContext);
852
873
  } catch (error) {
853
874
  const errorAction = await this.activeHook?.onToolError?.({
854
875
  ...hookArgs,
@@ -1674,11 +1695,12 @@ var PromptRequest = class _PromptRequest {
1674
1695
  throw finalError;
1675
1696
  }
1676
1697
  }
1677
- async *stream() {
1698
+ async *stream(options = {}) {
1678
1699
  if (!this.agent.model.capabilities.streaming || !isStreamingCompletionModel(this.agent.model)) {
1679
1700
  throw new Error("This completion model does not support streaming");
1680
1701
  }
1681
1702
  this.startRun();
1703
+ const includeToolCallDeltas = options.includeToolCallDeltas !== false;
1682
1704
  const runId = globalThis.crypto.randomUUID();
1683
1705
  const emit = async (event) => {
1684
1706
  await this.recordAgentEvent(runId, event);
@@ -1777,6 +1799,9 @@ var PromptRequest = class _PromptRequest {
1777
1799
  firstDeltaMs = Date.now() - generationStartedAt;
1778
1800
  }
1779
1801
  const mapped = accumulator.accept(event);
1802
+ if (includeToolCallDeltas && event.type === "tool_call_delta") {
1803
+ yield await emit(addTurnToToolCallDelta(currentTurns, event));
1804
+ }
1780
1805
  if (mapped !== void 0) {
1781
1806
  await generationObservers.update?.({ turn: currentTurns, delta: mapped });
1782
1807
  if (mapped.type === "tool_call") {
@@ -1936,7 +1961,8 @@ var PromptRequest = class _PromptRequest {
1936
1961
  {
1937
1962
  turn: currentTurns,
1938
1963
  runObservers,
1939
- toolDefinitions: request.tools
1964
+ toolDefinitions: request.tools,
1965
+ includeToolCallDeltas
1940
1966
  }
1941
1967
  );
1942
1968
  toolResultsPromise.then(
@@ -1973,8 +1999,8 @@ var PromptRequest = class _PromptRequest {
1973
1999
  throw finalError;
1974
2000
  }
1975
2001
  }
1976
- readableStream() {
1977
- return toReadableStream(this.stream());
2002
+ readableStream(options = {}) {
2003
+ return toReadableStream(this.stream(options));
1978
2004
  }
1979
2005
  async runCompletion(request, turn, runObservers) {
1980
2006
  assertCompletionRequestSupported(this.agent.model, request);
@@ -2092,6 +2118,7 @@ var PromptRequest = class _PromptRequest {
2092
2118
  },
2093
2119
  this.concurrency,
2094
2120
  this.requestMiddlewares,
2121
+ observation?.includeToolCallDeltas ?? false,
2095
2122
  (reason) => this.cancelled(newMessages, reason)
2096
2123
  );
2097
2124
  return executor.execute(toolCalls, onResult, onStreamEvent, observation);
@@ -2450,4 +2477,4 @@ export {
2450
2477
  extractRagText,
2451
2478
  PromptRequest
2452
2479
  };
2453
- //# sourceMappingURL=chunk-BOJP4ARV.js.map
2480
+ //# sourceMappingURL=chunk-CNANX5OL.js.map