@acpus/runtime 0.1.0

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 (79) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +7 -0
  3. package/dist/artifacts.d.ts +30 -0
  4. package/dist/artifacts.d.ts.map +1 -0
  5. package/dist/artifacts.js +97 -0
  6. package/dist/artifacts.js.map +1 -0
  7. package/dist/client.d.ts +54 -0
  8. package/dist/client.d.ts.map +1 -0
  9. package/dist/client.js +159 -0
  10. package/dist/client.js.map +1 -0
  11. package/dist/evaluator.d.ts +37 -0
  12. package/dist/evaluator.d.ts.map +1 -0
  13. package/dist/evaluator.js +101 -0
  14. package/dist/evaluator.js.map +1 -0
  15. package/dist/executors/agent.d.ts +74 -0
  16. package/dist/executors/agent.d.ts.map +1 -0
  17. package/dist/executors/agent.js +401 -0
  18. package/dist/executors/agent.js.map +1 -0
  19. package/dist/executors/mock-program.d.ts +24 -0
  20. package/dist/executors/mock-program.d.ts.map +1 -0
  21. package/dist/executors/mock-program.js +79 -0
  22. package/dist/executors/mock-program.js.map +1 -0
  23. package/dist/executors/program.d.ts +21 -0
  24. package/dist/executors/program.d.ts.map +1 -0
  25. package/dist/executors/program.js +178 -0
  26. package/dist/executors/program.js.map +1 -0
  27. package/dist/executors/types.d.ts +26 -0
  28. package/dist/executors/types.d.ts.map +1 -0
  29. package/dist/executors/types.js +2 -0
  30. package/dist/executors/types.js.map +1 -0
  31. package/dist/index.d.ts +18 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +25 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/interpreter.d.ts +186 -0
  36. package/dist/interpreter.d.ts.map +1 -0
  37. package/dist/interpreter.js +1500 -0
  38. package/dist/interpreter.js.map +1 -0
  39. package/dist/keys.d.ts +36 -0
  40. package/dist/keys.d.ts.map +1 -0
  41. package/dist/keys.js +59 -0
  42. package/dist/keys.js.map +1 -0
  43. package/dist/state-machine.d.ts +27 -0
  44. package/dist/state-machine.d.ts.map +1 -0
  45. package/dist/state-machine.js +87 -0
  46. package/dist/state-machine.js.map +1 -0
  47. package/dist/store.d.ts +46 -0
  48. package/dist/store.d.ts.map +1 -0
  49. package/dist/store.js +260 -0
  50. package/dist/store.js.map +1 -0
  51. package/dist/supervisor-app.d.ts +27 -0
  52. package/dist/supervisor-app.d.ts.map +1 -0
  53. package/dist/supervisor-app.js +548 -0
  54. package/dist/supervisor-app.js.map +1 -0
  55. package/dist/supervisor-discovery.d.ts +17 -0
  56. package/dist/supervisor-discovery.d.ts.map +1 -0
  57. package/dist/supervisor-discovery.js +186 -0
  58. package/dist/supervisor-discovery.js.map +1 -0
  59. package/dist/supervisor-entry.d.ts +11 -0
  60. package/dist/supervisor-entry.d.ts.map +1 -0
  61. package/dist/supervisor-entry.js +50 -0
  62. package/dist/supervisor-entry.js.map +1 -0
  63. package/dist/supervisor-lock.d.ts +26 -0
  64. package/dist/supervisor-lock.d.ts.map +1 -0
  65. package/dist/supervisor-lock.js +49 -0
  66. package/dist/supervisor-lock.js.map +1 -0
  67. package/dist/supervisor-runner.d.ts +11 -0
  68. package/dist/supervisor-runner.d.ts.map +1 -0
  69. package/dist/supervisor-runner.js +128 -0
  70. package/dist/supervisor-runner.js.map +1 -0
  71. package/dist/types.d.ts +230 -0
  72. package/dist/types.d.ts.map +1 -0
  73. package/dist/types.js +2 -0
  74. package/dist/types.js.map +1 -0
  75. package/dist/validate-input.d.ts +27 -0
  76. package/dist/validate-input.d.ts.map +1 -0
  77. package/dist/validate-input.js +56 -0
  78. package/dist/validate-input.js.map +1 -0
  79. package/package.json +66 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpreter.js","sourceRoot":"","sources":["../src/interpreter.ts"],"names":[],"mappings":"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"}
package/dist/keys.d.ts ADDED
@@ -0,0 +1,36 @@
1
+ import type { NodeKeyTemplate } from "@acpus/core";
2
+ import type { NodeKeyDynamic } from "./types.js";
3
+ /**
4
+ * Convert a NodeKeyTemplate + runtime dynamic context into a stable key string
5
+ * for file naming and state lookup.
6
+ *
7
+ * Encoding: slash-separated path segments where dynamic dimensions use
8
+ * `type:value` format. All values are filesystem-safe (no colons or
9
+ * special chars in values — colons only appear as dimension separators).
10
+ *
11
+ * Examples:
12
+ * - Plain: "workflow/step-a"
13
+ * - Fanout item: "workflow/mapped/item:file-a"
14
+ * - Fanout with lane: "workflow/mapped/item:file-a/lane:0"
15
+ * - Loop round: "workflow/iterator/round:3"
16
+ * - Parallel branch: "workflow/parallel-group/branch:0"
17
+ * - Composite: "workflow/mapped/item:file-a/lane:0/branch:0/round:2"
18
+ */
19
+ export declare function resolveNodeKey(template: NodeKeyTemplate, dynamic?: NodeKeyDynamic): string;
20
+ /** Sanitize a dynamic value to be filesystem-safe (shared with key-scope matching). */
21
+ export declare function sanitizeValue(value: string): string;
22
+ /**
23
+ * Encode a node key for use as a filesystem filename.
24
+ * Replaces "/" with ":" to flatten the hierarchical key into a flat name,
25
+ * then appends ".json".
26
+ * This encoding must be used consistently across store.ts and artifacts.ts.
27
+ */
28
+ export declare function encodeNodeKeyForFs(nodeKey: string): string;
29
+ /**
30
+ * Encode a node key for use as a filesystem directory name.
31
+ * Replaces "/" with ":" to flatten the hierarchical key into a flat name.
32
+ * Use this when you need the encoded key without a file extension
33
+ * (e.g., artifact directories, path segments).
34
+ */
35
+ export declare function encodeNodeKeyForDir(nodeKey: string): string;
36
+ //# sourceMappingURL=keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,eAAe,EACzB,OAAO,GAAE,cAAmB,GAC3B,MAAM,CAuBR;AAED,uFAAuF;AACvF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3D"}
package/dist/keys.js ADDED
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Convert a NodeKeyTemplate + runtime dynamic context into a stable key string
3
+ * for file naming and state lookup.
4
+ *
5
+ * Encoding: slash-separated path segments where dynamic dimensions use
6
+ * `type:value` format. All values are filesystem-safe (no colons or
7
+ * special chars in values — colons only appear as dimension separators).
8
+ *
9
+ * Examples:
10
+ * - Plain: "workflow/step-a"
11
+ * - Fanout item: "workflow/mapped/item:file-a"
12
+ * - Fanout with lane: "workflow/mapped/item:file-a/lane:0"
13
+ * - Loop round: "workflow/iterator/round:3"
14
+ * - Parallel branch: "workflow/parallel-group/branch:0"
15
+ * - Composite: "workflow/mapped/item:file-a/lane:0/branch:0/round:2"
16
+ */
17
+ export function resolveNodeKey(template, dynamic = {}) {
18
+ const parts = [template.nodePath];
19
+ // Always include dynamic dimensions when provided, regardless of template flags.
20
+ // The template flags indicate the node *can* have that dimension, but at runtime
21
+ // any ancestor that provides a dimension should be reflected in child keys too.
22
+ if (dynamic.fanoutItemId !== undefined) {
23
+ parts.push(`item:${sanitizeValue(String(dynamic.fanoutItemId))}`);
24
+ }
25
+ if (dynamic.laneId !== undefined) {
26
+ parts.push(`lane:${sanitizeValue(String(dynamic.laneId))}`);
27
+ }
28
+ if (dynamic.parallelBranchId !== undefined) {
29
+ parts.push(`branch:${sanitizeValue(String(dynamic.parallelBranchId))}`);
30
+ }
31
+ if (dynamic.loopRound !== undefined) {
32
+ parts.push(`round:${String(dynamic.loopRound)}`);
33
+ }
34
+ return parts.join("/");
35
+ }
36
+ /** Sanitize a dynamic value to be filesystem-safe (shared with key-scope matching). */
37
+ export function sanitizeValue(value) {
38
+ // Replace filesystem-unsafe characters with underscores
39
+ return value.replace(/[/\\:*?"<>|]/g, "_");
40
+ }
41
+ /**
42
+ * Encode a node key for use as a filesystem filename.
43
+ * Replaces "/" with ":" to flatten the hierarchical key into a flat name,
44
+ * then appends ".json".
45
+ * This encoding must be used consistently across store.ts and artifacts.ts.
46
+ */
47
+ export function encodeNodeKeyForFs(nodeKey) {
48
+ return encodeNodeKeyForDir(nodeKey) + ".json";
49
+ }
50
+ /**
51
+ * Encode a node key for use as a filesystem directory name.
52
+ * Replaces "/" with ":" to flatten the hierarchical key into a flat name.
53
+ * Use this when you need the encoded key without a file extension
54
+ * (e.g., artifact directories, path segments).
55
+ */
56
+ export function encodeNodeKeyForDir(nodeKey) {
57
+ return nodeKey.replace(/\//g, ":");
58
+ }
59
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAyB,EACzB,UAA0B,EAAE;IAE5B,MAAM,KAAK,GAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE5C,iFAAiF;IACjF,iFAAiF;IACjF,gFAAgF;IAChF,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,QAAQ,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,QAAQ,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,UAAU,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,wDAAwD;IACxD,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,mBAAmB,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAChD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { IrNodeKind } from "@acpus/core";
2
+ import type { NodeExecutionState, NodeState } from "./types.js";
3
+ /** Check if a transition from `from` to `to` is legal. */
4
+ export declare function canTransition(from: NodeState, to: NodeState): boolean;
5
+ /**
6
+ * Transition a node state. Throws if the transition is illegal.
7
+ * Returns the new state.
8
+ */
9
+ export declare function transition(from: NodeState, to: NodeState): NodeState;
10
+ /** Check if a state is terminal (no further business-lifecycle transitions). */
11
+ export declare function isTerminal(state: NodeState): boolean;
12
+ /** Control-plane reset: operator retry of a failed node (failed → pending). */
13
+ export declare function resetFailedForRetry(from: NodeState): NodeState;
14
+ /** Control-plane reset: Run-level resume of a paused node (paused → pending). */
15
+ export declare function resetPausedForRunResume(from: NodeState): NodeState;
16
+ /** Control-plane reset: crash recovery of a stale running node (running → pending). */
17
+ export declare function resetRunningForCrashRecovery(from: NodeState): NodeState;
18
+ /**
19
+ * Control-plane reset: crash recovery of a stale awaiting node (awaiting → pending).
20
+ * The in-memory approval resolver does not survive a supervisor restart, so a node
21
+ * left in `awaiting` must be re-executed from scratch to re-register its resolver and
22
+ * wait for a fresh human decision.
23
+ */
24
+ export declare function resetAwaitingForCrashRecovery(from: NodeState): NodeState;
25
+ /** Create the initial NodeExecutionState for a node. */
26
+ export declare function createInitialNodeState(nodeKey: string, nodeId: string, kind: IrNodeKind): NodeExecutionState;
27
+ //# sourceMappingURL=state-machine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-machine.d.ts","sourceRoot":"","sources":["../src/state-machine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAwBhE,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAErE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,GAAG,SAAS,CAKpE;AAED,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAEpD;AAQD,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAK9D;AAED,iFAAiF;AACjF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAKlE;AAED,uFAAuF;AACvF,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAKvE;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAKxE;AAED,wDAAwD;AACxD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,GACf,kBAAkB,CAQpB"}
@@ -0,0 +1,87 @@
1
+ // ─── Legal transitions ───────────────────────────────────────────
2
+ //
3
+ // This table models only the *business lifecycle* of a Node. Control-plane
4
+ // resets (operator retry, crash recovery) are NOT transitions here — they are
5
+ // reset operations exposed via dedicated helpers below, so that no generic
6
+ // `canTransition(x, "pending")` call can accidentally gain retry/reset rights.
7
+ const TRANSITIONS = {
8
+ pending: new Set(["running"]),
9
+ running: new Set(["awaiting", "completed", "failed", "paused", "cancelled"]),
10
+ // `awaiting` is a human-in-the-loop wait (e.g. an Approval Gate blocked on an
11
+ // operator decision). It is distinct from `paused` (an operator-initiated
12
+ // pause): a decision resolves it to `completed`, a cancel to `cancelled`.
13
+ awaiting: new Set(["completed", "cancelled"]),
14
+ // A paused Node is resumed by a Run-level control-plane reset back to
15
+ // `pending`, not by a direct lifecycle transition to `running`.
16
+ paused: new Set(["cancelled"]),
17
+ completed: new Set(),
18
+ failed: new Set(),
19
+ cancelled: new Set()
20
+ };
21
+ /** Check if a transition from `from` to `to` is legal. */
22
+ export function canTransition(from, to) {
23
+ return TRANSITIONS[from].has(to);
24
+ }
25
+ /**
26
+ * Transition a node state. Throws if the transition is illegal.
27
+ * Returns the new state.
28
+ */
29
+ export function transition(from, to) {
30
+ if (!canTransition(from, to)) {
31
+ throw new Error(`Illegal state transition: ${from} → ${to}`);
32
+ }
33
+ return to;
34
+ }
35
+ /** Check if a state is terminal (no further business-lifecycle transitions). */
36
+ export function isTerminal(state) {
37
+ return TRANSITIONS[state].size === 0;
38
+ }
39
+ // ─── Control-plane resets ────────────────────────────────────────
40
+ //
41
+ // These are NOT business-lifecycle transitions. They are explicit reset
42
+ // operations invoked only from dedicated control entry points, so the
43
+ // generic state machine never exposes a path back to `pending`.
44
+ /** Control-plane reset: operator retry of a failed node (failed → pending). */
45
+ export function resetFailedForRetry(from) {
46
+ if (from !== "failed") {
47
+ throw new Error(`Cannot retry node in state '${from}': only failed nodes are retryable`);
48
+ }
49
+ return "pending";
50
+ }
51
+ /** Control-plane reset: Run-level resume of a paused node (paused → pending). */
52
+ export function resetPausedForRunResume(from) {
53
+ if (from !== "paused") {
54
+ throw new Error(`Cannot reset node in state '${from}': only paused nodes can be reset`);
55
+ }
56
+ return "pending";
57
+ }
58
+ /** Control-plane reset: crash recovery of a stale running node (running → pending). */
59
+ export function resetRunningForCrashRecovery(from) {
60
+ if (from !== "running") {
61
+ throw new Error(`Cannot recover stale node in state '${from}': only running nodes can be reset`);
62
+ }
63
+ return "pending";
64
+ }
65
+ /**
66
+ * Control-plane reset: crash recovery of a stale awaiting node (awaiting → pending).
67
+ * The in-memory approval resolver does not survive a supervisor restart, so a node
68
+ * left in `awaiting` must be re-executed from scratch to re-register its resolver and
69
+ * wait for a fresh human decision.
70
+ */
71
+ export function resetAwaitingForCrashRecovery(from) {
72
+ if (from !== "awaiting") {
73
+ throw new Error(`Cannot recover stale node in state '${from}': only awaiting nodes can be reset`);
74
+ }
75
+ return "pending";
76
+ }
77
+ /** Create the initial NodeExecutionState for a node. */
78
+ export function createInitialNodeState(nodeKey, nodeId, kind) {
79
+ return {
80
+ nodeKey,
81
+ nodeId,
82
+ kind,
83
+ state: "pending",
84
+ attempt: 0
85
+ };
86
+ }
87
+ //# sourceMappingURL=state-machine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-machine.js","sourceRoot":"","sources":["../src/state-machine.ts"],"names":[],"mappings":"AAGA,oEAAoE;AACpE,EAAE;AACF,2EAA2E;AAC3E,8EAA8E;AAC9E,2EAA2E;AAC3E,+EAA+E;AAE/E,MAAM,WAAW,GAAsC;IACrD,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7B,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC5E,8EAA8E;IAC9E,0EAA0E;IAC1E,0EAA0E;IAC1E,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC7C,sEAAsE;IACtE,gEAAgE;IAChE,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;IAC9B,SAAS,EAAE,IAAI,GAAG,EAAE;IACpB,MAAM,EAAE,IAAI,GAAG,EAAE;IACjB,SAAS,EAAE,IAAI,GAAG,EAAE;CACrB,CAAC;AAEF,0DAA0D;AAC1D,MAAM,UAAU,aAAa,CAAC,IAAe,EAAE,EAAa;IAC1D,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,IAAe,EAAE,EAAa;IACvD,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,UAAU,CAAC,KAAgB;IACzC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;AACvC,CAAC;AAED,oEAAoE;AACpE,EAAE;AACF,wEAAwE;AACxE,sEAAsE;AACtE,gEAAgE;AAEhE,+EAA+E;AAC/E,MAAM,UAAU,mBAAmB,CAAC,IAAe;IACjD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,oCAAoC,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,uBAAuB,CAAC,IAAe;IACrD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,mCAAmC,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,4BAA4B,CAAC,IAAe;IAC1D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,oCAAoC,CAAC,CAAC;IACnG,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAAC,IAAe;IAC3D,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,qCAAqC,CAAC,CAAC;IACpG,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,sBAAsB,CACpC,OAAe,EACf,MAAc,EACd,IAAgB;IAEhB,OAAO;QACL,OAAO;QACP,MAAM;QACN,IAAI;QACJ,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,CAAC;KACX,CAAC;AACJ,CAAC"}
@@ -0,0 +1,46 @@
1
+ import type { AcpusIr } from "@acpus/core";
2
+ import type { NodeExecutionState, RunCleanResult, RunState } from "./types.js";
3
+ export declare class RunStore {
4
+ private readonly baseDir;
5
+ constructor(baseDir?: string);
6
+ /** Create a new run directory and write IR + input snapshots. */
7
+ initRun(runId: string, ir: AcpusIr, input: Record<string, unknown>, source?: {
8
+ workflowRef?: string;
9
+ workflowSourcePath?: string;
10
+ }): RunState;
11
+ /** Read the frozen IR snapshot for a run. */
12
+ readIr(runId: string): AcpusIr | undefined;
13
+ /** Read the resolved input for a run. */
14
+ readInput(runId: string): Record<string, unknown> | undefined;
15
+ writeRunMeta(runId: string, meta: RunState): void;
16
+ readRunMeta(runId: string): RunState | undefined;
17
+ /** Atomically write node execution state. */
18
+ writeNodeState(runId: string, state: NodeExecutionState): void;
19
+ /** Read node execution state. Returns undefined if not found. */
20
+ readNodeState(runId: string, nodeKey: string): NodeExecutionState | undefined;
21
+ /** List all node states for a run. */
22
+ listNodeStates(runId: string): NodeExecutionState[];
23
+ /** List all run IDs on disk. */
24
+ listRunIds(): string[];
25
+ /** Get the artifacts directory for a node. */
26
+ artifactsDir(runId: string, nodeKey: string): string;
27
+ /** Check if a run exists on disk. */
28
+ hasRun(runId: string): boolean;
29
+ cleanTerminalRuns(options?: {
30
+ dryRun?: boolean;
31
+ }): RunCleanResult;
32
+ /** Get the base directory. */
33
+ getBaseDir(): string;
34
+ /**
35
+ * Resolve an `artifact://runs/<runId>/nodes/<safeKey>/<filename>` URI to its
36
+ * absolute filesystem path. Pure (no mkdir). Returns undefined for malformed
37
+ * URIs. Mirrors ArtifactStore's layout: <baseDir>/<runId>/artifacts/<safeKey>/<filename>.
38
+ */
39
+ resolveArtifactPath(uri: string): string | undefined;
40
+ private runDir;
41
+ /** Write JSON via temp file + atomic rename for crash safety. */
42
+ private atomicWriteJson;
43
+ /** Read and parse a JSON file. Returns undefined if missing or invalid. */
44
+ private readJson;
45
+ }
46
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAgB,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAiC7F,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,OAAO,CAAC,EAAE,MAAM;IAM5B,iEAAiE;IACjE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,QAAQ;IA+B7I,6CAA6C;IAC7C,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAK1C,yCAAyC;IACzC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;IAO7D,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI;IAKjD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAOhD,6CAA6C;IAC7C,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAM9D,iEAAiE;IACjE,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAM7E,sCAAsC;IACtC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAanD,gCAAgC;IAChC,UAAU,IAAI,MAAM,EAAE;IAOtB,8CAA8C;IAC9C,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAOpD,qCAAqC;IACrC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAK9B,iBAAiB,CAAC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,cAAc;IAuDrE,8BAA8B;IAC9B,UAAU,IAAI,MAAM;IAIpB;;;;OAIG;IACH,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAwBpD,OAAO,CAAC,MAAM;IAId,iEAAiE;IACjE,OAAO,CAAC,eAAe;IAQvB,2EAA2E;IAC3E,OAAO,CAAC,QAAQ;CAQjB"}