@odla-ai/harness 0.5.2 → 0.7.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/README.md +12 -12
- package/dist/{chunk-5HX5LWTG.js → chunk-QZXCQSPZ.js} +27 -13
- package/dist/chunk-QZXCQSPZ.js.map +1 -0
- package/dist/code-runtime-cli.cjs +27 -13
- package/dist/code-runtime-cli.cjs.map +1 -1
- package/dist/code-runtime-cli.js +4 -4
- package/dist/code-runtime-cli.js.map +1 -1
- package/dist/node.cjs +27 -13
- package/dist/node.cjs.map +1 -1
- package/dist/node.d.cts +23 -12
- package/dist/node.d.ts +23 -12
- package/dist/node.js +3 -3
- package/package.json +1 -1
- package/dist/chunk-5HX5LWTG.js.map +0 -1
package/dist/code-runtime-cli.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
CODE_RUNTIME_PROTOCOL_VERSION,
|
|
4
|
-
CodePiRuntimeEngine,
|
|
5
4
|
CodeRuntimeReconciler,
|
|
5
|
+
TheseusRuntimeEngine,
|
|
6
6
|
assertCodeBuildRecipe,
|
|
7
7
|
createCodeRuntimeControlClient,
|
|
8
8
|
runCodeRuntimeHeartbeatLoop
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-QZXCQSPZ.js";
|
|
10
10
|
import {
|
|
11
11
|
assertPinnedImage,
|
|
12
12
|
selectContainerEngine
|
|
@@ -85,8 +85,8 @@ async function main() {
|
|
|
85
85
|
};
|
|
86
86
|
const controller = new AbortController();
|
|
87
87
|
for (const signal of ["SIGINT", "SIGTERM"]) process.once(signal, () => controller.abort(signal));
|
|
88
|
-
const control = createCodeRuntimeControlClient({ endpoint: options.endpoint, token
|
|
89
|
-
const commandEngine = new
|
|
88
|
+
const control = createCodeRuntimeControlClient({ endpoint: options.endpoint, token });
|
|
89
|
+
const commandEngine = new TheseusRuntimeEngine({
|
|
90
90
|
control,
|
|
91
91
|
engine,
|
|
92
92
|
recipes: policy.recipes,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/code-runtime-cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { cpus, totalmem } from \"node:os\";\nimport { readFile } from \"node:fs/promises\";\nimport {\n CODE_RUNTIME_PROTOCOL_VERSION,\n CodeRuntimeReconciler,\n createCodeRuntimeControlClient,\n runCodeRuntimeHeartbeatLoop,\n type CodeRuntimeCapabilities,\n} from \"./code-runtime\";\nimport {
|
|
1
|
+
{"version":3,"sources":["../src/code-runtime-cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { cpus, totalmem } from \"node:os\";\nimport { readFile } from \"node:fs/promises\";\nimport {\n CODE_RUNTIME_PROTOCOL_VERSION,\n CodeRuntimeReconciler,\n createCodeRuntimeControlClient,\n runCodeRuntimeHeartbeatLoop,\n type CodeRuntimeCapabilities,\n} from \"./code-runtime\";\nimport { TheseusRuntimeEngine } from \"./code-runtime-engine\";\nimport { assertPinnedImage, selectContainerEngine, type ContainerEngine } from \"./container\";\nimport { assertCodeBuildRecipe } from \"./recipe-container\";\nimport type { CodeBuildRecipe } from \"./code-tool-types\";\n\nconst VERSION = \"0.1.0\";\n\nfunction usage(): string {\n return `Usage:\n ODLA_CODE_HOST_TOKEN=odla_code_host_... odla-code-runtime \\\\\n --endpoint https://odla.ai --image registry/odla-pi@sha256:... \\\\\n --build-policy ./odla-code-build.json [--engine auto|container|podman|docker] [--once]\n\nThe host token is read only from ODLA_CODE_HOST_TOKEN. The runtime makes\noutbound HTTPS heartbeats and never opens a listener.`;\n}\n\nfunction parse(argv: string[]): {\n endpoint: string; engine: ContainerEngine | \"auto\"; image: string;\n buildPolicy: string; heartbeatMs: number; once: boolean;\n} {\n const values = new Map<string, string>();\n const flags = new Set<string>();\n for (let index = 0; index < argv.length; index++) {\n const arg = argv[index]!;\n if (arg === \"--once\") { flags.add(arg); continue; }\n if (!arg.startsWith(\"--\") || !argv[index + 1]) throw new TypeError(usage());\n values.set(arg, argv[++index]!);\n }\n const endpoint = values.get(\"--endpoint\");\n const image = values.get(\"--image\");\n const buildPolicy = values.get(\"--build-policy\");\n const engine = values.get(\"--engine\") ?? \"auto\";\n const heartbeatMs = Number(values.get(\"--heartbeat-ms\") ?? 15_000);\n if (!endpoint || !image || !buildPolicy || ![\"auto\", \"container\", \"podman\", \"docker\"].includes(engine)) {\n throw new TypeError(usage());\n }\n assertPinnedImage(image);\n if (!Number.isSafeInteger(heartbeatMs) || heartbeatMs < 1_000 || heartbeatMs > 300_000) {\n throw new TypeError(\"--heartbeat-ms must be an integer from 1000 to 300000\");\n }\n return { endpoint, image, buildPolicy, engine: engine as ContainerEngine | \"auto\",\n heartbeatMs, once: flags.has(\"--once\") };\n}\n\nasync function readPolicy(path: string): Promise<{\n recipes: CodeBuildRecipe[]; recipeAuthorization: \"registered_recipe\" | \"exact_approval\";\n}> {\n const value = JSON.parse(await readFile(path, \"utf8\")) as Record<string, unknown>;\n if (!value || Object.keys(value).some((key) => ![\"recipes\", \"recipeAuthorization\"].includes(key))\n || !Array.isArray(value.recipes) || !value.recipes.length\n || (value.recipeAuthorization !== undefined && value.recipeAuthorization !== \"registered_recipe\"\n && value.recipeAuthorization !== \"exact_approval\")) throw new TypeError(\"invalid Code build policy file\");\n const recipes = value.recipes as CodeBuildRecipe[];\n for (const recipe of recipes) assertCodeBuildRecipe(recipe);\n const recipeAuthorization = value.recipeAuthorization === \"exact_approval\"\n ? \"exact_approval\" : \"registered_recipe\";\n return { recipes, recipeAuthorization };\n}\n\nasync function main(): Promise<void> {\n const token = process.env.ODLA_CODE_HOST_TOKEN;\n if (!token) throw new TypeError(\"ODLA_CODE_HOST_TOKEN is required\");\n const options = parse(process.argv.slice(2));\n if (process.platform !== \"darwin\" && process.platform !== \"linux\") throw new TypeError(\"Code runtime requires macOS or Linux\");\n const engine = await selectContainerEngine(options.engine);\n const policy = await readPolicy(options.buildPolicy);\n const capabilities: CodeRuntimeCapabilities = {\n protocolVersion: CODE_RUNTIME_PROTOCOL_VERSION,\n platform: process.platform === \"darwin\" ? \"macos\" : \"linux\",\n arch: process.arch,\n engines: [engine],\n cpuCount: cpus().length,\n memoryBytes: totalmem(),\n };\n const controller = new AbortController();\n for (const signal of [\"SIGINT\", \"SIGTERM\"] as const) process.once(signal, () => controller.abort(signal));\n // The heartbeat stops on the process signal, but the client must remain able\n // to report the active attempt's terminal events during engine.close().\n const control = createCodeRuntimeControlClient({ endpoint: options.endpoint, token });\n const commandEngine = new TheseusRuntimeEngine({\n control, engine, recipes: policy.recipes,\n recipeAuthorization: policy.recipeAuthorization,\n onDiagnostic: (message) => process.stderr.write(`[odla-code-runtime] agent failed · ${message}\\n`),\n });\n const reconciler = new CodeRuntimeReconciler(control, commandEngine);\n try {\n await runCodeRuntimeHeartbeatLoop({\n control, runtimeVersion: VERSION, capabilities, heartbeatMs: options.heartbeatMs,\n once: options.once, signal: controller.signal,\n onSnapshot: async (snapshot) => {\n process.stderr.write(\n `[odla-code-runtime] host ${snapshot.host.hostId} online · ${snapshot.bindings.length} active binding(s) · ${snapshot.commands.length} command(s)\\n`,\n );\n if (options.once && snapshot.commands.length) {\n throw new TypeError(\"--once is diagnostic-only and refuses pending Code commands\");\n }\n await reconciler.reconcile(snapshot);\n },\n onRetry: (error, delayMs) => {\n process.stderr.write(\n `[odla-code-runtime] control plane unavailable; retrying in ${delayMs}ms · ${error instanceof Error ? error.message : String(error)}\\n`,\n );\n },\n });\n } finally { await commandEngine.close(); }\n}\n\nmain().catch((error) => {\n process.stderr.write(`${error instanceof Error ? error.message : String(error)}\\n`);\n process.exitCode = 1;\n});\n"],"mappings":"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","names":[]}
|
package/dist/node.cjs
CHANGED
|
@@ -21,7 +21,6 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
21
21
|
var node_exports = {};
|
|
22
22
|
__export(node_exports, {
|
|
23
23
|
CODE_RUNTIME_PROTOCOL_VERSION: () => CODE_RUNTIME_PROTOCOL_VERSION,
|
|
24
|
-
CodePiRuntimeEngine: () => CodePiRuntimeEngine,
|
|
25
24
|
CodeRuntimeCheckpointManager: () => CodeRuntimeCheckpointManager,
|
|
26
25
|
CodeRuntimeControlError: () => CodeRuntimeControlError,
|
|
27
26
|
CodeRuntimeReconciler: () => CodeRuntimeReconciler,
|
|
@@ -29,6 +28,7 @@ __export(node_exports, {
|
|
|
29
28
|
MAX_MEMORY_BODY: () => MAX_MEMORY_BODY,
|
|
30
29
|
MEASURED_PREMIUM: () => MEASURED_PREMIUM,
|
|
31
30
|
SYSTEM_PROMPT_FOR: () => SYSTEM_PROMPT_FOR,
|
|
31
|
+
TheseusRuntimeEngine: () => TheseusRuntimeEngine,
|
|
32
32
|
V1_SYSTEM_PROMPT: () => V1_SYSTEM_PROMPT,
|
|
33
33
|
V2_SYSTEM_PROMPT: () => V2_SYSTEM_PROMPT,
|
|
34
34
|
V3_SYSTEM_PROMPT: () => V3_SYSTEM_PROMPT,
|
|
@@ -1731,7 +1731,7 @@ var CodeRuntimeCheckpointManager = class {
|
|
|
1731
1731
|
await this.options.event(command, { type: "message", actor: "system", body: prepared.note }, active.conversationRefs).catch(() => void 0);
|
|
1732
1732
|
await active.workspace.cleanup();
|
|
1733
1733
|
await this.options.event(command, { type: "status", status: "checkpointed" }, active.conversationRefs).catch(() => void 0);
|
|
1734
|
-
return { status: "checkpointed", checkpoint: prepared.checkpoint, message: "
|
|
1734
|
+
return { status: "checkpointed", checkpoint: prepared.checkpoint, message: "Theseus stopped at a portable checkpoint" };
|
|
1735
1735
|
}
|
|
1736
1736
|
async acknowledged(command, result) {
|
|
1737
1737
|
if (command.kind !== "checkpoint_stop" || result.status !== "checkpointed") return false;
|
|
@@ -1973,7 +1973,7 @@ var import_ai2 = require("@odla-ai/ai");
|
|
|
1973
1973
|
var import_ai = require("@odla-ai/ai");
|
|
1974
1974
|
|
|
1975
1975
|
// src/code-agent-skill.ts
|
|
1976
|
-
var V1_SYSTEM_PROMPT = `You are
|
|
1976
|
+
var V1_SYSTEM_PROMPT = `You are Theseus, the coding agent inside an odla Code harness.
|
|
1977
1977
|
Use only the odla_read, odla_apply_git_diff, and odla_run_recipe tools.
|
|
1978
1978
|
For mutations, call odla_apply_git_diff with raw git diff text. It must start
|
|
1979
1979
|
with "diff --git a/<path> b/<path>", include matching "---" and "+++" file
|
|
@@ -2020,7 +2020,12 @@ function codeSkill(opts) {
|
|
|
2020
2020
|
{ lease: opts.lease, workspaceDir: opts.workspaceDir, signal },
|
|
2021
2021
|
{ requestId: `bench-${tool}-${++seq}`, tool, input }
|
|
2022
2022
|
);
|
|
2023
|
-
opts.onToolCall?.({
|
|
2023
|
+
opts.onToolCall?.({
|
|
2024
|
+
tool,
|
|
2025
|
+
ok: response2.ok,
|
|
2026
|
+
durationMs: Date.now() - startedAt,
|
|
2027
|
+
...response2.ok ? {} : { error: String(response2.content).slice(0, 300) }
|
|
2028
|
+
});
|
|
2024
2029
|
return { content: response2.content, isError: !response2.ok };
|
|
2025
2030
|
};
|
|
2026
2031
|
const read2 = {
|
|
@@ -2051,11 +2056,17 @@ function codeSkill(opts) {
|
|
|
2051
2056
|
};
|
|
2052
2057
|
const runRecipe = {
|
|
2053
2058
|
name: "odla_run_recipe",
|
|
2054
|
-
description:
|
|
2059
|
+
description: `Run one app-registered build or test recipe through CaMeL policy.${opts.recipeIds?.length ? ` Available recipes: ${opts.recipeIds.join(", ")}.` : ""}`,
|
|
2055
2060
|
inputSchema: {
|
|
2056
2061
|
type: "object",
|
|
2057
2062
|
required: ["recipeId"],
|
|
2058
|
-
properties: { recipeId: {
|
|
2063
|
+
properties: { recipeId: {
|
|
2064
|
+
type: "string",
|
|
2065
|
+
minLength: 1,
|
|
2066
|
+
maxLength: 120,
|
|
2067
|
+
pattern: "^[a-zA-Z0-9._:-]+$",
|
|
2068
|
+
...opts.recipeIds?.length ? { enum: [...opts.recipeIds] } : {}
|
|
2069
|
+
} },
|
|
2059
2070
|
additionalProperties: false
|
|
2060
2071
|
},
|
|
2061
2072
|
handler: (input, ctx) => call("sandbox.run_recipe", input, ctx.signal)
|
|
@@ -2139,6 +2150,7 @@ async function runCodeAgent(options) {
|
|
|
2139
2150
|
lease: options.lease,
|
|
2140
2151
|
workspaceDir: options.workspaceDir,
|
|
2141
2152
|
surface,
|
|
2153
|
+
...options.recipeIds ? { recipeIds: options.recipeIds } : {},
|
|
2142
2154
|
onToolCall: (call) => {
|
|
2143
2155
|
toolCalls.push(call);
|
|
2144
2156
|
options.onToolCall?.(call);
|
|
@@ -2169,7 +2181,7 @@ async function runCodeAgent(options) {
|
|
|
2169
2181
|
// src/code-runtime-attempt.ts
|
|
2170
2182
|
async function runCodeAgentAttempt(options) {
|
|
2171
2183
|
try {
|
|
2172
|
-
const surface = options.surface ?? "
|
|
2184
|
+
const surface = options.surface ?? "v3";
|
|
2173
2185
|
const { run } = await runCodeAgent({
|
|
2174
2186
|
inference: options.inference,
|
|
2175
2187
|
broker: options.broker,
|
|
@@ -2180,6 +2192,7 @@ async function runCodeAgentAttempt(options) {
|
|
|
2180
2192
|
// id only labels the request the control plane is about to rewrite.
|
|
2181
2193
|
model: "brokered",
|
|
2182
2194
|
surface,
|
|
2195
|
+
...options.recipeIds ? { recipeIds: options.recipeIds } : {},
|
|
2183
2196
|
...options.maxSteps === void 0 ? {} : { maxSteps: options.maxSteps },
|
|
2184
2197
|
...options.budget ? { budget: options.budget } : {},
|
|
2185
2198
|
...options.signal ? { signal: options.signal } : {},
|
|
@@ -3179,7 +3192,7 @@ var digestRuntimeValue = (value) => `sha256:${(0, import_node_crypto4.createHash
|
|
|
3179
3192
|
var runtimeErrorMessage = (value) => value instanceof Error ? value.message : String(value);
|
|
3180
3193
|
|
|
3181
3194
|
// src/code-runtime-engine.ts
|
|
3182
|
-
var
|
|
3195
|
+
var TheseusRuntimeEngine = class {
|
|
3183
3196
|
constructor(options) {
|
|
3184
3197
|
this.options = options;
|
|
3185
3198
|
this.#attempt = options.runAgentAttempt ?? runCodeAgentAttempt;
|
|
@@ -3265,7 +3278,7 @@ var CodePiRuntimeEngine = class {
|
|
|
3265
3278
|
await this.#failure(command, active, detail);
|
|
3266
3279
|
return null;
|
|
3267
3280
|
});
|
|
3268
|
-
return { status: "running", message: resume ? "
|
|
3281
|
+
return { status: "running", message: resume ? "Theseus resumed from a portable checkpoint" : "Theseus started" };
|
|
3269
3282
|
}
|
|
3270
3283
|
/**
|
|
3271
3284
|
* Pursue a goal: attempt, judge with the clean verifier, re-prompt from what
|
|
@@ -3353,7 +3366,7 @@ var CodePiRuntimeEngine = class {
|
|
|
3353
3366
|
await this.#failure(command, active, detail);
|
|
3354
3367
|
return null;
|
|
3355
3368
|
});
|
|
3356
|
-
return { status: "running", message: "
|
|
3369
|
+
return { status: "running", message: "Theseus accepted the owner prompt" };
|
|
3357
3370
|
}
|
|
3358
3371
|
async #runAttempt(command, metadata, active) {
|
|
3359
3372
|
const lease = fakeCodeLease(command, metadata);
|
|
@@ -3378,7 +3391,8 @@ var CodePiRuntimeEngine = class {
|
|
|
3378
3391
|
lease,
|
|
3379
3392
|
workspaceDir: active.workspace.workspaceDir,
|
|
3380
3393
|
prompt: metadata.prompt,
|
|
3381
|
-
signal: active.abort.signal
|
|
3394
|
+
signal: active.abort.signal,
|
|
3395
|
+
recipeIds: this.options.recipes.map((recipe2) => recipe2.id)
|
|
3382
3396
|
});
|
|
3383
3397
|
const closing = result.finalText.trim();
|
|
3384
3398
|
const completed = result.status === "completed" && Boolean(closing);
|
|
@@ -3442,7 +3456,7 @@ var CodePiRuntimeEngine = class {
|
|
|
3442
3456
|
}
|
|
3443
3457
|
}
|
|
3444
3458
|
async #diagnostic(command, active, value) {
|
|
3445
|
-
const detail = value.trim().slice(0, 2e3) || "
|
|
3459
|
+
const detail = value.trim().slice(0, 2e3) || "Theseus runtime failed";
|
|
3446
3460
|
this.options.onDiagnostic?.(detail);
|
|
3447
3461
|
await this.#event(
|
|
3448
3462
|
command,
|
|
@@ -3758,7 +3772,6 @@ async function installedDependencies(repoRoot) {
|
|
|
3758
3772
|
// Annotate the CommonJS export names for ESM import in node:
|
|
3759
3773
|
0 && (module.exports = {
|
|
3760
3774
|
CODE_RUNTIME_PROTOCOL_VERSION,
|
|
3761
|
-
CodePiRuntimeEngine,
|
|
3762
3775
|
CodeRuntimeCheckpointManager,
|
|
3763
3776
|
CodeRuntimeControlError,
|
|
3764
3777
|
CodeRuntimeReconciler,
|
|
@@ -3766,6 +3779,7 @@ async function installedDependencies(repoRoot) {
|
|
|
3766
3779
|
MAX_MEMORY_BODY,
|
|
3767
3780
|
MEASURED_PREMIUM,
|
|
3768
3781
|
SYSTEM_PROMPT_FOR,
|
|
3782
|
+
TheseusRuntimeEngine,
|
|
3769
3783
|
V1_SYSTEM_PROMPT,
|
|
3770
3784
|
V2_SYSTEM_PROMPT,
|
|
3771
3785
|
V3_SYSTEM_PROMPT,
|