@langchain/langgraph 0.3.3 → 0.3.5
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/graph/zod/zod-registry.d.ts +8 -2
- package/dist/graph/zod/zod-registry.js +1 -1
- package/dist/graph/zod/zod-registry.js.map +1 -1
- package/dist/pregel/debug.cjs +26 -9
- package/dist/pregel/debug.d.ts +3 -2
- package/dist/pregel/debug.js +27 -10
- package/dist/pregel/debug.js.map +1 -1
- package/dist/pregel/debug.test.cjs +83 -20
- package/dist/pregel/debug.test.js +83 -20
- package/dist/pregel/debug.test.js.map +1 -1
- package/dist/pregel/index.cjs +14 -13
- package/dist/pregel/index.d.ts +8 -8
- package/dist/pregel/index.js +16 -15
- package/dist/pregel/index.js.map +1 -1
- package/dist/pregel/loop.cjs +1 -1
- package/dist/pregel/loop.js +1 -1
- package/dist/pregel/loop.js.map +1 -1
- package/dist/pregel/types.d.ts +1 -0
- package/dist/pregel/types.js.map +1 -1
- package/dist/pregel/utils/index.cjs +29 -0
- package/dist/pregel/utils/index.d.ts +8 -0
- package/dist/pregel/utils/index.js +27 -0
- package/dist/pregel/utils/index.js.map +1 -1
- package/package.json +2 -3
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import type * as core from "zod/v4/core";
|
|
1
2
|
import { $ZodType, $ZodRegistry, $replace } from "zod/v4/core";
|
|
2
|
-
import { SchemaMeta, SchemaMetaRegistry } from "./meta.js";
|
|
3
|
+
import { type ReducedZodChannel, type SchemaMeta, type SchemaMetaRegistry } from "./meta.js";
|
|
3
4
|
/**
|
|
4
5
|
* A Zod v4-compatible meta registry that extends the base registry.
|
|
5
6
|
*
|
|
@@ -21,4 +22,9 @@ export declare class LanggraphZodMetaRegistry<Meta extends SchemaMeta = SchemaMe
|
|
|
21
22
|
constructor(parent: SchemaMetaRegistry);
|
|
22
23
|
add<S extends Schema>(schema: S, ..._meta: undefined extends Meta ? [$replace<Meta, S>?] : [$replace<Meta, S>]): this;
|
|
23
24
|
}
|
|
24
|
-
|
|
25
|
+
declare module "zod/v4" {
|
|
26
|
+
interface ZodType<out Output = unknown, out Input = unknown, out Internals extends core.$ZodTypeInternals<Output, Input> = core.$ZodTypeInternals<Output, Input>> extends core.$ZodType<Output, Input, Internals> {
|
|
27
|
+
register<R extends LanggraphZodMetaRegistry, TOutput = core.output<this>, TInput = core.input<this>, TInternals extends core.$ZodTypeInternals<TOutput, TInput> = core.$ZodTypeInternals<TOutput, TInput>>(registry: R, meta: SchemaMeta<TOutput, TInput>): ReducedZodChannel<this, ZodType<TOutput, TInput, TInternals>>;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export declare const registry: LanggraphZodMetaRegistry<SchemaMeta<any, any>, core.$ZodType<unknown, unknown, core.$ZodTypeInternals<unknown, unknown>>>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getInteropZodDefaultGetter } from "@langchain/core/utils/types";
|
|
2
2
|
import { $ZodRegistry } from "zod/v4/core";
|
|
3
|
-
import { schemaMetaRegistry } from "./meta.js";
|
|
3
|
+
import { schemaMetaRegistry, } from "./meta.js";
|
|
4
4
|
/**
|
|
5
5
|
* A Zod v4-compatible meta registry that extends the base registry.
|
|
6
6
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod-registry.js","sourceRoot":"","sources":["../../../src/graph/zod/zod-registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"zod-registry.js","sourceRoot":"","sources":["../../../src/graph/zod/zod-registry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAY,YAAY,EAAY,MAAM,aAAa,CAAC;AAC/D,OAAO,EAIL,kBAAkB,GACnB,MAAM,WAAW,CAAC;AAEnB;;;;;;;;;;GAUG;AACH,MAAM,OAAO,wBAGX,SAAQ,YAA0B;IAClC;;;;OAIG;IACH,YAAsB,MAA0B;QAC9C,KAAK,EAAE,CAAC;QADE;;;;mBAAU,MAAM;WAAoB;QAE9C,4CAA4C;QAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAA+C,CAAC;IAC1E,CAAC;IAED,GAAG,CACD,MAAS,EACT,GAAG,KAEoB;QAEvB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,SAAS,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;YACrC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;YAC9D,IAAI,kBAAkB,IAAI,IAAI,EAAE,CAAC;gBAC/B,6CAA6C;gBAC7C,SAAS,CAAC,OAAO,GAAG,kBAAkB,CAAC;YACzC,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC;IACrC,CAAC;CACF;AA4BD,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,wBAAwB,CAAC,kBAAkB,CAAC,CAAC"}
|
package/dist/pregel/debug.cjs
CHANGED
|
@@ -107,7 +107,7 @@ function* mapDebugTaskResults(step, tasks, streamChannels) {
|
|
|
107
107
|
};
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
|
-
function* mapDebugCheckpoint(step, config, channels, streamChannels, metadata, tasks, pendingWrites, parentConfig) {
|
|
110
|
+
function* mapDebugCheckpoint(step, config, channels, streamChannels, metadata, tasks, pendingWrites, parentConfig, outputKeys) {
|
|
111
111
|
function formatConfig(config) {
|
|
112
112
|
// make sure the config is consistent with Python
|
|
113
113
|
const pyConfig = {};
|
|
@@ -155,21 +155,36 @@ function* mapDebugCheckpoint(step, config, channels, streamChannels, metadata, t
|
|
|
155
155
|
values: (0, io_js_1.readChannels)(channels, streamChannels),
|
|
156
156
|
metadata,
|
|
157
157
|
next: tasks.map((task) => task.name),
|
|
158
|
-
tasks: tasksWithWrites(tasks, pendingWrites, taskStates),
|
|
158
|
+
tasks: tasksWithWrites(tasks, pendingWrites, taskStates, outputKeys),
|
|
159
159
|
parentConfig: parentConfig ? formatConfig(parentConfig) : undefined,
|
|
160
160
|
},
|
|
161
161
|
};
|
|
162
162
|
}
|
|
163
|
-
function tasksWithWrites(tasks, pendingWrites, states) {
|
|
163
|
+
function tasksWithWrites(tasks, pendingWrites, states, outputKeys) {
|
|
164
164
|
return tasks.map((task) => {
|
|
165
165
|
const error = pendingWrites.find(([id, n]) => id === task.id && n === constants_js_1.ERROR)?.[2];
|
|
166
166
|
const interrupts = pendingWrites
|
|
167
|
-
.filter(([id, n]) =>
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
167
|
+
.filter(([id, n]) => id === task.id && n === constants_js_1.INTERRUPT)
|
|
168
|
+
.map(([, , v]) => v);
|
|
169
|
+
const result = (() => {
|
|
170
|
+
if (error || interrupts.length || !pendingWrites.length)
|
|
171
|
+
return undefined;
|
|
172
|
+
const idx = pendingWrites.findIndex(([tid, n]) => tid === task.id && n === constants_js_1.RETURN);
|
|
173
|
+
if (idx >= 0)
|
|
174
|
+
return pendingWrites[idx][2];
|
|
175
|
+
if (typeof outputKeys === "string") {
|
|
176
|
+
return pendingWrites.find(([tid, n]) => tid === task.id && n === outputKeys)?.[2];
|
|
177
|
+
}
|
|
178
|
+
if (Array.isArray(outputKeys)) {
|
|
179
|
+
const results = pendingWrites
|
|
180
|
+
.filter(([tid, n]) => tid === task.id && outputKeys.includes(n))
|
|
181
|
+
.map(([, n, v]) => [n, v]);
|
|
182
|
+
if (!results.length)
|
|
183
|
+
return undefined;
|
|
184
|
+
return Object.fromEntries(results);
|
|
185
|
+
}
|
|
186
|
+
return undefined;
|
|
187
|
+
})();
|
|
173
188
|
if (error) {
|
|
174
189
|
return {
|
|
175
190
|
id: task.id,
|
|
@@ -177,6 +192,7 @@ function tasksWithWrites(tasks, pendingWrites, states) {
|
|
|
177
192
|
path: task.path,
|
|
178
193
|
error,
|
|
179
194
|
interrupts,
|
|
195
|
+
result,
|
|
180
196
|
};
|
|
181
197
|
}
|
|
182
198
|
const taskState = states?.[task.id];
|
|
@@ -186,6 +202,7 @@ function tasksWithWrites(tasks, pendingWrites, states) {
|
|
|
186
202
|
path: task.path,
|
|
187
203
|
interrupts,
|
|
188
204
|
...(taskState !== undefined ? { state: taskState } : {}),
|
|
205
|
+
result,
|
|
189
206
|
};
|
|
190
207
|
});
|
|
191
208
|
}
|
package/dist/pregel/debug.d.ts
CHANGED
|
@@ -35,7 +35,8 @@ export declare function mapDebugTaskResults<N extends PropertyKey, C extends Pro
|
|
|
35
35
|
interrupts: unknown[];
|
|
36
36
|
};
|
|
37
37
|
}, void, unknown>;
|
|
38
|
-
|
|
38
|
+
type ChannelKey = string | number | symbol;
|
|
39
|
+
export declare function mapDebugCheckpoint<N extends PropertyKey, C extends PropertyKey>(step: number, config: RunnableConfig, channels: Record<string, BaseChannel>, streamChannels: string | string[], metadata: CheckpointMetadata, tasks: readonly PregelExecutableTask<N, C>[], pendingWrites: CheckpointPendingWrite[], parentConfig: RunnableConfig | undefined, outputKeys: ChannelKey | ChannelKey[]): Generator<{
|
|
39
40
|
type: string;
|
|
40
41
|
timestamp: string;
|
|
41
42
|
step: number;
|
|
@@ -48,7 +49,7 @@ export declare function mapDebugCheckpoint<N extends PropertyKey, C extends Prop
|
|
|
48
49
|
parentConfig: Partial<Record<"tags" | "metadata" | "callbacks" | "configurable" | "signal" | "timeout" | "run_name" | "max_concurrency" | "recursion_limit" | "run_id", unknown>> | undefined;
|
|
49
50
|
};
|
|
50
51
|
}, void, unknown>;
|
|
51
|
-
export declare function tasksWithWrites<N extends PropertyKey, C extends PropertyKey>(tasks: PregelTaskDescription[] | readonly PregelExecutableTask<N, C>[], pendingWrites: CheckpointPendingWrite[], states
|
|
52
|
+
export declare function tasksWithWrites<N extends PropertyKey, C extends PropertyKey>(tasks: PregelTaskDescription[] | readonly PregelExecutableTask<N, C>[], pendingWrites: CheckpointPendingWrite[], states: Record<string, RunnableConfig | StateSnapshot> | undefined, outputKeys: ChannelKey[] | ChannelKey): PregelTaskDescription[];
|
|
52
53
|
export declare function printStepCheckpoint(step: number, channels: Record<string, BaseChannel<unknown>>, whitelist: string[]): void;
|
|
53
54
|
export declare function printStepTasks<N extends PropertyKey, C extends PropertyKey>(step: number, nextTasks: readonly PregelExecutableTask<N, C>[]): void;
|
|
54
55
|
export declare function printStepWrites(step: number, writes: PendingWrite[], whitelist: string[]): void;
|
package/dist/pregel/debug.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ERROR, INTERRUPT, TAG_HIDDEN } from "../constants.js";
|
|
1
|
+
import { ERROR, INTERRUPT, RETURN, TAG_HIDDEN, } from "../constants.js";
|
|
2
2
|
import { EmptyChannelError } from "../errors.js";
|
|
3
3
|
import { readChannels } from "./io.js";
|
|
4
4
|
import { findSubgraphPregel } from "./utils/subgraph.js";
|
|
@@ -94,7 +94,7 @@ export function* mapDebugTaskResults(step, tasks, streamChannels) {
|
|
|
94
94
|
};
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
|
-
export function* mapDebugCheckpoint(step, config, channels, streamChannels, metadata, tasks, pendingWrites, parentConfig) {
|
|
97
|
+
export function* mapDebugCheckpoint(step, config, channels, streamChannels, metadata, tasks, pendingWrites, parentConfig, outputKeys) {
|
|
98
98
|
function formatConfig(config) {
|
|
99
99
|
// make sure the config is consistent with Python
|
|
100
100
|
const pyConfig = {};
|
|
@@ -142,21 +142,36 @@ export function* mapDebugCheckpoint(step, config, channels, streamChannels, meta
|
|
|
142
142
|
values: readChannels(channels, streamChannels),
|
|
143
143
|
metadata,
|
|
144
144
|
next: tasks.map((task) => task.name),
|
|
145
|
-
tasks: tasksWithWrites(tasks, pendingWrites, taskStates),
|
|
145
|
+
tasks: tasksWithWrites(tasks, pendingWrites, taskStates, outputKeys),
|
|
146
146
|
parentConfig: parentConfig ? formatConfig(parentConfig) : undefined,
|
|
147
147
|
},
|
|
148
148
|
};
|
|
149
149
|
}
|
|
150
|
-
export function tasksWithWrites(tasks, pendingWrites, states) {
|
|
150
|
+
export function tasksWithWrites(tasks, pendingWrites, states, outputKeys) {
|
|
151
151
|
return tasks.map((task) => {
|
|
152
152
|
const error = pendingWrites.find(([id, n]) => id === task.id && n === ERROR)?.[2];
|
|
153
153
|
const interrupts = pendingWrites
|
|
154
|
-
.filter(([id, n]) =>
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
154
|
+
.filter(([id, n]) => id === task.id && n === INTERRUPT)
|
|
155
|
+
.map(([, , v]) => v);
|
|
156
|
+
const result = (() => {
|
|
157
|
+
if (error || interrupts.length || !pendingWrites.length)
|
|
158
|
+
return undefined;
|
|
159
|
+
const idx = pendingWrites.findIndex(([tid, n]) => tid === task.id && n === RETURN);
|
|
160
|
+
if (idx >= 0)
|
|
161
|
+
return pendingWrites[idx][2];
|
|
162
|
+
if (typeof outputKeys === "string") {
|
|
163
|
+
return pendingWrites.find(([tid, n]) => tid === task.id && n === outputKeys)?.[2];
|
|
164
|
+
}
|
|
165
|
+
if (Array.isArray(outputKeys)) {
|
|
166
|
+
const results = pendingWrites
|
|
167
|
+
.filter(([tid, n]) => tid === task.id && outputKeys.includes(n))
|
|
168
|
+
.map(([, n, v]) => [n, v]);
|
|
169
|
+
if (!results.length)
|
|
170
|
+
return undefined;
|
|
171
|
+
return Object.fromEntries(results);
|
|
172
|
+
}
|
|
173
|
+
return undefined;
|
|
174
|
+
})();
|
|
160
175
|
if (error) {
|
|
161
176
|
return {
|
|
162
177
|
id: task.id,
|
|
@@ -164,6 +179,7 @@ export function tasksWithWrites(tasks, pendingWrites, states) {
|
|
|
164
179
|
path: task.path,
|
|
165
180
|
error,
|
|
166
181
|
interrupts,
|
|
182
|
+
result,
|
|
167
183
|
};
|
|
168
184
|
}
|
|
169
185
|
const taskState = states?.[task.id];
|
|
@@ -173,6 +189,7 @@ export function tasksWithWrites(tasks, pendingWrites, states) {
|
|
|
173
189
|
path: task.path,
|
|
174
190
|
interrupts,
|
|
175
191
|
...(taskState !== undefined ? { state: taskState } : {}),
|
|
192
|
+
result,
|
|
176
193
|
};
|
|
177
194
|
});
|
|
178
195
|
}
|
package/dist/pregel/debug.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/pregel/debug.ts"],"names":[],"mappings":"AAOA,OAAO,
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/pregel/debug.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ const vitest_1 = require("vitest");
|
|
|
4
4
|
const debug_js_1 = require("./debug.cjs");
|
|
5
5
|
const last_value_js_1 = require("../channels/last_value.cjs");
|
|
6
6
|
const errors_js_1 = require("../errors.cjs");
|
|
7
|
+
const constants_js_1 = require("../constants.cjs");
|
|
7
8
|
(0, vitest_1.describe)("wrap", () => {
|
|
8
9
|
(0, vitest_1.it)("should wrap text with color codes", () => {
|
|
9
10
|
const color = {
|
|
@@ -91,21 +92,24 @@ const errors_js_1 = require("../errors.cjs");
|
|
|
91
92
|
{
|
|
92
93
|
id: "task1",
|
|
93
94
|
name: "Task 1",
|
|
94
|
-
path: [
|
|
95
|
+
path: [constants_js_1.PULL, "Task 1"],
|
|
95
96
|
interrupts: [],
|
|
96
97
|
},
|
|
97
98
|
{
|
|
98
99
|
id: "task2",
|
|
99
100
|
name: "Task 2",
|
|
100
|
-
path: [
|
|
101
|
+
path: [constants_js_1.PULL, "Task 2"],
|
|
101
102
|
interrupts: [],
|
|
102
103
|
},
|
|
103
104
|
];
|
|
104
105
|
const pendingWrites = [];
|
|
105
|
-
const result = (0, debug_js_1.tasksWithWrites)(tasks, pendingWrites
|
|
106
|
+
const result = (0, debug_js_1.tasksWithWrites)(tasks, pendingWrites, undefined, [
|
|
107
|
+
"Task 1",
|
|
108
|
+
"Task 2",
|
|
109
|
+
]);
|
|
106
110
|
(0, vitest_1.expect)(result).toEqual([
|
|
107
|
-
{ id: "task1", name: "Task 1", path: [
|
|
108
|
-
{ id: "task2", name: "Task 2", path: [
|
|
111
|
+
{ id: "task1", name: "Task 1", path: [constants_js_1.PULL, "Task 1"], interrupts: [] },
|
|
112
|
+
{ id: "task2", name: "Task 2", path: [constants_js_1.PULL, "Task 2"], interrupts: [] },
|
|
109
113
|
]);
|
|
110
114
|
});
|
|
111
115
|
(0, vitest_1.it)("should include error information", () => {
|
|
@@ -113,29 +117,32 @@ const errors_js_1 = require("../errors.cjs");
|
|
|
113
117
|
{
|
|
114
118
|
id: "task1",
|
|
115
119
|
name: "Task 1",
|
|
116
|
-
path: [
|
|
120
|
+
path: [constants_js_1.PULL, "Task 1"],
|
|
117
121
|
interrupts: [],
|
|
118
122
|
},
|
|
119
123
|
{
|
|
120
124
|
id: "task2",
|
|
121
125
|
name: "Task 2",
|
|
122
|
-
path: [
|
|
126
|
+
path: [constants_js_1.PULL, "Task 2"],
|
|
123
127
|
interrupts: [],
|
|
124
128
|
},
|
|
125
129
|
];
|
|
126
130
|
const pendingWrites = [
|
|
127
|
-
["task1",
|
|
131
|
+
["task1", constants_js_1.ERROR, { message: "Test error" }],
|
|
128
132
|
];
|
|
129
|
-
const result = (0, debug_js_1.tasksWithWrites)(tasks, pendingWrites
|
|
133
|
+
const result = (0, debug_js_1.tasksWithWrites)(tasks, pendingWrites, undefined, [
|
|
134
|
+
"Task 1",
|
|
135
|
+
"Task 2",
|
|
136
|
+
]);
|
|
130
137
|
(0, vitest_1.expect)(result).toEqual([
|
|
131
138
|
{
|
|
132
139
|
id: "task1",
|
|
133
140
|
name: "Task 1",
|
|
134
|
-
path: [
|
|
141
|
+
path: [constants_js_1.PULL, "Task 1"],
|
|
135
142
|
error: { message: "Test error" },
|
|
136
143
|
interrupts: [],
|
|
137
144
|
},
|
|
138
|
-
{ id: "task2", name: "Task 2", path: [
|
|
145
|
+
{ id: "task2", name: "Task 2", path: [constants_js_1.PULL, "Task 2"], interrupts: [] },
|
|
139
146
|
]);
|
|
140
147
|
});
|
|
141
148
|
(0, vitest_1.it)("should include state information", () => {
|
|
@@ -143,13 +150,13 @@ const errors_js_1 = require("../errors.cjs");
|
|
|
143
150
|
{
|
|
144
151
|
id: "task1",
|
|
145
152
|
name: "Task 1",
|
|
146
|
-
path: [
|
|
153
|
+
path: [constants_js_1.PULL, "Task 1"],
|
|
147
154
|
interrupts: [],
|
|
148
155
|
},
|
|
149
156
|
{
|
|
150
157
|
id: "task2",
|
|
151
158
|
name: "Task 2",
|
|
152
|
-
path: [
|
|
159
|
+
path: [constants_js_1.PULL, "Task 2"],
|
|
153
160
|
interrupts: [],
|
|
154
161
|
},
|
|
155
162
|
];
|
|
@@ -157,16 +164,19 @@ const errors_js_1 = require("../errors.cjs");
|
|
|
157
164
|
const states = {
|
|
158
165
|
task1: { configurable: { key: "value" } },
|
|
159
166
|
};
|
|
160
|
-
const result = (0, debug_js_1.tasksWithWrites)(tasks, pendingWrites, states
|
|
167
|
+
const result = (0, debug_js_1.tasksWithWrites)(tasks, pendingWrites, states, [
|
|
168
|
+
"Task 1",
|
|
169
|
+
"Task 2",
|
|
170
|
+
]);
|
|
161
171
|
(0, vitest_1.expect)(result).toEqual([
|
|
162
172
|
{
|
|
163
173
|
id: "task1",
|
|
164
174
|
name: "Task 1",
|
|
165
|
-
path: [
|
|
175
|
+
path: [constants_js_1.PULL, "Task 1"],
|
|
166
176
|
interrupts: [],
|
|
167
177
|
state: { configurable: { key: "value" } },
|
|
168
178
|
},
|
|
169
|
-
{ id: "task2", name: "Task 2", path: [
|
|
179
|
+
{ id: "task2", name: "Task 2", path: [constants_js_1.PULL, "Task 2"], interrupts: [] },
|
|
170
180
|
]);
|
|
171
181
|
});
|
|
172
182
|
(0, vitest_1.it)("should include interrupts", () => {
|
|
@@ -174,22 +184,75 @@ const errors_js_1 = require("../errors.cjs");
|
|
|
174
184
|
{
|
|
175
185
|
id: "task1",
|
|
176
186
|
name: "Task 1",
|
|
177
|
-
path: [
|
|
187
|
+
path: [constants_js_1.PULL, "Task 1"],
|
|
178
188
|
interrupts: [],
|
|
179
189
|
},
|
|
180
190
|
];
|
|
181
191
|
const pendingWrites = [
|
|
182
|
-
["task1",
|
|
192
|
+
["task1", constants_js_1.INTERRUPT, { value: "Interrupted", when: "during" }],
|
|
183
193
|
];
|
|
184
|
-
const result = (0, debug_js_1.tasksWithWrites)(tasks, pendingWrites);
|
|
194
|
+
const result = (0, debug_js_1.tasksWithWrites)(tasks, pendingWrites, undefined, ["task1"]);
|
|
185
195
|
(0, vitest_1.expect)(result).toEqual([
|
|
186
196
|
{
|
|
187
197
|
id: "task1",
|
|
188
198
|
name: "Task 1",
|
|
189
|
-
path: [
|
|
199
|
+
path: [constants_js_1.PULL, "Task 1"],
|
|
190
200
|
interrupts: [{ value: "Interrupted", when: "during" }],
|
|
191
201
|
},
|
|
192
202
|
]);
|
|
193
203
|
});
|
|
204
|
+
(0, vitest_1.it)("should include results", () => {
|
|
205
|
+
const tasks = [
|
|
206
|
+
{
|
|
207
|
+
id: "task1",
|
|
208
|
+
name: "Task 1",
|
|
209
|
+
path: [constants_js_1.PULL, "Task 1"],
|
|
210
|
+
interrupts: [],
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
id: "task2",
|
|
214
|
+
name: "Task 2",
|
|
215
|
+
path: [constants_js_1.PULL, "Task 2"],
|
|
216
|
+
interrupts: [],
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
id: "task3",
|
|
220
|
+
name: "Task 3",
|
|
221
|
+
path: [constants_js_1.PULL, "Task 3"],
|
|
222
|
+
interrupts: [],
|
|
223
|
+
},
|
|
224
|
+
];
|
|
225
|
+
const pendingWrites = [
|
|
226
|
+
["task1", "Task 1", "Result"],
|
|
227
|
+
["task2", "Task 2", "Result 2"],
|
|
228
|
+
];
|
|
229
|
+
const result = (0, debug_js_1.tasksWithWrites)(tasks, pendingWrites, undefined, [
|
|
230
|
+
"Task 1",
|
|
231
|
+
"Task 2",
|
|
232
|
+
]);
|
|
233
|
+
(0, vitest_1.expect)(result).toEqual([
|
|
234
|
+
{
|
|
235
|
+
id: "task1",
|
|
236
|
+
name: "Task 1",
|
|
237
|
+
path: [constants_js_1.PULL, "Task 1"],
|
|
238
|
+
interrupts: [],
|
|
239
|
+
result: { "Task 1": "Result" },
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
id: "task2",
|
|
243
|
+
name: "Task 2",
|
|
244
|
+
path: [constants_js_1.PULL, "Task 2"],
|
|
245
|
+
interrupts: [],
|
|
246
|
+
result: { "Task 2": "Result 2" },
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
id: "task3",
|
|
250
|
+
name: "Task 3",
|
|
251
|
+
path: [constants_js_1.PULL, "Task 3"],
|
|
252
|
+
interrupts: [],
|
|
253
|
+
result: undefined,
|
|
254
|
+
},
|
|
255
|
+
]);
|
|
256
|
+
});
|
|
194
257
|
});
|
|
195
258
|
//# sourceMappingURL=debug.test.js.map
|
|
@@ -2,6 +2,7 @@ import { describe, expect, it, vi } from "vitest";
|
|
|
2
2
|
import { wrap, tasksWithWrites, _readChannels } from "./debug.js";
|
|
3
3
|
import { LastValue } from "../channels/last_value.js";
|
|
4
4
|
import { EmptyChannelError } from "../errors.js";
|
|
5
|
+
import { ERROR, INTERRUPT, PULL } from "../constants.js";
|
|
5
6
|
describe("wrap", () => {
|
|
6
7
|
it("should wrap text with color codes", () => {
|
|
7
8
|
const color = {
|
|
@@ -89,21 +90,24 @@ describe("tasksWithWrites", () => {
|
|
|
89
90
|
{
|
|
90
91
|
id: "task1",
|
|
91
92
|
name: "Task 1",
|
|
92
|
-
path: [
|
|
93
|
+
path: [PULL, "Task 1"],
|
|
93
94
|
interrupts: [],
|
|
94
95
|
},
|
|
95
96
|
{
|
|
96
97
|
id: "task2",
|
|
97
98
|
name: "Task 2",
|
|
98
|
-
path: [
|
|
99
|
+
path: [PULL, "Task 2"],
|
|
99
100
|
interrupts: [],
|
|
100
101
|
},
|
|
101
102
|
];
|
|
102
103
|
const pendingWrites = [];
|
|
103
|
-
const result = tasksWithWrites(tasks, pendingWrites
|
|
104
|
+
const result = tasksWithWrites(tasks, pendingWrites, undefined, [
|
|
105
|
+
"Task 1",
|
|
106
|
+
"Task 2",
|
|
107
|
+
]);
|
|
104
108
|
expect(result).toEqual([
|
|
105
|
-
{ id: "task1", name: "Task 1", path: [
|
|
106
|
-
{ id: "task2", name: "Task 2", path: [
|
|
109
|
+
{ id: "task1", name: "Task 1", path: [PULL, "Task 1"], interrupts: [] },
|
|
110
|
+
{ id: "task2", name: "Task 2", path: [PULL, "Task 2"], interrupts: [] },
|
|
107
111
|
]);
|
|
108
112
|
});
|
|
109
113
|
it("should include error information", () => {
|
|
@@ -111,29 +115,32 @@ describe("tasksWithWrites", () => {
|
|
|
111
115
|
{
|
|
112
116
|
id: "task1",
|
|
113
117
|
name: "Task 1",
|
|
114
|
-
path: [
|
|
118
|
+
path: [PULL, "Task 1"],
|
|
115
119
|
interrupts: [],
|
|
116
120
|
},
|
|
117
121
|
{
|
|
118
122
|
id: "task2",
|
|
119
123
|
name: "Task 2",
|
|
120
|
-
path: [
|
|
124
|
+
path: [PULL, "Task 2"],
|
|
121
125
|
interrupts: [],
|
|
122
126
|
},
|
|
123
127
|
];
|
|
124
128
|
const pendingWrites = [
|
|
125
|
-
["task1",
|
|
129
|
+
["task1", ERROR, { message: "Test error" }],
|
|
126
130
|
];
|
|
127
|
-
const result = tasksWithWrites(tasks, pendingWrites
|
|
131
|
+
const result = tasksWithWrites(tasks, pendingWrites, undefined, [
|
|
132
|
+
"Task 1",
|
|
133
|
+
"Task 2",
|
|
134
|
+
]);
|
|
128
135
|
expect(result).toEqual([
|
|
129
136
|
{
|
|
130
137
|
id: "task1",
|
|
131
138
|
name: "Task 1",
|
|
132
|
-
path: [
|
|
139
|
+
path: [PULL, "Task 1"],
|
|
133
140
|
error: { message: "Test error" },
|
|
134
141
|
interrupts: [],
|
|
135
142
|
},
|
|
136
|
-
{ id: "task2", name: "Task 2", path: [
|
|
143
|
+
{ id: "task2", name: "Task 2", path: [PULL, "Task 2"], interrupts: [] },
|
|
137
144
|
]);
|
|
138
145
|
});
|
|
139
146
|
it("should include state information", () => {
|
|
@@ -141,13 +148,13 @@ describe("tasksWithWrites", () => {
|
|
|
141
148
|
{
|
|
142
149
|
id: "task1",
|
|
143
150
|
name: "Task 1",
|
|
144
|
-
path: [
|
|
151
|
+
path: [PULL, "Task 1"],
|
|
145
152
|
interrupts: [],
|
|
146
153
|
},
|
|
147
154
|
{
|
|
148
155
|
id: "task2",
|
|
149
156
|
name: "Task 2",
|
|
150
|
-
path: [
|
|
157
|
+
path: [PULL, "Task 2"],
|
|
151
158
|
interrupts: [],
|
|
152
159
|
},
|
|
153
160
|
];
|
|
@@ -155,16 +162,19 @@ describe("tasksWithWrites", () => {
|
|
|
155
162
|
const states = {
|
|
156
163
|
task1: { configurable: { key: "value" } },
|
|
157
164
|
};
|
|
158
|
-
const result = tasksWithWrites(tasks, pendingWrites, states
|
|
165
|
+
const result = tasksWithWrites(tasks, pendingWrites, states, [
|
|
166
|
+
"Task 1",
|
|
167
|
+
"Task 2",
|
|
168
|
+
]);
|
|
159
169
|
expect(result).toEqual([
|
|
160
170
|
{
|
|
161
171
|
id: "task1",
|
|
162
172
|
name: "Task 1",
|
|
163
|
-
path: [
|
|
173
|
+
path: [PULL, "Task 1"],
|
|
164
174
|
interrupts: [],
|
|
165
175
|
state: { configurable: { key: "value" } },
|
|
166
176
|
},
|
|
167
|
-
{ id: "task2", name: "Task 2", path: [
|
|
177
|
+
{ id: "task2", name: "Task 2", path: [PULL, "Task 2"], interrupts: [] },
|
|
168
178
|
]);
|
|
169
179
|
});
|
|
170
180
|
it("should include interrupts", () => {
|
|
@@ -172,22 +182,75 @@ describe("tasksWithWrites", () => {
|
|
|
172
182
|
{
|
|
173
183
|
id: "task1",
|
|
174
184
|
name: "Task 1",
|
|
175
|
-
path: [
|
|
185
|
+
path: [PULL, "Task 1"],
|
|
176
186
|
interrupts: [],
|
|
177
187
|
},
|
|
178
188
|
];
|
|
179
189
|
const pendingWrites = [
|
|
180
|
-
["task1",
|
|
190
|
+
["task1", INTERRUPT, { value: "Interrupted", when: "during" }],
|
|
181
191
|
];
|
|
182
|
-
const result = tasksWithWrites(tasks, pendingWrites);
|
|
192
|
+
const result = tasksWithWrites(tasks, pendingWrites, undefined, ["task1"]);
|
|
183
193
|
expect(result).toEqual([
|
|
184
194
|
{
|
|
185
195
|
id: "task1",
|
|
186
196
|
name: "Task 1",
|
|
187
|
-
path: [
|
|
197
|
+
path: [PULL, "Task 1"],
|
|
188
198
|
interrupts: [{ value: "Interrupted", when: "during" }],
|
|
189
199
|
},
|
|
190
200
|
]);
|
|
191
201
|
});
|
|
202
|
+
it("should include results", () => {
|
|
203
|
+
const tasks = [
|
|
204
|
+
{
|
|
205
|
+
id: "task1",
|
|
206
|
+
name: "Task 1",
|
|
207
|
+
path: [PULL, "Task 1"],
|
|
208
|
+
interrupts: [],
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
id: "task2",
|
|
212
|
+
name: "Task 2",
|
|
213
|
+
path: [PULL, "Task 2"],
|
|
214
|
+
interrupts: [],
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
id: "task3",
|
|
218
|
+
name: "Task 3",
|
|
219
|
+
path: [PULL, "Task 3"],
|
|
220
|
+
interrupts: [],
|
|
221
|
+
},
|
|
222
|
+
];
|
|
223
|
+
const pendingWrites = [
|
|
224
|
+
["task1", "Task 1", "Result"],
|
|
225
|
+
["task2", "Task 2", "Result 2"],
|
|
226
|
+
];
|
|
227
|
+
const result = tasksWithWrites(tasks, pendingWrites, undefined, [
|
|
228
|
+
"Task 1",
|
|
229
|
+
"Task 2",
|
|
230
|
+
]);
|
|
231
|
+
expect(result).toEqual([
|
|
232
|
+
{
|
|
233
|
+
id: "task1",
|
|
234
|
+
name: "Task 1",
|
|
235
|
+
path: [PULL, "Task 1"],
|
|
236
|
+
interrupts: [],
|
|
237
|
+
result: { "Task 1": "Result" },
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
id: "task2",
|
|
241
|
+
name: "Task 2",
|
|
242
|
+
path: [PULL, "Task 2"],
|
|
243
|
+
interrupts: [],
|
|
244
|
+
result: { "Task 2": "Result 2" },
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
id: "task3",
|
|
248
|
+
name: "Task 3",
|
|
249
|
+
path: [PULL, "Task 3"],
|
|
250
|
+
interrupts: [],
|
|
251
|
+
result: undefined,
|
|
252
|
+
},
|
|
253
|
+
]);
|
|
254
|
+
});
|
|
192
255
|
});
|
|
193
256
|
//# sourceMappingURL=debug.test.js.map
|