@langchain/langgraph 1.4.15-rc.0 → 1.4.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/constants.cjs.map +1 -1
  2. package/dist/constants.d.cts +6 -0
  3. package/dist/constants.d.cts.map +1 -1
  4. package/dist/constants.d.ts +6 -0
  5. package/dist/constants.d.ts.map +1 -1
  6. package/dist/constants.js.map +1 -1
  7. package/dist/func/index.cjs +1 -1
  8. package/dist/func/index.js +1 -1
  9. package/dist/graph/state.cjs +1 -3
  10. package/dist/graph/state.cjs.map +1 -1
  11. package/dist/graph/state.d.cts +2 -4
  12. package/dist/graph/state.d.cts.map +1 -1
  13. package/dist/graph/state.d.ts +2 -4
  14. package/dist/graph/state.d.ts.map +1 -1
  15. package/dist/graph/state.js +1 -3
  16. package/dist/graph/state.js.map +1 -1
  17. package/dist/index.cjs +4 -6
  18. package/dist/index.cjs.map +1 -1
  19. package/dist/index.d.cts +3 -3
  20. package/dist/index.d.ts +3 -3
  21. package/dist/index.js +1 -2
  22. package/dist/index.js.map +1 -1
  23. package/dist/interrupt.cjs +19 -7
  24. package/dist/interrupt.cjs.map +1 -1
  25. package/dist/interrupt.d.cts +20 -3
  26. package/dist/interrupt.d.cts.map +1 -1
  27. package/dist/interrupt.d.ts +20 -3
  28. package/dist/interrupt.d.ts.map +1 -1
  29. package/dist/interrupt.js +19 -7
  30. package/dist/interrupt.js.map +1 -1
  31. package/dist/pregel/algo.cjs +1 -1
  32. package/dist/pregel/algo.js +1 -1
  33. package/dist/pregel/index.cjs +1 -1
  34. package/dist/pregel/index.js +1 -1
  35. package/dist/pregel/loop.cjs +1 -1
  36. package/dist/pregel/loop.js +1 -1
  37. package/dist/pregel/read.cjs +7 -18
  38. package/dist/pregel/read.cjs.map +1 -1
  39. package/dist/pregel/read.d.cts +1 -3
  40. package/dist/pregel/read.d.cts.map +1 -1
  41. package/dist/pregel/read.d.ts +1 -3
  42. package/dist/pregel/read.d.ts.map +1 -1
  43. package/dist/pregel/read.js +7 -18
  44. package/dist/pregel/read.js.map +1 -1
  45. package/dist/pregel/runner.cjs +1 -1
  46. package/dist/pregel/runner.js +1 -1
  47. package/dist/pregel/utils/index.cjs +0 -8
  48. package/dist/pregel/utils/index.cjs.map +1 -1
  49. package/dist/pregel/utils/index.d.cts +1 -37
  50. package/dist/pregel/utils/index.d.cts.map +1 -1
  51. package/dist/pregel/utils/index.d.ts +1 -37
  52. package/dist/pregel/utils/index.d.ts.map +1 -1
  53. package/dist/pregel/utils/index.js +1 -8
  54. package/dist/pregel/utils/index.js.map +1 -1
  55. package/dist/web.cjs +4 -6
  56. package/dist/web.d.cts +3 -3
  57. package/dist/web.d.ts +3 -3
  58. package/dist/web.js +1 -2
  59. package/package.json +5 -5
  60. package/dist/pregel/runnable.cjs +0 -103
  61. package/dist/pregel/runnable.cjs.map +0 -1
  62. package/dist/pregel/runnable.js +0 -103
  63. package/dist/pregel/runnable.js.map +0 -1
@@ -1,103 +0,0 @@
1
- const require_index = require("./utils/index.cjs");
2
- let _langchain_core_runnables = require("@langchain/core/runnables");
3
- //#region src/pregel/runnable.ts
4
- function tracePayload(value, processor) {
5
- if (processor === void 0) return value;
6
- try {
7
- return processor(value);
8
- } catch (error) {
9
- console.warn("Trace input/output processor raised; recording untransformed payload", error);
10
- return value;
11
- }
12
- }
13
- /**
14
- * A node sequence with transforms at its own tracing boundaries. Keep execution
15
- * and child callback propagation aligned with Core's RunnableSequence; only the
16
- * values passed to handleChainStart/handleChainEnd are transformed.
17
- * @internal
18
- */
19
- var RunnableSeq = class extends _langchain_core_runnables.RunnableSequence {
20
- tracePolicy;
21
- constructor(fields) {
22
- const { tracePolicy, ...sequenceFields } = fields;
23
- super(sequenceFields);
24
- this.tracePolicy = tracePolicy;
25
- }
26
- async startTrace(input, config) {
27
- const payload = tracePayload(input, this.tracePolicy?.processInputs);
28
- return (await (0, _langchain_core_runnables.getCallbackManagerForConfig)(config))?.handleChainStart(this.toJSON(), require_index._coerceToDict(payload, "input"), config.runId, void 0, void 0, void 0, config.runName);
29
- }
30
- async endTrace(output, manager) {
31
- const payload = tracePayload(output, this.tracePolicy?.processOutputs);
32
- await manager?.handleChainEnd(require_index._coerceToDict(payload, "output"));
33
- }
34
- async invoke(input, options) {
35
- const config = (0, _langchain_core_runnables.ensureConfig)(options);
36
- const manager = await this.startTrace(input, config);
37
- delete config.runId;
38
- let nextInput = input;
39
- let output;
40
- try {
41
- const steps = [this.first, ...this.middle];
42
- for (let i = 0; i < steps.length; i += 1) nextInput = await (0, _langchain_core_runnables.raceWithSignal)(steps[i].invoke(nextInput, (0, _langchain_core_runnables.patchConfig)(config, { callbacks: manager?.getChild(this.omitSequenceTags ? void 0 : `seq:step:${i + 1}`) })), config.signal);
43
- if (config.signal?.aborted) await (0, _langchain_core_runnables.raceWithSignal)(Promise.resolve(), config.signal);
44
- output = await this.last.invoke(nextInput, (0, _langchain_core_runnables.patchConfig)(config, { callbacks: manager?.getChild(this.omitSequenceTags ? void 0 : `seq:step:${this.steps.length}`) }));
45
- } catch (error) {
46
- await manager?.handleChainError(error);
47
- throw error;
48
- }
49
- await this.endTrace(output, manager);
50
- return output;
51
- }
52
- async batch(inputs, options, batchOptions) {
53
- const configList = this._getOptionsList(options ?? {}, inputs.length);
54
- const managers = await Promise.all(configList.map(async (config, i) => {
55
- const manager = await this.startTrace(inputs[i], config);
56
- delete config.runId;
57
- return manager;
58
- }));
59
- let outputs = inputs;
60
- try {
61
- for (let i = 0; i < this.steps.length; i += 1) outputs = await (0, _langchain_core_runnables.raceWithSignal)(this.steps[i].batch(outputs, managers.map((manager, j) => (0, _langchain_core_runnables.patchConfig)(configList[j], { callbacks: manager?.getChild(this.omitSequenceTags ? void 0 : `seq:step:${i + 1}`) })), batchOptions), configList[0]?.signal);
62
- } catch (error) {
63
- await Promise.all(managers.map((manager) => manager?.handleChainError(error)));
64
- throw error;
65
- }
66
- await Promise.all(managers.map((manager, i) => this.endTrace(outputs[i], manager)));
67
- return outputs;
68
- }
69
- async *_streamIterator(input, options) {
70
- const config = (0, _langchain_core_runnables.ensureConfig)(options);
71
- const manager = await this.startTrace(input, config);
72
- delete config.runId;
73
- const steps = this.steps;
74
- let output;
75
- let concatSupported = true;
76
- async function* inputGenerator() {
77
- yield input;
78
- }
79
- try {
80
- let generator = steps[0].transform(inputGenerator(), (0, _langchain_core_runnables.patchConfig)(config, { callbacks: manager?.getChild(this.omitSequenceTags ? void 0 : "seq:step:1") }));
81
- for (let i = 1; i < steps.length; i += 1) generator = steps[i].transform(generator, (0, _langchain_core_runnables.patchConfig)(config, { callbacks: manager?.getChild(this.omitSequenceTags ? void 0 : `seq:step:${i + 1}`) }));
82
- for await (const chunk of generator) {
83
- config.signal?.throwIfAborted();
84
- yield chunk;
85
- if (concatSupported) if (output === void 0) output = chunk;
86
- else try {
87
- output = this._concatOutputChunks(output, chunk);
88
- } catch {
89
- output = void 0;
90
- concatSupported = false;
91
- }
92
- }
93
- } catch (error) {
94
- await manager?.handleChainError(error);
95
- throw error;
96
- }
97
- await this.endTrace(output, manager);
98
- }
99
- };
100
- //#endregion
101
- exports.RunnableSeq = RunnableSeq;
102
-
103
- //# sourceMappingURL=runnable.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runnable.cjs","names":["RunnableSequence","_coerceToDict"],"sources":["../../src/pregel/runnable.ts"],"sourcesContent":["import type { CallbackManagerForChainRun } from \"@langchain/core/callbacks/manager\";\nimport {\n ensureConfig,\n getCallbackManagerForConfig,\n patchConfig,\n raceWithSignal,\n RunnableSequence,\n type RunnableBatchOptions,\n type RunnableConfig,\n} from \"@langchain/core/runnables\";\nimport { _coerceToDict, type TracePolicy } from \"./utils/index.js\";\n\nfunction tracePayload(\n value: unknown,\n processor: ((value: unknown) => unknown) | undefined\n): unknown {\n if (processor === undefined) return value;\n try {\n return processor(value);\n } catch (error) {\n console.warn(\n \"Trace input/output processor raised; recording untransformed payload\",\n error\n );\n return value;\n }\n}\n\n/**\n * A node sequence with transforms at its own tracing boundaries. Keep execution\n * and child callback propagation aligned with Core's RunnableSequence; only the\n * values passed to handleChainStart/handleChainEnd are transformed.\n * @internal\n */\nexport class RunnableSeq<\n RunInput = unknown,\n RunOutput = unknown,\n> extends RunnableSequence<RunInput, RunOutput> {\n private tracePolicy?: TracePolicy;\n\n constructor(\n fields: ConstructorParameters<\n typeof RunnableSequence<RunInput, RunOutput>\n >[0] & {\n tracePolicy?: TracePolicy;\n }\n ) {\n const { tracePolicy, ...sequenceFields } = fields;\n super(sequenceFields);\n this.tracePolicy = tracePolicy;\n }\n\n private async startTrace(input: RunInput, config: RunnableConfig) {\n // Evaluate outside optional chaining: processors run without callbacks too.\n const payload = tracePayload(input, this.tracePolicy?.processInputs);\n const manager = await getCallbackManagerForConfig(config);\n return manager?.handleChainStart(\n this.toJSON(),\n _coerceToDict(payload, \"input\"),\n config.runId,\n undefined,\n undefined,\n undefined,\n config.runName\n );\n }\n\n private async endTrace(\n output: unknown,\n manager: CallbackManagerForChainRun | undefined\n ) {\n const payload = tracePayload(output, this.tracePolicy?.processOutputs);\n await manager?.handleChainEnd(_coerceToDict(payload, \"output\"));\n }\n\n override async invoke(\n input: RunInput,\n options?: RunnableConfig\n ): Promise<RunOutput> {\n const config = ensureConfig(options);\n const manager = await this.startTrace(input, config);\n delete config.runId;\n let nextInput = input;\n let output: RunOutput;\n try {\n const steps = [this.first, ...this.middle];\n for (let i = 0; i < steps.length; i += 1) {\n nextInput = await raceWithSignal(\n steps[i].invoke(\n nextInput,\n patchConfig(config, {\n callbacks: manager?.getChild(\n this.omitSequenceTags ? undefined : `seq:step:${i + 1}`\n ),\n })\n ),\n config.signal\n );\n }\n if (config.signal?.aborted) {\n // Use Core's abort-error normalization before invoking the last step.\n await raceWithSignal(Promise.resolve(), config.signal);\n }\n output = await this.last.invoke(\n nextInput,\n patchConfig(config, {\n callbacks: manager?.getChild(\n this.omitSequenceTags ? undefined : `seq:step:${this.steps.length}`\n ),\n })\n );\n } catch (error) {\n await manager?.handleChainError(error);\n throw error;\n }\n await this.endTrace(output, manager);\n return output;\n }\n\n override batch(\n inputs: RunInput[],\n options?: Partial<RunnableConfig> | Partial<RunnableConfig>[],\n batchOptions?: RunnableBatchOptions & { returnExceptions?: false }\n ): Promise<RunOutput[]>;\n override batch(\n inputs: RunInput[],\n options?: Partial<RunnableConfig> | Partial<RunnableConfig>[],\n batchOptions?: RunnableBatchOptions & { returnExceptions: true }\n ): Promise<(RunOutput | Error)[]>;\n override batch(\n inputs: RunInput[],\n options?: Partial<RunnableConfig> | Partial<RunnableConfig>[],\n batchOptions?: RunnableBatchOptions\n ): Promise<(RunOutput | Error)[]>;\n override async batch(\n inputs: RunInput[],\n options?: Partial<RunnableConfig> | Partial<RunnableConfig>[],\n batchOptions?: RunnableBatchOptions\n ): Promise<(RunOutput | Error)[]> {\n const configList = this._getOptionsList(options ?? {}, inputs.length);\n const managers = await Promise.all(\n configList.map(async (config, i) => {\n const manager = await this.startTrace(inputs[i], config);\n delete config.runId;\n return manager;\n })\n );\n let outputs: unknown[] = inputs;\n try {\n // Preserve RunnableSequence's step-wise batching so child runnables can\n // use their native batch implementations and handle returnExceptions.\n for (let i = 0; i < this.steps.length; i += 1) {\n outputs = await raceWithSignal(\n this.steps[i].batch(\n outputs,\n managers.map((manager, j) =>\n patchConfig(configList[j], {\n callbacks: manager?.getChild(\n this.omitSequenceTags ? undefined : `seq:step:${i + 1}`\n ),\n })\n ),\n batchOptions\n ),\n configList[0]?.signal\n );\n }\n } catch (error) {\n await Promise.all(\n managers.map((manager) => manager?.handleChainError(error))\n );\n throw error;\n }\n await Promise.all(\n managers.map((manager, i) => this.endTrace(outputs[i], manager))\n );\n return outputs as (RunOutput | Error)[];\n }\n\n override async *_streamIterator(input: RunInput, options?: RunnableConfig) {\n const config = ensureConfig(options);\n const manager = await this.startTrace(input, config);\n delete config.runId;\n const steps = this.steps;\n let output: RunOutput | undefined;\n let concatSupported = true;\n async function* inputGenerator() {\n yield input;\n }\n try {\n let generator = steps[0].transform(\n inputGenerator(),\n patchConfig(config, {\n callbacks: manager?.getChild(\n this.omitSequenceTags ? undefined : \"seq:step:1\"\n ),\n })\n );\n for (let i = 1; i < steps.length; i += 1) {\n generator = steps[i].transform(\n generator,\n patchConfig(config, {\n callbacks: manager?.getChild(\n this.omitSequenceTags ? undefined : `seq:step:${i + 1}`\n ),\n })\n );\n }\n for await (const chunk of generator) {\n config.signal?.throwIfAborted();\n yield chunk as RunOutput;\n if (concatSupported) {\n if (output === undefined) output = chunk;\n else {\n try {\n output = this._concatOutputChunks(output, chunk);\n } catch {\n output = undefined;\n concatSupported = false;\n }\n }\n }\n }\n } catch (error) {\n await manager?.handleChainError(error);\n throw error;\n }\n await this.endTrace(output, manager);\n }\n}\n"],"mappings":"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"}
@@ -1,103 +0,0 @@
1
- import { _coerceToDict } from "./utils/index.js";
2
- import { RunnableSequence, ensureConfig, getCallbackManagerForConfig, patchConfig, raceWithSignal } from "@langchain/core/runnables";
3
- //#region src/pregel/runnable.ts
4
- function tracePayload(value, processor) {
5
- if (processor === void 0) return value;
6
- try {
7
- return processor(value);
8
- } catch (error) {
9
- console.warn("Trace input/output processor raised; recording untransformed payload", error);
10
- return value;
11
- }
12
- }
13
- /**
14
- * A node sequence with transforms at its own tracing boundaries. Keep execution
15
- * and child callback propagation aligned with Core's RunnableSequence; only the
16
- * values passed to handleChainStart/handleChainEnd are transformed.
17
- * @internal
18
- */
19
- var RunnableSeq = class extends RunnableSequence {
20
- tracePolicy;
21
- constructor(fields) {
22
- const { tracePolicy, ...sequenceFields } = fields;
23
- super(sequenceFields);
24
- this.tracePolicy = tracePolicy;
25
- }
26
- async startTrace(input, config) {
27
- const payload = tracePayload(input, this.tracePolicy?.processInputs);
28
- return (await getCallbackManagerForConfig(config))?.handleChainStart(this.toJSON(), _coerceToDict(payload, "input"), config.runId, void 0, void 0, void 0, config.runName);
29
- }
30
- async endTrace(output, manager) {
31
- const payload = tracePayload(output, this.tracePolicy?.processOutputs);
32
- await manager?.handleChainEnd(_coerceToDict(payload, "output"));
33
- }
34
- async invoke(input, options) {
35
- const config = ensureConfig(options);
36
- const manager = await this.startTrace(input, config);
37
- delete config.runId;
38
- let nextInput = input;
39
- let output;
40
- try {
41
- const steps = [this.first, ...this.middle];
42
- for (let i = 0; i < steps.length; i += 1) nextInput = await raceWithSignal(steps[i].invoke(nextInput, patchConfig(config, { callbacks: manager?.getChild(this.omitSequenceTags ? void 0 : `seq:step:${i + 1}`) })), config.signal);
43
- if (config.signal?.aborted) await raceWithSignal(Promise.resolve(), config.signal);
44
- output = await this.last.invoke(nextInput, patchConfig(config, { callbacks: manager?.getChild(this.omitSequenceTags ? void 0 : `seq:step:${this.steps.length}`) }));
45
- } catch (error) {
46
- await manager?.handleChainError(error);
47
- throw error;
48
- }
49
- await this.endTrace(output, manager);
50
- return output;
51
- }
52
- async batch(inputs, options, batchOptions) {
53
- const configList = this._getOptionsList(options ?? {}, inputs.length);
54
- const managers = await Promise.all(configList.map(async (config, i) => {
55
- const manager = await this.startTrace(inputs[i], config);
56
- delete config.runId;
57
- return manager;
58
- }));
59
- let outputs = inputs;
60
- try {
61
- for (let i = 0; i < this.steps.length; i += 1) outputs = await raceWithSignal(this.steps[i].batch(outputs, managers.map((manager, j) => patchConfig(configList[j], { callbacks: manager?.getChild(this.omitSequenceTags ? void 0 : `seq:step:${i + 1}`) })), batchOptions), configList[0]?.signal);
62
- } catch (error) {
63
- await Promise.all(managers.map((manager) => manager?.handleChainError(error)));
64
- throw error;
65
- }
66
- await Promise.all(managers.map((manager, i) => this.endTrace(outputs[i], manager)));
67
- return outputs;
68
- }
69
- async *_streamIterator(input, options) {
70
- const config = ensureConfig(options);
71
- const manager = await this.startTrace(input, config);
72
- delete config.runId;
73
- const steps = this.steps;
74
- let output;
75
- let concatSupported = true;
76
- async function* inputGenerator() {
77
- yield input;
78
- }
79
- try {
80
- let generator = steps[0].transform(inputGenerator(), patchConfig(config, { callbacks: manager?.getChild(this.omitSequenceTags ? void 0 : "seq:step:1") }));
81
- for (let i = 1; i < steps.length; i += 1) generator = steps[i].transform(generator, patchConfig(config, { callbacks: manager?.getChild(this.omitSequenceTags ? void 0 : `seq:step:${i + 1}`) }));
82
- for await (const chunk of generator) {
83
- config.signal?.throwIfAborted();
84
- yield chunk;
85
- if (concatSupported) if (output === void 0) output = chunk;
86
- else try {
87
- output = this._concatOutputChunks(output, chunk);
88
- } catch {
89
- output = void 0;
90
- concatSupported = false;
91
- }
92
- }
93
- } catch (error) {
94
- await manager?.handleChainError(error);
95
- throw error;
96
- }
97
- await this.endTrace(output, manager);
98
- }
99
- };
100
- //#endregion
101
- export { RunnableSeq };
102
-
103
- //# sourceMappingURL=runnable.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runnable.js","names":[],"sources":["../../src/pregel/runnable.ts"],"sourcesContent":["import type { CallbackManagerForChainRun } from \"@langchain/core/callbacks/manager\";\nimport {\n ensureConfig,\n getCallbackManagerForConfig,\n patchConfig,\n raceWithSignal,\n RunnableSequence,\n type RunnableBatchOptions,\n type RunnableConfig,\n} from \"@langchain/core/runnables\";\nimport { _coerceToDict, type TracePolicy } from \"./utils/index.js\";\n\nfunction tracePayload(\n value: unknown,\n processor: ((value: unknown) => unknown) | undefined\n): unknown {\n if (processor === undefined) return value;\n try {\n return processor(value);\n } catch (error) {\n console.warn(\n \"Trace input/output processor raised; recording untransformed payload\",\n error\n );\n return value;\n }\n}\n\n/**\n * A node sequence with transforms at its own tracing boundaries. Keep execution\n * and child callback propagation aligned with Core's RunnableSequence; only the\n * values passed to handleChainStart/handleChainEnd are transformed.\n * @internal\n */\nexport class RunnableSeq<\n RunInput = unknown,\n RunOutput = unknown,\n> extends RunnableSequence<RunInput, RunOutput> {\n private tracePolicy?: TracePolicy;\n\n constructor(\n fields: ConstructorParameters<\n typeof RunnableSequence<RunInput, RunOutput>\n >[0] & {\n tracePolicy?: TracePolicy;\n }\n ) {\n const { tracePolicy, ...sequenceFields } = fields;\n super(sequenceFields);\n this.tracePolicy = tracePolicy;\n }\n\n private async startTrace(input: RunInput, config: RunnableConfig) {\n // Evaluate outside optional chaining: processors run without callbacks too.\n const payload = tracePayload(input, this.tracePolicy?.processInputs);\n const manager = await getCallbackManagerForConfig(config);\n return manager?.handleChainStart(\n this.toJSON(),\n _coerceToDict(payload, \"input\"),\n config.runId,\n undefined,\n undefined,\n undefined,\n config.runName\n );\n }\n\n private async endTrace(\n output: unknown,\n manager: CallbackManagerForChainRun | undefined\n ) {\n const payload = tracePayload(output, this.tracePolicy?.processOutputs);\n await manager?.handleChainEnd(_coerceToDict(payload, \"output\"));\n }\n\n override async invoke(\n input: RunInput,\n options?: RunnableConfig\n ): Promise<RunOutput> {\n const config = ensureConfig(options);\n const manager = await this.startTrace(input, config);\n delete config.runId;\n let nextInput = input;\n let output: RunOutput;\n try {\n const steps = [this.first, ...this.middle];\n for (let i = 0; i < steps.length; i += 1) {\n nextInput = await raceWithSignal(\n steps[i].invoke(\n nextInput,\n patchConfig(config, {\n callbacks: manager?.getChild(\n this.omitSequenceTags ? undefined : `seq:step:${i + 1}`\n ),\n })\n ),\n config.signal\n );\n }\n if (config.signal?.aborted) {\n // Use Core's abort-error normalization before invoking the last step.\n await raceWithSignal(Promise.resolve(), config.signal);\n }\n output = await this.last.invoke(\n nextInput,\n patchConfig(config, {\n callbacks: manager?.getChild(\n this.omitSequenceTags ? undefined : `seq:step:${this.steps.length}`\n ),\n })\n );\n } catch (error) {\n await manager?.handleChainError(error);\n throw error;\n }\n await this.endTrace(output, manager);\n return output;\n }\n\n override batch(\n inputs: RunInput[],\n options?: Partial<RunnableConfig> | Partial<RunnableConfig>[],\n batchOptions?: RunnableBatchOptions & { returnExceptions?: false }\n ): Promise<RunOutput[]>;\n override batch(\n inputs: RunInput[],\n options?: Partial<RunnableConfig> | Partial<RunnableConfig>[],\n batchOptions?: RunnableBatchOptions & { returnExceptions: true }\n ): Promise<(RunOutput | Error)[]>;\n override batch(\n inputs: RunInput[],\n options?: Partial<RunnableConfig> | Partial<RunnableConfig>[],\n batchOptions?: RunnableBatchOptions\n ): Promise<(RunOutput | Error)[]>;\n override async batch(\n inputs: RunInput[],\n options?: Partial<RunnableConfig> | Partial<RunnableConfig>[],\n batchOptions?: RunnableBatchOptions\n ): Promise<(RunOutput | Error)[]> {\n const configList = this._getOptionsList(options ?? {}, inputs.length);\n const managers = await Promise.all(\n configList.map(async (config, i) => {\n const manager = await this.startTrace(inputs[i], config);\n delete config.runId;\n return manager;\n })\n );\n let outputs: unknown[] = inputs;\n try {\n // Preserve RunnableSequence's step-wise batching so child runnables can\n // use their native batch implementations and handle returnExceptions.\n for (let i = 0; i < this.steps.length; i += 1) {\n outputs = await raceWithSignal(\n this.steps[i].batch(\n outputs,\n managers.map((manager, j) =>\n patchConfig(configList[j], {\n callbacks: manager?.getChild(\n this.omitSequenceTags ? undefined : `seq:step:${i + 1}`\n ),\n })\n ),\n batchOptions\n ),\n configList[0]?.signal\n );\n }\n } catch (error) {\n await Promise.all(\n managers.map((manager) => manager?.handleChainError(error))\n );\n throw error;\n }\n await Promise.all(\n managers.map((manager, i) => this.endTrace(outputs[i], manager))\n );\n return outputs as (RunOutput | Error)[];\n }\n\n override async *_streamIterator(input: RunInput, options?: RunnableConfig) {\n const config = ensureConfig(options);\n const manager = await this.startTrace(input, config);\n delete config.runId;\n const steps = this.steps;\n let output: RunOutput | undefined;\n let concatSupported = true;\n async function* inputGenerator() {\n yield input;\n }\n try {\n let generator = steps[0].transform(\n inputGenerator(),\n patchConfig(config, {\n callbacks: manager?.getChild(\n this.omitSequenceTags ? undefined : \"seq:step:1\"\n ),\n })\n );\n for (let i = 1; i < steps.length; i += 1) {\n generator = steps[i].transform(\n generator,\n patchConfig(config, {\n callbacks: manager?.getChild(\n this.omitSequenceTags ? undefined : `seq:step:${i + 1}`\n ),\n })\n );\n }\n for await (const chunk of generator) {\n config.signal?.throwIfAborted();\n yield chunk as RunOutput;\n if (concatSupported) {\n if (output === undefined) output = chunk;\n else {\n try {\n output = this._concatOutputChunks(output, chunk);\n } catch {\n output = undefined;\n concatSupported = false;\n }\n }\n }\n }\n } catch (error) {\n await manager?.handleChainError(error);\n throw error;\n }\n await this.endTrace(output, manager);\n }\n}\n"],"mappings":"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"}