agentic-engineering-harness 0.5.1 → 0.6.1
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 +161 -215
- package/dist/agents/config.js +2 -0
- package/dist/agents/config.js.map +1 -1
- package/dist/audit/intent.d.ts +20 -0
- package/dist/audit/intent.js +42 -0
- package/dist/audit/intent.js.map +1 -0
- package/dist/audit/run.d.ts +46 -0
- package/dist/audit/run.js +147 -0
- package/dist/audit/run.js.map +1 -0
- package/dist/cli.js +2 -1
- package/dist/cli.js.map +1 -1
- package/dist/core/assets.d.ts +13 -0
- package/dist/core/assets.js +115 -0
- package/dist/core/assets.js.map +1 -0
- package/dist/core/config.js +6 -2
- package/dist/core/config.js.map +1 -1
- package/dist/core/controlPlane.js +1 -1
- package/dist/core/controlPlane.js.map +1 -1
- package/dist/core/init.js +7 -13
- package/dist/core/init.js.map +1 -1
- package/dist/core/types.d.ts +20 -0
- package/dist/entry.js +144 -3
- package/dist/entry.js.map +1 -1
- package/dist/issues/intake.d.ts +1 -1
- package/dist/paseo/capabilities.d.ts +24 -0
- package/dist/paseo/capabilities.js +104 -0
- package/dist/paseo/capabilities.js.map +1 -0
- package/dist/paseo/context.d.ts +45 -0
- package/dist/paseo/context.js +153 -0
- package/dist/paseo/context.js.map +1 -0
- package/dist/paseo/runtime.d.ts +31 -0
- package/dist/paseo/runtime.js +158 -0
- package/dist/paseo/runtime.js.map +1 -0
- package/dist/paseo/sdk.d.ts +79 -0
- package/dist/paseo/sdk.js +165 -0
- package/dist/paseo/sdk.js.map +1 -0
- package/dist/paseo/start.d.ts +16 -2
- package/dist/paseo/start.js +58 -77
- package/dist/paseo/start.js.map +1 -1
- package/dist/spec/openspec.d.ts +28 -0
- package/dist/spec/openspec.js +179 -0
- package/dist/spec/openspec.js.map +1 -0
- package/dist/toolchain/resolve.js +3 -0
- package/dist/toolchain/resolve.js.map +1 -1
- package/dist/toolchain/setup.js +2 -0
- package/dist/toolchain/setup.js.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.js +6 -0
- package/dist/version.js.map +1 -0
- package/dist/workers/agentPrompt.js +24 -29
- package/dist/workers/agentPrompt.js.map +1 -1
- package/dist/workers/paseo.d.ts +0 -1
- package/dist/workers/paseo.js +67 -21
- package/dist/workers/paseo.js.map +1 -1
- package/docs/PASEO.md +87 -4
- package/docs/PUBLISHING.md +53 -44
- package/docs/V0.5.2.md +180 -0
- package/docs/V0.6.md +148 -0
- package/package.json +87 -12
- package/presets/agents/orchestration.jsonc +37 -0
- package/schemas/project.schema.json +13 -2
- package/skills/engineering-workflow/SKILL.md +110 -86
- package/skills/openspec-authoring/SKILL.md +26 -0
- package/skills/paseo-orchestration/SKILL.md +38 -0
- package/templates/AGENTS.md +36 -17
- package/templates/agents.source.jsonc +1 -1
- package/templates/openspec-config.yaml +24 -0
- package/templates/project.yaml +11 -2
- package/templates/toolchain.yaml +11 -1
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { runProcess } from "../utils/process.js";
|
|
2
|
+
export async function detectPaseoCapabilities(root, run = runProcess) {
|
|
3
|
+
const [versionResult, runHelp, daemonHelp] = await Promise.all([
|
|
4
|
+
run("paseo --version", { cwd: root, timeoutMs: 15_000 }),
|
|
5
|
+
run("paseo run --help", { cwd: root, timeoutMs: 15_000 }),
|
|
6
|
+
run("paseo daemon status --help", { cwd: root, timeoutMs: 15_000 })
|
|
7
|
+
]);
|
|
8
|
+
const version = parseVersion(`${versionResult.stdout}\n${versionResult.stderr}`);
|
|
9
|
+
const runText = `${runHelp.stdout}\n${runHelp.stderr}`;
|
|
10
|
+
const daemonText = `${daemonHelp.stdout}\n${daemonHelp.stderr}`;
|
|
11
|
+
return {
|
|
12
|
+
version,
|
|
13
|
+
background: hasOption(runText, "--background"),
|
|
14
|
+
quiet: hasOption(runText, "--quiet") || hasOption(runText, "-q") || semverAtLeast(version, [0, 4, 0]),
|
|
15
|
+
json: hasOption(runText, "--json"),
|
|
16
|
+
outputSchema: hasOption(runText, "--output-schema"),
|
|
17
|
+
daemonJson: hasOption(daemonText, "--json"),
|
|
18
|
+
nativeToolsRecommended: semverAtLeast(version, [0, 4, 0])
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export function buildPaseoBackgroundRunCommand(options, capabilities) {
|
|
22
|
+
if (!capabilities.background)
|
|
23
|
+
throw new Error(`Installed Paseo${capabilities.version ? ` ${capabilities.version}` : ""} does not advertise background runs.`);
|
|
24
|
+
const parts = ["paseo run", "--background"];
|
|
25
|
+
if (capabilities.json)
|
|
26
|
+
parts.push("--json");
|
|
27
|
+
else if (capabilities.quiet)
|
|
28
|
+
parts.push("--quiet");
|
|
29
|
+
parts.push(`--title ${quote(options.title)}`, `--provider ${quote(options.provider)}`);
|
|
30
|
+
if (options.workspaceId)
|
|
31
|
+
parts.push(`--workspace ${quote(options.workspaceId)}`);
|
|
32
|
+
if (options.model)
|
|
33
|
+
parts.push(`--model ${quote(options.model)}`);
|
|
34
|
+
parts.push(quote(options.prompt));
|
|
35
|
+
return parts.join(" ");
|
|
36
|
+
}
|
|
37
|
+
export function extractPaseoAgentId(stdout) {
|
|
38
|
+
const trimmed = stdout.trim();
|
|
39
|
+
if (!trimmed)
|
|
40
|
+
return undefined;
|
|
41
|
+
try {
|
|
42
|
+
const parsed = JSON.parse(trimmed);
|
|
43
|
+
const id = findId(parsed);
|
|
44
|
+
if (id)
|
|
45
|
+
return id;
|
|
46
|
+
}
|
|
47
|
+
catch { /* older Paseo emits plain text */ }
|
|
48
|
+
const lines = trimmed.split(/\r?\n/).map((line) => line.trim()).filter(Boolean);
|
|
49
|
+
for (const line of lines.reverse()) {
|
|
50
|
+
const direct = line.match(/^(?:agent(?:Id)?[=: ]+)?([A-Za-z0-9][A-Za-z0-9._:-]{2,})$/i)?.[1];
|
|
51
|
+
if (direct)
|
|
52
|
+
return direct;
|
|
53
|
+
const embedded = line.match(/(?:agent(?:Id)?|id)["'=:\s]+([A-Za-z0-9][A-Za-z0-9._:-]{2,})/i)?.[1];
|
|
54
|
+
if (embedded)
|
|
55
|
+
return embedded;
|
|
56
|
+
}
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
export function isRecoverableDaemonStatus(result) {
|
|
60
|
+
if (result.exitCode === 0)
|
|
61
|
+
return false;
|
|
62
|
+
return /stale[_ -]?pid|unreachable|connection refused|daemon.*not.*running|not running/i.test(`${result.stderr}\n${result.stdout}`);
|
|
63
|
+
}
|
|
64
|
+
function findId(value) {
|
|
65
|
+
if (!value || typeof value !== "object")
|
|
66
|
+
return undefined;
|
|
67
|
+
if (Array.isArray(value)) {
|
|
68
|
+
for (const item of value) {
|
|
69
|
+
const found = findId(item);
|
|
70
|
+
if (found)
|
|
71
|
+
return found;
|
|
72
|
+
}
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
const record = value;
|
|
76
|
+
for (const key of ["agentId", "agent_id", "id"])
|
|
77
|
+
if (typeof record[key] === "string" && record[key])
|
|
78
|
+
return record[key];
|
|
79
|
+
for (const child of Object.values(record)) {
|
|
80
|
+
const found = findId(child);
|
|
81
|
+
if (found)
|
|
82
|
+
return found;
|
|
83
|
+
}
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
function parseVersion(text) { return text.match(/\b(?:v)?(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?)/)?.[1]; }
|
|
87
|
+
function hasOption(text, option) { return text.includes(option); }
|
|
88
|
+
function semverAtLeast(version, minimum) {
|
|
89
|
+
if (!version)
|
|
90
|
+
return false;
|
|
91
|
+
const match = version.match(/^(\d+)\.(\d+)\.(\d+)/);
|
|
92
|
+
if (!match)
|
|
93
|
+
return false;
|
|
94
|
+
const actual = match.slice(1, 4).map(Number);
|
|
95
|
+
for (let i = 0; i < 3; i += 1) {
|
|
96
|
+
if (actual[i] > minimum[i])
|
|
97
|
+
return true;
|
|
98
|
+
if (actual[i] < minimum[i])
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
function quote(value) { return `'${value.replaceAll("'", "'\\''")}'`; }
|
|
104
|
+
//# sourceMappingURL=capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/paseo/capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { HarnessProjectConfig } from "../core/types.js";
|
|
2
|
+
import { runProcess } from "../utils/process.js";
|
|
3
|
+
import { startPaseoHarness } from "./start.js";
|
|
4
|
+
export type ContextGuardState = "OK" | "PRESSURE" | "HANDOFF_REQUIRED" | "HARD_HANDOFF" | "UNKNOWN";
|
|
5
|
+
export interface ContextUsage {
|
|
6
|
+
used?: number;
|
|
7
|
+
limit?: number;
|
|
8
|
+
ratio?: number;
|
|
9
|
+
source: string;
|
|
10
|
+
}
|
|
11
|
+
export interface LeadHandoffArtifact {
|
|
12
|
+
version: 1;
|
|
13
|
+
createdAt: string;
|
|
14
|
+
reason: "CONTEXT_PRESSURE";
|
|
15
|
+
project: string;
|
|
16
|
+
previousAgentId: string;
|
|
17
|
+
rotatedAgentId?: string;
|
|
18
|
+
context: ContextUsage;
|
|
19
|
+
branch?: string;
|
|
20
|
+
activeRun?: string;
|
|
21
|
+
latestAudit?: string;
|
|
22
|
+
latestDelivery?: string;
|
|
23
|
+
semanticBrief?: string;
|
|
24
|
+
nextInstruction: string;
|
|
25
|
+
}
|
|
26
|
+
export interface ContextGuardResult {
|
|
27
|
+
state: ContextGuardState;
|
|
28
|
+
usage: ContextUsage;
|
|
29
|
+
handoffPath?: string;
|
|
30
|
+
rotatedAgentId?: string;
|
|
31
|
+
message: string;
|
|
32
|
+
}
|
|
33
|
+
type Runner = typeof runProcess;
|
|
34
|
+
type Starter = typeof startPaseoHarness;
|
|
35
|
+
export interface ContextGuardOptions {
|
|
36
|
+
brief?: string;
|
|
37
|
+
run?: Runner;
|
|
38
|
+
autoRotate?: boolean;
|
|
39
|
+
aehCommand?: string;
|
|
40
|
+
start?: Starter;
|
|
41
|
+
}
|
|
42
|
+
export declare function guardLeadContext(root: string, config: HarnessProjectConfig, agentId: string, options?: ContextGuardOptions): Promise<ContextGuardResult>;
|
|
43
|
+
export declare function inspectPaseoContextUsage(root: string, agentId: string, run?: Runner): Promise<ContextUsage>;
|
|
44
|
+
export declare function extractContextUsage(value: unknown): ContextUsage;
|
|
45
|
+
export {};
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import process from "node:process";
|
|
4
|
+
import { runProcess } from "../utils/process.js";
|
|
5
|
+
import { startPaseoHarness } from "./start.js";
|
|
6
|
+
export async function guardLeadContext(root, config, agentId, options = {}) {
|
|
7
|
+
const run = options.run ?? runProcess;
|
|
8
|
+
const policy = contextPolicy(config);
|
|
9
|
+
const usage = await inspectPaseoContextUsage(root, agentId, run);
|
|
10
|
+
if (usage.ratio === undefined)
|
|
11
|
+
return { state: "UNKNOWN", usage, message: "Paseo did not expose a stable context-usage ratio; continue with delegation-first behavior and prefer a fresh lead on the next aeh start." };
|
|
12
|
+
if (usage.ratio < policy.pressure)
|
|
13
|
+
return { state: "OK", usage, message: `Lead context ${(usage.ratio * 100).toFixed(1)}% is below the pressure threshold.` };
|
|
14
|
+
if (usage.ratio < policy.handoff)
|
|
15
|
+
return { state: "PRESSURE", usage, message: `Lead context ${(usage.ratio * 100).toFixed(1)}% is under pressure. Stop exploratory shell work and delegate all non-semantic operations.` };
|
|
16
|
+
const artifactPath = await writeHandoffArtifact(root, config, agentId, usage, options.brief, run);
|
|
17
|
+
const state = usage.ratio >= policy.hard ? "HARD_HANDOFF" : "HANDOFF_REQUIRED";
|
|
18
|
+
const autoRotate = options.autoRotate ?? Boolean(process.env.PASEO_AGENT_ID);
|
|
19
|
+
if (!autoRotate)
|
|
20
|
+
return { state, usage, handoffPath: artifactPath, message: `${state}: context ${(usage.ratio * 100).toFixed(1)}%. Handoff artifact created at ${relative(root, artifactPath)}. Create a fresh lead with /paseo-handoff (preferred), Paseo create_agent, or rerun the guard from the managed lead to rotate automatically. Do not compact and continue the engineering workflow in the old lead.` };
|
|
21
|
+
const starter = options.start ?? startPaseoHarness;
|
|
22
|
+
const aehCommand = options.aehCommand ?? exactAehCommand();
|
|
23
|
+
const relativeHandoff = relative(root, artifactPath);
|
|
24
|
+
const fresh = await starter(root, config, { forceNew: true, resume: false, handoffPath: relativeHandoff, aehCommand });
|
|
25
|
+
await recordRotatedLead(artifactPath, fresh.agentId);
|
|
26
|
+
return {
|
|
27
|
+
state,
|
|
28
|
+
usage,
|
|
29
|
+
handoffPath: artifactPath,
|
|
30
|
+
rotatedAgentId: fresh.agentId,
|
|
31
|
+
message: `${state}: context ${(usage.ratio * 100).toFixed(1)}%. AEH rotated responsibility to fresh lead ${fresh.agentId} using ${relativeHandoff}. Stop engineering work in ${agentId}; do not compact-and-continue. The fresh lead bootstraps from deterministic artifacts.`
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export async function inspectPaseoContextUsage(root, agentId, run = runProcess) {
|
|
35
|
+
const attempts = [`paseo ls -a -g --json`, `paseo logs ${quote(agentId)} --tail 5 --json`];
|
|
36
|
+
for (const command of attempts) {
|
|
37
|
+
const result = await run(command, { cwd: root, timeoutMs: 30_000 });
|
|
38
|
+
if (result.exitCode !== 0 || !result.stdout.trim())
|
|
39
|
+
continue;
|
|
40
|
+
try {
|
|
41
|
+
const parsed = JSON.parse(result.stdout);
|
|
42
|
+
const agent = findAgent(parsed, agentId) ?? parsed;
|
|
43
|
+
const usage = extractContextUsage(agent);
|
|
44
|
+
if (usage.ratio !== undefined)
|
|
45
|
+
return usage;
|
|
46
|
+
}
|
|
47
|
+
catch { /* older Paseo or non-JSON output */ }
|
|
48
|
+
}
|
|
49
|
+
return { source: "unavailable" };
|
|
50
|
+
}
|
|
51
|
+
export function extractContextUsage(value) {
|
|
52
|
+
const pairs = collectNumericFields(value);
|
|
53
|
+
const explicitRatio = first(pairs, ["contextusage", "contextusageratio", "contextpercentage", "contextpercent", "windowusage", "contextutilization"]);
|
|
54
|
+
if (explicitRatio !== undefined) {
|
|
55
|
+
const ratio = explicitRatio > 1 ? explicitRatio / 100 : explicitRatio;
|
|
56
|
+
if (ratio >= 0 && ratio <= 1.5)
|
|
57
|
+
return { ratio: Math.min(ratio, 1), source: "paseo-explicit-ratio" };
|
|
58
|
+
}
|
|
59
|
+
const used = first(pairs, ["contexttokens", "contextused", "usedcontexttokens", "tokensused", "totaltokens", "inputtokens"]);
|
|
60
|
+
const limit = first(pairs, ["contextwindow", "contextlimit", "contextwindowtokens", "maxtokens", "tokenlimit"]);
|
|
61
|
+
if (used !== undefined && limit !== undefined && limit > 0)
|
|
62
|
+
return { used, limit, ratio: Math.min(used / limit, 1), source: "paseo-token-fields" };
|
|
63
|
+
return { used, limit, source: "paseo-snapshot-no-ratio" };
|
|
64
|
+
}
|
|
65
|
+
function contextPolicy(config) {
|
|
66
|
+
const context = config.orchestration?.interactive?.context;
|
|
67
|
+
const pressure = clamp(context?.pressureThreshold ?? 0.70);
|
|
68
|
+
const handoff = Math.max(pressure, clamp(context?.handoffThreshold ?? 0.80));
|
|
69
|
+
const hard = Math.max(handoff, clamp(context?.hardHandoffThreshold ?? 0.90));
|
|
70
|
+
return { pressure, handoff, hard };
|
|
71
|
+
}
|
|
72
|
+
async function writeHandoffArtifact(root, config, agentId, usage, semanticBrief, run) {
|
|
73
|
+
const stateDir = config.orchestration?.interactive?.stateDir ?? ".harness/paseo";
|
|
74
|
+
const dir = path.resolve(root, stateDir, "handoffs");
|
|
75
|
+
await fs.mkdir(dir, { recursive: true });
|
|
76
|
+
const stamp = new Date().toISOString().replace(/[:.]/g, "-");
|
|
77
|
+
const file = path.join(dir, `lead-${stamp}.json`);
|
|
78
|
+
const branchResult = await run("git branch --show-current", { cwd: root, timeoutMs: 10_000 });
|
|
79
|
+
const artifact = {
|
|
80
|
+
version: 1,
|
|
81
|
+
createdAt: new Date().toISOString(),
|
|
82
|
+
reason: "CONTEXT_PRESSURE",
|
|
83
|
+
project: config.project.name,
|
|
84
|
+
previousAgentId: agentId,
|
|
85
|
+
context: usage,
|
|
86
|
+
branch: branchResult.exitCode === 0 ? branchResult.stdout.trim() || undefined : undefined,
|
|
87
|
+
activeRun: await latestJsonPath(root, config.sdd?.runsDir ?? ".harness/runs"),
|
|
88
|
+
latestAudit: await existingRelative(root, ".harness/audits/latest.json"),
|
|
89
|
+
latestDelivery: await latestJsonPath(root, config.delivery?.stateDir ?? ".harness/delivery"),
|
|
90
|
+
semanticBrief: semanticBrief?.trim() || undefined,
|
|
91
|
+
nextInstruction: "Continue as a fresh AEH Lead. Read the referenced sealed/run/audit/delivery artifacts rather than asking the previous lead to replay its full context. Re-run deterministic checks before accepting any state transition."
|
|
92
|
+
};
|
|
93
|
+
await fs.writeFile(file, `${JSON.stringify(artifact, null, 2)}\n`);
|
|
94
|
+
return file;
|
|
95
|
+
}
|
|
96
|
+
async function recordRotatedLead(file, agentId) {
|
|
97
|
+
const artifact = JSON.parse(await fs.readFile(file, "utf8"));
|
|
98
|
+
artifact.rotatedAgentId = agentId;
|
|
99
|
+
await fs.writeFile(file, `${JSON.stringify(artifact, null, 2)}\n`);
|
|
100
|
+
}
|
|
101
|
+
async function latestJsonPath(root, relativeDir) {
|
|
102
|
+
const dir = path.resolve(root, relativeDir);
|
|
103
|
+
const names = await fs.readdir(dir).catch(() => []);
|
|
104
|
+
const json = names.filter((name) => name.endsWith(".json"));
|
|
105
|
+
if (!json.length)
|
|
106
|
+
return undefined;
|
|
107
|
+
const values = await Promise.all(json.map(async (name) => ({ name, stat: await fs.stat(path.join(dir, name)) })));
|
|
108
|
+
values.sort((a, b) => b.stat.mtimeMs - a.stat.mtimeMs);
|
|
109
|
+
return relative(root, path.join(dir, values[0].name));
|
|
110
|
+
}
|
|
111
|
+
async function existingRelative(root, relativePath) { try {
|
|
112
|
+
await fs.access(path.resolve(root, relativePath));
|
|
113
|
+
return relativePath.replaceAll("\\", "/");
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
return undefined;
|
|
117
|
+
} }
|
|
118
|
+
function exactAehCommand() { const entry = path.resolve(process.argv[1]); return `${JSON.stringify(process.execPath)} ${JSON.stringify(entry)}`; }
|
|
119
|
+
function findAgent(value, id) { if (Array.isArray(value)) {
|
|
120
|
+
for (const child of value) {
|
|
121
|
+
const found = findAgent(child, id);
|
|
122
|
+
if (found)
|
|
123
|
+
return found;
|
|
124
|
+
}
|
|
125
|
+
return undefined;
|
|
126
|
+
} if (!value || typeof value !== "object")
|
|
127
|
+
return undefined; const record = value; if ([record.id, record.agentId, record.agent_id].some((item) => item === id))
|
|
128
|
+
return record; for (const child of Object.values(record)) {
|
|
129
|
+
const found = findAgent(child, id);
|
|
130
|
+
if (found)
|
|
131
|
+
return found;
|
|
132
|
+
} return undefined; }
|
|
133
|
+
function collectNumericFields(value, out = new Map()) { if (Array.isArray(value)) {
|
|
134
|
+
for (const child of value)
|
|
135
|
+
collectNumericFields(child, out);
|
|
136
|
+
return out;
|
|
137
|
+
} if (!value || typeof value !== "object")
|
|
138
|
+
return out; for (const [key, child] of Object.entries(value)) {
|
|
139
|
+
const normalized = key.toLowerCase().replace(/[^a-z0-9]/g, "");
|
|
140
|
+
if (typeof child === "number" && Number.isFinite(child) && !out.has(normalized))
|
|
141
|
+
out.set(normalized, child);
|
|
142
|
+
else
|
|
143
|
+
collectNumericFields(child, out);
|
|
144
|
+
} return out; }
|
|
145
|
+
function first(values, keys) { for (const key of keys) {
|
|
146
|
+
const value = values.get(key);
|
|
147
|
+
if (value !== undefined)
|
|
148
|
+
return value;
|
|
149
|
+
} return undefined; }
|
|
150
|
+
function clamp(value) { return Math.max(0, Math.min(1, value)); }
|
|
151
|
+
function relative(root, file) { return path.relative(root, file).replaceAll("\\", "/"); }
|
|
152
|
+
function quote(value) { return `'${value.replaceAll("'", "'\\''")}'`; }
|
|
153
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/paseo/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { detectPaseoCapabilities } from "./capabilities.js";
|
|
2
|
+
import { createPaseoSdkAgent, inspectPaseoSdkAgent, listPaseoSdkAgents, probePaseoSdkAgent, runPaseoSdkAgent, type PaseoSdkAgentOptions, type PaseoSdkAgentRecord } from "./sdk.js";
|
|
3
|
+
import { runProcess } from "../utils/process.js";
|
|
4
|
+
export interface ManagedPaseoAgentOptions extends PaseoSdkAgentOptions {
|
|
5
|
+
timeoutSeconds?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface ManagedPaseoAgentResult {
|
|
8
|
+
id?: string;
|
|
9
|
+
exitCode: number;
|
|
10
|
+
stdout: string;
|
|
11
|
+
stderr: string;
|
|
12
|
+
status?: string;
|
|
13
|
+
transport: "sdk" | "cli";
|
|
14
|
+
}
|
|
15
|
+
interface PaseoRuntimeDeps {
|
|
16
|
+
run: typeof runProcess;
|
|
17
|
+
detectCapabilities: typeof detectPaseoCapabilities;
|
|
18
|
+
sdk: {
|
|
19
|
+
create: typeof createPaseoSdkAgent;
|
|
20
|
+
run: typeof runPaseoSdkAgent;
|
|
21
|
+
probe: typeof probePaseoSdkAgent;
|
|
22
|
+
inspect: typeof inspectPaseoSdkAgent;
|
|
23
|
+
list: typeof listPaseoSdkAgents;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export declare function launchManagedPaseoAgent(root: string, options: ManagedPaseoAgentOptions, deps?: PaseoRuntimeDeps): Promise<ManagedPaseoAgentResult>;
|
|
27
|
+
export declare function continueManagedPaseoAgent(root: string, agentId: string, prompt: string, timeoutSeconds?: number, deps?: PaseoRuntimeDeps): Promise<ManagedPaseoAgentResult>;
|
|
28
|
+
export declare function probeManagedPaseoAgent(root: string, agentId: string, deps?: PaseoRuntimeDeps): Promise<boolean>;
|
|
29
|
+
export declare function inspectManagedPaseoAgent(root: string, agentId: string, deps?: PaseoRuntimeDeps): Promise<PaseoSdkAgentRecord | undefined>;
|
|
30
|
+
export declare function listManagedPaseoAgents(root: string, labels?: Record<string, string>, deps?: PaseoRuntimeDeps): Promise<PaseoSdkAgentRecord[]>;
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import process from "node:process";
|
|
2
|
+
import { buildPaseoBackgroundRunCommand, detectPaseoCapabilities, extractPaseoAgentId } from "./capabilities.js";
|
|
3
|
+
import { PaseoSdkUnavailableError, createPaseoSdkAgent, inspectPaseoSdkAgent, listPaseoSdkAgents, probePaseoSdkAgent, runPaseoSdkAgent } from "./sdk.js";
|
|
4
|
+
import { runProcess } from "../utils/process.js";
|
|
5
|
+
const DEFAULT_DEPS = {
|
|
6
|
+
run: runProcess,
|
|
7
|
+
detectCapabilities: detectPaseoCapabilities,
|
|
8
|
+
sdk: { create: createPaseoSdkAgent, run: runPaseoSdkAgent, probe: probePaseoSdkAgent, inspect: inspectPaseoSdkAgent, list: listPaseoSdkAgents }
|
|
9
|
+
};
|
|
10
|
+
export async function launchManagedPaseoAgent(root, options, deps = DEFAULT_DEPS) {
|
|
11
|
+
if (preferSdk(options)) {
|
|
12
|
+
try {
|
|
13
|
+
const result = await deps.sdk.create(root, { ...options, timeoutMs: options.timeoutMs ?? timeoutMs(options.timeoutSeconds) });
|
|
14
|
+
return fromSdk(result);
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
if (!sdkCanFallback(error))
|
|
18
|
+
throw error;
|
|
19
|
+
return launchCli(root, options, deps, `SDK unavailable: ${error instanceof Error ? error.message : String(error)}`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return launchCli(root, options, deps, "SDK skipped because no explicit provider/model was available or AEH_PASEO_FORCE_CLI=1.");
|
|
23
|
+
}
|
|
24
|
+
export async function continueManagedPaseoAgent(root, agentId, prompt, timeoutSeconds, deps = DEFAULT_DEPS) {
|
|
25
|
+
if (!forceCli()) {
|
|
26
|
+
try {
|
|
27
|
+
return fromSdk(await deps.sdk.run(root, agentId, prompt, timeoutMs(timeoutSeconds)));
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
if (!sdkCanFallback(error))
|
|
31
|
+
throw error;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const timeout = timeoutSeconds ?? 1800;
|
|
35
|
+
const send = await deps.run(`paseo send ${quote(agentId)} --no-wait ${quote(prompt)}`, { cwd: root, timeoutMs: 60_000 });
|
|
36
|
+
if (send.exitCode !== 0)
|
|
37
|
+
return { id: agentId, exitCode: send.exitCode, stdout: send.stdout, stderr: send.stderr, transport: "cli" };
|
|
38
|
+
const wait = await deps.run(`paseo wait ${quote(agentId)} --timeout ${timeout}`, { cwd: root, timeoutMs: (timeout + 30) * 1000 });
|
|
39
|
+
const logs = await deps.run(`paseo logs ${quote(agentId)} --tail 200`, { cwd: root, timeoutMs: 60_000 });
|
|
40
|
+
return { id: agentId, exitCode: wait.exitCode, stdout: logs.stdout || wait.stdout, stderr: [send.stderr, wait.stderr, logs.stderr].filter(Boolean).join("\n"), transport: "cli" };
|
|
41
|
+
}
|
|
42
|
+
export async function probeManagedPaseoAgent(root, agentId, deps = DEFAULT_DEPS) {
|
|
43
|
+
if (!forceCli()) {
|
|
44
|
+
try {
|
|
45
|
+
return await deps.sdk.probe(root, agentId);
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
if (!sdkCanFallback(error))
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const probe = await deps.run(`paseo logs ${quote(agentId)} --tail 1`, { cwd: root, timeoutMs: 30_000 });
|
|
53
|
+
return probe.exitCode === 0;
|
|
54
|
+
}
|
|
55
|
+
export async function inspectManagedPaseoAgent(root, agentId, deps = DEFAULT_DEPS) {
|
|
56
|
+
if (!forceCli()) {
|
|
57
|
+
try {
|
|
58
|
+
return await deps.sdk.inspect(root, agentId);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
if (!sdkCanFallback(error))
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return (await listCliAgents(root, deps)).find((agent) => agent.id === agentId);
|
|
66
|
+
}
|
|
67
|
+
export async function listManagedPaseoAgents(root, labels = {}, deps = DEFAULT_DEPS) {
|
|
68
|
+
if (!forceCli()) {
|
|
69
|
+
try {
|
|
70
|
+
return await deps.sdk.list(root, labels);
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
if (!sdkCanFallback(error))
|
|
74
|
+
throw error;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return (await listCliAgents(root, deps)).filter((agent) => Object.entries(labels).every(([key, value]) => agent.labels?.[key] === value));
|
|
78
|
+
}
|
|
79
|
+
async function launchCli(root, options, deps, fallbackReason) {
|
|
80
|
+
if (options.prompt === undefined && options.systemPrompt !== undefined) {
|
|
81
|
+
throw new PaseoSdkUnavailableError(`Paseo SDK is required to create an idle systemPrompt-only agent. Refusing CLI fallback because it would expose session instructions as a user turn. ${fallbackReason}`);
|
|
82
|
+
}
|
|
83
|
+
const capabilities = await deps.detectCapabilities(root, deps.run);
|
|
84
|
+
const prompt = options.prompt;
|
|
85
|
+
if (prompt === undefined)
|
|
86
|
+
throw new Error("Paseo CLI fallback requires a prompt.");
|
|
87
|
+
const timeout = options.timeoutSeconds ?? Math.max(1, Math.ceil((options.timeoutMs ?? 1_800_000) / 1000));
|
|
88
|
+
if (options.outputSchema) {
|
|
89
|
+
if (!capabilities.outputSchema)
|
|
90
|
+
throw new Error(`Installed Paseo${capabilities.version ? ` ${capabilities.version}` : ""} does not advertise --output-schema required by this agent.`);
|
|
91
|
+
const parts = ["paseo run --quiet", `--title ${quote(options.title)}`, `--provider ${quote(options.provider)}`];
|
|
92
|
+
if (options.workspaceId)
|
|
93
|
+
parts.push(`--workspace ${quote(options.workspaceId)}`);
|
|
94
|
+
if (options.model)
|
|
95
|
+
parts.push(`--model ${quote(options.model)}`);
|
|
96
|
+
parts.push(`--output-schema ${quote(JSON.stringify(options.outputSchema))}`, quote(prompt));
|
|
97
|
+
const result = await deps.run(parts.join(" "), { cwd: root, timeoutMs: timeout * 1000 });
|
|
98
|
+
return { exitCode: result.exitCode, stdout: result.stdout, stderr: [fallbackReason, result.stderr].filter(Boolean).join("\n"), transport: "cli" };
|
|
99
|
+
}
|
|
100
|
+
const command = buildPaseoBackgroundRunCommand({ title: options.title, provider: options.provider, model: options.model, workspaceId: options.workspaceId, prompt }, capabilities);
|
|
101
|
+
const launch = await deps.run(command, { cwd: root, timeoutMs: 60_000 });
|
|
102
|
+
if (launch.exitCode !== 0)
|
|
103
|
+
return { exitCode: launch.exitCode, stdout: launch.stdout, stderr: [fallbackReason, launch.stderr].filter(Boolean).join("\n"), transport: "cli" };
|
|
104
|
+
const id = extractPaseoAgentId(launch.stdout);
|
|
105
|
+
if (!id)
|
|
106
|
+
return { exitCode: 1, stdout: launch.stdout, stderr: [fallbackReason, "Paseo returned no parseable agent id."].join("\n"), transport: "cli" };
|
|
107
|
+
const wait = await deps.run(`paseo wait ${quote(id)} --timeout ${timeout}`, { cwd: root, timeoutMs: (timeout + 30) * 1000 });
|
|
108
|
+
const logs = await deps.run(`paseo logs ${quote(id)} --tail 200`, { cwd: root, timeoutMs: 60_000 });
|
|
109
|
+
return { id, exitCode: wait.exitCode, stdout: logs.stdout || wait.stdout || launch.stdout, stderr: [fallbackReason, launch.stderr, wait.stderr, logs.stderr].filter(Boolean).join("\n"), transport: "cli" };
|
|
110
|
+
}
|
|
111
|
+
async function listCliAgents(root, deps) {
|
|
112
|
+
const result = await deps.run("paseo ls -a -g --json", { cwd: root, timeoutMs: 30_000 });
|
|
113
|
+
if (result.exitCode !== 0 || !result.stdout.trim())
|
|
114
|
+
return [];
|
|
115
|
+
try {
|
|
116
|
+
const records = new Map();
|
|
117
|
+
collectCliAgents(JSON.parse(result.stdout), records);
|
|
118
|
+
return [...records.values()];
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
return [];
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function collectCliAgents(value, out) {
|
|
125
|
+
if (Array.isArray(value)) {
|
|
126
|
+
for (const child of value)
|
|
127
|
+
collectCliAgents(child, out);
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
if (!value || typeof value !== "object")
|
|
131
|
+
return;
|
|
132
|
+
const record = value;
|
|
133
|
+
const id = firstString(record, ["id", "agentId", "agent_id"]);
|
|
134
|
+
if (id && ("status" in record || "title" in record || "labels" in record)) {
|
|
135
|
+
out.set(id, { id, title: firstString(record, ["title", "name"]), status: statusText(record.status), workspaceId: firstString(record, ["workspaceId", "workspace_id"]), labels: stringRecord(record.labels), raw: record });
|
|
136
|
+
}
|
|
137
|
+
for (const child of Object.values(record))
|
|
138
|
+
collectCliAgents(child, out);
|
|
139
|
+
}
|
|
140
|
+
function preferSdk(options) { return !forceCli() && (Boolean(options.model) || options.provider.includes("/")); }
|
|
141
|
+
function forceCli() { return process.env.AEH_PASEO_FORCE_CLI === "1"; }
|
|
142
|
+
function sdkCanFallback(error) { return error instanceof PaseoSdkUnavailableError || (error instanceof Error && error.name === "PaseoSdkUnavailableError"); }
|
|
143
|
+
function timeoutMs(seconds) { return (seconds ?? 1800) * 1000; }
|
|
144
|
+
function fromSdk(result) { return { id: result.id, exitCode: sdkExitCode(result.status, result.error), stdout: result.lastMessage ?? "", stderr: result.error ?? "", status: result.status, transport: "sdk" }; }
|
|
145
|
+
function sdkExitCode(status, error) { if (error)
|
|
146
|
+
return 1; return !status || status === "idle" ? 0 : status === "timeout" ? 124 : 1; }
|
|
147
|
+
function firstString(record, keys) { for (const key of keys)
|
|
148
|
+
if (typeof record[key] === "string" && record[key])
|
|
149
|
+
return record[key]; return undefined; }
|
|
150
|
+
function stringRecord(value) { if (!value || typeof value !== "object" || Array.isArray(value))
|
|
151
|
+
return undefined; const result = {}; for (const [key, item] of Object.entries(value))
|
|
152
|
+
if (typeof item === "string")
|
|
153
|
+
result[key] = item; return Object.keys(result).length ? result : undefined; }
|
|
154
|
+
function statusText(value) { if (typeof value === "string")
|
|
155
|
+
return value; if (value && typeof value === "object" && typeof value.status === "string")
|
|
156
|
+
return value.status; return undefined; }
|
|
157
|
+
function quote(value) { return `'${value.replaceAll("'", "'\\''")}'`; }
|
|
158
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/paseo/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
export interface PaseoSdkAgentOptions {
|
|
2
|
+
cwd: string;
|
|
3
|
+
workspaceId?: string;
|
|
4
|
+
provider: string;
|
|
5
|
+
model?: string;
|
|
6
|
+
title: string;
|
|
7
|
+
systemPrompt?: string;
|
|
8
|
+
prompt?: string;
|
|
9
|
+
outputSchema?: Record<string, unknown>;
|
|
10
|
+
labels?: Record<string, string>;
|
|
11
|
+
timeoutMs?: number;
|
|
12
|
+
waitForFinish?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface PaseoSdkAgentResult {
|
|
15
|
+
id: string;
|
|
16
|
+
workspaceId?: string;
|
|
17
|
+
status?: string;
|
|
18
|
+
lastMessage?: string;
|
|
19
|
+
error?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface PaseoSdkAgentRecord {
|
|
22
|
+
id: string;
|
|
23
|
+
title?: string;
|
|
24
|
+
status?: string;
|
|
25
|
+
workspaceId?: string;
|
|
26
|
+
labels?: Record<string, string>;
|
|
27
|
+
raw: Record<string, unknown>;
|
|
28
|
+
}
|
|
29
|
+
interface PaseoSdkTurnResult {
|
|
30
|
+
status: string;
|
|
31
|
+
lastMessage?: string;
|
|
32
|
+
error?: string;
|
|
33
|
+
}
|
|
34
|
+
interface PaseoSdkAgentHandle {
|
|
35
|
+
readonly id: string;
|
|
36
|
+
readonly workspaceId: string | null;
|
|
37
|
+
readonly status: unknown;
|
|
38
|
+
refresh(requestId?: string): Promise<{
|
|
39
|
+
agent: Record<string, unknown>;
|
|
40
|
+
project: unknown;
|
|
41
|
+
} | null>;
|
|
42
|
+
run(text: string, options?: {
|
|
43
|
+
timeoutMs?: number;
|
|
44
|
+
}): Promise<PaseoSdkTurnResult>;
|
|
45
|
+
waitForFinish(timeoutMs?: number): Promise<PaseoSdkTurnResult>;
|
|
46
|
+
}
|
|
47
|
+
interface PaseoSdkWorkspaceHandle {
|
|
48
|
+
readonly agents: {
|
|
49
|
+
create(options: Record<string, unknown>): Promise<PaseoSdkAgentHandle>;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
interface PaseoSdkClient {
|
|
53
|
+
readonly agents: {
|
|
54
|
+
create(options: Record<string, unknown>): Promise<PaseoSdkAgentHandle>;
|
|
55
|
+
ref(agentId: string): PaseoSdkAgentHandle;
|
|
56
|
+
list(options?: Record<string, unknown>): Promise<{
|
|
57
|
+
entries: Array<{
|
|
58
|
+
agent: Record<string, unknown>;
|
|
59
|
+
}>;
|
|
60
|
+
}>;
|
|
61
|
+
};
|
|
62
|
+
readonly workspaces: {
|
|
63
|
+
ref(workspaceId: string): PaseoSdkWorkspaceHandle;
|
|
64
|
+
};
|
|
65
|
+
connect(): Promise<void>;
|
|
66
|
+
close(): Promise<void>;
|
|
67
|
+
}
|
|
68
|
+
export declare class PaseoSdkUnavailableError extends Error {
|
|
69
|
+
constructor(message: string, options?: {
|
|
70
|
+
cause?: unknown;
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
export declare function createPaseoSdkAgent(root: string, options: PaseoSdkAgentOptions): Promise<PaseoSdkAgentResult>;
|
|
74
|
+
export declare function createPaseoSdkAgentWithClient(client: PaseoSdkClient, options: PaseoSdkAgentOptions): Promise<PaseoSdkAgentResult>;
|
|
75
|
+
export declare function runPaseoSdkAgent(root: string, agentId: string, prompt: string, timeoutMs?: number): Promise<PaseoSdkAgentResult>;
|
|
76
|
+
export declare function inspectPaseoSdkAgent(root: string, agentId: string): Promise<PaseoSdkAgentRecord | undefined>;
|
|
77
|
+
export declare function probePaseoSdkAgent(root: string, agentId: string): Promise<boolean>;
|
|
78
|
+
export declare function listPaseoSdkAgents(root: string, labels?: Record<string, string>): Promise<PaseoSdkAgentRecord[]>;
|
|
79
|
+
export {};
|