automategraph 1.5.0 → 1.5.3

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 (88) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/UPGRADE-PROPOSAL.md +141 -0
  3. package/docs/diagrams/c19-resilience-scenario.md +61 -0
  4. package/docs/diagrams/c19-resilience-scenario.mmd +28 -0
  5. package/docs/diagrams/c19-resilience-scenario.svg +181 -0
  6. package/examples/README.md +206 -0
  7. package/examples/branching-edges.ts +192 -0
  8. package/examples/branching-graph.ts +333 -0
  9. package/examples/branching-router.ts +475 -0
  10. package/examples/json-graph.ts +231 -0
  11. package/examples/json-scripts.ts +152 -0
  12. package/examples/order-flow.functions.cjs +32 -0
  13. package/examples/order-flow.graph.json +27 -0
  14. package/examples/order-flow.scripted.graph.json +68 -0
  15. package/js/examples/branching-edges.js +133 -0
  16. package/js/examples/branching-edges.js.map +1 -0
  17. package/js/examples/branching-graph.js +232 -0
  18. package/js/examples/branching-graph.js.map +1 -0
  19. package/js/examples/branching-router.js +305 -0
  20. package/js/examples/branching-router.js.map +1 -0
  21. package/js/examples/json-graph.js +197 -0
  22. package/js/examples/json-graph.js.map +1 -0
  23. package/js/examples/json-scripts.js +131 -0
  24. package/js/examples/json-scripts.js.map +1 -0
  25. package/js/tests/async.test.js +592 -0
  26. package/js/tests/async.test.js.map +1 -0
  27. package/js/tests/complex.test.js +972 -0
  28. package/js/tests/complex.test.js.map +1 -0
  29. package/js/tests/conformance.test.js +365 -0
  30. package/js/tests/conformance.test.js.map +1 -0
  31. package/js/tests/edges.test.js +702 -0
  32. package/js/tests/edges.test.js.map +1 -0
  33. package/js/tests/graphjson.test.js +504 -0
  34. package/js/tests/graphjson.test.js.map +1 -0
  35. package/js/tests/harness.js +192 -0
  36. package/js/tests/harness.js.map +1 -0
  37. package/js/tests/helpers.js +136 -0
  38. package/js/tests/helpers.js.map +1 -0
  39. package/js/tests/lint.test.js +317 -0
  40. package/js/tests/lint.test.js.map +1 -0
  41. package/js/tests/registry.test.js +705 -0
  42. package/js/tests/registry.test.js.map +1 -0
  43. package/js/tests/report.js +422 -0
  44. package/js/tests/report.js.map +1 -0
  45. package/js/tests/runner.js +67 -0
  46. package/js/tests/runner.js.map +1 -0
  47. package/js/tests/scripts.test.js +552 -0
  48. package/js/tests/scripts.test.js.map +1 -0
  49. package/js/tests/unit.test.js +1239 -0
  50. package/js/tests/unit.test.js.map +1 -0
  51. package/js/tests/upgrade.test.js +618 -0
  52. package/js/tests/upgrade.test.js.map +1 -0
  53. package/package.json +2 -9
  54. package/report/index.html +3727 -0
  55. package/report/report.json +3053 -0
  56. package/tests/async.test.ts +668 -0
  57. package/tests/complex.test.ts +1123 -0
  58. package/tests/conformance.test.ts +442 -0
  59. package/tests/edges.test.ts +848 -0
  60. package/tests/fixtures/scripts/bad-registration.cjs +4 -0
  61. package/tests/fixtures/scripts/broken.cjs +2 -0
  62. package/tests/fixtures/scripts/cjs-default.js +4 -0
  63. package/tests/fixtures/scripts/collide-a.cjs +4 -0
  64. package/tests/fixtures/scripts/collide-b.cjs +4 -0
  65. package/tests/fixtures/scripts/empty.cjs +2 -0
  66. package/tests/fixtures/scripts/esm-functions.mjs +10 -0
  67. package/tests/fixtures/scripts/esm-syntax.js +3 -0
  68. package/tests/fixtures/scripts/global-channel.cjs +6 -0
  69. package/tests/fixtures/scripts/global-channel.mjs +7 -0
  70. package/tests/fixtures/scripts/mismatch.cjs +4 -0
  71. package/tests/fixtures/scripts/needs-sibling.cjs +7 -0
  72. package/tests/fixtures/scripts/order.cjs +14 -0
  73. package/tests/fixtures/scripts/sibling-helper.cjs +3 -0
  74. package/tests/fixtures/scripts/throwing-global.mjs +6 -0
  75. package/tests/graphjson.test.ts +737 -0
  76. package/tests/harness.ts +291 -0
  77. package/tests/helpers.ts +216 -0
  78. package/tests/lint.test.ts +381 -0
  79. package/tests/registry.test.ts +1134 -0
  80. package/tests/report.ts +452 -0
  81. package/tests/runner.ts +58 -0
  82. package/tests/scripts.test.ts +970 -0
  83. package/tests/unit.test.ts +1192 -0
  84. package/tests/upgrade.test.ts +725 -0
  85. package/tools/server.mjs +152 -0
  86. package/tsconfig.browser.json +19 -0
  87. package/tsconfig.json +18 -0
  88. package/tsconfig.publish.json +13 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edges.test.js","sourceRoot":"","sources":["../../tests/edges.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,504 @@
1
+ "use strict";
2
+ /* ============================================================
3
+ * GRAPH JSON LOADER PACK (v1.4)
4
+ * ------------------------------------------------------------
5
+ * src/graph-json.ts turns a data document into a GraphDefinition:
6
+ *
7
+ * { "id", "version", "entryNodes", "terminalNodes",
8
+ * "nodes": { "a": { "run": "fnName",
9
+ * "next": [ { "test": "predName", "nextNode": "b" },
10
+ * { "nextNode": "c" } ] } } }
11
+ *
12
+ * Under test:
13
+ * • parsing needs NO registry (names resolve lazily in the engine)
14
+ * • validation is total — every problem is collected with its JSON
15
+ * path and thrown as one GraphJSONError carrying `issues`
16
+ * • createEngineFromJSON(document, { functions }) is the whole
17
+ * pipeline: data file → running engine → report with fingerprint
18
+ * ============================================================ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ const automategraph_1 = require("../src/automategraph");
21
+ const graph_json_1 = require("../src/graph-json");
22
+ const helpers_1 = require("./helpers");
23
+ const harness_1 = require("./harness");
24
+ const json = (0, harness_1.suite)("graphjson", "Graph JSON loader");
25
+ /* ------------------------------ helpers ------------------------------ */
26
+ const DOCUMENT = {
27
+ id: "order-flow",
28
+ version: "1.0.0",
29
+ entryNodes: ["classify"],
30
+ terminalNodes: ["ship", "manual", "reject"],
31
+ completionPolicy: "FIRST_TERMINAL",
32
+ nodes: {
33
+ classify: {
34
+ run: "classifyOrder",
35
+ next: [
36
+ { test: "isPriority", nextNode: "charge" },
37
+ { result: "manual", nextNode: "manual" },
38
+ { nextNode: "reject" }
39
+ ]
40
+ },
41
+ charge: {
42
+ run: "chargeCard",
43
+ next: ["ship"],
44
+ onThrow: "manual",
45
+ errorPolicy: "RETRY",
46
+ retry: { maxAttempts: 2, delayMs: 1 }
47
+ },
48
+ ship: { run: "shipOrder" },
49
+ manual: { run: "manualReview" },
50
+ reject: { run: "rejectOrder" }
51
+ }
52
+ };
53
+ const FUNCTIONS = {
54
+ classifyOrder: () => "priority",
55
+ isPriority: (value) => value === "priority",
56
+ chargeCard: () => "charged",
57
+ shipOrder: () => "shipped",
58
+ manualReview: () => "queued",
59
+ rejectOrder: () => "rejected"
60
+ };
61
+ function issuesOf(input) {
62
+ try {
63
+ (0, graph_json_1.parseGraphJSON)(input);
64
+ }
65
+ catch (error) {
66
+ if (error instanceof graph_json_1.GraphJSONError)
67
+ return [...error.issues];
68
+ throw error;
69
+ }
70
+ throw new Error("expected a GraphJSONError");
71
+ }
72
+ function issuePaths(input) {
73
+ return issuesOf(input).map(issue => issue.path);
74
+ }
75
+ function catchJSONError(input) {
76
+ try {
77
+ (0, graph_json_1.parseGraphJSON)(input);
78
+ }
79
+ catch (error) {
80
+ if (error instanceof graph_json_1.GraphJSONError)
81
+ return error;
82
+ throw error;
83
+ }
84
+ throw new Error("expected a GraphJSONError");
85
+ }
86
+ function ok(condition, label) {
87
+ if (!condition)
88
+ throw new Error(label);
89
+ }
90
+ function eq(actual, expected, label) {
91
+ if (actual !== expected) {
92
+ throw new Error(`${label}: expected ${JSON.stringify(expected)}, got ${JSON.stringify(actual)}`);
93
+ }
94
+ }
95
+ function stable(value) {
96
+ return JSON.stringify(sortKeys(value)) ?? "undefined";
97
+ }
98
+ function sortKeys(value) {
99
+ if (Array.isArray(value))
100
+ return value.map(sortKeys);
101
+ if (value && typeof value === "object") {
102
+ return Object.fromEntries(Object.keys(value)
103
+ .sort()
104
+ .map(key => [key, sortKeys(value[key])]));
105
+ }
106
+ return value;
107
+ }
108
+ function deepEq(actual, expected, label) {
109
+ const a = stable(actual);
110
+ const b = stable(expected);
111
+ if (a !== b)
112
+ throw new Error(`${label}: expected ${b}, got ${a}`);
113
+ }
114
+ /* ------------------------------ 1. parsing ------------------------------ */
115
+ json.t("a valid document parses into a GraphDefinition (string and object input agree)", async (t) => {
116
+ const fromObject = (0, graph_json_1.parseGraphJSON)(DOCUMENT);
117
+ const fromText = (0, graph_json_1.parseGraphJSON)(JSON.stringify(DOCUMENT));
118
+ deepEq(fromText, fromObject, "text and object input agree");
119
+ eq(fromObject.id, "order-flow", "id");
120
+ eq(fromObject.version, "1.0.0", "version");
121
+ deepEq(fromObject.entryNodes, ["classify"], "entryNodes");
122
+ deepEq(fromObject.terminalNodes, ["ship", "manual", "reject"], "terminalNodes");
123
+ eq(fromObject.completionPolicy, "FIRST_TERMINAL", "completionPolicy");
124
+ deepEq(Object.keys(fromObject.nodes), ["classify", "charge", "ship", "manual", "reject"], "nodes");
125
+ eq(fromObject.nodes.classify.run, "classifyOrder", "run stays a name");
126
+ eq(typeof fromObject.nodes.classify.next?.[0], "object", "edge objects survive parsing");
127
+ deepEq(fromObject.nodes.charge.next, ["ship"], "string edges stay strings");
128
+ eq(fromObject.nodes.charge.onThrow, "manual", "onThrow");
129
+ eq(fromObject.nodes.charge.errorPolicy, "RETRY", "errorPolicy");
130
+ deepEq(fromObject.nodes.charge.retry, { maxAttempts: 2, delayMs: 1 }, "retry");
131
+ t.log("finding: parsing never needs the registry — a data file is valid even when a function name is unknown; the engine decides that at run time");
132
+ }, helpers_1.BIG);
133
+ json.t("node ids default to their keys, and a mismatching explicit id is an issue", async (t) => {
134
+ const parsed = (0, graph_json_1.parseGraphJSON)({
135
+ id: "g",
136
+ version: "1",
137
+ entryNodes: ["a"],
138
+ terminalNodes: ["a"],
139
+ nodes: { a: { run: "fn" } }
140
+ });
141
+ eq(parsed.nodes.a.id, "a", "id defaults to the key");
142
+ const paths = issuePaths({
143
+ id: "g",
144
+ version: "1",
145
+ entryNodes: ["a"],
146
+ terminalNodes: ["a"],
147
+ nodes: { a: { id: "elsewhere", run: "fn" } }
148
+ });
149
+ ok(paths.includes("nodes.a.id"), paths.join(","));
150
+ }, helpers_1.BIG);
151
+ json.t("deep-equality results, named tests and parallel flags survive the round trip", async (t) => {
152
+ const parsed = (0, graph_json_1.parseGraphJSON)({
153
+ id: "g",
154
+ version: "1",
155
+ entryNodes: ["a"],
156
+ terminalNodes: ["b", "c", "d"],
157
+ nodes: {
158
+ a: {
159
+ run: "fn",
160
+ next: [
161
+ { test: "isBig", nextNode: "b" },
162
+ { result: { nested: [1, { two: "2" }], nil: null }, nextNode: "c" },
163
+ "d"
164
+ ]
165
+ },
166
+ b: { run: "fn" },
167
+ c: { run: "fn" },
168
+ d: { run: "fn" }
169
+ }
170
+ });
171
+ const edges = parsed.nodes.a.next ?? [];
172
+ deepEq(edges[0], { test: "isBig", nextNode: "b" }, "named test edge");
173
+ deepEq(edges[1], { result: { nested: [1, { two: "2" }], nil: null }, nextNode: "c" }, "structured result matcher");
174
+ eq(edges[2], "d", "string edge");
175
+ }, helpers_1.BIG);
176
+ /* ------------------------------ 2. end-to-end ------------------------------ */
177
+ json.t("createEngineFromJSON runs the data file and reports the registry fingerprint", async (t) => {
178
+ const engine = (0, graph_json_1.createEngineFromJSON)(JSON.stringify(DOCUMENT), {
179
+ functions: FUNCTIONS,
180
+ lint: "error"
181
+ });
182
+ const captured = (0, helpers_1.capture)(engine, ["node.succeeded"]);
183
+ const report = await engine.run();
184
+ eq(report.status, "COMPLETED", "status");
185
+ deepEq(report.results.map(result => result.nodeId), ["classify", "charge", "ship"], "path");
186
+ deepEq(report.results.map(result => result.fn), ["classifyOrder", "chargeCard", "shipOrder"], "fn per activation");
187
+ deepEq(report.lintIssues, [], "the data file is lint-clean");
188
+ deepEq(report.registry?.names, [
189
+ "chargeCard",
190
+ "classifyOrder",
191
+ "isPriority",
192
+ "manualReview",
193
+ "rejectOrder",
194
+ "shipOrder"
195
+ ], "registry names are sorted");
196
+ ok((report.registry?.fingerprint ?? "").startsWith("fnr1:6:"), `fingerprint: ${report.registry?.fingerprint}`);
197
+ eq((captured.at(-1)?.payload).fn, "shipOrder", "events carry the function name");
198
+ }, helpers_1.BIG);
199
+ json.t("a named test in the document routes via the supplied registry", async (t) => {
200
+ const engine = (0, graph_json_1.createEngineFromJSON)(DOCUMENT, {
201
+ functions: { ...FUNCTIONS, classifyOrder: () => "standard" }
202
+ });
203
+ const report = await engine.run();
204
+ eq(report.status, "COMPLETED", "status");
205
+ deepEq(report.results.map(result => result.nodeId), ["classify", "reject"], "the else edge caught the unmatched value");
206
+ eq(report.outputs.reject, "rejected", "output");
207
+ }, helpers_1.BIG);
208
+ json.t("a data file with an unknown name runs and fails with UNKNOWN_FUNCTION", async (t) => {
209
+ const engine = (0, graph_json_1.createEngineFromJSON)(DOCUMENT, {
210
+ functions: { ...FUNCTIONS, shipOrder: undefined }
211
+ });
212
+ const report = await engine.run();
213
+ eq(report.status, "FAILED", "status");
214
+ eq(report.errors[0].code, "UNKNOWN_FUNCTION", "code");
215
+ eq(report.errors[0].nodeId, "ship", "nodeId");
216
+ eq(report.errors[0].handled, false, "handled");
217
+ eq(report.errors[0].details.name, "shipOrder", "the missing name is named");
218
+ deepEq(report.results.map(result => result.status), ["SUCCEEDED", "SUCCEEDED", "FAILED"], "everything before the missing node ran");
219
+ }, helpers_1.BIG);
220
+ json.t("the parsed definition is accepted by the engine unchanged", async (t) => {
221
+ const definition = (0, graph_json_1.parseGraphJSON)(DOCUMENT);
222
+ const engine = new automategraph_1.GraphExecutionEngine(definition, {
223
+ functions: FUNCTIONS
224
+ });
225
+ const report = await engine.run();
226
+ eq(report.status, "COMPLETED", "the loader output needs no fixing up");
227
+ eq(engine.registry.names.length, 6, "registry intact");
228
+ /* the engine's own validation would have thrown on a malformed graph */
229
+ ok(definition.nodes.classify.run === "classifyOrder", "run name preserved");
230
+ }, helpers_1.BIG);
231
+ /* ------------------------------ 3. validation: structure ------------------------------ */
232
+ json.t("invalid JSON text is a single, clear GraphJSONError", async (t) => {
233
+ let caught;
234
+ try {
235
+ (0, graph_json_1.parseGraphJSON)("{ not json ");
236
+ }
237
+ catch (error) {
238
+ caught = error;
239
+ }
240
+ ok(caught instanceof graph_json_1.GraphJSONError, "GraphJSONError expected");
241
+ eq(caught.code, "GRAPH_JSON_ERROR", "code");
242
+ deepEq(caught.issues.map(issue => issue.path), ["$"], "path is the document root");
243
+ ok(caught.message.includes("not parseable JSON"), caught.message);
244
+ }, helpers_1.BIG);
245
+ json.t("a non-object document is rejected with one issue", async (t) => {
246
+ const paths = issuePaths([1, 2, 3]);
247
+ deepEq(paths, ["$"], "one issue at the root");
248
+ ok(issuesOf([1, 2, 3])[0].message.includes("array"), "the message names what arrived");
249
+ deepEq(issuePaths(null), ["$"], "null");
250
+ deepEq(issuePaths(42), ["$"], "a number");
251
+ }, helpers_1.BIG);
252
+ json.t("unknown properties are rejected at every level", async (t) => {
253
+ const paths = issuePaths({
254
+ id: "g",
255
+ version: "1",
256
+ entryNodes: ["a"],
257
+ terminalNodes: ["a"],
258
+ extra: true,
259
+ nodes: {
260
+ a: { run: "fn", wat: 1, next: [{ nextNode: "a", nope: 2 }] }
261
+ }
262
+ });
263
+ ok(paths.includes("extra"), paths.join(","));
264
+ ok(paths.includes("nodes.a.wat"), paths.join(","));
265
+ ok(paths.includes("nodes.a.next[0].nope"), paths.join(","));
266
+ }, helpers_1.BIG);
267
+ json.t("functions cannot live in the document — the issue points at the engine options", async (t) => {
268
+ const issues = issuesOf({ ...DOCUMENT, functions: { a: 1 } });
269
+ eq(issues.length, 1, "one issue");
270
+ eq(issues[0].path, "functions", "path");
271
+ ok(issues[0].message.includes("createEngineFromJSON(json, { functions })"), issues[0].message);
272
+ }, helpers_1.BIG);
273
+ /* ------------------------------ 4. validation: semantics ------------------------------ */
274
+ json.t("dangling references are reported with their paths", async (t) => {
275
+ const paths = issuePaths({
276
+ id: "g",
277
+ version: "1",
278
+ entryNodes: ["ghost"],
279
+ terminalNodes: ["a"],
280
+ nodes: {
281
+ a: {
282
+ run: "fn",
283
+ next: ["nowhere", { nextNode: "void" }],
284
+ onThrow: "nobody",
285
+ fallback: "nobody"
286
+ }
287
+ }
288
+ });
289
+ ok(paths.includes("entryNodes[0]"), paths.join(","));
290
+ ok(paths.includes("nodes.a.next[0]"), paths.join(","));
291
+ ok(paths.includes("nodes.a.next[1]"), paths.join(","));
292
+ ok(paths.includes("nodes.a.onThrow"), paths.join(","));
293
+ ok(paths.includes("nodes.a.fallback"), paths.join(","));
294
+ }, helpers_1.BIG);
295
+ json.t("malformed edges are rejected entry by entry", async (t) => {
296
+ const paths = issuePaths({
297
+ id: "g",
298
+ version: "1",
299
+ entryNodes: ["a"],
300
+ terminalNodes: ["a"],
301
+ nodes: {
302
+ a: {
303
+ run: "fn",
304
+ next: [
305
+ 42,
306
+ {},
307
+ { nextNode: "" },
308
+ { nextNode: "a", parallel: "yes" },
309
+ { nextNode: "a", test: 7 },
310
+ { nextNode: "a", test: "not a name!" }
311
+ ]
312
+ }
313
+ }
314
+ });
315
+ for (const expected of [
316
+ "nodes.a.next[0]",
317
+ "nodes.a.next[1].nextNode",
318
+ "nodes.a.next[2].nextNode",
319
+ "nodes.a.next[3].parallel",
320
+ "nodes.a.next[4].test",
321
+ "nodes.a.next[5].test"
322
+ ]) {
323
+ ok(paths.includes(expected), `${expected} missing from ${paths.join(",")}`);
324
+ }
325
+ /* `next: {}` is not an array either */
326
+ const scalarPaths = issuePaths({
327
+ id: "g",
328
+ version: "1",
329
+ entryNodes: ["a"],
330
+ terminalNodes: ["a"],
331
+ nodes: { a: { run: "fn", next: {} } }
332
+ });
333
+ ok(scalarPaths.includes("nodes.a.next"), scalarPaths.join(","));
334
+ }, helpers_1.BIG);
335
+ json.t("invalid scalars, policies and retry blocks are rejected", async (t) => {
336
+ const paths = issuePaths({
337
+ id: "",
338
+ version: "",
339
+ defaultNodeTimeoutMs: 0,
340
+ errorPolicy: "NOPE",
341
+ checkpointEveryNode: "yes",
342
+ completionPolicy: "SOMETIMES",
343
+ entryNodes: "a",
344
+ terminalNodes: ["a"],
345
+ nodes: {
346
+ a: {
347
+ run: 42,
348
+ timeoutMs: -5,
349
+ errorPolicy: "MAYBE",
350
+ retry: { maxAttempts: 0, delayMs: -1, extra: true }
351
+ }
352
+ }
353
+ });
354
+ for (const expected of [
355
+ "id",
356
+ "version",
357
+ "defaultNodeTimeoutMs",
358
+ "errorPolicy",
359
+ "checkpointEveryNode",
360
+ "completionPolicy",
361
+ "entryNodes",
362
+ "nodes.a.run",
363
+ "nodes.a.timeoutMs",
364
+ "nodes.a.errorPolicy",
365
+ "nodes.a.retry.maxAttempts",
366
+ "nodes.a.retry.delayMs",
367
+ "nodes.a.retry.extra"
368
+ ]) {
369
+ ok(paths.includes(expected), `${expected} missing from ${paths.join(",")}`);
370
+ }
371
+ /* a run name with illegal characters is a shape error too */
372
+ const namePaths = issuePaths({
373
+ id: "g",
374
+ version: "1",
375
+ entryNodes: ["a"],
376
+ terminalNodes: ["a"],
377
+ nodes: { a: { run: "has space" } }
378
+ });
379
+ ok(namePaths.includes("nodes.a.run"), namePaths.join(","));
380
+ }, helpers_1.BIG);
381
+ json.t("EVERY issue is collected — one throw carries them all", async (t) => {
382
+ const issues = issuesOf({
383
+ id: "",
384
+ version: "1",
385
+ entryNodes: ["ghost"],
386
+ terminalNodes: ["a"],
387
+ extra: 1,
388
+ nodes: {
389
+ a: { run: "fn", next: [{ nextNode: "nowhere" }, 7] },
390
+ b: { run: 12 }
391
+ }
392
+ });
393
+ ok(issues.length >= 6, `expected several issues, got ${issues.length}`);
394
+ eq(new Set(issues.map(issue => issue.path)).size, issues.length, "paths are distinct");
395
+ ok(issues.every(issue => issue.message.length > 0), "every issue has a message");
396
+ const caught = catchJSONError({
397
+ id: "",
398
+ version: "",
399
+ entryNodes: [],
400
+ terminalNodes: [],
401
+ nodes: {}
402
+ });
403
+ ok(/problem\(s\)/.test(caught.message), caught.message);
404
+ ok(caught.issues.length >= 5, `issues=${caught.issues.length}`);
405
+ t.log(`finding: one document reported ${caught.issues.length} problems in a single throw — no fix-one-rerun loop`);
406
+ }, helpers_1.BIG);
407
+ /* ------------------------------ 5. surface ------------------------------ */
408
+ json.t("isGraphJSON() is a cheap shape probe, not a validator", async (t) => {
409
+ eq((0, graph_json_1.isGraphJSON)(JSON.stringify(DOCUMENT)), true, "text");
410
+ eq((0, graph_json_1.isGraphJSON)(DOCUMENT), true, "object");
411
+ eq((0, graph_json_1.isGraphJSON)({ id: "g" }), false, "no nodes");
412
+ eq((0, graph_json_1.isGraphJSON)("{ not json"), false, "broken text");
413
+ eq((0, graph_json_1.isGraphJSON)(null), false, "null");
414
+ eq((0, graph_json_1.isGraphJSON)([1]), false, "array");
415
+ eq((0, graph_json_1.isGraphJSON)((0, graph_json_1.parseGraphJSON)(DOCUMENT)), true, "parser output");
416
+ }, helpers_1.BIG);
417
+ json.t("an in-memory object may pass real functions through (escape hatch)", async (t) => {
418
+ const parsed = (0, graph_json_1.parseGraphJSON)({
419
+ id: "in-memory",
420
+ version: "1.0.0",
421
+ entryNodes: ["a"],
422
+ terminalNodes: ["b"],
423
+ nodes: {
424
+ a: { run: () => "inline through the loader", next: ["b"] },
425
+ b: { run: () => "B" }
426
+ }
427
+ });
428
+ const engine = new automategraph_1.GraphExecutionEngine(parsed);
429
+ const report = await engine.run();
430
+ eq(report.status, "COMPLETED", "status");
431
+ eq(report.outputs.a, "inline through the loader", "output");
432
+ eq(report.registry, undefined, "no names, no registry");
433
+ eq(report.results[0].fn, undefined, "inline activation has no fn");
434
+ }, helpers_1.BIG);
435
+ json.t("a parsed document with dangling ids is still caught by the engine if it is hand-edited", async (t) => {
436
+ const definition = (0, graph_json_1.parseGraphJSON)(DOCUMENT);
437
+ const tampered = {
438
+ ...definition,
439
+ nodes: {
440
+ ...definition.nodes,
441
+ classify: { ...definition.nodes.classify, next: ["ghost"] }
442
+ }
443
+ };
444
+ try {
445
+ new automategraph_1.GraphExecutionEngine(tampered, {
446
+ functions: FUNCTIONS
447
+ });
448
+ throw new Error("expected the engine to reject the tampered graph");
449
+ }
450
+ catch (error) {
451
+ if (!(error instanceof automategraph_1.GraphValidationError))
452
+ throw error;
453
+ ok(error.message.includes('unknown next Node "ghost"'), error.message);
454
+ }
455
+ t.log("finding: the loader and the engine validate different layers (paths vs. final shape) — both stay in force");
456
+ }, helpers_1.BIG);
457
+ json.t("the loader example document is valid (regression: the shipped .json file)", async (t) => {
458
+ /* mirrors examples/order-flow.graph.json */
459
+ const shipped = {
460
+ id: "order-flow",
461
+ version: "1.0.0",
462
+ entryNodes: ["classify"],
463
+ terminalNodes: ["ship", "manual", "reject"],
464
+ completionPolicy: "FIRST_TERMINAL",
465
+ nodes: {
466
+ classify: {
467
+ run: "classifyOrder",
468
+ next: [
469
+ { test: "isPriority", nextNode: "charge" },
470
+ { result: "manual", nextNode: "manual" },
471
+ { nextNode: "reject" }
472
+ ]
473
+ },
474
+ charge: {
475
+ run: "chargeCard",
476
+ next: ["ship"],
477
+ onThrow: "manual",
478
+ errorPolicy: "RETRY",
479
+ retry: { maxAttempts: 2, delayMs: 5 }
480
+ },
481
+ ship: { run: "shipOrder" },
482
+ manual: { run: "manualReview" },
483
+ reject: { run: "rejectOrder" }
484
+ }
485
+ };
486
+ const engine = (0, graph_json_1.createEngineFromJSON)(shipped, {
487
+ functions: FUNCTIONS,
488
+ lint: "error"
489
+ });
490
+ const report = await engine.run();
491
+ eq(report.status, "COMPLETED", "status");
492
+ deepEq(report.lintIssues, [], "lint-clean");
493
+ /* and the same document, missing one name, is still lint-clean but fails
494
+ * exactly once at the missing node */
495
+ const partial = (0, graph_json_1.createEngineFromJSON)(shipped, {
496
+ functions: { ...FUNCTIONS, chargeCard: undefined },
497
+ lint: "error"
498
+ });
499
+ const partialReport = await partial.run();
500
+ eq(partialReport.errors.length, 1, "one defect");
501
+ eq(partialReport.errors[0].code, "UNKNOWN_FUNCTION", "code");
502
+ eq(partialReport.status, "FAILED", "status");
503
+ }, helpers_1.BIG);
504
+ //# sourceMappingURL=graphjson.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphjson.test.js","sourceRoot":"","sources":["../../tests/graphjson.test.ts"],"names":[],"mappings":"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"}