agentic-engineering-harness 0.6.6 → 0.6.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/operations/controller.d.ts +3 -1
- package/dist/operations/controller.js +165 -31
- package/dist/operations/controller.js.map +1 -1
- package/dist/operations/mcp.d.ts +6 -0
- package/dist/operations/mcp.js +65 -1
- package/dist/operations/mcp.js.map +1 -1
- package/dist/operations/state.d.ts +11 -0
- package/dist/operations/state.js +69 -13
- package/dist/operations/state.js.map +1 -1
- package/dist/paseo/capabilities.d.ts +14 -2
- package/dist/paseo/capabilities.js +46 -14
- package/dist/paseo/capabilities.js.map +1 -1
- package/dist/paseo/context.d.ts +11 -2
- package/dist/paseo/context.js +118 -81
- package/dist/paseo/context.js.map +1 -1
- package/dist/paseo/native.d.ts +63 -0
- package/dist/paseo/native.js +549 -0
- package/dist/paseo/native.js.map +1 -0
- package/dist/paseo/runtime.d.ts +9 -1
- package/dist/paseo/runtime.js +348 -57
- package/dist/paseo/runtime.js.map +1 -1
- package/dist/paseo/start.d.ts +3 -3
- package/dist/paseo/start.js +156 -37
- package/dist/paseo/start.js.map +1 -1
- package/dist/paseo/trace.d.ts +12 -0
- package/dist/paseo/trace.js +26 -0
- package/dist/paseo/trace.js.map +1 -0
- package/docs/PASEO_NATIVE.md +185 -0
- package/package.json +1 -1
- package/skills/engineering-workflow/SKILL.md +5 -1
- package/skills/paseo-orchestration/SKILL.md +33 -5
package/dist/paseo/start.d.ts
CHANGED
|
@@ -4,10 +4,10 @@ import { reconcileHarnessAssets } from "../core/assets.js";
|
|
|
4
4
|
import type { HarnessProjectConfig } from "../core/types.js";
|
|
5
5
|
import { setupToolchain } from "../toolchain/setup.js";
|
|
6
6
|
import { commandExists, runProcess } from "../utils/process.js";
|
|
7
|
-
import {
|
|
7
|
+
import { detectPaseoDaemonCapabilities } from "./capabilities.js";
|
|
8
8
|
import { launchManagedPaseoAgent, probeManagedPaseoAgent } from "./runtime.js";
|
|
9
9
|
import type { PaseoSdkAgentOptions } from "./sdk.js";
|
|
10
|
-
export declare const PASEO_BOOTSTRAP_VERSION =
|
|
10
|
+
export declare const PASEO_BOOTSTRAP_VERSION = 7;
|
|
11
11
|
export type PaseoSessionPolicy = "fresh-on-start" | "reuse-compatible" | "resume-explicit";
|
|
12
12
|
export interface PaseoStartOptions {
|
|
13
13
|
autoSetup?: boolean;
|
|
@@ -55,7 +55,7 @@ interface PaseoStartDeps {
|
|
|
55
55
|
commandExists: typeof commandExists;
|
|
56
56
|
setupToolchain: typeof setupToolchain;
|
|
57
57
|
loadTopology: typeof loadResolvedAgentTopology;
|
|
58
|
-
detectCapabilities: typeof
|
|
58
|
+
detectCapabilities: typeof detectPaseoDaemonCapabilities;
|
|
59
59
|
launchAgent: typeof launchManagedPaseoAgent;
|
|
60
60
|
probeAgent: typeof probeManagedPaseoAgent;
|
|
61
61
|
reconcileAssets?: typeof reconcileHarnessAssets;
|
package/dist/paseo/start.js
CHANGED
|
@@ -6,10 +6,19 @@ import { reconcileHarnessAssets } from "../core/assets.js";
|
|
|
6
6
|
import { setupToolchain } from "../toolchain/setup.js";
|
|
7
7
|
import { clearToolchainEnvCache, commandExists, runProcess } from "../utils/process.js";
|
|
8
8
|
import { VERSION } from "../version.js";
|
|
9
|
-
import {
|
|
9
|
+
import { detectPaseoDaemonCapabilities, isRecoverableDaemonStatus } from "./capabilities.js";
|
|
10
10
|
import { launchManagedPaseoAgent, probeManagedPaseoAgent } from "./runtime.js";
|
|
11
|
-
export const PASEO_BOOTSTRAP_VERSION =
|
|
12
|
-
const DEFAULT_DEPS = {
|
|
11
|
+
export const PASEO_BOOTSTRAP_VERSION = 7;
|
|
12
|
+
const DEFAULT_DEPS = {
|
|
13
|
+
run: runProcess,
|
|
14
|
+
commandExists,
|
|
15
|
+
setupToolchain,
|
|
16
|
+
loadTopology: loadResolvedAgentTopology,
|
|
17
|
+
detectCapabilities: detectPaseoDaemonCapabilities,
|
|
18
|
+
launchAgent: launchManagedPaseoAgent,
|
|
19
|
+
probeAgent: probeManagedPaseoAgent,
|
|
20
|
+
reconcileAssets: reconcileHarnessAssets
|
|
21
|
+
};
|
|
13
22
|
export async function startPaseoHarness(root, config, options = {}, deps = DEFAULT_DEPS) {
|
|
14
23
|
const projectRoot = path.resolve(root);
|
|
15
24
|
await (deps.reconcileAssets ?? reconcileHarnessAssets)(projectRoot);
|
|
@@ -20,7 +29,8 @@ export async function startPaseoHarness(root, config, options = {}, deps = DEFAU
|
|
|
20
29
|
const stateFile = path.join(stateDir, "lead-session.json");
|
|
21
30
|
const bootstrapFile = path.join(stateDir, "lead-bootstrap.md");
|
|
22
31
|
const sessionPolicy = settings?.sessionPolicy ?? "fresh-on-start";
|
|
23
|
-
const reuseRequested = options.resume === true ||
|
|
32
|
+
const reuseRequested = options.resume === true ||
|
|
33
|
+
(sessionPolicy === "reuse-compatible" && options.forceNew !== true);
|
|
24
34
|
const topology = await deps.loadTopology(projectRoot, config, config.agents?.activeProfile);
|
|
25
35
|
const leadName = resolveLeadAgent(topology, options.leadAgent ?? settings?.leadAgent);
|
|
26
36
|
const selection = executionSelectionForAgent(topology, leadName);
|
|
@@ -31,23 +41,40 @@ export async function startPaseoHarness(root, config, options = {}, deps = DEFAU
|
|
|
31
41
|
clearToolchainEnvCache();
|
|
32
42
|
}
|
|
33
43
|
const missingAfter = await missingCommands(projectRoot, ["paseo", runtimeCommand], deps);
|
|
34
|
-
if (missingAfter.length)
|
|
44
|
+
if (missingAfter.length) {
|
|
35
45
|
throw new Error(`aeh start cannot launch Paseo because these managed commands are unavailable: ${missingAfter.join(", ")}. Run aeh setup or provide the required host prerequisite/credential.`);
|
|
46
|
+
}
|
|
36
47
|
const capabilities = await deps.detectCapabilities(projectRoot, deps.run);
|
|
37
48
|
let daemonStarted = false;
|
|
38
|
-
const daemonStatusCommand = capabilities.daemonJson
|
|
39
|
-
|
|
49
|
+
const daemonStatusCommand = capabilities.daemonJson
|
|
50
|
+
? "paseo daemon status --json"
|
|
51
|
+
: "paseo daemon status";
|
|
52
|
+
let daemonStatus = await deps.run(daemonStatusCommand, {
|
|
53
|
+
cwd: projectRoot,
|
|
54
|
+
timeoutMs: 30_000
|
|
55
|
+
});
|
|
40
56
|
if (daemonStatus.exitCode !== 0) {
|
|
41
|
-
if (isRecoverableDaemonStatus(daemonStatus))
|
|
42
|
-
await deps
|
|
57
|
+
if (isRecoverableDaemonStatus(daemonStatus)) {
|
|
58
|
+
await deps
|
|
59
|
+
.run("paseo daemon stop", { cwd: projectRoot, timeoutMs: 30_000 })
|
|
60
|
+
.catch(() => undefined);
|
|
61
|
+
}
|
|
43
62
|
const startCommand = webUi ? "paseo daemon start --web-ui" : "paseo daemon start";
|
|
44
|
-
const daemonStart = await deps.run(startCommand, {
|
|
45
|
-
|
|
63
|
+
const daemonStart = await deps.run(startCommand, {
|
|
64
|
+
cwd: projectRoot,
|
|
65
|
+
timeoutMs: 60_000
|
|
66
|
+
});
|
|
67
|
+
if (daemonStart.exitCode !== 0) {
|
|
46
68
|
throw new Error(`Failed to start Paseo daemon: ${diagnostic(daemonStart)}`);
|
|
69
|
+
}
|
|
47
70
|
daemonStarted = true;
|
|
48
|
-
daemonStatus = await deps.run(daemonStatusCommand, {
|
|
49
|
-
|
|
71
|
+
daemonStatus = await deps.run(daemonStatusCommand, {
|
|
72
|
+
cwd: projectRoot,
|
|
73
|
+
timeoutMs: 30_000
|
|
74
|
+
});
|
|
75
|
+
if (daemonStatus.exitCode !== 0) {
|
|
50
76
|
throw new Error(`Paseo daemon did not become ready after startup: ${diagnostic(daemonStatus)}`);
|
|
77
|
+
}
|
|
51
78
|
}
|
|
52
79
|
const provider = selection.paseoProvider;
|
|
53
80
|
const model = paseoModel(selection);
|
|
@@ -58,9 +85,33 @@ export async function startPaseoHarness(root, config, options = {}, deps = DEFAU
|
|
|
58
85
|
await fs.mkdir(stateDir, { recursive: true });
|
|
59
86
|
await fs.writeFile(bootstrapFile, `${bootstrap}\n`);
|
|
60
87
|
const previous = await loadState(stateFile);
|
|
61
|
-
if (!options.forceNew &&
|
|
88
|
+
if (!options.forceNew &&
|
|
89
|
+
reuseRequested &&
|
|
90
|
+
!options.handoffPath &&
|
|
91
|
+
previous &&
|
|
92
|
+
compatibleState(previous, {
|
|
93
|
+
projectRoot,
|
|
94
|
+
leadName,
|
|
95
|
+
provider,
|
|
96
|
+
model,
|
|
97
|
+
title,
|
|
98
|
+
aehCommand
|
|
99
|
+
})) {
|
|
62
100
|
if (await deps.probeAgent(projectRoot, previous.agentId)) {
|
|
63
|
-
return {
|
|
101
|
+
return {
|
|
102
|
+
daemonStarted,
|
|
103
|
+
session: "reused",
|
|
104
|
+
agentId: previous.agentId,
|
|
105
|
+
title: previous.title,
|
|
106
|
+
leadAgent: previous.leadAgent,
|
|
107
|
+
provider: previous.provider,
|
|
108
|
+
model: previous.model,
|
|
109
|
+
aehVersion: VERSION,
|
|
110
|
+
aehCommand,
|
|
111
|
+
stateFile,
|
|
112
|
+
bootstrapFile,
|
|
113
|
+
paseoVersion: capabilities.version
|
|
114
|
+
};
|
|
64
115
|
}
|
|
65
116
|
}
|
|
66
117
|
const generation = (previous?.generation ?? 0) + 1;
|
|
@@ -74,7 +125,9 @@ export async function startPaseoHarness(root, config, options = {}, deps = DEFAU
|
|
|
74
125
|
};
|
|
75
126
|
if (options.handoffPath)
|
|
76
127
|
labels["aeh.handoff"] = options.handoffPath;
|
|
77
|
-
const operationControl = preferPaseoTools
|
|
128
|
+
const operationControl = preferPaseoTools
|
|
129
|
+
? buildAehControlMcp(aehCommand, projectRoot)
|
|
130
|
+
: {};
|
|
78
131
|
const launch = await deps.launchAgent(projectRoot, {
|
|
79
132
|
cwd: projectRoot,
|
|
80
133
|
title,
|
|
@@ -86,12 +139,42 @@ export async function startPaseoHarness(root, config, options = {}, deps = DEFAU
|
|
|
86
139
|
timeoutSeconds: 300,
|
|
87
140
|
...operationControl
|
|
88
141
|
});
|
|
89
|
-
if (launch.exitCode !== 0 || !launch.id)
|
|
142
|
+
if (launch.exitCode !== 0 || !launch.id) {
|
|
90
143
|
throw new Error(`Failed to create AEH lead in Paseo${capabilities.version ? ` ${capabilities.version}` : ""}: ${launch.stderr || launch.stdout || `exit code ${launch.exitCode}`}`);
|
|
144
|
+
}
|
|
91
145
|
const agentId = launch.id;
|
|
92
|
-
const state = {
|
|
146
|
+
const state = {
|
|
147
|
+
version: 2,
|
|
148
|
+
bootstrapVersion: PASEO_BOOTSTRAP_VERSION,
|
|
149
|
+
aehVersion: VERSION,
|
|
150
|
+
aehCommand,
|
|
151
|
+
projectRoot,
|
|
152
|
+
projectName: config.project.name,
|
|
153
|
+
agentId,
|
|
154
|
+
title,
|
|
155
|
+
leadAgent: leadName,
|
|
156
|
+
provider,
|
|
157
|
+
model,
|
|
158
|
+
createdAt: new Date().toISOString(),
|
|
159
|
+
generation,
|
|
160
|
+
handoffPath: options.handoffPath
|
|
161
|
+
};
|
|
93
162
|
await fs.writeFile(stateFile, `${JSON.stringify(state, null, 2)}\n`);
|
|
94
|
-
return {
|
|
163
|
+
return {
|
|
164
|
+
daemonStarted,
|
|
165
|
+
session: "created",
|
|
166
|
+
agentId,
|
|
167
|
+
title,
|
|
168
|
+
leadAgent: leadName,
|
|
169
|
+
provider,
|
|
170
|
+
model,
|
|
171
|
+
aehVersion: VERSION,
|
|
172
|
+
aehCommand,
|
|
173
|
+
stateFile,
|
|
174
|
+
bootstrapFile,
|
|
175
|
+
paseoVersion: capabilities.version,
|
|
176
|
+
transport: launch.transport
|
|
177
|
+
};
|
|
95
178
|
}
|
|
96
179
|
export function buildAehControlMcp(aehCommand, projectRoot) {
|
|
97
180
|
const argv = parseCommandVector(aehCommand);
|
|
@@ -99,7 +182,13 @@ export function buildAehControlMcp(aehCommand, projectRoot) {
|
|
|
99
182
|
return {};
|
|
100
183
|
const [command, ...baseArgs] = argv;
|
|
101
184
|
const server = "aeh-control";
|
|
102
|
-
const tools = [
|
|
185
|
+
const tools = [
|
|
186
|
+
"aeh_operation_start_audit",
|
|
187
|
+
"aeh_operation_start_run",
|
|
188
|
+
"aeh_operation_status",
|
|
189
|
+
"aeh_operation_cancel",
|
|
190
|
+
"aeh_context_status"
|
|
191
|
+
];
|
|
103
192
|
return {
|
|
104
193
|
mcpServers: {
|
|
105
194
|
[server]: {
|
|
@@ -130,12 +219,15 @@ export function parseCommandVector(value) {
|
|
|
130
219
|
return undefined;
|
|
131
220
|
}
|
|
132
221
|
}
|
|
133
|
-
if (!/^[A-Za-z0-9_./:@+-]+(?:\s+[A-Za-z0-9_./:@+-]+)*$/.test(trimmed))
|
|
222
|
+
if (!/^[A-Za-z0-9_./:@+-]+(?:\s+[A-Za-z0-9_./:@+-]+)*$/.test(trimmed)) {
|
|
134
223
|
return undefined;
|
|
224
|
+
}
|
|
135
225
|
return trimmed.split(/\s+/);
|
|
136
226
|
}
|
|
137
227
|
export function buildPaseoLeadBootstrap(projectName, projectRoot, aehCommand, preferPaseoTools = true, handoffPath) {
|
|
138
|
-
const handoff = handoffPath
|
|
228
|
+
const handoff = handoffPath
|
|
229
|
+
? `\n\nThis lead was created by proactive context rotation. Before the next engineering action, read the deterministic handoff artifact ${JSON.stringify(handoffPath)} and the sealed/run/audit/operation/delivery artifacts it references. Durable artifacts are authoritative; do not ask the previous lead to replay its conversation.`
|
|
230
|
+
: "";
|
|
139
231
|
return `AEH thin-lead Paseo bootstrap v${PASEO_BOOTSTRAP_VERSION}; AEH runtime v${VERSION}.
|
|
140
232
|
|
|
141
233
|
You are the top-level engineering lead for project ${JSON.stringify(projectName)} at ${JSON.stringify(projectRoot)}. A normal \`aeh start\` creates a fresh lead; explicit resume is opt-in.${handoff}
|
|
@@ -150,7 +242,7 @@ Remain a thin ORCHESTRATOR: preserve user intent, make semantic/risk decisions,
|
|
|
150
242
|
|
|
151
243
|
${preferPaseoTools ? `When running inside Paseo, use the paseo-orchestration skill and injected native/MCP tools for conversational delegation and /paseo-handoff for responsibility transfer. The managed lead receives the exact project-locked aeh-control MCP when its AEH invocation can be represented safely; prefer those detached operation tools for long AUDIT/RUN workflows, then use short \`${aehCommand} operation ...\` commands only as fallback. Never intentionally use synchronous \`${aehCommand} audit\` or \`${aehCommand} run\` for long managed-lead work; AEH will auto-promote standard forms to detached operations as a deterministic safety net. AEH's external controller may create independent top-level Paseo agents for Harness-owned work; AEH operation/run/task labels, not Paseo parentage, define workflow ownership.` : `Use AEH's configured Paseo adapter for delegation and lifecycle control.`}
|
|
152
244
|
|
|
153
|
-
Before non-trivial work, inspect context pressure
|
|
245
|
+
Before non-trivial work and again at completed-turn boundaries, inspect context pressure. Prefer the injected \`aeh_context_status\` tool, which reads the current Paseo AgentSnapshot and applies AEH's deterministic thresholds without shell/log parsing. Use \`${aehCommand} context guard --agent "$PASEO_AGENT_ID"\` only as a non-interactive/compatibility fallback. Honor HANDOFF_REQUIRED/HARD_HANDOFF and stop the old lead when a replacement is created. NO_USAGE_YET is normal before the provider emits usage; USAGE_UNAVAILABLE means pressure cannot be measured and should increase delegation rather than inventing a ratio.
|
|
154
246
|
|
|
155
247
|
The compiled AEH TaskContract/SDD plus seal are normative during implementation. OpenSpec is authoring provenance before freeze, not a competing runtime authority. Do not perform broad repository operations directly when a bounded Harness operation or configured agent owns them.
|
|
156
248
|
|
|
@@ -159,28 +251,55 @@ This bootstrap is session configuration, not a user task. Do not emit an initial
|
|
|
159
251
|
export function resolveLeadAgent(topology, configured) {
|
|
160
252
|
if (configured) {
|
|
161
253
|
const selected = topology.agents[configured];
|
|
162
|
-
if (!selected || selected.disabled)
|
|
254
|
+
if (!selected || selected.disabled) {
|
|
163
255
|
throw new Error(`Configured interactive lead agent '${configured}' is unavailable.`);
|
|
256
|
+
}
|
|
164
257
|
return configured;
|
|
165
258
|
}
|
|
166
259
|
if (topology.agents.lead && !topology.agents.lead.disabled)
|
|
167
260
|
return "lead";
|
|
168
261
|
const orchestrator = Object.values(topology.agents).find((agent) => agent.role === "orchestrator" && !agent.disabled);
|
|
169
|
-
if (!orchestrator)
|
|
262
|
+
if (!orchestrator) {
|
|
170
263
|
throw new Error("aeh start requires an enabled orchestrator/lead agent in the resolved topology.");
|
|
264
|
+
}
|
|
171
265
|
return orchestrator.name;
|
|
172
266
|
}
|
|
173
|
-
function runtimeExecutable(topology, leadName) {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
function
|
|
178
|
-
|
|
179
|
-
|
|
267
|
+
function runtimeExecutable(topology, leadName) {
|
|
268
|
+
const runtime = topology.agents[leadName].runtime;
|
|
269
|
+
return runtime.command?.trim().split(/\s+/, 1)[0] || runtime.adapter;
|
|
270
|
+
}
|
|
271
|
+
async function missingCommands(root, commands, deps) {
|
|
272
|
+
const result = [];
|
|
273
|
+
for (const command of [...new Set(commands.filter(Boolean))]) {
|
|
274
|
+
if (!(await deps.commandExists(command, root)))
|
|
275
|
+
result.push(command);
|
|
276
|
+
}
|
|
277
|
+
return result;
|
|
278
|
+
}
|
|
279
|
+
function paseoModel(selection) {
|
|
280
|
+
return selection.runtimeAdapter === "codex" ? selection.modelName : selection.modelId;
|
|
281
|
+
}
|
|
282
|
+
async function loadState(file) {
|
|
283
|
+
try {
|
|
284
|
+
return JSON.parse(await fs.readFile(file, "utf8"));
|
|
285
|
+
}
|
|
286
|
+
catch {
|
|
287
|
+
return undefined;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
function compatibleState(state, expected) {
|
|
291
|
+
return (state.version === 2 &&
|
|
292
|
+
state.bootstrapVersion === PASEO_BOOTSTRAP_VERSION &&
|
|
293
|
+
state.aehVersion === VERSION &&
|
|
294
|
+
state.aehCommand === expected.aehCommand &&
|
|
295
|
+
state.projectRoot === expected.projectRoot &&
|
|
296
|
+
state.leadAgent === expected.leadName &&
|
|
297
|
+
state.provider === expected.provider &&
|
|
298
|
+
state.model === expected.model &&
|
|
299
|
+
state.title === expected.title);
|
|
300
|
+
}
|
|
301
|
+
function diagnostic(result) {
|
|
302
|
+
return [result.stderr.trim(), result.stdout.trim()].filter(Boolean).join("\n") ||
|
|
303
|
+
`exit code ${result.exitCode}`;
|
|
180
304
|
}
|
|
181
|
-
catch {
|
|
182
|
-
return undefined;
|
|
183
|
-
} }
|
|
184
|
-
function compatibleState(state, expected) { return state.version === 2 && state.bootstrapVersion === PASEO_BOOTSTRAP_VERSION && state.aehVersion === VERSION && state.aehCommand === expected.aehCommand && state.projectRoot === expected.projectRoot && state.leadAgent === expected.leadName && state.provider === expected.provider && state.model === expected.model && state.title === expected.title; }
|
|
185
|
-
function diagnostic(result) { return [result.stderr.trim(), result.stdout.trim()].filter(Boolean).join("\n") || `exit code ${result.exitCode}`; }
|
|
186
305
|
//# sourceMappingURL=start.js.map
|
package/dist/paseo/start.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/paseo/start.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/paseo/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface PaseoTraceRecord {
|
|
2
|
+
at: string;
|
|
3
|
+
name: string;
|
|
4
|
+
attributes: Record<string, unknown>;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Paseo integration traces are always persisted locally because they are
|
|
8
|
+
* operational evidence, even when OTLP export is disabled. When Harness
|
|
9
|
+
* telemetry is configured the same event is also sent through the normal
|
|
10
|
+
* recordEvent/OTLP path.
|
|
11
|
+
*/
|
|
12
|
+
export declare function recordPaseoTrace(root: string, name: string, attributes?: Record<string, unknown>): Promise<void>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { loadProjectConfig } from "../core/config.js";
|
|
4
|
+
import { recordEvent } from "../telemetry/events.js";
|
|
5
|
+
/**
|
|
6
|
+
* Paseo integration traces are always persisted locally because they are
|
|
7
|
+
* operational evidence, even when OTLP export is disabled. When Harness
|
|
8
|
+
* telemetry is configured the same event is also sent through the normal
|
|
9
|
+
* recordEvent/OTLP path.
|
|
10
|
+
*/
|
|
11
|
+
export async function recordPaseoTrace(root, name, attributes = {}) {
|
|
12
|
+
const eventName = name.startsWith("harness.paseo.") ? name : `harness.paseo.${name}`;
|
|
13
|
+
const record = { at: new Date().toISOString(), name: eventName, attributes };
|
|
14
|
+
const file = path.resolve(root, ".harness/telemetry/paseo.ndjson");
|
|
15
|
+
await fs.mkdir(path.dirname(file), { recursive: true });
|
|
16
|
+
await fs.appendFile(file, `${JSON.stringify(record)}\n`);
|
|
17
|
+
let config;
|
|
18
|
+
try {
|
|
19
|
+
config = await loadProjectConfig(root);
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
await recordEvent(root, config, eventName, attributes);
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=trace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/paseo/trace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAQrD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAY,EACZ,IAAY,EACZ,aAAsC,EAAE;IAExC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,IAAI,EAAE,CAAC;IACrF,MAAM,MAAM,GAAqB,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;IAC/F,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,iCAAiC,CAAC,CAAC;IACnE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEzD,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QAAC,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAC/C,MAAM,CAAC;QAAC,OAAO;IAAC,CAAC;IACjB,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# Paseo-native integration contract
|
|
2
|
+
|
|
3
|
+
AEH treats Paseo as the authority for agent runtime state and generic agent orchestration, while AEH remains the authority for engineering policy and deterministic acceptance.
|
|
4
|
+
|
|
5
|
+
## Authority split
|
|
6
|
+
|
|
7
|
+
| Concern | Authority | Preferred surface |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| Agent creation/session lifecycle | Paseo | `@getpaseo/client` |
|
|
10
|
+
| Agent current state | Paseo | `agents.ref(id).refetch()` |
|
|
11
|
+
| Agent context-window usage | Paseo/provider | `AgentSnapshot.lastUsage` |
|
|
12
|
+
| Provider/model availability | Paseo | provider snapshot/listModels/diagnostic |
|
|
13
|
+
| Generic create/send/status/activity tools | Paseo | injected native/MCP Paseo tools |
|
|
14
|
+
| AUDIT/RUN operation state | AEH | `aeh-control` / operation state |
|
|
15
|
+
| Context thresholds and handoff policy | AEH | `aeh_context_status` / `context guard` |
|
|
16
|
+
| SDD, contracts, seals, validation | AEH | deterministic Harness core |
|
|
17
|
+
| Quality convergence/acceptance | AEH | deterministic Harness core |
|
|
18
|
+
|
|
19
|
+
Do not copy generic Paseo lifecycle tools into `aeh-control`. The AEH MCP exists only for AEH-specific controller and policy semantics.
|
|
20
|
+
|
|
21
|
+
## Context pressure
|
|
22
|
+
|
|
23
|
+
Paseo v0.3.1 exposes canonical context-window fields in `AgentUsage`:
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
contextWindowUsedTokens
|
|
27
|
+
contextWindowMaxTokens
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
AEH reads them from the full agent snapshot. It does **not** derive context pressure from `inputTokens`, `outputTokens`, `totalTokens`, log text or compact agent-list metadata.
|
|
31
|
+
|
|
32
|
+
States:
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
NO_USAGE_YET
|
|
36
|
+
snapshot exists but the provider has not emitted lastUsage yet
|
|
37
|
+
|
|
38
|
+
USAGE_UNAVAILABLE
|
|
39
|
+
snapshot/usage exists but canonical context-window fields are unavailable
|
|
40
|
+
|
|
41
|
+
OK
|
|
42
|
+
ratio < pressureThreshold (default 70%)
|
|
43
|
+
|
|
44
|
+
PRESSURE
|
|
45
|
+
pressureThreshold <= ratio < handoffThreshold (default 70–80%)
|
|
46
|
+
|
|
47
|
+
HANDOFF_REQUIRED
|
|
48
|
+
handoffThreshold <= ratio < hardHandoffThreshold (default 80–90%)
|
|
49
|
+
|
|
50
|
+
HARD_HANDOFF
|
|
51
|
+
ratio >= hardHandoffThreshold (default 90%)
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Managed leads receive the preapproved `aeh_context_status` tool. A normal managed lead calls it without an `agentId`. AEH resolves the context target in strict order: explicit diagnostic `agentId`, host-provided `PASEO_AGENT_ID`, then the compatible project-local `lead-session.json` written by `aeh start`. The durable fallback respects configured `orchestration.interactive.stateDir` and validates the lead-state schema version, current bootstrap/runtime version, project root, project name and agent id before use. It fails closed on stale or mismatched state and never guesses by listing agents. The selected identity source is traced as `harness.paseo.context.identity`.
|
|
55
|
+
|
|
56
|
+
`aeh context guard --agent ...` remains the CLI compatibility/non-interactive surface and owns handoff-artifact/rotation side effects.
|
|
57
|
+
|
|
58
|
+
## Event-driven completion
|
|
59
|
+
|
|
60
|
+
Agent waiting is:
|
|
61
|
+
|
|
62
|
+
```text
|
|
63
|
+
subscribe(agent_update)
|
|
64
|
+
|
|
|
65
|
+
+--> refetch current snapshot
|
|
66
|
+
|
|
|
67
|
+
+--> updates trigger refetch
|
|
68
|
+
|
|
|
69
|
+
`--> terminal state -> read recent timeline -> complete
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Subscription is installed **before** the first refetch so a transition cannot fall between the snapshot and listener setup. A freshly observed `idle` state is not treated as completion until the wait has observed activity/update evidence, avoiding a send/wait race.
|
|
73
|
+
|
|
74
|
+
Fallback order:
|
|
75
|
+
|
|
76
|
+
```text
|
|
77
|
+
Paseo SDK subscription
|
|
78
|
+
↓ unavailable
|
|
79
|
+
public SDK wait compatibility
|
|
80
|
+
↓ unavailable
|
|
81
|
+
Paseo CLI wait/log compatibility
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
The selected path is emitted in Paseo integration traces.
|
|
85
|
+
|
|
86
|
+
## Provider/model preflight
|
|
87
|
+
|
|
88
|
+
Before creating or materializing an agent, AEH attempts a public-SDK preflight:
|
|
89
|
+
|
|
90
|
+
1. read the provider snapshot for the target cwd;
|
|
91
|
+
2. reject explicitly disabled/error/unavailable providers;
|
|
92
|
+
3. use the snapshot model catalog when available;
|
|
93
|
+
4. otherwise call `listModels(provider, { cwd })`;
|
|
94
|
+
5. when provider/model discovery fails, obtain a provider diagnostic where supported;
|
|
95
|
+
6. fail before `createAgent` when the catalog authoritatively excludes the requested model;
|
|
96
|
+
7. if the installed SDK does not expose provider preflight APIs, record `provider.preflight.skipped` and let agent creation remain authoritative.
|
|
97
|
+
|
|
98
|
+
AEH does not force provider refreshes on every launch. Paseo owns snapshot caching and explicit refresh semantics.
|
|
99
|
+
|
|
100
|
+
## Intentional CLI parity gaps (P2)
|
|
101
|
+
|
|
102
|
+
CLI usage is not forbidden when the public SDK lacks required semantics. It must be narrow and traced.
|
|
103
|
+
|
|
104
|
+
### Operation workspace creation
|
|
105
|
+
|
|
106
|
+
AEH currently uses:
|
|
107
|
+
|
|
108
|
+
```text
|
|
109
|
+
paseo workspace create --isolation local --path ... --title ... --json
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
because the Paseo v0.3.1 public SDK workspace create surface does not expose equivalent isolation/title controls. This workspace is orchestration grouping only; it is not a Git delivery worktree.
|
|
113
|
+
|
|
114
|
+
Trace events:
|
|
115
|
+
|
|
116
|
+
```text
|
|
117
|
+
harness.paseo.workspace.cli.required
|
|
118
|
+
harness.paseo.workspace.cli.created
|
|
119
|
+
harness.paseo.workspace.cli.error
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### External controller cleanup
|
|
123
|
+
|
|
124
|
+
The external deterministic controller may stop agents with the supported Paseo CLI because the public v0.3.1 agent handle does not expose the cancel/kill parity needed for operation cleanup. AEH deliberately does not import internal `DaemonClient` APIs.
|
|
125
|
+
|
|
126
|
+
Trace events:
|
|
127
|
+
|
|
128
|
+
```text
|
|
129
|
+
harness.paseo.cleanup.cli.required
|
|
130
|
+
harness.paseo.cleanup.cli.stop
|
|
131
|
+
harness.paseo.cleanup.cli.error
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
These two gaps should be removed when the public SDK reaches parity.
|
|
135
|
+
|
|
136
|
+
## Integration traces
|
|
137
|
+
|
|
138
|
+
Paseo integration events are always persisted locally to:
|
|
139
|
+
|
|
140
|
+
```text
|
|
141
|
+
.harness/telemetry/paseo.ndjson
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
When normal Harness telemetry is enabled, the same event is also emitted through `recordEvent` and the configured OTLP path.
|
|
145
|
+
|
|
146
|
+
Representative events:
|
|
147
|
+
|
|
148
|
+
```text
|
|
149
|
+
harness.paseo.provider.preflight
|
|
150
|
+
harness.paseo.provider.preflight.skipped
|
|
151
|
+
harness.paseo.agent.launch
|
|
152
|
+
harness.paseo.agent.materialize
|
|
153
|
+
harness.paseo.agent.dispatch
|
|
154
|
+
harness.paseo.agent.snapshot
|
|
155
|
+
harness.paseo.agent.wait
|
|
156
|
+
harness.paseo.agent.wait.completed
|
|
157
|
+
harness.paseo.agent.wait.fallback
|
|
158
|
+
harness.paseo.context.identity
|
|
159
|
+
harness.paseo.context.status
|
|
160
|
+
harness.paseo.context.handoff
|
|
161
|
+
harness.paseo.fallback.cli
|
|
162
|
+
harness.paseo.workspace.cli.*
|
|
163
|
+
harness.paseo.cleanup.cli.*
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
A useful trace answers:
|
|
167
|
+
|
|
168
|
+
- which transport was selected (`sdk` or `cli`);
|
|
169
|
+
- which observation source was used (`subscription`, snapshot, sdk-wait, cli-wait);
|
|
170
|
+
- how the managed lead identity was resolved (`argument`, `environment`, `lead-state`);
|
|
171
|
+
- whether a fallback was exceptional or an intentional SDK parity gap;
|
|
172
|
+
- why the fallback occurred;
|
|
173
|
+
- the associated agent/operation/provider/model/workspace;
|
|
174
|
+
- the relevant duration/status/error when applicable.
|
|
175
|
+
|
|
176
|
+
## Migration rule
|
|
177
|
+
|
|
178
|
+
When Paseo adds public SDK parity for a CLI-only operation:
|
|
179
|
+
|
|
180
|
+
1. add the public SDK path;
|
|
181
|
+
2. make it primary;
|
|
182
|
+
3. retain CLI only as version-negotiated compatibility if still necessary;
|
|
183
|
+
4. add a regression proving SDK use;
|
|
184
|
+
5. keep a fallback trace until the compatibility floor makes CLI removable;
|
|
185
|
+
6. remove any capability inference based on parsing help text when it no longer serves a compatibility path.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentic-engineering-harness",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.8",
|
|
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": {
|
|
@@ -57,7 +57,9 @@ Do not wait for model compaction as the normal context lifecycle.
|
|
|
57
57
|
- >=80%: proactive handoff to a fresh lead;
|
|
58
58
|
- >=90%: mandatory handoff before additional engineering work.
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
In a managed lead, prefer the injected `aeh_context_status` tool before broad work and again after completed-turn boundaries. It reads the current Paseo AgentSnapshot and applies AEH's thresholds to the canonical `lastUsage.contextWindowUsedTokens/contextWindowMaxTokens` fields. `NO_USAGE_YET` means the provider has not emitted usage yet; `USAGE_UNAVAILABLE` means those canonical fields are unavailable. Never infer pressure from generic input/output token counters.
|
|
61
|
+
|
|
62
|
+
Use `aeh context guard --agent "$PASEO_AGENT_ID"` only as the non-interactive/compatibility fallback. When AEH writes a `.harness/paseo/handoffs/*.json` artifact, use `/paseo-handoff` (preferred) or a fresh `create_agent`, point the new lead at that artifact and stop continuing the workflow in the old lead. Deterministic artifacts, not a prose replay of the whole chat, carry state across the handoff. Detached AEH operations and their top-level worker agents survive lead rotation.
|
|
61
63
|
|
|
62
64
|
## Intent layer
|
|
63
65
|
|
|
@@ -138,6 +140,8 @@ Use durable operation state for progress rather than narrating terminal silence:
|
|
|
138
140
|
|
|
139
141
|
Paseo workspaces used for operation grouping are local orchestration containers and do not imply Git branch/worktree delivery. Delivery workspaces remain a separate isolation decision and take precedence for workers when present.
|
|
140
142
|
|
|
143
|
+
Paseo lifecycle/provider/context integration decisions are recorded under `.harness/telemetry/paseo.ndjson`; normal telemetry/OTLP receives the same events when enabled. Use these traces to distinguish SDK-native paths, negotiated fallbacks and intentional public-SDK parity gaps rather than inferring behavior from terminal output.
|
|
144
|
+
|
|
141
145
|
## Quality convergence and recovery
|
|
142
146
|
|
|
143
147
|
After a sealed operation starts, do not reimplement Harness state machines in the lead. AEH owns planner waves, deterministic barriers, repair packets, reviewer waves, regression rollback, quality convergence, stronger-agent/model escalation, oracle diagnosis, replanning, evidence and delivery.
|