@melra/runtime-core 0.3.0-alpha.10 → 0.3.0-alpha.12

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/dist/task-controller.d.ts +41 -1
  2. package/dist/task-controller.d.ts.map +1 -1
  3. package/dist/task-controller.js +202 -32
  4. package/dist/task-controller.js.map +1 -1
  5. package/dist/workflow-controller.d.ts +12 -0
  6. package/dist/workflow-controller.d.ts.map +1 -1
  7. package/dist/workflow-controller.js +95 -11
  8. package/dist/workflow-controller.js.map +1 -1
  9. package/package.json +8 -8
  10. package/dist/circuit-breaker.test.d.ts +0 -2
  11. package/dist/circuit-breaker.test.d.ts.map +0 -1
  12. package/dist/circuit-breaker.test.js +0 -51
  13. package/dist/circuit-breaker.test.js.map +0 -1
  14. package/dist/payload-cipher.test.d.ts +0 -2
  15. package/dist/payload-cipher.test.d.ts.map +0 -1
  16. package/dist/payload-cipher.test.js +0 -33
  17. package/dist/payload-cipher.test.js.map +0 -1
  18. package/dist/retry-guard.test.d.ts +0 -2
  19. package/dist/retry-guard.test.d.ts.map +0 -1
  20. package/dist/retry-guard.test.js +0 -45
  21. package/dist/retry-guard.test.js.map +0 -1
  22. package/dist/task-controller.test.d.ts +0 -2
  23. package/dist/task-controller.test.d.ts.map +0 -1
  24. package/dist/task-controller.test.js +0 -486
  25. package/dist/task-controller.test.js.map +0 -1
  26. package/dist/verification-gate.test.d.ts +0 -2
  27. package/dist/verification-gate.test.d.ts.map +0 -1
  28. package/dist/verification-gate.test.js +0 -42
  29. package/dist/verification-gate.test.js.map +0 -1
  30. package/dist/workflow-controller.test.d.ts +0 -2
  31. package/dist/workflow-controller.test.d.ts.map +0 -1
  32. package/dist/workflow-controller.test.js +0 -785
  33. package/dist/workflow-controller.test.js.map +0 -1
  34. package/dist/workflow-events.test.d.ts +0 -2
  35. package/dist/workflow-events.test.d.ts.map +0 -1
  36. package/dist/workflow-events.test.js +0 -113
  37. package/dist/workflow-events.test.js.map +0 -1
  38. package/dist/workflow-graph.test.d.ts +0 -2
  39. package/dist/workflow-graph.test.d.ts.map +0 -1
  40. package/dist/workflow-graph.test.js +0 -169
  41. package/dist/workflow-graph.test.js.map +0 -1
@@ -4,7 +4,7 @@ import { randomUUID } from "node:crypto";
4
4
  import { WorkflowDefinitionSchema, WorkflowEventSchema, WorkflowRunSchema, WorkflowSnapshotSchema, } from "@melra/protocol";
5
5
  import { canonicalJson, redactStructuredValue, sha256, } from "@melra/receipt-schema";
6
6
  import { applyWorkflowEvent, rebuildWorkflow, } from "./workflow-events.js";
7
- import { readyNodeIds, validateWorkflow } from "./workflow-graph.js";
7
+ import { readyNodeIds, validateWorkflow, } from "./workflow-graph.js";
8
8
  export class WorkflowController {
9
9
  store;
10
10
  tasks;
@@ -53,7 +53,18 @@ export class WorkflowController {
53
53
  });
54
54
  const planned = applyWorkflowEvent(draft, plannedEvent);
55
55
  const redacted = WorkflowDefinitionSchema.parse(redactStructuredValue(parsed).value);
56
- this.store.createWorkflow(redacted, this.payloadCipher.seal(parsed, `workflow:${parsed.id}:${parsed.version}:definition`), planned, [created, plannedEvent]);
56
+ // A definition is stored once per id and version, and any number of runs
57
+ // may use it: planning the same file twice is a second run, not an error.
58
+ // The same id and version with different content is refused, because
59
+ // runs already planned from the stored one must keep meaning what they did.
60
+ const purpose = `workflow:${parsed.id}:${parsed.version}:definition`;
61
+ const stored = this.store.getWorkflowPayload(parsed.id, parsed.version);
62
+ if (stored !== undefined &&
63
+ canonicalJson(WorkflowDefinitionSchema.parse(this.payloadCipher.open(stored, purpose))) !==
64
+ canonicalJson(parsed)) {
65
+ throw new Error(`workflow_definition_conflict:${parsed.id}@${parsed.version}: a different definition is stored under this id and version; bump "version"`);
66
+ }
67
+ this.store.createWorkflow(redacted, stored === undefined ? this.payloadCipher.seal(parsed, purpose) : undefined, planned, [created, plannedEvent]);
57
68
  return planned;
58
69
  }
59
70
  status(workflowId) {
@@ -129,6 +140,14 @@ export class WorkflowController {
129
140
  if (current.status === "failed" && rollback.length === 0) {
130
141
  return { run: current, tasks: [], events: [] };
131
142
  }
143
+ // An unwind that stopped half-done is not a base to build more effects on:
144
+ // a forward effect happened, its declared inverse did not, and no node
145
+ // describes that. Refused here rather than left to `readyNodeIds`, which
146
+ // would happily start an independent branch on top of it.
147
+ if (definition.nodes.some((node) => node.type === "compensation" &&
148
+ ["failed", "recovery_required"].includes(current.nodes[node.id]?.status ?? ""))) {
149
+ return { run: current, tasks: [], events: [] };
150
+ }
132
151
  // A node parked for a human — approval phrase or supplied input — is no
133
152
  // longer `pending`, so `readyNodeIds` will not return it. Re-offer it here
134
153
  // or the workflow would stall forever with the answer in hand.
@@ -145,14 +164,29 @@ export class WorkflowController {
145
164
  if (nodeIds.length === 0) {
146
165
  return { run: current, tasks: [], events: [] };
147
166
  }
148
- const results = await Promise.all(nodeIds.map(async (nodeId) => {
149
- const node = graph.nodes.get(nodeId);
150
- return {
151
- nodeId,
152
- result: await this.advanceNode(node, definition, current.nodes[nodeId], current, approvals, inputs),
153
- };
154
- }));
155
- if (results.some(({ result }) => result.state.status === "failed")) {
167
+ const results = await (rollback.length >
168
+ 0
169
+ ? // Compensations undo each other's preconditions, so the order they run
170
+ // in *is* the semantics: cancel the shipment before refunding the
171
+ // charge that paid for it. `Promise.all` computed a reverse list and
172
+ // then threw the order away by starting them all at once. Sequential,
173
+ // and stopping at the first one that does not reach `compensated` —
174
+ // continuing past a failed unwind would strand the saga in a state no
175
+ // node describes.
176
+ this.unwind(rollback, graph, definition, current, approvals, inputs)
177
+ : Promise.all(nodeIds.map(async (nodeId) => {
178
+ const node = graph.nodes.get(nodeId);
179
+ return {
180
+ nodeId,
181
+ result: await this.advanceNode(node, definition, current.nodes[nodeId], current, approvals, inputs),
182
+ };
183
+ })));
184
+ // A *compensation* that failed must not open a second unwind. The saga is
185
+ // already stranded, and undoing the next step while this inverse is still
186
+ // outstanding is precisely what the halt exists to prevent — so only a
187
+ // forward node failing starts compensating.
188
+ if (results.some(({ nodeId, result }) => result.state.status === "failed" &&
189
+ graph.nodes.get(nodeId)?.type !== "compensation")) {
156
190
  for (const node of [...definition.nodes].reverse()) {
157
191
  if (node.type !== "compensation" ||
158
192
  current.nodes[node.id]?.status !== "pending") {
@@ -185,6 +219,10 @@ export class WorkflowController {
185
219
  : compensation.state,
186
220
  },
187
221
  });
222
+ // Same rule as a resumed unwind: stop rather than undo step 1 while
223
+ // step 3's inverse is still outstanding.
224
+ if (compensation.state.status !== "verified_complete")
225
+ break;
188
226
  }
189
227
  }
190
228
  let run = this.transition(current, (draft, emit) => {
@@ -216,7 +254,23 @@ export class WorkflowController {
216
254
  if (status !== draft.status) {
217
255
  const from = draft.status;
218
256
  draft.status = status;
219
- emit("workflow.status_changed", { from, to: status });
257
+ // Name the step, or "recovery_required" tells an operator that
258
+ // something needs hands without saying which effect is half-undone.
259
+ const stalled = definition.nodes.find((node) => node.type === "compensation" &&
260
+ ["failed", "recovery_required"].includes(draft.nodes[node.id]?.status ?? ""));
261
+ if (status === "recovery_required" && stalled !== undefined) {
262
+ draft.error = `workflow_compensation_incomplete:${stalled.id}`;
263
+ }
264
+ else {
265
+ // The reducer clears `error` on every status change, so the draft has
266
+ // to as well or replay no longer reproduces the projection.
267
+ delete draft.error;
268
+ }
269
+ emit("workflow.status_changed", {
270
+ from,
271
+ to: status,
272
+ ...(draft.error === undefined ? {} : { error: draft.error }),
273
+ });
220
274
  }
221
275
  });
222
276
  if (results.some(({ result }) => result.checkpoint === true)) {
@@ -417,6 +471,27 @@ export class WorkflowController {
417
471
  }
418
472
  }
419
473
  }
474
+ /**
475
+ * Run declared compensations one at a time, newest effect first, stopping at
476
+ * the first that does not land `compensated`.
477
+ *
478
+ * `nodeIds` is already in unwind order. Nothing here is special-cased for the
479
+ * provider a compensation talks to: each one is an ordinary request through
480
+ * `runTask`, so undoing a charge at one host and a shipment at another is the
481
+ * same code path as undoing two at the same host — policy, approval, and the
482
+ * compensation's own declared evidence all still apply, and a delegate saying
483
+ * "reversed" without evidence still does not count.
484
+ */
485
+ async unwind(nodeIds, graph, definition, run, approvals, inputs) {
486
+ const results = [];
487
+ for (const nodeId of nodeIds) {
488
+ const result = await this.advanceNode(graph.nodes.get(nodeId), definition, run.nodes[nodeId], run, approvals, inputs);
489
+ results.push({ nodeId, result });
490
+ if (result.state.status !== "compensated")
491
+ break;
492
+ }
493
+ return results;
494
+ }
420
495
  async advanceNode(node, definition, state, run, approvals, inputs) {
421
496
  switch (node.type) {
422
497
  case "operation": {
@@ -664,6 +739,15 @@ export class WorkflowController {
664
739
  }
665
740
  deriveStatus(run, definition) {
666
741
  const required = definition.nodes.filter((node) => node.type !== "compensation");
742
+ // Compensation nodes are excluded from every check below, because a
743
+ // skipped one is the normal case on a clean run. A *failed* one is not:
744
+ // the forward effect happened and its declared inverse did not, which
745
+ // leaves the world in a state no single node describes. Checked first, so
746
+ // an incomplete unwind is never reported as a clean failure.
747
+ if (definition.nodes.some((node) => node.type === "compensation" &&
748
+ ["failed", "recovery_required"].includes(run.nodes[node.id]?.status ?? ""))) {
749
+ return "recovery_required";
750
+ }
667
751
  if (required.some((node) => run.nodes[node.id]?.status === "failed")) {
668
752
  return "failed";
669
753
  }
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-controller.js","sourceRoot":"","sources":["../src/workflow-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-controller.js","sourceRoot":"","sources":["../src/workflow-controller.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@melra/runtime-core",
3
- "version": "0.3.0-alpha.10",
3
+ "version": "0.3.0-alpha.12",
4
4
  "description": "Durable task and workflow execution, recovery, budgets, retries, and verification for MELRA.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -21,16 +21,16 @@
21
21
  "dist"
22
22
  ],
23
23
  "dependencies": {
24
- "@melra/policy-core": "0.3.0-alpha.10",
25
- "@melra/protocol": "0.3.0-alpha.10",
26
- "@melra/receipt-schema": "0.3.0-alpha.10",
27
- "@melra/storage-sqlite": "0.3.0-alpha.10",
28
- "@melra/verifier-core": "0.3.0-alpha.10"
24
+ "@melra/policy-core": "0.3.0-alpha.12",
25
+ "@melra/protocol": "0.3.0-alpha.12",
26
+ "@melra/storage-sqlite": "0.3.0-alpha.12",
27
+ "@melra/receipt-schema": "0.3.0-alpha.12",
28
+ "@melra/verifier-core": "0.3.0-alpha.12"
29
29
  },
30
30
  "scripts": {
31
31
  "build": "tsc -p tsconfig.json",
32
32
  "clean": "rm -rf dist",
33
- "test": "vitest run",
34
- "typecheck": "tsc -p tsconfig.json --noEmit"
33
+ "test": "vitest run --testTimeout=30000",
34
+ "typecheck": "tsc -p tsconfig.test.json"
35
35
  }
36
36
  }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=circuit-breaker.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"circuit-breaker.test.d.ts","sourceRoot":"","sources":["../src/circuit-breaker.test.ts"],"names":[],"mappings":""}
@@ -1,51 +0,0 @@
1
- // Copyright 2026 XAGI Labs Private Limited
2
- // SPDX-License-Identifier: Apache-2.0
3
- import { describe, expect, it } from "vitest";
4
- import { CircuitBreaker } from "./circuit-breaker.js";
5
- describe("CircuitBreaker", () => {
6
- const at = (start) => {
7
- let clock = start;
8
- return {
9
- advance: (ms) => {
10
- clock += ms;
11
- },
12
- now: () => clock,
13
- };
14
- };
15
- it("opens on consecutive failures against one target and leaves others alone", () => {
16
- const clock = at(1_000);
17
- const breaker = new CircuitBreaker({ threshold: 2, cooldownMs: 500 }, clock.now);
18
- breaker.recordFailure("https://down.example");
19
- expect(breaker.check("https://down.example")).toBeUndefined();
20
- breaker.recordFailure("https://down.example");
21
- expect(breaker.check("https://down.example")).toBe("circuit_open:https://down.example");
22
- // Keyed on the target, so an unrelated task is not punished for it.
23
- expect(breaker.check("https://up.example")).toBeUndefined();
24
- breaker.recordSuccess("https://down.example");
25
- expect(breaker.check("https://down.example")).toBeUndefined();
26
- });
27
- it("lets one trial through after the cooldown and re-opens if it fails", () => {
28
- const clock = at(1_000);
29
- const breaker = new CircuitBreaker({ threshold: 2, cooldownMs: 500 }, clock.now);
30
- breaker.recordFailure("target");
31
- breaker.recordFailure("target");
32
- clock.advance(500);
33
- expect(breaker.check("target")).toBeUndefined();
34
- // The trial fails. Without keeping the count, this would hand out another
35
- // full `threshold` attempts every cooldown instead of re-opening at once.
36
- breaker.recordFailure("target");
37
- expect(breaker.check("target")).toBe("circuit_open:target");
38
- clock.advance(500);
39
- expect(breaker.check("target")).toBeUndefined();
40
- breaker.recordSuccess("target");
41
- breaker.recordFailure("target");
42
- expect(breaker.check("target")).toBeUndefined();
43
- });
44
- it("does nothing at all when switched off", () => {
45
- const breaker = new CircuitBreaker({ threshold: 0, cooldownMs: 500 });
46
- for (let index = 0; index < 10; index += 1)
47
- breaker.recordFailure("target");
48
- expect(breaker.check("target")).toBeUndefined();
49
- });
50
- });
51
- //# sourceMappingURL=circuit-breaker.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"circuit-breaker.test.js","sourceRoot":"","sources":["../src/circuit-breaker.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=payload-cipher.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"payload-cipher.test.d.ts","sourceRoot":"","sources":["../src/payload-cipher.test.ts"],"names":[],"mappings":""}
@@ -1,33 +0,0 @@
1
- // Copyright 2026 XAGI Labs Private Limited
2
- // SPDX-License-Identifier: Apache-2.0
3
- import { describe, expect, it } from "vitest";
4
- import { PayloadCipher } from "./payload-cipher.js";
5
- describe("PayloadCipher", () => {
6
- it("round-trips canonical payloads without embedding plaintext", () => {
7
- const cipher = new PayloadCipher(Buffer.alloc(32, 7));
8
- const context = "task:11111111-1111-4111-8111-111111111111:request";
9
- const sealed = cipher.seal({ value: "one-time-secret", count: 2 }, context);
10
- expect(JSON.stringify(sealed)).not.toContain("one-time-secret");
11
- expect(cipher.open(sealed, context)).toEqual({
12
- count: 2,
13
- value: "one-time-secret",
14
- });
15
- });
16
- it("rejects modified authentication tags", () => {
17
- const cipher = new PayloadCipher(Buffer.alloc(32, 9));
18
- const context = "task:22222222-2222-4222-8222-222222222222:request";
19
- const sealed = cipher.seal({ value: "protected" }, context);
20
- const tag = Buffer.from(sealed.tag, "base64url");
21
- tag[0] = tag[0] ^ 1;
22
- expect(() => cipher.open({ ...sealed, tag: tag.toString("base64url") }, context)).toThrow("task_payload_authentication_failed");
23
- });
24
- it("binds an envelope to its task and payload context", () => {
25
- const cipher = new PayloadCipher(Buffer.alloc(32, 11));
26
- const sealed = cipher.seal({ value: "protected" }, "task:33333333-3333-4333-8333-333333333333:request");
27
- expect(() => cipher.open(sealed, "task:44444444-4444-4444-8444-444444444444:request")).toThrow("task_payload_authentication_failed");
28
- });
29
- it("requires exactly 32 bytes of key material", () => {
30
- expect(() => new PayloadCipher(Buffer.alloc(31))).toThrow("payload_key_must_be_32_bytes");
31
- });
32
- });
33
- //# sourceMappingURL=payload-cipher.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"payload-cipher.test.js","sourceRoot":"","sources":["../src/payload-cipher.test.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,sCAAsC;AAEtC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,mDAAmD,CAAC;QACpE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CACxB,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,EACtC,OAAO,CACR,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;YAC3C,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,iBAAiB;SACzB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,mDAAmD,CAAC;QACpE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACjD,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC;QAErB,MAAM,CAAC,GAAG,EAAE,CACV,MAAM,CAAC,IAAI,CACT,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,EAC7C,OAAO,CACR,CACF,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CACxB,EAAE,KAAK,EAAE,WAAW,EAAE,EACtB,mDAAmD,CACpD,CAAC;QAEF,MAAM,CAAC,GAAG,EAAE,CACV,MAAM,CAAC,IAAI,CACT,MAAM,EACN,mDAAmD,CACpD,CACF,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CACvD,8BAA8B,CAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=retry-guard.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"retry-guard.test.d.ts","sourceRoot":"","sources":["../src/retry-guard.test.ts"],"names":[],"mappings":""}
@@ -1,45 +0,0 @@
1
- // Copyright 2024-2026 XAGI Labs Private Limited
2
- // SPDX-License-Identifier: Apache-2.0
3
- import { describe, expect, it } from "vitest";
4
- import { canonicalJson, createRetryGuardState, recordToolResult, resetRetryGuard, toolCallKey, } from "./retry-guard.js";
5
- describe("retry guard", () => {
6
- it("canonicalizes nested object keys", () => {
7
- expect(canonicalJson({ b: { d: 2, c: 1 }, a: 0 })).toBe(canonicalJson({ a: 0, b: { c: 1, d: 2 } }));
8
- });
9
- it("separates tools and inputs", () => {
10
- expect(toolCallKey("read", { path: "a" })).not.toBe(toolCallKey("write", { path: "a" }));
11
- });
12
- it("warns once when an identical failure repeats", () => {
13
- const state = createRetryGuardState();
14
- expect(recordToolResult(state, "read", { path: "a" }, true).shouldWarn).toBe(false);
15
- expect(recordToolResult(state, "read", { path: "a" }, true).shouldWarn).toBe(true);
16
- expect(recordToolResult(state, "read", { path: "a" }, true).shouldWarn).toBe(false);
17
- });
18
- it("resets a failure streak after success", () => {
19
- const state = createRetryGuardState();
20
- recordToolResult(state, "read", {}, true);
21
- recordToolResult(state, "read", {}, true);
22
- recordToolResult(state, "read", {}, false);
23
- expect(recordToolResult(state, "read", {}, true).failureCount).toBe(1);
24
- });
25
- it("hard stops only when enabled", () => {
26
- const state = createRetryGuardState();
27
- for (let attempt = 0; attempt < 4; attempt += 1) {
28
- recordToolResult(state, "read", {}, true, {
29
- hardStopEnabled: true,
30
- stopAt: 5,
31
- });
32
- }
33
- expect(recordToolResult(state, "read", {}, true, {
34
- hardStopEnabled: true,
35
- stopAt: 5,
36
- }).shouldStop).toBe(true);
37
- });
38
- it("clears state explicitly", () => {
39
- const state = createRetryGuardState();
40
- recordToolResult(state, "read", {}, true);
41
- resetRetryGuard(state);
42
- expect(state.failuresByKey.size).toBe(0);
43
- });
44
- });
45
- //# sourceMappingURL=retry-guard.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"retry-guard.test.js","sourceRoot":"","sources":["../src/retry-guard.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=task-controller.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-controller.test.d.ts","sourceRoot":"","sources":["../src/task-controller.test.ts"],"names":[],"mappings":""}