@acpus/runtime 0.7.1 → 0.9.0-alpha.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.
- package/dist/.tsbuildinfo +1 -0
- package/dist/admission/input.d.ts +5 -0
- package/dist/admission/input.d.ts.map +1 -0
- package/dist/admission/input.js +17 -0
- package/dist/admission/input.js.map +1 -0
- package/dist/artifacts/rewrite.d.ts +7 -0
- package/dist/artifacts/rewrite.d.ts.map +1 -0
- package/dist/artifacts/rewrite.js +28 -0
- package/dist/artifacts/rewrite.js.map +1 -0
- package/dist/control/agent-overrides.d.ts +4 -0
- package/dist/control/agent-overrides.d.ts.map +1 -0
- package/dist/control/agent-overrides.js +40 -0
- package/dist/control/agent-overrides.js.map +1 -0
- package/dist/daemon/loop.d.ts +16 -0
- package/dist/daemon/loop.d.ts.map +1 -0
- package/dist/daemon/loop.js +191 -0
- package/dist/daemon/loop.js.map +1 -0
- package/dist/daemon/sessions.d.ts +23 -0
- package/dist/daemon/sessions.d.ts.map +1 -0
- package/dist/daemon/sessions.js +190 -0
- package/dist/daemon/sessions.js.map +1 -0
- package/dist/daemon/socket.d.ts +82 -0
- package/dist/daemon/socket.d.ts.map +1 -0
- package/dist/daemon/socket.js +341 -0
- package/dist/daemon/socket.js.map +1 -0
- package/dist/daemon/tick.d.ts +9 -0
- package/dist/daemon/tick.d.ts.map +1 -0
- package/dist/daemon/tick.js +18 -0
- package/dist/daemon/tick.js.map +1 -0
- package/dist/evaluation/admissible.d.ts +2 -0
- package/dist/evaluation/admissible.d.ts.map +1 -0
- package/dist/evaluation/admissible.js +50 -0
- package/dist/evaluation/admissible.js.map +1 -0
- package/dist/evaluation/evaluator.d.ts +14 -0
- package/dist/evaluation/evaluator.d.ts.map +1 -0
- package/dist/evaluation/evaluator.js +34 -0
- package/dist/evaluation/evaluator.js.map +1 -0
- package/dist/evaluation/loop-limit.d.ts +4 -0
- package/dist/evaluation/loop-limit.d.ts.map +1 -0
- package/dist/evaluation/loop-limit.js +9 -0
- package/dist/evaluation/loop-limit.js.map +1 -0
- package/dist/evaluation/schema.d.ts +4 -0
- package/dist/evaluation/schema.d.ts.map +1 -0
- package/dist/evaluation/schema.js +92 -0
- package/dist/evaluation/schema.js.map +1 -0
- package/dist/execution/advance.d.ts +18 -0
- package/dist/execution/advance.d.ts.map +1 -0
- package/dist/execution/advance.js +57 -0
- package/dist/execution/advance.js.map +1 -0
- package/dist/execution/agent-node.d.ts +23 -0
- package/dist/execution/agent-node.d.ts.map +1 -0
- package/dist/execution/agent-node.js +512 -0
- package/dist/execution/agent-node.js.map +1 -0
- package/dist/execution/duration.d.ts +2 -0
- package/dist/execution/duration.d.ts.map +1 -0
- package/dist/execution/duration.js +15 -0
- package/dist/execution/duration.js.map +1 -0
- package/dist/execution/ir.d.ts +3 -0
- package/dist/execution/ir.d.ts.map +1 -0
- package/dist/execution/ir.js +46 -0
- package/dist/execution/ir.js.map +1 -0
- package/dist/execution/scheduler.d.ts +59 -0
- package/dist/execution/scheduler.d.ts.map +1 -0
- package/dist/execution/scheduler.js +306 -0
- package/dist/execution/scheduler.js.map +1 -0
- package/dist/execution/task-executor.d.ts +14 -0
- package/dist/execution/task-executor.d.ts.map +1 -0
- package/dist/execution/task-executor.js +186 -0
- package/dist/execution/task-executor.js.map +1 -0
- package/dist/hooks/config.d.ts +32 -0
- package/dist/hooks/config.d.ts.map +1 -0
- package/dist/hooks/config.js +112 -0
- package/dist/hooks/config.js.map +1 -0
- package/dist/hooks/context.d.ts +50 -0
- package/dist/hooks/context.d.ts.map +1 -0
- package/dist/hooks/context.js +116 -0
- package/dist/hooks/context.js.map +1 -0
- package/dist/hooks/events.d.ts +22 -0
- package/dist/hooks/events.d.ts.map +1 -0
- package/dist/hooks/events.js +41 -0
- package/dist/hooks/events.js.map +1 -0
- package/dist/hooks/journal.d.ts +21 -19
- package/dist/hooks/journal.d.ts.map +1 -1
- package/dist/hooks/journal.js +1 -48
- package/dist/hooks/journal.js.map +1 -1
- package/dist/hooks/loader.d.ts +33 -39
- package/dist/hooks/loader.d.ts.map +1 -1
- package/dist/hooks/loader.js +79 -95
- package/dist/hooks/loader.js.map +1 -1
- package/dist/hooks/runner.d.ts +14 -41
- package/dist/hooks/runner.d.ts.map +1 -1
- package/dist/hooks/runner.js +177 -145
- package/dist/hooks/runner.js.map +1 -1
- package/dist/index.d.ts +13 -28
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -33
- package/dist/index.js.map +1 -1
- package/dist/runs/advance-runtime.d.ts +50 -0
- package/dist/runs/advance-runtime.d.ts.map +1 -0
- package/dist/runs/advance-runtime.js +82 -0
- package/dist/runs/advance-runtime.js.map +1 -0
- package/dist/runs/use-cases.d.ts +111 -0
- package/dist/runs/use-cases.d.ts.map +1 -0
- package/dist/runs/use-cases.js +539 -0
- package/dist/runs/use-cases.js.map +1 -0
- package/dist/scheduler/advance.d.ts +65 -0
- package/dist/scheduler/advance.d.ts.map +1 -0
- package/dist/scheduler/advance.js +435 -0
- package/dist/scheduler/advance.js.map +1 -0
- package/dist/scheduler/control.d.ts +49 -0
- package/dist/scheduler/control.d.ts.map +1 -0
- package/dist/scheduler/control.js +212 -0
- package/dist/scheduler/control.js.map +1 -0
- package/dist/scheduler/event-codec.d.ts +4 -0
- package/dist/scheduler/event-codec.d.ts.map +1 -0
- package/dist/scheduler/event-codec.js +57 -0
- package/dist/scheduler/event-codec.js.map +1 -0
- package/dist/scheduler/events.d.ts +193 -0
- package/dist/scheduler/events.d.ts.map +1 -0
- package/dist/scheduler/events.js +13 -0
- package/dist/scheduler/events.js.map +1 -0
- package/dist/scheduler/fork-seed.d.ts +38 -0
- package/dist/scheduler/fork-seed.d.ts.map +1 -0
- package/dist/scheduler/fork-seed.js +590 -0
- package/dist/scheduler/fork-seed.js.map +1 -0
- package/dist/scheduler/identity.d.ts +8 -0
- package/dist/scheduler/identity.d.ts.map +1 -0
- package/dist/scheduler/identity.js +49 -0
- package/dist/scheduler/identity.js.map +1 -0
- package/dist/scheduler/ir-walk.d.ts +3 -0
- package/dist/scheduler/ir-walk.d.ts.map +1 -0
- package/dist/scheduler/ir-walk.js +25 -0
- package/dist/scheduler/ir-walk.js.map +1 -0
- package/dist/scheduler/limiter.d.ts +7 -0
- package/dist/scheduler/limiter.d.ts.map +1 -0
- package/dist/scheduler/limiter.js +10 -0
- package/dist/scheduler/limiter.js.map +1 -0
- package/dist/scheduler/materialize.d.ts +7 -0
- package/dist/scheduler/materialize.d.ts.map +1 -0
- package/dist/scheduler/materialize.js +756 -0
- package/dist/scheduler/materialize.js.map +1 -0
- package/dist/scheduler/membership.d.ts +12 -0
- package/dist/scheduler/membership.d.ts.map +1 -0
- package/dist/scheduler/membership.js +74 -0
- package/dist/scheduler/membership.js.map +1 -0
- package/dist/scheduler/node-executor.d.ts +15 -0
- package/dist/scheduler/node-executor.d.ts.map +1 -0
- package/dist/scheduler/node-executor.js +69 -0
- package/dist/scheduler/node-executor.js.map +1 -0
- package/dist/scheduler/runtime-runner.d.ts +44 -0
- package/dist/scheduler/runtime-runner.d.ts.map +1 -0
- package/dist/scheduler/runtime-runner.js +155 -0
- package/dist/scheduler/runtime-runner.js.map +1 -0
- package/dist/scheduler/scope.d.ts +6 -0
- package/dist/scheduler/scope.d.ts.map +1 -0
- package/dist/scheduler/scope.js +56 -0
- package/dist/scheduler/scope.js.map +1 -0
- package/dist/scheduler/store-port.d.ts +211 -0
- package/dist/scheduler/store-port.d.ts.map +1 -0
- package/dist/scheduler/store-port.js +28 -0
- package/dist/scheduler/store-port.js.map +1 -0
- package/dist/scheduler/transitions.d.ts +89 -0
- package/dist/scheduler/transitions.d.ts.map +1 -0
- package/dist/scheduler/transitions.js +967 -0
- package/dist/scheduler/transitions.js.map +1 -0
- package/dist/scheduler/types.d.ts +146 -0
- package/dist/scheduler/types.d.ts.map +1 -0
- package/dist/{executors → scheduler}/types.js.map +1 -1
- package/dist/store/store.d.ts +390 -0
- package/dist/store/store.d.ts.map +1 -0
- package/dist/store/store.js +3053 -0
- package/dist/store/store.js.map +1 -0
- package/dist/visualization/overlay.d.ts +86 -0
- package/dist/visualization/overlay.d.ts.map +1 -0
- package/dist/visualization/overlay.js +161 -0
- package/dist/visualization/overlay.js.map +1 -0
- package/package.json +19 -37
- package/README.md +0 -7
- package/dist/agent-telemetry.d.ts +0 -56
- package/dist/agent-telemetry.d.ts.map +0 -1
- package/dist/agent-telemetry.js +0 -304
- package/dist/agent-telemetry.js.map +0 -1
- package/dist/artifacts.d.ts +0 -45
- package/dist/artifacts.d.ts.map +0 -1
- package/dist/artifacts.js +0 -163
- package/dist/artifacts.js.map +0 -1
- package/dist/attempt-artifacts.d.ts +0 -35
- package/dist/attempt-artifacts.d.ts.map +0 -1
- package/dist/attempt-artifacts.js +0 -90
- package/dist/attempt-artifacts.js.map +0 -1
- package/dist/client.d.ts +0 -82
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -200
- package/dist/client.js.map +0 -1
- package/dist/evaluator.d.ts +0 -36
- package/dist/evaluator.d.ts.map +0 -1
- package/dist/evaluator.js +0 -101
- package/dist/evaluator.js.map +0 -1
- package/dist/executors/agent.d.ts +0 -101
- package/dist/executors/agent.d.ts.map +0 -1
- package/dist/executors/agent.js +0 -508
- package/dist/executors/agent.js.map +0 -1
- package/dist/executors/mock-program.d.ts +0 -26
- package/dist/executors/mock-program.d.ts.map +0 -1
- package/dist/executors/mock-program.js +0 -100
- package/dist/executors/mock-program.js.map +0 -1
- package/dist/executors/output-preview.d.ts +0 -2
- package/dist/executors/output-preview.d.ts.map +0 -1
- package/dist/executors/output-preview.js +0 -20
- package/dist/executors/output-preview.js.map +0 -1
- package/dist/executors/program.d.ts +0 -30
- package/dist/executors/program.d.ts.map +0 -1
- package/dist/executors/program.js +0 -230
- package/dist/executors/program.js.map +0 -1
- package/dist/executors/types.d.ts +0 -32
- package/dist/executors/types.d.ts.map +0 -1
- package/dist/fork.d.ts +0 -74
- package/dist/fork.d.ts.map +0 -1
- package/dist/fork.js +0 -278
- package/dist/fork.js.map +0 -1
- package/dist/hooks/payload.d.ts +0 -17
- package/dist/hooks/payload.d.ts.map +0 -1
- package/dist/hooks/payload.js +0 -45
- package/dist/hooks/payload.js.map +0 -1
- package/dist/interpreter.d.ts +0 -168
- package/dist/interpreter.d.ts.map +0 -1
- package/dist/interpreter.js +0 -1747
- package/dist/interpreter.js.map +0 -1
- package/dist/keys.d.ts +0 -77
- package/dist/keys.d.ts.map +0 -1
- package/dist/keys.js +0 -375
- package/dist/keys.js.map +0 -1
- package/dist/run-control.d.ts +0 -45
- package/dist/run-control.d.ts.map +0 -1
- package/dist/run-control.js +0 -255
- package/dist/run-control.js.map +0 -1
- package/dist/run-id.d.ts +0 -3
- package/dist/run-id.d.ts.map +0 -1
- package/dist/run-id.js +0 -10
- package/dist/run-id.js.map +0 -1
- package/dist/state-machine.d.ts +0 -31
- package/dist/state-machine.d.ts.map +0 -1
- package/dist/state-machine.js +0 -102
- package/dist/state-machine.js.map +0 -1
- package/dist/store.d.ts +0 -92
- package/dist/store.d.ts.map +0 -1
- package/dist/store.js +0 -420
- package/dist/store.js.map +0 -1
- package/dist/supervisor-app.d.ts +0 -27
- package/dist/supervisor-app.d.ts.map +0 -1
- package/dist/supervisor-app.js +0 -694
- package/dist/supervisor-app.js.map +0 -1
- package/dist/supervisor-discovery.d.ts +0 -18
- package/dist/supervisor-discovery.d.ts.map +0 -1
- package/dist/supervisor-discovery.js +0 -180
- package/dist/supervisor-discovery.js.map +0 -1
- package/dist/supervisor-entry.d.ts +0 -11
- package/dist/supervisor-entry.d.ts.map +0 -1
- package/dist/supervisor-entry.js +0 -50
- package/dist/supervisor-entry.js.map +0 -1
- package/dist/supervisor-lock.d.ts +0 -26
- package/dist/supervisor-lock.d.ts.map +0 -1
- package/dist/supervisor-lock.js +0 -49
- package/dist/supervisor-lock.js.map +0 -1
- package/dist/supervisor-runner.d.ts +0 -11
- package/dist/supervisor-runner.d.ts.map +0 -1
- package/dist/supervisor-runner.js +0 -128
- package/dist/supervisor-runner.js.map +0 -1
- package/dist/types.d.ts +0 -375
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -7
- package/dist/types.js.map +0 -1
- package/dist/validate-input.d.ts +0 -27
- package/dist/validate-input.d.ts.map +0 -1
- package/dist/validate-input.js +0 -56
- package/dist/validate-input.js.map +0 -1
- package/dist/validate-signal.d.ts +0 -14
- package/dist/validate-signal.d.ts.map +0 -1
- package/dist/validate-signal.js +0 -31
- package/dist/validate-signal.js.map +0 -1
- package/dist/workflow-context.d.ts +0 -4
- package/dist/workflow-context.d.ts.map +0 -1
- package/dist/workflow-context.js +0 -11
- package/dist/workflow-context.js.map +0 -1
- package/dist/workflow-outputs.d.ts +0 -9
- package/dist/workflow-outputs.d.ts.map +0 -1
- package/dist/workflow-outputs.js +0 -60
- package/dist/workflow-outputs.js.map +0 -1
- /package/dist/{executors → scheduler}/types.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"attempt-artifacts.d.ts","sourceRoot":"","sources":["../src/attempt-artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,0BAA0B;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,6BAA6B;IAC5C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,uBAAuB;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAA1C,YAA6B,aAAa,EAAE,aAAa,EAAI;IAE7D,iBAAiB,CACf,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAO,GACtC,0BAA0B,CAW5B;IAED,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAE7F;IAED,oBAAoB,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,0BAA0B,GAClC,6BAA6B,CAe/B;IAED,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,qBAAqB,GAAG,MAAM,CAO/G;IAED,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAI9F;IAED,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,CAUnE;IAED,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,kBAAkB;CAG3B"}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Owns runtime artifact naming and lifecycle rules for executable node attempts.
|
|
3
|
-
*/
|
|
4
|
-
export class AttemptArtifactRecorder {
|
|
5
|
-
artifactStore;
|
|
6
|
-
constructor(artifactStore) {
|
|
7
|
-
this.artifactStore = artifactStore;
|
|
8
|
-
}
|
|
9
|
-
startAgentAttempt(runId, nodeKey, attemptNo, prompt, options = {}) {
|
|
10
|
-
const prefix = this.agentAttemptPrefix(attemptNo);
|
|
11
|
-
const promptRef = this.artifactStore.write(runId, nodeKey, `${prefix}.prompt.md`, prompt);
|
|
12
|
-
const rawAcpDebugRef = options.rawAcpDebug
|
|
13
|
-
? this.artifactStore.create(runId, nodeKey, `${prefix}.acp-debug.jsonl`).uri
|
|
14
|
-
: undefined;
|
|
15
|
-
return {
|
|
16
|
-
artifactRefs: rawAcpDebugRef ? [promptRef.uri, rawAcpDebugRef] : [promptRef.uri],
|
|
17
|
-
promptRef: promptRef.uri,
|
|
18
|
-
rawAcpDebugRef
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
appendAgentRawAcpDebug(runId, nodeKey, attemptNo, chunk) {
|
|
22
|
-
this.artifactStore.append(runId, nodeKey, `${this.agentAttemptPrefix(attemptNo)}.acp-debug.jsonl`, chunk);
|
|
23
|
-
}
|
|
24
|
-
finalizeAgentAttempt(runId, nodeKey, attemptNo, content) {
|
|
25
|
-
const prefix = this.agentAttemptPrefix(attemptNo);
|
|
26
|
-
const refs = [];
|
|
27
|
-
let responseRef;
|
|
28
|
-
if (content.responseText !== undefined) {
|
|
29
|
-
responseRef = this.artifactStore.write(runId, nodeKey, `${prefix}.response.md`, content.responseText).uri;
|
|
30
|
-
refs.push(responseRef);
|
|
31
|
-
}
|
|
32
|
-
const stderr = this.mergeStderrDiagnostics(content.stderr, content.diagnostics ?? []);
|
|
33
|
-
let stderrRef;
|
|
34
|
-
if (stderr !== undefined) {
|
|
35
|
-
stderrRef = this.artifactStore.write(runId, nodeKey, `${prefix}.stderr.log`, stderr).uri;
|
|
36
|
-
refs.push(stderrRef);
|
|
37
|
-
}
|
|
38
|
-
return { artifactRefs: refs, responseRef, stderrRef };
|
|
39
|
-
}
|
|
40
|
-
writeAgentTelemetry(runId, nodeKey, attemptNo, telemetry) {
|
|
41
|
-
return this.artifactStore.write(runId, nodeKey, `${this.agentAttemptPrefix(attemptNo)}.telemetry.json`, `${JSON.stringify(telemetry, null, 2)}\n`).uri;
|
|
42
|
-
}
|
|
43
|
-
writeProgramArtifacts(runId, nodeKey, stdout, stderr) {
|
|
44
|
-
const out = this.artifactStore.write(runId, nodeKey, "stdout.log", stdout);
|
|
45
|
-
const err = this.artifactStore.write(runId, nodeKey, "stderr.log", stderr);
|
|
46
|
-
return [out.uri, err.uri];
|
|
47
|
-
}
|
|
48
|
-
mergeAttemptRefs(target, refs) {
|
|
49
|
-
if (!refs)
|
|
50
|
-
return;
|
|
51
|
-
const seen = new Set(target);
|
|
52
|
-
for (const ref of refs) {
|
|
53
|
-
if (!seen.has(ref)) {
|
|
54
|
-
target.push(ref);
|
|
55
|
-
seen.add(ref);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
target.sort(compareAttemptArtifactRefs);
|
|
59
|
-
}
|
|
60
|
-
mergeStderrDiagnostics(stderr, diagnostics) {
|
|
61
|
-
if (diagnostics.length === 0)
|
|
62
|
-
return stderr;
|
|
63
|
-
const diagnosticText = diagnostics.map((line) => `[acpus] ${line}`).join("\n");
|
|
64
|
-
return stderr && stderr.length > 0 ? `${stderr}\n${diagnosticText}` : diagnosticText;
|
|
65
|
-
}
|
|
66
|
-
agentAttemptPrefix(attemptNo) {
|
|
67
|
-
return `attempt-${String(Math.max(0, attemptNo)).padStart(3, "0")}`;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
function compareAttemptArtifactRefs(a, b) {
|
|
71
|
-
const left = attemptArtifactSortKey(a);
|
|
72
|
-
const right = attemptArtifactSortKey(b);
|
|
73
|
-
if (!left || !right)
|
|
74
|
-
return 0;
|
|
75
|
-
return left.attempt - right.attempt || left.kind - right.kind;
|
|
76
|
-
}
|
|
77
|
-
function attemptArtifactSortKey(ref) {
|
|
78
|
-
const match = /attempt-(\d+)\.(prompt\.md|response\.md|telemetry\.json|stderr\.log|acp-debug\.jsonl)$/.exec(ref);
|
|
79
|
-
if (!match)
|
|
80
|
-
return undefined;
|
|
81
|
-
const kindOrder = {
|
|
82
|
-
"prompt.md": 0,
|
|
83
|
-
"response.md": 1,
|
|
84
|
-
"telemetry.json": 2,
|
|
85
|
-
"stderr.log": 3,
|
|
86
|
-
"acp-debug.jsonl": 4
|
|
87
|
-
};
|
|
88
|
-
return { attempt: Number(match[1]), kind: kindOrder[match[2]] ?? 99 };
|
|
89
|
-
}
|
|
90
|
-
//# sourceMappingURL=attempt-artifacts.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"attempt-artifacts.js","sourceRoot":"","sources":["../src/attempt-artifacts.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RunSupervisorClient — thin HTTP client for the acpus Run Supervisor.
|
|
3
|
-
*
|
|
4
|
-
* Lives in @acpus/runtime so both the CLI and the TUI can share one client
|
|
5
|
-
* without a package cycle.
|
|
6
|
-
*
|
|
7
|
-
* Node keys are passed as ?key= query parameters since they contain "/"
|
|
8
|
-
* characters that are incompatible with URL path segments.
|
|
9
|
-
*/
|
|
10
|
-
import type { AcpusIr, AgentOverrideWarning, AgentOverrides } from "@acpus/core";
|
|
11
|
-
import type { RunCleanResult, RunState, NodeExecutionState, RunSummary, ReplayResult, SupervisorHealth } from "./types.js";
|
|
12
|
-
import type { ForkPlan } from "./fork.js";
|
|
13
|
-
export declare class RunSupervisorClient {
|
|
14
|
-
readonly endpoint: string;
|
|
15
|
-
/** Client identity for lease tracking on the supervisor. */
|
|
16
|
-
readonly clientId: string;
|
|
17
|
-
/** When set, includes x-acpus-client-kind header to pin the supervisor alive. */
|
|
18
|
-
clientKind?: "follow" | "visualize";
|
|
19
|
-
constructor(baseUrl: string);
|
|
20
|
-
private headers;
|
|
21
|
-
health(): Promise<SupervisorHealth>;
|
|
22
|
-
startRun(spec: string, input?: Record<string, unknown>, sourcePath?: string, workflowRef?: string, agentOverrides?: AgentOverrides, skipHooks?: boolean): Promise<RunState>;
|
|
23
|
-
listRuns(): Promise<RunSummary[]>;
|
|
24
|
-
cleanRuns(options?: {
|
|
25
|
-
dryRun?: boolean;
|
|
26
|
-
}): Promise<RunCleanResult>;
|
|
27
|
-
getRun(runId: string): Promise<RunState>;
|
|
28
|
-
getIr(runId: string): Promise<AcpusIr>;
|
|
29
|
-
getInput(runId: string): Promise<Record<string, unknown>>;
|
|
30
|
-
/** Resolve an artifact:// URI to its absolute filesystem path on the supervisor host. */
|
|
31
|
-
getArtifactPath(runId: string, uri: string): Promise<string>;
|
|
32
|
-
getNodeStates(runId: string): Promise<NodeExecutionState[]>;
|
|
33
|
-
getNode(runId: string, nodeKey: string): Promise<NodeExecutionState>;
|
|
34
|
-
retryNode(runId: string, nodeKey: string): Promise<NodeExecutionState>;
|
|
35
|
-
/**
|
|
36
|
-
* Deliver an external decision payload to a Signal Node that is currently
|
|
37
|
-
* `awaiting`. Node-level only. The payload object is sent as the request body
|
|
38
|
-
* directly. On a non-2xx response the supervisor's error message (e.g. 409
|
|
39
|
-
* "not awaiting", 422 schema mismatch) is surfaced.
|
|
40
|
-
*/
|
|
41
|
-
signalNode(runId: string, nodeKey: string, payload: Record<string, unknown>): Promise<NodeExecutionState>;
|
|
42
|
-
pauseRun(runId: string): Promise<RunState>;
|
|
43
|
-
resumeRun(runId: string): Promise<RunState>;
|
|
44
|
-
cancelRun(runId: string): Promise<RunState>;
|
|
45
|
-
retryRun(runId: string): Promise<RunState>;
|
|
46
|
-
getOutput(runId: string): Promise<{
|
|
47
|
-
status: string;
|
|
48
|
-
output: Record<string, unknown>;
|
|
49
|
-
}>;
|
|
50
|
-
replay(runId: string): Promise<ReplayResult>;
|
|
51
|
-
/**
|
|
52
|
-
* Fork a terminal source Run into a new Run. Pass `dryRun: true` to receive
|
|
53
|
-
* the inheritance plan without creating a Run. Fork-specific rejections
|
|
54
|
-
* (non-terminal source, missing checkpoint index, compilation failure, plan
|
|
55
|
-
* rejection) throw a {@link ForkRejectedError} so callers can map them to a
|
|
56
|
-
* dedicated exit code.
|
|
57
|
-
*/
|
|
58
|
-
forkRun(sourceRunId: string, spec: string, options?: {
|
|
59
|
-
sourcePath?: string;
|
|
60
|
-
workflowRef?: string;
|
|
61
|
-
input?: Record<string, unknown>;
|
|
62
|
-
overrideOriginNodeKey?: string;
|
|
63
|
-
dryRun?: boolean;
|
|
64
|
-
agentOverrides?: AgentOverrides;
|
|
65
|
-
}): Promise<{
|
|
66
|
-
run?: RunState;
|
|
67
|
-
plan: ForkPlan;
|
|
68
|
-
dryRun?: boolean;
|
|
69
|
-
agentOverrides?: AgentOverrides;
|
|
70
|
-
submissionWarnings?: AgentOverrideWarning[];
|
|
71
|
-
}>;
|
|
72
|
-
private controlRun;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Thrown by {@link RunSupervisorClient.forkRun} when the supervisor responds
|
|
76
|
-
* with `kind: "fork-rejected"`. CLI callers map this to a dedicated exit code
|
|
77
|
-
* to distinguish fork-rejection from generic runtime failures.
|
|
78
|
-
*/
|
|
79
|
-
export declare class ForkRejectedError extends Error {
|
|
80
|
-
constructor(message: string);
|
|
81
|
-
}
|
|
82
|
-
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC3H,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAG1C,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,iFAAiF;IACjF,UAAU,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAEpC,YAAY,OAAO,EAAE,MAAM,EAG1B;IAED,OAAO,CAAC,OAAO;IAUT,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAIxC;IAEK,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,EACpB,cAAc,CAAC,EAAE,cAAc,EAC/B,SAAS,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC,QAAQ,CAAC,CAWnB;IAEK,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAItC;IAEK,SAAS,CAAC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAQ3E;IAEK,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAI7C;IAEK,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAI3C;IAEK,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAK9D;IAED,yFAAyF;IACnF,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAKjE;IAEK,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAIhE;IAEK,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAIzE;IAEK,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAU3E;IAED;;;;;OAKG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAc9G;IAIK,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAE/C;IAEK,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAEhD;IAEK,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAEhD;IAEK,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAE/C;IAEK,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAI3F;IAEK,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAIjD;IAED;;;;;;OAMG;IACG,OAAO,CACX,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;QACP,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,cAAc,CAAC,EAAE,cAAc,CAAC;KAC5B,GACL,OAAO,CAAC;QAAE,GAAG,CAAC,EAAE,QAAQ,CAAC;QAAC,IAAI,EAAE,QAAQ,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,cAAc,CAAC;QAAC,kBAAkB,CAAC,EAAE,oBAAoB,EAAE,CAAA;KAAE,CAAC,CAa7I;YAMa,UAAU;CAczB;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF"}
|
package/dist/client.js
DELETED
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RunSupervisorClient — thin HTTP client for the acpus Run Supervisor.
|
|
3
|
-
*
|
|
4
|
-
* Lives in @acpus/runtime so both the CLI and the TUI can share one client
|
|
5
|
-
* without a package cycle.
|
|
6
|
-
*
|
|
7
|
-
* Node keys are passed as ?key= query parameters since they contain "/"
|
|
8
|
-
* characters that are incompatible with URL path segments.
|
|
9
|
-
*/
|
|
10
|
-
import { randomUUID } from "node:crypto";
|
|
11
|
-
export class RunSupervisorClient {
|
|
12
|
-
endpoint;
|
|
13
|
-
/** Client identity for lease tracking on the supervisor. */
|
|
14
|
-
clientId;
|
|
15
|
-
/** When set, includes x-acpus-client-kind header to pin the supervisor alive. */
|
|
16
|
-
clientKind;
|
|
17
|
-
constructor(baseUrl) {
|
|
18
|
-
this.endpoint = baseUrl;
|
|
19
|
-
this.clientId = randomUUID();
|
|
20
|
-
}
|
|
21
|
-
headers() {
|
|
22
|
-
const h = {
|
|
23
|
-
"x-acpus-client-id": this.clientId
|
|
24
|
-
};
|
|
25
|
-
if (this.clientKind) {
|
|
26
|
-
h["x-acpus-client-kind"] = this.clientKind;
|
|
27
|
-
}
|
|
28
|
-
return h;
|
|
29
|
-
}
|
|
30
|
-
async health() {
|
|
31
|
-
const res = await fetch(`${this.endpoint}/health`, { headers: this.headers() });
|
|
32
|
-
if (!res.ok)
|
|
33
|
-
throw new Error(`Health check failed: ${res.status}`);
|
|
34
|
-
return res.json();
|
|
35
|
-
}
|
|
36
|
-
async startRun(spec, input, sourcePath, workflowRef, agentOverrides, skipHooks) {
|
|
37
|
-
const res = await fetch(`${this.endpoint}/runs`, {
|
|
38
|
-
method: "POST",
|
|
39
|
-
headers: { "Content-Type": "application/json", ...this.headers() },
|
|
40
|
-
body: JSON.stringify({ spec, input, sourcePath, workflowRef, agentOverrides, skipHooks })
|
|
41
|
-
});
|
|
42
|
-
if (!res.ok) {
|
|
43
|
-
const body = await res.json().catch(() => ({}));
|
|
44
|
-
throw new Error(`Failed to start run: ${res.status} ${JSON.stringify(body)}`);
|
|
45
|
-
}
|
|
46
|
-
return res.json();
|
|
47
|
-
}
|
|
48
|
-
async listRuns() {
|
|
49
|
-
const res = await fetch(`${this.endpoint}/runs`, { headers: this.headers() });
|
|
50
|
-
if (!res.ok)
|
|
51
|
-
throw new Error(`Failed to list runs: ${res.status}`);
|
|
52
|
-
return res.json();
|
|
53
|
-
}
|
|
54
|
-
async cleanRuns(options = {}) {
|
|
55
|
-
const res = await fetch(`${this.endpoint}/runs/clean`, {
|
|
56
|
-
method: "POST",
|
|
57
|
-
headers: { "Content-Type": "application/json", ...this.headers() },
|
|
58
|
-
body: JSON.stringify({ dryRun: Boolean(options.dryRun) })
|
|
59
|
-
});
|
|
60
|
-
if (!res.ok)
|
|
61
|
-
throw new Error(`Failed to clean runs: ${res.status}`);
|
|
62
|
-
return res.json();
|
|
63
|
-
}
|
|
64
|
-
async getRun(runId) {
|
|
65
|
-
const res = await fetch(`${this.endpoint}/runs/${runId}`, { headers: this.headers() });
|
|
66
|
-
if (!res.ok)
|
|
67
|
-
throw new Error(`Run not found: ${runId}`);
|
|
68
|
-
return res.json();
|
|
69
|
-
}
|
|
70
|
-
async getIr(runId) {
|
|
71
|
-
const res = await fetch(`${this.endpoint}/runs/${runId}/ir`, { headers: this.headers() });
|
|
72
|
-
if (!res.ok)
|
|
73
|
-
throw new Error(`IR not found: ${runId}`);
|
|
74
|
-
return res.json();
|
|
75
|
-
}
|
|
76
|
-
async getInput(runId) {
|
|
77
|
-
const res = await fetch(`${this.endpoint}/runs/${runId}/input`, { headers: this.headers() });
|
|
78
|
-
if (!res.ok)
|
|
79
|
-
throw new Error(`Input not found: ${runId}`);
|
|
80
|
-
const body = (await res.json());
|
|
81
|
-
return body.input;
|
|
82
|
-
}
|
|
83
|
-
/** Resolve an artifact:// URI to its absolute filesystem path on the supervisor host. */
|
|
84
|
-
async getArtifactPath(runId, uri) {
|
|
85
|
-
const res = await fetch(`${this.endpoint}/runs/${runId}/artifact-path?uri=${encodeURIComponent(uri)}`, { headers: this.headers() });
|
|
86
|
-
if (!res.ok)
|
|
87
|
-
throw new Error(`Failed to resolve artifact path: ${res.status}`);
|
|
88
|
-
const body = (await res.json());
|
|
89
|
-
return body.absPath;
|
|
90
|
-
}
|
|
91
|
-
async getNodeStates(runId) {
|
|
92
|
-
const res = await fetch(`${this.endpoint}/runs/${runId}/nodes`, { headers: this.headers() });
|
|
93
|
-
if (!res.ok)
|
|
94
|
-
throw new Error(`Failed to get node states: ${res.status}`);
|
|
95
|
-
return res.json();
|
|
96
|
-
}
|
|
97
|
-
async getNode(runId, nodeKey) {
|
|
98
|
-
const res = await fetch(`${this.endpoint}/runs/${runId}/node?key=${encodeURIComponent(nodeKey)}`, { headers: this.headers() });
|
|
99
|
-
if (!res.ok)
|
|
100
|
-
throw new Error(`Node not found: ${nodeKey}`);
|
|
101
|
-
return res.json();
|
|
102
|
-
}
|
|
103
|
-
async retryNode(runId, nodeKey) {
|
|
104
|
-
const res = await fetch(`${this.endpoint}/runs/${runId}/retry?key=${encodeURIComponent(nodeKey)}`, { method: "POST", headers: this.headers() });
|
|
105
|
-
if (!res.ok) {
|
|
106
|
-
const body = (await res.json().catch(() => ({})));
|
|
107
|
-
throw new Error(body.error ?? `Failed to retry node: ${res.status}`);
|
|
108
|
-
}
|
|
109
|
-
return res.json();
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Deliver an external decision payload to a Signal Node that is currently
|
|
113
|
-
* `awaiting`. Node-level only. The payload object is sent as the request body
|
|
114
|
-
* directly. On a non-2xx response the supervisor's error message (e.g. 409
|
|
115
|
-
* "not awaiting", 422 schema mismatch) is surfaced.
|
|
116
|
-
*/
|
|
117
|
-
async signalNode(runId, nodeKey, payload) {
|
|
118
|
-
const res = await fetch(`${this.endpoint}/runs/${runId}/signal?key=${encodeURIComponent(nodeKey)}`, {
|
|
119
|
-
method: "POST",
|
|
120
|
-
headers: { "Content-Type": "application/json", ...this.headers() },
|
|
121
|
-
body: JSON.stringify(payload)
|
|
122
|
-
});
|
|
123
|
-
if (!res.ok) {
|
|
124
|
-
const body = (await res.json().catch(() => ({})));
|
|
125
|
-
throw new Error(body.error ?? `Failed to signal node: ${res.status}`);
|
|
126
|
-
}
|
|
127
|
-
return res.json();
|
|
128
|
-
}
|
|
129
|
-
// ─── Run-level controls ────────────────────────────────────────
|
|
130
|
-
async pauseRun(runId) {
|
|
131
|
-
return this.controlRun(runId, "pause");
|
|
132
|
-
}
|
|
133
|
-
async resumeRun(runId) {
|
|
134
|
-
return this.controlRun(runId, "resume");
|
|
135
|
-
}
|
|
136
|
-
async cancelRun(runId) {
|
|
137
|
-
return this.controlRun(runId, "cancel");
|
|
138
|
-
}
|
|
139
|
-
async retryRun(runId) {
|
|
140
|
-
return this.controlRun(runId, "retry");
|
|
141
|
-
}
|
|
142
|
-
async getOutput(runId) {
|
|
143
|
-
const res = await fetch(`${this.endpoint}/runs/${runId}/output`, { headers: this.headers() });
|
|
144
|
-
if (!res.ok)
|
|
145
|
-
throw new Error(`Failed to get output: ${res.status}`);
|
|
146
|
-
return res.json();
|
|
147
|
-
}
|
|
148
|
-
async replay(runId) {
|
|
149
|
-
const res = await fetch(`${this.endpoint}/runs/${runId}/replay`, { method: "POST", headers: this.headers() });
|
|
150
|
-
if (!res.ok)
|
|
151
|
-
throw new Error(`Failed to replay run: ${res.status}`);
|
|
152
|
-
return res.json();
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Fork a terminal source Run into a new Run. Pass `dryRun: true` to receive
|
|
156
|
-
* the inheritance plan without creating a Run. Fork-specific rejections
|
|
157
|
-
* (non-terminal source, missing checkpoint index, compilation failure, plan
|
|
158
|
-
* rejection) throw a {@link ForkRejectedError} so callers can map them to a
|
|
159
|
-
* dedicated exit code.
|
|
160
|
-
*/
|
|
161
|
-
async forkRun(sourceRunId, spec, options = {}) {
|
|
162
|
-
const res = await fetch(`${this.endpoint}/runs/${sourceRunId}/fork`, {
|
|
163
|
-
method: "POST",
|
|
164
|
-
headers: { "Content-Type": "application/json", ...this.headers() },
|
|
165
|
-
body: JSON.stringify({ spec, ...options })
|
|
166
|
-
});
|
|
167
|
-
if (!res.ok) {
|
|
168
|
-
const body = (await res.json().catch(() => ({})));
|
|
169
|
-
const message = body.error ?? `Failed to fork run: ${res.status}`;
|
|
170
|
-
if (body.kind === "fork-rejected")
|
|
171
|
-
throw new ForkRejectedError(message);
|
|
172
|
-
throw new Error(message);
|
|
173
|
-
}
|
|
174
|
-
return res.json();
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Issue a Run-level control action. No ?key= parameter — the action applies
|
|
178
|
-
* to the entire Run.
|
|
179
|
-
*/
|
|
180
|
-
async controlRun(runId, action) {
|
|
181
|
-
const res = await fetch(`${this.endpoint}/runs/${runId}/${action}`, { method: "POST", headers: this.headers() });
|
|
182
|
-
if (!res.ok) {
|
|
183
|
-
const body = (await res.json().catch(() => ({})));
|
|
184
|
-
throw new Error(body.error ?? `Failed to ${action} run: ${res.status}`);
|
|
185
|
-
}
|
|
186
|
-
return res.json();
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Thrown by {@link RunSupervisorClient.forkRun} when the supervisor responds
|
|
191
|
-
* with `kind: "fork-rejected"`. CLI callers map this to a dedicated exit code
|
|
192
|
-
* to distinguish fork-rejection from generic runtime failures.
|
|
193
|
-
*/
|
|
194
|
-
export class ForkRejectedError extends Error {
|
|
195
|
-
constructor(message) {
|
|
196
|
-
super(message);
|
|
197
|
-
this.name = "ForkRejectedError";
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,OAAO,mBAAmB;IACrB,QAAQ,CAAS;IAC1B,4DAA4D;IACnD,QAAQ,CAAS;IAC1B,iFAAiF;IACjF,UAAU,CAA0B;IAEpC,YAAY,OAAe;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,UAAU,EAAE,CAAC;IAC/B,CAAC;IAEO,OAAO;QACb,MAAM,CAAC,GAA2B;YAChC,mBAAmB,EAAE,IAAI,CAAC,QAAQ;SACnC,CAAC;QACF,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,CAAC,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAC7C,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACnE,OAAO,GAAG,CAAC,IAAI,EAA+B,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,IAAY,EACZ,KAA+B,EAC/B,UAAmB,EACnB,WAAoB,EACpB,cAA+B,EAC/B,SAAmB;QAEnB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,OAAO,EAAE;YAC/C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE;YAClE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;SAC1F,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,EAAuB,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACnE,OAAO,GAAG,CAAC,IAAI,EAA2B,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAO,GAAyB,EAAE;QAChD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,aAAa,EAAE;YACrD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE;YAClE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;SAC1D,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,OAAO,GAAG,CAAC,IAAI,EAA6B,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa;QACxB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,SAAS,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;QACxD,OAAO,GAAG,CAAC,IAAI,EAAuB,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAa;QACvB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,SAAS,KAAK,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC1F,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAC;QACvD,OAAO,GAAG,CAAC,IAAI,EAAsB,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAa;QAC1B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,SAAS,KAAK,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC7F,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,EAAE,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuC,CAAC;QACtE,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,yFAAyF;IACzF,KAAK,CAAC,eAAe,CAAC,KAAa,EAAE,GAAW;QAC9C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,SAAS,KAAK,sBAAsB,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACpI,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/E,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAwB,CAAC;QACvD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAa;QAC/B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,SAAS,KAAK,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC7F,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACzE,OAAO,GAAG,CAAC,IAAI,EAAmC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,OAAe;QAC1C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,SAAS,KAAK,aAAa,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC/H,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;QAC3D,OAAO,GAAG,CAAC,IAAI,EAAiC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,OAAe;QAC5C,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,GAAG,IAAI,CAAC,QAAQ,SAAS,KAAK,cAAc,kBAAkB,CAAC,OAAO,CAAC,EAAE,EACzE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAC5C,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAuB,CAAC;YACxE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,yBAAyB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,EAAiC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,OAAe,EAAE,OAAgC;QAC/E,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,GAAG,IAAI,CAAC,QAAQ,SAAS,KAAK,eAAe,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAC1E;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE;YAClE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B,CACF,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAuB,CAAC;YACxE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,0BAA0B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,EAAiC,CAAC;IACnD,CAAC;IAED,kEAAkE;IAElE,KAAK,CAAC,QAAQ,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,SAAS,KAAK,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC9F,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,OAAO,GAAG,CAAC,IAAI,EAAkE,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa;QACxB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,SAAS,KAAK,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC9G,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,OAAO,GAAG,CAAC,IAAI,EAA2B,CAAC;IAC7C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CACX,WAAmB,EACnB,IAAY,EACZ,OAAO,GAOH,EAAE;QAEN,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,SAAS,WAAW,OAAO,EAAE;YACnE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE;YAClE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;SAC3C,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAsC,CAAC;YACvF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,uBAAuB,GAAG,CAAC,MAAM,EAAE,CAAC;YAClE,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe;gBAAE,MAAM,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACxE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,EAAiJ,CAAC;IACnK,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,UAAU,CACtB,KAAa,EACb,MAA+C;QAE/C,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,GAAG,IAAI,CAAC,QAAQ,SAAS,KAAK,IAAI,MAAM,EAAE,EAC1C,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAC5C,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAuB,CAAC;YACxE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,aAAa,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,EAAuB,CAAC;IACzC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF"}
|
package/dist/evaluator.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import type { ExpressionContext } from "./types.js";
|
|
2
|
-
/**
|
|
3
|
-
* Wraps @marcbachmann/cel-js to evaluate ${{ expr }} templates and raw CEL
|
|
4
|
-
* expressions with the same Acpus CEL environment used by compiler lint.
|
|
5
|
-
*/
|
|
6
|
-
export declare class ExpressionEvaluator {
|
|
7
|
-
private readonly env;
|
|
8
|
-
private readonly nowTimestamp;
|
|
9
|
-
constructor(options?: {
|
|
10
|
-
nowTimestamp?: string;
|
|
11
|
-
});
|
|
12
|
-
/**
|
|
13
|
-
* The deterministic timestamp bound to now(). Exposed so callers can stamp
|
|
14
|
-
* outputs against the workflow clock without reading wall-clock time.
|
|
15
|
-
*/
|
|
16
|
-
getNow(): string;
|
|
17
|
-
/**
|
|
18
|
-
* Evaluate a ${{ expr }} template by finding all expression patterns,
|
|
19
|
-
* evaluating each, and substituting the results.
|
|
20
|
-
*/
|
|
21
|
-
evaluateTemplate(template: string, ctx: ExpressionContext): string;
|
|
22
|
-
/**
|
|
23
|
-
* Evaluate a raw CEL expression against the given context.
|
|
24
|
-
*/
|
|
25
|
-
evaluateExpression(expr: string, ctx: ExpressionContext): unknown;
|
|
26
|
-
/**
|
|
27
|
-
* Evaluate a fanout `over` expression and validate the result is an array.
|
|
28
|
-
*/
|
|
29
|
-
evaluateOverExpression(expr: string, ctx: ExpressionContext): unknown[];
|
|
30
|
-
/**
|
|
31
|
-
* Build the CEL variable bindings from the expression context.
|
|
32
|
-
* Transforms loop → loop_ctx to match the toCelParseSource rewriting.
|
|
33
|
-
*/
|
|
34
|
-
private buildBindings;
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=evaluator.d.ts.map
|
package/dist/evaluator.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../src/evaluator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA6BpD;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC,YAAY,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,EAG9C;IAED;;;OAGG;IACH,MAAM,IAAI,MAAM,CAEf;IAED;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAKjE;IAED;;OAEG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAIhE;IAED;;OAEG;IACH,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,EAAE,CAMtE;IAED;;;OAGG;IACH,OAAO,CAAC,aAAa;CA2BtB"}
|
package/dist/evaluator.js
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { createAcpusCelEnvironment, EXPRESSION_PATTERN, toCelParseSource } from "@acpus/core";
|
|
2
|
-
function celInt(value) {
|
|
3
|
-
return Number.isSafeInteger(value) ? BigInt(value) : value;
|
|
4
|
-
}
|
|
5
|
-
function bindLoop(loop) {
|
|
6
|
-
if (!loop)
|
|
7
|
-
return undefined;
|
|
8
|
-
return { ...loop, iter: celInt(loop.iter), last: bindStepValue(loop.last) };
|
|
9
|
-
}
|
|
10
|
-
function bindSteps(steps) {
|
|
11
|
-
return Object.fromEntries(Object.entries(steps).map(([id, value]) => [id, bindStepValue(value)]));
|
|
12
|
-
}
|
|
13
|
-
function bindStepValue(value) {
|
|
14
|
-
if (Array.isArray(value))
|
|
15
|
-
return value.map(bindStepValue);
|
|
16
|
-
if (value instanceof Map)
|
|
17
|
-
return value;
|
|
18
|
-
if (value !== null && typeof value === "object") {
|
|
19
|
-
const record = value;
|
|
20
|
-
const bound = Object.fromEntries(Object.entries(record).map(([key, child]) => [key, bindStepValue(child)]));
|
|
21
|
-
if ("output" in record && typeof record.exit_code === "number" && Number.isSafeInteger(record.exit_code)) {
|
|
22
|
-
bound.exit_code = BigInt(record.exit_code);
|
|
23
|
-
}
|
|
24
|
-
return bound;
|
|
25
|
-
}
|
|
26
|
-
return value;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Wraps @marcbachmann/cel-js to evaluate ${{ expr }} templates and raw CEL
|
|
30
|
-
* expressions with the same Acpus CEL environment used by compiler lint.
|
|
31
|
-
*/
|
|
32
|
-
export class ExpressionEvaluator {
|
|
33
|
-
env;
|
|
34
|
-
nowTimestamp;
|
|
35
|
-
constructor(options) {
|
|
36
|
-
this.nowTimestamp = options?.nowTimestamp ?? new Date().toISOString();
|
|
37
|
-
this.env = createAcpusCelEnvironment({ unlistedVariablesAreDyn: true, nowTimestamp: this.nowTimestamp });
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* The deterministic timestamp bound to now(). Exposed so callers can stamp
|
|
41
|
-
* outputs against the workflow clock without reading wall-clock time.
|
|
42
|
-
*/
|
|
43
|
-
getNow() {
|
|
44
|
-
return this.nowTimestamp;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Evaluate a ${{ expr }} template by finding all expression patterns,
|
|
48
|
-
* evaluating each, and substituting the results.
|
|
49
|
-
*/
|
|
50
|
-
evaluateTemplate(template, ctx) {
|
|
51
|
-
return template.replace(EXPRESSION_PATTERN, (_match, expr) => {
|
|
52
|
-
const result = this.evaluateExpression(expr.trim(), ctx);
|
|
53
|
-
return String(result);
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Evaluate a raw CEL expression against the given context.
|
|
58
|
-
*/
|
|
59
|
-
evaluateExpression(expr, ctx) {
|
|
60
|
-
const celSource = toCelParseSource(expr);
|
|
61
|
-
const bindings = this.buildBindings(ctx);
|
|
62
|
-
return this.env.evaluate(celSource, bindings);
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Evaluate a fanout `over` expression and validate the result is an array.
|
|
66
|
-
*/
|
|
67
|
-
evaluateOverExpression(expr, ctx) {
|
|
68
|
-
const result = this.evaluateExpression(expr, ctx);
|
|
69
|
-
if (!Array.isArray(result)) {
|
|
70
|
-
throw new Error(`fanout.over expression must evaluate to an array, got ${typeof result}: ${expr}`);
|
|
71
|
-
}
|
|
72
|
-
return result;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Build the CEL variable bindings from the expression context.
|
|
76
|
-
* Transforms loop → loop_ctx to match the toCelParseSource rewriting.
|
|
77
|
-
*/
|
|
78
|
-
buildBindings(ctx) {
|
|
79
|
-
const bindings = {
|
|
80
|
-
input: ctx.input,
|
|
81
|
-
steps: bindSteps(ctx.steps),
|
|
82
|
-
workflow: ctx.workflow,
|
|
83
|
-
run_id: ctx.run_id
|
|
84
|
-
};
|
|
85
|
-
if (ctx.loop !== undefined) {
|
|
86
|
-
// toCelParseSource rewrites loop. → loop_ctx.
|
|
87
|
-
bindings.loop_ctx = bindLoop(ctx.loop);
|
|
88
|
-
}
|
|
89
|
-
if (ctx.item !== undefined) {
|
|
90
|
-
bindings.item = ctx.item;
|
|
91
|
-
}
|
|
92
|
-
if (ctx.item_id !== undefined) {
|
|
93
|
-
bindings.item_id = ctx.item_id;
|
|
94
|
-
}
|
|
95
|
-
if (ctx.item_index !== undefined) {
|
|
96
|
-
bindings.item_index = celInt(ctx.item_index);
|
|
97
|
-
}
|
|
98
|
-
return bindings;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
//# sourceMappingURL=evaluator.js.map
|
package/dist/evaluator.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../src/evaluator.ts"],"names":[],"mappings":"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"}
|