agentic-engineering-harness 0.6.7 → 0.6.9
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/completion.d.ts +26 -0
- package/dist/operations/completion.js +152 -0
- package/dist/operations/completion.js.map +1 -0
- package/dist/operations/controller.d.ts +3 -0
- package/dist/operations/controller.js +38 -9
- package/dist/operations/controller.js.map +1 -1
- package/dist/operations/mcp.d.ts +6 -0
- package/dist/operations/mcp.js +72 -12
- package/dist/operations/mcp.js.map +1 -1
- package/dist/operations/state.d.ts +14 -0
- package/dist/operations/state.js +26 -0
- package/dist/operations/state.js.map +1 -1
- package/dist/paseo/native.d.ts +6 -2
- package/dist/paseo/native.js +26 -10
- package/dist/paseo/native.js.map +1 -1
- package/dist/paseo/runtime.d.ts +3 -2
- package/dist/paseo/runtime.js +27 -8
- package/dist/paseo/runtime.js.map +1 -1
- package/dist/paseo/start.d.ts +1 -1
- package/dist/paseo/start.js +4 -2
- package/dist/paseo/start.js.map +1 -1
- package/docs/PASEO_NATIVE.md +57 -4
- package/package.json +1 -1
- package/skills/engineering-workflow/SKILL.md +22 -12
- package/skills/paseo-orchestration/SKILL.md +19 -2
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { dispatchManagedPaseoAgent } from "../paseo/runtime.js";
|
|
2
|
+
import { recordPaseoTrace } from "../paseo/trace.js";
|
|
3
|
+
import type { OperationRecord } from "./state.js";
|
|
4
|
+
export type OperationCompletionStatus = "PENDING" | "SENT" | "FAILED" | "DISABLED";
|
|
5
|
+
export interface OperationCompletionTarget {
|
|
6
|
+
version: 1;
|
|
7
|
+
operationId: string;
|
|
8
|
+
agentId: string;
|
|
9
|
+
source?: string;
|
|
10
|
+
status: OperationCompletionStatus;
|
|
11
|
+
registeredAt: string;
|
|
12
|
+
attemptedAt?: string;
|
|
13
|
+
sentAt?: string;
|
|
14
|
+
failedAt?: string;
|
|
15
|
+
error?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface OperationCompletionDeps {
|
|
18
|
+
dispatch?: typeof dispatchManagedPaseoAgent;
|
|
19
|
+
trace?: typeof recordPaseoTrace;
|
|
20
|
+
}
|
|
21
|
+
export declare function operationCompletionFile(root: string, operationId: string): string;
|
|
22
|
+
export declare function registerOperationCompletionTarget(root: string, operationId: string, agentId: string, source?: string, trace?: typeof recordPaseoTrace): Promise<OperationCompletionTarget>;
|
|
23
|
+
export declare function disableOperationCompletionTarget(root: string, operationId: string, reason: string, trace?: typeof recordPaseoTrace): Promise<void>;
|
|
24
|
+
export declare function loadOperationCompletionTarget(root: string, operationId: string): Promise<OperationCompletionTarget | undefined>;
|
|
25
|
+
export declare function notifyOperationCompletion(root: string, operation: OperationRecord, deps?: OperationCompletionDeps): Promise<OperationCompletionTarget | undefined>;
|
|
26
|
+
export declare function completionPrompt(operation: OperationRecord): string;
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { dispatchManagedPaseoAgent } from "../paseo/runtime.js";
|
|
4
|
+
import { recordPaseoTrace } from "../paseo/trace.js";
|
|
5
|
+
export function operationCompletionFile(root, operationId) {
|
|
6
|
+
return path.resolve(root, ".harness/operations", `${safeId(operationId)}.completion.json`);
|
|
7
|
+
}
|
|
8
|
+
export async function registerOperationCompletionTarget(root, operationId, agentId, source, trace = recordPaseoTrace) {
|
|
9
|
+
const target = {
|
|
10
|
+
version: 1,
|
|
11
|
+
operationId,
|
|
12
|
+
agentId: requiredId(agentId, "agent id"),
|
|
13
|
+
source,
|
|
14
|
+
status: "PENDING",
|
|
15
|
+
registeredAt: new Date().toISOString()
|
|
16
|
+
};
|
|
17
|
+
await persist(root, target);
|
|
18
|
+
await trace(root, "operation.callback.registered", {
|
|
19
|
+
operationId,
|
|
20
|
+
agentId: target.agentId,
|
|
21
|
+
source: source ?? "unknown"
|
|
22
|
+
});
|
|
23
|
+
return target;
|
|
24
|
+
}
|
|
25
|
+
export async function disableOperationCompletionTarget(root, operationId, reason, trace = recordPaseoTrace) {
|
|
26
|
+
const target = await loadOperationCompletionTarget(root, operationId);
|
|
27
|
+
if (!target || target.status === "SENT")
|
|
28
|
+
return;
|
|
29
|
+
const disabled = {
|
|
30
|
+
...target,
|
|
31
|
+
status: "DISABLED",
|
|
32
|
+
attemptedAt: new Date().toISOString(),
|
|
33
|
+
error: reason
|
|
34
|
+
};
|
|
35
|
+
await persist(root, disabled);
|
|
36
|
+
await trace(root, "operation.callback.disabled", {
|
|
37
|
+
operationId,
|
|
38
|
+
agentId: target.agentId,
|
|
39
|
+
reason
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
export async function loadOperationCompletionTarget(root, operationId) {
|
|
43
|
+
try {
|
|
44
|
+
const value = JSON.parse(await fs.readFile(operationCompletionFile(root, operationId), "utf8"));
|
|
45
|
+
if (value.version !== 1 ||
|
|
46
|
+
value.operationId !== operationId ||
|
|
47
|
+
!value.agentId ||
|
|
48
|
+
!["PENDING", "SENT", "FAILED", "DISABLED"].includes(value.status)) {
|
|
49
|
+
throw new Error("invalid completion target record");
|
|
50
|
+
}
|
|
51
|
+
return value;
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
if (isMissing(error))
|
|
55
|
+
return undefined;
|
|
56
|
+
throw error;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
export async function notifyOperationCompletion(root, operation, deps = {}) {
|
|
60
|
+
const target = await loadOperationCompletionTarget(root, operation.id);
|
|
61
|
+
if (!target || target.status === "SENT" || target.status === "DISABLED")
|
|
62
|
+
return target;
|
|
63
|
+
const dispatch = deps.dispatch ?? dispatchManagedPaseoAgent;
|
|
64
|
+
const trace = deps.trace ?? recordPaseoTrace;
|
|
65
|
+
const attemptedAt = new Date().toISOString();
|
|
66
|
+
try {
|
|
67
|
+
const result = await dispatch(root, target.agentId, completionPrompt(operation), 60);
|
|
68
|
+
if (result.exitCode !== 0) {
|
|
69
|
+
throw new Error(result.stderr || result.stdout || `Paseo dispatch exited with code ${result.exitCode}`);
|
|
70
|
+
}
|
|
71
|
+
const sent = {
|
|
72
|
+
...target,
|
|
73
|
+
status: "SENT",
|
|
74
|
+
attemptedAt,
|
|
75
|
+
sentAt: new Date().toISOString(),
|
|
76
|
+
error: undefined
|
|
77
|
+
};
|
|
78
|
+
await persist(root, sent);
|
|
79
|
+
await trace(root, "operation.callback.sent", {
|
|
80
|
+
operationId: operation.id,
|
|
81
|
+
operationStatus: operation.status,
|
|
82
|
+
agentId: target.agentId,
|
|
83
|
+
transport: result.transport,
|
|
84
|
+
resultPath: resultPath(operation) ?? ""
|
|
85
|
+
});
|
|
86
|
+
return sent;
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
const failed = {
|
|
90
|
+
...target,
|
|
91
|
+
status: "FAILED",
|
|
92
|
+
attemptedAt,
|
|
93
|
+
failedAt: new Date().toISOString(),
|
|
94
|
+
error: error instanceof Error ? error.message : String(error)
|
|
95
|
+
};
|
|
96
|
+
await persist(root, failed);
|
|
97
|
+
await trace(root, "operation.callback.failed", {
|
|
98
|
+
operationId: operation.id,
|
|
99
|
+
operationStatus: operation.status,
|
|
100
|
+
agentId: target.agentId,
|
|
101
|
+
error: failed.error ?? "unknown"
|
|
102
|
+
});
|
|
103
|
+
return failed;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
export function completionPrompt(operation) {
|
|
107
|
+
const artifact = resultPath(operation);
|
|
108
|
+
const result = operation.result ? JSON.stringify(operation.result) : "{}";
|
|
109
|
+
return [
|
|
110
|
+
"[AEH_OPERATION_COMPLETED]",
|
|
111
|
+
`Detached AEH operation ${operation.id} (${operation.kind}) reached terminal state ${operation.status}.`,
|
|
112
|
+
"This is an internal AEH controller completion callback for the user request that launched this operation; it is not a new user task.",
|
|
113
|
+
"Do not start a duplicate AUDIT/RUN and do not restart the completed operation.",
|
|
114
|
+
`Use aeh_operation_status for ${operation.id} only if you need to refresh durable metadata.${artifact ? ` Read the authoritative artifact ${artifact}.` : ""}`,
|
|
115
|
+
"Continue and finish the original pending user-facing request now, using the durable operation result and artifacts as the source of truth.",
|
|
116
|
+
operation.error ? `Operation error: ${operation.error.split("\n", 1)[0]}` : `Operation result: ${result}`
|
|
117
|
+
].join("\n");
|
|
118
|
+
}
|
|
119
|
+
function resultPath(operation) {
|
|
120
|
+
const report = operation.result?.report;
|
|
121
|
+
return typeof report === "string" && report.trim() ? report.trim() : undefined;
|
|
122
|
+
}
|
|
123
|
+
async function persist(root, target) {
|
|
124
|
+
const file = operationCompletionFile(root, target.operationId);
|
|
125
|
+
await fs.mkdir(path.dirname(file), { recursive: true });
|
|
126
|
+
const temp = `${file}.${process.pid}.tmp`;
|
|
127
|
+
await fs.writeFile(temp, `${JSON.stringify(target, null, 2)}\n`);
|
|
128
|
+
try {
|
|
129
|
+
await fs.rename(temp, file);
|
|
130
|
+
}
|
|
131
|
+
finally {
|
|
132
|
+
await fs.rm(temp, { force: true }).catch(() => undefined);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
function requiredId(value, name) {
|
|
136
|
+
const trimmed = value.trim();
|
|
137
|
+
if (!trimmed)
|
|
138
|
+
throw new Error(`${name} is required.`);
|
|
139
|
+
return trimmed;
|
|
140
|
+
}
|
|
141
|
+
function safeId(value) {
|
|
142
|
+
if (!/^[A-Za-z0-9._-]+$/.test(value))
|
|
143
|
+
throw new Error(`Invalid operation id '${value}'.`);
|
|
144
|
+
return value;
|
|
145
|
+
}
|
|
146
|
+
function isMissing(error) {
|
|
147
|
+
return Boolean(error &&
|
|
148
|
+
typeof error === "object" &&
|
|
149
|
+
"code" in error &&
|
|
150
|
+
error.code === "ENOENT");
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=completion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/operations/completion.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,10 +6,13 @@ export interface StartOperationOptions {
|
|
|
6
6
|
nodeExecutable: string;
|
|
7
7
|
entryFile: string;
|
|
8
8
|
spawnProcess?: typeof spawn;
|
|
9
|
+
completionAgentId?: string;
|
|
10
|
+
completionSource?: string;
|
|
9
11
|
}
|
|
10
12
|
export interface OperationControllerDeps {
|
|
11
13
|
run?: typeof runProcess;
|
|
12
14
|
trace?: typeof recordPaseoTrace;
|
|
15
|
+
notifyCompletion?: (root: string, operation: OperationRecord) => Promise<unknown>;
|
|
13
16
|
}
|
|
14
17
|
export declare function startDetachedOperation(root: string, kind: OperationKind, payload: OperationPayload, options: StartOperationOptions): Promise<OperationRecord>;
|
|
15
18
|
export declare function executeOperation(root: string, operationId: string, deps?: OperationControllerDeps): Promise<OperationRecord>;
|
|
@@ -8,7 +8,8 @@ import { runTask } from "../core/run.js";
|
|
|
8
8
|
import { listManagedPaseoAgents } from "../paseo/runtime.js";
|
|
9
9
|
import { recordPaseoTrace } from "../paseo/trace.js";
|
|
10
10
|
import { runProcess } from "../utils/process.js";
|
|
11
|
-
import {
|
|
11
|
+
import { disableOperationCompletionTarget, notifyOperationCompletion, registerOperationCompletionTarget } from "./completion.js";
|
|
12
|
+
import { loadOperation, patchOperation, saveOperation, transitionOperationToTerminal } from "./state.js";
|
|
12
13
|
export async function startDetachedOperation(root, kind, payload, options) {
|
|
13
14
|
const absoluteRoot = path.resolve(root);
|
|
14
15
|
const now = new Date().toISOString();
|
|
@@ -25,6 +26,10 @@ export async function startDetachedOperation(root, kind, payload, options) {
|
|
|
25
26
|
updatedAt: now
|
|
26
27
|
};
|
|
27
28
|
await saveOperation(absoluteRoot, record);
|
|
29
|
+
const completionAgentId = options.completionAgentId?.trim() || process.env.PASEO_AGENT_ID?.trim() || undefined;
|
|
30
|
+
if (completionAgentId) {
|
|
31
|
+
await registerOperationCompletionTarget(absoluteRoot, id, completionAgentId, options.completionSource ?? (options.completionAgentId ? "explicit" : "environment"));
|
|
32
|
+
}
|
|
28
33
|
const spawnProcess = options.spawnProcess ?? spawn;
|
|
29
34
|
let child;
|
|
30
35
|
try {
|
|
@@ -40,6 +45,9 @@ export async function startDetachedOperation(root, kind, payload, options) {
|
|
|
40
45
|
});
|
|
41
46
|
}
|
|
42
47
|
catch (error) {
|
|
48
|
+
if (completionAgentId) {
|
|
49
|
+
await disableOperationCompletionTarget(absoluteRoot, id, `Detached controller spawn failed before the initiating tool returned: ${String(error)}`).catch(() => undefined);
|
|
50
|
+
}
|
|
43
51
|
return patchOperation(absoluteRoot, id, {
|
|
44
52
|
status: "FAILED",
|
|
45
53
|
phase: "spawn-failed",
|
|
@@ -92,7 +100,7 @@ export async function executeOperation(root, operationId, deps = {}) {
|
|
|
92
100
|
const current = await loadOperation(absoluteRoot, operationId);
|
|
93
101
|
if (current.status === "CANCELLED")
|
|
94
102
|
return current;
|
|
95
|
-
return
|
|
103
|
+
return terminalizeOperation(absoluteRoot, operationId, {
|
|
96
104
|
status: "SUCCEEDED",
|
|
97
105
|
phase: "finished",
|
|
98
106
|
finishedAt: new Date().toISOString(),
|
|
@@ -102,7 +110,7 @@ export async function executeOperation(root, operationId, deps = {}) {
|
|
|
102
110
|
productionSafe: report.productionSafe,
|
|
103
111
|
report: `.harness/audits/${report.auditId}.json`
|
|
104
112
|
}
|
|
105
|
-
});
|
|
113
|
+
}, deps);
|
|
106
114
|
}
|
|
107
115
|
const payload = record.payload;
|
|
108
116
|
const contract = await loadTaskContract(absoluteRoot, payload.taskId, config);
|
|
@@ -112,7 +120,7 @@ export async function executeOperation(root, operationId, deps = {}) {
|
|
|
112
120
|
const current = await loadOperation(absoluteRoot, operationId);
|
|
113
121
|
if (current.status === "CANCELLED")
|
|
114
122
|
return current;
|
|
115
|
-
return
|
|
123
|
+
return terminalizeOperation(absoluteRoot, operationId, {
|
|
116
124
|
status: result.status === "PASS" ? "SUCCEEDED" : "FAILED",
|
|
117
125
|
phase: "finished",
|
|
118
126
|
finishedAt: new Date().toISOString(),
|
|
@@ -121,18 +129,18 @@ export async function executeOperation(root, operationId, deps = {}) {
|
|
|
121
129
|
status: result.status,
|
|
122
130
|
attempts: result.attempts
|
|
123
131
|
}
|
|
124
|
-
});
|
|
132
|
+
}, deps);
|
|
125
133
|
}
|
|
126
134
|
catch (error) {
|
|
127
135
|
const current = await loadOperation(absoluteRoot, operationId).catch(() => record);
|
|
128
136
|
if (current.status === "CANCELLED")
|
|
129
137
|
return current;
|
|
130
|
-
return
|
|
138
|
+
return terminalizeOperation(absoluteRoot, operationId, {
|
|
131
139
|
status: "FAILED",
|
|
132
140
|
phase: "failed",
|
|
133
141
|
error: error instanceof Error ? error.stack ?? error.message : String(error),
|
|
134
142
|
finishedAt: new Date().toISOString()
|
|
135
|
-
});
|
|
143
|
+
}, deps);
|
|
136
144
|
}
|
|
137
145
|
}
|
|
138
146
|
export async function waitForOperation(root, operationId, timeoutMs = 1_800_000, pollMs = 500) {
|
|
@@ -218,12 +226,12 @@ export async function cancelOperation(root, operationId, deps = {}) {
|
|
|
218
226
|
cleanupWarnings.push(`agent ${agentId}: ${stopped.stderr || stopped.stdout || `exit ${stopped.exitCode}`}`);
|
|
219
227
|
}
|
|
220
228
|
}
|
|
221
|
-
return
|
|
229
|
+
return terminalizeOperation(absoluteRoot, operationId, {
|
|
222
230
|
status: "CANCELLED",
|
|
223
231
|
phase: "cancelled",
|
|
224
232
|
finishedAt: new Date().toISOString(),
|
|
225
233
|
cleanupWarnings: cleanupWarnings.length ? cleanupWarnings : undefined
|
|
226
|
-
});
|
|
234
|
+
}, deps);
|
|
227
235
|
}
|
|
228
236
|
export function createOperationId(kind, seed) {
|
|
229
237
|
const stamp = new Date()
|
|
@@ -233,6 +241,27 @@ export function createOperationId(kind, seed) {
|
|
|
233
241
|
const hash = crypto.createHash("sha256").update(seed).digest("hex").slice(0, 8);
|
|
234
242
|
return `${kind.toUpperCase()}-${stamp}-${hash}`;
|
|
235
243
|
}
|
|
244
|
+
async function terminalizeOperation(root, operationId, patch, deps) {
|
|
245
|
+
const { record: terminal, transitioned } = await transitionOperationToTerminal(root, operationId, patch);
|
|
246
|
+
if (!transitioned)
|
|
247
|
+
return terminal;
|
|
248
|
+
const trace = deps.trace ?? recordPaseoTrace;
|
|
249
|
+
try {
|
|
250
|
+
if (deps.notifyCompletion)
|
|
251
|
+
await deps.notifyCompletion(root, terminal);
|
|
252
|
+
else
|
|
253
|
+
await notifyOperationCompletion(root, terminal, { trace });
|
|
254
|
+
}
|
|
255
|
+
catch (error) {
|
|
256
|
+
await trace(root, "operation.callback.failed", {
|
|
257
|
+
operationId,
|
|
258
|
+
operationStatus: terminal.status,
|
|
259
|
+
error: error instanceof Error ? error.message : String(error),
|
|
260
|
+
boundary: "controller"
|
|
261
|
+
}).catch(() => undefined);
|
|
262
|
+
}
|
|
263
|
+
return terminal;
|
|
264
|
+
}
|
|
236
265
|
async function ensureOperationWorkspace(root, record, run, trace) {
|
|
237
266
|
const title = `AEH ${record.kind.toUpperCase()} · ${record.id}`;
|
|
238
267
|
const command = `paseo workspace create --isolation local --path ${quote(root)} --title ${quote(title)} --json`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/operations/controller.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAsB,MAAM,qBAAqB,CAAC;AACrE,OAAO,EACL,aAAa,EACb,cAAc,EACd,aAAa,EAMd,MAAM,YAAY,CAAC;AAapB,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAY,EACZ,IAAmB,EACnB,OAAyB,EACzB,OAA8B;IAE9B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,EAAE,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAoB;QAC9B,OAAO,EAAE,CAAC;QACV,EAAE;QACF,IAAI;QACJ,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,YAAY;QAClB,OAAO;QACP,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf,CAAC;IACF,MAAM,aAAa,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAE1C,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC;IACnD,IAAI,KAAmB,CAAC;IACxB,IAAI,CAAC;QACH,KAAK,GAAG,YAAY,CAClB,OAAO,CAAC,cAAc,EACtB,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,CAAC,EAC7D;YACE,GAAG,EAAE,YAAY;YACjB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,QAAQ;YACf,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,gBAAgB,EAAE,EAAE;gBACpB,kBAAkB,EAAE,IAAI;aACzB;SACF,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,cAAc,CAAC,YAAY,EAAE,EAAE,EAAE;YACtC,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,cAAc;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;YACpB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC,CAAC;IACL,CAAC;IACD,KAAK,CAAC,KAAK,EAAE,CAAC;IACd,OAAO,cAAc,CAAC,YAAY,EAAE,EAAE,EAAE;QACtC,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,KAAK,EAAE,YAAY;KACpB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAY,EACZ,WAAmB,EACnB,OAAgC,EAAE;IAElC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,gBAAgB,CAAC;IAC7C,IAAI,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW;QAAE,OAAO,MAAM,CAAC;IACjD,MAAM,GAAG,MAAM,cAAc,CAAC,YAAY,EAAE,WAAW,EAAE;QACvD,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,WAAW;QAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,MAAM,CAAC,EAAE,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC;IAC7C,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAC9C,YAAY,EACZ,MAAM,EACN,IAAI,CAAC,GAAG,IAAI,UAAU,EACtB,KAAK,CACN,CAAC;IACF,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAG,SAAS,CAAC,WAAW,CAAC;QAC/D,MAAM,GAAG,MAAM,cAAc,CAAC,YAAY,EAAE,WAAW,EAAE;YACvD,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,gBAAgB,EAAE,SAAS;SAC5B,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,GAAG,MAAM,cAAc,CAAC,YAAY,EAAE,WAAW,EAAE;YACvD,gBAAgB,EAAE,SAAS,CAAC,OAAO;SACpC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,YAAY,CAAC,CAAC;QACrD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAgC,CAAC;YACxD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE;gBAClD,GAAG,OAAO;gBACV,OAAO,EAAE,MAAM,CAAC,EAAE;aACnB,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YAC/D,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW;gBAAE,OAAO,OAAO,CAAC;YACnD,OAAO,cAAc,CAAC,YAAY,EAAE,WAAW,EAAE;gBAC/C,MAAM,EAAE,WAAW;gBACnB,KAAK,EAAE,UAAU;gBACjB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACpC,MAAM,EAAE;oBACN,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,cAAc,EAAE,MAAM,CAAC,cAAc;oBACrC,MAAM,EAAE,mBAAmB,MAAM,CAAC,OAAO,OAAO;iBACjD;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAA8B,CAAC;QACtD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE;YAC3D,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAC/D,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW;YAAE,OAAO,OAAO,CAAC;QACnD,OAAO,cAAc,CAAC,YAAY,EAAE,WAAW,EAAE;YAC/C,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;YACzD,KAAK,EAAE,UAAU;YACjB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,MAAM,EAAE;gBACN,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;QACnF,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW;YAAE,OAAO,OAAO,CAAC;QACnD,OAAO,cAAc,CAAC,YAAY,EAAE,WAAW,EAAE;YAC/C,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC5E,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAY,EACZ,WAAmB,EACnB,SAAS,GAAG,SAAS,EACrB,MAAM,GAAG,GAAG;IAEZ,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,SAAS,CAAC;QACR,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACtD,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;QAC7C,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,mCAAmC,WAAW,UAAU,SAAS,KAAK,CAAC,CAAC;QAC1F,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAY,EACZ,WAAmB,EACnB,OAAgC,EAAE;IAElC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,gBAAgB,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC9D,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC7C,MAAM,eAAe,GAAa,EAAE,CAAC;IAErC,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC;QAC7C,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjC,eAAe,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5F,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,KAAK,CAAC,YAAY,EAAE,mBAAmB,EAAE;YAC7C,WAAW;YACX,MAAM,EAAE,iBAAiB;YACzB,UAAU,EAAE,QAAQ,CAAC,MAAM;SAC5B,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,YAAY,EAAE;gBAC5D,eAAe,EAAE,WAAW;aAC7B,CAAC,CAAC;YACH,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7D,MAAM,KAAK,CAAC,YAAY,EAAE,mBAAmB,EAAE;gBAC7C,WAAW;gBACX,MAAM,EAAE,0BAA0B;gBAClC,UAAU,EAAE,QAAQ,CAAC,MAAM;gBAC3B,MAAM,EAAE,4DAA4D;aACrE,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAe,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC1D,MAAM,KAAK,CAAC,YAAY,EAAE,mBAAmB,EAAE;gBAC7C,WAAW;gBACX,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;aACrB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,KAAK,CAAC,YAAY,EAAE,sBAAsB,EAAE;QAChD,WAAW;QACX,MAAM,EACJ,iFAAiF;QACnF,UAAU,EAAE,QAAQ,CAAC,MAAM;KAC5B,CAAC,CAAC;IACH,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,cAAc,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE;YACxD,GAAG,EAAE,YAAY;YACjB,SAAS,EAAE,MAAM;SAClB,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACnB,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;YACrB,UAAU,EAAE,CAAC;SACd,CAAC,CAAC,CAAC;QACJ,MAAM,KAAK,CAAC,YAAY,EAAE,kBAAkB,EAAE;YAC5C,WAAW;YACX,OAAO;YACP,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC3B,eAAe,CAAC,IAAI,CAClB,SAAS,OAAO,KAAK,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,QAAQ,OAAO,CAAC,QAAQ,EAAE,EAAE,CACtF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC,YAAY,EAAE,WAAW,EAAE;QAC/C,MAAM,EAAE,WAAW;QACnB,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACpC,eAAe,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;KACtE,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAmB,EAAE,IAAY;IACjE,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE;SACrB,WAAW,EAAE;SACb,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;SACpB,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChF,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,IAAY,EACZ,MAAuB,EACvB,GAAsB,EACtB,KAA8B;IAE9B,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC;IAChE,MAAM,OAAO,GAAG,mDAAmD,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;IAChH,MAAM,KAAK,CAAC,IAAI,EAAE,wBAAwB,EAAE;QAC1C,WAAW,EAAE,MAAM,CAAC,EAAE;QACtB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,+DAA+D;QACvE,SAAS,EAAE,OAAO;KACnB,CAAC,CAAC;IAEH,IAAI,MAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,KAAK,CAAC,IAAI,EAAE,qBAAqB,EAAE;YACvC,WAAW,EAAE,MAAM,CAAC,EAAE;YACtB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;SACrB,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE,mDAAmD,MAAM,CAAC,KAAK,CAAC,EAAE;SAC5E,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,KAAK,CAAC,IAAI,EAAE,qBAAqB,EAAE;YACvC,WAAW,EAAE,MAAM,CAAC,EAAE;YACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM;SACtC,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE,mDAAmD,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,QAAQ,MAAM,CAAC,QAAQ,EAAE,EAAE;SAC1H,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,KAAK,CAAC,IAAI,EAAE,uBAAuB,EAAE;YACzC,WAAW,EAAE,MAAM,CAAC,EAAE;YACtB,WAAW;YACX,SAAS,EAAE,OAAO;SACnB,CAAC,CAAC;QACH,OAAO,EAAE,WAAW,EAAE,CAAC;IACzB,CAAC;IACD,MAAM,KAAK,CAAC,IAAI,EAAE,qBAAqB,EAAE;QACvC,WAAW,EAAE,MAAM,CAAC,EAAE;QACtB,KAAK,EAAE,wCAAwC;KAChD,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE,wEAAwE;KAClF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IACnC,IAAI,CAAC;QACH,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,KAAK,CACf,6DAA6D,CAC9D,EAAE,CAAC,CAAC,CAAC,CAAC;IACT,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,EAAE;gBAAE,OAAO,EAAE,CAAC;QACpB,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,KAAK,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC;QACxD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,IACE,OAAO,SAAS,KAAK,QAAQ;YAC7B,SAAS;YACT,CAAC,GAAG,KAAK,IAAI;gBACX,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC5B,KAAK,IAAI,MAAM;gBACf,cAAc,IAAI,MAAM;gBACxB,MAAM,IAAI,MAAM,CAAC,EACnB,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1C,MAAM,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,EAAE;YAAE,OAAO,EAAE,CAAC;IACpB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,UAAU,CAAC,MAAiC;IACnD,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,WAAW,CAAC;AACjF,CAAC;AACD,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC;AAC/C,CAAC"}
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/operations/controller.ts"],"names":[],"mappings":"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"}
|
package/dist/operations/mcp.d.ts
CHANGED
|
@@ -1 +1,7 @@
|
|
|
1
|
+
export type ContextAgentIdentitySource = "argument" | "environment" | "lead-state";
|
|
2
|
+
export interface ContextAgentIdentity {
|
|
3
|
+
agentId: string;
|
|
4
|
+
source: ContextAgentIdentitySource;
|
|
5
|
+
}
|
|
1
6
|
export declare function serveOperationMcp(): Promise<void>;
|
|
7
|
+
export declare function resolveContextAgentIdentity(root: string, explicitAgentId?: string, env?: NodeJS.ProcessEnv): Promise<ContextAgentIdentity>;
|
package/dist/operations/mcp.js
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
1
2
|
import readline from "node:readline";
|
|
2
3
|
import path from "node:path";
|
|
3
4
|
import process from "node:process";
|
|
4
5
|
import { loadProjectConfig } from "../core/config.js";
|
|
5
6
|
import { statusLeadContext } from "../paseo/context.js";
|
|
7
|
+
import { PASEO_BOOTSTRAP_VERSION } from "../paseo/start.js";
|
|
8
|
+
import { recordPaseoTrace } from "../paseo/trace.js";
|
|
9
|
+
import { VERSION } from "../version.js";
|
|
6
10
|
import { cancelOperation, startDetachedOperation } from "./controller.js";
|
|
7
11
|
import { loadOperation } from "./state.js";
|
|
8
12
|
const tools = [
|
|
9
13
|
{
|
|
10
14
|
name: "aeh_operation_start_audit",
|
|
11
|
-
description: "Start a detached Harness AUDIT for this lead's fixed project root and return its durable operation record immediately.",
|
|
15
|
+
description: "Start a detached Harness AUDIT for this lead's fixed project root and return its durable operation record immediately. AEH registers this managed lead as the completion target and will send a controller callback when the operation becomes terminal; do not busy-poll status in the normal path.",
|
|
12
16
|
inputSchema: {
|
|
13
17
|
type: "object",
|
|
14
18
|
properties: {
|
|
@@ -24,7 +28,7 @@ const tools = [
|
|
|
24
28
|
},
|
|
25
29
|
{
|
|
26
30
|
name: "aeh_operation_start_run",
|
|
27
|
-
description: "Start detached execution of an already prepared/sealed AEH task in this lead's fixed project root and return its operation record immediately.",
|
|
31
|
+
description: "Start detached execution of an already prepared/sealed AEH task in this lead's fixed project root and return its operation record immediately. AEH registers this managed lead as the completion target and will send a controller callback when the operation becomes terminal; do not busy-poll status in the normal path.",
|
|
28
32
|
inputSchema: {
|
|
29
33
|
type: "object",
|
|
30
34
|
properties: { taskId: { type: "string" }, profile: { type: "string" } },
|
|
@@ -34,7 +38,7 @@ const tools = [
|
|
|
34
38
|
},
|
|
35
39
|
{
|
|
36
40
|
name: "aeh_operation_status",
|
|
37
|
-
description: "Read durable status/phase/result for an AEH operation in this lead's fixed project root
|
|
41
|
+
description: "Read durable status/phase/result for an AEH operation in this lead's fixed project root. Use for explicit diagnostics/manual inspection; normal managed-lead completion is callback-driven.",
|
|
38
42
|
inputSchema: {
|
|
39
43
|
type: "object",
|
|
40
44
|
properties: { operationId: { type: "string" } },
|
|
@@ -44,7 +48,7 @@ const tools = [
|
|
|
44
48
|
},
|
|
45
49
|
{
|
|
46
50
|
name: "aeh_operation_cancel",
|
|
47
|
-
description: "Cancel a running AEH operation in this lead's fixed project root and persist CANCELLED state.",
|
|
51
|
+
description: "Cancel a running AEH operation in this lead's fixed project root and persist CANCELLED state. A registered initiating lead is notified after cancellation completes.",
|
|
48
52
|
inputSchema: {
|
|
49
53
|
type: "object",
|
|
50
54
|
properties: { operationId: { type: "string" } },
|
|
@@ -54,7 +58,7 @@ const tools = [
|
|
|
54
58
|
},
|
|
55
59
|
{
|
|
56
60
|
name: "aeh_context_status",
|
|
57
|
-
description: "Read
|
|
61
|
+
description: "Read the managed lead's current Paseo AgentSnapshot usage and evaluate AEH context-pressure policy without shell/log parsing. No agentId is required for a normal managed lead: AEH resolves its durable lead-session identity when the MCP host does not propagate PASEO_AGENT_ID. Pass agentId only for explicit diagnostics/non-lead callers.",
|
|
58
62
|
inputSchema: {
|
|
59
63
|
type: "object",
|
|
60
64
|
properties: { agentId: { type: "string" } },
|
|
@@ -89,7 +93,7 @@ async function handle(request) {
|
|
|
89
93
|
return {
|
|
90
94
|
protocolVersion: typeof request.params?.protocolVersion === "string" ? request.params.protocolVersion : "2025-06-18",
|
|
91
95
|
capabilities: { tools: {} },
|
|
92
|
-
serverInfo: { name: "aeh-operation-controller", version: "
|
|
96
|
+
serverInfo: { name: "aeh-operation-controller", version: "3" }
|
|
93
97
|
};
|
|
94
98
|
}
|
|
95
99
|
if (request.method === "ping")
|
|
@@ -105,6 +109,7 @@ async function callTool(params) {
|
|
|
105
109
|
const args = object(params.arguments);
|
|
106
110
|
const root = controlRoot();
|
|
107
111
|
if (name === "aeh_operation_start_audit") {
|
|
112
|
+
const identity = await resolveContextAgentIdentity(root);
|
|
108
113
|
const payload = {
|
|
109
114
|
request: string(args.request, "request"),
|
|
110
115
|
files: stringArray(args.files),
|
|
@@ -112,25 +117,80 @@ async function callTool(params) {
|
|
|
112
117
|
risk: risk(args.risk),
|
|
113
118
|
reviewers: stringArray(args.reviewers)
|
|
114
119
|
};
|
|
115
|
-
|
|
120
|
+
await recordPaseoTrace(root, "operation.callback.target", { kind: "audit", agentId: identity.agentId, source: identity.source });
|
|
121
|
+
return toolResult(await startDetachedOperation(root, "audit", payload, {
|
|
122
|
+
nodeExecutable: process.execPath,
|
|
123
|
+
entryFile: path.resolve(process.argv[1]),
|
|
124
|
+
completionAgentId: identity.agentId,
|
|
125
|
+
completionSource: identity.source
|
|
126
|
+
}));
|
|
116
127
|
}
|
|
117
128
|
if (name === "aeh_operation_start_run") {
|
|
129
|
+
const identity = await resolveContextAgentIdentity(root);
|
|
118
130
|
const payload = { taskId: string(args.taskId, "taskId"), profile: optionalString(args.profile) };
|
|
119
|
-
|
|
131
|
+
await recordPaseoTrace(root, "operation.callback.target", { kind: "run", agentId: identity.agentId, source: identity.source });
|
|
132
|
+
return toolResult(await startDetachedOperation(root, "run", payload, {
|
|
133
|
+
nodeExecutable: process.execPath,
|
|
134
|
+
entryFile: path.resolve(process.argv[1]),
|
|
135
|
+
completionAgentId: identity.agentId,
|
|
136
|
+
completionSource: identity.source
|
|
137
|
+
}));
|
|
120
138
|
}
|
|
121
139
|
if (name === "aeh_operation_status")
|
|
122
140
|
return toolResult(await loadOperation(root, string(args.operationId, "operationId")));
|
|
123
141
|
if (name === "aeh_operation_cancel")
|
|
124
142
|
return toolResult(await cancelOperation(root, string(args.operationId, "operationId")));
|
|
125
143
|
if (name === "aeh_context_status") {
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
throw new Error("aeh_context_status requires agentId because PASEO_AGENT_ID is not available to this MCP subprocess.");
|
|
144
|
+
const identity = await resolveContextAgentIdentity(root, optionalString(args.agentId));
|
|
145
|
+
await recordPaseoTrace(root, "context.identity", { agentId: identity.agentId, source: identity.source });
|
|
129
146
|
const config = await loadProjectConfig(root);
|
|
130
|
-
return toolResult(await statusLeadContext(root, config, agentId));
|
|
147
|
+
return toolResult(await statusLeadContext(root, config, identity.agentId));
|
|
131
148
|
}
|
|
132
149
|
throw new Error(`Unknown AEH operation tool '${name}'.`);
|
|
133
150
|
}
|
|
151
|
+
export async function resolveContextAgentIdentity(root, explicitAgentId, env = process.env) {
|
|
152
|
+
const explicit = optionalString(explicitAgentId);
|
|
153
|
+
if (explicit)
|
|
154
|
+
return { agentId: explicit, source: "argument" };
|
|
155
|
+
const environment = optionalString(env.PASEO_AGENT_ID);
|
|
156
|
+
if (environment)
|
|
157
|
+
return { agentId: environment, source: "environment" };
|
|
158
|
+
const absoluteRoot = path.resolve(root);
|
|
159
|
+
const config = await loadProjectConfig(absoluteRoot);
|
|
160
|
+
const stateDir = path.resolve(absoluteRoot, config.orchestration?.interactive?.stateDir ?? ".harness/paseo");
|
|
161
|
+
const stateFile = path.join(stateDir, "lead-session.json");
|
|
162
|
+
let value;
|
|
163
|
+
try {
|
|
164
|
+
value = JSON.parse(await fs.readFile(stateFile, "utf8"));
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
throw new Error(`AEH could not resolve the current managed lead agent: neither an explicit agentId nor PASEO_AGENT_ID is available, and ${stateFile} could not be read as durable lead state. Start a fresh managed lead with aeh start or pass agentId explicitly for diagnostics. (${error instanceof Error ? error.message : String(error)})`);
|
|
168
|
+
}
|
|
169
|
+
const state = object(value);
|
|
170
|
+
const agentId = optionalString(state.agentId);
|
|
171
|
+
const projectRoot = optionalString(state.projectRoot);
|
|
172
|
+
const projectName = optionalString(state.projectName);
|
|
173
|
+
const aehVersion = optionalString(state.aehVersion);
|
|
174
|
+
const version = typeof state.version === "number" ? state.version : undefined;
|
|
175
|
+
const bootstrapVersion = typeof state.bootstrapVersion === "number" ? state.bootstrapVersion : undefined;
|
|
176
|
+
const mismatches = [];
|
|
177
|
+
if (version !== 2)
|
|
178
|
+
mismatches.push(`state version ${String(version ?? "missing")} != 2`);
|
|
179
|
+
if (bootstrapVersion !== PASEO_BOOTSTRAP_VERSION)
|
|
180
|
+
mismatches.push(`bootstrap ${String(bootstrapVersion ?? "missing")} != ${PASEO_BOOTSTRAP_VERSION}`);
|
|
181
|
+
if (aehVersion !== VERSION)
|
|
182
|
+
mismatches.push(`AEH ${aehVersion ?? "missing"} != ${VERSION}`);
|
|
183
|
+
if (!projectRoot || path.resolve(projectRoot) !== absoluteRoot)
|
|
184
|
+
mismatches.push("project root does not match AEH_CONTROL_ROOT");
|
|
185
|
+
if (projectName !== config.project.name)
|
|
186
|
+
mismatches.push(`project ${projectName ?? "missing"} != ${config.project.name}`);
|
|
187
|
+
if (!agentId)
|
|
188
|
+
mismatches.push("agentId is missing");
|
|
189
|
+
if (mismatches.length) {
|
|
190
|
+
throw new Error(`AEH refused incompatible durable lead state at ${stateFile}: ${mismatches.join("; ")}. Start a fresh managed lead with aeh start or pass agentId explicitly for diagnostics.`);
|
|
191
|
+
}
|
|
192
|
+
return { agentId: agentId, source: "lead-state" };
|
|
193
|
+
}
|
|
134
194
|
function controlRoot() { return path.resolve(process.env.AEH_CONTROL_ROOT?.trim() || process.cwd()); }
|
|
135
195
|
function toolResult(value) { return { content: [{ type: "text", text: JSON.stringify(value, null, 2) }], structuredContent: value }; }
|
|
136
196
|
function write(value) { process.stdout.write(`${JSON.stringify(value)}\n`); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/operations/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAwD,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/operations/mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,10 +40,24 @@ export interface OperationRecord {
|
|
|
40
40
|
result?: Record<string, unknown>;
|
|
41
41
|
error?: string;
|
|
42
42
|
}
|
|
43
|
+
export interface TerminalOperationTransition {
|
|
44
|
+
record: OperationRecord;
|
|
45
|
+
transitioned: boolean;
|
|
46
|
+
}
|
|
43
47
|
export declare function operationFile(root: string, operationId: string): string;
|
|
44
48
|
export declare function loadOperation(root: string, operationId: string): Promise<OperationRecord>;
|
|
45
49
|
export declare function saveOperation(root: string, record: OperationRecord): Promise<void>;
|
|
46
50
|
export declare function patchOperation(root: string, operationId: string, patch: Partial<OperationRecord>): Promise<OperationRecord>;
|
|
51
|
+
/**
|
|
52
|
+
* Atomically grants exactly one controller path ownership of a non-terminal ->
|
|
53
|
+
* terminal transition. Callers must perform one-shot terminal side effects
|
|
54
|
+
* (for example the managed-lead completion callback) only when transitioned is
|
|
55
|
+
* true. A concurrent cancel/execute path receives the already-terminal record
|
|
56
|
+
* without becoming a second side-effect owner.
|
|
57
|
+
*/
|
|
58
|
+
export declare function transitionOperationToTerminal(root: string, operationId: string, patch: Partial<OperationRecord> & {
|
|
59
|
+
status: "SUCCEEDED" | "FAILED" | "CANCELLED";
|
|
60
|
+
}): Promise<TerminalOperationTransition>;
|
|
47
61
|
export declare function registerOperationAgent(root: string, operationId: string, agent: Omit<OperationAgentRecord, "registeredAt">): Promise<OperationRecord>;
|
|
48
62
|
export declare function registerCurrentOperationAgent(root: string, agent: Omit<OperationAgentRecord, "registeredAt">): Promise<void>;
|
|
49
63
|
export declare function currentOperationContext(): {
|