agentic-engineering-harness 0.6.5 → 0.6.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -1
- package/dist/main.js +62 -0
- package/dist/main.js.map +1 -1
- 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/interactive.d.ts +5 -0
- package/dist/operations/interactive.js +45 -0
- package/dist/operations/interactive.js.map +1 -0
- package/dist/operations/mcp.js +19 -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 +8 -4
- package/dist/paseo/start.js +166 -41
- 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/dist/runtime/invocation.d.ts +10 -0
- package/dist/runtime/invocation.js +51 -0
- package/dist/runtime/invocation.js.map +1 -0
- package/docs/PASEO_NATIVE.md +181 -0
- package/package.json +5 -3
- package/scripts/link-self-bin.mjs +36 -0
- package/skills/engineering-workflow/SKILL.md +5 -1
- package/skills/paseo-orchestration/SKILL.md +33 -5
package/dist/operations/mcp.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import readline from "node:readline";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import process from "node:process";
|
|
4
|
+
import { loadProjectConfig } from "../core/config.js";
|
|
5
|
+
import { statusLeadContext } from "../paseo/context.js";
|
|
4
6
|
import { cancelOperation, startDetachedOperation } from "./controller.js";
|
|
5
7
|
import { loadOperation } from "./state.js";
|
|
6
8
|
const tools = [
|
|
@@ -49,6 +51,15 @@ const tools = [
|
|
|
49
51
|
required: ["operationId"],
|
|
50
52
|
additionalProperties: false
|
|
51
53
|
}
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: "aeh_context_status",
|
|
57
|
+
description: "Read this managed lead's current Paseo AgentSnapshot usage and evaluate AEH context-pressure policy without shell/log parsing. Optionally pass agentId when the host does not expose PASEO_AGENT_ID to the MCP subprocess.",
|
|
58
|
+
inputSchema: {
|
|
59
|
+
type: "object",
|
|
60
|
+
properties: { agentId: { type: "string" } },
|
|
61
|
+
additionalProperties: false
|
|
62
|
+
}
|
|
52
63
|
}
|
|
53
64
|
];
|
|
54
65
|
export async function serveOperationMcp() {
|
|
@@ -78,7 +89,7 @@ async function handle(request) {
|
|
|
78
89
|
return {
|
|
79
90
|
protocolVersion: typeof request.params?.protocolVersion === "string" ? request.params.protocolVersion : "2025-06-18",
|
|
80
91
|
capabilities: { tools: {} },
|
|
81
|
-
serverInfo: { name: "aeh-operation-controller", version: "
|
|
92
|
+
serverInfo: { name: "aeh-operation-controller", version: "2" }
|
|
82
93
|
};
|
|
83
94
|
}
|
|
84
95
|
if (request.method === "ping")
|
|
@@ -111,6 +122,13 @@ async function callTool(params) {
|
|
|
111
122
|
return toolResult(await loadOperation(root, string(args.operationId, "operationId")));
|
|
112
123
|
if (name === "aeh_operation_cancel")
|
|
113
124
|
return toolResult(await cancelOperation(root, string(args.operationId, "operationId")));
|
|
125
|
+
if (name === "aeh_context_status") {
|
|
126
|
+
const agentId = optionalString(args.agentId) ?? process.env.PASEO_AGENT_ID?.trim();
|
|
127
|
+
if (!agentId)
|
|
128
|
+
throw new Error("aeh_context_status requires agentId because PASEO_AGENT_ID is not available to this MCP subprocess.");
|
|
129
|
+
const config = await loadProjectConfig(root);
|
|
130
|
+
return toolResult(await statusLeadContext(root, config, agentId));
|
|
131
|
+
}
|
|
114
132
|
throw new Error(`Unknown AEH operation tool '${name}'.`);
|
|
115
133
|
}
|
|
116
134
|
function controlRoot() { return path.resolve(process.env.AEH_CONTROL_ROOT?.trim() || process.cwd()); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/operations/mcp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/operations/mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,14 @@ export interface RunOperationPayload {
|
|
|
12
12
|
profile?: string;
|
|
13
13
|
}
|
|
14
14
|
export type OperationPayload = AuditOperationPayload | RunOperationPayload;
|
|
15
|
+
export interface OperationAgentRecord {
|
|
16
|
+
id: string;
|
|
17
|
+
role?: string;
|
|
18
|
+
phase?: string;
|
|
19
|
+
workspaceId?: string;
|
|
20
|
+
transport?: "sdk" | "cli";
|
|
21
|
+
registeredAt: string;
|
|
22
|
+
}
|
|
15
23
|
export interface OperationRecord {
|
|
16
24
|
version: 1;
|
|
17
25
|
id: string;
|
|
@@ -27,6 +35,7 @@ export interface OperationRecord {
|
|
|
27
35
|
pid?: number;
|
|
28
36
|
workspaceId?: string;
|
|
29
37
|
workspaceWarning?: string;
|
|
38
|
+
agents?: OperationAgentRecord[];
|
|
30
39
|
cleanupWarnings?: string[];
|
|
31
40
|
result?: Record<string, unknown>;
|
|
32
41
|
error?: string;
|
|
@@ -35,6 +44,8 @@ export declare function operationFile(root: string, operationId: string): string
|
|
|
35
44
|
export declare function loadOperation(root: string, operationId: string): Promise<OperationRecord>;
|
|
36
45
|
export declare function saveOperation(root: string, record: OperationRecord): Promise<void>;
|
|
37
46
|
export declare function patchOperation(root: string, operationId: string, patch: Partial<OperationRecord>): Promise<OperationRecord>;
|
|
47
|
+
export declare function registerOperationAgent(root: string, operationId: string, agent: Omit<OperationAgentRecord, "registeredAt">): Promise<OperationRecord>;
|
|
48
|
+
export declare function registerCurrentOperationAgent(root: string, agent: Omit<OperationAgentRecord, "registeredAt">): Promise<void>;
|
|
38
49
|
export declare function currentOperationContext(): {
|
|
39
50
|
id?: string;
|
|
40
51
|
kind?: string;
|
package/dist/operations/state.js
CHANGED
|
@@ -17,16 +17,40 @@ export async function saveOperation(root, record) {
|
|
|
17
17
|
await withOperationLock(file, async () => writeRecord(file, record));
|
|
18
18
|
}
|
|
19
19
|
export async function patchOperation(root, operationId, patch) {
|
|
20
|
-
|
|
21
|
-
await fs.mkdir(path.dirname(file), { recursive: true });
|
|
22
|
-
return withOperationLock(file, async () => {
|
|
23
|
-
const current = JSON.parse(await fs.readFile(file, "utf8"));
|
|
20
|
+
return mutateOperation(root, operationId, (current) => {
|
|
24
21
|
const guardedPatch = guardTerminalTransition(current, patch);
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
return { ...current, ...guardedPatch };
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
export async function registerOperationAgent(root, operationId, agent) {
|
|
26
|
+
return mutateOperation(root, operationId, (current) => {
|
|
27
|
+
if (isTerminal(current.status))
|
|
28
|
+
return current;
|
|
29
|
+
const existing = current.agents ?? [];
|
|
30
|
+
const previous = existing.find((item) => item.id === agent.id);
|
|
31
|
+
const next = {
|
|
32
|
+
...previous,
|
|
33
|
+
...agent,
|
|
34
|
+
registeredAt: previous?.registeredAt ?? new Date().toISOString()
|
|
35
|
+
};
|
|
36
|
+
return {
|
|
37
|
+
...current,
|
|
38
|
+
agents: [...existing.filter((item) => item.id !== agent.id), next]
|
|
39
|
+
};
|
|
28
40
|
});
|
|
29
41
|
}
|
|
42
|
+
export async function registerCurrentOperationAgent(root, agent) {
|
|
43
|
+
const operationId = currentOperationContext().id;
|
|
44
|
+
if (!operationId)
|
|
45
|
+
return;
|
|
46
|
+
try {
|
|
47
|
+
await registerOperationAgent(root, operationId, agent);
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
// Direct/non-controller execution may carry stale environment state. Agent
|
|
51
|
+
// registration is observability/cleanup metadata, not execution authority.
|
|
52
|
+
}
|
|
53
|
+
}
|
|
30
54
|
export function currentOperationContext() {
|
|
31
55
|
return {
|
|
32
56
|
id: process.env.AEH_OPERATION_ID?.trim() || undefined,
|
|
@@ -41,7 +65,26 @@ export async function updateCurrentOperationPhase(root, phase) {
|
|
|
41
65
|
try {
|
|
42
66
|
await patchOperation(root, operationId, { phase });
|
|
43
67
|
}
|
|
44
|
-
catch {
|
|
68
|
+
catch {
|
|
69
|
+
// Direct/non-controller execution has no operation state to update.
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
async function mutateOperation(root, operationId, mutate) {
|
|
73
|
+
const file = operationFile(root, operationId);
|
|
74
|
+
await fs.mkdir(path.dirname(file), { recursive: true });
|
|
75
|
+
return withOperationLock(file, async () => {
|
|
76
|
+
const current = JSON.parse(await fs.readFile(file, "utf8"));
|
|
77
|
+
const candidate = mutate(current);
|
|
78
|
+
const next = {
|
|
79
|
+
...candidate,
|
|
80
|
+
id: current.id,
|
|
81
|
+
kind: current.kind,
|
|
82
|
+
version: 1,
|
|
83
|
+
updatedAt: new Date().toISOString()
|
|
84
|
+
};
|
|
85
|
+
await writeRecord(file, next);
|
|
86
|
+
return next;
|
|
87
|
+
});
|
|
45
88
|
}
|
|
46
89
|
async function writeRecord(file, record) {
|
|
47
90
|
const temp = `${file}.${process.pid}.${crypto.randomUUID()}.tmp`;
|
|
@@ -81,15 +124,19 @@ async function withOperationLock(file, action) {
|
|
|
81
124
|
await fs.rm(lock, { force: true }).catch(() => undefined);
|
|
82
125
|
continue;
|
|
83
126
|
}
|
|
84
|
-
if (Date.now() >= deadline)
|
|
127
|
+
if (Date.now() >= deadline) {
|
|
85
128
|
throw new Error(`Timed out acquiring operation state lock for ${path.basename(file)}.`);
|
|
129
|
+
}
|
|
86
130
|
await delay(LOCK_RETRY_MS);
|
|
87
131
|
}
|
|
88
132
|
}
|
|
89
133
|
}
|
|
90
134
|
async function canRecoverLock(lock) {
|
|
91
135
|
try {
|
|
92
|
-
const [rawPid, stat] = await Promise.all([
|
|
136
|
+
const [rawPid, stat] = await Promise.all([
|
|
137
|
+
fs.readFile(lock, "utf8").catch(() => ""),
|
|
138
|
+
fs.stat(lock)
|
|
139
|
+
]);
|
|
93
140
|
const ownerPid = Number.parseInt(rawPid.trim(), 10);
|
|
94
141
|
if (Number.isInteger(ownerPid) && ownerPid > 0 && !processAlive(ownerPid))
|
|
95
142
|
return true;
|
|
@@ -116,9 +163,18 @@ function guardTerminalTransition(current, patch) {
|
|
|
116
163
|
guarded.cleanupWarnings = patch.cleanupWarnings;
|
|
117
164
|
return guarded;
|
|
118
165
|
}
|
|
119
|
-
function isTerminal(status) {
|
|
120
|
-
|
|
121
|
-
|
|
166
|
+
function isTerminal(status) {
|
|
167
|
+
return status === "SUCCEEDED" || status === "FAILED" || status === "CANCELLED";
|
|
168
|
+
}
|
|
169
|
+
function isAlreadyExists(error) {
|
|
170
|
+
return Boolean(error &&
|
|
171
|
+
typeof error === "object" &&
|
|
172
|
+
"code" in error &&
|
|
173
|
+
error.code === "EEXIST");
|
|
174
|
+
}
|
|
175
|
+
function delay(ms) {
|
|
176
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
177
|
+
}
|
|
122
178
|
function safeId(value) {
|
|
123
179
|
if (!/^[A-Za-z0-9._-]+$/.test(value))
|
|
124
180
|
throw new Error(`Invalid operation id '${value}'.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/operations/state.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/operations/state.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAkD7B,MAAM,cAAc,GAAG,qBAAqB,CAAC;AAC7C,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,eAAe,GAAG,MAAM,CAAC;AAC/B,MAAM,aAAa,GAAG,MAAM,CAAC;AAE7B,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,WAAmB;IAC7D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,WAAmB;IACnE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAAoB,CAAC;AACpG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,MAAuB;IACvE,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5C,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,iBAAiB,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAY,EACZ,WAAmB,EACnB,KAA+B;IAE/B,OAAO,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE;QACpD,MAAM,YAAY,GAAG,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC7D,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAY,EACZ,WAAmB,EACnB,KAAiD;IAEjD,OAAO,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE;QACpD,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,OAAO,CAAC;QAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAyB;YACjC,GAAG,QAAQ;YACX,GAAG,KAAK;YACR,YAAY,EAAE,QAAQ,EAAE,YAAY,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACjE,CAAC;QACF,OAAO;YACL,GAAG,OAAO;YACV,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;SACnE,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,IAAY,EACZ,KAAiD;IAEjD,MAAM,WAAW,GAAG,uBAAuB,EAAE,CAAC,EAAE,CAAC;IACjD,IAAI,CAAC,WAAW;QAAE,OAAO;IACzB,IAAI,CAAC;QACH,MAAM,sBAAsB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;QAC3E,2EAA2E;IAC7E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB;IAKrC,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,SAAS;QACrD,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,SAAS;QACzD,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,IAAI,EAAE,IAAI,SAAS;KACzE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,IAAY,EAAE,KAAa;IAC3E,MAAM,WAAW,GAAG,uBAAuB,EAAE,CAAC,EAAE,CAAC;IACjD,IAAI,CAAC,WAAW;QAAE,OAAO;IACzB,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;IACtE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,IAAY,EACZ,WAAmB,EACnB,MAAqD;IAErD,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC9C,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,OAAO,iBAAiB,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAoB,CAAC;QAC/E,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,IAAI,GAAoB;YAC5B,GAAG,SAAS;YACZ,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QACF,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,MAAuB;IAC9D,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC;IACjE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAI,IAAY,EAAE,MAAwB;IACxE,MAAM,IAAI,GAAG,GAAG,IAAI,OAAO,CAAC;IAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC;IAC9C,SAAS,CAAC;QACR,IAAI,MAAuD,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC3C,OAAO,MAAM,MAAM,EAAE,CAAC;YACxB,CAAC;oBAAS,CAAC;gBACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC5C,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC5C,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC1D,MAAM,KAAK,CAAC;YACd,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YACzC,IAAI,MAAM,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC1D,SAAS;YACX,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CACb,gDAAgD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CACvE,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,IAAY;IACxC,IAAI,CAAC;QACH,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACvC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;YACzC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;SACd,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACpD,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QACvF,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAC9B,OAAwB,EACxB,KAA+B;IAE/B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,OAAO,GAA6B,EAAE,CAAC;IAC7C,IAAI,KAAK,CAAC,eAAe;QAAE,OAAO,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;IAC3E,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,UAAU,CAAC,MAAuB;IACzC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,WAAW,CAAC;AACjF,CAAC;AACD,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,OAAO,CACZ,KAAK;QACH,OAAO,KAAK,KAAK,QAAQ;QACzB,MAAM,IAAI,KAAK;QACd,KAA4B,CAAC,IAAI,KAAK,QAAQ,CAClD,CAAC;AACJ,CAAC;AACD,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC3B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,IAAI,CAAC,CAAC;IAC1F,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import type { ProcessResult } from "../utils/process.js";
|
|
2
2
|
import { runProcess } from "../utils/process.js";
|
|
3
|
-
export interface
|
|
3
|
+
export interface PaseoDaemonCapabilities {
|
|
4
4
|
version?: string;
|
|
5
|
+
daemonJson: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface PaseoCapabilities extends PaseoDaemonCapabilities {
|
|
5
8
|
background: boolean;
|
|
6
9
|
quiet: boolean;
|
|
7
10
|
json: boolean;
|
|
8
11
|
outputSchema: boolean;
|
|
9
|
-
daemonJson: boolean;
|
|
10
12
|
nativeToolsRecommended: boolean;
|
|
11
13
|
}
|
|
12
14
|
export interface PaseoBackgroundRunOptions {
|
|
@@ -17,6 +19,16 @@ export interface PaseoBackgroundRunOptions {
|
|
|
17
19
|
prompt: string;
|
|
18
20
|
}
|
|
19
21
|
type Runner = typeof runProcess;
|
|
22
|
+
/**
|
|
23
|
+
* Minimal CLI discovery needed by daemon bootstrap. This deliberately does not
|
|
24
|
+
* inspect `paseo run --help`; run flags belong to the compatibility CLI runtime
|
|
25
|
+
* and are probed only if that fallback is actually needed.
|
|
26
|
+
*/
|
|
27
|
+
export declare function detectPaseoDaemonCapabilities(root: string, run?: Runner): Promise<PaseoDaemonCapabilities>;
|
|
28
|
+
/**
|
|
29
|
+
* Full CLI runtime negotiation. Call this only when AEH is about to use the
|
|
30
|
+
* Paseo CLI compatibility execution path.
|
|
31
|
+
*/
|
|
20
32
|
export declare function detectPaseoCapabilities(root: string, run?: Runner): Promise<PaseoCapabilities>;
|
|
21
33
|
export declare function buildPaseoBackgroundRunCommand(options: PaseoBackgroundRunOptions, capabilities: PaseoCapabilities): string;
|
|
22
34
|
export declare function extractPaseoAgentId(stdout: string): string | undefined;
|
|
@@ -1,26 +1,46 @@
|
|
|
1
1
|
import { runProcess } from "../utils/process.js";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Minimal CLI discovery needed by daemon bootstrap. This deliberately does not
|
|
4
|
+
* inspect `paseo run --help`; run flags belong to the compatibility CLI runtime
|
|
5
|
+
* and are probed only if that fallback is actually needed.
|
|
6
|
+
*/
|
|
7
|
+
export async function detectPaseoDaemonCapabilities(root, run = runProcess) {
|
|
8
|
+
const [versionResult, daemonHelp] = await Promise.all([
|
|
4
9
|
run("paseo --version", { cwd: root, timeoutMs: 15_000 }),
|
|
5
|
-
run("paseo run --help", { cwd: root, timeoutMs: 15_000 }),
|
|
6
10
|
run("paseo daemon status --help", { cwd: root, timeoutMs: 15_000 })
|
|
7
11
|
]);
|
|
8
12
|
const version = parseVersion(`${versionResult.stdout}\n${versionResult.stderr}`);
|
|
9
|
-
const runText = `${runHelp.stdout}\n${runHelp.stderr}`;
|
|
10
13
|
const daemonText = `${daemonHelp.stdout}\n${daemonHelp.stderr}`;
|
|
11
14
|
return {
|
|
12
15
|
version,
|
|
16
|
+
daemonJson: hasOption(daemonText, "--json")
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Full CLI runtime negotiation. Call this only when AEH is about to use the
|
|
21
|
+
* Paseo CLI compatibility execution path.
|
|
22
|
+
*/
|
|
23
|
+
export async function detectPaseoCapabilities(root, run = runProcess) {
|
|
24
|
+
const [daemon, runHelp] = await Promise.all([
|
|
25
|
+
detectPaseoDaemonCapabilities(root, run),
|
|
26
|
+
run("paseo run --help", { cwd: root, timeoutMs: 15_000 })
|
|
27
|
+
]);
|
|
28
|
+
const runText = `${runHelp.stdout}\n${runHelp.stderr}`;
|
|
29
|
+
return {
|
|
30
|
+
...daemon,
|
|
13
31
|
background: hasOption(runText, "--background"),
|
|
14
|
-
quiet: hasOption(runText, "--quiet") ||
|
|
32
|
+
quiet: hasOption(runText, "--quiet") ||
|
|
33
|
+
hasOption(runText, "-q") ||
|
|
34
|
+
semverAtLeast(daemon.version, [0, 4, 0]),
|
|
15
35
|
json: hasOption(runText, "--json"),
|
|
16
36
|
outputSchema: hasOption(runText, "--output-schema"),
|
|
17
|
-
|
|
18
|
-
nativeToolsRecommended: semverAtLeast(version, [0, 4, 0])
|
|
37
|
+
nativeToolsRecommended: semverAtLeast(daemon.version, [0, 4, 0])
|
|
19
38
|
};
|
|
20
39
|
}
|
|
21
40
|
export function buildPaseoBackgroundRunCommand(options, capabilities) {
|
|
22
|
-
if (!capabilities.background)
|
|
41
|
+
if (!capabilities.background) {
|
|
23
42
|
throw new Error(`Installed Paseo${capabilities.version ? ` ${capabilities.version}` : ""} does not advertise background runs.`);
|
|
43
|
+
}
|
|
24
44
|
const parts = ["paseo run", "--background"];
|
|
25
45
|
if (capabilities.json)
|
|
26
46
|
parts.push("--json");
|
|
@@ -44,8 +64,13 @@ export function extractPaseoAgentId(stdout) {
|
|
|
44
64
|
if (id)
|
|
45
65
|
return id;
|
|
46
66
|
}
|
|
47
|
-
catch {
|
|
48
|
-
|
|
67
|
+
catch {
|
|
68
|
+
// Older Paseo emits plain text.
|
|
69
|
+
}
|
|
70
|
+
const lines = trimmed
|
|
71
|
+
.split(/\r?\n/)
|
|
72
|
+
.map((line) => line.trim())
|
|
73
|
+
.filter(Boolean);
|
|
49
74
|
for (const line of lines.reverse()) {
|
|
50
75
|
const direct = line.match(/^(?:agent(?:Id)?[=: ]+)?([A-Za-z0-9][A-Za-z0-9._:-]{2,})$/i)?.[1];
|
|
51
76
|
if (direct)
|
|
@@ -73,9 +98,10 @@ function findId(value) {
|
|
|
73
98
|
return undefined;
|
|
74
99
|
}
|
|
75
100
|
const record = value;
|
|
76
|
-
for (const key of ["agentId", "agent_id", "id"])
|
|
101
|
+
for (const key of ["agentId", "agent_id", "id"]) {
|
|
77
102
|
if (typeof record[key] === "string" && record[key])
|
|
78
103
|
return record[key];
|
|
104
|
+
}
|
|
79
105
|
for (const child of Object.values(record)) {
|
|
80
106
|
const found = findId(child);
|
|
81
107
|
if (found)
|
|
@@ -83,8 +109,12 @@ function findId(value) {
|
|
|
83
109
|
}
|
|
84
110
|
return undefined;
|
|
85
111
|
}
|
|
86
|
-
function parseVersion(text) {
|
|
87
|
-
|
|
112
|
+
function parseVersion(text) {
|
|
113
|
+
return text.match(/\b(?:v)?(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?)/)?.[1];
|
|
114
|
+
}
|
|
115
|
+
function hasOption(text, option) {
|
|
116
|
+
return text.includes(option);
|
|
117
|
+
}
|
|
88
118
|
function semverAtLeast(version, minimum) {
|
|
89
119
|
if (!version)
|
|
90
120
|
return false;
|
|
@@ -100,5 +130,7 @@ function semverAtLeast(version, minimum) {
|
|
|
100
130
|
}
|
|
101
131
|
return true;
|
|
102
132
|
}
|
|
103
|
-
function quote(value) {
|
|
133
|
+
function quote(value) {
|
|
134
|
+
return `'${value.replaceAll("'", "'\\''")}'`;
|
|
135
|
+
}
|
|
104
136
|
//# sourceMappingURL=capabilities.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/paseo/capabilities.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/paseo/capabilities.ts"],"names":[],"mappings":"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"}
|
package/dist/paseo/context.d.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import type { HarnessProjectConfig } from "../core/types.js";
|
|
2
2
|
import { runProcess } from "../utils/process.js";
|
|
3
3
|
import { startPaseoHarness } from "./start.js";
|
|
4
|
-
|
|
4
|
+
import { inspectPaseoNativeAgent } from "./native.js";
|
|
5
|
+
import { recordPaseoTrace } from "./trace.js";
|
|
6
|
+
export type ContextGuardState = "OK" | "PRESSURE" | "HANDOFF_REQUIRED" | "HARD_HANDOFF" | "NO_USAGE_YET" | "USAGE_UNAVAILABLE" | "UNKNOWN";
|
|
5
7
|
export interface ContextUsage {
|
|
6
8
|
used?: number;
|
|
7
9
|
limit?: number;
|
|
8
10
|
ratio?: number;
|
|
9
11
|
source: string;
|
|
12
|
+
availability?: "available" | "no-usage-yet" | "provider-usage-unavailable" | "agent-unavailable";
|
|
10
13
|
}
|
|
11
14
|
export interface LeadHandoffArtifact {
|
|
12
15
|
version: 1;
|
|
@@ -32,14 +35,20 @@ export interface ContextGuardResult {
|
|
|
32
35
|
}
|
|
33
36
|
type Runner = typeof runProcess;
|
|
34
37
|
type Starter = typeof startPaseoHarness;
|
|
38
|
+
type Inspector = typeof inspectPaseoNativeAgent;
|
|
39
|
+
type Trace = typeof recordPaseoTrace;
|
|
35
40
|
export interface ContextGuardOptions {
|
|
36
41
|
brief?: string;
|
|
37
42
|
run?: Runner;
|
|
38
43
|
autoRotate?: boolean;
|
|
39
44
|
aehCommand?: string;
|
|
40
45
|
start?: Starter;
|
|
46
|
+
inspect?: Inspector;
|
|
47
|
+
trace?: Trace;
|
|
41
48
|
}
|
|
49
|
+
export declare function statusLeadContext(root: string, config: HarnessProjectConfig, agentId: string, options?: Pick<ContextGuardOptions, "inspect" | "trace">): Promise<ContextGuardResult>;
|
|
42
50
|
export declare function guardLeadContext(root: string, config: HarnessProjectConfig, agentId: string, options?: ContextGuardOptions): Promise<ContextGuardResult>;
|
|
43
|
-
export declare function inspectPaseoContextUsage(root: string, agentId: string,
|
|
51
|
+
export declare function inspectPaseoContextUsage(root: string, agentId: string, inspect?: Inspector): Promise<ContextUsage>;
|
|
52
|
+
/** Compatibility helper retained for callers/tests, but intentionally strict. */
|
|
44
53
|
export declare function extractContextUsage(value: unknown): ContextUsage;
|
|
45
54
|
export {};
|