@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
package/README.md
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
# @acpus/runtime
|
|
2
|
-
|
|
3
|
-
`@acpus/runtime` contains the local durable execution engine for Acpus: the interpreter, Run Supervisor, state store, executors, artifacts, replay, and Run controls.
|
|
4
|
-
|
|
5
|
-
Most users should install the `acpus` CLI package.
|
|
6
|
-
|
|
7
|
-
See the repository README for full usage: https://github.com/kelvinschen/acpus
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import type { AgentAttemptTelemetry, AgentAttemptTelemetryState, AgentContextUsage, AgentTelemetry } from "./types.js";
|
|
2
|
-
export interface AgentTelemetryAccumulatorOptions {
|
|
3
|
-
attempt: number;
|
|
4
|
-
inputText: string;
|
|
5
|
-
inputArtifactRef?: string;
|
|
6
|
-
acpxRecordId?: string;
|
|
7
|
-
cwd?: string;
|
|
8
|
-
startedAt?: string;
|
|
9
|
-
now?: () => number;
|
|
10
|
-
previewEdgeBytes?: number;
|
|
11
|
-
maxToolCalls?: number;
|
|
12
|
-
flushIntervalMs?: number;
|
|
13
|
-
onTelemetry?: (attempt: AgentAttemptTelemetry) => void;
|
|
14
|
-
}
|
|
15
|
-
export declare class AgentTelemetryAccumulator {
|
|
16
|
-
private readonly attempt;
|
|
17
|
-
private readonly now;
|
|
18
|
-
private readonly previewEdgeBytes;
|
|
19
|
-
private readonly maxToolCalls;
|
|
20
|
-
private readonly flushIntervalMs;
|
|
21
|
-
private readonly onTelemetry?;
|
|
22
|
-
private readonly startedAt;
|
|
23
|
-
private readonly seenToolIds;
|
|
24
|
-
private readonly tools;
|
|
25
|
-
private partialLine;
|
|
26
|
-
private response;
|
|
27
|
-
private stopReason;
|
|
28
|
-
private latestContext;
|
|
29
|
-
private tokenUsage;
|
|
30
|
-
private outputArtifactRef;
|
|
31
|
-
private acpxRecordId;
|
|
32
|
-
private cwd;
|
|
33
|
-
private lastPublishedAt;
|
|
34
|
-
private toolSeq;
|
|
35
|
-
private totalToolCallCount;
|
|
36
|
-
constructor(options: AgentTelemetryAccumulatorOptions);
|
|
37
|
-
private readonly input;
|
|
38
|
-
append(chunk: string): void;
|
|
39
|
-
flush(): void;
|
|
40
|
-
responseText(): string;
|
|
41
|
-
setResponseText(text: string): void;
|
|
42
|
-
finalStopReason(): string | undefined;
|
|
43
|
-
context(): AgentContextUsage | undefined;
|
|
44
|
-
setOutputArtifactRef(ref: string | undefined): void;
|
|
45
|
-
setAcpxRecordId(id: string): void;
|
|
46
|
-
setCwd(dir: string): void;
|
|
47
|
-
snapshot(state?: AgentAttemptTelemetryState, completedAt?: string): AgentAttemptTelemetry;
|
|
48
|
-
private parseLine;
|
|
49
|
-
private captureResult;
|
|
50
|
-
private captureTool;
|
|
51
|
-
private trimRecentTools;
|
|
52
|
-
private publish;
|
|
53
|
-
}
|
|
54
|
-
export declare function upsertAgentAttemptTelemetry(current: AgentTelemetry | undefined, attempt: AgentAttemptTelemetry): AgentTelemetry;
|
|
55
|
-
export declare function latestAgentAttemptTelemetry(telemetry: AgentTelemetry | undefined): AgentAttemptTelemetry | undefined;
|
|
56
|
-
//# sourceMappingURL=agent-telemetry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-telemetry.d.ts","sourceRoot":"","sources":["../src/agent-telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC1B,iBAAiB,EAEjB,cAAc,EAGf,MAAM,YAAY,CAAC;AAOpB,MAAM,WAAW,gCAAgC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACxD;AAED,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAA2C;IACxE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsC;IAC5D,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,GAAG,CAAqB;IAChC,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,kBAAkB,CAAK;IAE/B,YAAY,OAAO,EAAE,gCAAgC,EAWpD;IAED,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IAEvC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAM1B;IAED,KAAK,IAAI,IAAI,CAIZ;IAED,YAAY,IAAI,MAAM,CAErB;IAED,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAElC;IAED,eAAe,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED,OAAO,IAAI,iBAAiB,GAAG,SAAS,CAEvC;IAED,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAElD;IAED,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEhC;IAED,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAExB;IAED,QAAQ,CAAC,KAAK,GAAE,0BAAsC,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,qBAAqB,CA2BnG;IAED,OAAO,CAAC,SAAS;IA8CjB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,WAAW;IAuCnB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,OAAO;CAOhB;AAMD,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,OAAO,EAAE,qBAAqB,GAC7B,cAAc,CAMhB;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,GAAG,qBAAqB,GAAG,SAAS,CAIpH"}
|
package/dist/agent-telemetry.js
DELETED
|
@@ -1,304 +0,0 @@
|
|
|
1
|
-
const DEFAULT_PREVIEW_EDGE_BYTES = 8 * 1024;
|
|
2
|
-
const DEFAULT_MAX_TOOL_CALLS = 200;
|
|
3
|
-
const DEFAULT_FLUSH_INTERVAL_MS = 1_000;
|
|
4
|
-
const FINAL_TOOL_STATUSES = new Set(["completed", "failed", "cancelled"]);
|
|
5
|
-
export class AgentTelemetryAccumulator {
|
|
6
|
-
attempt;
|
|
7
|
-
now;
|
|
8
|
-
previewEdgeBytes;
|
|
9
|
-
maxToolCalls;
|
|
10
|
-
flushIntervalMs;
|
|
11
|
-
onTelemetry;
|
|
12
|
-
startedAt;
|
|
13
|
-
seenToolIds = new Set();
|
|
14
|
-
tools = new Map();
|
|
15
|
-
partialLine = "";
|
|
16
|
-
response = "";
|
|
17
|
-
stopReason;
|
|
18
|
-
latestContext;
|
|
19
|
-
tokenUsage;
|
|
20
|
-
outputArtifactRef;
|
|
21
|
-
acpxRecordId;
|
|
22
|
-
cwd;
|
|
23
|
-
lastPublishedAt = 0;
|
|
24
|
-
toolSeq = 0;
|
|
25
|
-
totalToolCallCount = 0;
|
|
26
|
-
constructor(options) {
|
|
27
|
-
this.attempt = options.attempt;
|
|
28
|
-
this.now = options.now ?? Date.now;
|
|
29
|
-
this.previewEdgeBytes = options.previewEdgeBytes ?? DEFAULT_PREVIEW_EDGE_BYTES;
|
|
30
|
-
this.maxToolCalls = options.maxToolCalls ?? DEFAULT_MAX_TOOL_CALLS;
|
|
31
|
-
this.flushIntervalMs = options.flushIntervalMs ?? DEFAULT_FLUSH_INTERVAL_MS;
|
|
32
|
-
this.onTelemetry = options.onTelemetry;
|
|
33
|
-
this.startedAt = options.startedAt ?? new Date(this.now()).toISOString();
|
|
34
|
-
this.acpxRecordId = options.acpxRecordId;
|
|
35
|
-
this.cwd = options.cwd;
|
|
36
|
-
this.input = buildPreview(options.inputText, this.previewEdgeBytes, options.inputArtifactRef);
|
|
37
|
-
}
|
|
38
|
-
input;
|
|
39
|
-
append(chunk) {
|
|
40
|
-
if (chunk.length === 0)
|
|
41
|
-
return;
|
|
42
|
-
const text = this.partialLine + chunk;
|
|
43
|
-
const lines = text.split("\n");
|
|
44
|
-
this.partialLine = lines.pop() ?? "";
|
|
45
|
-
for (const line of lines)
|
|
46
|
-
this.parseLine(line);
|
|
47
|
-
}
|
|
48
|
-
flush() {
|
|
49
|
-
if (this.partialLine.trim().length > 0)
|
|
50
|
-
this.parseLine(this.partialLine);
|
|
51
|
-
this.partialLine = "";
|
|
52
|
-
this.publish("running", true);
|
|
53
|
-
}
|
|
54
|
-
responseText() {
|
|
55
|
-
return this.response;
|
|
56
|
-
}
|
|
57
|
-
setResponseText(text) {
|
|
58
|
-
this.response = text;
|
|
59
|
-
}
|
|
60
|
-
finalStopReason() {
|
|
61
|
-
return this.stopReason;
|
|
62
|
-
}
|
|
63
|
-
context() {
|
|
64
|
-
return this.latestContext;
|
|
65
|
-
}
|
|
66
|
-
setOutputArtifactRef(ref) {
|
|
67
|
-
this.outputArtifactRef = ref;
|
|
68
|
-
}
|
|
69
|
-
setAcpxRecordId(id) {
|
|
70
|
-
this.acpxRecordId = id;
|
|
71
|
-
}
|
|
72
|
-
setCwd(dir) {
|
|
73
|
-
this.cwd = dir;
|
|
74
|
-
}
|
|
75
|
-
snapshot(state = "running", completedAt) {
|
|
76
|
-
const updatedAt = completedAt ?? new Date(this.now()).toISOString();
|
|
77
|
-
const recentCalls = [...this.tools.values()]
|
|
78
|
-
.sort((a, b) => b.lastSeq - a.lastSeq)
|
|
79
|
-
.map(({ lastSeq: _lastSeq, ...tool }) => tool);
|
|
80
|
-
return {
|
|
81
|
-
attempt: this.attempt,
|
|
82
|
-
state,
|
|
83
|
-
startedAt: this.startedAt,
|
|
84
|
-
updatedAt,
|
|
85
|
-
completedAt,
|
|
86
|
-
context: this.latestContext,
|
|
87
|
-
tokenUsage: this.tokenUsage,
|
|
88
|
-
input: this.input,
|
|
89
|
-
output: this.response.length > 0
|
|
90
|
-
? buildPreview(this.response, this.previewEdgeBytes, this.outputArtifactRef)
|
|
91
|
-
: this.outputArtifactRef
|
|
92
|
-
? buildPreview("", this.previewEdgeBytes, this.outputArtifactRef)
|
|
93
|
-
: undefined,
|
|
94
|
-
tools: {
|
|
95
|
-
totalToolCallCount: this.totalToolCallCount,
|
|
96
|
-
droppedToolCallCount: Math.max(0, this.totalToolCallCount - recentCalls.length),
|
|
97
|
-
recentCalls
|
|
98
|
-
},
|
|
99
|
-
...(this.acpxRecordId ? { acpxRecordId: this.acpxRecordId } : {}),
|
|
100
|
-
...(this.cwd ? { cwd: this.cwd } : {})
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
parseLine(line) {
|
|
104
|
-
const trimmed = line.trim();
|
|
105
|
-
if (!trimmed)
|
|
106
|
-
return;
|
|
107
|
-
const parsed = parseObject(trimmed);
|
|
108
|
-
if (!parsed)
|
|
109
|
-
return;
|
|
110
|
-
this.captureResult(parsed);
|
|
111
|
-
const update = extractUpdate(parsed);
|
|
112
|
-
if (!update)
|
|
113
|
-
return;
|
|
114
|
-
const kind = update.sessionUpdate;
|
|
115
|
-
if (kind === "agent_message_chunk") {
|
|
116
|
-
const text = readContentText(update.content);
|
|
117
|
-
if (text) {
|
|
118
|
-
this.response += text;
|
|
119
|
-
this.publish("running", false);
|
|
120
|
-
}
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
if (kind === "usage_update") {
|
|
124
|
-
const used = readNonNegativeNumber(update.used);
|
|
125
|
-
const size = readNonNegativeNumber(update.size);
|
|
126
|
-
if (used !== undefined && size !== undefined) {
|
|
127
|
-
// acpx sends used=0 at the start of every LLM API call before the
|
|
128
|
-
// response arrives with real token counts. Overwriting a known
|
|
129
|
-
// non-zero measurement with 0 would produce misleading telemetry
|
|
130
|
-
// (e.g. "context=0/200k") when a failed attempt's last update was
|
|
131
|
-
// an initial allocation. Preserve the previous `used` if the new
|
|
132
|
-
// one is 0 and we already have a real measurement.
|
|
133
|
-
if (used === 0 && this.latestContext && this.latestContext.used > 0) {
|
|
134
|
-
this.latestContext = { used: this.latestContext.used, size, updatedAt: new Date(this.now()).toISOString() };
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
this.latestContext = { used, size, updatedAt: new Date(this.now()).toISOString() };
|
|
138
|
-
}
|
|
139
|
-
this.publish("running", false);
|
|
140
|
-
}
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
if (isToolUpdate(update)) {
|
|
144
|
-
const changed = this.captureTool(update);
|
|
145
|
-
this.publish("running", changed);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
captureResult(obj) {
|
|
149
|
-
if (!Object.hasOwn(obj, "id") || !Object.hasOwn(obj, "result"))
|
|
150
|
-
return;
|
|
151
|
-
const result = readRecord(obj.result);
|
|
152
|
-
if (typeof result?.stopReason === "string")
|
|
153
|
-
this.stopReason = result.stopReason;
|
|
154
|
-
this.tokenUsage = readTokenUsage(readRecord(result?.usage)) ?? this.tokenUsage;
|
|
155
|
-
}
|
|
156
|
-
captureTool(update) {
|
|
157
|
-
const toolCallId = readString(update.toolCallId);
|
|
158
|
-
if (!toolCallId)
|
|
159
|
-
return false;
|
|
160
|
-
const now = new Date(this.now()).toISOString();
|
|
161
|
-
const wasSeen = this.seenToolIds.has(toolCallId);
|
|
162
|
-
if (!wasSeen) {
|
|
163
|
-
this.seenToolIds.add(toolCallId);
|
|
164
|
-
this.totalToolCallCount += 1;
|
|
165
|
-
}
|
|
166
|
-
const previous = this.tools.get(toolCallId);
|
|
167
|
-
const status = readString(update.status);
|
|
168
|
-
const current = previous ?? {
|
|
169
|
-
toolCallId,
|
|
170
|
-
startedAt: now,
|
|
171
|
-
updatedAt: now,
|
|
172
|
-
lastSeq: 0
|
|
173
|
-
};
|
|
174
|
-
const statusChanged = status !== undefined && status !== previous?.status;
|
|
175
|
-
current.updatedAt = now;
|
|
176
|
-
current.lastSeq = ++this.toolSeq;
|
|
177
|
-
const title = readString(update.title);
|
|
178
|
-
const kind = readString(update.kind);
|
|
179
|
-
const toolName = readString(readRecord(readRecord(update._meta)?.claudeCode)?.toolName);
|
|
180
|
-
if (title)
|
|
181
|
-
current.title = title;
|
|
182
|
-
if (kind)
|
|
183
|
-
current.kind = kind;
|
|
184
|
-
if (toolName)
|
|
185
|
-
current.toolName = toolName;
|
|
186
|
-
if (status) {
|
|
187
|
-
current.status = status;
|
|
188
|
-
if (FINAL_TOOL_STATUSES.has(status))
|
|
189
|
-
current.completedAt = now;
|
|
190
|
-
}
|
|
191
|
-
this.tools.set(toolCallId, current);
|
|
192
|
-
this.trimRecentTools();
|
|
193
|
-
return !wasSeen || statusChanged || (status !== undefined && FINAL_TOOL_STATUSES.has(status));
|
|
194
|
-
}
|
|
195
|
-
trimRecentTools() {
|
|
196
|
-
if (this.tools.size <= this.maxToolCalls)
|
|
197
|
-
return;
|
|
198
|
-
const ordered = [...this.tools.entries()].sort((a, b) => b[1].lastSeq - a[1].lastSeq);
|
|
199
|
-
const keep = new Set(ordered.slice(0, this.maxToolCalls).map(([id]) => id));
|
|
200
|
-
for (const id of this.tools.keys()) {
|
|
201
|
-
if (!keep.has(id))
|
|
202
|
-
this.tools.delete(id);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
publish(state, force) {
|
|
206
|
-
if (!this.onTelemetry)
|
|
207
|
-
return;
|
|
208
|
-
const now = this.now();
|
|
209
|
-
if (!force && now - this.lastPublishedAt < this.flushIntervalMs)
|
|
210
|
-
return;
|
|
211
|
-
this.lastPublishedAt = now;
|
|
212
|
-
this.onTelemetry(this.snapshot(state));
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
export function upsertAgentAttemptTelemetry(current, attempt) {
|
|
216
|
-
const previous = current?.attempts.filter((item) => item.attempt !== attempt.attempt) ?? [];
|
|
217
|
-
return {
|
|
218
|
-
currentAttempt: attempt.attempt,
|
|
219
|
-
attempts: [...previous, attempt].sort((a, b) => a.attempt - b.attempt)
|
|
220
|
-
};
|
|
221
|
-
}
|
|
222
|
-
export function latestAgentAttemptTelemetry(telemetry) {
|
|
223
|
-
if (!telemetry)
|
|
224
|
-
return undefined;
|
|
225
|
-
return telemetry.attempts.find((attempt) => attempt.attempt === telemetry.currentAttempt)
|
|
226
|
-
?? telemetry.attempts[telemetry.attempts.length - 1];
|
|
227
|
-
}
|
|
228
|
-
function buildPreview(text, edgeBytes, artifactRef) {
|
|
229
|
-
const originalBytes = Buffer.byteLength(text);
|
|
230
|
-
const maxBytes = edgeBytes * 2;
|
|
231
|
-
if (originalBytes <= maxBytes) {
|
|
232
|
-
return { preview: text, truncated: false, originalBytes, headBytes: originalBytes, artifactRef };
|
|
233
|
-
}
|
|
234
|
-
const bytes = Buffer.from(text);
|
|
235
|
-
const head = bytes.subarray(0, edgeBytes).toString("utf8");
|
|
236
|
-
const tail = bytes.subarray(Math.max(edgeBytes, bytes.length - edgeBytes)).toString("utf8");
|
|
237
|
-
return {
|
|
238
|
-
preview: `${head}\n[acpus truncated: originalBytes=${originalBytes}]\n${tail}`,
|
|
239
|
-
truncated: true,
|
|
240
|
-
originalBytes,
|
|
241
|
-
headBytes: edgeBytes,
|
|
242
|
-
tailBytes: edgeBytes,
|
|
243
|
-
artifactRef
|
|
244
|
-
};
|
|
245
|
-
}
|
|
246
|
-
function parseObject(line) {
|
|
247
|
-
try {
|
|
248
|
-
return readRecord(JSON.parse(line));
|
|
249
|
-
}
|
|
250
|
-
catch {
|
|
251
|
-
return undefined;
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
function extractUpdate(obj) {
|
|
255
|
-
return readRecord(readRecord(obj.params)?.update);
|
|
256
|
-
}
|
|
257
|
-
function isToolUpdate(update) {
|
|
258
|
-
const kind = update.sessionUpdate;
|
|
259
|
-
return kind === "tool_call" || kind === "tool_call_update";
|
|
260
|
-
}
|
|
261
|
-
function readContentText(value) {
|
|
262
|
-
if (typeof value === "string")
|
|
263
|
-
return value;
|
|
264
|
-
const record = readRecord(value);
|
|
265
|
-
if (!record)
|
|
266
|
-
return undefined;
|
|
267
|
-
if (typeof record.text === "string")
|
|
268
|
-
return record.text;
|
|
269
|
-
const nested = readRecord(record.content);
|
|
270
|
-
return typeof nested?.text === "string" ? nested.text : undefined;
|
|
271
|
-
}
|
|
272
|
-
function readString(value) {
|
|
273
|
-
return typeof value === "string" && value.trim().length > 0 ? value : undefined;
|
|
274
|
-
}
|
|
275
|
-
function readNonNegativeNumber(value) {
|
|
276
|
-
return typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : undefined;
|
|
277
|
-
}
|
|
278
|
-
function readTokenUsage(usage) {
|
|
279
|
-
if (!usage)
|
|
280
|
-
return undefined;
|
|
281
|
-
const out = { source: "prompt_response" };
|
|
282
|
-
assignTokenField(out, "inputTokens", usage, ["inputTokens", "input_tokens"]);
|
|
283
|
-
assignTokenField(out, "outputTokens", usage, ["outputTokens", "output_tokens"]);
|
|
284
|
-
assignTokenField(out, "cachedReadTokens", usage, ["cachedReadTokens", "cacheReadInputTokens", "cache_read_input_tokens"]);
|
|
285
|
-
assignTokenField(out, "cachedWriteTokens", usage, ["cachedWriteTokens", "cacheCreationInputTokens", "cache_creation_input_tokens"]);
|
|
286
|
-
assignTokenField(out, "thoughtTokens", usage, ["thoughtTokens", "thought_tokens"]);
|
|
287
|
-
assignTokenField(out, "totalTokens", usage, ["totalTokens", "total_tokens"]);
|
|
288
|
-
return Object.keys(out).length > 1 ? out : undefined;
|
|
289
|
-
}
|
|
290
|
-
function assignTokenField(out, key, source, names) {
|
|
291
|
-
for (const name of names) {
|
|
292
|
-
const value = readNonNegativeNumber(source[name]);
|
|
293
|
-
if (value !== undefined) {
|
|
294
|
-
out[key] = value;
|
|
295
|
-
return;
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
function readRecord(value) {
|
|
300
|
-
return value !== null && typeof value === "object" && !Array.isArray(value)
|
|
301
|
-
? value
|
|
302
|
-
: undefined;
|
|
303
|
-
}
|
|
304
|
-
//# sourceMappingURL=agent-telemetry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-telemetry.js","sourceRoot":"","sources":["../src/agent-telemetry.ts"],"names":[],"mappings":"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"}
|
package/dist/artifacts.d.ts
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import type { ArtifactRef } from "./types.js";
|
|
2
|
-
export interface ParsedArtifactReference {
|
|
3
|
-
uri: string;
|
|
4
|
-
runId: string;
|
|
5
|
-
/** URI-encoded resolved Node Key as it appears in the artifact URI. */
|
|
6
|
-
encodedNodeKey: string;
|
|
7
|
-
/** Decoded (resolved) Node Key with slashes (e.g. "workflow/step-a"). */
|
|
8
|
-
nodeKey: string;
|
|
9
|
-
filename: string;
|
|
10
|
-
}
|
|
11
|
-
export declare const ArtifactReferences: {
|
|
12
|
-
make(runId: string, nodeKey: string, filename: string): ArtifactRef;
|
|
13
|
-
parse(uri: string): ParsedArtifactReference;
|
|
14
|
-
tryParse(uri: string): ParsedArtifactReference | undefined;
|
|
15
|
-
rewriteRunId(uri: string, fromRunId: string, toRunId: string): string;
|
|
16
|
-
resolvePath(baseDir: string, uri: string, isUnsafeRunId: (runId: string) => boolean): string | undefined;
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* Local filesystem artifact store under .acpus/state/runs/<run_id>/artifacts/.
|
|
20
|
-
* Artifact URIs follow the format: artifact://runs/<runId>/nodes/<nodeKey>/<filename>
|
|
21
|
-
*/
|
|
22
|
-
export declare class ArtifactStore {
|
|
23
|
-
private readonly baseDir;
|
|
24
|
-
constructor(baseDir?: string);
|
|
25
|
-
/**
|
|
26
|
-
* Write an artifact file. Uses atomic write (temp + rename) for crash safety.
|
|
27
|
-
* Returns the ArtifactRef for the written file.
|
|
28
|
-
*/
|
|
29
|
-
write(runId: string, nodeKey: string, filename: string, content: string | Buffer): ArtifactRef;
|
|
30
|
-
/**
|
|
31
|
-
* Create or truncate an artifact file and return its reference.
|
|
32
|
-
* Used for artifacts that will be appended while an execution is still live.
|
|
33
|
-
*/
|
|
34
|
-
create(runId: string, nodeKey: string, filename: string): ArtifactRef;
|
|
35
|
-
/** Append content to an existing artifact, creating it if needed. */
|
|
36
|
-
append(runId: string, nodeKey: string, filename: string, content: string | Buffer): ArtifactRef;
|
|
37
|
-
/** Read an artifact file content. */
|
|
38
|
-
read(runId: string, nodeKey: string, filename: string): Buffer;
|
|
39
|
-
/** List all artifact refs for a node. */
|
|
40
|
-
list(runId: string, nodeKey: string): ArtifactRef[];
|
|
41
|
-
/** Parse an artifact URI into its components. */
|
|
42
|
-
parseArtifactRef(uri: string): ArtifactRef;
|
|
43
|
-
private nodeDir;
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=artifacts.d.ts.map
|
package/dist/artifacts.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,cAAc,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,kBAAkB;IAC7B,IAAI,QAAQ,MAAM,WAAW,MAAM,YAAY,MAAM,GAAG,WAAW;IAQnE,KAAK,MAAM,MAAM,GAAG,uBAAuB;IA2B3C,QAAQ,MAAM,MAAM,GAAG,uBAAuB,GAAG,SAAS;IAQ1D,YAAY,MAAM,MAAM,aAAa,MAAM,WAAW,MAAM,GAAG,MAAM;IAMrE,WAAW,UAAU,MAAM,OAAO,MAAM,iBAAiB,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,GAAG,SAAS;CAmBzG,CAAC;AAEF;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,YAAY,OAAO,CAAC,EAAE,MAAM,EAE3B;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,CAW7F;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAMpE;IAED,qEAAqE;IACrE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,CAM9F;IAED,qCAAqC;IACrC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAI7D;IAED,yCAAyC;IACzC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CAOlD;IAED,iDAAiD;IACjD,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAGzC;IAID,OAAO,CAAC,OAAO;CAKhB"}
|
package/dist/artifacts.js
DELETED
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import { appendFileSync, existsSync, mkdirSync, readdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
|
|
2
|
-
import { join, resolve } from "node:path";
|
|
3
|
-
import { nodeKeyToStorageKey } from "./keys.js";
|
|
4
|
-
import { validateRunId } from "./run-id.js";
|
|
5
|
-
const ARTIFACT_URI_PREFIX = "artifact://runs/";
|
|
6
|
-
export const ArtifactReferences = {
|
|
7
|
-
make(runId, nodeKey, filename) {
|
|
8
|
-
validateRunId(runId);
|
|
9
|
-
validateArtifactFilename(filename);
|
|
10
|
-
const encodedNodeKey = encodeURIComponent(nodeKey);
|
|
11
|
-
const uri = `${ARTIFACT_URI_PREFIX}${runId}/nodes/${encodedNodeKey}/${filename}`;
|
|
12
|
-
return { uri, runId, nodeKey, filename };
|
|
13
|
-
},
|
|
14
|
-
parse(uri) {
|
|
15
|
-
if (!uri.startsWith(ARTIFACT_URI_PREFIX)) {
|
|
16
|
-
throw new Error(`Invalid artifact URI: ${uri}`);
|
|
17
|
-
}
|
|
18
|
-
const parts = uri.slice(ARTIFACT_URI_PREFIX.length).split("/");
|
|
19
|
-
if (parts.length !== 4 || parts[1] !== "nodes") {
|
|
20
|
-
throw new Error(`Invalid artifact URI format: ${uri}`);
|
|
21
|
-
}
|
|
22
|
-
const runId = parts[0];
|
|
23
|
-
const encodedNodeKey = parts[2];
|
|
24
|
-
const filename = parts[3];
|
|
25
|
-
if (!runId || !encodedNodeKey || !filename) {
|
|
26
|
-
throw new Error(`Invalid artifact URI format: ${uri}`);
|
|
27
|
-
}
|
|
28
|
-
let nodeKey;
|
|
29
|
-
try {
|
|
30
|
-
nodeKey = decodeURIComponent(encodedNodeKey);
|
|
31
|
-
}
|
|
32
|
-
catch {
|
|
33
|
-
throw new Error(`Invalid artifact URI format: ${uri}`);
|
|
34
|
-
}
|
|
35
|
-
return { uri, runId, encodedNodeKey, nodeKey, filename };
|
|
36
|
-
},
|
|
37
|
-
tryParse(uri) {
|
|
38
|
-
try {
|
|
39
|
-
return this.parse(uri);
|
|
40
|
-
}
|
|
41
|
-
catch {
|
|
42
|
-
return undefined;
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
rewriteRunId(uri, fromRunId, toRunId) {
|
|
46
|
-
const ref = this.tryParse(uri);
|
|
47
|
-
if (!ref || ref.runId !== fromRunId)
|
|
48
|
-
return uri;
|
|
49
|
-
return `${ARTIFACT_URI_PREFIX}${toRunId}/nodes/${ref.encodedNodeKey}/${ref.filename}`;
|
|
50
|
-
},
|
|
51
|
-
resolvePath(baseDir, uri, isUnsafeRunId) {
|
|
52
|
-
const ref = this.tryParse(uri);
|
|
53
|
-
if (!ref || isUnsafeRunId(ref.runId))
|
|
54
|
-
return undefined;
|
|
55
|
-
if (!isSafeEncodedNodeKey(ref.encodedNodeKey) || !isSafeUriPathSegment(ref.filename))
|
|
56
|
-
return undefined;
|
|
57
|
-
try {
|
|
58
|
-
validateArtifactFilename(ref.filename);
|
|
59
|
-
}
|
|
60
|
-
catch {
|
|
61
|
-
return undefined;
|
|
62
|
-
}
|
|
63
|
-
const safeNodeDir = nodeKeyToStorageKey(ref.nodeKey);
|
|
64
|
-
if (!isSafeUriPathSegment(safeNodeDir))
|
|
65
|
-
return undefined;
|
|
66
|
-
const runDir = join(baseDir, ref.runId);
|
|
67
|
-
const resolved = resolve(join(runDir, "artifacts", safeNodeDir, ref.filename));
|
|
68
|
-
if (!isPathAtOrBelow(resolved, runDir))
|
|
69
|
-
return undefined;
|
|
70
|
-
return resolved;
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
/**
|
|
74
|
-
* Local filesystem artifact store under .acpus/state/runs/<run_id>/artifacts/.
|
|
75
|
-
* Artifact URIs follow the format: artifact://runs/<runId>/nodes/<nodeKey>/<filename>
|
|
76
|
-
*/
|
|
77
|
-
export class ArtifactStore {
|
|
78
|
-
baseDir;
|
|
79
|
-
constructor(baseDir) {
|
|
80
|
-
this.baseDir = baseDir ?? join(process.cwd(), ".acpus", "state", "runs");
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Write an artifact file. Uses atomic write (temp + rename) for crash safety.
|
|
84
|
-
* Returns the ArtifactRef for the written file.
|
|
85
|
-
*/
|
|
86
|
-
write(runId, nodeKey, filename, content) {
|
|
87
|
-
const ref = ArtifactReferences.make(runId, nodeKey, filename);
|
|
88
|
-
const dir = this.nodeDir(runId, nodeKey);
|
|
89
|
-
mkdirSync(dir, { recursive: true });
|
|
90
|
-
const filePath = join(dir, filename);
|
|
91
|
-
const tmpPath = filePath + ".tmp";
|
|
92
|
-
writeFileSync(tmpPath, content);
|
|
93
|
-
renameSync(tmpPath, filePath);
|
|
94
|
-
return ref;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Create or truncate an artifact file and return its reference.
|
|
98
|
-
* Used for artifacts that will be appended while an execution is still live.
|
|
99
|
-
*/
|
|
100
|
-
create(runId, nodeKey, filename) {
|
|
101
|
-
const ref = ArtifactReferences.make(runId, nodeKey, filename);
|
|
102
|
-
const dir = this.nodeDir(runId, nodeKey);
|
|
103
|
-
mkdirSync(dir, { recursive: true });
|
|
104
|
-
writeFileSync(join(dir, filename), "");
|
|
105
|
-
return ref;
|
|
106
|
-
}
|
|
107
|
-
/** Append content to an existing artifact, creating it if needed. */
|
|
108
|
-
append(runId, nodeKey, filename, content) {
|
|
109
|
-
const ref = ArtifactReferences.make(runId, nodeKey, filename);
|
|
110
|
-
const dir = this.nodeDir(runId, nodeKey);
|
|
111
|
-
mkdirSync(dir, { recursive: true });
|
|
112
|
-
appendFileSync(join(dir, filename), content);
|
|
113
|
-
return ref;
|
|
114
|
-
}
|
|
115
|
-
/** Read an artifact file content. */
|
|
116
|
-
read(runId, nodeKey, filename) {
|
|
117
|
-
validateArtifactFilename(filename);
|
|
118
|
-
const filePath = join(this.nodeDir(runId, nodeKey), filename);
|
|
119
|
-
return readFileSync(filePath);
|
|
120
|
-
}
|
|
121
|
-
/** List all artifact refs for a node. */
|
|
122
|
-
list(runId, nodeKey) {
|
|
123
|
-
const dir = this.nodeDir(runId, nodeKey);
|
|
124
|
-
if (!existsSync(dir))
|
|
125
|
-
return [];
|
|
126
|
-
return readdirSync(dir)
|
|
127
|
-
.filter((f) => !f.endsWith(".tmp"))
|
|
128
|
-
.map((filename) => ArtifactReferences.make(runId, nodeKey, filename));
|
|
129
|
-
}
|
|
130
|
-
/** Parse an artifact URI into its components. */
|
|
131
|
-
parseArtifactRef(uri) {
|
|
132
|
-
const ref = ArtifactReferences.parse(uri);
|
|
133
|
-
return { uri: ref.uri, runId: ref.runId, nodeKey: ref.nodeKey, filename: ref.filename };
|
|
134
|
-
}
|
|
135
|
-
// ─── Internal helpers ──────────────────────────────────────────
|
|
136
|
-
nodeDir(runId, nodeKey) {
|
|
137
|
-
validateRunId(runId);
|
|
138
|
-
const safeKey = nodeKeyToStorageKey(nodeKey);
|
|
139
|
-
return join(this.baseDir, runId, "artifacts", safeKey);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
/** Validate that an artifact filename has no path traversal or separator characters. */
|
|
143
|
-
function validateArtifactFilename(filename) {
|
|
144
|
-
if (filename.includes("/") || filename.includes("\\") || filename.includes("..")) {
|
|
145
|
-
throw new Error(`Invalid artifact filename: ${filename}`);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
function isSafeUriPathSegment(segment) {
|
|
149
|
-
return Boolean(segment) && !segment.split(/[/:]/).some((part) => part === "" || part === "." || part === "..");
|
|
150
|
-
}
|
|
151
|
-
function isSafeEncodedNodeKey(encodedNodeKey) {
|
|
152
|
-
return (Boolean(encodedNodeKey) &&
|
|
153
|
-
!encodedNodeKey.includes("/") &&
|
|
154
|
-
!encodedNodeKey.includes("\\") &&
|
|
155
|
-
!encodedNodeKey.includes(":") &&
|
|
156
|
-
encodedNodeKey !== "." &&
|
|
157
|
-
encodedNodeKey !== "..");
|
|
158
|
-
}
|
|
159
|
-
function isPathAtOrBelow(path, basePath) {
|
|
160
|
-
const normalizedBase = resolve(basePath);
|
|
161
|
-
return path === normalizedBase || path.startsWith(`${normalizedBase}/`);
|
|
162
|
-
}
|
|
163
|
-
//# sourceMappingURL=artifacts.js.map
|
package/dist/artifacts.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { ArtifactStore } from "./artifacts.js";
|
|
2
|
-
import type { AgentAttemptTelemetry } from "./types.js";
|
|
3
|
-
export interface AgentAttemptFinalArtifacts {
|
|
4
|
-
responseText?: string;
|
|
5
|
-
stderr?: string;
|
|
6
|
-
diagnostics?: string[];
|
|
7
|
-
}
|
|
8
|
-
export interface AgentAttemptStartArtifacts {
|
|
9
|
-
artifactRefs: string[];
|
|
10
|
-
promptRef: string;
|
|
11
|
-
rawAcpDebugRef?: string;
|
|
12
|
-
}
|
|
13
|
-
export interface AgentAttemptFinalArtifactRefs {
|
|
14
|
-
artifactRefs: string[];
|
|
15
|
-
responseRef?: string;
|
|
16
|
-
stderrRef?: string;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Owns runtime artifact naming and lifecycle rules for executable node attempts.
|
|
20
|
-
*/
|
|
21
|
-
export declare class AttemptArtifactRecorder {
|
|
22
|
-
private readonly artifactStore;
|
|
23
|
-
constructor(artifactStore: ArtifactStore);
|
|
24
|
-
startAgentAttempt(runId: string, nodeKey: string, attemptNo: number, prompt: string, options?: {
|
|
25
|
-
rawAcpDebug?: boolean;
|
|
26
|
-
}): AgentAttemptStartArtifacts;
|
|
27
|
-
appendAgentRawAcpDebug(runId: string, nodeKey: string, attemptNo: number, chunk: string): void;
|
|
28
|
-
finalizeAgentAttempt(runId: string, nodeKey: string, attemptNo: number, content: AgentAttemptFinalArtifacts): AgentAttemptFinalArtifactRefs;
|
|
29
|
-
writeAgentTelemetry(runId: string, nodeKey: string, attemptNo: number, telemetry: AgentAttemptTelemetry): string;
|
|
30
|
-
writeProgramArtifacts(runId: string, nodeKey: string, stdout: string, stderr: string): string[];
|
|
31
|
-
mergeAttemptRefs(target: string[], refs: string[] | undefined): void;
|
|
32
|
-
private mergeStderrDiagnostics;
|
|
33
|
-
private agentAttemptPrefix;
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=attempt-artifacts.d.ts.map
|