agentic-engineering-harness 0.6.9 → 0.6.10

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.
@@ -1 +1 @@
1
- {"version":3,"file":"direct.js","sourceRoot":"","sources":["../../src/workers/direct.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"direct.js","sourceRoot":"","sources":["../../src/workers/direct.ts"],"names":[],"mappings":"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"}
@@ -17,30 +17,54 @@ export class PaseoWorkerExecutor {
17
17
  }
18
18
  try {
19
19
  const caps = await detectPaseoCapabilities(root);
20
- if (!caps.background)
21
- return { ok: false, message: `Installed Paseo${caps.version ? ` ${caps.version}` : ""} does not advertise background runs required by the compatibility fallback.` };
22
- return { ok: true, message: `Paseo detected${caps.version ? ` (${caps.version})` : ""}; @getpaseo/client is primary and the CLI remains available only as a compatibility path.` };
20
+ if (!caps.background) {
21
+ return {
22
+ ok: false,
23
+ message: `Installed Paseo${caps.version ? ` ${caps.version}` : ""} does not advertise background runs required by the compatibility fallback.`
24
+ };
25
+ }
26
+ return {
27
+ ok: true,
28
+ message: `Paseo detected${caps.version ? ` (${caps.version})` : ""}; @getpaseo/client is primary and the CLI remains available only as a compatibility path.`
29
+ };
23
30
  }
24
31
  catch (error) {
25
32
  return { ok: false, message: `Paseo capability probe failed: ${String(error)}` };
26
33
  }
27
34
  }
28
- async start(root, config, contract, selection) { return this.launch(root, config, contract, buildWorkerPrompt(contract, selection), selection); }
35
+ async start(root, config, contract, selection) {
36
+ return this.launch(root, config, contract, buildWorkerPrompt(contract, selection), selection);
37
+ }
29
38
  async repair(root, config, contract, session, packet, selection) {
30
39
  if (session.id && (!selection || session.logicalAgent === selection.logicalAgent)) {
31
40
  const continued = await continueManagedPaseoAgent(root, session.id, buildRepairPrompt(packet), config.orchestration?.worker?.timeoutSeconds);
32
- return { ...session, exitCode: continued.exitCode, stdout: continued.stdout || session.stdout, stderr: [session.stderr, continued.stderr].filter(Boolean).join("\n"), transport: `paseo-${continued.transport}`, status: continued.status, finishedAt: new Date().toISOString() };
41
+ return {
42
+ ...session,
43
+ exitCode: continued.exitCode,
44
+ stdout: continued.stdout || session.stdout,
45
+ stderr: [session.stderr, continued.stderr].filter(Boolean).join("\n"),
46
+ transport: `paseo-${continued.transport}`,
47
+ status: continued.status,
48
+ finishedAt: new Date().toISOString()
49
+ };
33
50
  }
34
51
  return this.launch(root, config, contract, `${buildWorkerPrompt(contract, selection)}\n\n${buildRepairPrompt(packet)}`, selection);
35
52
  }
36
53
  async launch(root, config, contract, prompt, selection) {
37
- const spec = await compilePaseoAgentLaunchSpec(root, config, contract, { selection, phase: "implementation" });
54
+ const spec = await compilePaseoAgentLaunchSpec(root, config, contract, {
55
+ selection,
56
+ phase: "implementation"
57
+ });
38
58
  const startedAt = new Date().toISOString();
39
59
  const launched = await launchManagedPaseoAgent(root, {
40
60
  cwd: spec.cwd,
41
61
  title: spec.title,
42
62
  provider: spec.provider,
43
63
  model: spec.model,
64
+ modeId: spec.modeId,
65
+ modeSource: spec.modeSource,
66
+ thinkingOptionId: spec.thinkingOptionId,
67
+ env: spec.env,
44
68
  workspaceId: spec.workspaceId,
45
69
  prompt,
46
70
  labels: spec.labels,
@@ -51,7 +75,7 @@ export class PaseoWorkerExecutor {
51
75
  provider: spec.provider,
52
76
  model: spec.model,
53
77
  logicalAgent: selection?.logicalAgent,
54
- nativeAgent: selection?.nativeAgent,
78
+ nativeAgent: spec.nativeAgentId ?? selection?.nativeAgent,
55
79
  runtime: selection?.runtimeName,
56
80
  profile: selection?.profile,
57
81
  transport: `paseo-${launched.transport}`,
@@ -1 +1 @@
1
- {"version":3,"file":"paseo.js","sourceRoot":"","sources":["../../src/workers/paseo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paseo.js","sourceRoot":"","sources":["../../src/workers/paseo.ts"],"names":[],"mappings":"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"}
@@ -1,44 +1,122 @@
1
1
  import path from "node:path";
2
- import { buildOpenCodeRuntimeConfig } from "../agents/permissions.js";
2
+ import { compileOpenCodeRuntimeProjection } from "../agents/permissions.js";
3
3
  import { allowedSandboxEnvironment, hardenedPodmanArgs, sandboxImage } from "../security/sandbox.js";
4
4
  import { commandExists, runProcess } from "../utils/process.js";
5
5
  import { buildRepairPrompt, buildWorkerPrompt } from "./prompt.js";
6
6
  export class PodmanWorkerExecutor {
7
7
  name = "podman";
8
- async doctor(root, config) { const ok = await commandExists("podman", root); if (!ok)
9
- return { ok: false, message: "Podman CLI not found." }; if (!config.security?.sandbox?.image)
10
- return { ok: false, message: "security.sandbox.image is required for Podman worker execution." }; return { ok: true, message: "Hardened Podman worker sandbox configured." }; }
11
- async start(root, config, contract, selection) { return this.run(root, config, contract, buildWorkerPrompt(contract, selection), selection); }
12
- async repair(root, config, contract, _session, packet, selection) { return this.run(root, config, contract, `${buildWorkerPrompt(contract, selection)}\n\n${buildRepairPrompt(packet)}`, selection); }
8
+ async doctor(root, config) {
9
+ const ok = await commandExists("podman", root);
10
+ if (!ok)
11
+ return { ok: false, message: "Podman CLI not found." };
12
+ if (!config.security?.sandbox?.image) {
13
+ return {
14
+ ok: false,
15
+ message: "security.sandbox.image is required for Podman worker execution."
16
+ };
17
+ }
18
+ return { ok: true, message: "Hardened Podman worker sandbox configured." };
19
+ }
20
+ async start(root, config, contract, selection) {
21
+ return this.run(root, config, contract, buildWorkerPrompt(contract, selection), selection);
22
+ }
23
+ async repair(root, config, contract, _session, packet, selection) {
24
+ return this.run(root, config, contract, `${buildWorkerPrompt(contract, selection)}\n\n${buildRepairPrompt(packet)}`, selection);
25
+ }
13
26
  async run(root, config, contract, prompt, selection) {
14
27
  const runtime = selection?.runtimeAdapter ?? "opencode";
15
- if (runtime !== "opencode")
28
+ if (runtime !== "opencode") {
16
29
  throw new Error(`Podman executor currently supports OpenCode runtime; selected ${runtime}.`);
30
+ }
17
31
  const model = selection?.modelId ?? config.orchestration?.worker?.model;
18
32
  const fallback = selection ?? legacySelection(model);
33
+ const projection = compileOpenCodeRuntimeProjection(fallback, config);
19
34
  const podmanArgs = hardenedPodmanArgs(config, fallback, true);
20
- const args = ["podman", "run", ...podmanArgs, "-v", `${root}:/workspace:rw`];
21
- for (const relative of sealedArtifacts(config, contract))
35
+ const args = [
36
+ "podman",
37
+ "run",
38
+ ...podmanArgs,
39
+ "-v",
40
+ `${root}:/workspace:rw`
41
+ ];
42
+ for (const relative of sealedArtifacts(config, contract)) {
22
43
  args.push("-v", `${path.resolve(root, relative)}:/workspace/${relative}:ro`);
23
- if (selection)
24
- args.push("-e", `OPENCODE_CONFIG_CONTENT=${JSON.stringify(buildOpenCodeRuntimeConfig(selection, config))}`);
25
- for (const [name, value] of Object.entries(allowedSandboxEnvironment(config)))
44
+ }
45
+ args.push("-e", `OPENCODE_CONFIG_CONTENT=${projection.env.OPENCODE_CONFIG_CONTENT}`);
46
+ for (const [name, value] of Object.entries(allowedSandboxEnvironment(config))) {
26
47
  args.push("-e", `${name}=${value}`);
48
+ }
27
49
  const runtimeArgs = ["opencode", "run", "--auto", "--format", "json"];
28
50
  if (model)
29
51
  runtimeArgs.push("--model", model);
30
52
  if (selection?.variant)
31
53
  runtimeArgs.push("--variant", selection.variant);
32
- if (selection?.nativeAgent)
33
- runtimeArgs.push("--agent", selection.nativeAgent);
54
+ runtimeArgs.push("--agent", projection.binding.agentId);
34
55
  runtimeArgs.push(...(selection?.args ?? []), prompt);
35
56
  args.push(sandboxImage(config), "sh", "-lc", `cd /workspace && ${runtimeArgs.map(quote).join(" ")}`);
36
57
  const timeout = config.orchestration?.worker?.timeoutSeconds ?? 1800;
37
- const result = await runProcess(args.map(quote).join(" "), { cwd: root, timeoutMs: timeout * 1000 });
38
- return { provider: runtime, model: selection?.modelName ?? model, logicalAgent: selection?.logicalAgent, nativeAgent: selection?.nativeAgent, runtime: selection?.runtimeName, profile: selection?.profile, exitCode: result.exitCode, stdout: result.stdout, stderr: result.stderr };
58
+ const result = await runProcess(args.map(quote).join(" "), {
59
+ cwd: root,
60
+ timeoutMs: timeout * 1000
61
+ });
62
+ return {
63
+ provider: runtime,
64
+ model: selection?.modelName ?? model,
65
+ logicalAgent: selection?.logicalAgent,
66
+ nativeAgent: projection.binding.agentId,
67
+ runtime: selection?.runtimeName,
68
+ profile: selection?.profile,
69
+ exitCode: result.exitCode,
70
+ stdout: result.stdout,
71
+ stderr: result.stderr
72
+ };
39
73
  }
40
74
  }
41
- function legacySelection(model) { return { logicalAgent: "legacy-worker", role: "implementer", profile: "legacy", domains: ["*"], runtimeName: "opencode", runtimeAdapter: "opencode", paseoProvider: "opencode", modelAlias: "legacy", modelProvider: model?.split("/")[0] ?? "opencode", modelName: model?.split("/").at(-1) ?? "default", modelId: model ?? "opencode/default", transport: "podman", permissions: { read: "allow", write: "allow", shell: "allow", network: "ask", delegate: "deny", review: "deny", validate: "allow", gitWrite: "deny" }, skills: [], mcps: [], args: [], runtimeCapabilities: { modelSelection: true, sessions: false, structuredOutput: false } }; }
42
- function sealedArtifacts(config, contract) { const contractsDir = config.sdd?.contractsDir ?? ".harness/contracts"; return [...new Set([`${contractsDir}/${contract.task.id}.yaml`, `.harness/seals/${contract.task.id}.json`, ...Object.values(contract.source ?? {}).filter((value) => Boolean(value))])]; }
43
- function quote(value) { return `'${value.replaceAll("'", "'\\''")}'`; }
75
+ function legacySelection(model) {
76
+ return {
77
+ logicalAgent: "legacy-worker",
78
+ role: "implementer",
79
+ profile: "legacy",
80
+ domains: ["*"],
81
+ runtimeName: "opencode",
82
+ runtimeAdapter: "opencode",
83
+ paseoProvider: "opencode",
84
+ modelAlias: "legacy",
85
+ modelProvider: model?.split("/")[0] ?? "opencode",
86
+ modelName: model?.split("/").at(-1) ?? "default",
87
+ modelId: model ?? "opencode/default",
88
+ transport: "podman",
89
+ permissions: {
90
+ read: "allow",
91
+ write: "allow",
92
+ shell: "allow",
93
+ network: "ask",
94
+ delegate: "deny",
95
+ review: "deny",
96
+ validate: "allow",
97
+ gitWrite: "deny"
98
+ },
99
+ skills: [],
100
+ mcps: [],
101
+ args: [],
102
+ runtimeCapabilities: {
103
+ modelSelection: true,
104
+ sessions: false,
105
+ structuredOutput: false
106
+ }
107
+ };
108
+ }
109
+ function sealedArtifacts(config, contract) {
110
+ const contractsDir = config.sdd?.contractsDir ?? ".harness/contracts";
111
+ return [
112
+ ...new Set([
113
+ `${contractsDir}/${contract.task.id}.yaml`,
114
+ `.harness/seals/${contract.task.id}.json`,
115
+ ...Object.values(contract.source ?? {}).filter((value) => Boolean(value))
116
+ ])
117
+ ];
118
+ }
119
+ function quote(value) {
120
+ return `'${value.replaceAll("'", "'\\''")}'`;
121
+ }
44
122
  //# sourceMappingURL=podman.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"podman.js","sourceRoot":"","sources":["../../src/workers/podman.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"podman.js","sourceRoot":"","sources":["../../src/workers/podman.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ AEH treats Paseo as the authority for agent runtime state and generic agent orch
10
10
  | Agent current state | Paseo | `agents.ref(id).refetch()` |
11
11
  | Agent context-window usage | Paseo/provider | `AgentSnapshot.lastUsage` |
12
12
  | Provider/model availability | Paseo | provider snapshot/listModels/diagnostic |
13
+ | OpenCode native execution identity | AEH topology + Paseo mode bridge | AEH runtime projection -> `modeId` |
13
14
  | Generic create/send/status/activity tools | Paseo | injected native/MCP Paseo tools |
14
15
  | AUDIT/RUN operation state | AEH | `aeh-control` / operation state |
15
16
  | Detached operation completion wake-up | AEH + Paseo dispatch | durable completion target + follow-up to existing lead |
@@ -137,6 +138,42 @@ Before creating or materializing an agent, AEH attempts a public-SDK preflight:
137
138
 
138
139
  AEH does not force provider refreshes on every launch. Paseo owns snapshot caching and explicit refresh semantics.
139
140
 
141
+ ## Deterministic OpenCode native identity
142
+
143
+ AEH must not resolve a logical agent and then allow OpenCode to choose a different execution identity from ambient machine configuration. For every AEH-selected OpenCode agent, the Harness compiles a concrete native binding.
144
+
145
+ When `execution.nativeAgent` is absent, AEH synthesizes a deterministic session-local primary agent such as:
146
+
147
+ ```text
148
+ AEH logical agent: code-quality-reviewer
149
+ OpenCode agent: aeh-code-quality-reviewer
150
+ ```
151
+
152
+ The generated OpenCode configuration contains the concrete model, projected permissions, primary mode, AEH identity prompt and `default_agent`. It is supplied only to that provider process through:
153
+
154
+ ```text
155
+ OPENCODE_CONFIG_CONTENT=<compiled JSON>
156
+ ```
157
+
158
+ For Paseo execution AEH also passes the same ID as `AgentSessionConfig.modeId`. Paseo therefore dispatches the turn to the same native OpenCode agent that AEH compiled. The launch environment is passed as top-level create-agent `env`, not embedded in `AgentSessionConfig`.
159
+
160
+ If `execution.nativeAgent` is explicitly configured, AEH preserves that exact external identity instead of synthesizing a replacement. Before dispatch, AEH uses Paseo provider mode discovery to verify that the requested native agent is selectable for the target cwd. Missing explicit agents fail before a user prompt is sent; AEH does not silently fall back to OpenCode's default agent.
161
+
162
+ The same compiled binding is used by direct and Podman OpenCode execution. Transport therefore does not change native identity.
163
+
164
+ A session-scoped OpenCode launch environment is an SDK-required semantic boundary. If the Paseo SDK becomes unavailable, AEH refuses CLI launch fallback for that session rather than dropping `OPENCODE_CONFIG_CONTENT` and reintroducing ambient `default_agent` behavior.
165
+
166
+ Relevant labels/traces include:
167
+
168
+ ```text
169
+ aeh.native-agent
170
+ aeh.native-agent.source
171
+ harness.paseo.agent.identity
172
+ harness.paseo.provider.mode.preflight
173
+ ```
174
+
175
+ `aeh.native-agent.source` is `aeh-managed` for compiled identities and `explicit` for externally configured native agents.
176
+
140
177
  ## Intentional CLI parity gaps (P2)
141
178
 
142
179
  CLI usage is not forbidden when the public SDK lacks required semantics. It must be narrow and traced.
@@ -188,6 +225,8 @@ Representative events:
188
225
  ```text
189
226
  harness.paseo.provider.preflight
190
227
  harness.paseo.provider.preflight.skipped
228
+ harness.paseo.provider.mode.preflight
229
+ harness.paseo.agent.identity
191
230
  harness.paseo.agent.launch
192
231
  harness.paseo.agent.materialize
193
232
  harness.paseo.agent.dispatch
@@ -215,6 +254,7 @@ A useful trace answers:
215
254
  - which transport was selected (`sdk` or `cli`);
216
255
  - which observation source was used (`subscription`, snapshot, sdk-wait, cli-wait);
217
256
  - how the managed lead identity was resolved (`argument`, `environment`, `lead-state`);
257
+ - which AEH logical agent/native OpenCode identity was selected and whether it was generated or explicit;
218
258
  - whether an `idle` completion had real turn evidence rather than a metadata-only update;
219
259
  - whether a detached completion callback was registered and delivered;
220
260
  - whether a fallback was exceptional or an intentional SDK parity gap;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-engineering-harness",
3
- "version": "0.6.9",
3
+ "version": "0.6.10",
4
4
  "description": "OSS-first engineering harness for deterministic, spec-driven, issue-driven, audit-governed and orchestration-first multi-agent software delivery.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,11 @@
1
1
  {
2
2
  "version": 1,
3
3
  "extends": ["aeh:default"],
4
+ "runtimes": {
5
+ "opencode": {
6
+ "capabilities": { "nativeAgentViaPaseo": true }
7
+ }
8
+ },
4
9
  "agents": {
5
10
  "lead": {
6
11
  "description": "Own user intent, semantic decisions, exception handling and final acceptance. Operate as a thin orchestrator: delegate repository discovery, environment repair, specification authoring, planning, implementation and review. Prefer Paseo native/MCP orchestration tools and handoff skills over direct shell orchestration. Do not author SDD/OpenSpec artifacts or debug tooling interactively when a specialist can own that bounded operation.",