@anvia/core 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +63 -0
  2. package/dist/agent/index.d.ts +3 -3
  3. package/dist/agent/index.js +6 -4
  4. package/dist/{agent-DYfzP-n5.d.ts → agent-fvQIBLBk.d.ts} +1 -1
  5. package/dist/{chunk-AR2K73CJ.js → chunk-34EDX4ZL.js} +4 -83
  6. package/dist/chunk-34EDX4ZL.js.map +1 -0
  7. package/dist/chunk-4EWTDOLR.js +412 -0
  8. package/dist/chunk-4EWTDOLR.js.map +1 -0
  9. package/dist/chunk-KSKST3KP.js +86 -0
  10. package/dist/chunk-KSKST3KP.js.map +1 -0
  11. package/dist/{chunk-YFJ4NHV6.js → chunk-LZD36ZAP.js} +86 -1
  12. package/dist/chunk-LZD36ZAP.js.map +1 -0
  13. package/dist/{chunk-PH6OTIPZ.js → chunk-NMVCGWQY.js} +4 -4
  14. package/dist/{chunk-EO2GECYH.js → chunk-OIB3URVG.js} +2 -2
  15. package/dist/{chunk-IWJK7JB5.js → chunk-VSTJNHOZ.js} +2 -2
  16. package/dist/documents/index.d.ts +2 -0
  17. package/dist/documents/index.js +6 -335
  18. package/dist/documents/index.js.map +1 -1
  19. package/dist/evals/index.d.ts +1 -1
  20. package/dist/index.d.ts +2 -2
  21. package/dist/index.js +7 -5
  22. package/dist/internal/agent.d.ts +2 -2
  23. package/dist/internal/agent.js +6 -4
  24. package/dist/internal/agent.js.map +1 -1
  25. package/dist/observability/index.d.ts +1 -1
  26. package/dist/observability/index.js +2 -1
  27. package/dist/pipeline/index.d.ts +76 -3
  28. package/dist/pipeline/index.js +268 -27
  29. package/dist/pipeline/index.js.map +1 -1
  30. package/dist/skills/index.js +4 -3
  31. package/dist/text-document-B-X7Vxq1.d.ts +32 -0
  32. package/dist/tool/index.js +3 -2
  33. package/dist/{types-BUEZMBhO.d.ts → types-ChH_bdtR.d.ts} +1 -0
  34. package/dist/vector-store/index.d.ts +25 -5
  35. package/dist/vector-store/index.js +6 -1
  36. package/package.json +1 -1
  37. package/dist/chunk-AR2K73CJ.js.map +0 -1
  38. package/dist/chunk-YFJ4NHV6.js.map +0 -1
  39. /package/dist/{chunk-PH6OTIPZ.js.map → chunk-NMVCGWQY.js.map} +0 -0
  40. /package/dist/{chunk-EO2GECYH.js.map → chunk-OIB3URVG.js.map} +0 -0
  41. /package/dist/{chunk-IWJK7JB5.js.map → chunk-VSTJNHOZ.js.map} +0 -0
@@ -1,340 +1,11 @@
1
- // src/documents/chunk-text.ts
2
- function chunkText(options) {
3
- const validated = validateOptions(options);
4
- if (validated.text.length === 0) {
5
- return [];
6
- }
7
- if (validated.strategy === "fixed") {
8
- return chunkFixed(validated.text, validated.maxSize, validated.overlap);
9
- }
10
- const ranges = resolveRecursiveRanges(
11
- validated.text,
12
- { start: 0, end: validated.text.length },
13
- validated.maxSize,
14
- validated.separators
15
- );
16
- return applyRecursiveOverlap(validated.text, ranges, validated.maxSize, validated.overlap);
17
- }
18
- function validateOptions(options) {
19
- if (typeof options !== "object" || options === null) {
20
- throw new TypeError("chunkText options must be an object");
21
- }
22
- const value = options;
23
- if (typeof value.text !== "string") {
24
- throw new TypeError("chunkText text must be a string");
25
- }
26
- if (!Number.isSafeInteger(value.maxSize) || value.maxSize <= 0) {
27
- throw new RangeError("chunkText maxSize must be a positive safe integer");
28
- }
29
- const maxSize = value.maxSize;
30
- const overlap = value.overlap === void 0 ? 0 : value.overlap;
31
- if (!Number.isSafeInteger(overlap) || overlap < 0 || overlap >= maxSize) {
32
- throw new RangeError(
33
- "chunkText overlap must be a non-negative safe integer smaller than maxSize"
34
- );
35
- }
36
- if (value.strategy === "fixed") {
37
- if ("separators" in value) {
38
- throw new TypeError("chunkText fixed strategy does not accept separators");
39
- }
40
- return {
41
- text: value.text,
42
- strategy: "fixed",
43
- maxSize,
44
- overlap
45
- };
46
- }
47
- if (value.strategy !== "recursive") {
48
- throw new TypeError('chunkText strategy must be either "fixed" or "recursive"');
49
- }
50
- if (!Array.isArray(value.separators) || value.separators.length === 0) {
51
- throw new TypeError("chunkText recursive separators must be a non-empty array");
52
- }
53
- const separators = value.separators;
54
- const seen = /* @__PURE__ */ new Set();
55
- for (const separator of separators) {
56
- if (typeof separator !== "string" || separator.length === 0) {
57
- throw new TypeError("chunkText recursive separators must contain non-empty strings");
58
- }
59
- if (seen.has(separator)) {
60
- throw new TypeError("chunkText recursive separators must not contain duplicates");
61
- }
62
- seen.add(separator);
63
- }
64
- return {
65
- text: value.text,
66
- strategy: "recursive",
67
- maxSize,
68
- overlap,
69
- separators
70
- };
71
- }
72
- function chunkFixed(text, maxSize, overlap) {
73
- const chunks = [];
74
- let start = 0;
75
- while (start < text.length) {
76
- const end = Math.min(start + maxSize, text.length);
77
- chunks.push(createChunk(text, chunks.length, start, end));
78
- if (end === text.length) {
79
- break;
80
- }
81
- start = end - overlap;
82
- }
83
- return chunks;
84
- }
85
- function resolveRecursiveRanges(text, initialRange, maxSize, separators) {
86
- const resolved = [];
87
- const pending = [
88
- { range: initialRange, separatorIndex: 0 }
89
- ];
90
- while (pending.length > 0) {
91
- const current = pending.pop();
92
- if (current === void 0) {
93
- break;
94
- }
95
- if (current.range.end - current.range.start <= maxSize) {
96
- resolved.push(current.range);
97
- continue;
98
- }
99
- let pieces;
100
- let nextSeparatorIndex = separators.length;
101
- for (let index = current.separatorIndex; index < separators.length; index += 1) {
102
- const candidate = splitAfterSeparator(text, current.range, separators[index]);
103
- if (candidate.length > 1) {
104
- pieces = candidate;
105
- nextSeparatorIndex = index + 1;
106
- break;
107
- }
108
- }
109
- if (pieces === void 0) {
110
- resolved.push(...hardSplit(current.range, maxSize));
111
- continue;
112
- }
113
- for (let index = pieces.length - 1; index >= 0; index -= 1) {
114
- pending.push({ range: pieces[index], separatorIndex: nextSeparatorIndex });
115
- }
116
- }
117
- return resolved;
118
- }
119
- function splitAfterSeparator(text, range, separator) {
120
- const ranges = [];
121
- let start = range.start;
122
- let searchFrom = range.start;
123
- while (searchFrom < range.end) {
124
- const separatorStart = text.indexOf(separator, searchFrom);
125
- if (separatorStart < 0 || separatorStart + separator.length > range.end) {
126
- break;
127
- }
128
- const end = separatorStart + separator.length;
129
- if (end > start) {
130
- ranges.push({ start, end });
131
- }
132
- start = end;
133
- searchFrom = end;
134
- }
135
- if (start < range.end) {
136
- ranges.push({ start, end: range.end });
137
- }
138
- return ranges;
139
- }
140
- function hardSplit(range, maxSize) {
141
- const ranges = [];
142
- for (let start = range.start; start < range.end; start += maxSize) {
143
- ranges.push({ start, end: Math.min(start + maxSize, range.end) });
144
- }
145
- return ranges;
146
- }
147
- function applyRecursiveOverlap(text, ranges, maxSize, overlap) {
148
- const boundaries = ranges.map((range) => range.end);
149
- const chunks = [];
150
- let start = 0;
151
- let previousEnd = 0;
152
- while (start < text.length) {
153
- const limit = Math.min(start + maxSize, text.length);
154
- const boundary = findLastBoundaryAtMost(boundaries, limit);
155
- const end = boundary !== void 0 && boundary > previousEnd ? boundary : limit;
156
- chunks.push(createChunk(text, chunks.length, start, end));
157
- if (end === text.length) {
158
- break;
159
- }
160
- previousEnd = end;
161
- start = Math.max(0, end - overlap);
162
- }
163
- return chunks;
164
- }
165
- function findLastBoundaryAtMost(boundaries, limit) {
166
- let low = 0;
167
- let high = boundaries.length;
168
- while (low < high) {
169
- const middle = low + Math.floor((high - low) / 2);
170
- if (boundaries[middle] <= limit) {
171
- low = middle + 1;
172
- } else {
173
- high = middle;
174
- }
175
- }
176
- return boundaries[low - 1];
177
- }
178
- function createChunk(text, index, start, end) {
179
- return { index, text: text.slice(start, end), start, end };
180
- }
181
-
182
- // src/documents/pdf.ts
183
- async function extractPdfText(options) {
184
- if (typeof options !== "object" || options === null) {
185
- throw new TypeError("extractPdfText options must be an object");
186
- }
187
- if (!(options.data instanceof Uint8Array)) {
188
- throw new TypeError("extractPdfText data must be a Uint8Array");
189
- }
190
- if (options.abortSignal !== void 0 && !isAbortSignal(options.abortSignal)) {
191
- throw new TypeError("extractPdfText abortSignal must be an AbortSignal");
192
- }
193
- const { abortSignal } = options;
194
- abortSignal?.throwIfAborted();
195
- const data = new Uint8Array(options.data);
196
- const pdfjs = await loadPdfjs();
197
- abortSignal?.throwIfAborted();
198
- const loadingTask = pdfjs.getDocument({ data });
199
- let destroyPromise;
200
- const destroy = () => {
201
- destroyPromise ??= loadingTask.destroy();
202
- return destroyPromise;
203
- };
204
- const abort = createAbortPromise(abortSignal, destroy);
205
- return runWithCleanup(
206
- async () => {
207
- const document = await abort.wait(loadingTask.promise);
208
- const pages = [];
209
- for (let pageNumber = 1; pageNumber <= document.numPages; pageNumber += 1) {
210
- abortSignal?.throwIfAborted();
211
- const page = await abort.wait(document.getPage(pageNumber));
212
- const content = await abort.wait(page.getTextContent());
213
- pages.push({ pageNumber, text: extractPageText(content.items) });
214
- }
215
- return { pages };
216
- },
217
- async () => {
218
- abort.dispose();
219
- await destroy();
220
- }
221
- );
222
- }
223
- async function loadPdfjs() {
224
- try {
225
- return await import("pdfjs-dist/legacy/build/pdf.mjs");
226
- } catch (cause) {
227
- if (!isMissingPdfjsDependency(cause)) {
228
- throw cause;
229
- }
230
- throw new Error(
231
- 'PDF extraction requires the optional "pdfjs-dist" package. Install it in your application to use extractPdfText().',
232
- { cause }
233
- );
234
- }
235
- }
236
- function isMissingPdfjsDependency(error) {
237
- const seen = /* @__PURE__ */ new Set();
238
- let current = error;
239
- while (current instanceof Error && !seen.has(current)) {
240
- seen.add(current);
241
- if (current.message.includes("pdfjs-dist") && "code" in current && current.code === "ERR_MODULE_NOT_FOUND") {
242
- return true;
243
- }
244
- current = "cause" in current ? current.cause : void 0;
245
- }
246
- return false;
247
- }
248
- async function runWithCleanup(operation, cleanup) {
249
- let outcome;
250
- try {
251
- outcome = { ok: true, value: await operation() };
252
- } catch (error) {
253
- outcome = { ok: false, error };
254
- }
255
- let cleanupError;
256
- let cleanupFailed = false;
257
- try {
258
- await cleanup();
259
- } catch (error) {
260
- cleanupFailed = true;
261
- cleanupError = error;
262
- }
263
- if (!outcome.ok) {
264
- if (cleanupFailed) {
265
- throw new AggregateError(
266
- [outcome.error, cleanupError],
267
- "PDF extraction and cleanup both failed",
268
- { cause: outcome.error }
269
- );
270
- }
271
- throw outcome.error;
272
- }
273
- if (cleanupFailed) {
274
- throw cleanupError;
275
- }
276
- return outcome.value;
277
- }
278
- function isAbortSignal(value) {
279
- if (typeof value !== "object" || value === null) {
280
- return false;
281
- }
282
- const candidate = value;
283
- return typeof candidate.aborted === "boolean" && typeof candidate.addEventListener === "function" && typeof candidate.removeEventListener === "function" && typeof candidate.throwIfAborted === "function";
284
- }
285
- function extractPageText(items) {
286
- let text = "";
287
- for (const item of items) {
288
- if (typeof item !== "object" || item === null) {
289
- throw new TypeError("PDF text content contains a malformed item");
290
- }
291
- if (!("str" in item)) {
292
- if ("type" in item && (item.type === "beginMarkedContent" || item.type === "beginMarkedContentProps" || item.type === "endMarkedContent")) {
293
- continue;
294
- }
295
- throw new TypeError("PDF text content contains an unknown non-text item");
296
- }
297
- if (typeof item.str !== "string") {
298
- throw new TypeError("PDF text content item str must be a string");
299
- }
300
- if (!("hasEOL" in item) || typeof item.hasEOL !== "boolean") {
301
- throw new TypeError("PDF text content item hasEOL must be a boolean");
302
- }
303
- text += item.str;
304
- if (item.hasEOL) {
305
- text += "\n";
306
- }
307
- }
308
- return text;
309
- }
310
- function createAbortPromise(abortSignal, destroy) {
311
- if (abortSignal === void 0) {
312
- return {
313
- wait: (promise) => promise,
314
- dispose: () => void 0
315
- };
316
- }
317
- let rejectAbort;
318
- const aborted = new Promise((_resolve, reject) => {
319
- rejectAbort = reject;
320
- });
321
- const onAbort = () => {
322
- void destroy();
323
- rejectAbort?.(
324
- abortSignal.reason ?? new DOMException("The operation was aborted", "AbortError")
325
- );
326
- };
327
- abortSignal.addEventListener("abort", onAbort, { once: true });
328
- if (abortSignal.aborted) {
329
- onAbort();
330
- }
331
- return {
332
- wait: (promise) => Promise.race([promise, aborted]),
333
- dispose: () => abortSignal.removeEventListener("abort", onAbort)
334
- };
335
- }
1
+ import {
2
+ chunkText,
3
+ chunkTextDocuments,
4
+ extractPdfText
5
+ } from "../chunk-4EWTDOLR.js";
336
6
  export {
337
7
  chunkText,
8
+ chunkTextDocuments,
338
9
  extractPdfText
339
10
  };
340
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/documents/chunk-text.ts","../../src/documents/pdf.ts"],"sourcesContent":["export type TextChunk = Readonly<{\n index: number;\n text: string;\n start: number;\n end: number;\n}>;\n\nexport type ChunkTextOptions =\n | Readonly<{\n text: string;\n strategy: \"fixed\";\n maxSize: number;\n overlap?: number;\n }>\n | Readonly<{\n text: string;\n strategy: \"recursive\";\n maxSize: number;\n overlap?: number;\n separators: readonly string[];\n }>;\n\ntype TextRange = Readonly<{\n start: number;\n end: number;\n}>;\n\nexport function chunkText(options: ChunkTextOptions): readonly TextChunk[] {\n const validated = validateOptions(options);\n if (validated.text.length === 0) {\n return [];\n }\n\n if (validated.strategy === \"fixed\") {\n return chunkFixed(validated.text, validated.maxSize, validated.overlap);\n }\n\n const ranges = resolveRecursiveRanges(\n validated.text,\n { start: 0, end: validated.text.length },\n validated.maxSize,\n validated.separators,\n );\n return applyRecursiveOverlap(validated.text, ranges, validated.maxSize, validated.overlap);\n}\n\nfunction validateOptions(options: ChunkTextOptions):\n | Readonly<{\n text: string;\n strategy: \"fixed\";\n maxSize: number;\n overlap: number;\n }>\n | Readonly<{\n text: string;\n strategy: \"recursive\";\n maxSize: number;\n overlap: number;\n separators: readonly string[];\n }> {\n if (typeof options !== \"object\" || options === null) {\n throw new TypeError(\"chunkText options must be an object\");\n }\n\n const value = options as unknown as Record<string, unknown>;\n if (typeof value.text !== \"string\") {\n throw new TypeError(\"chunkText text must be a string\");\n }\n if (!Number.isSafeInteger(value.maxSize) || (value.maxSize as number) <= 0) {\n throw new RangeError(\"chunkText maxSize must be a positive safe integer\");\n }\n\n const maxSize = value.maxSize as number;\n const overlap = value.overlap === undefined ? 0 : value.overlap;\n if (!Number.isSafeInteger(overlap) || (overlap as number) < 0 || (overlap as number) >= maxSize) {\n throw new RangeError(\n \"chunkText overlap must be a non-negative safe integer smaller than maxSize\",\n );\n }\n\n if (value.strategy === \"fixed\") {\n if (\"separators\" in value) {\n throw new TypeError(\"chunkText fixed strategy does not accept separators\");\n }\n return {\n text: value.text,\n strategy: \"fixed\",\n maxSize,\n overlap: overlap as number,\n };\n }\n\n if (value.strategy !== \"recursive\") {\n throw new TypeError('chunkText strategy must be either \"fixed\" or \"recursive\"');\n }\n if (!Array.isArray(value.separators) || value.separators.length === 0) {\n throw new TypeError(\"chunkText recursive separators must be a non-empty array\");\n }\n\n const separators = value.separators as unknown[];\n const seen = new Set<string>();\n for (const separator of separators) {\n if (typeof separator !== \"string\" || separator.length === 0) {\n throw new TypeError(\"chunkText recursive separators must contain non-empty strings\");\n }\n if (seen.has(separator)) {\n throw new TypeError(\"chunkText recursive separators must not contain duplicates\");\n }\n seen.add(separator);\n }\n\n return {\n text: value.text,\n strategy: \"recursive\",\n maxSize,\n overlap: overlap as number,\n separators: separators as string[],\n };\n}\n\nfunction chunkFixed(text: string, maxSize: number, overlap: number): readonly TextChunk[] {\n const chunks: TextChunk[] = [];\n let start = 0;\n\n while (start < text.length) {\n const end = Math.min(start + maxSize, text.length);\n chunks.push(createChunk(text, chunks.length, start, end));\n if (end === text.length) {\n break;\n }\n start = end - overlap;\n }\n\n return chunks;\n}\n\nfunction resolveRecursiveRanges(\n text: string,\n initialRange: TextRange,\n maxSize: number,\n separators: readonly string[],\n): readonly TextRange[] {\n const resolved: TextRange[] = [];\n const pending: Array<Readonly<{ range: TextRange; separatorIndex: number }>> = [\n { range: initialRange, separatorIndex: 0 },\n ];\n\n while (pending.length > 0) {\n const current = pending.pop();\n if (current === undefined) {\n break;\n }\n if (current.range.end - current.range.start <= maxSize) {\n resolved.push(current.range);\n continue;\n }\n\n let pieces: readonly TextRange[] | undefined;\n let nextSeparatorIndex = separators.length;\n for (let index = current.separatorIndex; index < separators.length; index += 1) {\n const candidate = splitAfterSeparator(text, current.range, separators[index] as string);\n if (candidate.length > 1) {\n pieces = candidate;\n nextSeparatorIndex = index + 1;\n break;\n }\n }\n\n if (pieces === undefined) {\n resolved.push(...hardSplit(current.range, maxSize));\n continue;\n }\n\n for (let index = pieces.length - 1; index >= 0; index -= 1) {\n pending.push({ range: pieces[index] as TextRange, separatorIndex: nextSeparatorIndex });\n }\n }\n\n return resolved;\n}\n\nfunction splitAfterSeparator(text: string, range: TextRange, separator: string): TextRange[] {\n const ranges: TextRange[] = [];\n let start = range.start;\n let searchFrom = range.start;\n\n while (searchFrom < range.end) {\n const separatorStart = text.indexOf(separator, searchFrom);\n if (separatorStart < 0 || separatorStart + separator.length > range.end) {\n break;\n }\n const end = separatorStart + separator.length;\n if (end > start) {\n ranges.push({ start, end });\n }\n start = end;\n searchFrom = end;\n }\n\n if (start < range.end) {\n ranges.push({ start, end: range.end });\n }\n return ranges;\n}\n\nfunction hardSplit(range: TextRange, maxSize: number): readonly TextRange[] {\n const ranges: TextRange[] = [];\n for (let start = range.start; start < range.end; start += maxSize) {\n ranges.push({ start, end: Math.min(start + maxSize, range.end) });\n }\n return ranges;\n}\n\nfunction applyRecursiveOverlap(\n text: string,\n ranges: readonly TextRange[],\n maxSize: number,\n overlap: number,\n): readonly TextChunk[] {\n const boundaries = ranges.map((range) => range.end);\n const chunks: TextChunk[] = [];\n let start = 0;\n let previousEnd = 0;\n\n while (start < text.length) {\n const limit = Math.min(start + maxSize, text.length);\n const boundary = findLastBoundaryAtMost(boundaries, limit);\n const end = boundary !== undefined && boundary > previousEnd ? boundary : limit;\n\n chunks.push(createChunk(text, chunks.length, start, end));\n if (end === text.length) {\n break;\n }\n previousEnd = end;\n start = Math.max(0, end - overlap);\n }\n\n return chunks;\n}\n\nfunction findLastBoundaryAtMost(boundaries: readonly number[], limit: number): number | undefined {\n let low = 0;\n let high = boundaries.length;\n while (low < high) {\n const middle = low + Math.floor((high - low) / 2);\n if ((boundaries[middle] as number) <= limit) {\n low = middle + 1;\n } else {\n high = middle;\n }\n }\n return boundaries[low - 1];\n}\n\nfunction createChunk(text: string, index: number, start: number, end: number): TextChunk {\n return { index, text: text.slice(start, end), start, end };\n}\n","export type PdfTextPage = Readonly<{\n pageNumber: number;\n text: string;\n}>;\n\nexport type ExtractPdfTextOptions = Readonly<{\n data: Uint8Array;\n abortSignal?: AbortSignal;\n}>;\n\nexport type ExtractPdfTextResult = Readonly<{\n pages: readonly PdfTextPage[];\n}>;\n\nexport async function extractPdfText(\n options: ExtractPdfTextOptions,\n): Promise<ExtractPdfTextResult> {\n if (typeof options !== \"object\" || options === null) {\n throw new TypeError(\"extractPdfText options must be an object\");\n }\n if (!(options.data instanceof Uint8Array)) {\n throw new TypeError(\"extractPdfText data must be a Uint8Array\");\n }\n if (options.abortSignal !== undefined && !isAbortSignal(options.abortSignal)) {\n throw new TypeError(\"extractPdfText abortSignal must be an AbortSignal\");\n }\n\n const { abortSignal } = options;\n abortSignal?.throwIfAborted();\n const data = new Uint8Array(options.data);\n const pdfjs = await loadPdfjs();\n abortSignal?.throwIfAborted();\n\n const loadingTask = pdfjs.getDocument({ data });\n let destroyPromise: Promise<void> | undefined;\n const destroy = (): Promise<void> => {\n destroyPromise ??= loadingTask.destroy();\n return destroyPromise;\n };\n const abort = createAbortPromise(abortSignal, destroy);\n\n return runWithCleanup(\n async () => {\n const document = await abort.wait(loadingTask.promise);\n const pages: PdfTextPage[] = [];\n for (let pageNumber = 1; pageNumber <= document.numPages; pageNumber += 1) {\n abortSignal?.throwIfAborted();\n const page = await abort.wait(document.getPage(pageNumber));\n const content = await abort.wait(page.getTextContent());\n pages.push({ pageNumber, text: extractPageText(content.items) });\n }\n return { pages };\n },\n async () => {\n abort.dispose();\n await destroy();\n },\n );\n}\n\nasync function loadPdfjs(): Promise<typeof import(\"pdfjs-dist/legacy/build/pdf.mjs\")> {\n try {\n return await import(\"pdfjs-dist/legacy/build/pdf.mjs\");\n } catch (cause) {\n if (!isMissingPdfjsDependency(cause)) {\n throw cause;\n }\n throw new Error(\n 'PDF extraction requires the optional \"pdfjs-dist\" package. Install it in your application to use extractPdfText().',\n { cause },\n );\n }\n}\n\nfunction isMissingPdfjsDependency(error: unknown): boolean {\n const seen = new Set<unknown>();\n let current = error;\n while (current instanceof Error && !seen.has(current)) {\n seen.add(current);\n if (\n current.message.includes(\"pdfjs-dist\") &&\n \"code\" in current &&\n current.code === \"ERR_MODULE_NOT_FOUND\"\n ) {\n return true;\n }\n current = \"cause\" in current ? current.cause : undefined;\n }\n return false;\n}\n\nasync function runWithCleanup<Result>(\n operation: () => Promise<Result>,\n cleanup: () => Promise<void>,\n): Promise<Result> {\n let outcome: { ok: true; value: Result } | { ok: false; error: unknown };\n try {\n outcome = { ok: true, value: await operation() };\n } catch (error) {\n outcome = { ok: false, error };\n }\n\n let cleanupError: unknown;\n let cleanupFailed = false;\n try {\n await cleanup();\n } catch (error) {\n cleanupFailed = true;\n cleanupError = error;\n }\n\n if (!outcome.ok) {\n if (cleanupFailed) {\n throw new AggregateError(\n [outcome.error, cleanupError],\n \"PDF extraction and cleanup both failed\",\n { cause: outcome.error },\n );\n }\n throw outcome.error;\n }\n if (cleanupFailed) {\n throw cleanupError;\n }\n return outcome.value;\n}\n\nfunction isAbortSignal(value: unknown): value is AbortSignal {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n const candidate = value as Partial<AbortSignal>;\n return (\n typeof candidate.aborted === \"boolean\" &&\n typeof candidate.addEventListener === \"function\" &&\n typeof candidate.removeEventListener === \"function\" &&\n typeof candidate.throwIfAborted === \"function\"\n );\n}\n\nfunction extractPageText(items: readonly unknown[]): string {\n let text = \"\";\n for (const item of items) {\n if (typeof item !== \"object\" || item === null) {\n throw new TypeError(\"PDF text content contains a malformed item\");\n }\n if (!(\"str\" in item)) {\n if (\n \"type\" in item &&\n (item.type === \"beginMarkedContent\" ||\n item.type === \"beginMarkedContentProps\" ||\n item.type === \"endMarkedContent\")\n ) {\n continue;\n }\n throw new TypeError(\"PDF text content contains an unknown non-text item\");\n }\n if (typeof item.str !== \"string\") {\n throw new TypeError(\"PDF text content item str must be a string\");\n }\n if (!(\"hasEOL\" in item) || typeof item.hasEOL !== \"boolean\") {\n throw new TypeError(\"PDF text content item hasEOL must be a boolean\");\n }\n text += item.str;\n if (item.hasEOL) {\n text += \"\\n\";\n }\n }\n return text;\n}\n\nfunction createAbortPromise(\n abortSignal: AbortSignal | undefined,\n destroy: () => Promise<void>,\n): {\n wait<T>(promise: Promise<T>): Promise<T>;\n dispose(): void;\n} {\n if (abortSignal === undefined) {\n return {\n wait: (promise) => promise,\n dispose: () => undefined,\n };\n }\n\n let rejectAbort: ((reason?: unknown) => void) | undefined;\n const aborted = new Promise<never>((_resolve, reject) => {\n rejectAbort = reject;\n });\n const onAbort = () => {\n void destroy();\n rejectAbort?.(\n abortSignal.reason ?? new DOMException(\"The operation was aborted\", \"AbortError\"),\n );\n };\n abortSignal.addEventListener(\"abort\", onAbort, { once: true });\n if (abortSignal.aborted) {\n onAbort();\n }\n\n return {\n wait: (promise) => Promise.race([promise, aborted]),\n dispose: () => abortSignal.removeEventListener(\"abort\", onAbort),\n };\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,7 +1,7 @@
1
1
  import { U as Usage, J as JsonObject, c as CompletionModel, M as Message } from '../types-DgvozfPc.js';
2
2
  import { Z as ZodSchema } from '../zod-schema-C7F4clpm.js';
3
3
  import { AgentInteractionRequest, AgentInteractionResponse } from '../agent/interactions/index.js';
4
- import { g as AgentInteractionOutcome, m as AgentResponse, n as AgentRunOptions, k as AgentOutcome } from '../types-BUEZMBhO.js';
4
+ import { g as AgentInteractionOutcome, m as AgentResponse, n as AgentRunOptions, k as AgentOutcome } from '../types-ChH_bdtR.js';
5
5
  import { E as EmbeddingModel } from '../types-Cr4uiYo5.js';
6
6
  import '../model-call-options-CZkSw_xN.js';
7
7
  import 'zod';
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export { A as Agent, a as AgentContextInput, b as AgentMemory, c as AgentMemoryOptions, d as AgentOptions, e as AgentToolInput, f as AgentToolOptions, C as CreateHybridVectorContextOptions, g as CreateVectorContextOptions, V as VectorContext, h as VectorContextBaseOptions, i as createVectorContext, j as isVectorContext } from './agent-DYfzP-n5.js';
1
+ export { A as Agent, a as AgentContextInput, b as AgentMemory, c as AgentMemoryOptions, d as AgentOptions, e as AgentToolInput, f as AgentToolOptions, C as CreateHybridVectorContextOptions, g as CreateVectorContextOptions, V as VectorContext, h as VectorContextBaseOptions, i as createVectorContext, j as isVectorContext } from './agent-fvQIBLBk.js';
2
2
  export { AgentRunBlockedError, AgentRunCancelledError, AgentStreamClosedError, AgentStructuredOutputError, AgentStructuredOutputFormat, AgentStructuredOutputPhase, AgentToolSuspensionError, MaxTurnsError } from './agent/index.js';
3
- export { A as AgentBlockedOutcome, a as AgentChildStreamEvent, b as AgentDeltaEvent, c as AgentErrorEvent, d as AgentErrorStreamEvent, e as AgentFinishEvent, f as AgentInput, g as AgentInteractionOutcome, h as AgentLifecycle, i as AgentMemoryCompactionEvent, j as AgentMemoryCompactionOptions, k as AgentOutcome, l as AgentPrompt, m as AgentResponse, n as AgentRunOptions, o as AgentRunSettings, p as AgentStartEvent, q as AgentSteerInput, r as AgentSteerReceipt, s as AgentStepFinishEvent, t as AgentStream, u as AgentStreamEvent, v as AgentToolCallDeltaEvent, w as AgentToolFinishEvent, x as AgentToolStartEvent } from './types-BUEZMBhO.js';
3
+ export { A as AgentBlockedOutcome, a as AgentChildStreamEvent, b as AgentDeltaEvent, c as AgentErrorEvent, d as AgentErrorStreamEvent, e as AgentFinishEvent, f as AgentInput, g as AgentInteractionOutcome, h as AgentLifecycle, i as AgentMemoryCompactionEvent, j as AgentMemoryCompactionOptions, k as AgentOutcome, l as AgentPrompt, m as AgentResponse, n as AgentRunOptions, o as AgentRunSettings, p as AgentStartEvent, q as AgentSteerInput, r as AgentSteerReceipt, s as AgentStepFinishEvent, t as AgentStream, u as AgentStreamEvent, v as AgentToolCallDeltaEvent, w as AgentToolFinishEvent, x as AgentToolStartEvent } from './types-ChH_bdtR.js';
4
4
  export { M as ModelCallOptions } from './model-call-options-CZkSw_xN.js';
5
5
  export { R as RetryContext, a as RetryOptions, b as RetrySetting } from './retry-CjvSlKGW.js';
6
6
  export { A as AssistantContentPart, a as AssistantGenerationMetadata, b as AssistantMessage, C as CompletionFinishReason, c as CompletionModel, d as CompletionModelInfo, e as CompletionModelStreamEvent, f as CompletionRequest, g as CompletionResponse, h as CompletionResult, i as CompletionSource, j as CompletionStreamEvent, k as CompletionTool, l as ContextUsage, D as Document, F as FileData, m as FilePart, I as ImageDetail, n as ImagePart, J as JsonObject, o as JsonPrimitive, p as JsonValue, M as Message, q as ModelContextLimits, P as ProviderTool, r as ProviderToolCall, R as ReasoningContentType, s as ReasoningDetail, t as ReasoningPart, S as SystemMessage, T as TextPart, u as ToolCallPart, v as ToolChoice, w as ToolDefinition, x as ToolMessage, y as ToolResultContentPart, z as ToolResultOutput, B as ToolResultPart, U as Usage, E as UserContentPart, G as UserMessage, H as calculateContextUsage, K as getAssistantGenerationMetadata, L as isProviderTool, N as resolveModelContextLimits, O as withContextUsage } from './types-DgvozfPc.js';
package/dist/index.js CHANGED
@@ -14,12 +14,12 @@ import {
14
14
  SkillValidationError,
15
15
  loadSkills,
16
16
  skill
17
- } from "./chunk-IWJK7JB5.js";
17
+ } from "./chunk-VSTJNHOZ.js";
18
18
  import {
19
19
  Agent,
20
20
  createVectorContext,
21
21
  isVectorContext
22
- } from "./chunk-PH6OTIPZ.js";
22
+ } from "./chunk-NMVCGWQY.js";
23
23
  import "./chunk-OJBFDBLG.js";
24
24
  import "./chunk-J6LVLV6P.js";
25
25
  import {
@@ -29,16 +29,18 @@ import {
29
29
  estimateMemoryTokens,
30
30
  isMemoryCompactionMessage
31
31
  } from "./chunk-XMVOBX43.js";
32
- import "./chunk-AR2K73CJ.js";
32
+ import "./chunk-34EDX4ZL.js";
33
+ import "./chunk-KSKST3KP.js";
33
34
  import "./chunk-YK4WAAS4.js";
34
35
  import {
35
36
  createMiddleware,
36
37
  createQuestionTool,
37
38
  createThinkTool
38
- } from "./chunk-EO2GECYH.js";
39
+ } from "./chunk-OIB3URVG.js";
39
40
  import {
40
41
  createTool
41
- } from "./chunk-YFJ4NHV6.js";
42
+ } from "./chunk-LZD36ZAP.js";
43
+ import "./chunk-4EWTDOLR.js";
42
44
  import {
43
45
  AgentRunBlockedError,
44
46
  AgentRunCancelledError,
@@ -1,4 +1,4 @@
1
- import { R as ResolvedAgentOptions, A as Agent } from '../agent-DYfzP-n5.js';
1
+ import { R as ResolvedAgentOptions, A as Agent } from '../agent-fvQIBLBk.js';
2
2
  import { c as CompletionModel, P as ProviderTool, M as Message, U as Usage, g as CompletionResponse, y as ToolResultContentPart } from '../types-DgvozfPc.js';
3
3
  import { T as ToolIndex } from '../dynamic-tools-aIZlg5x1.js';
4
4
  import { A as AnyTool } from '../tool-BpqpoRSE.js';
@@ -9,7 +9,7 @@ import 'zod';
9
9
  import '../types-DhkodEft.js';
10
10
  import '../type-utils-CtHVDRn_.js';
11
11
  import '../types-DjqRHeAi.js';
12
- import '../types-BUEZMBhO.js';
12
+ import '../types-ChH_bdtR.js';
13
13
  import '../agent/interactions/index.js';
14
14
  import '../middleware-kcF8AusP.js';
15
15
  import '../types-DC1U1XwW.js';
@@ -4,14 +4,16 @@ import {
4
4
  getAgentToolState,
5
5
  markResolvedAgentOptions,
6
6
  withInternalAgentRunOptions
7
- } from "../chunk-PH6OTIPZ.js";
7
+ } from "../chunk-NMVCGWQY.js";
8
8
  import "../chunk-OJBFDBLG.js";
9
9
  import "../chunk-J6LVLV6P.js";
10
10
  import "../chunk-XMVOBX43.js";
11
- import "../chunk-AR2K73CJ.js";
11
+ import "../chunk-34EDX4ZL.js";
12
+ import "../chunk-KSKST3KP.js";
12
13
  import "../chunk-YK4WAAS4.js";
13
- import "../chunk-EO2GECYH.js";
14
- import "../chunk-YFJ4NHV6.js";
14
+ import "../chunk-OIB3URVG.js";
15
+ import "../chunk-LZD36ZAP.js";
16
+ import "../chunk-4EWTDOLR.js";
15
17
  import "../chunk-AHLKV6KP.js";
16
18
  import "../chunk-K5L7R7XM.js";
17
19
  import "../chunk-IZNOP6JG.js";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/agent/resolved-agent.ts"],"sourcesContent":["import type { CompletionModel } from \"../completion\";\nimport { Agent } from \"./agent\";\nimport { markResolvedAgentOptions } from \"./resolve-options\";\nimport { getAgentToolState } from \"./tool-state\";\nimport type { ResolvedAgentOptions } from \"./types\";\n\nexport function createResolvedAgent<\n Output = string,\n M extends CompletionModel = CompletionModel,\n ContextDocument = unknown,\n>(options: ResolvedAgentOptions<Output, M, ContextDocument>): Agent<Output, M, ContextDocument> {\n return new Agent(markResolvedAgentOptions(options));\n}\n\nexport function getResolvedAgentOptions<Output, M extends CompletionModel, ContextDocument>(\n agent: Agent<Output, M, ContextDocument>,\n): ResolvedAgentOptions<Output, M, ContextDocument> {\n const toolState = getAgentToolState(agent);\n return {\n id: agent.id,\n name: agent.name,\n description: agent.description,\n model: agent.model,\n instructions: agent.instructions,\n context: [...agent.context],\n temperature: agent.temperature,\n maxTokens: agent.maxTokens,\n providerOptions: agent.providerOptions,\n retries: agent.retries,\n tools: [...toolState.configuredTools],\n mcpServers: [...agent.mcpServers],\n providerTools: [...toolState.providerTools],\n toolIndexes: [...toolState.toolIndexes],\n toolChoice: agent.toolChoice,\n defaultMaxTurns: agent.defaultMaxTurns,\n lifecycle: agent.lifecycle,\n outputSchema: agent.outputSchema,\n observability: agent.observability,\n guardrails: [...agent.guardrails],\n middlewares: [...agent.middlewares],\n memory: agent.memory,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAMO,SAAS,oBAId,SAA8F;AAC9F,SAAO,IAAI,MAAM,yBAAyB,OAAO,CAAC;AACpD;AAEO,SAAS,wBACd,OACkD;AAClD,QAAM,YAAY,kBAAkB,KAAK;AACzC,SAAO;AAAA,IACL,IAAI,MAAM;AAAA,IACV,MAAM,MAAM;AAAA,IACZ,aAAa,MAAM;AAAA,IACnB,OAAO,MAAM;AAAA,IACb,cAAc,MAAM;AAAA,IACpB,SAAS,CAAC,GAAG,MAAM,OAAO;AAAA,IAC1B,aAAa,MAAM;AAAA,IACnB,WAAW,MAAM;AAAA,IACjB,iBAAiB,MAAM;AAAA,IACvB,SAAS,MAAM;AAAA,IACf,OAAO,CAAC,GAAG,UAAU,eAAe;AAAA,IACpC,YAAY,CAAC,GAAG,MAAM,UAAU;AAAA,IAChC,eAAe,CAAC,GAAG,UAAU,aAAa;AAAA,IAC1C,aAAa,CAAC,GAAG,UAAU,WAAW;AAAA,IACtC,YAAY,MAAM;AAAA,IAClB,iBAAiB,MAAM;AAAA,IACvB,WAAW,MAAM;AAAA,IACjB,cAAc,MAAM;AAAA,IACpB,eAAe,MAAM;AAAA,IACrB,YAAY,CAAC,GAAG,MAAM,UAAU;AAAA,IAChC,aAAa,CAAC,GAAG,MAAM,WAAW;AAAA,IAClC,QAAQ,MAAM;AAAA,EAChB;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/agent/resolved-agent.ts"],"sourcesContent":["import type { CompletionModel } from \"../completion\";\nimport { Agent } from \"./agent\";\nimport { markResolvedAgentOptions } from \"./resolve-options\";\nimport { getAgentToolState } from \"./tool-state\";\nimport type { ResolvedAgentOptions } from \"./types\";\n\nexport function createResolvedAgent<\n Output = string,\n M extends CompletionModel = CompletionModel,\n ContextDocument = unknown,\n>(options: ResolvedAgentOptions<Output, M, ContextDocument>): Agent<Output, M, ContextDocument> {\n return new Agent(markResolvedAgentOptions(options));\n}\n\nexport function getResolvedAgentOptions<Output, M extends CompletionModel, ContextDocument>(\n agent: Agent<Output, M, ContextDocument>,\n): ResolvedAgentOptions<Output, M, ContextDocument> {\n const toolState = getAgentToolState(agent);\n return {\n id: agent.id,\n name: agent.name,\n description: agent.description,\n model: agent.model,\n instructions: agent.instructions,\n context: [...agent.context],\n temperature: agent.temperature,\n maxTokens: agent.maxTokens,\n providerOptions: agent.providerOptions,\n retries: agent.retries,\n tools: [...toolState.configuredTools],\n mcpServers: [...agent.mcpServers],\n providerTools: [...toolState.providerTools],\n toolIndexes: [...toolState.toolIndexes],\n toolChoice: agent.toolChoice,\n defaultMaxTurns: agent.defaultMaxTurns,\n lifecycle: agent.lifecycle,\n outputSchema: agent.outputSchema,\n observability: agent.observability,\n guardrails: [...agent.guardrails],\n middlewares: [...agent.middlewares],\n memory: agent.memory,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMO,SAAS,oBAId,SAA8F;AAC9F,SAAO,IAAI,MAAM,yBAAyB,OAAO,CAAC;AACpD;AAEO,SAAS,wBACd,OACkD;AAClD,QAAM,YAAY,kBAAkB,KAAK;AACzC,SAAO;AAAA,IACL,IAAI,MAAM;AAAA,IACV,MAAM,MAAM;AAAA,IACZ,aAAa,MAAM;AAAA,IACnB,OAAO,MAAM;AAAA,IACb,cAAc,MAAM;AAAA,IACpB,SAAS,CAAC,GAAG,MAAM,OAAO;AAAA,IAC1B,aAAa,MAAM;AAAA,IACnB,WAAW,MAAM;AAAA,IACjB,iBAAiB,MAAM;AAAA,IACvB,SAAS,MAAM;AAAA,IACf,OAAO,CAAC,GAAG,UAAU,eAAe;AAAA,IACpC,YAAY,CAAC,GAAG,MAAM,UAAU;AAAA,IAChC,eAAe,CAAC,GAAG,UAAU,aAAa;AAAA,IAC1C,aAAa,CAAC,GAAG,UAAU,WAAW;AAAA,IACtC,YAAY,MAAM;AAAA,IAClB,iBAAiB,MAAM;AAAA,IACvB,WAAW,MAAM;AAAA,IACjB,cAAc,MAAM;AAAA,IACpB,eAAe,MAAM;AAAA,IACrB,YAAY,CAAC,GAAG,MAAM,UAAU;AAAA,IAChC,aAAa,CAAC,GAAG,MAAM,WAAW;AAAA,IAClC,QAAQ,MAAM;AAAA,EAChB;AACF;","names":[]}
@@ -1,4 +1,4 @@
1
- export { y as AgentGenerationEndArgs, z as AgentGenerationErrorArgs, B as AgentGenerationModelInfo, C as AgentGenerationObserver, D as AgentGenerationStartArgs, E as AgentGenerationUpdateArgs, F as AgentObservabilityOptions, G as AgentObserver, H as AgentObserverErrorPolicy, I as AgentObserverMap, J as AgentObserverTraceInfo, K as AgentRunEndArgs, L as AgentRunErrorArgs, M as AgentRunEventArgs, N as AgentRunObserver, O as AgentRunPromptRef, P as AgentRunStartArgs, Q as AgentToolEndArgs, R as AgentToolErrorArgs, S as AgentToolObserver, T as AgentToolStartArgs, U as AgentToolStreamEventArgs, V as AgentToolSuspendedArgs, W as AgentTraceInfo, X as AgentTraceOptions } from '../types-BUEZMBhO.js';
1
+ export { y as AgentGenerationEndArgs, z as AgentGenerationErrorArgs, B as AgentGenerationModelInfo, C as AgentGenerationObserver, D as AgentGenerationStartArgs, E as AgentGenerationUpdateArgs, F as AgentObservabilityOptions, G as AgentObserver, H as AgentObserverErrorPolicy, I as AgentObserverMap, J as AgentObserverTraceInfo, K as AgentRunEndArgs, L as AgentRunErrorArgs, M as AgentRunEventArgs, N as AgentRunObserver, O as AgentRunPromptRef, P as AgentRunStartArgs, Q as AgentToolEndArgs, R as AgentToolErrorArgs, S as AgentToolObserver, T as AgentToolStartArgs, U as AgentToolStreamEventArgs, V as AgentToolSuspendedArgs, W as AgentTraceInfo, X as AgentTraceOptions } from '../types-ChH_bdtR.js';
2
2
  import '../agent/interactions/index.js';
3
3
  import 'zod';
4
4
  import '../types-DgvozfPc.js';
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  AgentObserverDispatchError
3
- } from "../chunk-AR2K73CJ.js";
3
+ } from "../chunk-34EDX4ZL.js";
4
+ import "../chunk-KSKST3KP.js";
4
5
  import "../chunk-D4PACGPA.js";
5
6
  import "../chunk-TB5EKZM7.js";
6
7
  import "../chunk-7JLAIN6E.js";
@@ -1,5 +1,5 @@
1
- import { g as AgentInteractionOutcome, f as AgentInput, o as AgentRunSettings } from '../types-BUEZMBhO.js';
2
- import { A as Agent } from '../agent-DYfzP-n5.js';
1
+ import { g as AgentInteractionOutcome, X as AgentTraceOptions, J as AgentObserverTraceInfo, H as AgentObserverErrorPolicy, W as AgentTraceInfo, f as AgentInput, o as AgentRunSettings } from '../types-ChH_bdtR.js';
2
+ import { A as Agent } from '../agent-fvQIBLBk.js';
3
3
  import { J as JsonObject, c as CompletionModel } from '../types-DgvozfPc.js';
4
4
  import { ExtractOptions } from '../extractor/index.js';
5
5
  import { z } from 'zod';
@@ -22,6 +22,15 @@ declare class PipelineAgentSuspensionError extends Error {
22
22
  readonly result: AgentInteractionOutcome;
23
23
  constructor(result: AgentInteractionOutcome);
24
24
  }
25
+ type PipelineObserverFailure = {
26
+ readonly observer: string;
27
+ readonly error: unknown;
28
+ };
29
+ declare class PipelineObserverDispatchError extends AggregateError {
30
+ readonly phase: string;
31
+ readonly failures: readonly PipelineObserverFailure[];
32
+ constructor(phase: string, failures: readonly PipelineObserverFailure[]);
33
+ }
25
34
 
26
35
  type PipelineMetadata = {
27
36
  id?: string | undefined;
@@ -35,6 +44,7 @@ type PipelineOptions<Input, Parsed = Input> = {
35
44
  name?: string | undefined;
36
45
  description?: string | undefined;
37
46
  metadata?: JsonObject | undefined;
47
+ observability?: PipelineObservabilityOptions | undefined;
38
48
  };
39
49
  type PipelineStageMetadata = {
40
50
  id: string;
@@ -93,10 +103,69 @@ type PipelineRunEvent = (PipelineRunEventBase & {
93
103
  type PipelineRunObserver = {
94
104
  onEvent(event: PipelineRunEvent): void | Promise<void>;
95
105
  };
106
+ type PipelineTraceOptions = Omit<AgentTraceOptions, "promptRef">;
107
+ type PipelineTraceInfo = AgentTraceInfo;
108
+ type PipelineObserverTraceInfo = AgentObserverTraceInfo;
109
+ type PipelineObserverErrorPolicy = AgentObserverErrorPolicy;
110
+ type PipelineRunStartArgs = {
111
+ readonly runId: string;
112
+ readonly pipelineId: string;
113
+ readonly pipelineName?: string | undefined;
114
+ readonly pipelineDescription?: string | undefined;
115
+ readonly pipelineMetadata?: JsonObject | undefined;
116
+ readonly runMetadata?: JsonObject | undefined;
117
+ readonly trace?: PipelineTraceOptions | undefined;
118
+ readonly input: unknown;
119
+ };
120
+ type PipelineRunEndArgs = {
121
+ readonly runId: string;
122
+ readonly pipelineId: string;
123
+ readonly output: unknown;
124
+ readonly durationMs: number;
125
+ };
126
+ type PipelineRunErrorArgs = {
127
+ readonly runId: string;
128
+ readonly pipelineId: string;
129
+ readonly status: "failed" | "cancelled";
130
+ readonly error: unknown;
131
+ readonly durationMs: number;
132
+ };
133
+ type PipelineStageStartArgs = Readonly<PipelineRunEventBase> & {
134
+ readonly input: unknown;
135
+ };
136
+ type PipelineStageEndArgs = Readonly<PipelineRunEventBase> & {
137
+ readonly output: unknown;
138
+ readonly durationMs: number;
139
+ };
140
+ type PipelineStageErrorArgs = Readonly<PipelineRunEventBase> & {
141
+ readonly error: unknown;
142
+ readonly durationMs: number;
143
+ };
144
+ interface PipelineStageObservation {
145
+ readonly trace?: PipelineObserverTraceInfo | undefined;
146
+ end(args: PipelineStageEndArgs): void | Promise<void>;
147
+ error?(args: PipelineStageErrorArgs): void | Promise<void>;
148
+ }
149
+ interface PipelineRunObservation {
150
+ readonly trace?: PipelineObserverTraceInfo | undefined;
151
+ startStage?(args: PipelineStageStartArgs): PipelineStageObservation | undefined | Promise<PipelineStageObservation | undefined>;
152
+ end(args: PipelineRunEndArgs): void | Promise<void>;
153
+ error?(args: PipelineRunErrorArgs): void | Promise<void>;
154
+ }
155
+ interface PipelineObserver {
156
+ startRun(args: PipelineRunStartArgs): PipelineRunObservation | undefined | Promise<PipelineRunObservation | undefined>;
157
+ }
158
+ type PipelineObserverMap = Readonly<Record<string, PipelineObserver>>;
159
+ type PipelineObservabilityOptions<Observers extends PipelineObserverMap = PipelineObserverMap> = {
160
+ readonly observers: Observers;
161
+ readonly primaryTrace?: Extract<keyof Observers, string> | undefined;
162
+ readonly errorPolicy?: PipelineObserverErrorPolicy | undefined;
163
+ };
96
164
  type PipelineRunOptions<Input> = {
97
165
  input: Input;
98
166
  runId?: string | undefined;
99
167
  metadata?: JsonObject | undefined;
168
+ trace?: PipelineTraceOptions | undefined;
100
169
  abortSignal?: AbortSignal | undefined;
101
170
  observer?: PipelineRunObserver | undefined;
102
171
  failOnObserverError?: boolean | undefined;
@@ -104,11 +173,13 @@ type PipelineRunOptions<Input> = {
104
173
  type PipelineRunResult<Output> = {
105
174
  runId: string;
106
175
  output: Awaited<Output>;
176
+ trace?: PipelineTraceInfo | undefined;
107
177
  };
108
178
  type PipelineBatchOptions<Input> = {
109
179
  inputs: Iterable<Input>;
110
180
  concurrency: number;
111
181
  metadata?: JsonObject | undefined;
182
+ trace?: PipelineTraceOptions | undefined;
112
183
  abortSignal?: AbortSignal | undefined;
113
184
  observer?: PipelineRunObserver | undefined;
114
185
  failOnObserverError?: boolean | undefined;
@@ -117,6 +188,7 @@ type PipelineBatchItem<Output> = {
117
188
  status: "completed";
118
189
  runId: string;
119
190
  output: Awaited<Output>;
191
+ trace?: PipelineTraceInfo | undefined;
120
192
  } | {
121
193
  status: "failed";
122
194
  runId: string;
@@ -152,6 +224,7 @@ declare class Pipeline<Input, Output = Input> {
152
224
  readonly name: string | undefined;
153
225
  readonly description: string | undefined;
154
226
  readonly metadata: JsonObject | undefined;
227
+ readonly observability: PipelineOptions<Input>["observability"];
155
228
  private readonly executor;
156
229
  private readonly state;
157
230
  constructor(options: PipelineOptions<Input, Output>);
@@ -167,4 +240,4 @@ declare class Pipeline<Input, Output = Input> {
167
240
  private execute;
168
241
  }
169
242
 
170
- export { type ParallelOutput, Pipeline, type PipelineAgentOptions, PipelineAgentSuspensionError, type PipelineBatchItem, type PipelineBatchOptions, type PipelineComposeOptions, type PipelineExtractOptions, type PipelineGraph, type PipelineGraphEdge, type PipelineGraphNode, type PipelineMetadata, type PipelineNodePath, type PipelineOptions, type PipelineParallelOptions, type PipelineRunEvent, type PipelineRunObserver, type PipelineRunOptions, type PipelineRunResult, type PipelineStageContext, type PipelineStageKind, type PipelineStageMetadata, type PipelineStepOptions };
243
+ export { type ParallelOutput, Pipeline, type PipelineAgentOptions, PipelineAgentSuspensionError, type PipelineBatchItem, type PipelineBatchOptions, type PipelineComposeOptions, type PipelineExtractOptions, type PipelineGraph, type PipelineGraphEdge, type PipelineGraphNode, type PipelineMetadata, type PipelineNodePath, type PipelineObservabilityOptions, type PipelineObserver, PipelineObserverDispatchError, type PipelineObserverErrorPolicy, type PipelineObserverFailure, type PipelineObserverMap, type PipelineObserverTraceInfo, type PipelineOptions, type PipelineParallelOptions, type PipelineRunEndArgs, type PipelineRunErrorArgs, type PipelineRunEvent, type PipelineRunObservation, type PipelineRunObserver, type PipelineRunOptions, type PipelineRunResult, type PipelineRunStartArgs, type PipelineStageContext, type PipelineStageEndArgs, type PipelineStageErrorArgs, type PipelineStageKind, type PipelineStageMetadata, type PipelineStageObservation, type PipelineStageStartArgs, type PipelineStepOptions, type PipelineTraceInfo, type PipelineTraceOptions };