@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,13 +1,13 @@
1
- import { M as Message } from '../types-BySyFZTT.js';
2
- import { d as ToolApprovalRequest } from '../tool-DyC_XPPY.js';
3
- export { C as CompletionRetryContext, a as CompletionRetryOptions, P as PromptRequest } from '../agent-ib2-Ahyi.js';
4
- export { A as AgentChildStreamEvent, f as AgentDeltaEvent, a as AgentErrorStreamEvent, b as AgentStreamEvent, P as PromptResponse } from '../index-AK084cvC.js';
1
+ import { M as Message } from '../types-Byo50mwr.js';
2
+ import { d as ToolApprovalRequest } from '../tool-tHPNeWMR.js';
3
+ export { C as CompletionRetryContext, a as CompletionRetryOptions, P as PromptRequest } from '../agent-C1yoidvI.js';
4
+ export { A as AgentChildStreamEvent, a as AgentChildStreamEventWithToolCallDeltas, b as AgentChildStreamEventWithoutToolCallDeltas, l as AgentDeltaEvent, c as AgentErrorStreamEvent, d as AgentStreamEvent, e as AgentStreamEventWithToolCallDeltas, f as AgentStreamEventWithoutToolCallDeltas, g as AgentStreamOptions, h as AgentToolCallDeltaEvent, P as PromptResponse } from '../index-VH93vDXo.js';
5
5
  import '../guardrails/index.js';
6
- import '../types-CqlNB5VN.js';
7
- import '../types-VadeVz_w.js';
8
- import '../middleware-C6ZuwXjf.js';
6
+ import '../types-D78Vnorg.js';
7
+ import '../types-DPYoqg8M.js';
8
+ import '../middleware-CGEYQndv.js';
9
9
  import '../types-DHHZztGO.js';
10
- import '../types-D1iyZY9M.js';
10
+ import '../types-BHxJcHMk.js';
11
11
 
12
12
  declare class MaxTurnsError extends Error {
13
13
  readonly maxTurns: number;
@@ -3,13 +3,13 @@ import {
3
3
  PromptCancelledError,
4
4
  PromptRequest,
5
5
  ToolApprovalRequiredError
6
- } from "../chunk-BOJP4ARV.js";
6
+ } from "../chunk-CNANX5OL.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
- import "../chunk-HHHNMP3V.js";
12
- import "../chunk-HU55YP24.js";
11
+ import "../chunk-QTZHDPQX.js";
12
+ import "../chunk-TIV3WFSR.js";
13
13
  import "../chunk-WQKHFADH.js";
14
14
  import "../chunk-YBBD4HZ3.js";
15
15
  import "../chunk-OIMLU4SF.js";
@@ -1,7 +1,7 @@
1
- import { b as SkillLoader, a as SkillSet } from '../types-DBd1zAyo.js';
2
- export { c as Skill, S as SkillValidationError, d as SkillValidationIssue } from '../types-DBd1zAyo.js';
3
- import '../tool-DyC_XPPY.js';
4
- import '../types-BySyFZTT.js';
1
+ import { b as SkillLoader, a as SkillSet } from '../types-DW1Va3vx.js';
2
+ export { c as Skill, S as SkillValidationError, d as SkillValidationIssue } from '../types-DW1Va3vx.js';
3
+ import '../tool-tHPNeWMR.js';
4
+ import '../types-Byo50mwr.js';
5
5
 
6
6
  declare function loadSkills(loaders: SkillLoader | SkillLoader[]): Promise<SkillSet>;
7
7
 
@@ -5,9 +5,9 @@ import {
5
5
  } from "../chunk-DC2GJDPR.js";
6
6
  import "../chunk-CQNNSZPG.js";
7
7
  import "../chunk-YK4WAAS4.js";
8
- import "../chunk-2XD7Z7NB.js";
8
+ import "../chunk-BIYXGG33.js";
9
9
  import "../chunk-I7TM7TKX.js";
10
- import "../chunk-HU55YP24.js";
10
+ import "../chunk-TIV3WFSR.js";
11
11
  import "../chunk-WQKHFADH.js";
12
12
  import "../chunk-YBBD4HZ3.js";
13
13
  import "../chunk-OIMLU4SF.js";
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { Z as ZodSchema } from './zod-schema-C7F4clpm.js';
3
- import { c as ToolApprovalPolicy, f as ToolCallContext, T as Tool } from './tool-DyC_XPPY.js';
3
+ import { c as ToolApprovalPolicy, f as ToolCallContext, T as Tool } from './tool-tHPNeWMR.js';
4
4
 
5
5
  type CreateToolOptions<InputSchema extends ZodSchema, OutputSchema extends ZodSchema | undefined = undefined, Output = unknown> = {
6
6
  name: string;
@@ -1,11 +1,11 @@
1
- export { b as CreateThinkToolOptions, C as CreateToolOptions, c as createThinkTool, a as createTool } from '../think-tool-D3_K8NJa.js';
2
- export { A as AgentMiddleware, C as CompletionRequestMiddlewareArgs, a as CompletionRequestMiddlewareResult, b as CompletionResponseMiddlewareArgs, c as CompletionResponseMiddlewareResult, D as DynamicToolIndex, E as EmbedToolsOptions, T as ToolInputMiddlewareArgs, d as ToolInputMiddlewareResult, e as ToolMiddleware, f as ToolOutputMiddlewareArgs, g as ToolOutputMiddlewareResult, h as ToolResultMiddlewareArgs, k as ToolSearchDocument, l as ToolSet, i as createMiddleware, m as createToolIndex, j as createToolMiddleware, n as embedTools, o as isDynamicToolIndex } from '../middleware-C6ZuwXjf.js';
3
- export { A as AnyTool, N as NormalizedToolOutput, T as Tool, a as ToolApprovalContext, b as ToolApprovalDecision, c as ToolApprovalPolicy, d as ToolApprovalRequest, h as ToolApprovalRunContext, e as ToolApprovalsOptions, f as ToolCallContext, g as ToolCallStreamEvent, i as ToolOutput, n as normalizeToolResultOutput, p as parseToolArgs, t as toolResultContentToText } from '../tool-DyC_XPPY.js';
4
- export { t as isToolResultContentArray, u as serializeToolOutput } from '../types-BySyFZTT.js';
1
+ export { b as CreateThinkToolOptions, C as CreateToolOptions, c as createThinkTool, a as createTool } from '../think-tool-DABDgW_E.js';
2
+ export { A as AgentMiddleware, C as CompletionRequestMiddlewareArgs, a as CompletionRequestMiddlewareResult, b as CompletionResponseMiddlewareArgs, c as CompletionResponseMiddlewareResult, D as DynamicToolIndex, E as EmbedToolsOptions, T as ToolInputMiddlewareArgs, d as ToolInputMiddlewareResult, e as ToolMiddleware, f as ToolOutputMiddlewareArgs, g as ToolOutputMiddlewareResult, h as ToolResultMiddlewareArgs, k as ToolSearchDocument, l as ToolSet, i as createMiddleware, m as createToolIndex, j as createToolMiddleware, n as embedTools, o as isDynamicToolIndex } from '../middleware-CGEYQndv.js';
3
+ export { A as AnyTool, N as NormalizedToolOutput, T as Tool, a as ToolApprovalContext, b as ToolApprovalDecision, c as ToolApprovalPolicy, d as ToolApprovalRequest, h as ToolApprovalRunContext, e as ToolApprovalsOptions, f as ToolCallContext, g as ToolCallStreamEvent, i as ToolOutput, n as normalizeToolResultOutput, p as parseToolArgs, t as toolResultContentToText } from '../tool-tHPNeWMR.js';
4
+ export { t as isToolResultContentArray, u as serializeToolOutput } from '../types-Byo50mwr.js';
5
5
  import 'zod';
6
6
  import '../zod-schema-C7F4clpm.js';
7
7
  import '../types-DHHZztGO.js';
8
- import '../types-D1iyZY9M.js';
8
+ import '../types-BHxJcHMk.js';
9
9
 
10
10
  declare class ToolCallError extends Error {
11
11
  readonly cause?: unknown | undefined;
@@ -13,14 +13,14 @@ import {
13
13
  normalizeToolResultOutput,
14
14
  parseToolArgs,
15
15
  toolResultContentToText
16
- } from "../chunk-2XD7Z7NB.js";
16
+ } from "../chunk-BIYXGG33.js";
17
17
  import {
18
18
  createTool
19
19
  } from "../chunk-I7TM7TKX.js";
20
20
  import {
21
21
  isToolResultContentArray,
22
22
  serializeToolResultOutput
23
- } from "../chunk-HU55YP24.js";
23
+ } from "../chunk-TIV3WFSR.js";
24
24
  import "../chunk-WQKHFADH.js";
25
25
  import "../chunk-YBBD4HZ3.js";
26
26
  import "../chunk-OIMLU4SF.js";
@@ -1,4 +1,4 @@
1
- import { J as JsonObject, k as ToolDefinition, n as ToolResultContent, g as JsonValue } from './types-BySyFZTT.js';
1
+ import { J as JsonObject, k as ToolDefinition, n as ToolResultContent, g as JsonValue } from './types-Byo50mwr.js';
2
2
 
3
3
  type ToolApprovalRunContext = {
4
4
  agentId: string;
@@ -41,6 +41,7 @@ type ToolCallStreamEvent = {
41
41
  };
42
42
  type ToolCallContext = {
43
43
  emitStreamEvent?(event: ToolCallStreamEvent): void | Promise<void>;
44
+ includeToolCallDeltas?: boolean;
44
45
  };
45
46
  interface Tool<Args = unknown, Output = unknown> {
46
47
  readonly name: string;
@@ -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 TranscriptionRequest = {
4
4
  data: Uint8Array;
@@ -1,5 +1,5 @@
1
1
  import { V as VectorMetadata, a as VectorMetadataValue } from './types-DHHZztGO.js';
2
- import { T as Tool } from './tool-DyC_XPPY.js';
2
+ import { T as Tool } from './tool-tHPNeWMR.js';
3
3
 
4
4
  type VectorFilter = {
5
5
  type: "eq";
@@ -1,8 +1,8 @@
1
1
  import { SSEClientTransportOptions } from '@modelcontextprotocol/sdk/client/sse.js';
2
2
  import { StdioServerParameters } from '@modelcontextprotocol/sdk/client/stdio.js';
3
3
  import { StreamableHTTPClientTransportOptions } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
4
- import { J as JsonObject } from './types-BySyFZTT.js';
5
- import { A as AnyTool } from './tool-DyC_XPPY.js';
4
+ import { J as JsonObject } from './types-Byo50mwr.js';
5
+ import { A as AnyTool } from './tool-tHPNeWMR.js';
6
6
 
7
7
  type McpToolDefinition = {
8
8
  name: string;
@@ -235,6 +235,7 @@ interface CompletionModel<RawResponse = unknown, ModelName extends string = stri
235
235
  }): JsonObject | undefined;
236
236
  completion(request: CompletionRequest<ModelName>): Promise<CompletionResponse<RawResponse>>;
237
237
  }
238
+ type ToolCallArgumentsMode = "append" | "replace";
238
239
  type CompletionStreamEvent<RawResponse = unknown> = {
239
240
  type: "text_delta";
240
241
  delta: string;
@@ -250,6 +251,7 @@ type CompletionStreamEvent<RawResponse = unknown> = {
250
251
  callId?: string;
251
252
  name?: string;
252
253
  argumentsDelta?: string;
254
+ argumentsMode?: ToolCallArgumentsMode;
253
255
  signature?: string;
254
256
  } | {
255
257
  type: "tool_call";
@@ -276,4 +278,4 @@ declare function assertCompletionRequestSupported(model: CompletionModel, reques
276
278
  }): void;
277
279
  declare function textFromAssistantContent(content: AssistantContent[]): string;
278
280
 
279
- export { AssistantContent as A, type ImageDetail as B, type CompletionModel as C, type Document as D, type ReasoningContent as E, type ReasoningContentType as F, type StreamingCompletionModel as G, type ToolFunction as H, type ImageContent as I, type JsonObject as J, assertCompletionRequestSupported as K, reasoningDisplayText as L, Message as M, textFromAssistantContent as N, type Reasoning as R, type SystemMessage as S, type Text as T, Usage as U, type AssistantGenerationMetadata as a, type AssistantMessage as b, type AssistantMessageOptions as c, type CompletionRequest as d, type CompletionResponse as e, type JsonPrimitive as f, type JsonValue as g, type MessageOptions as h, type ToolCall as i, ToolContent as j, type ToolDefinition as k, type ToolMessage as l, type ToolResult as m, type ToolResultContent as n, type ToolResultMessageOptions as o, type ToolResultOptions as p, UserContent as q, type UserMessage as r, getAssistantGenerationMetadata as s, isToolResultContentArray as t, serializeToolResultOutput as u, type ToolChoice as v, CompletionCapabilityError as w, type CompletionModelCapabilities as x, type CompletionStreamEvent as y, type DocumentContent as z };
281
+ export { AssistantContent as A, type ImageDetail as B, type CompletionModel as C, type Document as D, type ReasoningContent as E, type ReasoningContentType as F, type StreamingCompletionModel as G, type ToolCallArgumentsMode as H, type ImageContent as I, type JsonObject as J, type ToolFunction as K, assertCompletionRequestSupported as L, Message as M, reasoningDisplayText as N, textFromAssistantContent as O, type Reasoning as R, type SystemMessage as S, type Text as T, Usage as U, type AssistantGenerationMetadata as a, type AssistantMessage as b, type AssistantMessageOptions as c, type CompletionRequest as d, type CompletionResponse as e, type JsonPrimitive as f, type JsonValue as g, type MessageOptions as h, type ToolCall as i, ToolContent as j, type ToolDefinition as k, type ToolMessage as l, type ToolResult as m, type ToolResultContent as n, type ToolResultMessageOptions as o, type ToolResultOptions as p, UserContent as q, type UserMessage as r, getAssistantGenerationMetadata as s, isToolResultContentArray as t, serializeToolResultOutput as u, type ToolChoice as v, CompletionCapabilityError as w, type CompletionModelCapabilities as x, type CompletionStreamEvent as y, type DocumentContent as z };
@@ -1,4 +1,4 @@
1
- import { M as Message, U as Usage, e as CompletionResponse, n as ToolResultContent } from './types-BySyFZTT.js';
1
+ import { M as Message, U as Usage, e as CompletionResponse, n as ToolResultContent } from './types-Byo50mwr.js';
2
2
 
3
3
  type HookAction = {
4
4
  type: "continue";
@@ -1,4 +1,4 @@
1
- import { J as JsonObject, M as Message } from './types-BySyFZTT.js';
1
+ import { J as JsonObject, M as Message } from './types-Byo50mwr.js';
2
2
 
3
3
  type MemorySavePolicy = "message" | "turn" | "run";
4
4
  type MemoryContext = {
@@ -1,4 +1,4 @@
1
- import { A as AnyTool } from './tool-DyC_XPPY.js';
1
+ import { A as AnyTool } from './tool-tHPNeWMR.js';
2
2
 
3
3
  type Skill = {
4
4
  readonly name: string;
@@ -1,4 +1,4 @@
1
- import { B as ImageDetail, g as JsonValue, U as Usage, M as Message } from '../types-BySyFZTT.js';
1
+ import { B as ImageDetail, g as JsonValue, U as Usage, M as Message } from '../types-Byo50mwr.js';
2
2
 
3
3
  type UIMessageRole = "system" | "user" | "assistant" | "tool";
4
4
  type UIError = {
package/dist/ui/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  coreMessagesToUIMessages,
3
3
  uiMessagesToCoreMessages
4
- } from "../chunk-X2Q3AXFM.js";
5
- import "../chunk-HU55YP24.js";
4
+ } from "../chunk-MEUZ4NBO.js";
5
+ import "../chunk-TIV3WFSR.js";
6
6
  export {
7
7
  coreMessagesToUIMessages,
8
8
  uiMessagesToCoreMessages
@@ -1,8 +1,8 @@
1
1
  import { a as VectorMetadataValue, V as VectorMetadata, E as EmbeddingModel, c as EmbeddedDocument, d as Embedding } from '../types-DHHZztGO.js';
2
- import { T as Tool } from '../tool-DyC_XPPY.js';
3
- import { V as VectorFilter, a as VectorSearchIndex, I as IndexStrategy, b as VectorSearchRequest, c as VectorSearchResult, d as VectorInspectRequest, e as VectorInspectPage, f as VectorSearchToolOptions } from '../types-D1iyZY9M.js';
4
- export { L as LshOptions, g as VectorInspectItem } from '../types-D1iyZY9M.js';
5
- import '../types-BySyFZTT.js';
2
+ import { T as Tool } from '../tool-tHPNeWMR.js';
3
+ import { V as VectorFilter, a as VectorSearchIndex, I as IndexStrategy, b as VectorSearchRequest, c as VectorSearchResult, d as VectorInspectRequest, e as VectorInspectPage, f as VectorSearchToolOptions } from '../types-BHxJcHMk.js';
4
+ export { L as LshOptions, g as VectorInspectItem } from '../types-BHxJcHMk.js';
5
+ import '../types-Byo50mwr.js';
6
6
 
7
7
  declare const vectorFilter: {
8
8
  eq(key: string, value: VectorMetadataValue): VectorFilter;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anvia/core",
3
- "version": "0.14.0",
3
+ "version": "0.15.0",
4
4
  "description": "Core runtime primitives for context-aware Anvia agents.",
5
5
  "author": "anvia",
6
6
  "maintainer": "Indra Zulfi",
@@ -1 +0,0 @@
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};\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":"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","names":[]}