@anvia/core 0.4.2 → 0.6.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/README.md +68 -0
- package/dist/agent/index.d.ts +20 -11
- package/dist/agent/index.js +11 -5
- package/dist/{agent-B-ls5y_g.d.ts → agent-BURoB-me.d.ts} +81 -7
- package/dist/audio-generation/index.d.ts +1 -1
- package/dist/{chunk-MOICCK3J.js → chunk-6NWNL2KM.js} +19 -7
- package/dist/chunk-6NWNL2KM.js.map +1 -0
- package/dist/{chunk-6GJDBBDC.js → chunk-A4GUJSEK.js} +95 -1
- package/dist/chunk-A4GUJSEK.js.map +1 -0
- package/dist/{chunk-35GF7P43.js → chunk-AER5FGPK.js} +6 -2
- package/dist/{chunk-35GF7P43.js.map → chunk-AER5FGPK.js.map} +1 -1
- package/dist/{chunk-P425B6GR.js → chunk-I47EHI45.js} +13 -19
- package/dist/chunk-I47EHI45.js.map +1 -0
- package/dist/{chunk-N7NMSGZI.js → chunk-IXK3TEHJ.js} +247 -38
- package/dist/chunk-IXK3TEHJ.js.map +1 -0
- package/dist/{chunk-LGETU3RG.js → chunk-OXYZDHNI.js} +4 -4
- package/dist/{chunk-DUP7FMAF.js → chunk-SHHSMV7O.js} +2 -2
- package/dist/chunk-WQKHFADH.js +12 -0
- package/dist/chunk-WQKHFADH.js.map +1 -0
- package/dist/completion/index.d.ts +5 -2
- package/dist/completion/index.js +8 -1
- package/dist/create-completion-Bog3ni7b.d.ts +36 -0
- package/dist/evals/index.d.ts +5 -5
- package/dist/evals/index.js +7 -6
- package/dist/evals/index.js.map +1 -1
- package/dist/extractor/index.d.ts +4 -4
- package/dist/extractor/index.js +7 -6
- package/dist/image-generation/index.d.ts +1 -1
- package/dist/index.d.ts +9 -8
- package/dist/index.js +19 -8
- package/dist/internal/agent.d.ts +4 -4
- package/dist/internal/agent.js +5 -4
- package/dist/loaders/index.d.ts +1 -1
- package/dist/mcp/index.d.ts +4 -4
- package/dist/memory/index.d.ts +1 -1
- package/dist/middleware-C9QIms85.d.ts +102 -0
- package/dist/observability/index.d.ts +2 -2
- package/dist/pipeline/index.d.ts +4 -4
- package/dist/skills/index.d.ts +4 -4
- package/dist/skills/index.js +4 -3
- package/dist/{think-tool-ByArsrxe.d.ts → think-tool-DLTCqqJ6.d.ts} +1 -1
- package/dist/tool/index.d.ts +4 -4
- package/dist/tool/index.js +5 -2
- package/dist/{tool-C3ciF-VG.d.ts → tool-Dz-lHZon.d.ts} +1 -1
- package/dist/transcription/index.d.ts +1 -1
- package/dist/{types-UhcgW8Fo.d.ts → types-BfHZz1ZG.d.ts} +2 -2
- package/dist/{types-T9rlOIUc.d.ts → types-DUivppau.d.ts} +1 -1
- package/dist/{types-C54aNoCd.d.ts → types-Dmoq-Fhz.d.ts} +1 -1
- package/dist/vector-store/index.d.ts +2 -2
- package/dist/vector-store/index.js +2 -1
- package/package.json +1 -1
- package/dist/chunk-6GJDBBDC.js.map +0 -1
- package/dist/chunk-MOICCK3J.js.map +0 -1
- package/dist/chunk-N7NMSGZI.js.map +0 -1
- package/dist/chunk-P425B6GR.js.map +0 -1
- package/dist/middleware-CGiEIaBx.d.ts +0 -53
- /package/dist/{chunk-LGETU3RG.js.map → chunk-OXYZDHNI.js.map} +0 -0
- /package/dist/{chunk-DUP7FMAF.js.map → chunk-SHHSMV7O.js.map} +0 -0
package/README.md
CHANGED
|
@@ -47,6 +47,74 @@ const response = await agent.prompt("What is happening with order A123?").send()
|
|
|
47
47
|
console.log(response.output);
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
+
## Direct Completions
|
|
51
|
+
|
|
52
|
+
Use `createCompletion` when you want a single provider call without agent turns, memory, or
|
|
53
|
+
tool execution:
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
import { createCompletion } from "@anvia/core";
|
|
57
|
+
import { OpenAIClient } from "@anvia/openai";
|
|
58
|
+
|
|
59
|
+
const model = new OpenAIClient({ apiKey }).completionModel("gpt-5");
|
|
60
|
+
|
|
61
|
+
const result = await createCompletion(model, {
|
|
62
|
+
input: "Summarize Anvia in one sentence.",
|
|
63
|
+
instructions: "Answer clearly and concisely.",
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
console.log(result.text);
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Use `messages` when you already own the transcript. If `input` is also provided, it is appended as
|
|
70
|
+
the final message:
|
|
71
|
+
|
|
72
|
+
```ts
|
|
73
|
+
import { Message, createCompletion } from "@anvia/core";
|
|
74
|
+
|
|
75
|
+
const result = await createCompletion(model, {
|
|
76
|
+
messages: [
|
|
77
|
+
Message.system("You are concise."),
|
|
78
|
+
Message.user("Explain Anvia."),
|
|
79
|
+
],
|
|
80
|
+
maxTokens: 300,
|
|
81
|
+
params: {
|
|
82
|
+
reasoning: { effort: "low" },
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Use `createCompletionStream` to receive raw completion stream events from the model:
|
|
88
|
+
|
|
89
|
+
```ts
|
|
90
|
+
import { createCompletionStream } from "@anvia/core";
|
|
91
|
+
|
|
92
|
+
for await (const event of createCompletionStream(model, {
|
|
93
|
+
input: "Write a short launch note.",
|
|
94
|
+
})) {
|
|
95
|
+
if (event.type === "text_delta") process.stdout.write(event.delta);
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Use `createParsedCompletion` when you want a direct completion to return schema-validated data:
|
|
100
|
+
|
|
101
|
+
```ts
|
|
102
|
+
import { createParsedCompletion } from "@anvia/core";
|
|
103
|
+
import { z } from "zod";
|
|
104
|
+
|
|
105
|
+
const eventSchema = z.object({
|
|
106
|
+
name: z.string(),
|
|
107
|
+
date: z.string(),
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
const event = await createParsedCompletion(model, {
|
|
111
|
+
schema: eventSchema,
|
|
112
|
+
input: "Alice and Bob are going to a science fair on Friday.",
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
console.log(event.data);
|
|
116
|
+
```
|
|
117
|
+
|
|
50
118
|
## Prompts and Memory
|
|
51
119
|
|
|
52
120
|
Use a plain prompt for stateless calls:
|
package/dist/agent/index.d.ts
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
3
|
-
import {
|
|
4
|
-
|
|
1
|
+
import { k as ToolSearchDocument, l as ToolSet, A as AgentMiddleware, e as ToolMiddleware } from '../middleware-C9QIms85.js';
|
|
2
|
+
export { C as CompletionRequestMiddlewareArgs, a as CompletionRequestMiddlewareResult, b as CompletionResponseMiddlewareArgs, c as CompletionResponseMiddlewareResult, T as ToolInputMiddlewareArgs, d as ToolInputMiddlewareResult, f as ToolOutputMiddlewareArgs, g as ToolOutputMiddlewareResult, h as ToolResultMiddlewareArgs, i as createMiddleware, j as createToolMiddleware } from '../middleware-C9QIms85.js';
|
|
3
|
+
import { D as DynamicContextOptions, f as DynamicToolOptions, g as PromptHook, h as AgentEventStore, i as AgentEventStoreOptions, e as Agent } from '../agent-BURoB-me.js';
|
|
4
|
+
export { A as AgentChildStreamEvent, j as AgentEventAppendInput, k as AgentEventRecord, l as AgentEventStoreInclude, a as AgentStreamEvent, C as CompletionCallHookArgs, m as CompletionErrorHookArgs, n as CompletionResponseHookArgs, H as HookAction, o as HookResult, P as PromptResponse, R as RunControl, p as RunEndHookArgs, q as RunErrorHookArgs, u as RunStartHookArgs, T as ToolApprovalRequestOptions, v as ToolCallControl, w as ToolCallHookAction, x as ToolCallHookArgs, y as ToolCallHookResult, z as ToolErrorHookArgs, B as ToolHookArgs, E as ToolResultHookArgs, F as TurnEndHookArgs, G as TurnStartHookArgs, c as cancelPrompt, b as createHook, r as requestToolApproval, d as runControl, s as skipTool, t as toolCallControl } from '../agent-BURoB-me.js';
|
|
5
|
+
import { Z as ZodSchema } from '../zod-schema-C7F4clpm.js';
|
|
6
|
+
import { C as CompletionModel, e as JsonValue, m as ToolChoice, M as Message } from '../types-Dmoq-Fhz.js';
|
|
7
|
+
import { a as McpServer } from '../types-BfHZz1ZG.js';
|
|
5
8
|
import { MemoryStore, MemoryOptions } from '../memory/index.js';
|
|
6
9
|
import { AgentObserver, ObserveOptions } from '../observability/index.js';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { b as ToolSearchDocument, c as ToolSet, T as ToolMiddleware } from '../middleware-CGiEIaBx.js';
|
|
10
|
-
import { A as AnyTool } from '../tool-C3ciF-VG.js';
|
|
10
|
+
import { a as SkillSet } from '../types-DUivppau.js';
|
|
11
|
+
import { A as AnyTool } from '../tool-Dz-lHZon.js';
|
|
11
12
|
import { VectorSearchIndex } from '../vector-store/index.js';
|
|
13
|
+
import '../types-IB2e9u5M.js';
|
|
14
|
+
import 'zod';
|
|
12
15
|
import '@modelcontextprotocol/sdk/client/sse.js';
|
|
13
16
|
import '@modelcontextprotocol/sdk/client/stdio.js';
|
|
14
17
|
import '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
15
|
-
import 'zod';
|
|
16
|
-
import '../types-IB2e9u5M.js';
|
|
17
18
|
|
|
18
19
|
declare class AgentBuilder<M extends CompletionModel = CompletionModel> {
|
|
19
20
|
private readonly completionModel;
|
|
@@ -55,7 +56,15 @@ declare class AgentBuilder<M extends CompletionModel = CompletionModel> {
|
|
|
55
56
|
toolChoice(toolChoice: ToolChoice): this;
|
|
56
57
|
defaultMaxTurns(defaultMaxTurns: number): this;
|
|
57
58
|
hook(hook: PromptHook): this;
|
|
59
|
+
middleware(middleware: AgentMiddleware): this;
|
|
60
|
+
middlewares(middlewares: AgentMiddleware[]): this;
|
|
61
|
+
/**
|
|
62
|
+
* @deprecated Use `middleware` instead.
|
|
63
|
+
*/
|
|
58
64
|
toolMiddleware(middleware: ToolMiddleware): this;
|
|
65
|
+
/**
|
|
66
|
+
* @deprecated Use `middlewares` instead.
|
|
67
|
+
*/
|
|
59
68
|
toolMiddlewares(middlewares: ToolMiddleware[]): this;
|
|
60
69
|
observe(observer: AgentObserver, options?: ObserveOptions): this;
|
|
61
70
|
memory(store: MemoryStore, options?: MemoryOptions): this;
|
|
@@ -77,4 +86,4 @@ declare class PromptCancelledError extends Error {
|
|
|
77
86
|
constructor(chatHistory: Message[], reason: string);
|
|
78
87
|
}
|
|
79
88
|
|
|
80
|
-
export { AgentBuilder, AgentEventStore, AgentEventStoreOptions, MaxTurnsError, PromptCancelledError, PromptHook };
|
|
89
|
+
export { AgentBuilder, AgentEventStore, AgentEventStoreOptions, AgentMiddleware, MaxTurnsError, PromptCancelledError, PromptHook, ToolMiddleware };
|
package/dist/agent/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AgentBuilder
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-6NWNL2KM.js";
|
|
4
4
|
import {
|
|
5
5
|
MaxTurnsError,
|
|
6
6
|
PromptCancelledError,
|
|
@@ -10,13 +10,17 @@ import {
|
|
|
10
10
|
runControl,
|
|
11
11
|
skipTool,
|
|
12
12
|
toolCallControl
|
|
13
|
-
} from "../chunk-
|
|
13
|
+
} from "../chunk-IXK3TEHJ.js";
|
|
14
14
|
import "../chunk-XUUY2L2D.js";
|
|
15
15
|
import "../chunk-XXT2UCAR.js";
|
|
16
16
|
import "../chunk-YK4WAAS4.js";
|
|
17
|
-
import
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
import {
|
|
18
|
+
createMiddleware,
|
|
19
|
+
createToolMiddleware
|
|
20
|
+
} from "../chunk-AER5FGPK.js";
|
|
21
|
+
import "../chunk-I47EHI45.js";
|
|
22
|
+
import "../chunk-A4GUJSEK.js";
|
|
23
|
+
import "../chunk-WQKHFADH.js";
|
|
20
24
|
import "../chunk-EFGX3EX5.js";
|
|
21
25
|
import "../chunk-OIMLU4SF.js";
|
|
22
26
|
export {
|
|
@@ -25,6 +29,8 @@ export {
|
|
|
25
29
|
PromptCancelledError,
|
|
26
30
|
cancelPrompt,
|
|
27
31
|
createHook,
|
|
32
|
+
createMiddleware,
|
|
33
|
+
createToolMiddleware,
|
|
28
34
|
requestToolApproval,
|
|
29
35
|
runControl,
|
|
30
36
|
skipTool,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { M as Message, c as CompletionResponse, j as ToolResultContent, C as CompletionModel,
|
|
1
|
+
import { M as Message, U as Usage, c as CompletionResponse, j as ToolResultContent, C as CompletionModel, u as ReasoningContentType, f as ToolCall, D as Document, e as JsonValue, m as ToolChoice, J as JsonObject } from './types-Dmoq-Fhz.js';
|
|
2
2
|
import { MemoryContext, MemoryRegistration, SessionOptions } from './memory/index.js';
|
|
3
3
|
import { AgentTraceOptions, AgentTraceInfo, AgentObserverRegistration } from './observability/index.js';
|
|
4
|
-
import {
|
|
5
|
-
import { T as Tool, A as AnyTool, c as ToolCallContext, N as NormalizedToolOutput } from './tool-
|
|
4
|
+
import { A as AgentMiddleware, e as ToolMiddleware, l as ToolSet, k as ToolSearchDocument } from './middleware-C9QIms85.js';
|
|
5
|
+
import { T as Tool, A as AnyTool, c as ToolCallContext, N as NormalizedToolOutput } from './tool-Dz-lHZon.js';
|
|
6
6
|
import { VectorFilter, VectorSearchResult, VectorSearchIndex } from './vector-store/index.js';
|
|
7
7
|
|
|
8
8
|
type HookAction = {
|
|
@@ -45,11 +45,45 @@ type CompletionCallHookArgs = {
|
|
|
45
45
|
history: Message[];
|
|
46
46
|
run: RunControl;
|
|
47
47
|
};
|
|
48
|
+
type RunStartHookArgs = {
|
|
49
|
+
prompt: Message;
|
|
50
|
+
history: Message[];
|
|
51
|
+
maxTurns: number;
|
|
52
|
+
run: RunControl;
|
|
53
|
+
};
|
|
54
|
+
type RunEndHookArgs = {
|
|
55
|
+
output: string;
|
|
56
|
+
usage: Usage;
|
|
57
|
+
messages: Message[];
|
|
58
|
+
run: RunControl;
|
|
59
|
+
};
|
|
60
|
+
type RunErrorHookArgs = {
|
|
61
|
+
error: unknown;
|
|
62
|
+
usage: Usage;
|
|
63
|
+
messages: Message[];
|
|
64
|
+
run: RunControl;
|
|
65
|
+
};
|
|
66
|
+
type TurnStartHookArgs = {
|
|
67
|
+
turn: number;
|
|
68
|
+
prompt: Message;
|
|
69
|
+
history: Message[];
|
|
70
|
+
run: RunControl;
|
|
71
|
+
};
|
|
72
|
+
type TurnEndHookArgs<RawResponse = unknown> = {
|
|
73
|
+
turn: number;
|
|
74
|
+
response: CompletionResponse<RawResponse>;
|
|
75
|
+
run: RunControl;
|
|
76
|
+
};
|
|
48
77
|
type CompletionResponseHookArgs<RawResponse = unknown> = {
|
|
49
78
|
prompt: Message;
|
|
50
79
|
response: CompletionResponse<RawResponse>;
|
|
51
80
|
run: RunControl;
|
|
52
81
|
};
|
|
82
|
+
type CompletionErrorHookArgs = {
|
|
83
|
+
prompt: Message;
|
|
84
|
+
error: unknown;
|
|
85
|
+
run: RunControl;
|
|
86
|
+
};
|
|
53
87
|
type ToolHookArgs = {
|
|
54
88
|
toolName: string;
|
|
55
89
|
toolCallId?: string;
|
|
@@ -64,6 +98,10 @@ type ToolResultHookArgs = ToolHookArgs & {
|
|
|
64
98
|
structuredResult?: ToolResultContent[] | undefined;
|
|
65
99
|
run: RunControl;
|
|
66
100
|
};
|
|
101
|
+
type ToolErrorHookArgs = ToolHookArgs & {
|
|
102
|
+
error: unknown;
|
|
103
|
+
run: RunControl;
|
|
104
|
+
};
|
|
67
105
|
declare function createHook<RawResponse = unknown>(hook: PromptHook<RawResponse>): PromptHook<RawResponse>;
|
|
68
106
|
declare function cancelPrompt(reason: string): HookAction;
|
|
69
107
|
declare function skipTool(reason: string): ToolCallHookAction;
|
|
@@ -71,10 +109,17 @@ declare function requestToolApproval(options?: ToolApprovalRequestOptions): Tool
|
|
|
71
109
|
declare const runControl: RunControl;
|
|
72
110
|
declare const toolCallControl: ToolCallControl;
|
|
73
111
|
interface PromptHook<RawResponse = unknown> {
|
|
112
|
+
onRunStart?: HookCallback<RunStartHookArgs>;
|
|
113
|
+
onRunEnd?: HookCallback<RunEndHookArgs>;
|
|
114
|
+
onRunError?: HookCallback<RunErrorHookArgs>;
|
|
115
|
+
onTurnStart?: HookCallback<TurnStartHookArgs>;
|
|
116
|
+
onTurnEnd?: HookCallback<TurnEndHookArgs<RawResponse>>;
|
|
74
117
|
onCompletionCall?: HookCallback<CompletionCallHookArgs>;
|
|
75
118
|
onCompletionResponse?: HookCallback<CompletionResponseHookArgs<RawResponse>>;
|
|
119
|
+
onCompletionError?: HookCallback<CompletionErrorHookArgs>;
|
|
76
120
|
onToolCall?: ToolCallHookCallback<ToolCallHookArgs>;
|
|
77
121
|
onToolResult?: HookCallback<ToolResultHookArgs>;
|
|
122
|
+
onToolError?: HookCallback<ToolErrorHookArgs>;
|
|
78
123
|
}
|
|
79
124
|
|
|
80
125
|
type PromptResponse = {
|
|
@@ -145,16 +190,28 @@ declare class PromptRequest<M extends CompletionModel = CompletionModel> {
|
|
|
145
190
|
private activeHook;
|
|
146
191
|
private concurrency;
|
|
147
192
|
private traceOptions;
|
|
148
|
-
private
|
|
193
|
+
private requestMiddlewares;
|
|
149
194
|
private readonly memoryRecorder;
|
|
150
195
|
private constructor();
|
|
151
196
|
static fromAgent<M extends CompletionModel>(agent: Agent<M>, prompt: string | Message | Message[], options?: {
|
|
152
197
|
memoryContext?: MemoryContext | undefined;
|
|
153
198
|
}): PromptRequest<M>;
|
|
154
199
|
maxTurns(maxTurns: number): this;
|
|
200
|
+
withHook(hook: PromptHook): this;
|
|
201
|
+
/**
|
|
202
|
+
* @deprecated Use `withHook` instead.
|
|
203
|
+
*/
|
|
155
204
|
requestHook(hook: PromptHook): this;
|
|
156
205
|
withToolConcurrency(concurrency: number): this;
|
|
206
|
+
withMiddleware(middleware: AgentMiddleware): this;
|
|
207
|
+
withMiddlewares(middlewares: AgentMiddleware[]): this;
|
|
208
|
+
/**
|
|
209
|
+
* @deprecated Use `withMiddleware` instead.
|
|
210
|
+
*/
|
|
157
211
|
withToolMiddleware(middleware: ToolMiddleware): this;
|
|
212
|
+
/**
|
|
213
|
+
* @deprecated Use `withMiddlewares` instead.
|
|
214
|
+
*/
|
|
158
215
|
withToolMiddlewares(middlewares: ToolMiddleware[]): this;
|
|
159
216
|
withTrace(trace: AgentTraceOptions): this;
|
|
160
217
|
send(): Promise<PromptResponse>;
|
|
@@ -166,7 +223,16 @@ declare class PromptRequest<M extends CompletionModel = CompletionModel> {
|
|
|
166
223
|
private startRunObservers;
|
|
167
224
|
private recordAgentEvent;
|
|
168
225
|
private runCompletionCallHook;
|
|
226
|
+
private runRunStartHook;
|
|
227
|
+
private runRunEndHook;
|
|
228
|
+
private runRunErrorHook;
|
|
229
|
+
private runTurnStartHook;
|
|
230
|
+
private runTurnEndHook;
|
|
231
|
+
private runCompletionRequestMiddlewares;
|
|
232
|
+
private runCompletionResponseMiddlewares;
|
|
169
233
|
private runCompletionResponseHook;
|
|
234
|
+
private runCompletionErrorHook;
|
|
235
|
+
private activeMiddlewares;
|
|
170
236
|
private cancelled;
|
|
171
237
|
}
|
|
172
238
|
|
|
@@ -188,7 +254,11 @@ type AgentOptions<M extends CompletionModel = CompletionModel> = {
|
|
|
188
254
|
observers?: AgentObserverRegistration[] | undefined;
|
|
189
255
|
dynamicContexts?: DynamicContextRegistration[] | undefined;
|
|
190
256
|
dynamicTools?: DynamicToolRegistration[] | undefined;
|
|
191
|
-
|
|
257
|
+
middlewares?: AgentMiddleware[] | undefined;
|
|
258
|
+
/**
|
|
259
|
+
* @deprecated Use `middlewares` instead.
|
|
260
|
+
*/
|
|
261
|
+
toolMiddlewares?: AgentMiddleware[] | undefined;
|
|
192
262
|
memory?: MemoryRegistration | undefined;
|
|
193
263
|
eventStore?: AgentEventStoreRegistration | undefined;
|
|
194
264
|
};
|
|
@@ -262,7 +332,11 @@ declare class Agent<M extends CompletionModel = CompletionModel> {
|
|
|
262
332
|
readonly observers: AgentObserverRegistration[];
|
|
263
333
|
readonly dynamicContexts: DynamicContextRegistration[];
|
|
264
334
|
readonly dynamicTools: DynamicToolRegistration[];
|
|
265
|
-
readonly
|
|
335
|
+
readonly middlewares: AgentMiddleware[];
|
|
336
|
+
/**
|
|
337
|
+
* @deprecated Use `middlewares` instead.
|
|
338
|
+
*/
|
|
339
|
+
readonly toolMiddlewares: AgentMiddleware[];
|
|
266
340
|
readonly memory: MemoryRegistration | undefined;
|
|
267
341
|
readonly eventStore: AgentEventStoreRegistration | undefined;
|
|
268
342
|
constructor(options: AgentOptions<M>);
|
|
@@ -288,4 +362,4 @@ declare class AgentSession<M extends CompletionModel = CompletionModel> {
|
|
|
288
362
|
clear(): Promise<void>;
|
|
289
363
|
}
|
|
290
364
|
|
|
291
|
-
export { type AgentChildStreamEvent as A, type
|
|
365
|
+
export { type AgentChildStreamEvent as A, type ToolHookArgs as B, type CompletionCallHookArgs as C, type DynamicContextOptions as D, type ToolResultHookArgs as E, type TurnEndHookArgs as F, type TurnStartHookArgs as G, type HookAction as H, type AgentEventStoreRegistration as I, type AgentOptions as J, AgentSession as K, type AgentToolOptions as L, DEFAULT_MAX_TURNS as M, type DynamicContextRegistration as N, type DynamicToolRegistration as O, type PromptResponse as P, type RunControl as R, type ToolApprovalRequestOptions as T, type AgentStreamEvent as a, createHook as b, cancelPrompt as c, runControl as d, Agent as e, type DynamicToolOptions as f, type PromptHook as g, type AgentEventStore as h, type AgentEventStoreOptions as i, type AgentEventAppendInput as j, type AgentEventRecord as k, type AgentEventStoreInclude as l, type CompletionErrorHookArgs as m, type CompletionResponseHookArgs as n, type HookResult as o, type RunEndHookArgs as p, type RunErrorHookArgs as q, requestToolApproval as r, skipTool as s, toolCallControl as t, type RunStartHookArgs as u, type ToolCallControl as v, type ToolCallHookAction as w, type ToolCallHookArgs as x, type ToolCallHookResult as y, type ToolErrorHookArgs as z };
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Agent,
|
|
3
3
|
normalizeAgentId
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-IXK3TEHJ.js";
|
|
5
5
|
import {
|
|
6
6
|
resolveMemoryOptions
|
|
7
7
|
} from "./chunk-XXT2UCAR.js";
|
|
8
8
|
import {
|
|
9
9
|
ToolSet
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-AER5FGPK.js";
|
|
11
11
|
import {
|
|
12
12
|
toProviderJsonSchema
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-WQKHFADH.js";
|
|
14
14
|
|
|
15
15
|
// src/agent/builder.ts
|
|
16
16
|
var AgentBuilder = class {
|
|
@@ -115,14 +115,26 @@ var AgentBuilder = class {
|
|
|
115
115
|
this.requestHook = hook;
|
|
116
116
|
return this;
|
|
117
117
|
}
|
|
118
|
-
|
|
118
|
+
middleware(middleware) {
|
|
119
119
|
this.middlewareRegistrations.push(middleware);
|
|
120
120
|
return this;
|
|
121
121
|
}
|
|
122
|
-
|
|
122
|
+
middlewares(middlewares) {
|
|
123
123
|
this.middlewareRegistrations.push(...middlewares);
|
|
124
124
|
return this;
|
|
125
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* @deprecated Use `middleware` instead.
|
|
128
|
+
*/
|
|
129
|
+
toolMiddleware(middleware) {
|
|
130
|
+
return this.middleware(middleware);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* @deprecated Use `middlewares` instead.
|
|
134
|
+
*/
|
|
135
|
+
toolMiddlewares(middlewares) {
|
|
136
|
+
return this.middlewares(middlewares);
|
|
137
|
+
}
|
|
126
138
|
observe(observer, options = {}) {
|
|
127
139
|
this.observerRegistrations.push({
|
|
128
140
|
observer,
|
|
@@ -169,7 +181,7 @@ var AgentBuilder = class {
|
|
|
169
181
|
observers: this.observerRegistrations,
|
|
170
182
|
dynamicContexts: this.dynamicContextRegistrations,
|
|
171
183
|
dynamicTools: this.dynamicToolRegistrations,
|
|
172
|
-
|
|
184
|
+
middlewares: this.middlewareRegistrations,
|
|
173
185
|
memory: this.memoryRegistration,
|
|
174
186
|
eventStore: this.eventStoreRegistration
|
|
175
187
|
});
|
|
@@ -185,4 +197,4 @@ var AgentBuilder = class {
|
|
|
185
197
|
export {
|
|
186
198
|
AgentBuilder
|
|
187
199
|
};
|
|
188
|
-
//# sourceMappingURL=chunk-
|
|
200
|
+
//# sourceMappingURL=chunk-6NWNL2KM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/agent/builder.ts"],"sourcesContent":["import type { CompletionModel, Document, JsonObject, JsonValue, ToolChoice } from \"../completion\";\nimport type { McpServer } from \"../mcp\";\nimport {\n type MemoryOptions,\n type MemoryRegistration,\n type MemoryStore,\n resolveMemoryOptions,\n} from \"../memory\";\nimport type { AgentObserver, AgentObserverRegistration, ObserveOptions } from \"../observability\";\nimport { toProviderJsonSchema, type ZodSchema } from \"../schema/zod-schema\";\nimport type { SkillSet } from \"../skills\";\nimport type { ToolSearchDocument } from \"../tool/dynamic-tools\";\nimport type { AgentMiddleware, ToolMiddleware } from \"../tool/middleware\";\nimport type { AnyTool } from \"../tool/tool\";\nimport { ToolSet } from \"../tool/tool-set\";\nimport type { VectorSearchIndex } from \"../vector-store\";\nimport {\n Agent,\n type AgentEventStore,\n type AgentEventStoreOptions,\n type AgentEventStoreRegistration,\n type DynamicContextOptions,\n type DynamicContextRegistration,\n type DynamicToolOptions,\n type DynamicToolRegistration,\n} from \"./agent\";\nimport type { PromptHook } from \"./hooks\";\nimport { normalizeAgentId } from \"./ids\";\n\nexport class AgentBuilder<M extends CompletionModel = CompletionModel> {\n private readonly agentId: string;\n private agentName: string | undefined;\n private agentDescription: string | undefined;\n private instructionBlocks: string[] = [];\n private contextDocs: Document[] = [];\n private temp: number | undefined;\n private maxTokenCount: number | undefined;\n private params: JsonValue | undefined;\n private choice: ToolChoice | undefined;\n private turns: number | undefined;\n private requestHook: PromptHook | undefined;\n private schema: JsonObject | undefined;\n private skillInstructionBlocks: string[] = [];\n private observerRegistrations: AgentObserverRegistration[] = [];\n private dynamicContextRegistrations: DynamicContextRegistration[] = [];\n private dynamicToolRegistrations: DynamicToolRegistration[] = [];\n private middlewareRegistrations: AgentMiddleware[] = [];\n private memoryRegistration: MemoryRegistration | undefined;\n private eventStoreRegistration: AgentEventStoreRegistration | undefined;\n private activeToolSet = new ToolSet();\n\n constructor(\n agentId: string,\n private readonly completionModel: M,\n ) {\n this.agentId = normalizeAgentId(agentId);\n }\n\n name(name: string): this {\n this.agentName = name;\n return this;\n }\n\n description(description: string): this {\n this.agentDescription = description;\n return this;\n }\n\n instructions(instructions: string): this {\n if (instructions.length > 0) {\n this.instructionBlocks.push(instructions);\n }\n return this;\n }\n\n context(text: string, id = `static_doc_${this.contextDocs.length}`): this {\n this.contextDocs.push({ id, text });\n return this;\n }\n\n dynamicContext<T>(index: VectorSearchIndex<T>, options: DynamicContextOptions<T>): this {\n this.dynamicContextRegistrations.push({ index, options } as DynamicContextRegistration);\n return this;\n }\n\n dynamicTools(index: VectorSearchIndex<ToolSearchDocument>, options: DynamicToolOptions): this {\n this.dynamicToolRegistrations.push({ index, options });\n return this;\n }\n\n tool(tool: AnyTool): this {\n this.activeToolSet.addTool(tool);\n return this;\n }\n\n tools(tools: AnyTool[]): this {\n this.activeToolSet.addTools(tools);\n return this;\n }\n\n mcp(servers: McpServer[]): this {\n for (const server of servers) {\n this.activeToolSet.addTools(server.tools);\n }\n return this;\n }\n\n skills(skillSet: SkillSet): this {\n if (skillSet.instructions.length > 0) {\n this.skillInstructionBlocks.push(skillSet.instructions);\n }\n this.activeToolSet.addTools(skillSet.tools);\n return this;\n }\n\n useToolSet(toolSet: ToolSet): this {\n toolSet.addTools(this.activeToolSet);\n this.activeToolSet = toolSet;\n return this;\n }\n\n temperature(temperature: number): this {\n this.temp = temperature;\n return this;\n }\n\n maxTokens(maxTokens: number): this {\n this.maxTokenCount = maxTokens;\n return this;\n }\n\n additionalParams(params: JsonValue): this {\n this.params = params;\n return this;\n }\n\n toolChoice(toolChoice: ToolChoice): this {\n this.choice = toolChoice;\n return this;\n }\n\n defaultMaxTurns(defaultMaxTurns: number): this {\n this.turns = defaultMaxTurns;\n return this;\n }\n\n hook(hook: PromptHook): this {\n this.requestHook = hook;\n return this;\n }\n\n middleware(middleware: AgentMiddleware): this {\n this.middlewareRegistrations.push(middleware);\n return this;\n }\n\n middlewares(middlewares: AgentMiddleware[]): this {\n this.middlewareRegistrations.push(...middlewares);\n return this;\n }\n\n /**\n * @deprecated Use `middleware` instead.\n */\n toolMiddleware(middleware: ToolMiddleware): this {\n return this.middleware(middleware);\n }\n\n /**\n * @deprecated Use `middlewares` instead.\n */\n toolMiddlewares(middlewares: ToolMiddleware[]): this {\n return this.middlewares(middlewares);\n }\n\n observe(observer: AgentObserver, options: ObserveOptions = {}): this {\n this.observerRegistrations.push({\n observer,\n failOnObserverError: options.failOnObserverError,\n });\n return this;\n }\n\n memory(store: MemoryStore, options: MemoryOptions = {}): this {\n this.memoryRegistration = {\n store,\n options: resolveMemoryOptions(options),\n };\n return this;\n }\n\n eventStore(store: AgentEventStore, options: AgentEventStoreOptions = {}): this {\n this.eventStoreRegistration = {\n store,\n options: {\n include: options.include ?? \"all\",\n },\n };\n return this;\n }\n\n outputSchema(schema: ZodSchema): this {\n this.schema = toProviderJsonSchema(schema);\n return this;\n }\n\n build(): Agent<M> {\n return new Agent({\n id: this.agentId,\n name: this.agentName,\n description: this.agentDescription,\n model: this.completionModel,\n instructions: this.buildInstructions(),\n staticContext: this.contextDocs,\n temperature: this.temp,\n maxTokens: this.maxTokenCount,\n additionalParams: this.params,\n toolSet: this.activeToolSet,\n toolChoice: this.choice,\n defaultMaxTurns: this.turns,\n hook: this.requestHook,\n outputSchema: this.schema,\n observers: this.observerRegistrations,\n dynamicContexts: this.dynamicContextRegistrations,\n dynamicTools: this.dynamicToolRegistrations,\n middlewares: this.middlewareRegistrations,\n memory: this.memoryRegistration,\n eventStore: this.eventStoreRegistration,\n });\n }\n\n private buildInstructions(): string | undefined {\n const parts = [...this.instructionBlocks, ...this.skillInstructionBlocks].filter(\n (part): part is string => part !== undefined && part.length > 0,\n );\n return parts.length === 0 ? undefined : parts.join(\"\\n\\n\");\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import {
|
|
2
|
+
toProviderJsonSchema
|
|
3
|
+
} from "./chunk-WQKHFADH.js";
|
|
4
|
+
|
|
1
5
|
// src/completion/types.ts
|
|
2
6
|
var UserContent = {
|
|
3
7
|
text(text) {
|
|
@@ -189,6 +193,93 @@ function requestHasFileDocumentInput(request) {
|
|
|
189
193
|
);
|
|
190
194
|
}
|
|
191
195
|
|
|
196
|
+
// src/completion/create-completion.ts
|
|
197
|
+
function createCompletion(model, options) {
|
|
198
|
+
return sendCompletion(model, options);
|
|
199
|
+
}
|
|
200
|
+
function createCompletionStream(model, options) {
|
|
201
|
+
const request = toCompletionRequest(options);
|
|
202
|
+
if (!isStreamingCompletionModel(model) || !model.capabilities.streaming) {
|
|
203
|
+
throw new Error("This completion model does not support streaming");
|
|
204
|
+
}
|
|
205
|
+
assertCompletionRequestSupported(model, request, { streaming: true });
|
|
206
|
+
return model.streamCompletion(request);
|
|
207
|
+
}
|
|
208
|
+
async function createParsedCompletion(model, options) {
|
|
209
|
+
const { schema, ...completionOptions } = options;
|
|
210
|
+
const request = toCompletionRequest(
|
|
211
|
+
{
|
|
212
|
+
...completionOptions,
|
|
213
|
+
outputSchema: toProviderJsonSchema(schema)
|
|
214
|
+
},
|
|
215
|
+
"createParsedCompletion"
|
|
216
|
+
);
|
|
217
|
+
assertCompletionRequestSupported(model, request);
|
|
218
|
+
const response = await model.completion(request);
|
|
219
|
+
const text = textFromAssistantContent(response.choice);
|
|
220
|
+
return {
|
|
221
|
+
data: parseCompletionData(text, schema),
|
|
222
|
+
text,
|
|
223
|
+
content: response.choice,
|
|
224
|
+
usage: response.usage,
|
|
225
|
+
response
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
async function sendCompletion(model, options) {
|
|
229
|
+
const request = toCompletionRequest(options);
|
|
230
|
+
assertCompletionRequestSupported(model, request);
|
|
231
|
+
const response = await model.completion(request);
|
|
232
|
+
return {
|
|
233
|
+
text: textFromAssistantContent(response.choice),
|
|
234
|
+
content: response.choice,
|
|
235
|
+
usage: response.usage,
|
|
236
|
+
response
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
function toCompletionRequest(options, helperName = "createCompletion") {
|
|
240
|
+
const chatHistory = [...options.messages ?? [], ...messagesFromInput(options.input)];
|
|
241
|
+
if (chatHistory.length === 0) {
|
|
242
|
+
throw new Error(`${helperName} requires input or messages.`);
|
|
243
|
+
}
|
|
244
|
+
const request = {
|
|
245
|
+
chatHistory,
|
|
246
|
+
documents: [...options.documents ?? []],
|
|
247
|
+
tools: [...options.tools ?? []]
|
|
248
|
+
};
|
|
249
|
+
if (options.instructions !== void 0 && options.instructions.length > 0) {
|
|
250
|
+
request.instructions = options.instructions;
|
|
251
|
+
}
|
|
252
|
+
if (options.temperature !== void 0) request.temperature = options.temperature;
|
|
253
|
+
if (options.maxTokens !== void 0) request.maxTokens = options.maxTokens;
|
|
254
|
+
if (options.toolChoice !== void 0) request.toolChoice = options.toolChoice;
|
|
255
|
+
if (options.outputSchema !== void 0) request.outputSchema = options.outputSchema;
|
|
256
|
+
if (options.params !== void 0) request.additionalParams = options.params;
|
|
257
|
+
return request;
|
|
258
|
+
}
|
|
259
|
+
function messagesFromInput(input) {
|
|
260
|
+
if (input === void 0) {
|
|
261
|
+
return [];
|
|
262
|
+
}
|
|
263
|
+
if (typeof input === "string") {
|
|
264
|
+
return [Message.user(input)];
|
|
265
|
+
}
|
|
266
|
+
return Array.isArray(input) ? [...input] : [input];
|
|
267
|
+
}
|
|
268
|
+
function isStreamingCompletionModel(model) {
|
|
269
|
+
return typeof model.streamCompletion === "function";
|
|
270
|
+
}
|
|
271
|
+
function parseCompletionData(text, schema) {
|
|
272
|
+
let json;
|
|
273
|
+
try {
|
|
274
|
+
json = JSON.parse(text);
|
|
275
|
+
} catch (error) {
|
|
276
|
+
throw new Error("createParsedCompletion expected the model response to be valid JSON.", {
|
|
277
|
+
cause: error
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
return schema.parse(json);
|
|
281
|
+
}
|
|
282
|
+
|
|
192
283
|
// src/completion/documents.ts
|
|
193
284
|
function normalizeDocuments(documents) {
|
|
194
285
|
if (documents.length === 0) {
|
|
@@ -317,8 +408,11 @@ export {
|
|
|
317
408
|
CompletionCapabilityError,
|
|
318
409
|
assertCompletionRequestSupported,
|
|
319
410
|
textFromAssistantContent,
|
|
411
|
+
createCompletion,
|
|
412
|
+
createCompletionStream,
|
|
413
|
+
createParsedCompletion,
|
|
320
414
|
normalizeDocuments,
|
|
321
415
|
formatDocument,
|
|
322
416
|
CompletionRequestBuilder
|
|
323
417
|
};
|
|
324
|
-
//# sourceMappingURL=chunk-
|
|
418
|
+
//# sourceMappingURL=chunk-A4GUJSEK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/completion/types.ts","../src/completion/create-completion.ts","../src/completion/documents.ts","../src/completion/request.ts"],"sourcesContent":["export type JsonPrimitive = string | number | boolean | null;\nexport type JsonValue = JsonPrimitive | JsonObject | JsonValue[];\nexport type JsonObject = { [key: string]: JsonValue | undefined };\n\nexport type Document = {\n id: string;\n text: string;\n additionalProps?: Record<string, string>;\n};\n\nexport type Text = {\n type: \"text\";\n text: string;\n signature?: string;\n};\n\nexport type ImageDetail = \"auto\" | \"low\" | \"high\";\n\nexport type ImageContent = {\n type: \"image\";\n source:\n | {\n type: \"url\";\n url: string;\n }\n | {\n type: \"base64\";\n data: string;\n mediaType: string;\n };\n detail?: ImageDetail;\n};\n\nexport type DocumentContent = {\n type: \"document\";\n source:\n | {\n type: \"url\";\n url: string;\n mediaType: string;\n filename?: string;\n }\n | {\n type: \"base64\";\n data: string;\n mediaType: string;\n filename?: string;\n }\n | {\n type: \"text\";\n text: string;\n mediaType?: string;\n filename?: string;\n };\n};\n\nexport type Reasoning = {\n type: \"reasoning\";\n text: string;\n id?: string;\n content?: ReasoningContent[];\n};\n\nexport type ReasoningContent =\n | {\n type: \"text\";\n text: string;\n signature?: string;\n }\n | {\n type: \"summary\";\n text: string;\n }\n | {\n type: \"encrypted\";\n data: string;\n }\n | {\n type: \"redacted\";\n data: string;\n };\n\nexport type ReasoningContentType = ReasoningContent[\"type\"];\n\nexport type ToolFunction = {\n name: string;\n arguments: JsonValue;\n};\n\nexport type ToolCall = {\n type: \"tool_call\";\n id: string;\n callId?: string;\n function: ToolFunction;\n signature?: string;\n additionalParams?: JsonValue;\n};\n\nexport type ToolResultContent =\n | { type: \"text\"; text: string }\n | { type: \"image\"; data: string; mediaType?: string };\n\nexport type ToolResult = {\n type: \"tool_result\";\n id: string;\n callId?: string;\n content: ToolResultContent[];\n};\n\nexport type UserContent = Text | ImageContent | DocumentContent;\nexport type AssistantContent = Text | ToolCall | Reasoning | ImageContent;\nexport type ToolContent = ToolResult;\n\nexport type SystemMessage = {\n role: \"system\";\n content: string;\n};\n\nexport type UserMessage = {\n role: \"user\";\n content: UserContent[];\n};\n\nexport type AssistantMessage = {\n role: \"assistant\";\n id?: string;\n content: AssistantContent[];\n};\n\nexport type ToolMessage = {\n role: \"tool\";\n content: ToolContent[];\n};\n\nexport type Message = SystemMessage | UserMessage | AssistantMessage | ToolMessage;\n\nexport const UserContent = {\n text(text: string): Text {\n return { type: \"text\", text };\n },\n imageUrl(url: string, options: { detail?: ImageDetail } = {}): ImageContent {\n const image: ImageContent = { type: \"image\", source: { type: \"url\", url } };\n if (options.detail !== undefined) {\n image.detail = options.detail;\n }\n return image;\n },\n imageBase64(\n data: string,\n mediaType: string,\n options: { detail?: ImageDetail } = {},\n ): ImageContent {\n const image: ImageContent = {\n type: \"image\",\n source: { type: \"base64\", data, mediaType },\n };\n if (options.detail !== undefined) {\n image.detail = options.detail;\n }\n return image;\n },\n documentUrl(\n url: string,\n mediaType: string,\n options: { filename?: string | undefined } = {},\n ): DocumentContent {\n return {\n type: \"document\",\n source:\n options.filename === undefined\n ? { type: \"url\", url, mediaType }\n : { type: \"url\", url, mediaType, filename: options.filename },\n };\n },\n documentBase64(\n data: string,\n mediaType: string,\n options: { filename?: string | undefined } = {},\n ): DocumentContent {\n return {\n type: \"document\",\n source:\n options.filename === undefined\n ? { type: \"base64\", data, mediaType }\n : { type: \"base64\", data, mediaType, filename: options.filename },\n };\n },\n documentText(text: string): Text {\n return { type: \"text\", text };\n },\n};\n\nexport const ToolContent = {\n toolResult(id: string, content: string | ToolResultContent[], callId?: string): ToolResult {\n const normalized =\n typeof content === \"string\" ? [{ type: \"text\" as const, text: content }] : content;\n return callId === undefined\n ? { type: \"tool_result\", id, content: normalized }\n : { type: \"tool_result\", id, callId, content: normalized };\n },\n};\n\nexport const AssistantContent = {\n text(text: string): Text {\n return { type: \"text\", text };\n },\n imageUrl(url: string, options: { detail?: ImageDetail } = {}): ImageContent {\n const image: ImageContent = { type: \"image\", source: { type: \"url\", url } };\n if (options.detail !== undefined) {\n image.detail = options.detail;\n }\n return image;\n },\n imageBase64(\n data: string,\n mediaType: string,\n options: { detail?: ImageDetail } = {},\n ): ImageContent {\n const image: ImageContent = {\n type: \"image\",\n source: { type: \"base64\", data, mediaType },\n };\n if (options.detail !== undefined) {\n image.detail = options.detail;\n }\n return image;\n },\n reasoning(text: string, id?: string): Reasoning {\n return id === undefined ? { type: \"reasoning\", text } : { type: \"reasoning\", text, id };\n },\n reasoningFromContent(content: ReasoningContent[], id?: string): Reasoning {\n const text = reasoningDisplayText(content);\n const reasoning: Reasoning = { type: \"reasoning\", text, content };\n return id === undefined ? reasoning : { ...reasoning, id };\n },\n reasoningSummary(text: string, id?: string): Reasoning {\n return AssistantContent.reasoningFromContent([{ type: \"summary\", text }], id);\n },\n reasoningEncrypted(data: string, id?: string): Reasoning {\n return AssistantContent.reasoningFromContent([{ type: \"encrypted\", data }], id);\n },\n reasoningRedacted(data: string, id?: string): Reasoning {\n return AssistantContent.reasoningFromContent([{ type: \"redacted\", data }], id);\n },\n toolCall(id: string, name: string, args: JsonValue, callId?: string): ToolCall {\n const base: ToolCall = {\n type: \"tool_call\",\n id,\n function: {\n name,\n arguments: args,\n },\n };\n return callId === undefined ? base : { ...base, callId };\n },\n};\n\nexport function reasoningDisplayText(reasoning: Reasoning | ReasoningContent[]): string {\n const content = Array.isArray(reasoning) ? reasoning : reasoning.content;\n if (content === undefined) {\n return Array.isArray(reasoning) ? \"\" : reasoning.text;\n }\n return content\n .flatMap((item) => {\n if (item.type === \"text\" || item.type === \"summary\") {\n return [item.text];\n }\n return [];\n })\n .join(\"\");\n}\n\nexport const Message = {\n system(content: string): Message {\n return { role: \"system\", content };\n },\n user(content: string | UserContent[]): Message {\n return {\n role: \"user\",\n content: typeof content === \"string\" ? [UserContent.text(content)] : content,\n };\n },\n assistant(content: string | AssistantContent[], id?: string): Message {\n const normalized = typeof content === \"string\" ? [AssistantContent.text(content)] : content;\n return id === undefined\n ? { role: \"assistant\", content: normalized }\n : { role: \"assistant\", id, content: normalized };\n },\n tool(content: ToolContent | ToolContent[]): Message {\n return {\n role: \"tool\",\n content: Array.isArray(content) ? content : [content],\n };\n },\n};\n\nexport type ToolChoice =\n | \"auto\"\n | \"required\"\n | \"none\"\n | {\n type: \"function\";\n name: string;\n };\n\nexport type ToolDefinition = {\n name: string;\n description: string;\n parameters: JsonObject;\n};\n\nexport type Usage = {\n inputTokens: number;\n outputTokens: number;\n totalTokens: number;\n cachedInputTokens: number;\n cacheCreationInputTokens: number;\n};\n\nexport const Usage = {\n empty(): Usage {\n return {\n inputTokens: 0,\n outputTokens: 0,\n totalTokens: 0,\n cachedInputTokens: 0,\n cacheCreationInputTokens: 0,\n };\n },\n add(left: Usage, right: Usage): Usage {\n return {\n inputTokens: left.inputTokens + right.inputTokens,\n outputTokens: left.outputTokens + right.outputTokens,\n totalTokens: left.totalTokens + right.totalTokens,\n cachedInputTokens: left.cachedInputTokens + right.cachedInputTokens,\n cacheCreationInputTokens: left.cacheCreationInputTokens + right.cacheCreationInputTokens,\n };\n },\n};\n\nexport type CompletionRequest = {\n model?: string;\n instructions?: string;\n chatHistory: Message[];\n documents: Document[];\n tools: ToolDefinition[];\n temperature?: number;\n maxTokens?: number;\n toolChoice?: ToolChoice;\n additionalParams?: JsonValue;\n outputSchema?: JsonObject;\n};\n\nexport type CompletionResponse<RawResponse = unknown> = {\n choice: AssistantContent[];\n usage: Usage;\n rawResponse: RawResponse;\n messageId?: string;\n};\n\nexport type CompletionModelCapabilities = {\n streaming: boolean;\n tools: boolean;\n toolChoice: boolean;\n imageInput: boolean;\n documentInput: boolean;\n outputSchema: boolean;\n reasoning: boolean;\n};\n\nexport interface CompletionModel<RawResponse = unknown> {\n readonly provider: string;\n readonly defaultModel: string;\n readonly capabilities: CompletionModelCapabilities;\n traceRequest?(\n request: CompletionRequest,\n options?: { stream?: boolean | undefined },\n ): JsonObject | undefined;\n completion(request: CompletionRequest): Promise<CompletionResponse<RawResponse>>;\n}\n\nexport type CompletionStreamEvent<RawResponse = unknown> =\n | {\n type: \"text_delta\";\n delta: string;\n }\n | {\n type: \"reasoning_delta\";\n delta: string;\n id?: string;\n contentType?: ReasoningContentType;\n signature?: string;\n }\n | {\n type: \"tool_call_delta\";\n id: string;\n callId?: string;\n name?: string;\n argumentsDelta?: string;\n signature?: string;\n }\n | {\n type: \"tool_call\";\n toolCall: ToolCall;\n }\n | {\n type: \"message_id\";\n id: string;\n }\n | {\n type: \"final\";\n response: CompletionResponse<RawResponse>;\n }\n | {\n type: \"error\";\n error: unknown;\n };\n\nexport interface StreamingCompletionModel<RawResponse = unknown>\n extends CompletionModel<RawResponse> {\n streamCompletion(request: CompletionRequest): AsyncIterable<CompletionStreamEvent<RawResponse>>;\n}\n\nexport class CompletionCapabilityError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"CompletionCapabilityError\";\n }\n}\n\nexport function assertCompletionRequestSupported(\n model: CompletionModel,\n request: CompletionRequest,\n options: { streaming?: boolean | undefined } = {},\n): void {\n const modelLabel = `${model.provider}:${request.model ?? model.defaultModel}`;\n const capabilities = model.capabilities;\n\n if (options.streaming === true && !capabilities.streaming) {\n throw new CompletionCapabilityError(`${modelLabel} does not support streaming completions.`);\n }\n\n if (request.tools.length > 0 && !capabilities.tools) {\n throw new CompletionCapabilityError(`${modelLabel} does not support tool definitions.`);\n }\n\n if (request.toolChoice !== undefined && !capabilities.toolChoice) {\n throw new CompletionCapabilityError(`${modelLabel} does not support tool choice.`);\n }\n\n if (request.outputSchema !== undefined && !capabilities.outputSchema) {\n throw new CompletionCapabilityError(`${modelLabel} does not support output schemas.`);\n }\n\n if (!capabilities.imageInput && requestHasImageInput(request)) {\n throw new CompletionCapabilityError(`${modelLabel} does not support image input.`);\n }\n\n if (!capabilities.documentInput && requestHasFileDocumentInput(request)) {\n throw new CompletionCapabilityError(`${modelLabel} does not support document file input.`);\n }\n}\n\nexport function textFromAssistantContent(content: AssistantContent[]): string {\n return content.flatMap((item) => (item.type === \"text\" ? [item.text] : [])).join(\"\\n\");\n}\n\nfunction requestHasImageInput(request: CompletionRequest): boolean {\n return request.chatHistory.some((message) =>\n message.role === \"system\" ? false : message.content.some((content) => content.type === \"image\"),\n );\n}\n\nfunction requestHasFileDocumentInput(request: CompletionRequest): boolean {\n return request.chatHistory.some((message) =>\n message.role === \"user\"\n ? message.content.some(\n (content) => content.type === \"document\" && content.source.type !== \"text\",\n )\n : false,\n );\n}\n","import { toProviderJsonSchema, type ZodSchema } from \"../schema/zod-schema\";\nimport type {\n AssistantContent,\n CompletionModel,\n CompletionRequest,\n CompletionResponse,\n CompletionStreamEvent,\n Document,\n JsonObject,\n JsonValue,\n Message as MessageType,\n StreamingCompletionModel,\n ToolChoice,\n ToolDefinition,\n Usage,\n} from \"./types\";\nimport { assertCompletionRequestSupported, Message, textFromAssistantContent } from \"./types\";\n\nexport type CreateCompletionInput = string | MessageType | MessageType[];\n\nexport type CreateCompletionBaseOptions = {\n input?: CreateCompletionInput | undefined;\n messages?: MessageType[] | undefined;\n instructions?: string | undefined;\n documents?: Document[] | undefined;\n tools?: ToolDefinition[] | undefined;\n temperature?: number | undefined;\n maxTokens?: number | undefined;\n toolChoice?: ToolChoice | undefined;\n outputSchema?: JsonObject | undefined;\n params?: JsonValue | undefined;\n};\n\nexport type CreateCompletionOptions = CreateCompletionBaseOptions;\n\nexport type CreateCompletionStreamOptions = CreateCompletionBaseOptions;\n\nexport type CreateParsedCompletionOptions<T> = Omit<CreateCompletionBaseOptions, \"outputSchema\"> & {\n schema: ZodSchema<T>;\n};\n\nexport type CreateCompletionResult<RawResponse = unknown> = {\n text: string;\n content: AssistantContent[];\n usage: Usage;\n response: CompletionResponse<RawResponse>;\n};\n\nexport type CreateParsedCompletionResult<\n T,\n RawResponse = unknown,\n> = CreateCompletionResult<RawResponse> & {\n data: T;\n};\n\ntype RawResponseOf<Model> =\n Model extends CompletionModel<infer RawResponse> ? RawResponse : unknown;\n\nexport function createCompletion<Model extends CompletionModel>(\n model: Model,\n options: CreateCompletionOptions,\n): Promise<CreateCompletionResult<RawResponseOf<Model>>> {\n return sendCompletion(model, options);\n}\n\nexport function createCompletionStream<Model extends StreamingCompletionModel>(\n model: Model,\n options: CreateCompletionStreamOptions,\n): AsyncIterable<CompletionStreamEvent<RawResponseOf<Model>>> {\n const request = toCompletionRequest(options);\n if (!isStreamingCompletionModel(model) || !model.capabilities.streaming) {\n throw new Error(\"This completion model does not support streaming\");\n }\n assertCompletionRequestSupported(model, request, { streaming: true });\n return model.streamCompletion(request) as AsyncIterable<\n CompletionStreamEvent<RawResponseOf<Model>>\n >;\n}\n\nexport async function createParsedCompletion<T, Model extends CompletionModel>(\n model: Model,\n options: CreateParsedCompletionOptions<T>,\n): Promise<CreateParsedCompletionResult<T, RawResponseOf<Model>>> {\n const { schema, ...completionOptions } = options;\n const request = toCompletionRequest(\n {\n ...completionOptions,\n outputSchema: toProviderJsonSchema(schema),\n },\n \"createParsedCompletion\",\n );\n assertCompletionRequestSupported(model, request);\n const response = (await model.completion(request)) as CompletionResponse<RawResponseOf<Model>>;\n const text = textFromAssistantContent(response.choice);\n return {\n data: parseCompletionData(text, schema),\n text,\n content: response.choice,\n usage: response.usage,\n response,\n };\n}\n\nasync function sendCompletion<Model extends CompletionModel>(\n model: Model,\n options: CreateCompletionOptions,\n): Promise<CreateCompletionResult<RawResponseOf<Model>>> {\n const request = toCompletionRequest(options);\n assertCompletionRequestSupported(model, request);\n const response = (await model.completion(request)) as CompletionResponse<RawResponseOf<Model>>;\n return {\n text: textFromAssistantContent(response.choice),\n content: response.choice,\n usage: response.usage,\n response,\n };\n}\n\nfunction toCompletionRequest(\n options: CreateCompletionBaseOptions,\n helperName = \"createCompletion\",\n): CompletionRequest {\n const chatHistory = [...(options.messages ?? []), ...messagesFromInput(options.input)];\n\n if (chatHistory.length === 0) {\n throw new Error(`${helperName} requires input or messages.`);\n }\n\n const request: CompletionRequest = {\n chatHistory,\n documents: [...(options.documents ?? [])],\n tools: [...(options.tools ?? [])],\n };\n\n if (options.instructions !== undefined && options.instructions.length > 0) {\n request.instructions = options.instructions;\n }\n if (options.temperature !== undefined) request.temperature = options.temperature;\n if (options.maxTokens !== undefined) request.maxTokens = options.maxTokens;\n if (options.toolChoice !== undefined) request.toolChoice = options.toolChoice;\n if (options.outputSchema !== undefined) request.outputSchema = options.outputSchema;\n if (options.params !== undefined) request.additionalParams = options.params;\n\n return request;\n}\n\nfunction messagesFromInput(input: CreateCompletionInput | undefined): MessageType[] {\n if (input === undefined) {\n return [];\n }\n if (typeof input === \"string\") {\n return [Message.user(input)];\n }\n return Array.isArray(input) ? [...input] : [input];\n}\n\nfunction isStreamingCompletionModel(model: CompletionModel): model is StreamingCompletionModel {\n return typeof (model as { streamCompletion?: unknown }).streamCompletion === \"function\";\n}\n\nfunction parseCompletionData<T>(text: string, schema: ZodSchema<T>): T {\n let json: unknown;\n try {\n json = JSON.parse(text);\n } catch (error) {\n throw new Error(\"createParsedCompletion expected the model response to be valid JSON.\", {\n cause: error,\n });\n }\n\n return schema.parse(json);\n}\n","import { type Document, Message, type Message as MessageType } from \"./types\";\n\nexport function normalizeDocuments(documents: Document[]): MessageType | undefined {\n if (documents.length === 0) {\n return undefined;\n }\n\n return Message.user(documents.map(formatDocument).join(\"\\n\"));\n}\n\nexport function formatDocument(document: Document): string {\n return `<file id: ${document.id}>\\n${formatDocumentBody(document)}\\n</file>\\n`;\n}\n\nfunction formatDocumentBody(document: Document): string {\n const metadata = formatMetadata(document.additionalProps);\n return metadata === undefined ? document.text : `${metadata}\\n${document.text}`;\n}\n\nfunction formatMetadata(additionalProps: Record<string, string> | undefined): string | undefined {\n if (additionalProps === undefined) {\n return undefined;\n }\n\n const entries = Object.entries(additionalProps).sort(([left], [right]) =>\n left.localeCompare(right),\n );\n if (entries.length === 0) {\n return undefined;\n }\n\n const metadata = entries.map(([key, value]) => `${key}: ${JSON.stringify(value)}`).join(\" \");\n return `<metadata ${metadata} />`;\n}\n","import type {\n CompletionModel,\n CompletionRequest,\n CompletionResponse,\n Document,\n JsonObject,\n JsonValue,\n Message as MessageType,\n ToolChoice,\n ToolDefinition,\n} from \"./types\";\nimport { assertCompletionRequestSupported } from \"./types\";\n\nexport class CompletionRequestBuilder<M extends CompletionModel = CompletionModel> {\n private requestModel: string | undefined;\n private instructionBlocks: string[] = [];\n private history: MessageType[] = [];\n private docs: Document[] = [];\n private toolDefs: ToolDefinition[] = [];\n private temp: number | undefined;\n private maxTokenCount: number | undefined;\n private choice: ToolChoice | undefined;\n private params: JsonValue | undefined;\n private schema: JsonObject | undefined;\n\n constructor(\n private readonly model: M,\n private readonly promptMessage: MessageType,\n ) {}\n\n modelOverride(model: string | undefined): this {\n this.requestModel = model;\n return this;\n }\n\n instructions(instructions: string | undefined): this {\n if (instructions !== undefined && instructions.length > 0) {\n this.instructionBlocks.push(instructions);\n }\n return this;\n }\n\n messages(messages: MessageType[]): this {\n this.history.push(...messages);\n return this;\n }\n\n documents(documents: Document[]): this {\n this.docs.push(...documents);\n return this;\n }\n\n tools(tools: ToolDefinition[]): this {\n this.toolDefs.push(...tools);\n return this;\n }\n\n temperature(temperature: number | undefined): this {\n this.temp = temperature;\n return this;\n }\n\n maxTokens(maxTokens: number | undefined): this {\n this.maxTokenCount = maxTokens;\n return this;\n }\n\n toolChoice(toolChoice: ToolChoice | undefined): this {\n this.choice = toolChoice;\n return this;\n }\n\n additionalParams(additionalParams: JsonValue | undefined): this {\n this.params = additionalParams;\n return this;\n }\n\n outputSchema(outputSchema: JsonObject | undefined): this {\n this.schema = outputSchema;\n return this;\n }\n\n build(): CompletionRequest {\n const instructions = this.buildInstructions();\n const request: CompletionRequest = {\n chatHistory: [...this.history, this.promptMessage],\n documents: [...this.docs],\n tools: [...this.toolDefs],\n };\n\n if (this.requestModel !== undefined) request.model = this.requestModel;\n if (instructions !== undefined) request.instructions = instructions;\n if (this.temp !== undefined) request.temperature = this.temp;\n if (this.maxTokenCount !== undefined) request.maxTokens = this.maxTokenCount;\n if (this.choice !== undefined) request.toolChoice = this.choice;\n if (this.params !== undefined) request.additionalParams = this.params;\n if (this.schema !== undefined) request.outputSchema = this.schema;\n\n return request;\n }\n\n async send(): Promise<CompletionResponse> {\n const request = this.build();\n assertCompletionRequestSupported(this.model, request);\n return this.model.completion(request);\n }\n\n private buildInstructions(): string | undefined {\n return this.instructionBlocks.length === 0 ? undefined : this.instructionBlocks.join(\"\\n\\n\");\n }\n}\n"],"mappings":";;;;;AAwIO,IAAM,cAAc;AAAA,EACzB,KAAK,MAAoB;AACvB,WAAO,EAAE,MAAM,QAAQ,KAAK;AAAA,EAC9B;AAAA,EACA,SAAS,KAAa,UAAoC,CAAC,GAAiB;AAC1E,UAAM,QAAsB,EAAE,MAAM,SAAS,QAAQ,EAAE,MAAM,OAAO,IAAI,EAAE;AAC1E,QAAI,QAAQ,WAAW,QAAW;AAChC,YAAM,SAAS,QAAQ;AAAA,IACzB;AACA,WAAO;AAAA,EACT;AAAA,EACA,YACE,MACA,WACA,UAAoC,CAAC,GACvB;AACd,UAAM,QAAsB;AAAA,MAC1B,MAAM;AAAA,MACN,QAAQ,EAAE,MAAM,UAAU,MAAM,UAAU;AAAA,IAC5C;AACA,QAAI,QAAQ,WAAW,QAAW;AAChC,YAAM,SAAS,QAAQ;AAAA,IACzB;AACA,WAAO;AAAA,EACT;AAAA,EACA,YACE,KACA,WACA,UAA6C,CAAC,GAC7B;AACjB,WAAO;AAAA,MACL,MAAM;AAAA,MACN,QACE,QAAQ,aAAa,SACjB,EAAE,MAAM,OAAO,KAAK,UAAU,IAC9B,EAAE,MAAM,OAAO,KAAK,WAAW,UAAU,QAAQ,SAAS;AAAA,IAClE;AAAA,EACF;AAAA,EACA,eACE,MACA,WACA,UAA6C,CAAC,GAC7B;AACjB,WAAO;AAAA,MACL,MAAM;AAAA,MACN,QACE,QAAQ,aAAa,SACjB,EAAE,MAAM,UAAU,MAAM,UAAU,IAClC,EAAE,MAAM,UAAU,MAAM,WAAW,UAAU,QAAQ,SAAS;AAAA,IACtE;AAAA,EACF;AAAA,EACA,aAAa,MAAoB;AAC/B,WAAO,EAAE,MAAM,QAAQ,KAAK;AAAA,EAC9B;AACF;AAEO,IAAM,cAAc;AAAA,EACzB,WAAW,IAAY,SAAuC,QAA6B;AACzF,UAAM,aACJ,OAAO,YAAY,WAAW,CAAC,EAAE,MAAM,QAAiB,MAAM,QAAQ,CAAC,IAAI;AAC7E,WAAO,WAAW,SACd,EAAE,MAAM,eAAe,IAAI,SAAS,WAAW,IAC/C,EAAE,MAAM,eAAe,IAAI,QAAQ,SAAS,WAAW;AAAA,EAC7D;AACF;AAEO,IAAM,mBAAmB;AAAA,EAC9B,KAAK,MAAoB;AACvB,WAAO,EAAE,MAAM,QAAQ,KAAK;AAAA,EAC9B;AAAA,EACA,SAAS,KAAa,UAAoC,CAAC,GAAiB;AAC1E,UAAM,QAAsB,EAAE,MAAM,SAAS,QAAQ,EAAE,MAAM,OAAO,IAAI,EAAE;AAC1E,QAAI,QAAQ,WAAW,QAAW;AAChC,YAAM,SAAS,QAAQ;AAAA,IACzB;AACA,WAAO;AAAA,EACT;AAAA,EACA,YACE,MACA,WACA,UAAoC,CAAC,GACvB;AACd,UAAM,QAAsB;AAAA,MAC1B,MAAM;AAAA,MACN,QAAQ,EAAE,MAAM,UAAU,MAAM,UAAU;AAAA,IAC5C;AACA,QAAI,QAAQ,WAAW,QAAW;AAChC,YAAM,SAAS,QAAQ;AAAA,IACzB;AACA,WAAO;AAAA,EACT;AAAA,EACA,UAAU,MAAc,IAAwB;AAC9C,WAAO,OAAO,SAAY,EAAE,MAAM,aAAa,KAAK,IAAI,EAAE,MAAM,aAAa,MAAM,GAAG;AAAA,EACxF;AAAA,EACA,qBAAqB,SAA6B,IAAwB;AACxE,UAAM,OAAO,qBAAqB,OAAO;AACzC,UAAM,YAAuB,EAAE,MAAM,aAAa,MAAM,QAAQ;AAChE,WAAO,OAAO,SAAY,YAAY,EAAE,GAAG,WAAW,GAAG;AAAA,EAC3D;AAAA,EACA,iBAAiB,MAAc,IAAwB;AACrD,WAAO,iBAAiB,qBAAqB,CAAC,EAAE,MAAM,WAAW,KAAK,CAAC,GAAG,EAAE;AAAA,EAC9E;AAAA,EACA,mBAAmB,MAAc,IAAwB;AACvD,WAAO,iBAAiB,qBAAqB,CAAC,EAAE,MAAM,aAAa,KAAK,CAAC,GAAG,EAAE;AAAA,EAChF;AAAA,EACA,kBAAkB,MAAc,IAAwB;AACtD,WAAO,iBAAiB,qBAAqB,CAAC,EAAE,MAAM,YAAY,KAAK,CAAC,GAAG,EAAE;AAAA,EAC/E;AAAA,EACA,SAAS,IAAY,MAAc,MAAiB,QAA2B;AAC7E,UAAM,OAAiB;AAAA,MACrB,MAAM;AAAA,MACN;AAAA,MACA,UAAU;AAAA,QACR;AAAA,QACA,WAAW;AAAA,MACb;AAAA,IACF;AACA,WAAO,WAAW,SAAY,OAAO,EAAE,GAAG,MAAM,OAAO;AAAA,EACzD;AACF;AAEO,SAAS,qBAAqB,WAAmD;AACtF,QAAM,UAAU,MAAM,QAAQ,SAAS,IAAI,YAAY,UAAU;AACjE,MAAI,YAAY,QAAW;AACzB,WAAO,MAAM,QAAQ,SAAS,IAAI,KAAK,UAAU;AAAA,EACnD;AACA,SAAO,QACJ,QAAQ,CAAC,SAAS;AACjB,QAAI,KAAK,SAAS,UAAU,KAAK,SAAS,WAAW;AACnD,aAAO,CAAC,KAAK,IAAI;AAAA,IACnB;AACA,WAAO,CAAC;AAAA,EACV,CAAC,EACA,KAAK,EAAE;AACZ;AAEO,IAAM,UAAU;AAAA,EACrB,OAAO,SAA0B;AAC/B,WAAO,EAAE,MAAM,UAAU,QAAQ;AAAA,EACnC;AAAA,EACA,KAAK,SAA0C;AAC7C,WAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS,OAAO,YAAY,WAAW,CAAC,YAAY,KAAK,OAAO,CAAC,IAAI;AAAA,IACvE;AAAA,EACF;AAAA,EACA,UAAU,SAAsC,IAAsB;AACpE,UAAM,aAAa,OAAO,YAAY,WAAW,CAAC,iBAAiB,KAAK,OAAO,CAAC,IAAI;AACpF,WAAO,OAAO,SACV,EAAE,MAAM,aAAa,SAAS,WAAW,IACzC,EAAE,MAAM,aAAa,IAAI,SAAS,WAAW;AAAA,EACnD;AAAA,EACA,KAAK,SAA+C;AAClD,WAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS,MAAM,QAAQ,OAAO,IAAI,UAAU,CAAC,OAAO;AAAA,IACtD;AAAA,EACF;AACF;AAyBO,IAAM,QAAQ;AAAA,EACnB,QAAe;AACb,WAAO;AAAA,MACL,aAAa;AAAA,MACb,cAAc;AAAA,MACd,aAAa;AAAA,MACb,mBAAmB;AAAA,MACnB,0BAA0B;AAAA,IAC5B;AAAA,EACF;AAAA,EACA,IAAI,MAAa,OAAqB;AACpC,WAAO;AAAA,MACL,aAAa,KAAK,cAAc,MAAM;AAAA,MACtC,cAAc,KAAK,eAAe,MAAM;AAAA,MACxC,aAAa,KAAK,cAAc,MAAM;AAAA,MACtC,mBAAmB,KAAK,oBAAoB,MAAM;AAAA,MAClD,0BAA0B,KAAK,2BAA2B,MAAM;AAAA,IAClE;AAAA,EACF;AACF;AAqFO,IAAM,4BAAN,cAAwC,MAAM;AAAA,EACnD,YAAY,SAAiB;AAC3B,UAAM,OAAO;AACb,SAAK,OAAO;AAAA,EACd;AACF;AAEO,SAAS,iCACd,OACA,SACA,UAA+C,CAAC,GAC1C;AACN,QAAM,aAAa,GAAG,MAAM,QAAQ,IAAI,QAAQ,SAAS,MAAM,YAAY;AAC3E,QAAM,eAAe,MAAM;AAE3B,MAAI,QAAQ,cAAc,QAAQ,CAAC,aAAa,WAAW;AACzD,UAAM,IAAI,0BAA0B,GAAG,UAAU,0CAA0C;AAAA,EAC7F;AAEA,MAAI,QAAQ,MAAM,SAAS,KAAK,CAAC,aAAa,OAAO;AACnD,UAAM,IAAI,0BAA0B,GAAG,UAAU,qCAAqC;AAAA,EACxF;AAEA,MAAI,QAAQ,eAAe,UAAa,CAAC,aAAa,YAAY;AAChE,UAAM,IAAI,0BAA0B,GAAG,UAAU,gCAAgC;AAAA,EACnF;AAEA,MAAI,QAAQ,iBAAiB,UAAa,CAAC,aAAa,cAAc;AACpE,UAAM,IAAI,0BAA0B,GAAG,UAAU,mCAAmC;AAAA,EACtF;AAEA,MAAI,CAAC,aAAa,cAAc,qBAAqB,OAAO,GAAG;AAC7D,UAAM,IAAI,0BAA0B,GAAG,UAAU,gCAAgC;AAAA,EACnF;AAEA,MAAI,CAAC,aAAa,iBAAiB,4BAA4B,OAAO,GAAG;AACvE,UAAM,IAAI,0BAA0B,GAAG,UAAU,wCAAwC;AAAA,EAC3F;AACF;AAEO,SAAS,yBAAyB,SAAqC;AAC5E,SAAO,QAAQ,QAAQ,CAAC,SAAU,KAAK,SAAS,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,CAAE,EAAE,KAAK,IAAI;AACvF;AAEA,SAAS,qBAAqB,SAAqC;AACjE,SAAO,QAAQ,YAAY;AAAA,IAAK,CAAC,YAC/B,QAAQ,SAAS,WAAW,QAAQ,QAAQ,QAAQ,KAAK,CAAC,YAAY,QAAQ,SAAS,OAAO;AAAA,EAChG;AACF;AAEA,SAAS,4BAA4B,SAAqC;AACxE,SAAO,QAAQ,YAAY;AAAA,IAAK,CAAC,YAC/B,QAAQ,SAAS,SACb,QAAQ,QAAQ;AAAA,MACd,CAAC,YAAY,QAAQ,SAAS,cAAc,QAAQ,OAAO,SAAS;AAAA,IACtE,IACA;AAAA,EACN;AACF;;;ACvaO,SAAS,iBACd,OACA,SACuD;AACvD,SAAO,eAAe,OAAO,OAAO;AACtC;AAEO,SAAS,uBACd,OACA,SAC4D;AAC5D,QAAM,UAAU,oBAAoB,OAAO;AAC3C,MAAI,CAAC,2BAA2B,KAAK,KAAK,CAAC,MAAM,aAAa,WAAW;AACvE,UAAM,IAAI,MAAM,kDAAkD;AAAA,EACpE;AACA,mCAAiC,OAAO,SAAS,EAAE,WAAW,KAAK,CAAC;AACpE,SAAO,MAAM,iBAAiB,OAAO;AAGvC;AAEA,eAAsB,uBACpB,OACA,SACgE;AAChE,QAAM,EAAE,QAAQ,GAAG,kBAAkB,IAAI;AACzC,QAAM,UAAU;AAAA,IACd;AAAA,MACE,GAAG;AAAA,MACH,cAAc,qBAAqB,MAAM;AAAA,IAC3C;AAAA,IACA;AAAA,EACF;AACA,mCAAiC,OAAO,OAAO;AAC/C,QAAM,WAAY,MAAM,MAAM,WAAW,OAAO;AAChD,QAAM,OAAO,yBAAyB,SAAS,MAAM;AACrD,SAAO;AAAA,IACL,MAAM,oBAAoB,MAAM,MAAM;AAAA,IACtC;AAAA,IACA,SAAS,SAAS;AAAA,IAClB,OAAO,SAAS;AAAA,IAChB;AAAA,EACF;AACF;AAEA,eAAe,eACb,OACA,SACuD;AACvD,QAAM,UAAU,oBAAoB,OAAO;AAC3C,mCAAiC,OAAO,OAAO;AAC/C,QAAM,WAAY,MAAM,MAAM,WAAW,OAAO;AAChD,SAAO;AAAA,IACL,MAAM,yBAAyB,SAAS,MAAM;AAAA,IAC9C,SAAS,SAAS;AAAA,IAClB,OAAO,SAAS;AAAA,IAChB;AAAA,EACF;AACF;AAEA,SAAS,oBACP,SACA,aAAa,oBACM;AACnB,QAAM,cAAc,CAAC,GAAI,QAAQ,YAAY,CAAC,GAAI,GAAG,kBAAkB,QAAQ,KAAK,CAAC;AAErF,MAAI,YAAY,WAAW,GAAG;AAC5B,UAAM,IAAI,MAAM,GAAG,UAAU,8BAA8B;AAAA,EAC7D;AAEA,QAAM,UAA6B;AAAA,IACjC;AAAA,IACA,WAAW,CAAC,GAAI,QAAQ,aAAa,CAAC,CAAE;AAAA,IACxC,OAAO,CAAC,GAAI,QAAQ,SAAS,CAAC,CAAE;AAAA,EAClC;AAEA,MAAI,QAAQ,iBAAiB,UAAa,QAAQ,aAAa,SAAS,GAAG;AACzE,YAAQ,eAAe,QAAQ;AAAA,EACjC;AACA,MAAI,QAAQ,gBAAgB,OAAW,SAAQ,cAAc,QAAQ;AACrE,MAAI,QAAQ,cAAc,OAAW,SAAQ,YAAY,QAAQ;AACjE,MAAI,QAAQ,eAAe,OAAW,SAAQ,aAAa,QAAQ;AACnE,MAAI,QAAQ,iBAAiB,OAAW,SAAQ,eAAe,QAAQ;AACvE,MAAI,QAAQ,WAAW,OAAW,SAAQ,mBAAmB,QAAQ;AAErE,SAAO;AACT;AAEA,SAAS,kBAAkB,OAAyD;AAClF,MAAI,UAAU,QAAW;AACvB,WAAO,CAAC;AAAA,EACV;AACA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,CAAC,QAAQ,KAAK,KAAK,CAAC;AAAA,EAC7B;AACA,SAAO,MAAM,QAAQ,KAAK,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK;AACnD;AAEA,SAAS,2BAA2B,OAA2D;AAC7F,SAAO,OAAQ,MAAyC,qBAAqB;AAC/E;AAEA,SAAS,oBAAuB,MAAc,QAAyB;AACrE,MAAI;AACJ,MAAI;AACF,WAAO,KAAK,MAAM,IAAI;AAAA,EACxB,SAAS,OAAO;AACd,UAAM,IAAI,MAAM,wEAAwE;AAAA,MACtF,OAAO;AAAA,IACT,CAAC;AAAA,EACH;AAEA,SAAO,OAAO,MAAM,IAAI;AAC1B;;;ACzKO,SAAS,mBAAmB,WAAgD;AACjF,MAAI,UAAU,WAAW,GAAG;AAC1B,WAAO;AAAA,EACT;AAEA,SAAO,QAAQ,KAAK,UAAU,IAAI,cAAc,EAAE,KAAK,IAAI,CAAC;AAC9D;AAEO,SAAS,eAAe,UAA4B;AACzD,SAAO,aAAa,SAAS,EAAE;AAAA,EAAM,mBAAmB,QAAQ,CAAC;AAAA;AAAA;AACnE;AAEA,SAAS,mBAAmB,UAA4B;AACtD,QAAM,WAAW,eAAe,SAAS,eAAe;AACxD,SAAO,aAAa,SAAY,SAAS,OAAO,GAAG,QAAQ;AAAA,EAAK,SAAS,IAAI;AAC/E;AAEA,SAAS,eAAe,iBAAyE;AAC/F,MAAI,oBAAoB,QAAW;AACjC,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,OAAO,QAAQ,eAAe,EAAE;AAAA,IAAK,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,MAClE,KAAK,cAAc,KAAK;AAAA,EAC1B;AACA,MAAI,QAAQ,WAAW,GAAG;AACxB,WAAO;AAAA,EACT;AAEA,QAAM,WAAW,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,GAAG,GAAG,KAAK,KAAK,UAAU,KAAK,CAAC,EAAE,EAAE,KAAK,GAAG;AAC3F,SAAO,aAAa,QAAQ;AAC9B;;;ACpBO,IAAM,2BAAN,MAA4E;AAAA,EAYjF,YACmB,OACA,eACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAFgB;AAAA,EACA;AAAA,EAbX;AAAA,EACA,oBAA8B,CAAC;AAAA,EAC/B,UAAyB,CAAC;AAAA,EAC1B,OAAmB,CAAC;AAAA,EACpB,WAA6B,CAAC;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAOR,cAAc,OAAiC;AAC7C,SAAK,eAAe;AACpB,WAAO;AAAA,EACT;AAAA,EAEA,aAAa,cAAwC;AACnD,QAAI,iBAAiB,UAAa,aAAa,SAAS,GAAG;AACzD,WAAK,kBAAkB,KAAK,YAAY;AAAA,IAC1C;AACA,WAAO;AAAA,EACT;AAAA,EAEA,SAAS,UAA+B;AACtC,SAAK,QAAQ,KAAK,GAAG,QAAQ;AAC7B,WAAO;AAAA,EACT;AAAA,EAEA,UAAU,WAA6B;AACrC,SAAK,KAAK,KAAK,GAAG,SAAS;AAC3B,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAA+B;AACnC,SAAK,SAAS,KAAK,GAAG,KAAK;AAC3B,WAAO;AAAA,EACT;AAAA,EAEA,YAAY,aAAuC;AACjD,SAAK,OAAO;AACZ,WAAO;AAAA,EACT;AAAA,EAEA,UAAU,WAAqC;AAC7C,SAAK,gBAAgB;AACrB,WAAO;AAAA,EACT;AAAA,EAEA,WAAW,YAA0C;AACnD,SAAK,SAAS;AACd,WAAO;AAAA,EACT;AAAA,EAEA,iBAAiB,kBAA+C;AAC9D,SAAK,SAAS;AACd,WAAO;AAAA,EACT;AAAA,EAEA,aAAa,cAA4C;AACvD,SAAK,SAAS;AACd,WAAO;AAAA,EACT;AAAA,EAEA,QAA2B;AACzB,UAAM,eAAe,KAAK,kBAAkB;AAC5C,UAAM,UAA6B;AAAA,MACjC,aAAa,CAAC,GAAG,KAAK,SAAS,KAAK,aAAa;AAAA,MACjD,WAAW,CAAC,GAAG,KAAK,IAAI;AAAA,MACxB,OAAO,CAAC,GAAG,KAAK,QAAQ;AAAA,IAC1B;AAEA,QAAI,KAAK,iBAAiB,OAAW,SAAQ,QAAQ,KAAK;AAC1D,QAAI,iBAAiB,OAAW,SAAQ,eAAe;AACvD,QAAI,KAAK,SAAS,OAAW,SAAQ,cAAc,KAAK;AACxD,QAAI,KAAK,kBAAkB,OAAW,SAAQ,YAAY,KAAK;AAC/D,QAAI,KAAK,WAAW,OAAW,SAAQ,aAAa,KAAK;AACzD,QAAI,KAAK,WAAW,OAAW,SAAQ,mBAAmB,KAAK;AAC/D,QAAI,KAAK,WAAW,OAAW,SAAQ,eAAe,KAAK;AAE3D,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAoC;AACxC,UAAM,UAAU,KAAK,MAAM;AAC3B,qCAAiC,KAAK,OAAO,OAAO;AACpD,WAAO,KAAK,MAAM,WAAW,OAAO;AAAA,EACtC;AAAA,EAEQ,oBAAwC;AAC9C,WAAO,KAAK,kBAAkB,WAAW,IAAI,SAAY,KAAK,kBAAkB,KAAK,MAAM;AAAA,EAC7F;AACF;","names":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
InMemoryVectorStore,
|
|
3
3
|
createTool
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-I47EHI45.js";
|
|
5
5
|
import {
|
|
6
6
|
embedDocuments
|
|
7
7
|
} from "./chunk-EFGX3EX5.js";
|
|
@@ -200,6 +200,9 @@ function defaultToolEmbeddingText(definition) {
|
|
|
200
200
|
}
|
|
201
201
|
|
|
202
202
|
// src/tool/middleware.ts
|
|
203
|
+
function createMiddleware(middleware) {
|
|
204
|
+
return middleware;
|
|
205
|
+
}
|
|
203
206
|
function createToolMiddleware(middleware) {
|
|
204
207
|
return middleware;
|
|
205
208
|
}
|
|
@@ -234,7 +237,8 @@ export {
|
|
|
234
237
|
embedTools,
|
|
235
238
|
createToolIndex,
|
|
236
239
|
isDynamicToolIndex,
|
|
240
|
+
createMiddleware,
|
|
237
241
|
createToolMiddleware,
|
|
238
242
|
createThinkTool
|
|
239
243
|
};
|
|
240
|
-
//# sourceMappingURL=chunk-
|
|
244
|
+
//# sourceMappingURL=chunk-AER5FGPK.js.map
|