@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,160 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { dirname, extname, join, posix } from "node:path";
|
|
4
|
+
import { pathToFileURL } from "node:url";
|
|
5
|
+
import { ARTIFACT_DIR_NAME, resolveArtifactDirName } from "@assemblyline-agents/core";
|
|
6
|
+
import * as esbuild from "esbuild";
|
|
7
|
+
export class AgentSourceModuleLoader {
|
|
8
|
+
manifest;
|
|
9
|
+
sourceBundle;
|
|
10
|
+
cacheRoot;
|
|
11
|
+
moduleCache = new Map();
|
|
12
|
+
constructor(options) {
|
|
13
|
+
this.manifest = options.manifest;
|
|
14
|
+
this.sourceBundle = options.sourceBundle ?? {};
|
|
15
|
+
this.cacheRoot = options.cacheRoot ?? defaultModuleCacheRoot(this.manifest.root);
|
|
16
|
+
}
|
|
17
|
+
async load(source) {
|
|
18
|
+
const cacheKey = createHash("sha256")
|
|
19
|
+
.update(this.manifest.agentRevision)
|
|
20
|
+
.update(source.path)
|
|
21
|
+
.update(source.sha256)
|
|
22
|
+
.digest("hex");
|
|
23
|
+
const cached = this.moduleCache.get(cacheKey);
|
|
24
|
+
if (cached)
|
|
25
|
+
return (await cached);
|
|
26
|
+
const loaded = this.bundleAndImport(source, cacheKey);
|
|
27
|
+
this.moduleCache.set(cacheKey, loaded);
|
|
28
|
+
try {
|
|
29
|
+
return await loaded;
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
this.moduleCache.delete(cacheKey);
|
|
33
|
+
throw error;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async bundleAndImport(source, cacheKey) {
|
|
37
|
+
mkdirSync(this.cacheRoot, { recursive: true });
|
|
38
|
+
const cachePath = join(this.cacheRoot, `${safeCacheName(source.path)}-${cacheKey}.mjs`);
|
|
39
|
+
if (existsSync(cachePath)) {
|
|
40
|
+
return (await import(`${pathToFileURL(cachePath).href}?v=${cacheKey}`));
|
|
41
|
+
}
|
|
42
|
+
const bundled = await esbuild.build({
|
|
43
|
+
bundle: true,
|
|
44
|
+
entryPoints: [source.path],
|
|
45
|
+
format: "esm",
|
|
46
|
+
platform: "node",
|
|
47
|
+
target: "node22",
|
|
48
|
+
write: false,
|
|
49
|
+
packages: "external",
|
|
50
|
+
plugins: [this.sourceBundlePlugin()],
|
|
51
|
+
logLevel: "silent"
|
|
52
|
+
});
|
|
53
|
+
const output = bundled.outputFiles[0]?.text;
|
|
54
|
+
if (!output)
|
|
55
|
+
throw new Error(`Failed to bundle OpenEve source module ${source.path}.`);
|
|
56
|
+
writeFileSync(cachePath, output);
|
|
57
|
+
return (await import(`${pathToFileURL(cachePath).href}?v=${cacheKey}`));
|
|
58
|
+
}
|
|
59
|
+
readSource(path) {
|
|
60
|
+
const normalized = normalizeSourcePath(path);
|
|
61
|
+
const bundled = this.sourceBundle[normalized];
|
|
62
|
+
if (bundled !== undefined)
|
|
63
|
+
return bundled;
|
|
64
|
+
return readFileSync(join(this.manifest.root, normalized), "utf8");
|
|
65
|
+
}
|
|
66
|
+
sourceBundlePlugin() {
|
|
67
|
+
return {
|
|
68
|
+
name: "openeve-source-bundle",
|
|
69
|
+
setup: (build) => {
|
|
70
|
+
build.onResolve({ filter: /.*/ }, (args) => {
|
|
71
|
+
if (!args.importer) {
|
|
72
|
+
const candidate = this.resolveExistingSource(args.path);
|
|
73
|
+
if (!candidate)
|
|
74
|
+
return { errors: [{ text: `Could not resolve OpenEve source entry ${args.path}.` }] };
|
|
75
|
+
return { path: candidate, namespace: "openeve-source" };
|
|
76
|
+
}
|
|
77
|
+
if (!isRelativeSpecifier(args.path) && !isAbsoluteSourceSpecifier(args.path)) {
|
|
78
|
+
return { path: args.path, external: true };
|
|
79
|
+
}
|
|
80
|
+
const base = args.importer ? posix.dirname(normalizeSourcePath(args.importer)) : "";
|
|
81
|
+
const resolved = isRelativeSpecifier(args.path)
|
|
82
|
+
? normalizeSourcePath(posix.join(base, args.path))
|
|
83
|
+
: normalizeSourcePath(args.path);
|
|
84
|
+
const candidate = this.resolveExistingSource(resolved);
|
|
85
|
+
if (!candidate) {
|
|
86
|
+
return {
|
|
87
|
+
errors: [{ text: `Could not resolve local OpenEve source import ${args.path} from ${args.importer || "<entry>"}.` }]
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
return { path: candidate, namespace: "openeve-source" };
|
|
91
|
+
});
|
|
92
|
+
build.onLoad({ filter: /.*/, namespace: "openeve-source" }, (args) => ({
|
|
93
|
+
contents: this.readSource(args.path),
|
|
94
|
+
loader: loaderFor(args.path),
|
|
95
|
+
resolveDir: posix.dirname(normalizeSourcePath(args.path))
|
|
96
|
+
}));
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
resolveExistingSource(path) {
|
|
101
|
+
for (const candidate of sourceCandidates(path)) {
|
|
102
|
+
if (this.sourceBundle[candidate] !== undefined || existsSync(join(this.manifest.root, candidate)))
|
|
103
|
+
return candidate;
|
|
104
|
+
}
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
function sourceCandidates(path) {
|
|
109
|
+
const normalized = normalizeSourcePath(path);
|
|
110
|
+
if (extname(normalized))
|
|
111
|
+
return [normalized];
|
|
112
|
+
return [
|
|
113
|
+
normalized,
|
|
114
|
+
`${normalized}.ts`,
|
|
115
|
+
`${normalized}.tsx`,
|
|
116
|
+
`${normalized}.js`,
|
|
117
|
+
`${normalized}.mjs`,
|
|
118
|
+
`${normalized}.json`,
|
|
119
|
+
`${normalized}.md`,
|
|
120
|
+
posix.join(normalized, "index.ts"),
|
|
121
|
+
posix.join(normalized, "index.js")
|
|
122
|
+
];
|
|
123
|
+
}
|
|
124
|
+
function loaderFor(path) {
|
|
125
|
+
const extension = extname(path);
|
|
126
|
+
if (extension === ".ts")
|
|
127
|
+
return "ts";
|
|
128
|
+
if (extension === ".tsx")
|
|
129
|
+
return "tsx";
|
|
130
|
+
if (extension === ".json")
|
|
131
|
+
return "json";
|
|
132
|
+
if (extension === ".md")
|
|
133
|
+
return "text";
|
|
134
|
+
return "js";
|
|
135
|
+
}
|
|
136
|
+
function isRelativeSpecifier(specifier) {
|
|
137
|
+
return specifier.startsWith("./") || specifier.startsWith("../");
|
|
138
|
+
}
|
|
139
|
+
function isAbsoluteSourceSpecifier(specifier) {
|
|
140
|
+
return specifier.startsWith("/");
|
|
141
|
+
}
|
|
142
|
+
function normalizeSourcePath(path) {
|
|
143
|
+
// esbuild hands plugins a "./"-prefixed entry path when the entry resolves
|
|
144
|
+
// against the working directory (dev-server mode); bundle keys never carry
|
|
145
|
+
// that prefix, so strip it alongside Windows separators and absolute roots.
|
|
146
|
+
return path.replace(/\\/g, "/").replace(/^(\.\/)+/, "").replace(/^\/+/, "");
|
|
147
|
+
}
|
|
148
|
+
function safeCacheName(path) {
|
|
149
|
+
return path.replace(/[^A-Za-z0-9._-]/g, "_").slice(0, 96);
|
|
150
|
+
}
|
|
151
|
+
/** Sibling artifact dir of the agent root, dual-reading both dir spellings. */
|
|
152
|
+
function defaultModuleCacheRoot(manifestRoot) {
|
|
153
|
+
const parent = dirname(manifestRoot);
|
|
154
|
+
const dirName = resolveArtifactDirName(parent, {
|
|
155
|
+
exists: (parentDir, name) => existsSync(join(parentDir, name)),
|
|
156
|
+
defaultName: ARTIFACT_DIR_NAME
|
|
157
|
+
});
|
|
158
|
+
return join(parent, dirName, "module-cache");
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=source-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-loader.js","sourceRoot":"","sources":["../src/source-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { CheckpointRecord, CheckpointRetentionOptions, CheckpointRetentionResult, MemoryDocument, MemoryScope, RunRecord, SandboxSyncJobInput, SandboxSyncJobPatch, SandboxSyncJobRecord } from "./state.js";
|
|
2
|
+
/**
|
|
3
|
+
* Shared pure helpers and constants used by the in-memory state store
|
|
4
|
+
* facets in `in-memory-run-store.ts`, `in-memory-sandbox-session-store.ts`
|
|
5
|
+
* and `in-memory-small-stores.ts`.
|
|
6
|
+
*/
|
|
7
|
+
export declare function timestamp(): string;
|
|
8
|
+
export declare const noPersist: () => Promise<void>;
|
|
9
|
+
export declare const ACTIVE_RUN_STATUSES: Set<string>;
|
|
10
|
+
export declare const TERMINAL_RUN_STATUSES: Set<string>;
|
|
11
|
+
export declare function positiveLimit(value: unknown, fallback: number): number;
|
|
12
|
+
export declare function emptyCheckpointRetentionReasons(): CheckpointRetentionResult["byReason"];
|
|
13
|
+
export declare function checkpointNowMs(now: CheckpointRetentionOptions["now"]): number;
|
|
14
|
+
export declare function terminalCheckpointTtlMs(run: RunRecord, options: CheckpointRetentionOptions): number | undefined;
|
|
15
|
+
export declare function isScheduledRun(run: RunRecord): boolean;
|
|
16
|
+
export declare function checkpointApproxBytes(checkpoint: CheckpointRecord): number;
|
|
17
|
+
export declare function memoryKey(scope: MemoryScope, path: string): string;
|
|
18
|
+
export declare function memoryEmbeddingKey(scope: MemoryScope, path: string, model: string): string;
|
|
19
|
+
export declare function memoryScopeMatches(requested: MemoryScope, candidate: MemoryScope): boolean;
|
|
20
|
+
export declare function normalizeMemoryPath(path: string): string;
|
|
21
|
+
export declare function memoryBodyText(document: MemoryDocument): string;
|
|
22
|
+
export declare function memorySnippet(body: string, query: string, maxLength?: number): string;
|
|
23
|
+
export declare function cosineSimilarity(left: number[], right: number[]): number;
|
|
24
|
+
export declare function isSandboxSyncJobDue(job: SandboxSyncJobRecord, now: Date): boolean;
|
|
25
|
+
export declare function sandboxSyncRetryDelayMs(attemptCount: number): number;
|
|
26
|
+
export declare function createSandboxSyncJobRecord(input: SandboxSyncJobInput): SandboxSyncJobRecord;
|
|
27
|
+
export declare function applySandboxSyncJobPatch(current: SandboxSyncJobRecord, patch: SandboxSyncJobPatch): SandboxSyncJobRecord;
|
|
28
|
+
//# sourceMappingURL=state-store-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-store-helpers.d.ts","sourceRoot":"","sources":["../src/state-store-helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,0BAA0B,EAC1B,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AAEH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,eAAO,MAAM,SAAS,QAAa,OAAO,CAAC,IAAI,CAAc,CAAC;AAC9D,eAAO,MAAM,mBAAmB,aAAsH,CAAC;AACvJ,eAAO,MAAM,qBAAqB,aAAgD,CAAC;AAEnF,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wBAAgB,+BAA+B,IAAI,yBAAyB,CAAC,UAAU,CAAC,CAKvF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,0BAA0B,CAAC,KAAK,CAAC,GAAG,MAAM,CAI9E;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,0BAA0B,GAAG,MAAM,GAAG,SAAS,CAK/G;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAMtD;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,gBAAgB,GAAG,MAAM,CAE1E;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1F;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,GAAG,OAAO,CAS1F;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAE/D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,MAAM,CAOlF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAexE;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAIjF;AAED,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAGpE;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAwB3F;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAWxH"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
/**
|
|
3
|
+
* Shared pure helpers and constants used by the in-memory state store
|
|
4
|
+
* facets in `in-memory-run-store.ts`, `in-memory-sandbox-session-store.ts`
|
|
5
|
+
* and `in-memory-small-stores.ts`.
|
|
6
|
+
*/
|
|
7
|
+
export function timestamp() {
|
|
8
|
+
return new Date().toISOString();
|
|
9
|
+
}
|
|
10
|
+
export const noPersist = async () => undefined;
|
|
11
|
+
export const ACTIVE_RUN_STATUSES = new Set(["created", "running", "waiting_for_approval", "waiting_for_input", "waiting_for_connection", "suspended"]);
|
|
12
|
+
export const TERMINAL_RUN_STATUSES = new Set(["completed", "failed", "cancelled"]);
|
|
13
|
+
export function positiveLimit(value, fallback) {
|
|
14
|
+
return typeof value === "number" && Number.isFinite(value) && value > 0 ? Math.floor(value) : fallback;
|
|
15
|
+
}
|
|
16
|
+
export function emptyCheckpointRetentionReasons() {
|
|
17
|
+
return {
|
|
18
|
+
active_compaction: { rows: 0, bytes: 0 },
|
|
19
|
+
terminal_ttl: { rows: 0, bytes: 0 }
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export function checkpointNowMs(now) {
|
|
23
|
+
if (now instanceof Date)
|
|
24
|
+
return now.getTime();
|
|
25
|
+
if (typeof now === "string")
|
|
26
|
+
return Date.parse(now);
|
|
27
|
+
return Date.now();
|
|
28
|
+
}
|
|
29
|
+
export function terminalCheckpointTtlMs(run, options) {
|
|
30
|
+
if (isScheduledRun(run) && options.scheduledRunTtlMs !== undefined)
|
|
31
|
+
return positiveLimit(options.scheduledRunTtlMs, 0);
|
|
32
|
+
if (run.status === "failed" && options.failedRunTtlMs !== undefined)
|
|
33
|
+
return positiveLimit(options.failedRunTtlMs, 0);
|
|
34
|
+
if (options.terminalTtlMs !== undefined)
|
|
35
|
+
return positiveLimit(options.terminalTtlMs, 0);
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
export function isScheduledRun(run) {
|
|
39
|
+
if (run.input.channel === "schedule")
|
|
40
|
+
return true;
|
|
41
|
+
const metadata = typeof run.input.metadata === "object" && run.input.metadata !== null && !Array.isArray(run.input.metadata)
|
|
42
|
+
? run.input.metadata
|
|
43
|
+
: undefined;
|
|
44
|
+
return typeof metadata?.schedule === "string" || typeof metadata?.scheduleId === "string";
|
|
45
|
+
}
|
|
46
|
+
export function checkpointApproxBytes(checkpoint) {
|
|
47
|
+
return Buffer.byteLength(JSON.stringify(checkpoint.data ?? {}));
|
|
48
|
+
}
|
|
49
|
+
export function memoryKey(scope, path) {
|
|
50
|
+
return `${scope.agentScope}:${scope.userId ?? "*"}:${scope.conversationId ?? "*"}:${scope.projectId ?? "*"}:${normalizeMemoryPath(path)}`;
|
|
51
|
+
}
|
|
52
|
+
export function memoryEmbeddingKey(scope, path, model) {
|
|
53
|
+
return `${memoryKey(scope, path)}:${model}`;
|
|
54
|
+
}
|
|
55
|
+
export function memoryScopeMatches(requested, candidate) {
|
|
56
|
+
if (candidate.agentScope !== requested.agentScope)
|
|
57
|
+
return false;
|
|
58
|
+
if (candidate.userId && requested.userId && candidate.userId !== requested.userId)
|
|
59
|
+
return false;
|
|
60
|
+
if (candidate.userId && !requested.userId)
|
|
61
|
+
return false;
|
|
62
|
+
if (candidate.conversationId && requested.conversationId && candidate.conversationId !== requested.conversationId)
|
|
63
|
+
return false;
|
|
64
|
+
if (candidate.conversationId && !requested.conversationId)
|
|
65
|
+
return false;
|
|
66
|
+
if (candidate.projectId && requested.projectId && candidate.projectId !== requested.projectId)
|
|
67
|
+
return false;
|
|
68
|
+
if (candidate.projectId && !requested.projectId)
|
|
69
|
+
return false;
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
export function normalizeMemoryPath(path) {
|
|
73
|
+
const clean = path.replace(/\\/g, "/").replace(/\/+/g, "/").trim();
|
|
74
|
+
if (!clean || clean === "/")
|
|
75
|
+
return "";
|
|
76
|
+
const absolute = clean.startsWith("/") ? clean : `/memory/${clean}`;
|
|
77
|
+
return absolute.startsWith("/memory/") || absolute === "/memory" ? absolute : `/memory${absolute}`;
|
|
78
|
+
}
|
|
79
|
+
export function memoryBodyText(document) {
|
|
80
|
+
return typeof document.body === "string" ? document.body : "";
|
|
81
|
+
}
|
|
82
|
+
export function memorySnippet(body, query, maxLength = 320) {
|
|
83
|
+
if (!body)
|
|
84
|
+
return "";
|
|
85
|
+
const lower = body.toLowerCase();
|
|
86
|
+
const index = query ? lower.indexOf(query.toLowerCase()) : -1;
|
|
87
|
+
const start = index >= 0 ? Math.max(0, index - 80) : 0;
|
|
88
|
+
const snippet = body.slice(start, start + maxLength);
|
|
89
|
+
return `${start > 0 ? "..." : ""}${snippet}${start + maxLength < body.length ? "..." : ""}`;
|
|
90
|
+
}
|
|
91
|
+
export function cosineSimilarity(left, right) {
|
|
92
|
+
const length = Math.min(left.length, right.length);
|
|
93
|
+
if (length === 0)
|
|
94
|
+
return 0;
|
|
95
|
+
let dot = 0;
|
|
96
|
+
let leftNorm = 0;
|
|
97
|
+
let rightNorm = 0;
|
|
98
|
+
for (let index = 0; index < length; index += 1) {
|
|
99
|
+
const a = left[index] ?? 0;
|
|
100
|
+
const b = right[index] ?? 0;
|
|
101
|
+
dot += a * b;
|
|
102
|
+
leftNorm += a * a;
|
|
103
|
+
rightNorm += b * b;
|
|
104
|
+
}
|
|
105
|
+
if (!leftNorm || !rightNorm)
|
|
106
|
+
return 0;
|
|
107
|
+
return dot / (Math.sqrt(leftNorm) * Math.sqrt(rightNorm));
|
|
108
|
+
}
|
|
109
|
+
export function isSandboxSyncJobDue(job, now) {
|
|
110
|
+
if (job.status !== "pending" && job.status !== "failed")
|
|
111
|
+
return false;
|
|
112
|
+
if (job.attemptCount >= job.maxAttempts)
|
|
113
|
+
return false;
|
|
114
|
+
return Date.parse(job.nextAttemptAt) <= now.getTime();
|
|
115
|
+
}
|
|
116
|
+
export function sandboxSyncRetryDelayMs(attemptCount) {
|
|
117
|
+
const bounded = Math.max(1, Math.min(8, attemptCount));
|
|
118
|
+
return Math.min(15 * 60_000, 2 ** (bounded - 1) * 1_000);
|
|
119
|
+
}
|
|
120
|
+
export function createSandboxSyncJobRecord(input) {
|
|
121
|
+
const now = timestamp();
|
|
122
|
+
const record = {
|
|
123
|
+
runId: input.runId,
|
|
124
|
+
sandboxId: input.sandboxId,
|
|
125
|
+
status: input.status,
|
|
126
|
+
idempotencyKey: input.idempotencyKey,
|
|
127
|
+
reason: input.reason,
|
|
128
|
+
manifest: input.manifest,
|
|
129
|
+
attemptCount: input.attemptCount ?? 0,
|
|
130
|
+
maxAttempts: input.maxAttempts ?? 5,
|
|
131
|
+
nextAttemptAt: input.nextAttemptAt ?? now,
|
|
132
|
+
metadata: input.metadata ?? {},
|
|
133
|
+
id: randomUUID(),
|
|
134
|
+
createdAt: now,
|
|
135
|
+
updatedAt: now
|
|
136
|
+
};
|
|
137
|
+
if (input.error)
|
|
138
|
+
record.error = input.error;
|
|
139
|
+
if (input.leaseToken)
|
|
140
|
+
record.leaseToken = input.leaseToken;
|
|
141
|
+
if (input.leaseExpiresAt)
|
|
142
|
+
record.leaseExpiresAt = input.leaseExpiresAt;
|
|
143
|
+
if (input.completedAt)
|
|
144
|
+
record.completedAt = input.completedAt;
|
|
145
|
+
if (input.failedAt)
|
|
146
|
+
record.failedAt = input.failedAt;
|
|
147
|
+
if (input.lastError)
|
|
148
|
+
record.lastError = input.lastError;
|
|
149
|
+
return record;
|
|
150
|
+
}
|
|
151
|
+
export function applySandboxSyncJobPatch(current, patch) {
|
|
152
|
+
const updated = { ...current, updatedAt: timestamp() };
|
|
153
|
+
const optionalKeys = new Set(["error", "leaseToken", "leaseExpiresAt", "completedAt", "failedAt", "lastError"]);
|
|
154
|
+
for (const [key, value] of Object.entries(patch)) {
|
|
155
|
+
if (value === undefined) {
|
|
156
|
+
if (optionalKeys.has(key))
|
|
157
|
+
delete updated[key];
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
updated[key] = value;
|
|
161
|
+
}
|
|
162
|
+
return updated;
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=state-store-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-store-helpers.js","sourceRoot":"","sources":["../src/state-store-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type ResolvedStateAdapter, type StateAdapter, type StateStores } from "./state.js";
|
|
2
|
+
export * from "./state-store-helpers.js";
|
|
3
|
+
export * from "./in-memory-run-store.js";
|
|
4
|
+
export * from "./in-memory-conversation-turn-store.js";
|
|
5
|
+
export * from "./in-memory-sandbox-session-store.js";
|
|
6
|
+
export * from "./in-memory-small-stores.js";
|
|
7
|
+
export * from "./in-memory-usage-store.js";
|
|
8
|
+
export interface NormalizedRuntimeState {
|
|
9
|
+
state: ResolvedStateAdapter;
|
|
10
|
+
/** Names of optional `StateStores` facets replaced by in-memory fallbacks. */
|
|
11
|
+
degradedFacets: string[];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Builds a full `StateAdapter` from a facet-shaped `StateStores` object.
|
|
15
|
+
* `runs` is required; every missing optional facet falls back to a
|
|
16
|
+
* non-durable in-memory implementation and is reported in `degradedFacets`.
|
|
17
|
+
*/
|
|
18
|
+
export declare function composeStateStores(stores: StateStores): NormalizedRuntimeState;
|
|
19
|
+
/**
|
|
20
|
+
* Normalizes `RuntimeOptions.state` into a full `StateAdapter`. Monolithic
|
|
21
|
+
* adapters (detected by `createRun` + `appendEvent`) pass through untouched;
|
|
22
|
+
* facet-shaped `StateStores` are composed with in-memory fallbacks.
|
|
23
|
+
*/
|
|
24
|
+
export declare function normalizeRuntimeState(state: StateAdapter | StateStores): NormalizedRuntimeState;
|
|
25
|
+
//# sourceMappingURL=state-stores.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-stores.d.ts","sourceRoot":"","sources":["../src/state-stores.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,oBAAoB,EAKzB,KAAK,YAAY,EACjB,KAAK,WAAW,EAEjB,MAAM,YAAY,CAAC;AAapB,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAsF3C,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,8EAA8E;IAC9E,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,sBAAsB,CA2B9E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW,GAAG,sBAAsB,CAgC/F"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { isRunStore, isConversationTurnStore, isRuntimeSettingsStore, isStateAdapter } from "./state.js";
|
|
2
|
+
import { InMemoryConversationTurnStore } from "./in-memory-conversation-turn-store.js";
|
|
3
|
+
import { InMemorySandboxSessionStore } from "./in-memory-sandbox-session-store.js";
|
|
4
|
+
import { InMemoryUsageStore } from "./in-memory-usage-store.js";
|
|
5
|
+
import { InMemoryConversationStore, InMemoryFileIndexStore, InMemoryMemoryStateStore, InMemoryRuntimeSettingsStore, InMemoryScheduleStateStore } from "./in-memory-small-stores.js";
|
|
6
|
+
export * from "./state-store-helpers.js";
|
|
7
|
+
export * from "./in-memory-run-store.js";
|
|
8
|
+
export * from "./in-memory-conversation-turn-store.js";
|
|
9
|
+
export * from "./in-memory-sandbox-session-store.js";
|
|
10
|
+
export * from "./in-memory-small-stores.js";
|
|
11
|
+
export * from "./in-memory-usage-store.js";
|
|
12
|
+
/**
|
|
13
|
+
* Composition root for the in-memory state capability facets defined in
|
|
14
|
+
* `in-memory-run-store.ts`, `in-memory-sandbox-session-store.ts` and
|
|
15
|
+
* `in-memory-small-stores.ts`. They are the slices `InMemoryStateAdapter`
|
|
16
|
+
* composes and the non-durable fallbacks used when a `StateStores`
|
|
17
|
+
* configuration omits an optional facet.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Per-facet method tables used to build the composite adapter. Optional
|
|
21
|
+
* methods are only exposed when the underlying facet implements them so
|
|
22
|
+
* feature detection (e.g. the durable delivery queue) keeps working.
|
|
23
|
+
*/
|
|
24
|
+
const RUN_STORE_METHODS = [
|
|
25
|
+
"createRun", "updateRun", "getRun", "listRuns", "appendEvent", "listEvents",
|
|
26
|
+
"createToolCall", "updateToolCall", "listToolCalls", "createCheckpoint", "listCheckpoints",
|
|
27
|
+
"compactCheckpoints",
|
|
28
|
+
"createDelivery", "updateDelivery", "listDeliveries",
|
|
29
|
+
"leaseDueDeliveries", "completeDeliverySend", "failDeliverySend", "recoverExpiredDeliveries",
|
|
30
|
+
"listRunsByStatus", "reserveIdempotencyKey", "touchRun", "requestRunControl", "settleRunControl", "close"
|
|
31
|
+
];
|
|
32
|
+
const CONVERSATION_STORE_METHODS = [
|
|
33
|
+
"upsertConversation", "getConversation", "listConversations", "updateConversation",
|
|
34
|
+
"listRecentConversationsBySubject", "appendMessage", "listRecentMessages", "listMessages"
|
|
35
|
+
];
|
|
36
|
+
const CONVERSATION_TURN_STORE_METHODS = [
|
|
37
|
+
"enqueueConversationTurn", "leaseNextConversationTurn", "attachConversationTurnRun",
|
|
38
|
+
"settleConversationTurn", "settleConversationTurnByRunId", "retryConversationTurn",
|
|
39
|
+
"recoverExpiredConversationTurns", "listConversationTurns"
|
|
40
|
+
];
|
|
41
|
+
const SCHEDULE_STATE_STORE_METHODS = [
|
|
42
|
+
"registerSchedule", "recordScheduleRun"
|
|
43
|
+
];
|
|
44
|
+
const FILE_INDEX_STORE_METHODS = [
|
|
45
|
+
"recordFileIndex", "listFileIndexes"
|
|
46
|
+
];
|
|
47
|
+
const USAGE_STORE_METHODS = [
|
|
48
|
+
"recordUsage", "listUsage", "queryUsage", "summarizeUsage"
|
|
49
|
+
];
|
|
50
|
+
const SANDBOX_SESSION_STORE_METHODS = [
|
|
51
|
+
"recordSandboxSnapshot", "upsertSandboxSession", "getSandboxSession", "listSandboxSessions", "updateSandboxSession",
|
|
52
|
+
"createSandboxSyncJob", "updateSandboxSyncJob", "listSandboxSyncJobs", "enqueueSandboxSyncJob", "leaseSandboxSyncJobs",
|
|
53
|
+
"completeSandboxSyncJob", "failSandboxSyncJob", "recoverExpiredSandboxSyncJobs"
|
|
54
|
+
];
|
|
55
|
+
const MEMORY_STATE_STORE_METHODS = [
|
|
56
|
+
"supportsMemoryEmbeddings",
|
|
57
|
+
"listMemoryDocuments", "searchMemoryDocuments", "getMemoryDocument", "upsertMemoryDocument", "deleteMemoryDocument",
|
|
58
|
+
"listMemoryDocumentsNeedingEmbeddings", "upsertMemoryEmbedding", "searchMemoryEmbeddings", "markMemoryEmbeddingsStale"
|
|
59
|
+
];
|
|
60
|
+
const RUNTIME_SETTINGS_STORE_METHODS = [
|
|
61
|
+
"getSetting", "setSetting", "appendRuntimeControlEvent", "listRuntimeControlEvents"
|
|
62
|
+
];
|
|
63
|
+
const _runStoreComplete = true;
|
|
64
|
+
const _conversationStoreComplete = true;
|
|
65
|
+
const _conversationTurnStoreComplete = true;
|
|
66
|
+
const _scheduleStoreComplete = true;
|
|
67
|
+
const _fileIndexStoreComplete = true;
|
|
68
|
+
const _usageStoreComplete = true;
|
|
69
|
+
const _sandboxStoreComplete = true;
|
|
70
|
+
const _memoryStoreComplete = true;
|
|
71
|
+
const _settingsStoreComplete = true;
|
|
72
|
+
void _runStoreComplete;
|
|
73
|
+
void _conversationStoreComplete;
|
|
74
|
+
void _conversationTurnStoreComplete;
|
|
75
|
+
void _scheduleStoreComplete;
|
|
76
|
+
void _fileIndexStoreComplete;
|
|
77
|
+
void _usageStoreComplete;
|
|
78
|
+
void _sandboxStoreComplete;
|
|
79
|
+
void _memoryStoreComplete;
|
|
80
|
+
void _settingsStoreComplete;
|
|
81
|
+
function bindFacetMethods(target, facet, methods) {
|
|
82
|
+
for (const name of methods) {
|
|
83
|
+
const fn = facet[name];
|
|
84
|
+
if (typeof fn === "function")
|
|
85
|
+
target[name] = fn.bind(facet);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Builds a full `StateAdapter` from a facet-shaped `StateStores` object.
|
|
90
|
+
* `runs` is required; every missing optional facet falls back to a
|
|
91
|
+
* non-durable in-memory implementation and is reported in `degradedFacets`.
|
|
92
|
+
*/
|
|
93
|
+
export function composeStateStores(stores) {
|
|
94
|
+
if (!isRunStore(stores.runs)) {
|
|
95
|
+
throw new Error("StateStores requires a `runs` facet implementing RunStore (createRun, updateRun, appendEvent, tool calls, checkpoints, deliveries, reserveIdempotencyKey).");
|
|
96
|
+
}
|
|
97
|
+
const degradedFacets = [];
|
|
98
|
+
const facet = (name, provided, fallback) => {
|
|
99
|
+
if (provided)
|
|
100
|
+
return provided;
|
|
101
|
+
degradedFacets.push(name);
|
|
102
|
+
return fallback();
|
|
103
|
+
};
|
|
104
|
+
const target = {};
|
|
105
|
+
bindFacetMethods(target, stores.runs, RUN_STORE_METHODS);
|
|
106
|
+
bindFacetMethods(target, facet("conversations", stores.conversations, () => new InMemoryConversationStore()), CONVERSATION_STORE_METHODS);
|
|
107
|
+
bindFacetMethods(target, facet("conversationTurns", stores.conversationTurns, () => new InMemoryConversationTurnStore()), CONVERSATION_TURN_STORE_METHODS);
|
|
108
|
+
bindFacetMethods(target, facet("schedules", stores.schedules, () => new InMemoryScheduleStateStore()), SCHEDULE_STATE_STORE_METHODS);
|
|
109
|
+
bindFacetMethods(target, facet("files", stores.files, () => new InMemoryFileIndexStore()), FILE_INDEX_STORE_METHODS);
|
|
110
|
+
bindFacetMethods(target, facet("usage", stores.usage, () => new InMemoryUsageStore()), USAGE_STORE_METHODS);
|
|
111
|
+
bindFacetMethods(target, facet("sandboxSessions", stores.sandboxSessions, () => new InMemorySandboxSessionStore()), SANDBOX_SESSION_STORE_METHODS);
|
|
112
|
+
bindFacetMethods(target, facet("memory", stores.memory, () => new InMemoryMemoryStateStore()), MEMORY_STATE_STORE_METHODS);
|
|
113
|
+
bindFacetMethods(target, facet("settings", stores.settings, () => new InMemoryRuntimeSettingsStore()), RUNTIME_SETTINGS_STORE_METHODS);
|
|
114
|
+
return { state: target, degradedFacets };
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Normalizes `RuntimeOptions.state` into a full `StateAdapter`. Monolithic
|
|
118
|
+
* adapters (detected by `createRun` + `appendEvent`) pass through untouched;
|
|
119
|
+
* facet-shaped `StateStores` are composed with in-memory fallbacks.
|
|
120
|
+
*/
|
|
121
|
+
export function normalizeRuntimeState(state) {
|
|
122
|
+
if (isStateAdapter(state)) {
|
|
123
|
+
if (isRuntimeSettingsStore(state) && isConversationTurnStore(state)) {
|
|
124
|
+
return { state, degradedFacets: [] };
|
|
125
|
+
}
|
|
126
|
+
// Preserve backward compatibility for monolithic adapters compiled before
|
|
127
|
+
// RuntimeSettingsStore existed. Bind every known method back to the
|
|
128
|
+
// original instance, then fill only the missing settings facet in memory.
|
|
129
|
+
const target = {};
|
|
130
|
+
for (const methods of [
|
|
131
|
+
RUN_STORE_METHODS,
|
|
132
|
+
CONVERSATION_STORE_METHODS,
|
|
133
|
+
SCHEDULE_STATE_STORE_METHODS,
|
|
134
|
+
FILE_INDEX_STORE_METHODS,
|
|
135
|
+
USAGE_STORE_METHODS,
|
|
136
|
+
SANDBOX_SESSION_STORE_METHODS,
|
|
137
|
+
MEMORY_STATE_STORE_METHODS
|
|
138
|
+
])
|
|
139
|
+
bindFacetMethods(target, state, methods);
|
|
140
|
+
const degradedFacets = [];
|
|
141
|
+
if (isRuntimeSettingsStore(state))
|
|
142
|
+
bindFacetMethods(target, state, RUNTIME_SETTINGS_STORE_METHODS);
|
|
143
|
+
else {
|
|
144
|
+
bindFacetMethods(target, new InMemoryRuntimeSettingsStore(), RUNTIME_SETTINGS_STORE_METHODS);
|
|
145
|
+
degradedFacets.push("settings");
|
|
146
|
+
}
|
|
147
|
+
if (isConversationTurnStore(state))
|
|
148
|
+
bindFacetMethods(target, state, CONVERSATION_TURN_STORE_METHODS);
|
|
149
|
+
else {
|
|
150
|
+
bindFacetMethods(target, new InMemoryConversationTurnStore(), CONVERSATION_TURN_STORE_METHODS);
|
|
151
|
+
degradedFacets.push("conversationTurns");
|
|
152
|
+
}
|
|
153
|
+
return { state: target, degradedFacets };
|
|
154
|
+
}
|
|
155
|
+
return composeStateStores(state);
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=state-stores.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-stores.js","sourceRoot":"","sources":["../src/state-stores.ts"],"names":[],"mappings":"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"}
|