@acpus/runtime 0.1.0 → 0.2.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 (76) hide show
  1. package/dist/agent-telemetry.d.ts +49 -0
  2. package/dist/agent-telemetry.d.ts.map +1 -0
  3. package/dist/agent-telemetry.js +255 -0
  4. package/dist/agent-telemetry.js.map +1 -0
  5. package/dist/artifacts.d.ts +16 -1
  6. package/dist/artifacts.d.ts.map +1 -1
  7. package/dist/artifacts.js +92 -29
  8. package/dist/artifacts.js.map +1 -1
  9. package/dist/attempt-artifacts.d.ts +35 -0
  10. package/dist/attempt-artifacts.d.ts.map +1 -0
  11. package/dist/attempt-artifacts.js +90 -0
  12. package/dist/attempt-artifacts.js.map +1 -0
  13. package/dist/client.d.ts +27 -0
  14. package/dist/client.d.ts.map +1 -1
  15. package/dist/client.js +33 -0
  16. package/dist/client.js.map +1 -1
  17. package/dist/executors/agent.d.ts +7 -3
  18. package/dist/executors/agent.d.ts.map +1 -1
  19. package/dist/executors/agent.js +58 -61
  20. package/dist/executors/agent.js.map +1 -1
  21. package/dist/executors/mock-program.d.ts +2 -0
  22. package/dist/executors/mock-program.d.ts.map +1 -1
  23. package/dist/executors/mock-program.js +27 -6
  24. package/dist/executors/mock-program.js.map +1 -1
  25. package/dist/executors/output-preview.d.ts +2 -0
  26. package/dist/executors/output-preview.d.ts.map +1 -0
  27. package/dist/executors/output-preview.js +20 -0
  28. package/dist/executors/output-preview.js.map +1 -0
  29. package/dist/executors/program.d.ts +10 -3
  30. package/dist/executors/program.d.ts.map +1 -1
  31. package/dist/executors/program.js +39 -4
  32. package/dist/executors/program.js.map +1 -1
  33. package/dist/executors/types.d.ts +2 -0
  34. package/dist/executors/types.d.ts.map +1 -1
  35. package/dist/fork.d.ts +76 -0
  36. package/dist/fork.d.ts.map +1 -0
  37. package/dist/fork.js +201 -0
  38. package/dist/fork.js.map +1 -0
  39. package/dist/index.d.ts +9 -4
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +6 -3
  42. package/dist/index.js.map +1 -1
  43. package/dist/interpreter.d.ts +5 -49
  44. package/dist/interpreter.d.ts.map +1 -1
  45. package/dist/interpreter.js +210 -462
  46. package/dist/interpreter.js.map +1 -1
  47. package/dist/keys.d.ts +50 -2
  48. package/dist/keys.d.ts.map +1 -1
  49. package/dist/keys.js +261 -1
  50. package/dist/keys.js.map +1 -1
  51. package/dist/run-control.d.ts +45 -0
  52. package/dist/run-control.d.ts.map +1 -0
  53. package/dist/run-control.js +253 -0
  54. package/dist/run-control.js.map +1 -0
  55. package/dist/state-machine.d.ts +5 -1
  56. package/dist/state-machine.d.ts.map +1 -1
  57. package/dist/state-machine.js +16 -1
  58. package/dist/state-machine.js.map +1 -1
  59. package/dist/store.d.ts +26 -1
  60. package/dist/store.d.ts.map +1 -1
  61. package/dist/store.js +127 -28
  62. package/dist/store.js.map +1 -1
  63. package/dist/supervisor-app.d.ts.map +1 -1
  64. package/dist/supervisor-app.js +110 -40
  65. package/dist/supervisor-app.js.map +1 -1
  66. package/dist/supervisor-discovery.d.ts +1 -0
  67. package/dist/supervisor-discovery.d.ts.map +1 -1
  68. package/dist/supervisor-discovery.js +9 -15
  69. package/dist/supervisor-discovery.js.map +1 -1
  70. package/dist/types.d.ts +81 -4
  71. package/dist/types.d.ts.map +1 -1
  72. package/dist/workflow-outputs.d.ts +9 -0
  73. package/dist/workflow-outputs.d.ts.map +1 -0
  74. package/dist/workflow-outputs.js +59 -0
  75. package/dist/workflow-outputs.js.map +1 -0
  76. package/package.json +3 -3
@@ -0,0 +1,45 @@
1
+ import type { AcpusIr } from "@acpus/core";
2
+ import type { NodeExecutionState } from "./types.js";
3
+ import { RunStore } from "./store.js";
4
+ export type RunControlAbortState = "paused" | "cancelled";
5
+ export declare const PAUSED_ABORT_ERROR = "Aborted: paused";
6
+ export declare function abortedNodeError(state: RunControlAbortState): string;
7
+ export declare function isPausedContinuationState(state: NodeExecutionState | undefined): boolean;
8
+ export interface NodeRetryPreparation {
9
+ state: NodeExecutionState;
10
+ ir: AcpusIr;
11
+ input: Record<string, unknown>;
12
+ }
13
+ export declare class RunControl {
14
+ private readonly store;
15
+ /** Active abort controllers keyed by "runId:nodeKey" for pause/cancel support. */
16
+ private readonly abortControllers;
17
+ /** Intent of an in-flight abort keyed by "runId:nodeKey" (pause vs cancel). */
18
+ private readonly abortIntents;
19
+ /** Per-run scheduling guards used to stop new work after pause/cancel. */
20
+ private readonly schedulingPaused;
21
+ private readonly schedulingCancelled;
22
+ constructor(store: RunStore);
23
+ registerAbortController(runId: string, nodeKey: string, controller: AbortController): void;
24
+ clearInFlightNode(runId: string, nodeKey: string): void;
25
+ clearSchedulingGuards(runId: string): void;
26
+ recoverStaleNodes(runId: string): void;
27
+ prepareNodeRetry(runId: string, nodeKey: string): NodeRetryPreparation;
28
+ resetNodeForRetry(runId: string, state: NodeExecutionState): void;
29
+ pauseRun(runId: string): void;
30
+ cancelRun(runId: string): void;
31
+ resumeRun(runId: string): void;
32
+ retryRun(runId: string): void;
33
+ applySchedulingGuard(runId: string, state: NodeExecutionState): RunControlAbortState | undefined;
34
+ abortIntent(runId: string, nodeKey: string): RunControlAbortState;
35
+ readAbortedStateOnDisk(runId: string, nodeKey: string): RunControlAbortState | undefined;
36
+ isStaleAttemptOnDisk(runId: string, nodeKey: string, attempt: number, startedAt: string | undefined): boolean;
37
+ syncInFrameAttemptFromDisk(runId: string, nodeKey: string, state: NodeExecutionState): void;
38
+ cancelDescendantsInScope(runId: string, rootNodeKey: string): void;
39
+ private pauseRunningNode;
40
+ private cancelMaterializedNode;
41
+ private descendantsInScope;
42
+ private key;
43
+ private clearAttemptFields;
44
+ }
45
+ //# sourceMappingURL=run-control.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-control.d.ts","sourceRoot":"","sources":["../src/run-control.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAa,MAAM,YAAY,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAYtC,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE1D,eAAO,MAAM,kBAAkB,oBAAoB,CAAC;AAEpD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAEpE;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,GAAG,OAAO,CAExF;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,qBAAa,UAAU;IAWT,OAAO,CAAC,QAAQ,CAAC,KAAK;IAVlC,kFAAkF;IAClF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2C;IAE5E,+EAA+E;IAC/E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgD;IAE7E,0EAA0E;IAC1E,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8B;IAC/D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA8B;gBAErC,KAAK,EAAE,QAAQ;IAE5C,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,GAAG,IAAI;IAI1F,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAKvD,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1C,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAYtC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,oBAAoB;IA4BtE,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAMjE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAoB7B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAwC9B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAsB9B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAiC7B,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,oBAAoB,GAAG,SAAS;IAYhG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,oBAAoB;IAIjE,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAKxF,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAK7G,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAO3F,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAIlE,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,kBAAkB;CAS3B"}
@@ -0,0 +1,253 @@
1
+ import { isNodeKeyBelowAnyAnchor } from "./keys.js";
2
+ import { canTransition, cancelPendingForRunCancel, resetCancelledForRunRetry, resetAwaitingForCrashRecovery, resetFailedForRetry, resetPausedForRunResume, resetRunningForCrashRecovery, transition } from "./state-machine.js";
3
+ export const PAUSED_ABORT_ERROR = "Aborted: paused";
4
+ export function abortedNodeError(state) {
5
+ return state === "paused" ? PAUSED_ABORT_ERROR : "Aborted: cancelled";
6
+ }
7
+ export function isPausedContinuationState(state) {
8
+ return state?.state === "pending" && state.attempt > 0 && state.error === PAUSED_ABORT_ERROR;
9
+ }
10
+ export class RunControl {
11
+ store;
12
+ /** Active abort controllers keyed by "runId:nodeKey" for pause/cancel support. */
13
+ abortControllers = new Map();
14
+ /** Intent of an in-flight abort keyed by "runId:nodeKey" (pause vs cancel). */
15
+ abortIntents = new Map();
16
+ /** Per-run scheduling guards used to stop new work after pause/cancel. */
17
+ schedulingPaused = new Map();
18
+ schedulingCancelled = new Map();
19
+ constructor(store) {
20
+ this.store = store;
21
+ }
22
+ registerAbortController(runId, nodeKey, controller) {
23
+ this.abortControllers.set(this.key(runId, nodeKey), controller);
24
+ }
25
+ clearInFlightNode(runId, nodeKey) {
26
+ this.abortControllers.delete(this.key(runId, nodeKey));
27
+ this.abortIntents.delete(this.key(runId, nodeKey));
28
+ }
29
+ clearSchedulingGuards(runId) {
30
+ this.schedulingPaused.delete(runId);
31
+ this.schedulingCancelled.delete(runId);
32
+ }
33
+ recoverStaleNodes(runId) {
34
+ for (const nodeState of this.store.listNodeStates(runId)) {
35
+ if (nodeState.state === "running") {
36
+ nodeState.state = resetRunningForCrashRecovery(nodeState.state);
37
+ this.store.writeNodeState(runId, nodeState);
38
+ }
39
+ else if (nodeState.state === "awaiting") {
40
+ nodeState.state = resetAwaitingForCrashRecovery(nodeState.state);
41
+ this.store.writeNodeState(runId, nodeState);
42
+ }
43
+ }
44
+ }
45
+ prepareNodeRetry(runId, nodeKey) {
46
+ const state = this.store.readNodeState(runId, nodeKey);
47
+ if (!state) {
48
+ throw new Error(`Node ${nodeKey} not found in run ${runId}`);
49
+ }
50
+ if (state.state !== "failed") {
51
+ throw new Error(`Cannot retry node ${nodeKey} in state '${state.state}': only failed executable nodes are retryable`);
52
+ }
53
+ if (state.kind !== "run.agent" && state.kind !== "run.program") {
54
+ throw new Error(`Cannot retry node ${nodeKey}: only failed executable nodes are retryable`);
55
+ }
56
+ const meta = this.store.readRunMeta(runId);
57
+ if (!meta)
58
+ throw new Error(`Run ${runId} not found`);
59
+ if (meta.status !== "failed") {
60
+ throw new Error(`Cannot retry node ${nodeKey}: node retry is accepted only when the Run is failed`);
61
+ }
62
+ const ir = this.store.readIr(runId);
63
+ const input = this.store.readInput(runId);
64
+ if (!ir || !input) {
65
+ throw new Error(`Cannot retry node ${nodeKey}: run ${runId} has no persisted IR or input`);
66
+ }
67
+ return { state, ir, input };
68
+ }
69
+ resetNodeForRetry(runId, state) {
70
+ state.state = resetFailedForRetry(state.state);
71
+ state.error = undefined;
72
+ this.store.writeNodeState(runId, state);
73
+ }
74
+ pauseRun(runId) {
75
+ const meta = this.store.readRunMeta(runId);
76
+ if (!meta)
77
+ throw new Error(`Run ${runId} not found`);
78
+ if (meta.status !== "running") {
79
+ throw new Error(`Cannot pause a run in state '${meta.status}'`);
80
+ }
81
+ this.schedulingPaused.set(runId, true);
82
+ for (const nodeState of this.store.listNodeStates(runId)) {
83
+ if (nodeState.state === "running") {
84
+ this.pauseRunningNode(runId, nodeState.nodeKey);
85
+ }
86
+ }
87
+ meta.status = "paused";
88
+ meta.updatedAt = new Date().toISOString();
89
+ this.store.writeRunMeta(runId, meta);
90
+ }
91
+ cancelRun(runId) {
92
+ const meta = this.store.readRunMeta(runId);
93
+ if (!meta)
94
+ throw new Error(`Run ${runId} not found`);
95
+ if (meta.status !== "running" && meta.status !== "paused") {
96
+ throw new Error(`Cannot cancel a run in state '${meta.status}'`);
97
+ }
98
+ this.schedulingCancelled.set(runId, true);
99
+ for (const [key, intent] of this.abortIntents) {
100
+ if (key.startsWith(`${runId}:`) && intent === "paused") {
101
+ this.abortIntents.set(key, "cancelled");
102
+ }
103
+ }
104
+ for (const nodeState of this.store.listNodeStates(runId)) {
105
+ if (nodeState.state === "running" || nodeState.state === "awaiting") {
106
+ this.cancelMaterializedNode(runId, nodeState.nodeKey);
107
+ }
108
+ }
109
+ for (const nodeState of this.store.listNodeStates(runId)) {
110
+ if (nodeState.state === "paused" && canTransition(nodeState.state, "cancelled")) {
111
+ nodeState.state = transition(nodeState.state, "cancelled");
112
+ this.store.writeNodeState(runId, nodeState);
113
+ }
114
+ }
115
+ for (const nodeState of this.store.listNodeStates(runId)) {
116
+ if (nodeState.state === "pending") {
117
+ nodeState.state = cancelPendingForRunCancel(nodeState.state);
118
+ this.store.writeNodeState(runId, nodeState);
119
+ }
120
+ }
121
+ meta.status = "cancelled";
122
+ meta.updatedAt = new Date().toISOString();
123
+ this.store.writeRunMeta(runId, meta);
124
+ }
125
+ resumeRun(runId) {
126
+ const meta = this.store.readRunMeta(runId);
127
+ if (!meta)
128
+ throw new Error(`Run ${runId} not found`);
129
+ if (meta.status !== "paused") {
130
+ throw new Error(`Cannot resume a run in state '${meta.status}'`);
131
+ }
132
+ this.clearSchedulingGuards(runId);
133
+ this.recoverStaleNodes(runId);
134
+ for (const nodeState of this.store.listNodeStates(runId)) {
135
+ if (nodeState.state === "paused") {
136
+ nodeState.state = resetPausedForRunResume(nodeState.state);
137
+ this.store.writeNodeState(runId, nodeState);
138
+ }
139
+ }
140
+ meta.status = "running";
141
+ meta.updatedAt = new Date().toISOString();
142
+ this.store.writeRunMeta(runId, meta);
143
+ }
144
+ retryRun(runId) {
145
+ const meta = this.store.readRunMeta(runId);
146
+ if (!meta)
147
+ throw new Error(`Run ${runId} not found`);
148
+ if (meta.status !== "failed") {
149
+ throw new Error(`Cannot retry a run in state '${meta.status}'`);
150
+ }
151
+ this.clearSchedulingGuards(runId);
152
+ for (const nodeState of this.store.listNodeStates(runId)) {
153
+ if (nodeState.state === "failed") {
154
+ nodeState.state = resetFailedForRetry(nodeState.state);
155
+ this.clearAttemptFields(nodeState);
156
+ this.store.writeNodeState(runId, nodeState);
157
+ }
158
+ else if (nodeState.state === "paused") {
159
+ nodeState.state = resetPausedForRunResume(nodeState.state);
160
+ this.clearAttemptFields(nodeState);
161
+ this.store.writeNodeState(runId, nodeState);
162
+ }
163
+ else if (nodeState.state === "cancelled") {
164
+ nodeState.state = resetCancelledForRunRetry(nodeState.state);
165
+ this.clearAttemptFields(nodeState);
166
+ this.store.writeNodeState(runId, nodeState);
167
+ }
168
+ }
169
+ meta.status = "running";
170
+ meta.output = undefined;
171
+ meta.error = undefined;
172
+ meta.runAttempt++;
173
+ meta.updatedAt = new Date().toISOString();
174
+ this.store.writeRunMeta(runId, meta);
175
+ }
176
+ applySchedulingGuard(runId, state) {
177
+ if (this.schedulingPaused.get(runId) && state.state === "pending") {
178
+ return "paused";
179
+ }
180
+ if (this.schedulingCancelled.get(runId) && state.state === "pending") {
181
+ state.state = cancelPendingForRunCancel(state.state);
182
+ this.store.writeNodeState(runId, state);
183
+ return "cancelled";
184
+ }
185
+ return undefined;
186
+ }
187
+ abortIntent(runId, nodeKey) {
188
+ return this.abortIntents.get(this.key(runId, nodeKey)) ?? "paused";
189
+ }
190
+ readAbortedStateOnDisk(runId, nodeKey) {
191
+ const state = this.store.readNodeState(runId, nodeKey)?.state;
192
+ return state === "paused" || state === "cancelled" ? state : undefined;
193
+ }
194
+ isStaleAttemptOnDisk(runId, nodeKey, attempt, startedAt) {
195
+ const current = this.store.readNodeState(runId, nodeKey);
196
+ return current !== undefined && current.attempt > attempt && current.startedAt !== startedAt;
197
+ }
198
+ syncInFrameAttemptFromDisk(runId, nodeKey, state) {
199
+ const current = this.store.readNodeState(runId, nodeKey);
200
+ if (current !== undefined && current.startedAt === state.startedAt && current.attempt > state.attempt) {
201
+ state.attempt = current.attempt;
202
+ }
203
+ }
204
+ cancelDescendantsInScope(runId, rootNodeKey) {
205
+ this.descendantsInScope(runId, rootNodeKey, (rid, key) => this.cancelMaterializedNode(rid, key));
206
+ }
207
+ pauseRunningNode(runId, nodeKey) {
208
+ const state = this.store.readNodeState(runId, nodeKey);
209
+ if (!state || !canTransition(state.state, "paused")) {
210
+ return;
211
+ }
212
+ this.abortIntents.set(this.key(runId, nodeKey), "paused");
213
+ this.abortControllers.get(this.key(runId, nodeKey))?.abort();
214
+ state.state = transition(state.state, "paused");
215
+ this.store.writeNodeState(runId, state);
216
+ }
217
+ cancelMaterializedNode(runId, nodeKey) {
218
+ this.abortIntents.set(this.key(runId, nodeKey), "cancelled");
219
+ this.abortControllers.get(this.key(runId, nodeKey))?.abort();
220
+ const state = this.store.readNodeState(runId, nodeKey);
221
+ if (state?.state === "pending") {
222
+ state.state = cancelPendingForRunCancel(state.state);
223
+ this.store.writeNodeState(runId, state);
224
+ }
225
+ else if (state && canTransition(state.state, "cancelled")) {
226
+ state.state = transition(state.state, "cancelled");
227
+ this.store.writeNodeState(runId, state);
228
+ }
229
+ }
230
+ descendantsInScope(runId, rootNodeKey, action) {
231
+ const states = this.store.listNodeStates(runId);
232
+ for (const nodeState of states) {
233
+ if (nodeState.state !== "running" && nodeState.state !== "awaiting" && nodeState.state !== "pending")
234
+ continue;
235
+ if (!isNodeKeyBelowAnyAnchor(nodeState.nodeKey, [rootNodeKey]))
236
+ continue;
237
+ action(runId, nodeState.nodeKey);
238
+ }
239
+ }
240
+ key(runId, nodeKey) {
241
+ return `${runId}:${nodeKey}`;
242
+ }
243
+ clearAttemptFields(state) {
244
+ state.startedAt = undefined;
245
+ state.completedAt = undefined;
246
+ state.error = undefined;
247
+ state.output = undefined;
248
+ state.artifactRefs = undefined;
249
+ state.dynamicContext = undefined;
250
+ state.agentTelemetry = undefined;
251
+ }
252
+ }
253
+ //# sourceMappingURL=run-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-control.js","sourceRoot":"","sources":["../src/run-control.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ export declare function transition(from: NodeState, to: NodeState): NodeState;
11
11
  export declare function isTerminal(state: NodeState): boolean;
12
12
  /** Control-plane reset: operator retry of a failed node (failed → pending). */
13
13
  export declare function resetFailedForRetry(from: NodeState): NodeState;
14
+ /** Control-plane reset: Run-level retry of a cancelled node in a failed Run (cancelled → pending). */
15
+ export declare function resetCancelledForRunRetry(from: NodeState): NodeState;
14
16
  /** Control-plane reset: Run-level resume of a paused node (paused → pending). */
15
17
  export declare function resetPausedForRunResume(from: NodeState): NodeState;
16
18
  /** Control-plane reset: crash recovery of a stale running node (running → pending). */
@@ -22,6 +24,8 @@ export declare function resetRunningForCrashRecovery(from: NodeState): NodeState
22
24
  * wait for a fresh human decision.
23
25
  */
24
26
  export declare function resetAwaitingForCrashRecovery(from: NodeState): NodeState;
27
+ /** Control-plane cancellation: Run-level cancel of a materialized pending node (pending → cancelled). */
28
+ export declare function cancelPendingForRunCancel(from: NodeState): NodeState;
25
29
  /** Create the initial NodeExecutionState for a node. */
26
- export declare function createInitialNodeState(nodeKey: string, nodeId: string, kind: IrNodeKind): NodeExecutionState;
30
+ export declare function createInitialNodeState(nodeKey: string, nodeId: string, kind: IrNodeKind, definitionHash?: string): NodeExecutionState;
27
31
  //# sourceMappingURL=state-machine.d.ts.map
@@ -1 +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"}
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,sGAAsG;AACtG,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAKpE;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,yGAAyG;AACzG,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAKpE;AAED,wDAAwD;AACxD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,EAChB,cAAc,CAAC,EAAE,MAAM,GACtB,kBAAkB,CASpB"}
@@ -48,6 +48,13 @@ export function resetFailedForRetry(from) {
48
48
  }
49
49
  return "pending";
50
50
  }
51
+ /** Control-plane reset: Run-level retry of a cancelled node in a failed Run (cancelled → pending). */
52
+ export function resetCancelledForRunRetry(from) {
53
+ if (from !== "cancelled") {
54
+ throw new Error(`Cannot retry cancelled node from state '${from}': only cancelled nodes use Run-level cancelled reset`);
55
+ }
56
+ return "pending";
57
+ }
51
58
  /** Control-plane reset: Run-level resume of a paused node (paused → pending). */
52
59
  export function resetPausedForRunResume(from) {
53
60
  if (from !== "paused") {
@@ -74,12 +81,20 @@ export function resetAwaitingForCrashRecovery(from) {
74
81
  }
75
82
  return "pending";
76
83
  }
84
+ /** Control-plane cancellation: Run-level cancel of a materialized pending node (pending → cancelled). */
85
+ export function cancelPendingForRunCancel(from) {
86
+ if (from !== "pending") {
87
+ throw new Error(`Cannot cancel pending node from state '${from}': only pending nodes use Run-level pending cancel`);
88
+ }
89
+ return "cancelled";
90
+ }
77
91
  /** Create the initial NodeExecutionState for a node. */
78
- export function createInitialNodeState(nodeKey, nodeId, kind) {
92
+ export function createInitialNodeState(nodeKey, nodeId, kind, definitionHash) {
79
93
  return {
80
94
  nodeKey,
81
95
  nodeId,
82
96
  kind,
97
+ definitionHash,
83
98
  state: "pending",
84
99
  attempt: 0
85
100
  };
@@ -1 +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"}
1
+ {"version":3,"file":"state-machine.js","sourceRoot":"","sources":["../src/state-machine.ts"],"names":[],"mappings":"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"}
package/dist/store.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { AcpusIr } from "@acpus/core";
2
- import type { NodeExecutionState, RunCleanResult, RunState } from "./types.js";
2
+ import type { NodeExecutionState, RunCheckpoint, RunCleanResult, RunState } from "./types.js";
3
3
  export declare class RunStore {
4
4
  private readonly baseDir;
5
5
  constructor(baseDir?: string);
@@ -7,6 +7,7 @@ export declare class RunStore {
7
7
  initRun(runId: string, ir: AcpusIr, input: Record<string, unknown>, source?: {
8
8
  workflowRef?: string;
9
9
  workflowSourcePath?: string;
10
+ lineage?: import("./types.js").RunLineage;
10
11
  }): RunState;
11
12
  /** Read the frozen IR snapshot for a run. */
12
13
  readIr(runId: string): AcpusIr | undefined;
@@ -26,6 +27,29 @@ export declare class RunStore {
26
27
  artifactsDir(runId: string, nodeKey: string): string;
27
28
  /** Check if a run exists on disk. */
28
29
  hasRun(runId: string): boolean;
30
+ /**
31
+ * Append a Run Checkpoint for a Node that has just reached a terminal state.
32
+ * Idempotent on `nodeKey`: if a checkpoint for this Node Key already exists,
33
+ * its entry is replaced in-place to reflect the latest terminal outcome
34
+ * (e.g., a Node Retry that flips failed → completed). Sequence numbers
35
+ * remain monotonic for new entries.
36
+ */
37
+ appendCheckpoint(runId: string, checkpoint: Omit<RunCheckpoint, "sequence">): void;
38
+ /**
39
+ * Read the ordered Run Checkpoints for a Run. Returns an empty array when
40
+ * the run was created before checkpoints existed (in which case the Run is
41
+ * not forkable — callers MUST treat absence as ineligible for fork).
42
+ */
43
+ readCheckpoints(runId: string): RunCheckpoint[];
44
+ /** True when this Run has a checkpoint index file (regardless of size). */
45
+ hasCheckpointIndex(runId: string): boolean;
46
+ /**
47
+ * Copy a Node's persisted state and artifact directory from a prior Run into
48
+ * a Forked Run, used when applying a fork plan. Replaces any existing entry
49
+ * and copies the artifact directory recursively. The caller is responsible
50
+ * for also calling appendCheckpoint to register the inherited Node.
51
+ */
52
+ inheritNodeFromRun(targetRunId: string, sourceRunId: string, nodeKey: string): void;
29
53
  cleanTerminalRuns(options?: {
30
54
  dryRun?: boolean;
31
55
  }): RunCleanResult;
@@ -38,6 +62,7 @@ export declare class RunStore {
38
62
  */
39
63
  resolveArtifactPath(uri: string): string | undefined;
40
64
  private runDir;
65
+ private checkpointsIndexPath;
41
66
  /** Write JSON via temp file + atomic rename for crash safety. */
42
67
  private atomicWriteJson;
43
68
  /** Read and parse a JSON file. Returns undefined if missing or invalid. */
@@ -1 +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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAkB,kBAAkB,EAAE,aAAa,EAAgB,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAiC5H,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,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,YAAY,EAAE,UAAU,CAAA;KAAE,GAAG,QAAQ;IAkCxL,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;IAc9D,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;IAO9B;;;;;;OAMG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,GAAG,IAAI;IAclF;;;;OAIG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE;IAO/C,2EAA2E;IAC3E,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAK1C;;;;;OAKG;IACH,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IA+BnF,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;IAMpD,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,oBAAoB;IAI5B,iEAAiE;IACjE,OAAO,CAAC,eAAe;IAQvB,2EAA2E;IAC3E,OAAO,CAAC,QAAQ;CAQjB"}