@assemblyline-agents/runtime 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +19 -0
- package/dist/agent-harness.d.ts +108 -0
- package/dist/agent-harness.d.ts.map +1 -0
- package/dist/agent-harness.js +2 -0
- package/dist/agent-harness.js.map +1 -0
- package/dist/attachments-legacy.d.ts +17 -0
- package/dist/attachments-legacy.d.ts.map +1 -0
- package/dist/attachments-legacy.js +273 -0
- package/dist/attachments-legacy.js.map +1 -0
- package/dist/attachments.d.ts +49 -0
- package/dist/attachments.d.ts.map +1 -0
- package/dist/attachments.js +832 -0
- package/dist/attachments.js.map +1 -0
- package/dist/builtin-tool-executors.d.ts +96 -0
- package/dist/builtin-tool-executors.d.ts.map +1 -0
- package/dist/builtin-tool-executors.js +501 -0
- package/dist/builtin-tool-executors.js.map +1 -0
- package/dist/builtin-tools.d.ts +30 -0
- package/dist/builtin-tools.d.ts.map +1 -0
- package/dist/builtin-tools.js +690 -0
- package/dist/builtin-tools.js.map +1 -0
- package/dist/capability-catalog.d.ts +27 -0
- package/dist/capability-catalog.d.ts.map +1 -0
- package/dist/capability-catalog.js +193 -0
- package/dist/capability-catalog.js.map +1 -0
- package/dist/channel-http-util.d.ts +34 -0
- package/dist/channel-http-util.d.ts.map +1 -0
- package/dist/channel-http-util.js +93 -0
- package/dist/channel-http-util.js.map +1 -0
- package/dist/channel-ingress.d.ts +56 -0
- package/dist/channel-ingress.d.ts.map +1 -0
- package/dist/channel-ingress.js +273 -0
- package/dist/channel-ingress.js.map +1 -0
- package/dist/channel.d.ts +146 -0
- package/dist/channel.d.ts.map +1 -0
- package/dist/channel.js +2 -0
- package/dist/channel.js.map +1 -0
- package/dist/checkpoints.d.ts +34 -0
- package/dist/checkpoints.d.ts.map +1 -0
- package/dist/checkpoints.js +86 -0
- package/dist/checkpoints.js.map +1 -0
- package/dist/code-mode.d.ts +20 -0
- package/dist/code-mode.d.ts.map +1 -0
- package/dist/code-mode.js +658 -0
- package/dist/code-mode.js.map +1 -0
- package/dist/computer-relay-protocol.d.ts +36 -0
- package/dist/computer-relay-protocol.d.ts.map +1 -0
- package/dist/computer-relay-protocol.js +127 -0
- package/dist/computer-relay-protocol.js.map +1 -0
- package/dist/concurrency.d.ts +68 -0
- package/dist/concurrency.d.ts.map +1 -0
- package/dist/concurrency.js +193 -0
- package/dist/concurrency.js.map +1 -0
- package/dist/connection-auth-util.d.ts +56 -0
- package/dist/connection-auth-util.d.ts.map +1 -0
- package/dist/connection-auth-util.js +154 -0
- package/dist/connection-auth-util.js.map +1 -0
- package/dist/connection-clients.d.ts +50 -0
- package/dist/connection-clients.d.ts.map +1 -0
- package/dist/connection-clients.js +402 -0
- package/dist/connection-clients.js.map +1 -0
- package/dist/connection-stores.d.ts +108 -0
- package/dist/connection-stores.d.ts.map +1 -0
- package/dist/connection-stores.js +127 -0
- package/dist/connection-stores.js.map +1 -0
- package/dist/connection-util.d.ts +27 -0
- package/dist/connection-util.d.ts.map +1 -0
- package/dist/connection-util.js +118 -0
- package/dist/connection-util.js.map +1 -0
- package/dist/connections.d.ts +152 -0
- package/dist/connections.d.ts.map +1 -0
- package/dist/connections.js +838 -0
- package/dist/connections.js.map +1 -0
- package/dist/content-capture.d.ts +32 -0
- package/dist/content-capture.d.ts.map +1 -0
- package/dist/content-capture.js +77 -0
- package/dist/content-capture.js.map +1 -0
- package/dist/context-policy-util.d.ts +45 -0
- package/dist/context-policy-util.d.ts.map +1 -0
- package/dist/context-policy-util.js +120 -0
- package/dist/context-policy-util.js.map +1 -0
- package/dist/conversation-context.d.ts +55 -0
- package/dist/conversation-context.d.ts.map +1 -0
- package/dist/conversation-context.js +179 -0
- package/dist/conversation-context.js.map +1 -0
- package/dist/conversation-transcript.d.ts +49 -0
- package/dist/conversation-transcript.d.ts.map +1 -0
- package/dist/conversation-transcript.js +77 -0
- package/dist/conversation-transcript.js.map +1 -0
- package/dist/conversation-turn-dispatch.d.ts +46 -0
- package/dist/conversation-turn-dispatch.d.ts.map +1 -0
- package/dist/conversation-turn-dispatch.js +201 -0
- package/dist/conversation-turn-dispatch.js.map +1 -0
- package/dist/delivery-queue.d.ts +89 -0
- package/dist/delivery-queue.d.ts.map +1 -0
- package/dist/delivery-queue.js +244 -0
- package/dist/delivery-queue.js.map +1 -0
- package/dist/delivery-send.d.ts +44 -0
- package/dist/delivery-send.d.ts.map +1 -0
- package/dist/delivery-send.js +494 -0
- package/dist/delivery-send.js.map +1 -0
- package/dist/env-config.d.ts +6 -0
- package/dist/env-config.d.ts.map +1 -0
- package/dist/env-config.js +27 -0
- package/dist/env-config.js.map +1 -0
- package/dist/eval-run-options.d.ts +37 -0
- package/dist/eval-run-options.d.ts.map +1 -0
- package/dist/eval-run-options.js +106 -0
- package/dist/eval-run-options.js.map +1 -0
- package/dist/harness-continuation.d.ts +54 -0
- package/dist/harness-continuation.d.ts.map +1 -0
- package/dist/harness-continuation.js +58 -0
- package/dist/harness-continuation.js.map +1 -0
- package/dist/harness-loop.d.ts +110 -0
- package/dist/harness-loop.d.ts.map +1 -0
- package/dist/harness-loop.js +575 -0
- package/dist/harness-loop.js.map +1 -0
- package/dist/hook-dispatch.d.ts +19 -0
- package/dist/hook-dispatch.d.ts.map +1 -0
- package/dist/hook-dispatch.js +37 -0
- package/dist/hook-dispatch.js.map +1 -0
- package/dist/http.d.ts +26 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +114 -0
- package/dist/http.js.map +1 -0
- package/dist/in-memory-conversation-turn-store.d.ts +29 -0
- package/dist/in-memory-conversation-turn-store.d.ts.map +1 -0
- package/dist/in-memory-conversation-turn-store.js +166 -0
- package/dist/in-memory-conversation-turn-store.js.map +1 -0
- package/dist/in-memory-run-store.d.ts +39 -0
- package/dist/in-memory-run-store.d.ts.map +1 -0
- package/dist/in-memory-run-store.js +332 -0
- package/dist/in-memory-run-store.js.map +1 -0
- package/dist/in-memory-sandbox-session-store.d.ts +33 -0
- package/dist/in-memory-sandbox-session-store.d.ts.map +1 -0
- package/dist/in-memory-sandbox-session-store.js +186 -0
- package/dist/in-memory-sandbox-session-store.js.map +1 -0
- package/dist/in-memory-small-stores.d.ts +117 -0
- package/dist/in-memory-small-stores.d.ts.map +1 -0
- package/dist/in-memory-small-stores.js +340 -0
- package/dist/in-memory-small-stores.js.map +1 -0
- package/dist/in-memory-usage-store.d.ts +15 -0
- package/dist/in-memory-usage-store.d.ts.map +1 -0
- package/dist/in-memory-usage-store.js +49 -0
- package/dist/in-memory-usage-store.js.map +1 -0
- package/dist/index.d.ts +467 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2046 -0
- package/dist/index.js.map +1 -0
- package/dist/json-util.d.ts +19 -0
- package/dist/json-util.d.ts.map +1 -0
- package/dist/json-util.js +59 -0
- package/dist/json-util.js.map +1 -0
- package/dist/local-sandbox.d.ts +16 -0
- package/dist/local-sandbox.d.ts.map +1 -0
- package/dist/local-sandbox.js +327 -0
- package/dist/local-sandbox.js.map +1 -0
- package/dist/logging.d.ts +16 -0
- package/dist/logging.d.ts.map +1 -0
- package/dist/logging.js +41 -0
- package/dist/logging.js.map +1 -0
- package/dist/mcp-client.d.ts +27 -0
- package/dist/mcp-client.d.ts.map +1 -0
- package/dist/mcp-client.js +169 -0
- package/dist/mcp-client.js.map +1 -0
- package/dist/model-harnesses.d.ts +4 -0
- package/dist/model-harnesses.d.ts.map +1 -0
- package/dist/model-harnesses.js +6 -0
- package/dist/model-harnesses.js.map +1 -0
- package/dist/model-media.d.ts +36 -0
- package/dist/model-media.d.ts.map +1 -0
- package/dist/model-media.js +234 -0
- package/dist/model-media.js.map +1 -0
- package/dist/operator-controls.d.ts +31 -0
- package/dist/operator-controls.d.ts.map +1 -0
- package/dist/operator-controls.js +71 -0
- package/dist/operator-controls.js.map +1 -0
- package/dist/pi-agent-harness.d.ts +40 -0
- package/dist/pi-agent-harness.d.ts.map +1 -0
- package/dist/pi-agent-harness.js +222 -0
- package/dist/pi-agent-harness.js.map +1 -0
- package/dist/pi-harness.d.ts +42 -0
- package/dist/pi-harness.d.ts.map +1 -0
- package/dist/pi-harness.js +142 -0
- package/dist/pi-harness.js.map +1 -0
- package/dist/relay-mcp-client.d.ts +17 -0
- package/dist/relay-mcp-client.d.ts.map +1 -0
- package/dist/relay-mcp-client.js +119 -0
- package/dist/relay-mcp-client.js.map +1 -0
- package/dist/replay-resume.d.ts +107 -0
- package/dist/replay-resume.d.ts.map +1 -0
- package/dist/replay-resume.js +495 -0
- package/dist/replay-resume.js.map +1 -0
- package/dist/resource-projection-util.d.ts +58 -0
- package/dist/resource-projection-util.d.ts.map +1 -0
- package/dist/resource-projection-util.js +298 -0
- package/dist/resource-projection-util.js.map +1 -0
- package/dist/resource-projection.d.ts +45 -0
- package/dist/resource-projection.d.ts.map +1 -0
- package/dist/resource-projection.js +481 -0
- package/dist/resource-projection.js.map +1 -0
- package/dist/run-heartbeat.d.ts +34 -0
- package/dist/run-heartbeat.d.ts.map +1 -0
- package/dist/run-heartbeat.js +62 -0
- package/dist/run-heartbeat.js.map +1 -0
- package/dist/run-outcome.d.ts +47 -0
- package/dist/run-outcome.d.ts.map +1 -0
- package/dist/run-outcome.js +92 -0
- package/dist/run-outcome.js.map +1 -0
- package/dist/run-recovery.d.ts +117 -0
- package/dist/run-recovery.d.ts.map +1 -0
- package/dist/run-recovery.js +466 -0
- package/dist/run-recovery.js.map +1 -0
- package/dist/run-resolver.d.ts +35 -0
- package/dist/run-resolver.d.ts.map +1 -0
- package/dist/run-resolver.js +84 -0
- package/dist/run-resolver.js.map +1 -0
- package/dist/run-stream.d.ts +37 -0
- package/dist/run-stream.d.ts.map +1 -0
- package/dist/run-stream.js +78 -0
- package/dist/run-stream.js.map +1 -0
- package/dist/runs-query.d.ts +29 -0
- package/dist/runs-query.d.ts.map +1 -0
- package/dist/runs-query.js +142 -0
- package/dist/runs-query.js.map +1 -0
- package/dist/runtime-bundle.d.ts +3 -0
- package/dist/runtime-bundle.d.ts.map +1 -0
- package/dist/runtime-bundle.js +18 -0
- package/dist/runtime-bundle.js.map +1 -0
- package/dist/runtime-types.d.ts +397 -0
- package/dist/runtime-types.d.ts.map +1 -0
- package/dist/runtime-types.js +2 -0
- package/dist/runtime-types.js.map +1 -0
- package/dist/runtime-util.d.ts +45 -0
- package/dist/runtime-util.d.ts.map +1 -0
- package/dist/runtime-util.js +116 -0
- package/dist/runtime-util.js.map +1 -0
- package/dist/sandbox-cli-client.d.ts +20 -0
- package/dist/sandbox-cli-client.d.ts.map +1 -0
- package/dist/sandbox-cli-client.js +97 -0
- package/dist/sandbox-cli-client.js.map +1 -0
- package/dist/sandbox-fs.d.ts +56 -0
- package/dist/sandbox-fs.d.ts.map +1 -0
- package/dist/sandbox-fs.js +276 -0
- package/dist/sandbox-fs.js.map +1 -0
- package/dist/sandbox-session-key.d.ts +8 -0
- package/dist/sandbox-session-key.d.ts.map +1 -0
- package/dist/sandbox-session-key.js +32 -0
- package/dist/sandbox-session-key.js.map +1 -0
- package/dist/sandbox-snapshot-policy.d.ts +27 -0
- package/dist/sandbox-snapshot-policy.d.ts.map +1 -0
- package/dist/sandbox-snapshot-policy.js +94 -0
- package/dist/sandbox-snapshot-policy.js.map +1 -0
- package/dist/sandbox-sync-worker.d.ts +63 -0
- package/dist/sandbox-sync-worker.d.ts.map +1 -0
- package/dist/sandbox-sync-worker.js +448 -0
- package/dist/sandbox-sync-worker.js.map +1 -0
- package/dist/schedule-execution.d.ts +59 -0
- package/dist/schedule-execution.d.ts.map +1 -0
- package/dist/schedule-execution.js +951 -0
- package/dist/schedule-execution.js.map +1 -0
- package/dist/scheduler.d.ts +19 -0
- package/dist/scheduler.d.ts.map +1 -0
- package/dist/scheduler.js +38 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/security.d.ts +20 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +145 -0
- package/dist/security.js.map +1 -0
- package/dist/self-improvement.d.ts +245 -0
- package/dist/self-improvement.d.ts.map +1 -0
- package/dist/self-improvement.js +554 -0
- package/dist/self-improvement.js.map +1 -0
- package/dist/source-loader.d.ts +19 -0
- package/dist/source-loader.d.ts.map +1 -0
- package/dist/source-loader.js +160 -0
- package/dist/source-loader.js.map +1 -0
- package/dist/state-store-helpers.d.ts +28 -0
- package/dist/state-store-helpers.d.ts.map +1 -0
- package/dist/state-store-helpers.js +164 -0
- package/dist/state-store-helpers.js.map +1 -0
- package/dist/state-stores.d.ts +25 -0
- package/dist/state-stores.d.ts.map +1 -0
- package/dist/state-stores.js +157 -0
- package/dist/state-stores.js.map +1 -0
- package/dist/state.d.ts +736 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +46 -0
- package/dist/state.js.map +1 -0
- package/dist/storage.d.ts +188 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +752 -0
- package/dist/storage.js.map +1 -0
- package/dist/subagent-execution.d.ts +80 -0
- package/dist/subagent-execution.d.ts.map +1 -0
- package/dist/subagent-execution.js +135 -0
- package/dist/subagent-execution.js.map +1 -0
- package/dist/telemetry.d.ts +49 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +60 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/tool-apis.d.ts +22 -0
- package/dist/tool-apis.d.ts.map +1 -0
- package/dist/tool-apis.js +344 -0
- package/dist/tool-apis.js.map +1 -0
- package/dist/tool-execution.d.ts +143 -0
- package/dist/tool-execution.d.ts.map +1 -0
- package/dist/tool-execution.js +573 -0
- package/dist/tool-execution.js.map +1 -0
- package/dist/trusted-attachments.d.ts +20 -0
- package/dist/trusted-attachments.d.ts.map +1 -0
- package/dist/trusted-attachments.js +276 -0
- package/dist/trusted-attachments.js.map +1 -0
- package/dist/usage-accounting.d.ts +37 -0
- package/dist/usage-accounting.d.ts.map +1 -0
- package/dist/usage-accounting.js +181 -0
- package/dist/usage-accounting.js.map +1 -0
- package/dist/usage-budget.d.ts +29 -0
- package/dist/usage-budget.d.ts.map +1 -0
- package/dist/usage-budget.js +145 -0
- package/dist/usage-budget.js.map +1 -0
- package/dist/usage-reconciliation.d.ts +76 -0
- package/dist/usage-reconciliation.d.ts.map +1 -0
- package/dist/usage-reconciliation.js +463 -0
- package/dist/usage-reconciliation.js.map +1 -0
- package/dist/usage-records.d.ts +24 -0
- package/dist/usage-records.d.ts.map +1 -0
- package/dist/usage-records.js +445 -0
- package/dist/usage-records.js.map +1 -0
- package/package.json +51 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { JsonObject } from "@assemblyline-agents/core";
|
|
2
|
+
import type { StateAdapter } from "./state.js";
|
|
3
|
+
/**
|
|
4
|
+
* Live run streaming: an in-process fan-out bus for run events.
|
|
5
|
+
*
|
|
6
|
+
* Durable events reach the bus through `withRunEventPublishing` (a state
|
|
7
|
+
* decorator that publishes after `appendEvent` persists — one choke point,
|
|
8
|
+
* so workers and recovery paths stream too). Ephemeral events (token deltas)
|
|
9
|
+
* are published directly by the runtime and never persisted. SSE endpoints
|
|
10
|
+
* replay the durable event log for catch-up, then tail this bus.
|
|
11
|
+
*/
|
|
12
|
+
export interface RunStreamEvent {
|
|
13
|
+
type: string;
|
|
14
|
+
timestamp: string;
|
|
15
|
+
data: JsonObject;
|
|
16
|
+
/** Durable event-log sequence; absent for ephemeral events (deltas). */
|
|
17
|
+
sequence?: number;
|
|
18
|
+
}
|
|
19
|
+
export type RunStreamListener = (event: RunStreamEvent) => void;
|
|
20
|
+
export declare class RunEventBus {
|
|
21
|
+
private readonly listeners;
|
|
22
|
+
subscribe(runId: string, listener: RunStreamListener): () => void;
|
|
23
|
+
hasListeners(runId: string): boolean;
|
|
24
|
+
publish(runId: string, event: RunStreamEvent): void;
|
|
25
|
+
}
|
|
26
|
+
/** Terminal run events that tell a stream subscriber nothing else is coming. */
|
|
27
|
+
export declare const RUN_STREAM_TERMINAL_EVENTS: Set<string>;
|
|
28
|
+
/**
|
|
29
|
+
* Decorates a StateAdapter so every persisted run event is also published to
|
|
30
|
+
* the bus. All other methods pass through untouched. When `log` is provided,
|
|
31
|
+
* terminal outcome events are reported through it — this is the single place
|
|
32
|
+
* every run outcome becomes a log line, no matter which code path (loop,
|
|
33
|
+
* workers, recovery) produced it. (`run.execution_error` is logged with its
|
|
34
|
+
* stack at the throw site instead.)
|
|
35
|
+
*/
|
|
36
|
+
export declare function withRunEventPublishing<T extends StateAdapter>(state: T, bus: RunEventBus, log?: (runId: string, event: RunStreamEvent) => void, onEvent?: (runId: string, event: RunStreamEvent) => Promise<void> | void): T;
|
|
37
|
+
//# sourceMappingURL=run-stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-stream.d.ts","sourceRoot":"","sources":["../src/run-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;;;;;GAQG;AAEH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;AAEhE,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6C;IAEvE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAajE,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIpC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI;CAWpD;AAED,gFAAgF;AAChF,eAAO,MAAM,0BAA0B,aAA4D,CAAC;AAEpG;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,YAAY,EAC3D,KAAK,EAAE,CAAC,EACR,GAAG,EAAE,WAAW,EAChB,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,KAAK,IAAI,EACpD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GACvE,CAAC,CAgCH"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
export class RunEventBus {
|
|
2
|
+
listeners = new Map();
|
|
3
|
+
subscribe(runId, listener) {
|
|
4
|
+
let set = this.listeners.get(runId);
|
|
5
|
+
if (!set) {
|
|
6
|
+
set = new Set();
|
|
7
|
+
this.listeners.set(runId, set);
|
|
8
|
+
}
|
|
9
|
+
set.add(listener);
|
|
10
|
+
return () => {
|
|
11
|
+
set.delete(listener);
|
|
12
|
+
if (set.size === 0)
|
|
13
|
+
this.listeners.delete(runId);
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
hasListeners(runId) {
|
|
17
|
+
return (this.listeners.get(runId)?.size ?? 0) > 0;
|
|
18
|
+
}
|
|
19
|
+
publish(runId, event) {
|
|
20
|
+
const set = this.listeners.get(runId);
|
|
21
|
+
if (!set)
|
|
22
|
+
return;
|
|
23
|
+
for (const listener of set) {
|
|
24
|
+
try {
|
|
25
|
+
listener(event);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
// A slow or broken subscriber must never affect run execution.
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/** Terminal run events that tell a stream subscriber nothing else is coming. */
|
|
34
|
+
export const RUN_STREAM_TERMINAL_EVENTS = new Set(["run.completed", "run.failed", "run.cancelled"]);
|
|
35
|
+
/**
|
|
36
|
+
* Decorates a StateAdapter so every persisted run event is also published to
|
|
37
|
+
* the bus. All other methods pass through untouched. When `log` is provided,
|
|
38
|
+
* terminal outcome events are reported through it — this is the single place
|
|
39
|
+
* every run outcome becomes a log line, no matter which code path (loop,
|
|
40
|
+
* workers, recovery) produced it. (`run.execution_error` is logged with its
|
|
41
|
+
* stack at the throw site instead.)
|
|
42
|
+
*/
|
|
43
|
+
export function withRunEventPublishing(state, bus, log, onEvent) {
|
|
44
|
+
const appendEvent = async (runId, type, data) => {
|
|
45
|
+
const event = await state.appendEvent(runId, type, data);
|
|
46
|
+
const streamEvent = {
|
|
47
|
+
type: event.type,
|
|
48
|
+
timestamp: event.timestamp,
|
|
49
|
+
data: event.data,
|
|
50
|
+
sequence: event.sequence
|
|
51
|
+
};
|
|
52
|
+
bus.publish(runId, streamEvent);
|
|
53
|
+
if (log && RUN_STREAM_TERMINAL_EVENTS.has(event.type)) {
|
|
54
|
+
try {
|
|
55
|
+
log(runId, streamEvent);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// Logging must never affect run execution.
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (onEvent) {
|
|
62
|
+
// Observe-only hooks fire after the durable append; the dispatcher
|
|
63
|
+
// catches per-handler, this guards the dispatcher itself.
|
|
64
|
+
try {
|
|
65
|
+
await onEvent(runId, streamEvent);
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
// Hooks must never affect run execution.
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return event;
|
|
72
|
+
};
|
|
73
|
+
// Prototype methods need binding; a spread would drop them.
|
|
74
|
+
const decorated = Object.create(state);
|
|
75
|
+
Object.defineProperty(decorated, "appendEvent", { value: appendEvent, enumerable: true });
|
|
76
|
+
return decorated;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=run-stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-stream.js","sourceRoot":"","sources":["../src/run-stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { AgentManifest, JsonObject } from "@assemblyline-agents/core";
|
|
2
|
+
import type { StateAdapter, UsageRecord } from "./state.js";
|
|
3
|
+
/**
|
|
4
|
+
* Read-side run reporting: the bounded run-list/timeline query behind the
|
|
5
|
+
* host `GET /runs` endpoints plus the usage summarizer it aggregates with.
|
|
6
|
+
*/
|
|
7
|
+
export interface AgentRunsQueryResult {
|
|
8
|
+
runs: JsonObject[];
|
|
9
|
+
groupedByStatus: Record<string, number>;
|
|
10
|
+
groupedByChannel: Record<string, number>;
|
|
11
|
+
groupedByModel: Record<string, number>;
|
|
12
|
+
details: JsonObject[];
|
|
13
|
+
costSummaries: JsonObject[];
|
|
14
|
+
}
|
|
15
|
+
export declare function queryAgentRuns(state: StateAdapter, manifest?: AgentManifest, options?: {
|
|
16
|
+
limit?: number;
|
|
17
|
+
includeDetails?: boolean;
|
|
18
|
+
}): Promise<AgentRunsQueryResult>;
|
|
19
|
+
export declare function summarizeUsage(records: UsageRecord[]): {
|
|
20
|
+
tokenCounts: {
|
|
21
|
+
input: number;
|
|
22
|
+
output: number;
|
|
23
|
+
cached: number;
|
|
24
|
+
};
|
|
25
|
+
actualCostUsd: number;
|
|
26
|
+
unavailableCostRecords: number;
|
|
27
|
+
recordCount: number;
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=runs-query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runs-query.d.ts","sourceRoot":"","sources":["../src/runs-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE3E,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5D;;;GAGG;AAEH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,aAAa,EAAE,UAAU,EAAE,CAAC;CAC7B;AAED,wBAAsB,cAAc,CAClC,KAAK,EAAE,YAAY,EACnB,QAAQ,CAAC,EAAE,aAAa,EACxB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GACrD,OAAO,CAAC,oBAAoB,CAAC,CAiH/B;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG;IACtD,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB,CAqBA"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { previewJson, redactedRunInput } from "./json-util.js";
|
|
2
|
+
export async function queryAgentRuns(state, manifest, options) {
|
|
3
|
+
// `includeDetails` (default true) builds the full per-run timeline. The list
|
|
4
|
+
// endpoint opts out: loading events/tool-calls/deliveries/usage for every run
|
|
5
|
+
// in unbounded history is a 1+4N query fan-out that hangs on busy agents.
|
|
6
|
+
const includeDetails = options?.includeDetails ?? true;
|
|
7
|
+
const limit = options?.limit ?? 200;
|
|
8
|
+
const allRuns = await state.listRuns();
|
|
9
|
+
const runs = [...allRuns]
|
|
10
|
+
.sort((a, b) => Date.parse(b.createdAt) - Date.parse(a.createdAt))
|
|
11
|
+
.slice(0, Math.max(0, limit));
|
|
12
|
+
const details = [];
|
|
13
|
+
const groupedByStatus = {};
|
|
14
|
+
const groupedByChannel = {};
|
|
15
|
+
const groupedByModel = {};
|
|
16
|
+
for (const run of runs) {
|
|
17
|
+
const channel = typeof run.input.channel === "string" ? run.input.channel : "unknown";
|
|
18
|
+
const model = modelForRun(run.input, manifest);
|
|
19
|
+
groupedByStatus[run.status] = (groupedByStatus[run.status] ?? 0) + 1;
|
|
20
|
+
groupedByChannel[channel] = (groupedByChannel[channel] ?? 0) + 1;
|
|
21
|
+
groupedByModel[model] = (groupedByModel[model] ?? 0) + 1;
|
|
22
|
+
if (!includeDetails)
|
|
23
|
+
continue;
|
|
24
|
+
const events = await state.listEvents(run.id);
|
|
25
|
+
const toolCalls = await state.listToolCalls(run.id);
|
|
26
|
+
const deliveries = await state.listDeliveries(run.id);
|
|
27
|
+
const usage = await state.listUsage(run.id);
|
|
28
|
+
const usageSummary = summarizeUsage(usage);
|
|
29
|
+
details.push({
|
|
30
|
+
runId: run.id,
|
|
31
|
+
status: run.status,
|
|
32
|
+
channel,
|
|
33
|
+
model,
|
|
34
|
+
durationMs: Math.max(0, Date.parse(run.updatedAt) - Date.parse(run.createdAt)),
|
|
35
|
+
input: redactedRunInput(run.input),
|
|
36
|
+
output: previewJson(deliveries.at(-1)?.payload ?? {}),
|
|
37
|
+
inputPreview: previewJson(run.input),
|
|
38
|
+
outputPreview: previewJson(deliveries.at(-1)?.payload ?? {}),
|
|
39
|
+
tokenCounts: usageSummary.tokenCounts,
|
|
40
|
+
costUsd: usageSummary.actualCostUsd,
|
|
41
|
+
unavailableCostRecords: usageSummary.unavailableCostRecords,
|
|
42
|
+
eventCount: events.length,
|
|
43
|
+
toolCallCount: toolCalls.length,
|
|
44
|
+
deliveryCount: deliveries.length,
|
|
45
|
+
approvals: events.filter((event) => event.type === "tool.approval_requested").length,
|
|
46
|
+
subagentCalls: events.filter((event) => event.type === "subagent.called").length,
|
|
47
|
+
errors: events.filter((event) => String(event.type).endsWith("failed")).map((event) => event.data),
|
|
48
|
+
timeline: events.map((event) => ({
|
|
49
|
+
sequence: event.sequence,
|
|
50
|
+
type: event.type,
|
|
51
|
+
timestamp: event.timestamp,
|
|
52
|
+
data: previewJson(event.data)
|
|
53
|
+
})),
|
|
54
|
+
toolCalls: toolCalls.map((toolCall) => ({
|
|
55
|
+
id: toolCall.id,
|
|
56
|
+
toolName: toolCall.toolName,
|
|
57
|
+
status: toolCall.status,
|
|
58
|
+
inputPreview: previewJson(toolCall.input),
|
|
59
|
+
modelOutputPreview: previewJson(toolCall.modelOutput),
|
|
60
|
+
error: toolCall.error ?? null
|
|
61
|
+
})),
|
|
62
|
+
deliveries: deliveries.map((delivery) => ({
|
|
63
|
+
id: delivery.id,
|
|
64
|
+
channel: delivery.channel,
|
|
65
|
+
status: delivery.status,
|
|
66
|
+
idempotencyKey: delivery.idempotencyKey,
|
|
67
|
+
payloadPreview: previewJson(delivery.payload)
|
|
68
|
+
})),
|
|
69
|
+
usage: usage.map((record) => ({
|
|
70
|
+
model: record.model ?? model,
|
|
71
|
+
inputTokens: record.inputTokens,
|
|
72
|
+
outputTokens: record.outputTokens,
|
|
73
|
+
cachedTokens: record.cachedTokens,
|
|
74
|
+
cacheWriteTokens: record.cacheWriteTokens,
|
|
75
|
+
reasoningTokens: record.reasoningTokens,
|
|
76
|
+
costUsd: record.costUsd,
|
|
77
|
+
costSource: record.costSource,
|
|
78
|
+
tokenSource: record.tokenSource,
|
|
79
|
+
provider: record.provider ?? "unknown",
|
|
80
|
+
providerRequestId: record.providerRequestId ?? null,
|
|
81
|
+
metadata: record.metadata
|
|
82
|
+
}))
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
const costSummaries = [];
|
|
86
|
+
if (includeDetails) {
|
|
87
|
+
const totalUsage = summarizeUsage(await state.listUsage());
|
|
88
|
+
costSummaries.push({
|
|
89
|
+
actualCostUsd: totalUsage.actualCostUsd,
|
|
90
|
+
inputTokens: totalUsage.tokenCounts.input,
|
|
91
|
+
outputTokens: totalUsage.tokenCounts.output,
|
|
92
|
+
cachedTokens: totalUsage.tokenCounts.cached,
|
|
93
|
+
unavailableCostRecords: totalUsage.unavailableCostRecords,
|
|
94
|
+
note: totalUsage.recordCount > 0
|
|
95
|
+
? "Cash includes only provider-reported or reconciled values; unavailable values remain null."
|
|
96
|
+
: "No provider usage records were attached to these local runs."
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
return {
|
|
100
|
+
runs: runs.map((run) => ({
|
|
101
|
+
runId: run.id,
|
|
102
|
+
status: run.status,
|
|
103
|
+
channel: typeof run.input.channel === "string" ? run.input.channel : "unknown",
|
|
104
|
+
model: modelForRun(run.input, manifest),
|
|
105
|
+
createdAt: run.createdAt,
|
|
106
|
+
updatedAt: run.updatedAt
|
|
107
|
+
})),
|
|
108
|
+
groupedByStatus,
|
|
109
|
+
groupedByChannel,
|
|
110
|
+
groupedByModel,
|
|
111
|
+
details,
|
|
112
|
+
costSummaries
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
export function summarizeUsage(records) {
|
|
116
|
+
return records
|
|
117
|
+
.filter((record) => record.recordKind === "transaction")
|
|
118
|
+
.reduce((summary, record) => ({
|
|
119
|
+
tokenCounts: {
|
|
120
|
+
input: summary.tokenCounts.input + record.inputTokens,
|
|
121
|
+
output: summary.tokenCounts.output + record.outputTokens,
|
|
122
|
+
cached: summary.tokenCounts.cached + record.cachedTokens
|
|
123
|
+
},
|
|
124
|
+
actualCostUsd: summary.actualCostUsd + (record.costUsd ?? 0),
|
|
125
|
+
unavailableCostRecords: summary.unavailableCostRecords + (record.costSource === "unavailable" ? 1 : 0),
|
|
126
|
+
recordCount: summary.recordCount + 1
|
|
127
|
+
}), {
|
|
128
|
+
tokenCounts: { input: 0, output: 0, cached: 0 },
|
|
129
|
+
actualCostUsd: 0,
|
|
130
|
+
unavailableCostRecords: 0,
|
|
131
|
+
recordCount: 0
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
function modelForRun(input, manifest) {
|
|
135
|
+
if (typeof input.model === "string")
|
|
136
|
+
return input.model;
|
|
137
|
+
if (typeof input.subagent === "string") {
|
|
138
|
+
return manifest?.subagents.find((subagent) => subagent.name === input.subagent)?.model ?? "unknown";
|
|
139
|
+
}
|
|
140
|
+
return manifest?.agent.model ?? "unknown";
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=runs-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runs-query.js","sourceRoot":"","sources":["../src/runs-query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-bundle.d.ts","sourceRoot":"","sources":["../src/runtime-bundle.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,CActE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { join, resolve } from "node:path";
|
|
3
|
+
export function loadRuntimeBundle(artifactRoot) {
|
|
4
|
+
const root = resolve(artifactRoot);
|
|
5
|
+
const manifest = JSON.parse(readFileSync(join(root, "manifest.json"), "utf8"));
|
|
6
|
+
manifest.root = join(root, "agent");
|
|
7
|
+
const sourcePath = join(root, "server", "sources.json");
|
|
8
|
+
const sourceBundle = existsSync(sourcePath)
|
|
9
|
+
? JSON.parse(readFileSync(sourcePath, "utf8"))
|
|
10
|
+
: {};
|
|
11
|
+
return {
|
|
12
|
+
manifest,
|
|
13
|
+
artifactRoot: root,
|
|
14
|
+
sourceBundle,
|
|
15
|
+
devMode: true
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=runtime-bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-bundle.js","sourceRoot":"","sources":["../src/runtime-bundle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAI1C,MAAM,UAAU,iBAAiB,CAAC,YAAoB;IACpD,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,CAAkB,CAAC;IAChG,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC;QACzC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAA4B;QAC1E,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;QACL,QAAQ;QACR,YAAY,EAAE,IAAI;QAClB,YAAY;QACZ,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
|