@anvia/core 0.1.5 → 0.2.1
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/dist/agent/index.d.ts +7 -7
- package/dist/agent/index.js +4 -2
- package/dist/{agent-wBc0uM9_.d.ts → agent-ufaeGoaz.d.ts} +15 -5
- package/dist/audio-generation/index.d.ts +1 -1
- package/dist/{chunk-MQVFDXPC.js → chunk-4F7RVGFR.js} +17 -1
- package/dist/chunk-4F7RVGFR.js.map +1 -0
- package/dist/{chunk-CP47FBJV.js → chunk-6GJDBBDC.js} +1 -1
- package/dist/chunk-6GJDBBDC.js.map +1 -0
- package/dist/{chunk-5OVEPVTH.js → chunk-DO4XW2ZB.js} +77 -7
- package/dist/chunk-DO4XW2ZB.js.map +1 -0
- package/dist/{chunk-BT3I6O56.js → chunk-OD6TY44B.js} +1 -1
- package/dist/chunk-OD6TY44B.js.map +1 -0
- package/dist/{chunk-Q234327P.js → chunk-QAPEP4ON.js} +2 -2
- package/dist/{chunk-FHSSO753.js → chunk-QSIIO4YN.js} +3 -3
- package/dist/{chunk-WZTPK5HV.js → chunk-RLA7SST2.js} +12 -4
- package/dist/chunk-RLA7SST2.js.map +1 -0
- package/dist/chunk-RTOGIJH2.js +345 -0
- package/dist/chunk-RTOGIJH2.js.map +1 -0
- package/dist/{chunk-X2LR54ZO.js → chunk-V5EETE3U.js} +6 -2
- package/dist/chunk-V5EETE3U.js.map +1 -0
- package/dist/completion/index.d.ts +2 -2
- package/dist/completion/index.js +1 -1
- package/dist/evals/index.d.ts +4 -4
- package/dist/evals/index.js +6 -6
- package/dist/extractor/index.d.ts +4 -4
- package/dist/extractor/index.js +5 -5
- package/dist/image-generation/index.d.ts +1 -1
- package/dist/index.d.ts +8 -8
- package/dist/index.js +24 -22
- package/dist/loaders/index.d.ts +1 -1
- package/dist/mcp/index.d.ts +4 -4
- package/dist/mcp/index.js +1 -1
- package/dist/memory/index.d.ts +1 -1
- package/dist/{middleware-2iCGCsB6.d.ts → middleware-CKsY_zZE.d.ts} +2 -2
- package/dist/observability/index.d.ts +10 -2
- package/dist/observability/index.js +1 -1
- package/dist/pipeline/index.d.ts +88 -13
- package/dist/pipeline/index.js +1 -1
- package/dist/skills/index.d.ts +4 -4
- package/dist/skills/index.js +2 -2
- package/dist/tool/index.d.ts +5 -5
- package/dist/tool/index.js +2 -2
- package/dist/{tool-DiWtAf_Q.d.ts → tool-FEHplpd9.d.ts} +1 -1
- package/dist/transcription/index.d.ts +1 -1
- package/dist/{types-BrxLd7ay.d.ts → types-BM8-Y8Hy.d.ts} +3 -0
- package/dist/{types-21n32ltl.d.ts → types-CW3K1MJm.d.ts} +1 -1
- package/dist/{types-ChJoZ0OH.d.ts → types-DNHlpDG_.d.ts} +2 -2
- package/dist/vector-store/index.d.ts +20 -3
- package/dist/vector-store/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-5OVEPVTH.js.map +0 -1
- package/dist/chunk-BT3I6O56.js.map +0 -1
- package/dist/chunk-CP47FBJV.js.map +0 -1
- package/dist/chunk-FI2BTRT5.js +0 -86
- package/dist/chunk-FI2BTRT5.js.map +0 -1
- package/dist/chunk-MQVFDXPC.js.map +0 -1
- package/dist/chunk-WZTPK5HV.js.map +0 -1
- package/dist/chunk-X2LR54ZO.js.map +0 -1
- /package/dist/{chunk-Q234327P.js.map → chunk-QAPEP4ON.js.map} +0 -0
- /package/dist/{chunk-FHSSO753.js.map → chunk-QSIIO4YN.js.map} +0 -0
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
// src/pipeline/index.ts
|
|
2
|
+
var Pipeline = class {
|
|
3
|
+
constructor(executor, pipelineGraph = initialGraph({})) {
|
|
4
|
+
this.executor = executor;
|
|
5
|
+
this.pipelineGraph = pipelineGraph;
|
|
6
|
+
this.id = pipelineGraph.id;
|
|
7
|
+
this.name = pipelineGraph.name;
|
|
8
|
+
this.description = pipelineGraph.description;
|
|
9
|
+
this.metadata = pipelineGraph.metadata;
|
|
10
|
+
}
|
|
11
|
+
executor;
|
|
12
|
+
pipelineGraph;
|
|
13
|
+
id;
|
|
14
|
+
name;
|
|
15
|
+
description;
|
|
16
|
+
metadata;
|
|
17
|
+
/** Run one input through the built pipeline and return the final stage output. */
|
|
18
|
+
async run(input, options = {}) {
|
|
19
|
+
return await this.executor(input, { observer: options.observer });
|
|
20
|
+
}
|
|
21
|
+
/** Run many inputs through the same pipeline with bounded concurrency. */
|
|
22
|
+
async batch(inputs, options) {
|
|
23
|
+
return mapWithConcurrency([...inputs], options.concurrency, (input) => this.run(input));
|
|
24
|
+
}
|
|
25
|
+
graph() {
|
|
26
|
+
return cloneGraph(this.pipelineGraph);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
var PipelineBuilder = class _PipelineBuilder {
|
|
30
|
+
executor;
|
|
31
|
+
state;
|
|
32
|
+
constructor(metadataOrExecutor, state) {
|
|
33
|
+
if (state !== void 0) {
|
|
34
|
+
this.executor = metadataOrExecutor;
|
|
35
|
+
this.state = state;
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (typeof metadataOrExecutor === "function") {
|
|
39
|
+
const executor = metadataOrExecutor;
|
|
40
|
+
this.executor = ((input) => executor(input));
|
|
41
|
+
this.state = initialBuilderState({});
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
this.executor = identity;
|
|
45
|
+
this.state = initialBuilderState(metadataOrExecutor ?? {});
|
|
46
|
+
}
|
|
47
|
+
/** Add a synchronous or asynchronous transform stage. */
|
|
48
|
+
step(fn, metadata) {
|
|
49
|
+
const next = appendNode(
|
|
50
|
+
this.state,
|
|
51
|
+
"step",
|
|
52
|
+
metadata?.name ?? nextStageLabel(this.state, "Step"),
|
|
53
|
+
{
|
|
54
|
+
description: metadata?.description,
|
|
55
|
+
metadata: metadata?.metadata,
|
|
56
|
+
preferredId: metadata?.id
|
|
57
|
+
}
|
|
58
|
+
);
|
|
59
|
+
return new _PipelineBuilder(
|
|
60
|
+
async (input, context) => {
|
|
61
|
+
const value = await this.runStep(input, context);
|
|
62
|
+
const result = await runNode(context, next.node, () => fn(value));
|
|
63
|
+
return result;
|
|
64
|
+
},
|
|
65
|
+
next.state
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
/** Compose another pipeline operation after the current stage. */
|
|
69
|
+
use(op, metadata) {
|
|
70
|
+
const nested = op instanceof Pipeline ? op : void 0;
|
|
71
|
+
const next = appendNode(
|
|
72
|
+
this.state,
|
|
73
|
+
nested === void 0 ? "step" : "pipeline",
|
|
74
|
+
metadata?.name ?? nested?.name ?? nested?.id ?? nextStageLabel(this.state, nested === void 0 ? "Operation" : "Pipeline"),
|
|
75
|
+
{
|
|
76
|
+
description: metadata?.description ?? nested?.description,
|
|
77
|
+
metadata: metadata?.metadata ?? nested?.metadata,
|
|
78
|
+
preferredId: metadata?.id,
|
|
79
|
+
pipelineId: nested?.id
|
|
80
|
+
}
|
|
81
|
+
);
|
|
82
|
+
return new _PipelineBuilder(
|
|
83
|
+
async (input, context) => {
|
|
84
|
+
const value = await this.runStep(input, context);
|
|
85
|
+
const result = await runNode(context, next.node, () => op.run(value));
|
|
86
|
+
return result;
|
|
87
|
+
},
|
|
88
|
+
next.state
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
/** Run named branch operations concurrently from the current value. */
|
|
92
|
+
parallel(branches, metadata) {
|
|
93
|
+
const parallel = appendNode(
|
|
94
|
+
this.state,
|
|
95
|
+
"parallel",
|
|
96
|
+
metadata?.name ?? `${Object.keys(branches).length} parallel branches`,
|
|
97
|
+
{
|
|
98
|
+
description: metadata?.description,
|
|
99
|
+
metadata: metadata?.metadata,
|
|
100
|
+
preferredId: metadata?.id
|
|
101
|
+
}
|
|
102
|
+
);
|
|
103
|
+
let nextState = parallel.state;
|
|
104
|
+
const branchNodes = {};
|
|
105
|
+
for (const key of Object.keys(branches)) {
|
|
106
|
+
const branch = appendChildNode(nextState, parallel.node.id, "branch", key, {
|
|
107
|
+
branchKey: key
|
|
108
|
+
});
|
|
109
|
+
nextState = branch.state;
|
|
110
|
+
branchNodes[key] = branch.node;
|
|
111
|
+
}
|
|
112
|
+
nextState = withTerminalNodes(
|
|
113
|
+
nextState,
|
|
114
|
+
Object.values(branchNodes).map((node) => node.id)
|
|
115
|
+
);
|
|
116
|
+
return new _PipelineBuilder(async (input, context) => {
|
|
117
|
+
const value = await this.runStep(input, context);
|
|
118
|
+
const entries = await runNode(
|
|
119
|
+
context,
|
|
120
|
+
parallel.node,
|
|
121
|
+
() => Promise.all(
|
|
122
|
+
Object.entries(branches).map(async ([key, op]) => {
|
|
123
|
+
const node = branchNodes[key];
|
|
124
|
+
const output = await runNode(context, node, () => op.run(value));
|
|
125
|
+
return [key, output];
|
|
126
|
+
})
|
|
127
|
+
)
|
|
128
|
+
);
|
|
129
|
+
return Object.fromEntries(entries);
|
|
130
|
+
}, nextState);
|
|
131
|
+
}
|
|
132
|
+
/** Send the current value to an agent as text and continue with the agent output. */
|
|
133
|
+
prompt(agent, metadata) {
|
|
134
|
+
const next = appendNode(this.state, "agent", metadata?.name ?? agent.name ?? agent.id, {
|
|
135
|
+
description: metadata?.description ?? agent.description,
|
|
136
|
+
metadata: metadata?.metadata,
|
|
137
|
+
preferredId: metadata?.id,
|
|
138
|
+
agentId: agent.id,
|
|
139
|
+
agentName: agent.name
|
|
140
|
+
});
|
|
141
|
+
return new _PipelineBuilder(async (input, context) => {
|
|
142
|
+
const value = await this.runStep(input, context);
|
|
143
|
+
return runNode(context, next.node, async () => {
|
|
144
|
+
const response = await agent.prompt(String(value)).send();
|
|
145
|
+
return response.output;
|
|
146
|
+
});
|
|
147
|
+
}, next.state);
|
|
148
|
+
}
|
|
149
|
+
/** Send the current value to an extractor as text and continue with typed schema data. */
|
|
150
|
+
extract(extractor, metadata) {
|
|
151
|
+
const next = appendNode(
|
|
152
|
+
this.state,
|
|
153
|
+
"extractor",
|
|
154
|
+
metadata?.name ?? nextStageLabel(this.state, "Extractor"),
|
|
155
|
+
{
|
|
156
|
+
description: metadata?.description,
|
|
157
|
+
metadata: metadata?.metadata,
|
|
158
|
+
preferredId: metadata?.id
|
|
159
|
+
}
|
|
160
|
+
);
|
|
161
|
+
return new _PipelineBuilder(async (input, context) => {
|
|
162
|
+
const value = await this.runStep(input, context);
|
|
163
|
+
return runNode(context, next.node, () => extractor.extract(String(value)));
|
|
164
|
+
}, next.state);
|
|
165
|
+
}
|
|
166
|
+
/** Finish the builder and return a runnable pipeline. */
|
|
167
|
+
build() {
|
|
168
|
+
const graph = withOutputNode(this.state);
|
|
169
|
+
return new Pipeline(
|
|
170
|
+
(input, context) => this.runStep(input, context),
|
|
171
|
+
graph
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
async runStep(input, context) {
|
|
175
|
+
return await this.executor(input, context);
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
function initialBuilderState(metadata) {
|
|
179
|
+
return {
|
|
180
|
+
graph: initialGraph(metadata),
|
|
181
|
+
terminalNodeId: "input",
|
|
182
|
+
terminalNodeIds: ["input"],
|
|
183
|
+
nextNodeIndex: 1,
|
|
184
|
+
nextEdgeIndex: 1
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
function initialGraph(metadata) {
|
|
188
|
+
const id = normalizeId(metadata.id ?? "pipeline");
|
|
189
|
+
return {
|
|
190
|
+
id,
|
|
191
|
+
...metadata.name === void 0 ? {} : { name: metadata.name },
|
|
192
|
+
...metadata.description === void 0 ? {} : { description: metadata.description },
|
|
193
|
+
...metadata.metadata === void 0 ? {} : { metadata: metadata.metadata },
|
|
194
|
+
nodes: [{ id: "input", kind: "input", label: "Input" }],
|
|
195
|
+
edges: []
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
function appendNode(state, kind, label, options = {}) {
|
|
199
|
+
const node = graphNode(kind, label, state.nextNodeIndex, {
|
|
200
|
+
...options,
|
|
201
|
+
existingIds: new Set(state.graph.nodes.map((item) => item.id))
|
|
202
|
+
});
|
|
203
|
+
return {
|
|
204
|
+
node,
|
|
205
|
+
state: appendGraphNode(state, node, activeTerminalNodeIds(state), [node.id])
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
function appendChildNode(state, parentId, kind, label, options = {}) {
|
|
209
|
+
const node = graphNode(kind, label, state.nextNodeIndex, {
|
|
210
|
+
...options,
|
|
211
|
+
existingIds: new Set(state.graph.nodes.map((item) => item.id))
|
|
212
|
+
});
|
|
213
|
+
return {
|
|
214
|
+
node,
|
|
215
|
+
state: appendGraphNode(state, node, [parentId], activeTerminalNodeIds(state))
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
function appendGraphNode(state, node, sourceIds, terminalNodeIds) {
|
|
219
|
+
const edges = sourceIds.map((sourceId, index) => ({
|
|
220
|
+
id: `edge_${state.nextEdgeIndex + index}`,
|
|
221
|
+
source: sourceId,
|
|
222
|
+
target: node.id
|
|
223
|
+
}));
|
|
224
|
+
const terminalNodeId = terminalNodeIds.at(-1) ?? state.terminalNodeId;
|
|
225
|
+
return {
|
|
226
|
+
graph: {
|
|
227
|
+
...state.graph,
|
|
228
|
+
nodes: [...state.graph.nodes, node],
|
|
229
|
+
edges: [...state.graph.edges, ...edges]
|
|
230
|
+
},
|
|
231
|
+
terminalNodeId,
|
|
232
|
+
terminalNodeIds,
|
|
233
|
+
nextNodeIndex: state.nextNodeIndex + 1,
|
|
234
|
+
nextEdgeIndex: state.nextEdgeIndex + edges.length
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
function activeTerminalNodeIds(state) {
|
|
238
|
+
return state.terminalNodeIds.length > 0 ? state.terminalNodeIds : [state.terminalNodeId];
|
|
239
|
+
}
|
|
240
|
+
function withTerminalNodes(state, terminalNodeIds) {
|
|
241
|
+
return {
|
|
242
|
+
...state,
|
|
243
|
+
terminalNodeId: terminalNodeIds.at(-1) ?? state.terminalNodeId,
|
|
244
|
+
terminalNodeIds
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
function graphNode(kind, label, index, options = {}) {
|
|
248
|
+
const id = uniqueGraphNodeId(
|
|
249
|
+
normalizeId(options.preferredId ?? `${kind}_${index}`),
|
|
250
|
+
options.existingIds ?? /* @__PURE__ */ new Set()
|
|
251
|
+
);
|
|
252
|
+
return {
|
|
253
|
+
id,
|
|
254
|
+
kind,
|
|
255
|
+
label,
|
|
256
|
+
...options.description === void 0 ? {} : { description: options.description },
|
|
257
|
+
...options.metadata === void 0 ? {} : { metadata: options.metadata },
|
|
258
|
+
...options.agentId === void 0 ? {} : { agentId: options.agentId },
|
|
259
|
+
...options.agentName === void 0 ? {} : { agentName: options.agentName },
|
|
260
|
+
...options.pipelineId === void 0 ? {} : { pipelineId: options.pipelineId },
|
|
261
|
+
...options.branchKey === void 0 ? {} : { branchKey: options.branchKey }
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
function withOutputNode(state) {
|
|
265
|
+
const graph = cloneGraph(state.graph);
|
|
266
|
+
if (graph.nodes.some((node) => node.id === "output")) {
|
|
267
|
+
return graph;
|
|
268
|
+
}
|
|
269
|
+
graph.nodes.push({ id: "output", kind: "output", label: "Output" });
|
|
270
|
+
graph.edges.push(
|
|
271
|
+
...activeTerminalNodeIds(state).map((sourceId, index) => ({
|
|
272
|
+
id: `edge_${state.nextEdgeIndex + index}`,
|
|
273
|
+
source: sourceId,
|
|
274
|
+
target: "output"
|
|
275
|
+
}))
|
|
276
|
+
);
|
|
277
|
+
return graph;
|
|
278
|
+
}
|
|
279
|
+
async function runNode(context, node, fn) {
|
|
280
|
+
const startedAt = Date.now();
|
|
281
|
+
await context.observer?.onEvent({ type: "stage_started", node });
|
|
282
|
+
try {
|
|
283
|
+
const output = await fn();
|
|
284
|
+
await context.observer?.onEvent({
|
|
285
|
+
type: "stage_completed",
|
|
286
|
+
node,
|
|
287
|
+
durationMs: Date.now() - startedAt
|
|
288
|
+
});
|
|
289
|
+
return output;
|
|
290
|
+
} catch (error) {
|
|
291
|
+
await context.observer?.onEvent({
|
|
292
|
+
type: "stage_failed",
|
|
293
|
+
node,
|
|
294
|
+
durationMs: Date.now() - startedAt,
|
|
295
|
+
error
|
|
296
|
+
});
|
|
297
|
+
throw error;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
function nextStageLabel(state, prefix) {
|
|
301
|
+
return `${prefix} ${state.nextNodeIndex}`;
|
|
302
|
+
}
|
|
303
|
+
function cloneGraph(graph) {
|
|
304
|
+
return {
|
|
305
|
+
...graph,
|
|
306
|
+
nodes: graph.nodes.map((node) => ({ ...node })),
|
|
307
|
+
edges: graph.edges.map((edge) => ({ ...edge }))
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
function normalizeId(value) {
|
|
311
|
+
const normalized = value.trim().toLowerCase().replace(/[^a-z0-9_-]+/g, "_").replace(/^_+|_+$/g, "");
|
|
312
|
+
return normalized.length === 0 ? "pipeline" : normalized;
|
|
313
|
+
}
|
|
314
|
+
function uniqueGraphNodeId(baseId, existingIds) {
|
|
315
|
+
let id = baseId;
|
|
316
|
+
let suffix = 2;
|
|
317
|
+
while (existingIds.has(id)) {
|
|
318
|
+
id = `${baseId}_${suffix}`;
|
|
319
|
+
suffix += 1;
|
|
320
|
+
}
|
|
321
|
+
return id;
|
|
322
|
+
}
|
|
323
|
+
function identity(input) {
|
|
324
|
+
return input;
|
|
325
|
+
}
|
|
326
|
+
async function mapWithConcurrency(inputs, concurrency, fn) {
|
|
327
|
+
const limit = Math.max(1, Math.trunc(concurrency));
|
|
328
|
+
const results = new Array(inputs.length);
|
|
329
|
+
let nextIndex = 0;
|
|
330
|
+
async function worker() {
|
|
331
|
+
while (nextIndex < inputs.length) {
|
|
332
|
+
const index = nextIndex;
|
|
333
|
+
nextIndex += 1;
|
|
334
|
+
results[index] = await fn(inputs[index]);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
await Promise.all(Array.from({ length: Math.min(limit, inputs.length) }, () => worker()));
|
|
338
|
+
return results;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
export {
|
|
342
|
+
Pipeline,
|
|
343
|
+
PipelineBuilder
|
|
344
|
+
};
|
|
345
|
+
//# sourceMappingURL=chunk-RTOGIJH2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/pipeline/index.ts"],"sourcesContent":["import type { Agent } from \"../agent\";\nimport type { CompletionModel, JsonObject } from \"../completion\";\nimport type { Extractor } from \"../extractor\";\n\n/** Minimal interface for anything that can run as a pipeline stage. */\nexport interface PipelineOp<Input = unknown, Output = unknown> {\n run(input: Input): Output | Promise<Output>;\n}\n\nexport interface PipelineBatchOptions {\n /** Maximum number of inputs processed at the same time. */\n concurrency: number;\n}\n\ntype AwaitedOutput<Op> = Op extends PipelineOp<unknown, infer Output> ? Awaited<Output> : never;\n\ntype ParallelOutput<Branches extends Record<string, PipelineOp<unknown, unknown>>> = {\n [Key in keyof Branches]: AwaitedOutput<Branches[Key]>;\n};\n\nexport type PipelineMetadata = {\n id?: string | undefined;\n name?: string | undefined;\n description?: string | undefined;\n metadata?: JsonObject | undefined;\n};\n\nexport type PipelineStageMetadata = {\n id?: string | undefined;\n name?: string | undefined;\n description?: string | undefined;\n metadata?: JsonObject | undefined;\n};\n\nexport type PipelineStageKind =\n | \"input\"\n | \"step\"\n | \"pipeline\"\n | \"parallel\"\n | \"branch\"\n | \"agent\"\n | \"extractor\"\n | \"output\";\n\nexport type PipelineGraphNode = {\n id: string;\n kind: PipelineStageKind;\n label: string;\n description?: string | undefined;\n metadata?: JsonObject | undefined;\n agentId?: string | undefined;\n agentName?: string | undefined;\n pipelineId?: string | undefined;\n branchKey?: string | undefined;\n};\n\nexport type PipelineGraphEdge = {\n id: string;\n source: string;\n target: string;\n label?: string | undefined;\n};\n\nexport type PipelineGraph = PipelineMetadata & {\n id: string;\n nodes: PipelineGraphNode[];\n edges: PipelineGraphEdge[];\n};\n\nexport type PipelineRunEvent =\n | {\n type: \"stage_started\";\n node: PipelineGraphNode;\n }\n | {\n type: \"stage_completed\";\n node: PipelineGraphNode;\n durationMs: number;\n }\n | {\n type: \"stage_failed\";\n node: PipelineGraphNode;\n durationMs: number;\n error: unknown;\n };\n\nexport type PipelineRunObserver = {\n onEvent(event: PipelineRunEvent): void | Promise<void>;\n};\n\nexport type PipelineRunOptions = {\n observer?: PipelineRunObserver | undefined;\n};\n\ntype PipelineRunContext = {\n observer?: PipelineRunObserver | undefined;\n};\n\ntype PipelineExecutor<Input, Output> = (\n input: Input,\n context: PipelineRunContext,\n) => Output | Promise<Output>;\n\ntype PipelineBuilderState = {\n graph: PipelineGraph;\n terminalNodeId: string;\n terminalNodeIds: string[];\n nextNodeIndex: number;\n nextEdgeIndex: number;\n};\n\n/** Runnable pipeline returned by `PipelineBuilder.build()`. */\nexport class Pipeline<Input, Output> implements PipelineOp<Input, Awaited<Output>> {\n readonly id: string;\n readonly name: string | undefined;\n readonly description: string | undefined;\n readonly metadata: JsonObject | undefined;\n\n constructor(\n private readonly executor: PipelineExecutor<Input, Output>,\n private readonly pipelineGraph: PipelineGraph = initialGraph({}),\n ) {\n this.id = pipelineGraph.id;\n this.name = pipelineGraph.name;\n this.description = pipelineGraph.description;\n this.metadata = pipelineGraph.metadata;\n }\n\n /** Run one input through the built pipeline and return the final stage output. */\n async run(input: Input, options: PipelineRunOptions = {}): Promise<Awaited<Output>> {\n return (await this.executor(input, { observer: options.observer })) as Awaited<Output>;\n }\n\n /** Run many inputs through the same pipeline with bounded concurrency. */\n async batch<I extends Iterable<Input>>(\n inputs: I,\n options: PipelineBatchOptions,\n ): Promise<Array<Awaited<Output>>> {\n return mapWithConcurrency([...inputs], options.concurrency, (input) => this.run(input));\n }\n\n graph(): PipelineGraph {\n return cloneGraph(this.pipelineGraph);\n }\n}\n\n/** Builds a typed pipeline from an original input type to an inferred output type. */\nexport class PipelineBuilder<Input, Output = Input> {\n private readonly executor: PipelineExecutor<Input, Output>;\n private readonly state: PipelineBuilderState;\n\n constructor();\n constructor(metadata: PipelineMetadata);\n constructor(executor: (input: Input) => Output | Promise<Output>);\n constructor(executor: PipelineExecutor<Input, Output>, state: PipelineBuilderState);\n constructor(\n metadataOrExecutor?:\n | PipelineMetadata\n | ((input: Input) => Output | Promise<Output>)\n | PipelineExecutor<Input, Output>,\n state?: PipelineBuilderState,\n ) {\n if (state !== undefined) {\n this.executor = metadataOrExecutor as PipelineExecutor<Input, Output>;\n this.state = state;\n return;\n }\n\n if (typeof metadataOrExecutor === \"function\") {\n const executor = metadataOrExecutor as (input: Input) => Output | Promise<Output>;\n this.executor = ((input) => executor(input)) as PipelineExecutor<Input, Output>;\n this.state = initialBuilderState({});\n return;\n }\n\n this.executor = identity as PipelineExecutor<Input, Output>;\n this.state = initialBuilderState(metadataOrExecutor ?? {});\n }\n\n /** Add a synchronous or asynchronous transform stage. */\n step<Next>(\n fn: (input: Awaited<Output>) => Next | Promise<Next>,\n metadata?: PipelineStageMetadata,\n ): PipelineBuilder<Input, Awaited<Next>> {\n const next = appendNode(\n this.state,\n \"step\",\n metadata?.name ?? nextStageLabel(this.state, \"Step\"),\n {\n description: metadata?.description,\n metadata: metadata?.metadata,\n preferredId: metadata?.id,\n },\n );\n return new PipelineBuilder<Input, Awaited<Next>>(\n async (input, context): Promise<Awaited<Next>> => {\n const value = await this.runStep(input, context);\n const result = await runNode(context, next.node, () => fn(value));\n return result as Awaited<Next>;\n },\n next.state,\n );\n }\n\n /** Compose another pipeline operation after the current stage. */\n use<Next>(\n op: PipelineOp<Awaited<Output>, Next>,\n metadata?: PipelineStageMetadata,\n ): PipelineBuilder<Input, Awaited<Next>> {\n const nested = op instanceof Pipeline ? op : undefined;\n const next = appendNode(\n this.state,\n nested === undefined ? \"step\" : \"pipeline\",\n metadata?.name ??\n nested?.name ??\n nested?.id ??\n nextStageLabel(this.state, nested === undefined ? \"Operation\" : \"Pipeline\"),\n {\n description: metadata?.description ?? nested?.description,\n metadata: metadata?.metadata ?? nested?.metadata,\n preferredId: metadata?.id,\n pipelineId: nested?.id,\n },\n );\n return new PipelineBuilder<Input, Awaited<Next>>(\n async (input, context): Promise<Awaited<Next>> => {\n const value = await this.runStep(input, context);\n const result = await runNode(context, next.node, () => op.run(value));\n return result as Awaited<Next>;\n },\n next.state,\n );\n }\n\n /** Run named branch operations concurrently from the current value. */\n parallel<Branches extends Record<string, PipelineOp<Awaited<Output>, unknown>>>(\n branches: Branches,\n metadata?: PipelineStageMetadata,\n ): PipelineBuilder<Input, ParallelOutput<Branches>> {\n const parallel = appendNode(\n this.state,\n \"parallel\",\n metadata?.name ?? `${Object.keys(branches).length} parallel branches`,\n {\n description: metadata?.description,\n metadata: metadata?.metadata,\n preferredId: metadata?.id,\n },\n );\n let nextState = parallel.state;\n const branchNodes: Record<string, PipelineGraphNode> = {};\n for (const key of Object.keys(branches)) {\n const branch = appendChildNode(nextState, parallel.node.id, \"branch\", key, {\n branchKey: key,\n });\n nextState = branch.state;\n branchNodes[key] = branch.node;\n }\n nextState = withTerminalNodes(\n nextState,\n Object.values(branchNodes).map((node) => node.id),\n );\n\n return new PipelineBuilder<Input, ParallelOutput<Branches>>(async (input, context) => {\n const value = await this.runStep(input, context);\n const entries = await runNode(context, parallel.node, () =>\n Promise.all(\n Object.entries(branches).map(async ([key, op]) => {\n const node = branchNodes[key] as PipelineGraphNode;\n const output = await runNode(context, node, () => op.run(value));\n return [key, output] as const;\n }),\n ),\n );\n return Object.fromEntries(entries) as ParallelOutput<Branches>;\n }, nextState);\n }\n\n /** Send the current value to an agent as text and continue with the agent output. */\n prompt(\n agent: Agent<CompletionModel>,\n metadata?: PipelineStageMetadata,\n ): PipelineBuilder<Input, string> {\n const next = appendNode(this.state, \"agent\", metadata?.name ?? agent.name ?? agent.id, {\n description: metadata?.description ?? agent.description,\n metadata: metadata?.metadata,\n preferredId: metadata?.id,\n agentId: agent.id,\n agentName: agent.name,\n });\n return new PipelineBuilder<Input, string>(async (input, context) => {\n const value = await this.runStep(input, context);\n return runNode(context, next.node, async () => {\n const response = await agent.prompt(String(value)).send();\n return response.output;\n });\n }, next.state);\n }\n\n /** Send the current value to an extractor as text and continue with typed schema data. */\n extract<T>(\n extractor: Extractor<T, CompletionModel>,\n metadata?: PipelineStageMetadata,\n ): PipelineBuilder<Input, T> {\n const next = appendNode(\n this.state,\n \"extractor\",\n metadata?.name ?? nextStageLabel(this.state, \"Extractor\"),\n {\n description: metadata?.description,\n metadata: metadata?.metadata,\n preferredId: metadata?.id,\n },\n );\n return new PipelineBuilder<Input, T>(async (input, context) => {\n const value = await this.runStep(input, context);\n return runNode(context, next.node, () => extractor.extract(String(value)));\n }, next.state);\n }\n\n /** Finish the builder and return a runnable pipeline. */\n build(): Pipeline<Input, Awaited<Output>> {\n const graph = withOutputNode(this.state);\n return new Pipeline<Input, Awaited<Output>>(\n (input, context) => this.runStep(input, context) as Promise<Awaited<Output>>,\n graph,\n );\n }\n\n private async runStep(input: Input, context: PipelineRunContext): Promise<Awaited<Output>> {\n return (await this.executor(input, context)) as Awaited<Output>;\n }\n}\n\nfunction initialBuilderState(metadata: PipelineMetadata): PipelineBuilderState {\n return {\n graph: initialGraph(metadata),\n terminalNodeId: \"input\",\n terminalNodeIds: [\"input\"],\n nextNodeIndex: 1,\n nextEdgeIndex: 1,\n };\n}\n\nfunction initialGraph(metadata: PipelineMetadata): PipelineGraph {\n const id = normalizeId(metadata.id ?? \"pipeline\");\n return {\n id,\n ...(metadata.name === undefined ? {} : { name: metadata.name }),\n ...(metadata.description === undefined ? {} : { description: metadata.description }),\n ...(metadata.metadata === undefined ? {} : { metadata: metadata.metadata }),\n nodes: [{ id: \"input\", kind: \"input\", label: \"Input\" }],\n edges: [],\n };\n}\n\nfunction appendNode(\n state: PipelineBuilderState,\n kind: PipelineStageKind,\n label: string,\n options: {\n description?: string | undefined;\n metadata?: JsonObject | undefined;\n preferredId?: string | undefined;\n agentId?: string | undefined;\n agentName?: string | undefined;\n pipelineId?: string | undefined;\n } = {},\n): { state: PipelineBuilderState; node: PipelineGraphNode } {\n const node = graphNode(kind, label, state.nextNodeIndex, {\n ...options,\n existingIds: new Set(state.graph.nodes.map((item) => item.id)),\n });\n return {\n node,\n state: appendGraphNode(state, node, activeTerminalNodeIds(state), [node.id]),\n };\n}\n\nfunction appendChildNode(\n state: PipelineBuilderState,\n parentId: string,\n kind: PipelineStageKind,\n label: string,\n options: {\n branchKey?: string | undefined;\n } = {},\n): { state: PipelineBuilderState; node: PipelineGraphNode } {\n const node = graphNode(kind, label, state.nextNodeIndex, {\n ...options,\n existingIds: new Set(state.graph.nodes.map((item) => item.id)),\n });\n return {\n node,\n state: appendGraphNode(state, node, [parentId], activeTerminalNodeIds(state)),\n };\n}\n\nfunction appendGraphNode(\n state: PipelineBuilderState,\n node: PipelineGraphNode,\n sourceIds: string[],\n terminalNodeIds: string[],\n): PipelineBuilderState {\n const edges = sourceIds.map((sourceId, index) => ({\n id: `edge_${state.nextEdgeIndex + index}`,\n source: sourceId,\n target: node.id,\n }));\n const terminalNodeId = terminalNodeIds.at(-1) ?? state.terminalNodeId;\n return {\n graph: {\n ...state.graph,\n nodes: [...state.graph.nodes, node],\n edges: [...state.graph.edges, ...edges],\n },\n terminalNodeId,\n terminalNodeIds,\n nextNodeIndex: state.nextNodeIndex + 1,\n nextEdgeIndex: state.nextEdgeIndex + edges.length,\n };\n}\n\nfunction activeTerminalNodeIds(state: PipelineBuilderState): string[] {\n return state.terminalNodeIds.length > 0 ? state.terminalNodeIds : [state.terminalNodeId];\n}\n\nfunction withTerminalNodes(\n state: PipelineBuilderState,\n terminalNodeIds: string[],\n): PipelineBuilderState {\n return {\n ...state,\n terminalNodeId: terminalNodeIds.at(-1) ?? state.terminalNodeId,\n terminalNodeIds,\n };\n}\n\nfunction graphNode(\n kind: PipelineStageKind,\n label: string,\n index: number,\n options: {\n description?: string | undefined;\n metadata?: JsonObject | undefined;\n preferredId?: string | undefined;\n agentId?: string | undefined;\n agentName?: string | undefined;\n pipelineId?: string | undefined;\n branchKey?: string | undefined;\n existingIds?: Set<string> | undefined;\n } = {},\n): PipelineGraphNode {\n const id = uniqueGraphNodeId(\n normalizeId(options.preferredId ?? `${kind}_${index}`),\n options.existingIds ?? new Set(),\n );\n return {\n id,\n kind,\n label,\n ...(options.description === undefined ? {} : { description: options.description }),\n ...(options.metadata === undefined ? {} : { metadata: options.metadata }),\n ...(options.agentId === undefined ? {} : { agentId: options.agentId }),\n ...(options.agentName === undefined ? {} : { agentName: options.agentName }),\n ...(options.pipelineId === undefined ? {} : { pipelineId: options.pipelineId }),\n ...(options.branchKey === undefined ? {} : { branchKey: options.branchKey }),\n };\n}\n\nfunction withOutputNode(state: PipelineBuilderState): PipelineGraph {\n const graph = cloneGraph(state.graph);\n if (graph.nodes.some((node) => node.id === \"output\")) {\n return graph;\n }\n graph.nodes.push({ id: \"output\", kind: \"output\", label: \"Output\" });\n graph.edges.push(\n ...activeTerminalNodeIds(state).map((sourceId, index) => ({\n id: `edge_${state.nextEdgeIndex + index}`,\n source: sourceId,\n target: \"output\",\n })),\n );\n return graph;\n}\n\nasync function runNode<Output>(\n context: PipelineRunContext,\n node: PipelineGraphNode,\n fn: () => Output | Promise<Output>,\n): Promise<Awaited<Output>> {\n const startedAt = Date.now();\n await context.observer?.onEvent({ type: \"stage_started\", node });\n try {\n const output = (await fn()) as Awaited<Output>;\n await context.observer?.onEvent({\n type: \"stage_completed\",\n node,\n durationMs: Date.now() - startedAt,\n });\n return output;\n } catch (error) {\n await context.observer?.onEvent({\n type: \"stage_failed\",\n node,\n durationMs: Date.now() - startedAt,\n error,\n });\n throw error;\n }\n}\n\nfunction nextStageLabel(state: PipelineBuilderState, prefix: string): string {\n return `${prefix} ${state.nextNodeIndex}`;\n}\n\nfunction cloneGraph(graph: PipelineGraph): PipelineGraph {\n return {\n ...graph,\n nodes: graph.nodes.map((node) => ({ ...node })),\n edges: graph.edges.map((edge) => ({ ...edge })),\n };\n}\n\nfunction normalizeId(value: string): string {\n const normalized = value\n .trim()\n .toLowerCase()\n .replace(/[^a-z0-9_-]+/g, \"_\")\n .replace(/^_+|_+$/g, \"\");\n return normalized.length === 0 ? \"pipeline\" : normalized;\n}\n\nfunction uniqueGraphNodeId(baseId: string, existingIds: Set<string>): string {\n let id = baseId;\n let suffix = 2;\n while (existingIds.has(id)) {\n id = `${baseId}_${suffix}`;\n suffix += 1;\n }\n return id;\n}\n\nfunction identity<T>(input: T): T {\n return input;\n}\n\nasync function mapWithConcurrency<Input, Output>(\n inputs: Input[],\n concurrency: number,\n fn: (input: Input) => Promise<Output>,\n): Promise<Output[]> {\n const limit = Math.max(1, Math.trunc(concurrency));\n const results = new Array<Output>(inputs.length);\n let nextIndex = 0;\n\n async function worker(): Promise<void> {\n while (nextIndex < inputs.length) {\n const index = nextIndex;\n nextIndex += 1;\n results[index] = await fn(inputs[index] as Input);\n }\n }\n\n await Promise.all(Array.from({ length: Math.min(limit, inputs.length) }, () => worker()));\n return results;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
InMemoryVectorStore
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-4F7RVGFR.js";
|
|
4
4
|
import {
|
|
5
5
|
ToolSet
|
|
6
6
|
} from "./chunk-3H7FVGHU.js";
|
|
@@ -54,9 +54,13 @@ var DynamicToolSearchIndex = class {
|
|
|
54
54
|
constructor(index, toolSet) {
|
|
55
55
|
this.index = index;
|
|
56
56
|
this.toolSet = toolSet;
|
|
57
|
+
if (index.inspect !== void 0) {
|
|
58
|
+
this.inspect = (request) => index.inspect?.(request);
|
|
59
|
+
}
|
|
57
60
|
}
|
|
58
61
|
index;
|
|
59
62
|
toolSet;
|
|
63
|
+
inspect;
|
|
60
64
|
search(request) {
|
|
61
65
|
return this.index.search(request);
|
|
62
66
|
}
|
|
@@ -99,4 +103,4 @@ export {
|
|
|
99
103
|
createToolMiddleware,
|
|
100
104
|
createThinkTool
|
|
101
105
|
};
|
|
102
|
-
//# sourceMappingURL=chunk-
|
|
106
|
+
//# sourceMappingURL=chunk-V5EETE3U.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/tool/dynamic-tools.ts","../src/tool/middleware.ts","../src/tool/think-tool.ts"],"sourcesContent":["import type { ToolDefinition } from \"../completion\";\nimport type { EmbeddedDocument, EmbeddingModel, VectorMetadata } from \"../embeddings\";\nimport { embedDocuments } from \"../embeddings\";\nimport type {\n VectorInspectPage,\n VectorInspectRequest,\n VectorSearchResult,\n VectorSearchToolOptions,\n} from \"../vector-store\";\nimport {\n InMemoryVectorStore,\n type VectorSearchIndex,\n type VectorSearchRequest,\n} from \"../vector-store\";\nimport type { AnyTool, Tool } from \"./tool\";\nimport { ToolSet } from \"./tool-set\";\n\nexport type ToolSearchDocument<Metadata extends VectorMetadata = VectorMetadata> = {\n toolName: string;\n definition: ToolDefinition;\n text: string;\n metadata?: Metadata | undefined;\n};\n\nexport type EmbedToolsOptions<Metadata extends VectorMetadata = VectorMetadata> = {\n content?: ((tool: AnyTool, definition: ToolDefinition) => string | string[]) | undefined;\n metadata?: ((tool: AnyTool, definition: ToolDefinition) => Metadata | undefined) | undefined;\n concurrency?: number | undefined;\n};\n\nexport interface DynamicToolIndex<Metadata extends VectorMetadata = VectorMetadata>\n extends VectorSearchIndex<ToolSearchDocument<Metadata>, Metadata> {\n readonly toolSet: ToolSet;\n}\n\nexport async function embedTools<Metadata extends VectorMetadata = VectorMetadata>(\n model: EmbeddingModel,\n tools: AnyTool[] | ToolSet,\n options: EmbedToolsOptions<Metadata> = {},\n): Promise<Array<EmbeddedDocument<ToolSearchDocument<Metadata>, Metadata>>> {\n const toolList = Array.isArray(tools) ? tools : tools.values();\n const definitions = await Promise.all(\n toolList.map(async (tool) => ({ tool, definition: await tool.definition(\"\") })),\n );\n const documents = definitions.map(({ tool, definition }) => {\n const content = options.content?.(tool, definition) ?? defaultToolEmbeddingText(definition);\n const texts = Array.isArray(content) ? content : [content];\n const metadata = options.metadata?.(tool, definition);\n const document: ToolSearchDocument<Metadata> = {\n toolName: tool.name,\n definition,\n text: texts.join(\"\\n\"),\n ...(metadata === undefined ? {} : { metadata }),\n };\n return { tool, document, texts, metadata };\n });\n\n return embedDocuments(model, documents, {\n id: (item) => item.tool.name,\n content: (item) => item.texts,\n metadata: (item) => item.metadata,\n concurrency: options.concurrency,\n }).then((embedded) =>\n embedded.map((item) => ({\n ...item,\n document: item.document.document,\n })),\n );\n}\n\nexport async function createToolIndex<Metadata extends VectorMetadata = VectorMetadata>(\n model: EmbeddingModel,\n tools: AnyTool[] | ToolSet,\n options: EmbedToolsOptions<Metadata> = {},\n): Promise<DynamicToolIndex<Metadata>> {\n const toolSet = Array.isArray(tools) ? ToolSet.fromTools(tools) : tools;\n const embedded = await embedTools(model, toolSet, options);\n const index = InMemoryVectorStore.fromDocuments(embedded).index(model);\n return new DynamicToolSearchIndex(index, toolSet);\n}\n\nexport function isDynamicToolIndex(value: unknown): value is DynamicToolIndex {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"toolSet\" in value &&\n (value as { toolSet?: unknown }).toolSet instanceof ToolSet\n );\n}\n\nclass DynamicToolSearchIndex<Metadata extends VectorMetadata>\n implements DynamicToolIndex<Metadata>\n{\n readonly inspect?: (\n request: VectorInspectRequest,\n ) => Promise<VectorInspectPage<ToolSearchDocument<Metadata>, Metadata>>;\n\n constructor(\n private readonly index: VectorSearchIndex<ToolSearchDocument<Metadata>, Metadata>,\n readonly toolSet: ToolSet,\n ) {\n if (index.inspect !== undefined) {\n this.inspect = (request) =>\n index.inspect?.(request) as Promise<\n VectorInspectPage<ToolSearchDocument<Metadata>, Metadata>\n >;\n }\n }\n\n search(\n request: VectorSearchRequest,\n ): Promise<Array<VectorSearchResult<ToolSearchDocument<Metadata>, Metadata>>> {\n return this.index.search(request);\n }\n\n searchIds(request: VectorSearchRequest): Promise<Array<{ score: number; id: string }>> {\n return this.index.searchIds(request);\n }\n\n asTool(options: VectorSearchToolOptions): Tool<{ query: string; topK?: number }, unknown> {\n return this.index.asTool(options);\n }\n}\n\nfunction defaultToolEmbeddingText(definition: ToolDefinition): string[] {\n return [definition.name, definition.description, JSON.stringify(definition.parameters)];\n}\n","export type ToolResultMiddlewareArgs = {\n toolName: string;\n args: string;\n result: string;\n originalResult: string;\n turn: number;\n toolCallId?: string | undefined;\n internalCallId: string;\n};\n\nexport interface ToolMiddleware {\n onResult?(args: ToolResultMiddlewareArgs): string | undefined | Promise<string | undefined>;\n}\n\nexport function createToolMiddleware(middleware: ToolMiddleware): ToolMiddleware {\n return middleware;\n}\n","import { z } from \"zod\";\nimport { createTool } from \"./create-tool\";\n\nconst defaultThinkToolDescription =\n \"Use this tool to record a thought while reasoning through a complex task. It does not retrieve information, store memory, or change external state.\";\n\nconst thinkToolInput = z.object({\n thought: z.string().describe(\"A thought to record while reasoning through a task.\"),\n});\n\nexport type CreateThinkToolOptions = {\n name?: string;\n description?: string;\n};\n\nexport function createThinkTool(options: CreateThinkToolOptions = {}) {\n return createTool({\n name: options.name ?? \"think\",\n description: options.description ?? defaultThinkToolDescription,\n input: thinkToolInput,\n output: z.string(),\n execute: (args) => args.thought,\n });\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { D as Document, M as Message, b as CompletionModel, q as ToolDefinition, o as ToolChoice, j as JsonValue, J as JsonObject, d as CompletionRequest, e as CompletionResponse } from '../types-
|
|
2
|
-
export { A as AssistantContent, a as AssistantMessage, C as CompletionCapabilityError, c as CompletionModelCapabilities, f as CompletionStreamEvent, g as DocumentContent, I as ImageContent, h as ImageDetail, i as JsonPrimitive, R as Reasoning, k as ReasoningContent, l as ReasoningContentType, S as StreamingCompletionModel, m as SystemMessage, T as Text, n as ToolCall, p as ToolContent, r as ToolFunction, s as ToolMessage, t as ToolResult, u as ToolResultContent, U as Usage, v as UserContent, w as UserMessage, x as assertCompletionRequestSupported, y as reasoningDisplayText, z as textFromAssistantContent } from '../types-
|
|
1
|
+
import { D as Document, M as Message, b as CompletionModel, q as ToolDefinition, o as ToolChoice, j as JsonValue, J as JsonObject, d as CompletionRequest, e as CompletionResponse } from '../types-BM8-Y8Hy.js';
|
|
2
|
+
export { A as AssistantContent, a as AssistantMessage, C as CompletionCapabilityError, c as CompletionModelCapabilities, f as CompletionStreamEvent, g as DocumentContent, I as ImageContent, h as ImageDetail, i as JsonPrimitive, R as Reasoning, k as ReasoningContent, l as ReasoningContentType, S as StreamingCompletionModel, m as SystemMessage, T as Text, n as ToolCall, p as ToolContent, r as ToolFunction, s as ToolMessage, t as ToolResult, u as ToolResultContent, U as Usage, v as UserContent, w as UserMessage, x as assertCompletionRequestSupported, y as reasoningDisplayText, z as textFromAssistantContent } from '../types-BM8-Y8Hy.js';
|
|
3
3
|
|
|
4
4
|
declare function normalizeDocuments(documents: Document[]): Message | undefined;
|
|
5
5
|
declare function formatDocument(document: Document): string;
|
package/dist/completion/index.js
CHANGED
package/dist/evals/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { j as JsonValue, M as Message, b as CompletionModel } from '../types-
|
|
2
|
-
import { s as PromptResponse, A as Agent } from '../agent-
|
|
3
|
-
import { Z as ZodSchema } from '../middleware-
|
|
1
|
+
import { j as JsonValue, M as Message, b as CompletionModel } from '../types-BM8-Y8Hy.js';
|
|
2
|
+
import { s as PromptResponse, A as Agent } from '../agent-ufaeGoaz.js';
|
|
3
|
+
import { Z as ZodSchema } from '../middleware-CKsY_zZE.js';
|
|
4
4
|
import { EmbeddingModel } from '../embeddings/index.js';
|
|
5
5
|
import '../memory/index.js';
|
|
6
6
|
import '../observability/index.js';
|
|
7
|
-
import '../tool-
|
|
7
|
+
import '../tool-FEHplpd9.js';
|
|
8
8
|
import '../vector-store/index.js';
|
|
9
9
|
import 'zod';
|
|
10
10
|
|
package/dist/evals/index.js
CHANGED
|
@@ -7,18 +7,18 @@ import {
|
|
|
7
7
|
llmScore,
|
|
8
8
|
runEvalSuite,
|
|
9
9
|
semanticSimilarity
|
|
10
|
-
} from "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
10
|
+
} from "../chunk-QAPEP4ON.js";
|
|
11
|
+
import "../chunk-QSIIO4YN.js";
|
|
12
|
+
import "../chunk-V5EETE3U.js";
|
|
13
|
+
import "../chunk-4F7RVGFR.js";
|
|
14
|
+
import "../chunk-DO4XW2ZB.js";
|
|
15
15
|
import "../chunk-XXT2UCAR.js";
|
|
16
16
|
import "../chunk-YK4WAAS4.js";
|
|
17
17
|
import "../chunk-3H7FVGHU.js";
|
|
18
18
|
import "../chunk-445TT5Q5.js";
|
|
19
19
|
import "../chunk-XUUY2L2D.js";
|
|
20
|
+
import "../chunk-6GJDBBDC.js";
|
|
20
21
|
import "../chunk-A7VDIZQN.js";
|
|
21
|
-
import "../chunk-CP47FBJV.js";
|
|
22
22
|
export {
|
|
23
23
|
EvalOutcome,
|
|
24
24
|
agentEvalTarget,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { U as Usage, M as Message, b as CompletionModel, j as JsonValue, o as ToolChoice } from '../types-
|
|
2
|
-
import { A as Agent } from '../agent-
|
|
3
|
-
import { Z as ZodSchema } from '../middleware-
|
|
1
|
+
import { U as Usage, M as Message, b as CompletionModel, j as JsonValue, o as ToolChoice } from '../types-BM8-Y8Hy.js';
|
|
2
|
+
import { A as Agent } from '../agent-ufaeGoaz.js';
|
|
3
|
+
import { Z as ZodSchema } from '../middleware-CKsY_zZE.js';
|
|
4
4
|
import '../memory/index.js';
|
|
5
5
|
import '../observability/index.js';
|
|
6
|
-
import '../tool-
|
|
6
|
+
import '../tool-FEHplpd9.js';
|
|
7
7
|
import '../vector-store/index.js';
|
|
8
8
|
import '../embeddings/index.js';
|
|
9
9
|
import 'zod';
|
package/dist/extractor/index.js
CHANGED
|
@@ -2,17 +2,17 @@ import {
|
|
|
2
2
|
ExtractionError,
|
|
3
3
|
Extractor,
|
|
4
4
|
ExtractorBuilder
|
|
5
|
-
} from "../chunk-
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
5
|
+
} from "../chunk-QSIIO4YN.js";
|
|
6
|
+
import "../chunk-V5EETE3U.js";
|
|
7
|
+
import "../chunk-4F7RVGFR.js";
|
|
8
|
+
import "../chunk-DO4XW2ZB.js";
|
|
9
9
|
import "../chunk-XXT2UCAR.js";
|
|
10
10
|
import "../chunk-YK4WAAS4.js";
|
|
11
11
|
import "../chunk-3H7FVGHU.js";
|
|
12
12
|
import "../chunk-445TT5Q5.js";
|
|
13
13
|
import "../chunk-XUUY2L2D.js";
|
|
14
|
+
import "../chunk-6GJDBBDC.js";
|
|
14
15
|
import "../chunk-A7VDIZQN.js";
|
|
15
|
-
import "../chunk-CP47FBJV.js";
|
|
16
16
|
export {
|
|
17
17
|
ExtractionError,
|
|
18
18
|
Extractor,
|
package/dist/index.d.ts
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
export { MemoryAppendInput, MemoryContext, MemoryErrorInput, MemoryOptions, MemoryRegistration, MemorySavePolicy, MemoryStore, ResolvedMemoryOptions, SessionOptions, resolveMemoryOptions } from './memory/index.js';
|
|
2
|
-
export { A as Agent, a as AgentChildStreamEvent, b as AgentEventAppendInput, c as AgentEventRecord, d as AgentEventStore, e as AgentEventStoreInclude, f as AgentEventStoreOptions, g as AgentEventStoreRegistration, h as AgentOptions, i as AgentSession, j as AgentStreamEvent, k as AgentToolOptions, C as CompletionCallHookArgs, l as CompletionResponseHookArgs, D as DEFAULT_MAX_TURNS, m as DynamicContextOptions, n as DynamicContextRegistration, o as DynamicToolOptions, p as DynamicToolRegistration, H as HookAction, q as HookResult, P as PromptHook, r as PromptRequest, s as PromptResponse, R as RunControl, T as
|
|
2
|
+
export { A as Agent, a as AgentChildStreamEvent, b as AgentEventAppendInput, c as AgentEventRecord, d as AgentEventStore, e as AgentEventStoreInclude, f as AgentEventStoreOptions, g as AgentEventStoreRegistration, h as AgentOptions, i as AgentSession, j as AgentStreamEvent, k as AgentToolOptions, C as CompletionCallHookArgs, l as CompletionResponseHookArgs, D as DEFAULT_MAX_TURNS, m as DynamicContextOptions, n as DynamicContextRegistration, o as DynamicToolOptions, p as DynamicToolRegistration, H as HookAction, q as HookResult, P as PromptHook, r as PromptRequest, s as PromptResponse, R as RunControl, T as ToolApprovalRequestOptions, t as ToolCallControl, u as ToolCallHookAction, v as ToolCallHookArgs, w as ToolCallHookResult, x as ToolHookArgs, y as ToolResultHookArgs, z as cancelPrompt, B as createHook, E as requestToolApproval, F as runControl, G as skipTool, I as toolCallControl } from './agent-ufaeGoaz.js';
|
|
3
3
|
export { AgentBuilder, MaxTurnsError, PromptCancelledError } from './agent/index.js';
|
|
4
4
|
export { AudioGenerationModel, AudioGenerationRequest, AudioGenerationRequestBuilder, AudioGenerationResponse, audioGenerationRequest } from './audio-generation/index.js';
|
|
5
5
|
export { CompletionRequestBuilder, formatDocument, normalizeDocuments } from './completion/index.js';
|
|
6
|
-
export { A as AssistantContent, a as AssistantMessage, C as CompletionCapabilityError, b as CompletionModel, c as CompletionModelCapabilities, d as CompletionRequest, e as CompletionResponse, f as CompletionStreamEvent, D as Document, g as DocumentContent, I as ImageContent, h as ImageDetail, J as JsonObject, i as JsonPrimitive, j as JsonValue, M as Message, R as Reasoning, k as ReasoningContent, l as ReasoningContentType, S as StreamingCompletionModel, m as SystemMessage, T as Text, n as ToolCall, o as ToolChoice, p as ToolContent, q as ToolDefinition, r as ToolFunction, s as ToolMessage, t as ToolResult, u as ToolResultContent, U as Usage, v as UserContent, w as UserMessage, x as assertCompletionRequestSupported, y as reasoningDisplayText, z as textFromAssistantContent } from './types-
|
|
6
|
+
export { A as AssistantContent, a as AssistantMessage, C as CompletionCapabilityError, b as CompletionModel, c as CompletionModelCapabilities, d as CompletionRequest, e as CompletionResponse, f as CompletionStreamEvent, D as Document, g as DocumentContent, I as ImageContent, h as ImageDetail, J as JsonObject, i as JsonPrimitive, j as JsonValue, M as Message, R as Reasoning, k as ReasoningContent, l as ReasoningContentType, S as StreamingCompletionModel, m as SystemMessage, T as Text, n as ToolCall, o as ToolChoice, p as ToolContent, q as ToolDefinition, r as ToolFunction, s as ToolMessage, t as ToolResult, u as ToolResultContent, U as Usage, v as UserContent, w as UserMessage, x as assertCompletionRequestSupported, y as reasoningDisplayText, z as textFromAssistantContent } from './types-BM8-Y8Hy.js';
|
|
7
7
|
export { EmbedDocumentsOptions, EmbeddedDocument, Embedding, EmbeddingModel, VectorMetadata, VectorMetadataValue, angularDistance, chebyshevDistance, cosineSimilarity, dotProduct, embedDocuments, embedText, embedTexts, euclideanDistance, manhattanDistance } from './embeddings/index.js';
|
|
8
8
|
export { AgentEvalTargetOptions, ContainsOptions, EvalCase, EvalCaseResult, EvalMetadata, EvalMetric, EvalMetricArgs, EvalMetricResult, EvalOutcome, EvalOutcomeStatus, EvalReportArgs, EvalReporter, EvalSuiteResult, EvalTarget, ExactMatchOptions, LlmJudgeOptions, LlmScoreMetricScore, LlmScoreOptions, RunEvalSuiteOptions, SelectorOrValue, SemanticSimilarityOptions, ValueSelector, agentEvalTarget, contains, exactMatch, llmJudge, llmScore, runEvalSuite, semanticSimilarity } from './evals/index.js';
|
|
9
9
|
export { ExtractionError, ExtractionResponse, Extractor, ExtractorBuilder } from './extractor/index.js';
|
|
10
10
|
export { GeneratedImage, ImageGenerationModel, ImageGenerationRequest, ImageGenerationRequestBuilder, ImageGenerationResponse, imageGenerationRequest } from './image-generation/index.js';
|
|
11
11
|
export { connectMcp, mcp } from './mcp/index.js';
|
|
12
|
-
export { M as McpClient, a as McpConnection, b as McpHttpOptions, c as McpServer, d as McpStdioOptions, e as McpToolCallContent, f as McpToolCallResult, g as McpToolDefinition } from './types-
|
|
12
|
+
export { M as McpClient, a as McpConnection, b as McpHttpOptions, c as McpServer, d as McpStdioOptions, e as McpToolCallContent, f as McpToolCallResult, g as McpToolDefinition } from './types-DNHlpDG_.js';
|
|
13
13
|
export { ListedModel, ModelList, ModelListingClient, ModelListingError } from './model-listing/index.js';
|
|
14
14
|
export { AgentGenerationEndArgs, AgentGenerationErrorArgs, AgentGenerationObserver, AgentGenerationStartArgs, AgentObserver, AgentObserverRegistration, AgentRunEndArgs, AgentRunErrorArgs, AgentRunObserver, AgentRunStartArgs, AgentToolEndArgs, AgentToolErrorArgs, AgentToolObserver, AgentToolStartArgs, AgentToolStreamEventArgs, AgentTraceInfo, AgentTraceOptions, ObserveOptions, createObserver } from './observability/index.js';
|
|
15
|
-
export { Pipeline, PipelineBatchOptions, PipelineBuilder, PipelineOp } from './pipeline/index.js';
|
|
16
|
-
export { D as DynamicToolIndex, E as EmbedToolsOptions, T as ToolMiddleware, a as ToolResultMiddlewareArgs, b as ToolSearchDocument, c as ToolSet, Z as ZodSchema, d as createToolIndex, e as createToolMiddleware, f as embedTools, i as isDynamicToolIndex } from './middleware-
|
|
15
|
+
export { Pipeline, PipelineBatchOptions, PipelineBuilder, PipelineGraph, PipelineGraphEdge, PipelineGraphNode, PipelineMetadata, PipelineOp, PipelineRunEvent, PipelineRunObserver, PipelineRunOptions, PipelineStageKind, PipelineStageMetadata } from './pipeline/index.js';
|
|
16
|
+
export { D as DynamicToolIndex, E as EmbedToolsOptions, T as ToolMiddleware, a as ToolResultMiddlewareArgs, b as ToolSearchDocument, c as ToolSet, Z as ZodSchema, d as createToolIndex, e as createToolMiddleware, f as embedTools, i as isDynamicToolIndex } from './middleware-CKsY_zZE.js';
|
|
17
17
|
export { loadSkills, skill } from './skills/index.js';
|
|
18
|
-
export { S as Skill, a as SkillLoader, b as SkillSet, c as SkillValidationError, d as SkillValidationIssue } from './types-
|
|
18
|
+
export { S as Skill, a as SkillLoader, b as SkillSet, c as SkillValidationError, d as SkillValidationIssue } from './types-CW3K1MJm.js';
|
|
19
19
|
export { ReadableStreamOptions, toReadableStream } from './streaming/index.js';
|
|
20
20
|
export { CreateThinkToolOptions, CreateToolOptions, ToolCallError, ToolJsonError, ToolNotFoundError, createThinkTool, createTool } from './tool/index.js';
|
|
21
|
-
export { A as AnyTool, T as Tool, a as ToolApprovalContext, b as ToolApprovalPolicy, c as ToolApprovalRunContext, d as ToolCallContext, e as ToolCallStreamEvent, p as parseToolArgs, s as serializeToolOutput } from './tool-
|
|
21
|
+
export { A as AnyTool, T as Tool, a as ToolApprovalContext, b as ToolApprovalPolicy, c as ToolApprovalRunContext, d as ToolCallContext, e as ToolCallStreamEvent, p as parseToolArgs, s as serializeToolOutput } from './tool-FEHplpd9.js';
|
|
22
22
|
export { TranscriptionModel, TranscriptionRequest, TranscriptionRequestBuilder, TranscriptionResponse, transcriptionRequest } from './transcription/index.js';
|
|
23
|
-
export { InMemoryVectorIndex, InMemoryVectorStore, IndexStrategy, VectorFilter, VectorSearchIndex, VectorSearchRequest, VectorSearchResult, VectorSearchToolOptions, createVectorSearchTool, vectorFilter } from './vector-store/index.js';
|
|
23
|
+
export { InMemoryVectorIndex, InMemoryVectorStore, IndexStrategy, VectorFilter, VectorInspectItem, VectorInspectPage, VectorInspectRequest, VectorSearchIndex, VectorSearchRequest, VectorSearchResult, VectorSearchToolOptions, createVectorSearchTool, vectorFilter } from './vector-store/index.js';
|
|
24
24
|
import '@modelcontextprotocol/sdk/client/stdio.js';
|
|
25
25
|
import '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
26
26
|
import 'zod';
|