ai-functions 2.1.1 → 2.3.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.
- package/.turbo/turbo-build.log +1 -4
- package/CHANGELOG.md +68 -1
- package/README.md +397 -157
- package/dist/ai-promise.d.ts +50 -3
- package/dist/ai-promise.d.ts.map +1 -1
- package/dist/ai-promise.js +410 -51
- package/dist/ai-promise.js.map +1 -1
- package/dist/ai-schemas.d.ts +56 -0
- package/dist/ai-schemas.d.ts.map +1 -0
- package/dist/ai-schemas.js +53 -0
- package/dist/ai-schemas.js.map +1 -0
- package/dist/ai.d.ts +16 -242
- package/dist/ai.d.ts.map +1 -1
- package/dist/ai.js +54 -837
- package/dist/ai.js.map +1 -1
- package/dist/batch/anthropic.d.ts +6 -4
- package/dist/batch/anthropic.d.ts.map +1 -1
- package/dist/batch/anthropic.js +83 -145
- package/dist/batch/anthropic.js.map +1 -1
- package/dist/batch/bedrock.d.ts +8 -30
- package/dist/batch/bedrock.d.ts.map +1 -1
- package/dist/batch/bedrock.js +155 -338
- package/dist/batch/bedrock.js.map +1 -1
- package/dist/batch/cloudflare.d.ts +8 -20
- package/dist/batch/cloudflare.d.ts.map +1 -1
- package/dist/batch/cloudflare.js +68 -189
- package/dist/batch/cloudflare.js.map +1 -1
- package/dist/batch/google.d.ts +6 -20
- package/dist/batch/google.d.ts.map +1 -1
- package/dist/batch/google.js +70 -238
- package/dist/batch/google.js.map +1 -1
- package/dist/batch/index.d.ts +4 -1
- package/dist/batch/index.d.ts.map +1 -1
- package/dist/batch/index.js +4 -1
- package/dist/batch/index.js.map +1 -1
- package/dist/batch/memory.d.ts +1 -1
- package/dist/batch/memory.d.ts.map +1 -1
- package/dist/batch/memory.js +14 -10
- package/dist/batch/memory.js.map +1 -1
- package/dist/batch/openai.d.ts +11 -14
- package/dist/batch/openai.d.ts.map +1 -1
- package/dist/batch/openai.js +52 -156
- package/dist/batch/openai.js.map +1 -1
- package/dist/batch/provider.d.ts +111 -0
- package/dist/batch/provider.d.ts.map +1 -0
- package/dist/batch/provider.js +233 -0
- package/dist/batch/provider.js.map +1 -0
- package/dist/batch-map.d.ts.map +1 -1
- package/dist/batch-map.js +23 -17
- package/dist/batch-map.js.map +1 -1
- package/dist/batch-queue.d.ts +65 -0
- package/dist/batch-queue.d.ts.map +1 -1
- package/dist/batch-queue.js +169 -14
- package/dist/batch-queue.js.map +1 -1
- package/dist/budget.d.ts +272 -0
- package/dist/budget.d.ts.map +1 -0
- package/dist/budget.js +513 -0
- package/dist/budget.js.map +1 -0
- package/dist/cache.d.ts +295 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +433 -0
- package/dist/cache.js.map +1 -0
- package/dist/context.d.ts +42 -8
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +64 -62
- package/dist/context.js.map +1 -1
- package/dist/digital-objects-registry.d.ts +229 -0
- package/dist/digital-objects-registry.d.ts.map +1 -0
- package/dist/digital-objects-registry.js +617 -0
- package/dist/digital-objects-registry.js.map +1 -0
- package/dist/embeddings.d.ts +2 -2
- package/dist/embeddings.d.ts.map +1 -1
- package/dist/errors.d.ts +22 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +35 -0
- package/dist/errors.js.map +1 -0
- package/dist/eval/runner.d.ts +10 -1
- package/dist/eval/runner.d.ts.map +1 -1
- package/dist/eval/runner.js +41 -35
- package/dist/eval/runner.js.map +1 -1
- package/dist/eval-log/in-memory.d.ts +34 -0
- package/dist/eval-log/in-memory.d.ts.map +1 -0
- package/dist/eval-log/in-memory.js +84 -0
- package/dist/eval-log/in-memory.js.map +1 -0
- package/dist/eval-log/index.d.ts +29 -0
- package/dist/eval-log/index.d.ts.map +1 -0
- package/dist/eval-log/index.js +39 -0
- package/dist/eval-log/index.js.map +1 -0
- package/dist/eval-log/types.d.ts +101 -0
- package/dist/eval-log/types.d.ts.map +1 -0
- package/dist/eval-log/types.js +16 -0
- package/dist/eval-log/types.js.map +1 -0
- package/dist/function-registry.d.ts +116 -0
- package/dist/function-registry.d.ts.map +1 -0
- package/dist/function-registry.js +546 -0
- package/dist/function-registry.js.map +1 -0
- package/dist/generate.d.ts +9 -3
- package/dist/generate.d.ts.map +1 -1
- package/dist/generate.js +18 -22
- package/dist/generate.js.map +1 -1
- package/dist/index.d.ts +35 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +89 -42
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +118 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +187 -0
- package/dist/logger.js.map +1 -0
- package/dist/middleware/budget.d.ts +84 -0
- package/dist/middleware/budget.d.ts.map +1 -0
- package/dist/middleware/budget.js +110 -0
- package/dist/middleware/budget.js.map +1 -0
- package/dist/middleware/cache.d.ts +103 -0
- package/dist/middleware/cache.d.ts.map +1 -0
- package/dist/middleware/cache.js +228 -0
- package/dist/middleware/cache.js.map +1 -0
- package/dist/middleware/embed-cache.d.ts +99 -0
- package/dist/middleware/embed-cache.d.ts.map +1 -0
- package/dist/middleware/embed-cache.js +128 -0
- package/dist/middleware/embed-cache.js.map +1 -0
- package/dist/middleware/index.d.ts +11 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +11 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/trace.d.ts +103 -0
- package/dist/middleware/trace.d.ts.map +1 -0
- package/dist/middleware/trace.js +176 -0
- package/dist/middleware/trace.js.map +1 -0
- package/dist/primitives.d.ts +120 -1
- package/dist/primitives.d.ts.map +1 -1
- package/dist/primitives.js +398 -26
- package/dist/primitives.js.map +1 -1
- package/dist/retry.d.ts +368 -0
- package/dist/retry.d.ts.map +1 -0
- package/dist/retry.js +646 -0
- package/dist/retry.js.map +1 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +2 -10
- package/dist/schema.js.map +1 -1
- package/dist/telemetry.d.ts +128 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +285 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/template.d.ts.map +1 -1
- package/dist/template.js +6 -1
- package/dist/template.js.map +1 -1
- package/dist/tool-orchestration.d.ts +453 -0
- package/dist/tool-orchestration.d.ts.map +1 -0
- package/dist/tool-orchestration.js +763 -0
- package/dist/tool-orchestration.js.map +1 -0
- package/dist/type-guards.d.ts +28 -0
- package/dist/type-guards.d.ts.map +1 -0
- package/dist/type-guards.js +29 -0
- package/dist/type-guards.js.map +1 -0
- package/dist/types.d.ts +135 -17
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +36 -1
- package/dist/types.js.map +1 -1
- package/dist/wrap-for-v3.d.ts +80 -0
- package/dist/wrap-for-v3.d.ts.map +1 -0
- package/dist/wrap-for-v3.js +89 -0
- package/dist/wrap-for-v3.js.map +1 -0
- package/examples/00-quickstart.ts +232 -0
- package/examples/01-rag-chatbot.ts +212 -0
- package/examples/02-multi-agent-research.ts +290 -0
- package/examples/03-email-classification.ts +379 -0
- package/examples/04-content-moderation.ts +400 -0
- package/examples/05-document-extraction.ts +455 -0
- package/examples/06-streaming-chat-nextjs.ts +437 -0
- package/examples/07-cloudflare-worker.ts +483 -0
- package/examples/08-batch-processing.ts +491 -0
- package/examples/09-budget-constrained.ts +527 -0
- package/examples/10-tool-orchestration.ts +565 -0
- package/examples/11-retry-resilience.ts +403 -0
- package/examples/12-caching-strategies.ts +422 -0
- package/examples/README.md +145 -0
- package/package.json +10 -6
- package/src/ai-promise.ts +528 -99
- package/src/ai-schemas.ts +122 -0
- package/src/ai.ts +69 -1153
- package/src/batch/anthropic.ts +96 -161
- package/src/batch/bedrock.ts +203 -454
- package/src/batch/cloudflare.ts +99 -282
- package/src/batch/google.ts +91 -297
- package/src/batch/index.ts +4 -1
- package/src/batch/memory.ts +15 -10
- package/src/batch/openai.ts +65 -193
- package/src/batch/provider.ts +336 -0
- package/src/batch-map.ts +29 -24
- package/src/batch-queue.ts +200 -11
- package/src/budget.ts +740 -0
- package/src/cache.ts +681 -0
- package/src/context.ts +122 -76
- package/src/digital-objects-registry.ts +750 -0
- package/src/errors.ts +37 -0
- package/src/eval/runner.ts +63 -38
- package/src/eval-log/in-memory.ts +90 -0
- package/src/eval-log/index.ts +46 -0
- package/src/eval-log/types.ts +110 -0
- package/src/function-registry.ts +671 -0
- package/src/generate.ts +33 -33
- package/src/index.ts +325 -49
- package/src/logger.ts +232 -0
- package/src/middleware/budget.ts +171 -0
- package/src/middleware/cache.ts +299 -0
- package/src/middleware/embed-cache.ts +195 -0
- package/src/middleware/index.ts +23 -0
- package/src/middleware/trace.ts +248 -0
- package/src/primitives.ts +589 -62
- package/src/retry.ts +902 -0
- package/src/schema.ts +8 -17
- package/src/telemetry.ts +403 -0
- package/src/template.ts +8 -4
- package/src/tool-orchestration.ts +1173 -0
- package/src/type-guards.ts +31 -0
- package/src/types.ts +164 -25
- package/src/wrap-for-v3.ts +105 -0
- package/test/ai-promise.test.ts +1080 -0
- package/test/ai-proxy.test.ts +1 -1
- package/test/backward-compat.test.ts +147 -0
- package/test/batch-autosubmit-errors.test.ts +610 -0
- package/test/batch-blog-posts.test.ts +87 -129
- package/test/budget-tracking.test.ts +800 -0
- package/test/cache.test.ts +712 -0
- package/test/context-isolation.test.ts +687 -0
- package/test/core-functions.test.ts +183 -579
- package/test/decide.test.ts +154 -322
- package/test/define.test.ts +211 -8
- package/test/digital-objects-registry.test.ts +760 -0
- package/test/embedding-cache-middleware.test.ts +140 -0
- package/test/evals/deterministic.eval.test.ts +376 -0
- package/test/generate-core.test.ts +140 -229
- package/test/implicit-batch.test.ts +22 -65
- package/test/json-parse-error-handling.test.ts +463 -0
- package/test/retry-policy-integration.test.ts +117 -0
- package/test/retry.test.ts +1016 -0
- package/test/schema.test.ts +55 -19
- package/test/streaming.test.ts +316 -0
- package/test/template.test.ts +1164 -0
- package/test/tool-orchestration.test.ts +1040 -0
- package/test/wrap-for-v3.test.ts +612 -0
- package/vitest.config.js +6 -0
- package/vitest.config.ts +20 -0
- package/dist/rpc/auth.d.ts +0 -69
- package/dist/rpc/auth.d.ts.map +0 -1
- package/dist/rpc/auth.js +0 -136
- package/dist/rpc/auth.js.map +0 -1
- package/dist/rpc/client.d.ts +0 -62
- package/dist/rpc/client.d.ts.map +0 -1
- package/dist/rpc/client.js +0 -103
- package/dist/rpc/client.js.map +0 -1
- package/dist/rpc/deferred.d.ts +0 -60
- package/dist/rpc/deferred.d.ts.map +0 -1
- package/dist/rpc/deferred.js +0 -96
- package/dist/rpc/deferred.js.map +0 -1
- package/dist/rpc/index.d.ts +0 -22
- package/dist/rpc/index.d.ts.map +0 -1
- package/dist/rpc/index.js +0 -38
- package/dist/rpc/index.js.map +0 -1
- package/dist/rpc/local.d.ts +0 -42
- package/dist/rpc/local.d.ts.map +0 -1
- package/dist/rpc/local.js +0 -50
- package/dist/rpc/local.js.map +0 -1
- package/dist/rpc/server.d.ts +0 -165
- package/dist/rpc/server.d.ts.map +0 -1
- package/dist/rpc/server.js +0 -405
- package/dist/rpc/server.js.map +0 -1
- package/dist/rpc/session.d.ts +0 -32
- package/dist/rpc/session.d.ts.map +0 -1
- package/dist/rpc/session.js +0 -43
- package/dist/rpc/session.js.map +0 -1
- package/dist/rpc/transport.d.ts +0 -306
- package/dist/rpc/transport.d.ts.map +0 -1
- package/dist/rpc/transport.js +0 -731
- package/dist/rpc/transport.js.map +0 -1
- package/src/batch/anthropic.js +0 -256
- package/src/batch/bedrock.js +0 -584
- package/src/batch/cloudflare.js +0 -287
- package/src/batch/google.js +0 -359
- package/src/batch/index.js +0 -30
- package/src/batch/memory.js +0 -187
- package/src/batch/openai.js +0 -402
- package/src/eval/index.js +0 -7
- package/src/eval/models.js +0 -119
- package/src/eval/runner.js +0 -147
- package/test/schema.test.js +0 -96
|
@@ -0,0 +1,453 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic Tool Orchestration
|
|
3
|
+
*
|
|
4
|
+
* Provides multi-turn model→tools→model loop orchestration for complex AI workflows.
|
|
5
|
+
*
|
|
6
|
+
* Key components:
|
|
7
|
+
* - AgenticLoop: Orchestrates multi-turn conversations with tool execution
|
|
8
|
+
* - ToolRouter: Routes tool calls to registered handlers
|
|
9
|
+
* - ToolValidator: Validates tool arguments before execution
|
|
10
|
+
*
|
|
11
|
+
* @packageDocumentation
|
|
12
|
+
*/
|
|
13
|
+
import { z, type ZodTypeAny } from 'zod';
|
|
14
|
+
/**
|
|
15
|
+
* A tool that can be executed by the agentic loop
|
|
16
|
+
*/
|
|
17
|
+
export interface Tool<TParams extends ZodTypeAny = ZodTypeAny, TResult = unknown> {
|
|
18
|
+
/** Unique name for the tool */
|
|
19
|
+
name: string;
|
|
20
|
+
/** Human-readable description */
|
|
21
|
+
description: string;
|
|
22
|
+
/** Zod schema for parameters */
|
|
23
|
+
parameters: TParams;
|
|
24
|
+
/** Execute the tool with validated parameters */
|
|
25
|
+
execute: (params: z.infer<TParams>) => Promise<TResult>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* A tool call from the model
|
|
29
|
+
*/
|
|
30
|
+
export interface ToolCall {
|
|
31
|
+
/** Name of the tool to call */
|
|
32
|
+
name: string;
|
|
33
|
+
/** Arguments for the tool */
|
|
34
|
+
arguments: Record<string, unknown>;
|
|
35
|
+
/** Optional ID for tracking */
|
|
36
|
+
id?: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Result of a tool execution
|
|
40
|
+
*/
|
|
41
|
+
export interface ToolResult<T = unknown> {
|
|
42
|
+
/** Whether execution succeeded */
|
|
43
|
+
success: boolean;
|
|
44
|
+
/** The result value if successful */
|
|
45
|
+
result?: T;
|
|
46
|
+
/** Error message if failed */
|
|
47
|
+
error?: string;
|
|
48
|
+
/** The original tool call */
|
|
49
|
+
toolCall?: ToolCall;
|
|
50
|
+
/** Number of retries attempted */
|
|
51
|
+
retryCount?: number;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Formatted tool result for model consumption
|
|
55
|
+
*/
|
|
56
|
+
export interface FormattedToolResult {
|
|
57
|
+
/** Role is always 'tool' */
|
|
58
|
+
role: 'tool';
|
|
59
|
+
/** String content of the result */
|
|
60
|
+
content: string;
|
|
61
|
+
/** Tool call ID for correlation */
|
|
62
|
+
tool_call_id?: string;
|
|
63
|
+
/** Whether this is an error result */
|
|
64
|
+
isError?: boolean;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Validation result for tool arguments
|
|
68
|
+
*/
|
|
69
|
+
export interface ValidationResult {
|
|
70
|
+
/** Whether validation passed */
|
|
71
|
+
valid: boolean;
|
|
72
|
+
/** Validation errors if any */
|
|
73
|
+
errors?: string[];
|
|
74
|
+
/** Validated and parsed arguments */
|
|
75
|
+
parsedArgs?: unknown;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Model response from a generation
|
|
79
|
+
*/
|
|
80
|
+
export interface ModelResponse {
|
|
81
|
+
/** Generated text (if no tool calls) */
|
|
82
|
+
text?: string;
|
|
83
|
+
/** Tool calls requested by the model */
|
|
84
|
+
toolCalls?: ToolCall[];
|
|
85
|
+
/** Why generation stopped */
|
|
86
|
+
finishReason: 'stop' | 'tool_call' | 'length' | 'content_filter' | 'error';
|
|
87
|
+
/** Token usage */
|
|
88
|
+
usage?: {
|
|
89
|
+
promptTokens: number;
|
|
90
|
+
completionTokens: number;
|
|
91
|
+
totalTokens: number;
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Message in the conversation
|
|
96
|
+
*/
|
|
97
|
+
export interface Message {
|
|
98
|
+
role: 'user' | 'assistant' | 'system' | 'tool';
|
|
99
|
+
content: string;
|
|
100
|
+
tool_calls?: ToolCall[];
|
|
101
|
+
tool_call_id?: string;
|
|
102
|
+
isError?: boolean;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Step information for callbacks
|
|
106
|
+
*/
|
|
107
|
+
export interface StepInfo {
|
|
108
|
+
/** Step number (1-indexed) */
|
|
109
|
+
stepNumber: number;
|
|
110
|
+
/** Tool calls in this step */
|
|
111
|
+
toolCalls: Array<ToolCall & {
|
|
112
|
+
result?: unknown;
|
|
113
|
+
error?: string;
|
|
114
|
+
}>;
|
|
115
|
+
/** Model response */
|
|
116
|
+
response: ModelResponse;
|
|
117
|
+
/** Current messages */
|
|
118
|
+
messages: Message[];
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Options for creating an AgenticLoop
|
|
122
|
+
*/
|
|
123
|
+
export interface LoopOptions {
|
|
124
|
+
/** Available tools */
|
|
125
|
+
tools: Tool[];
|
|
126
|
+
/** Maximum number of steps before stopping */
|
|
127
|
+
maxSteps: number;
|
|
128
|
+
/** Whether to throw error when maxSteps is exceeded */
|
|
129
|
+
strictMaxSteps?: boolean;
|
|
130
|
+
/** Whether to execute tool calls in parallel */
|
|
131
|
+
parallelExecution?: boolean;
|
|
132
|
+
/** Maximum concurrent tool calls when parallel execution is enabled */
|
|
133
|
+
maxParallelCalls?: number;
|
|
134
|
+
/** Whether to retry failed tool calls */
|
|
135
|
+
retryFailedTools?: boolean;
|
|
136
|
+
/** Maximum retries per tool call */
|
|
137
|
+
maxToolRetries?: number;
|
|
138
|
+
/** Whether to continue when a tool fails */
|
|
139
|
+
continueOnError?: boolean;
|
|
140
|
+
/** Timeout for individual tool execution (ms) */
|
|
141
|
+
toolTimeout?: number;
|
|
142
|
+
/** Track token usage across steps */
|
|
143
|
+
trackUsage?: boolean;
|
|
144
|
+
/** Callback for each step */
|
|
145
|
+
onStep?: (step: StepInfo) => void;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Model generation options passed to the model
|
|
149
|
+
*/
|
|
150
|
+
export interface ModelGenerationOptions {
|
|
151
|
+
/** Messages for the conversation */
|
|
152
|
+
messages: Message[];
|
|
153
|
+
/** Tools available for use */
|
|
154
|
+
tools: Record<string, {
|
|
155
|
+
description: string;
|
|
156
|
+
parameters: unknown;
|
|
157
|
+
execute: (args: unknown) => Promise<unknown>;
|
|
158
|
+
}>;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Options for running the loop
|
|
162
|
+
*/
|
|
163
|
+
export interface RunOptions {
|
|
164
|
+
/** Model to use for generation */
|
|
165
|
+
model: {
|
|
166
|
+
generate: (options: ModelGenerationOptions) => Promise<ModelResponse>;
|
|
167
|
+
};
|
|
168
|
+
/** Initial prompt */
|
|
169
|
+
prompt: string;
|
|
170
|
+
/** System message */
|
|
171
|
+
system?: string;
|
|
172
|
+
/** Abort signal */
|
|
173
|
+
abortSignal?: AbortSignal;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Extended tool call result with metadata
|
|
177
|
+
*/
|
|
178
|
+
export interface ToolCallResult {
|
|
179
|
+
/** Tool name */
|
|
180
|
+
name: string;
|
|
181
|
+
/** Arguments passed */
|
|
182
|
+
arguments: Record<string, unknown>;
|
|
183
|
+
/** Result if successful */
|
|
184
|
+
result?: unknown;
|
|
185
|
+
/** Error if failed */
|
|
186
|
+
error?: string;
|
|
187
|
+
/** Number of retries */
|
|
188
|
+
retryCount?: number;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Tool result for SDK compatibility
|
|
192
|
+
*/
|
|
193
|
+
export interface SDKToolResult {
|
|
194
|
+
/** Tool name */
|
|
195
|
+
toolName: string;
|
|
196
|
+
/** Tool call ID */
|
|
197
|
+
toolCallId?: string;
|
|
198
|
+
/** Result value */
|
|
199
|
+
result: unknown;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Result of running the agentic loop
|
|
203
|
+
*/
|
|
204
|
+
export interface LoopResult {
|
|
205
|
+
/** Final text output */
|
|
206
|
+
text: string;
|
|
207
|
+
/** Number of steps executed */
|
|
208
|
+
steps: number;
|
|
209
|
+
/** All tool calls made */
|
|
210
|
+
toolCalls: ToolCallResult[];
|
|
211
|
+
/** Tool results in SDK format */
|
|
212
|
+
toolResults: SDKToolResult[];
|
|
213
|
+
/** Why the loop stopped */
|
|
214
|
+
stopReason: 'stop' | 'max_steps' | 'error' | 'aborted';
|
|
215
|
+
/** Token usage if tracked */
|
|
216
|
+
usage?: {
|
|
217
|
+
promptTokens: number;
|
|
218
|
+
completionTokens: number;
|
|
219
|
+
totalTokens: number;
|
|
220
|
+
};
|
|
221
|
+
/** Conversation messages */
|
|
222
|
+
messages: Message[];
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Validates tool arguments before execution
|
|
226
|
+
*/
|
|
227
|
+
export declare class ToolValidator {
|
|
228
|
+
private tools;
|
|
229
|
+
/**
|
|
230
|
+
* Register a tool for validation
|
|
231
|
+
*/
|
|
232
|
+
register(tool: Tool): void;
|
|
233
|
+
/**
|
|
234
|
+
* Validate arguments for a tool
|
|
235
|
+
*/
|
|
236
|
+
validate(toolName: string, args: unknown): ValidationResult;
|
|
237
|
+
/**
|
|
238
|
+
* Validate multiple tool calls at once
|
|
239
|
+
*/
|
|
240
|
+
validateAll(calls: ToolCall[]): ValidationResult[];
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Routes tool calls to registered handlers
|
|
244
|
+
*
|
|
245
|
+
* @deprecated Phase C Week 2 — `ToolRouter` has zero production callers in
|
|
246
|
+
* primitives.org.ai (audited 2026-05-06; see `bd show aip-ibid`). Only the
|
|
247
|
+
* `ai-primitives` umbrella re-export tests reference it. AI SDK 6's native
|
|
248
|
+
* tool-routing under `generateText({ tools })` and `Agent` / `ToolLoopAgent`
|
|
249
|
+
* cover the same surface. Will be removed in the Phase C semver bump
|
|
250
|
+
* alongside `AgenticLoop` and `createAgenticLoop`.
|
|
251
|
+
*/
|
|
252
|
+
export declare class ToolRouter {
|
|
253
|
+
private tools;
|
|
254
|
+
private validator;
|
|
255
|
+
/**
|
|
256
|
+
* Register a tool
|
|
257
|
+
*/
|
|
258
|
+
register(tool: Tool): void;
|
|
259
|
+
/**
|
|
260
|
+
* Route a single tool call
|
|
261
|
+
*/
|
|
262
|
+
route(call: ToolCall): Promise<ToolResult>;
|
|
263
|
+
/**
|
|
264
|
+
* Route multiple tool calls sequentially
|
|
265
|
+
*/
|
|
266
|
+
routeAll(calls: ToolCall[]): Promise<ToolResult[]>;
|
|
267
|
+
/**
|
|
268
|
+
* Route multiple tool calls in parallel
|
|
269
|
+
*/
|
|
270
|
+
routeAllParallel(calls: ToolCall[]): Promise<ToolResult[]>;
|
|
271
|
+
/**
|
|
272
|
+
* Format a tool result for model consumption
|
|
273
|
+
*/
|
|
274
|
+
formatResult(result: ToolResult): FormattedToolResult;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Orchestrates multi-turn model→tools→model loops
|
|
278
|
+
*
|
|
279
|
+
* @deprecated Phase C Week 2 — `AgenticLoop` has zero production callers in
|
|
280
|
+
* primitives.org.ai (audited 2026-05-06; see `bd show aip-ibid`). Only the
|
|
281
|
+
* `ai-primitives` umbrella re-export tests reference it. The production
|
|
282
|
+
* cascade walker (`services-as-software/v3/invoke/cascade-walker.ts:178`)
|
|
283
|
+
* already uses AI SDK 6's `generateText({ tools, maxSteps: 10 })` directly
|
|
284
|
+
* for agentic steps — no consumer code paths through this class. AI SDK 6's
|
|
285
|
+
* `Agent` / `ToolLoopAgent` (`stopWhen: stepCountIs(N)`) are the going-
|
|
286
|
+
* forward primitives. Will be removed in the Phase C semver bump.
|
|
287
|
+
*/
|
|
288
|
+
export declare class AgenticLoop {
|
|
289
|
+
private options;
|
|
290
|
+
private router;
|
|
291
|
+
private validator;
|
|
292
|
+
constructor(options: LoopOptions);
|
|
293
|
+
/**
|
|
294
|
+
* Get tools in AI SDK format
|
|
295
|
+
*/
|
|
296
|
+
getToolsForSDK(): Record<string, {
|
|
297
|
+
description: string;
|
|
298
|
+
parameters: unknown;
|
|
299
|
+
execute: (args: unknown) => Promise<unknown>;
|
|
300
|
+
}>;
|
|
301
|
+
/**
|
|
302
|
+
* Execute a tool call with timeout and retry support
|
|
303
|
+
*/
|
|
304
|
+
private executeToolCall;
|
|
305
|
+
/**
|
|
306
|
+
* Execute multiple tool calls
|
|
307
|
+
*/
|
|
308
|
+
private executeToolCalls;
|
|
309
|
+
/**
|
|
310
|
+
* Build messages for the next model call
|
|
311
|
+
*/
|
|
312
|
+
private buildMessages;
|
|
313
|
+
/**
|
|
314
|
+
* Run the agentic loop
|
|
315
|
+
*/
|
|
316
|
+
run(runOptions: RunOptions): Promise<LoopResult>;
|
|
317
|
+
/**
|
|
318
|
+
* Run the agentic loop with streaming support
|
|
319
|
+
*
|
|
320
|
+
* Returns an async generator that yields step events as they occur.
|
|
321
|
+
*/
|
|
322
|
+
stream(runOptions: RunOptions): AsyncGenerator<LoopStreamEvent, LoopResult>;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Events emitted during streaming loop execution
|
|
326
|
+
*/
|
|
327
|
+
export type LoopStreamEvent = {
|
|
328
|
+
type: 'start';
|
|
329
|
+
prompt: string;
|
|
330
|
+
timestamp: number;
|
|
331
|
+
} | {
|
|
332
|
+
type: 'step_start';
|
|
333
|
+
stepNumber: number;
|
|
334
|
+
timestamp: number;
|
|
335
|
+
} | {
|
|
336
|
+
type: 'step_end';
|
|
337
|
+
stepNumber: number;
|
|
338
|
+
hasToolCalls: boolean;
|
|
339
|
+
timestamp: number;
|
|
340
|
+
} | {
|
|
341
|
+
type: 'text';
|
|
342
|
+
text: string;
|
|
343
|
+
stepNumber: number;
|
|
344
|
+
timestamp: number;
|
|
345
|
+
} | {
|
|
346
|
+
type: 'tool_calls';
|
|
347
|
+
toolCalls: ToolCall[];
|
|
348
|
+
stepNumber: number;
|
|
349
|
+
timestamp: number;
|
|
350
|
+
} | {
|
|
351
|
+
type: 'tool_result';
|
|
352
|
+
toolName: string;
|
|
353
|
+
result?: unknown;
|
|
354
|
+
error?: string;
|
|
355
|
+
stepNumber: number;
|
|
356
|
+
timestamp: number;
|
|
357
|
+
} | {
|
|
358
|
+
type: 'max_steps';
|
|
359
|
+
steps: number;
|
|
360
|
+
timestamp: number;
|
|
361
|
+
} | {
|
|
362
|
+
type: 'aborted';
|
|
363
|
+
steps: number;
|
|
364
|
+
timestamp: number;
|
|
365
|
+
} | {
|
|
366
|
+
type: 'error';
|
|
367
|
+
error: string;
|
|
368
|
+
timestamp: number;
|
|
369
|
+
} | {
|
|
370
|
+
type: 'end';
|
|
371
|
+
steps: number;
|
|
372
|
+
stopReason: LoopResult['stopReason'];
|
|
373
|
+
timestamp: number;
|
|
374
|
+
};
|
|
375
|
+
/**
|
|
376
|
+
* Create a tool from a simple function
|
|
377
|
+
*/
|
|
378
|
+
export declare function createTool<TParams extends z.ZodRawShape, TResult>(config: {
|
|
379
|
+
name: string;
|
|
380
|
+
description: string;
|
|
381
|
+
parameters: TParams;
|
|
382
|
+
execute: (params: z.infer<z.ZodObject<TParams>>) => Promise<TResult>;
|
|
383
|
+
}): Tool<z.ZodObject<TParams>, TResult>;
|
|
384
|
+
/**
|
|
385
|
+
* Compose multiple tools into a single toolset
|
|
386
|
+
*/
|
|
387
|
+
export declare function createToolset(...tools: Tool[]): Tool[];
|
|
388
|
+
/**
|
|
389
|
+
* Create a tool that wraps another tool with middleware
|
|
390
|
+
*/
|
|
391
|
+
export declare function wrapTool<T extends Tool>(tool: T, middleware: {
|
|
392
|
+
before?: (params: unknown) => Promise<unknown> | unknown;
|
|
393
|
+
after?: (result: unknown) => Promise<unknown> | unknown;
|
|
394
|
+
onError?: (error: Error) => Promise<unknown> | unknown;
|
|
395
|
+
}): Tool;
|
|
396
|
+
/**
|
|
397
|
+
* Options for cachedTool
|
|
398
|
+
*/
|
|
399
|
+
export interface CachedToolOptions {
|
|
400
|
+
/** Time-to-live in milliseconds (default: 60000) */
|
|
401
|
+
ttl?: number;
|
|
402
|
+
/** Function to generate cache key from params (default: JSON.stringify) */
|
|
403
|
+
keyFn?: (params: unknown) => string;
|
|
404
|
+
/** Interval in ms for automatic cleanup of expired entries (default: 0 = disabled) */
|
|
405
|
+
cleanupIntervalMs?: number;
|
|
406
|
+
/** Maximum cache size before LRU eviction kicks in (default: 0 = unlimited) */
|
|
407
|
+
maxSize?: number;
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* Extended tool interface with cache management methods
|
|
411
|
+
*/
|
|
412
|
+
export interface CachedTool extends Tool {
|
|
413
|
+
/** Get the current number of entries in the cache */
|
|
414
|
+
cacheSize(): number;
|
|
415
|
+
/** Clear all cache entries */
|
|
416
|
+
clearCache(): void;
|
|
417
|
+
/** Stop cleanup timer and clear cache */
|
|
418
|
+
destroy(): void;
|
|
419
|
+
}
|
|
420
|
+
/**
|
|
421
|
+
* Create a tool with caching support
|
|
422
|
+
*
|
|
423
|
+
* Features:
|
|
424
|
+
* - TTL-based expiration
|
|
425
|
+
* - Optional periodic cleanup of expired entries (prevents memory leaks)
|
|
426
|
+
* - Optional max size with LRU eviction
|
|
427
|
+
* - Manual cache control (clear, destroy)
|
|
428
|
+
*/
|
|
429
|
+
export declare function cachedTool<T extends Tool>(tool: T, options?: CachedToolOptions): CachedTool;
|
|
430
|
+
/**
|
|
431
|
+
* Create a tool with rate limiting
|
|
432
|
+
*/
|
|
433
|
+
export declare function rateLimitedTool<T extends Tool>(tool: T, options: {
|
|
434
|
+
maxCalls: number;
|
|
435
|
+
windowMs: number;
|
|
436
|
+
}): Tool;
|
|
437
|
+
/**
|
|
438
|
+
* Create a tool that times out after a specified duration
|
|
439
|
+
*/
|
|
440
|
+
export declare function timeoutTool<T extends Tool>(tool: T, timeoutMs: number): Tool;
|
|
441
|
+
/**
|
|
442
|
+
* Create an agentic loop with sensible defaults
|
|
443
|
+
*
|
|
444
|
+
* @deprecated Phase C Week 2 — `createAgenticLoop` has zero production
|
|
445
|
+
* callers in primitives.org.ai (only `ai-primitives` umbrella re-export
|
|
446
|
+
* tests). Use AI SDK 6's `Agent` / `ToolLoopAgent` with
|
|
447
|
+
* `stopWhen: stepCountIs(N)` instead. Will be removed alongside
|
|
448
|
+
* `AgenticLoop` in the Phase C semver bump. See `bd show aip-ibid`.
|
|
449
|
+
*/
|
|
450
|
+
export declare function createAgenticLoop(options: Partial<LoopOptions> & {
|
|
451
|
+
tools: Tool[];
|
|
452
|
+
}): AgenticLoop;
|
|
453
|
+
//# sourceMappingURL=tool-orchestration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-orchestration.d.ts","sourceRoot":"","sources":["../src/tool-orchestration.ts"],"names":[],"mappings":"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"}
|