@agentworkforce/cli 0.2.0 → 0.3.0
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/CHANGELOG.md +7 -0
- package/README.md +1 -1
- package/dist/cli.d.ts +61 -5
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +598 -54
- package/dist/cli.js.map +1 -1
- package/dist/cli.test.js +90 -9
- package/dist/cli.test.js.map +1 -1
- package/package.json +5 -4
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -529,7 +529,7 @@ agent-workforce agent --clean <persona>[@<tier>]
|
|
|
529
529
|
|
|
530
530
|
### Session layout
|
|
531
531
|
|
|
532
|
-
Both the skill install root and the
|
|
532
|
+
Both the skill install root and the sandbox mount live under a single
|
|
533
533
|
session directory. The session id (`<personaId>-<base36-timestamp>-<hex>`)
|
|
534
534
|
is generated once and both paths are derived from it:
|
|
535
535
|
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,17 +1,73 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { type Harness } from '@agentworkforce/workload-router';
|
|
3
|
+
/**
|
|
4
|
+
* Resolve the `<harness>` placeholder used in persona systemPrompts.
|
|
5
|
+
* Personas embed `<harness>` inside example install commands (e.g.
|
|
6
|
+
* `npx prpm install <ref> --as <harness>`) so the docstring stays
|
|
7
|
+
* harness-agnostic in source. The active harness is known at selection
|
|
8
|
+
* time, so swap it in here to give the model a concrete command.
|
|
9
|
+
*
|
|
10
|
+
* Exported for test coverage. Only `<harness>` is resolved today; other
|
|
11
|
+
* angle-bracketed tokens in the prompt (e.g. `<ref>`, `<repo-url>`,
|
|
12
|
+
* `<query>`) are deliberately left as LLM-facing placeholders.
|
|
13
|
+
*/
|
|
14
|
+
export declare function resolveSystemPromptPlaceholders(prompt: string, harness: Harness): string;
|
|
15
|
+
/**
|
|
16
|
+
* Remove every `--agent <id>` pair from a harness argv. Used on the non-mount
|
|
17
|
+
* opencode path where we cannot safely materialize the persona's
|
|
18
|
+
* opencode.json (it would land in the user's real repo), so we fall back to
|
|
19
|
+
* launching opencode without a persona-specific agent selection.
|
|
20
|
+
*
|
|
21
|
+
* Strips all occurrences rather than just the first — the current producer
|
|
22
|
+
* (harness-kit's opencode branch) emits exactly one pair, so both behaviors
|
|
23
|
+
* are equivalent today, but "remove all" is idempotent and safer if a future
|
|
24
|
+
* caller ever appends a second `--agent` for any reason. A trailing `--agent`
|
|
25
|
+
* with no following value is preserved so the malformed argv surfaces at the
|
|
26
|
+
* harness rather than getting silently swallowed here.
|
|
27
|
+
*/
|
|
28
|
+
export declare function stripAgentFlag(args: readonly string[]): string[];
|
|
29
|
+
/**
|
|
30
|
+
* Validate that a configFile's relative path is safe to resolve under a
|
|
31
|
+
* sandbox/session directory. Rejects absolute paths and any segment equal to
|
|
32
|
+
* `..` so a malformed or adversarial persona cannot escape the mount via
|
|
33
|
+
* `join()` and overwrite files elsewhere. Called at materialization time so
|
|
34
|
+
* the failure surfaces with a clear path before any disk write happens.
|
|
35
|
+
*/
|
|
36
|
+
export declare function assertSafeRelativePath(relPath: string): void;
|
|
3
37
|
/** Patterns hidden from an interactive claude session when `--clean` is set.
|
|
4
38
|
* Applied by `@relayfile/local-mount` with gitignore semantics, so bare names
|
|
5
39
|
* match at any depth in the project tree (e.g. `.claude` hides both
|
|
6
40
|
* `./.claude/` and `./packages/foo/.claude/`). */
|
|
7
41
|
export declare const CLEAN_IGNORED_PATTERNS: readonly ["CLAUDE.md", "CLAUDE.local.md", ".claude", ".mcp.json"];
|
|
8
42
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
43
|
+
* Skill-install artifacts that should never be copied into the mount nor
|
|
44
|
+
* synced back to the real repo. Applied to non-claude interactive sessions
|
|
45
|
+
* that rely on the mount to keep `npx skills add` / `npx prpm install`
|
|
46
|
+
* writes out of the user's project tree. Covers every per-provider output
|
|
47
|
+
* root that skill.sh / prpm scatter into on install — missing one here
|
|
48
|
+
* re-introduces repo pollution, so this list is deliberately superset-y.
|
|
49
|
+
* Claude sessions use `installRoot` for out-of-repo staging instead, so
|
|
50
|
+
* these patterns don't apply there.
|
|
51
|
+
*/
|
|
52
|
+
export declare const SKILL_INSTALL_IGNORED_PATTERNS: readonly [".agents", ".claude/skills", ".factory/skills", ".kiro/skills", "skills", ".opencode", ".skills", "prpm.lock", "skills-lock.json"];
|
|
53
|
+
/**
|
|
54
|
+
* Decide whether to run the interactive session inside a
|
|
55
|
+
* `@relayfile/local-mount` sandbox.
|
|
56
|
+
*
|
|
57
|
+
* - Claude: mount only engages when the user passes `--clean` explicitly
|
|
58
|
+
* (its purpose there is to hide CLAUDE.md / .claude / .mcp.json from the
|
|
59
|
+
* session). Out-of-repo skill staging is handled separately via
|
|
60
|
+
* `installRoot` + `--plugin-dir`.
|
|
61
|
+
* - Opencode: the SDK cannot stage skills out-of-repo for this harness
|
|
62
|
+
* (there is no `installRoot` support), so the mount is the only way to
|
|
63
|
+
* keep `npx prpm install` / `npx skills add` writes out of the project.
|
|
64
|
+
* Default to mount unless the user opts in with `--install-in-repo`.
|
|
65
|
+
* - Codex: no auto-mount yet. `--clean` still emits the existing
|
|
66
|
+
* "claude-only" warning so current behavior is preserved.
|
|
67
|
+
*
|
|
68
|
+
* Pure — no side effects, trivially testable.
|
|
13
69
|
*/
|
|
14
|
-
export declare function decideCleanMode(harness: Harness, clean: boolean): {
|
|
70
|
+
export declare function decideCleanMode(harness: Harness, clean: boolean, installInRepo?: boolean): {
|
|
15
71
|
useClean: boolean;
|
|
16
72
|
warning?: string;
|
|
17
73
|
};
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAQA,OAAO,EAOL,KAAK,OAAO,EAMb,MAAM,iCAAiC,CAAC;AAwIzC;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAExF;AAkLD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAUhE;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAe5D;AAED;;;kDAGkD;AAClD,eAAO,MAAM,sBAAsB,mEAKzB,CAAC;AAEX;;;;;;;;;GASG;AACH,eAAO,MAAM,8BAA8B,8IAajC,CAAC;AAEX;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,OAAO,EACd,aAAa,UAAQ,GACpB;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAezC;AAy1BD,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG;IACvD,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAmCA"}
|
package/dist/cli.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { spawn, spawnSync } from 'node:child_process';
|
|
3
3
|
import { randomBytes } from 'node:crypto';
|
|
4
|
+
import { mkdirSync, rmSync, writeFileSync } from 'node:fs';
|
|
4
5
|
import { constants, homedir } from 'node:os';
|
|
5
|
-
import { join, resolve as resolvePath } from 'node:path';
|
|
6
|
+
import { dirname, isAbsolute, join, resolve as resolvePath } from 'node:path';
|
|
6
7
|
import { pathToFileURL } from 'node:url';
|
|
7
8
|
import { HARNESS_VALUES, PERSONA_TAGS, PERSONA_TIERS, personaCatalog, routingProfiles, useSelection } from '@agentworkforce/workload-router';
|
|
8
9
|
import { buildInteractiveSpec, detectHarnesses, formatDropWarnings, resolveMcpServersLenient, resolveStringMapLenient } from '@agentworkforce/harness-kit';
|
|
9
10
|
import { launchOnMount } from '@relayfile/local-mount';
|
|
11
|
+
import ora from 'ora';
|
|
10
12
|
import { loadLocalPersonas } from './local-personas.js';
|
|
11
13
|
const USAGE = `Usage: agent-workforce <command> [args...]
|
|
12
14
|
|
|
@@ -19,19 +21,28 @@ Commands:
|
|
|
19
21
|
|
|
20
22
|
Flags:
|
|
21
23
|
--install-in-repo Install skills into the repo's
|
|
22
|
-
|
|
24
|
+
harness-conventional directory
|
|
25
|
+
(.claude/skills, .opencode/skills,
|
|
26
|
+
.agents/skills, etc.). By default,
|
|
23
27
|
interactive claude sessions stage
|
|
24
28
|
skills under ~/.agent-workforce/
|
|
25
|
-
sessions/<id>/ and pass --plugin-dir
|
|
26
|
-
|
|
29
|
+
sessions/<id>/ and pass --plugin-dir;
|
|
30
|
+
interactive opencode sessions run
|
|
31
|
+
inside a @relayfile/local-mount
|
|
32
|
+
sandbox so npx prpm install / npx
|
|
33
|
+
skills add writes never touch the
|
|
34
|
+
real repo.
|
|
27
35
|
--clean Launch interactive claude inside a
|
|
28
36
|
@relayfile/local-mount sandbox that
|
|
29
|
-
hides the repo's CLAUDE.md,
|
|
37
|
+
also hides the repo's CLAUDE.md,
|
|
30
38
|
CLAUDE.local.md, .claude, and
|
|
31
39
|
.mcp.json from the session. Persona
|
|
32
40
|
skills and keychain auth are
|
|
33
|
-
preserved.
|
|
34
|
-
|
|
41
|
+
preserved. No-op for opencode
|
|
42
|
+
(mount is already on by default);
|
|
43
|
+
codex still warns and proceeds
|
|
44
|
+
without a mount. Incompatible
|
|
45
|
+
with --install-in-repo.
|
|
35
46
|
list [flags] List available personas from the cascade (pwd → home →
|
|
36
47
|
library). By default shows one row per persona at the
|
|
37
48
|
recommended tier for its intent; pass --all to see every
|
|
@@ -46,6 +57,14 @@ Commands:
|
|
|
46
57
|
--filter-tag <tag> only show personas carrying this tag
|
|
47
58
|
(${PERSONA_TAGS.join(' | ')})
|
|
48
59
|
--no-display-description hide the DESCRIPTION column
|
|
60
|
+
show <persona>[@<tier>]
|
|
61
|
+
Print the fully-resolved spec for a single persona,
|
|
62
|
+
including which cascade layer defined it (pwd, home,
|
|
63
|
+
library). By default shows only the recommended tier for
|
|
64
|
+
the persona's intent; pass @<tier> to pick one, or --all
|
|
65
|
+
to see every tier. Flags:
|
|
66
|
+
--all include every tier (overrides default)
|
|
67
|
+
--json emit the resolved PersonaSpec as JSON
|
|
49
68
|
harness check Probe which harnesses (claude, codex, opencode) are
|
|
50
69
|
installed and runnable on this machine.
|
|
51
70
|
|
|
@@ -60,6 +79,7 @@ Examples:
|
|
|
60
79
|
agent-workforce agent my-posthog@best
|
|
61
80
|
agent-workforce agent review@best-value "look at the diff on this branch"
|
|
62
81
|
agent-workforce list
|
|
82
|
+
agent-workforce show posthog
|
|
63
83
|
agent-workforce harness check
|
|
64
84
|
`;
|
|
65
85
|
function die(msg, withUsage = true) {
|
|
@@ -108,11 +128,30 @@ function parseSelector(sel) {
|
|
|
108
128
|
const kind = local.byId.has(key) ? 'local' : 'repo';
|
|
109
129
|
return { kind, spec: result, tier };
|
|
110
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* Resolve the `<harness>` placeholder used in persona systemPrompts.
|
|
133
|
+
* Personas embed `<harness>` inside example install commands (e.g.
|
|
134
|
+
* `npx prpm install <ref> --as <harness>`) so the docstring stays
|
|
135
|
+
* harness-agnostic in source. The active harness is known at selection
|
|
136
|
+
* time, so swap it in here to give the model a concrete command.
|
|
137
|
+
*
|
|
138
|
+
* Exported for test coverage. Only `<harness>` is resolved today; other
|
|
139
|
+
* angle-bracketed tokens in the prompt (e.g. `<ref>`, `<repo-url>`,
|
|
140
|
+
* `<query>`) are deliberately left as LLM-facing placeholders.
|
|
141
|
+
*/
|
|
142
|
+
export function resolveSystemPromptPlaceholders(prompt, harness) {
|
|
143
|
+
return prompt.replaceAll('<harness>', harness);
|
|
144
|
+
}
|
|
111
145
|
function buildSelection(spec, tier, kind) {
|
|
146
|
+
const rawRuntime = spec.tiers[tier];
|
|
147
|
+
const runtime = {
|
|
148
|
+
...rawRuntime,
|
|
149
|
+
systemPrompt: resolveSystemPromptPlaceholders(rawRuntime.systemPrompt, rawRuntime.harness)
|
|
150
|
+
};
|
|
112
151
|
return {
|
|
113
152
|
personaId: spec.id,
|
|
114
153
|
tier,
|
|
115
|
-
runtime
|
|
154
|
+
runtime,
|
|
116
155
|
skills: spec.skills,
|
|
117
156
|
rationale: kind === 'local' ? `local-override: ${spec.id}` : `cli-tier-override: ${tier}`,
|
|
118
157
|
...(spec.env ? { env: spec.env } : {}),
|
|
@@ -159,18 +198,61 @@ function signalExitCode(signal) {
|
|
|
159
198
|
const num = constants.signals[signal];
|
|
160
199
|
return 128 + (num ?? 1);
|
|
161
200
|
}
|
|
162
|
-
|
|
201
|
+
/**
|
|
202
|
+
* Derive a meaningful exit code from a `spawnSync` result. `spawnSync`
|
|
203
|
+
* sets `status` to null and `signal` to the signal name (e.g. `SIGINT`)
|
|
204
|
+
* when the child was killed before it could set its own exit code, so
|
|
205
|
+
* a naive `res.status ?? 1` collapses Ctrl-C / SIGTERM onto generic
|
|
206
|
+
* failure instead of the conventional 128+N.
|
|
207
|
+
*/
|
|
208
|
+
function subprocessExitCode(res) {
|
|
209
|
+
if (res.status !== null)
|
|
210
|
+
return res.status;
|
|
211
|
+
if (res.signal)
|
|
212
|
+
return signalExitCode(res.signal);
|
|
213
|
+
return 1;
|
|
214
|
+
}
|
|
215
|
+
function runInstall(command, label, cwd) {
|
|
163
216
|
const [bin, ...args] = command;
|
|
164
217
|
if (!bin)
|
|
165
218
|
return;
|
|
166
219
|
process.stderr.write(`• ${label}\n`);
|
|
167
|
-
const res = spawnSync(bin, args, { stdio: 'inherit', shell: false });
|
|
168
|
-
|
|
169
|
-
|
|
220
|
+
const res = spawnSync(bin, args, { stdio: 'inherit', shell: false, ...(cwd ? { cwd } : {}) });
|
|
221
|
+
const code = subprocessExitCode(res);
|
|
222
|
+
if (code !== 0) {
|
|
170
223
|
process.stderr.write(`${label} failed (exit ${code}). Aborting.\n`);
|
|
171
224
|
process.exit(code);
|
|
172
225
|
}
|
|
173
226
|
}
|
|
227
|
+
/**
|
|
228
|
+
* Thrown by `runInstallOrThrow` when the install subprocess exits non-zero.
|
|
229
|
+
* Carries the underlying exit code so the mount-branch catch can surface it
|
|
230
|
+
* to the user instead of collapsing every failure onto 127.
|
|
231
|
+
*/
|
|
232
|
+
class InstallCommandError extends Error {
|
|
233
|
+
exitCode;
|
|
234
|
+
constructor(label, exitCode) {
|
|
235
|
+
super(`${label} failed (exit ${exitCode})`);
|
|
236
|
+
this.name = 'InstallCommandError';
|
|
237
|
+
this.exitCode = exitCode;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Install variant that throws instead of calling `process.exit` on failure.
|
|
242
|
+
* Used inside `launchOnMount`'s `onBeforeLaunch`, so mount teardown runs
|
|
243
|
+
* before the error surfaces.
|
|
244
|
+
*/
|
|
245
|
+
function runInstallOrThrow(command, label, cwd) {
|
|
246
|
+
const [bin, ...args] = command;
|
|
247
|
+
if (!bin)
|
|
248
|
+
return;
|
|
249
|
+
process.stderr.write(`• ${label}\n`);
|
|
250
|
+
const res = spawnSync(bin, args, { stdio: 'inherit', shell: false, cwd });
|
|
251
|
+
const code = subprocessExitCode(res);
|
|
252
|
+
if (code !== 0) {
|
|
253
|
+
throw new InstallCommandError(label, code);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
174
256
|
function runCleanup(command, commandString) {
|
|
175
257
|
if (commandString === ':')
|
|
176
258
|
return;
|
|
@@ -185,11 +267,19 @@ function runCleanup(command, commandString) {
|
|
|
185
267
|
* created. The workload-router cleanup only covers the install subtree
|
|
186
268
|
* (`<root>/claude/plugin`), so without this step empty parent dirs
|
|
187
269
|
* would accumulate under `~/.agent-workforce/sessions/`.
|
|
270
|
+
*
|
|
271
|
+
* Uses `fs.rmSync` rather than `spawnSync('rm', …)` so the teardown works
|
|
272
|
+
* on Windows where `rm` isn't on PATH.
|
|
188
273
|
*/
|
|
189
274
|
function removeSessionRoot(sessionRoot) {
|
|
190
275
|
if (!sessionRoot)
|
|
191
276
|
return;
|
|
192
|
-
|
|
277
|
+
try {
|
|
278
|
+
rmSync(sessionRoot, { recursive: true, force: true });
|
|
279
|
+
}
|
|
280
|
+
catch {
|
|
281
|
+
/* best-effort — if teardown fails the dir is harmless under ~/.agent-workforce/sessions */
|
|
282
|
+
}
|
|
193
283
|
}
|
|
194
284
|
/**
|
|
195
285
|
* Compute the absolute root directory for an interactive claude session.
|
|
@@ -213,6 +303,49 @@ function sessionInstallRoot(sessionRoot) {
|
|
|
213
303
|
function sessionMountDir(sessionRoot) {
|
|
214
304
|
return join(sessionRoot, 'mount');
|
|
215
305
|
}
|
|
306
|
+
/**
|
|
307
|
+
* Remove every `--agent <id>` pair from a harness argv. Used on the non-mount
|
|
308
|
+
* opencode path where we cannot safely materialize the persona's
|
|
309
|
+
* opencode.json (it would land in the user's real repo), so we fall back to
|
|
310
|
+
* launching opencode without a persona-specific agent selection.
|
|
311
|
+
*
|
|
312
|
+
* Strips all occurrences rather than just the first — the current producer
|
|
313
|
+
* (harness-kit's opencode branch) emits exactly one pair, so both behaviors
|
|
314
|
+
* are equivalent today, but "remove all" is idempotent and safer if a future
|
|
315
|
+
* caller ever appends a second `--agent` for any reason. A trailing `--agent`
|
|
316
|
+
* with no following value is preserved so the malformed argv surfaces at the
|
|
317
|
+
* harness rather than getting silently swallowed here.
|
|
318
|
+
*/
|
|
319
|
+
export function stripAgentFlag(args) {
|
|
320
|
+
const out = [];
|
|
321
|
+
for (let i = 0; i < args.length; i += 1) {
|
|
322
|
+
if (args[i] === '--agent' && i + 1 < args.length) {
|
|
323
|
+
i += 1;
|
|
324
|
+
continue;
|
|
325
|
+
}
|
|
326
|
+
out.push(args[i]);
|
|
327
|
+
}
|
|
328
|
+
return out;
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Validate that a configFile's relative path is safe to resolve under a
|
|
332
|
+
* sandbox/session directory. Rejects absolute paths and any segment equal to
|
|
333
|
+
* `..` so a malformed or adversarial persona cannot escape the mount via
|
|
334
|
+
* `join()` and overwrite files elsewhere. Called at materialization time so
|
|
335
|
+
* the failure surfaces with a clear path before any disk write happens.
|
|
336
|
+
*/
|
|
337
|
+
export function assertSafeRelativePath(relPath) {
|
|
338
|
+
if (!relPath) {
|
|
339
|
+
throw new Error('configFile path must be a non-empty relative path');
|
|
340
|
+
}
|
|
341
|
+
if (isAbsolute(relPath)) {
|
|
342
|
+
throw new Error(`configFile path must be relative; got absolute path ${JSON.stringify(relPath)}`);
|
|
343
|
+
}
|
|
344
|
+
const segments = relPath.split(/[\\/]+/);
|
|
345
|
+
if (segments.some((s) => s === '..')) {
|
|
346
|
+
throw new Error(`configFile path must not contain ".." segments; got ${JSON.stringify(relPath)}`);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
216
349
|
/** Patterns hidden from an interactive claude session when `--clean` is set.
|
|
217
350
|
* Applied by `@relayfile/local-mount` with gitignore semantics, so bare names
|
|
218
351
|
* match at any depth in the project tree (e.g. `.claude` hides both
|
|
@@ -224,38 +357,84 @@ export const CLEAN_IGNORED_PATTERNS = [
|
|
|
224
357
|
'.mcp.json'
|
|
225
358
|
];
|
|
226
359
|
/**
|
|
227
|
-
*
|
|
228
|
-
*
|
|
229
|
-
*
|
|
230
|
-
*
|
|
360
|
+
* Skill-install artifacts that should never be copied into the mount nor
|
|
361
|
+
* synced back to the real repo. Applied to non-claude interactive sessions
|
|
362
|
+
* that rely on the mount to keep `npx skills add` / `npx prpm install`
|
|
363
|
+
* writes out of the user's project tree. Covers every per-provider output
|
|
364
|
+
* root that skill.sh / prpm scatter into on install — missing one here
|
|
365
|
+
* re-introduces repo pollution, so this list is deliberately superset-y.
|
|
366
|
+
* Claude sessions use `installRoot` for out-of-repo staging instead, so
|
|
367
|
+
* these patterns don't apply there.
|
|
368
|
+
*/
|
|
369
|
+
export const SKILL_INSTALL_IGNORED_PATTERNS = [
|
|
370
|
+
// skill.sh universal install root + per-harness symlink farms
|
|
371
|
+
'.agents',
|
|
372
|
+
'.claude/skills',
|
|
373
|
+
'.factory/skills',
|
|
374
|
+
'.kiro/skills',
|
|
375
|
+
'skills',
|
|
376
|
+
// prpm `--as <harness>` output roots
|
|
377
|
+
'.opencode',
|
|
378
|
+
'.skills',
|
|
379
|
+
// provider lockfiles written at the repo root
|
|
380
|
+
'prpm.lock',
|
|
381
|
+
'skills-lock.json'
|
|
382
|
+
];
|
|
383
|
+
/**
|
|
384
|
+
* Decide whether to run the interactive session inside a
|
|
385
|
+
* `@relayfile/local-mount` sandbox.
|
|
386
|
+
*
|
|
387
|
+
* - Claude: mount only engages when the user passes `--clean` explicitly
|
|
388
|
+
* (its purpose there is to hide CLAUDE.md / .claude / .mcp.json from the
|
|
389
|
+
* session). Out-of-repo skill staging is handled separately via
|
|
390
|
+
* `installRoot` + `--plugin-dir`.
|
|
391
|
+
* - Opencode: the SDK cannot stage skills out-of-repo for this harness
|
|
392
|
+
* (there is no `installRoot` support), so the mount is the only way to
|
|
393
|
+
* keep `npx prpm install` / `npx skills add` writes out of the project.
|
|
394
|
+
* Default to mount unless the user opts in with `--install-in-repo`.
|
|
395
|
+
* - Codex: no auto-mount yet. `--clean` still emits the existing
|
|
396
|
+
* "claude-only" warning so current behavior is preserved.
|
|
397
|
+
*
|
|
398
|
+
* Pure — no side effects, trivially testable.
|
|
231
399
|
*/
|
|
232
|
-
export function decideCleanMode(harness, clean) {
|
|
233
|
-
if (
|
|
234
|
-
return { useClean:
|
|
235
|
-
|
|
400
|
+
export function decideCleanMode(harness, clean, installInRepo = false) {
|
|
401
|
+
if (harness === 'claude') {
|
|
402
|
+
return { useClean: clean };
|
|
403
|
+
}
|
|
404
|
+
if (harness === 'opencode') {
|
|
405
|
+
if (installInRepo)
|
|
406
|
+
return { useClean: false };
|
|
407
|
+
return { useClean: true };
|
|
408
|
+
}
|
|
409
|
+
if (clean) {
|
|
236
410
|
return {
|
|
237
411
|
useClean: false,
|
|
238
412
|
warning: `--clean is only supported for the claude harness (this session uses ${harness}). Ignoring flag.`
|
|
239
413
|
};
|
|
240
414
|
}
|
|
241
|
-
return { useClean:
|
|
415
|
+
return { useClean: false };
|
|
242
416
|
}
|
|
243
417
|
async function runInteractive(selection, options = {}) {
|
|
244
418
|
const { runtime, personaId, tier } = selection;
|
|
245
|
-
//
|
|
246
|
-
// only
|
|
247
|
-
//
|
|
248
|
-
//
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
const
|
|
252
|
-
// --clean applies to interactive claude only. For non-claude harnesses, warn
|
|
253
|
-
// and drop the flag (same pattern as pluginDirs warnings in buildInteractiveSpec).
|
|
254
|
-
const cleanDecision = decideCleanMode(runtime.harness, options.clean === true);
|
|
419
|
+
// `installRoot` (out-of-repo skill staging via `--plugin-dir`) is currently
|
|
420
|
+
// claude-only; the workload-router SDK throws if it's set for other
|
|
421
|
+
// harnesses. For opencode, we instead keep installs out of the repo by
|
|
422
|
+
// running them inside a @relayfile/local-mount sandbox (see `useClean`
|
|
423
|
+
// below). The --install-in-repo flag forces legacy in-repo installs
|
|
424
|
+
// across the board.
|
|
425
|
+
const cleanDecision = decideCleanMode(runtime.harness, options.clean === true, options.installInRepo === true);
|
|
255
426
|
if (cleanDecision.warning) {
|
|
256
427
|
process.stderr.write(`warning: ${cleanDecision.warning}\n`);
|
|
257
428
|
}
|
|
258
429
|
const useClean = cleanDecision.useClean;
|
|
430
|
+
// A session dir is needed whenever we either (a) stage skills out-of-repo
|
|
431
|
+
// via claude's installRoot, or (b) open a mount. Opencode reaches (b) by
|
|
432
|
+
// default; claude reaches both when --clean is set, and just (a) otherwise.
|
|
433
|
+
const useSessionDir = !options.installInRepo && (runtime.harness === 'claude' || useClean);
|
|
434
|
+
const sessionRoot = useSessionDir ? generateSessionRoot(personaId) : undefined;
|
|
435
|
+
const installRoot = sessionRoot && runtime.harness === 'claude'
|
|
436
|
+
? sessionInstallRoot(sessionRoot)
|
|
437
|
+
: undefined;
|
|
259
438
|
const ctx = useSelection(selection, installRoot !== undefined ? { installRoot } : {});
|
|
260
439
|
const { install } = ctx;
|
|
261
440
|
process.stderr.write(`→ ${personaId} [${tier}] via ${runtime.harness} (${runtime.model})\n`);
|
|
@@ -268,16 +447,21 @@ async function runInteractive(selection, options = {}) {
|
|
|
268
447
|
// the plugin scaffold (mkdir + manifest + symlink) so `--plugin-dir` has a
|
|
269
448
|
// valid target even for skill-less personas like posthog. Gate on the
|
|
270
449
|
// command string rather than `installs.length` so we don't skip that.
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
450
|
+
const skillIds = install.plan.installs.map((i) => i.skillId).join(', ');
|
|
451
|
+
const installLabel = install.plan.installs.length === 0
|
|
452
|
+
? `Staging session plugin dir${installRoot ? ` → ${installRoot}` : ''}`
|
|
453
|
+
: `Installing skills: ${skillIds}${installRoot ? ` → ${installRoot}` : ''}`;
|
|
454
|
+
// When useClean engages on a non-claude harness, the install must run
|
|
455
|
+
// INSIDE the mount so `.opencode/skills/`, `.agents/skills/`, prpm.lock,
|
|
456
|
+
// etc. land in the sandbox rather than the real repo. We defer it to
|
|
457
|
+
// `onBeforeLaunch` below instead of pre-running here.
|
|
458
|
+
const deferInstallToMount = useClean && runtime.harness !== 'claude' && install.commandString !== ':';
|
|
459
|
+
if (install.commandString !== ':' && !deferInstallToMount) {
|
|
460
|
+
runInstall(install.command, installLabel);
|
|
278
461
|
}
|
|
279
462
|
const spec = buildInteractiveSpec({
|
|
280
463
|
harness: runtime.harness,
|
|
464
|
+
personaId,
|
|
281
465
|
model: runtime.model,
|
|
282
466
|
systemPrompt: runtime.systemPrompt,
|
|
283
467
|
mcpServers: resolvedMcp,
|
|
@@ -286,7 +470,26 @@ async function runInteractive(selection, options = {}) {
|
|
|
286
470
|
});
|
|
287
471
|
for (const w of spec.warnings)
|
|
288
472
|
process.stderr.write(`warning: ${w}\n`);
|
|
289
|
-
|
|
473
|
+
// Config-file materialization strategy:
|
|
474
|
+
// - Mount path (opencode default, claude --clean): write each configFile
|
|
475
|
+
// into the mount dir via onBeforeLaunch, so it lives only in the
|
|
476
|
+
// sandbox and is torn down with the session.
|
|
477
|
+
// - Non-mount path: today the only configFile producer is opencode
|
|
478
|
+
// (opencode.json for the --agent wiring), and the non-mount opencode
|
|
479
|
+
// path only engages under --install-in-repo. Writing opencode.json
|
|
480
|
+
// into the user's real repo would pollute the working tree, so we
|
|
481
|
+
// degrade: drop --agent from the argv, warn, and launch opencode with
|
|
482
|
+
// its default agent. The persona's prompt will not be applied in that
|
|
483
|
+
// mode; users who want it should drop --install-in-repo (the mount
|
|
484
|
+
// default handles this cleanly).
|
|
485
|
+
const hasConfigFiles = spec.configFiles.length > 0;
|
|
486
|
+
const degradeConfigFiles = hasConfigFiles && !useClean;
|
|
487
|
+
let effectiveArgs = spec.args;
|
|
488
|
+
if (degradeConfigFiles) {
|
|
489
|
+
process.stderr.write('warning: --install-in-repo cannot safely materialize the persona agent config (would write opencode.json into your repo); launching without --agent. Drop --install-in-repo to apply the persona prompt.\n');
|
|
490
|
+
effectiveArgs = stripAgentFlag(spec.args);
|
|
491
|
+
}
|
|
492
|
+
const finalArgs = spec.initialPrompt ? [...effectiveArgs, spec.initialPrompt] : [...effectiveArgs];
|
|
290
493
|
// Print a sanitized summary rather than raw argv: spec.args for the claude
|
|
291
494
|
// harness contains the resolved --mcp-config JSON and the full system
|
|
292
495
|
// prompt, either of which can carry secrets (Bearer tokens, API keys) once
|
|
@@ -310,42 +513,194 @@ async function runInteractive(selection, options = {}) {
|
|
|
310
513
|
if (spec.initialPrompt)
|
|
311
514
|
summary.push('initial-prompt=<systemPrompt>');
|
|
312
515
|
if (useClean)
|
|
313
|
-
summary.push('
|
|
516
|
+
summary.push('mount=on');
|
|
314
517
|
process.stderr.write(`• spawning ${spec.bin} (${summary.join(', ')})\n`);
|
|
315
|
-
//
|
|
316
|
-
// syncback, cleanup) to @relayfile/local-mount.
|
|
317
|
-
//
|
|
318
|
-
//
|
|
518
|
+
// Mount branch: delegate process lifecycle (spawn, signal forwarding,
|
|
519
|
+
// syncback, cleanup) to @relayfile/local-mount.
|
|
520
|
+
//
|
|
521
|
+
// For claude: mount engages only when `--clean` is set, to hide the repo's
|
|
522
|
+
// claude config from the session. Skill plugin dir lives outside the mount
|
|
523
|
+
// at an absolute path, so claude resolves `--plugin-dir` normally.
|
|
524
|
+
//
|
|
525
|
+
// For opencode: mount engages by default (unless `--install-in-repo`), and
|
|
526
|
+
// the install itself runs inside the mount via `onBeforeLaunch` so that
|
|
527
|
+
// `npx prpm install` / `npx skills add` writes land in the sandbox. The
|
|
528
|
+
// skill-install paths are added to `ignoredPatterns` so they are neither
|
|
529
|
+
// copied in from the real repo nor synced back on exit.
|
|
319
530
|
if (useClean && sessionRoot) {
|
|
320
531
|
const mountDir = sessionMountDir(sessionRoot);
|
|
321
|
-
|
|
532
|
+
const ignoredPatterns = runtime.harness === 'claude'
|
|
533
|
+
? [...CLEAN_IGNORED_PATTERNS]
|
|
534
|
+
: [...SKILL_INSTALL_IGNORED_PATTERNS];
|
|
535
|
+
// Anything we materialize into the mount via onBeforeLaunch must be
|
|
536
|
+
// hidden from the mount-mirror in both directions: without this, any
|
|
537
|
+
// opencode.json already present in the real repo would be copied into
|
|
538
|
+
// the mount (masking the per-session agent config we write), and the
|
|
539
|
+
// fresh write from onBeforeLaunch would sync back out on exit and
|
|
540
|
+
// pollute the user's working tree. Added dynamically so this stays
|
|
541
|
+
// generic for any future configFile producer.
|
|
542
|
+
for (const file of spec.configFiles) {
|
|
543
|
+
ignoredPatterns.push(file.path);
|
|
544
|
+
}
|
|
545
|
+
process.stderr.write(`• sandbox mount → ${mountDir}\n`);
|
|
546
|
+
// Three-stage SIGINT handler layered on top of launchOnMount's own signal
|
|
547
|
+
// forwarding. launchOnMount catches the first SIGINT to kill the child
|
|
548
|
+
// and run its finalize() (autoSync.stop + final syncBack), which walks
|
|
549
|
+
// both trees and can take several seconds on a large repo — during
|
|
550
|
+
// which the terminal otherwise looks frozen.
|
|
551
|
+
//
|
|
552
|
+
// 1st press → start an ora spinner so the pause is visibly live
|
|
553
|
+
// (replaces the prior static print). onAfterSync below
|
|
554
|
+
// transitions the spinner into a succeed/fail state once
|
|
555
|
+
// relayfile reports the sync result.
|
|
556
|
+
// 2nd press → update the spinner text to the "aborting" warning and
|
|
557
|
+
// abort `shutdownSignal`, which local-mount 0.5+ respects
|
|
558
|
+
// by skipping autosync's draining reconcile and returning
|
|
559
|
+
// the partial count from the final syncBack. Cleanup
|
|
560
|
+
// still runs, so no leaked mount dir.
|
|
561
|
+
// 3rd press → hard escape: synchronously rm the mount root and
|
|
562
|
+
// process.exit(130) in case the abort never resolves.
|
|
563
|
+
const shutdownController = new AbortController();
|
|
564
|
+
let sigintCount = 0;
|
|
565
|
+
let syncSpinner;
|
|
566
|
+
const forceExitHandler = () => {
|
|
567
|
+
sigintCount += 1;
|
|
568
|
+
if (sigintCount === 1) {
|
|
569
|
+
syncSpinner = ora({
|
|
570
|
+
text: 'Syncing session changes back to the repo… (Ctrl-C again to skip)',
|
|
571
|
+
stream: process.stderr
|
|
572
|
+
}).start();
|
|
573
|
+
return;
|
|
574
|
+
}
|
|
575
|
+
if (sigintCount === 2) {
|
|
576
|
+
if (syncSpinner) {
|
|
577
|
+
syncSpinner.text =
|
|
578
|
+
'Aborting sync — partial changes will be propagated. (Ctrl-C again to force quit)';
|
|
579
|
+
}
|
|
580
|
+
shutdownController.abort();
|
|
581
|
+
return;
|
|
582
|
+
}
|
|
583
|
+
if (syncSpinner) {
|
|
584
|
+
syncSpinner.fail('Force-quit: mount teardown skipped. Session dir may be left behind.');
|
|
585
|
+
syncSpinner = undefined;
|
|
586
|
+
}
|
|
587
|
+
else {
|
|
588
|
+
process.stderr.write('\n✗ Force-quit: mount teardown skipped. Session dir may be left behind.\n');
|
|
589
|
+
}
|
|
590
|
+
// Node-native removal rather than `rm -rf` so the emergency path
|
|
591
|
+
// works on Windows too.
|
|
592
|
+
try {
|
|
593
|
+
rmSync(sessionRoot, { recursive: true, force: true });
|
|
594
|
+
}
|
|
595
|
+
catch {
|
|
596
|
+
/* swallow — we're exiting anyway */
|
|
597
|
+
}
|
|
598
|
+
process.exit(130);
|
|
599
|
+
};
|
|
600
|
+
process.on('SIGINT', forceExitHandler);
|
|
322
601
|
try {
|
|
323
602
|
const result = await launchOnMount({
|
|
324
603
|
cli: spec.bin,
|
|
325
604
|
projectDir: process.cwd(),
|
|
326
605
|
mountDir,
|
|
327
606
|
args: finalArgs,
|
|
328
|
-
ignoredPatterns
|
|
607
|
+
ignoredPatterns,
|
|
329
608
|
// launchOnMount passes `env` straight to the child spawn, so without
|
|
330
609
|
// merging process.env we'd strip PATH/HOME/etc. Match the non-clean
|
|
331
610
|
// branch: persona env overlays the inherited environment.
|
|
332
611
|
env: resolvedEnv ? { ...process.env, ...resolvedEnv } : process.env,
|
|
333
|
-
agentName: personaId
|
|
612
|
+
agentName: personaId,
|
|
613
|
+
// Second Ctrl-C aborts this signal → local-mount skips autosync's
|
|
614
|
+
// draining reconcile and returns the partial syncBack count. Cleanup
|
|
615
|
+
// still runs, so there's no leaked mount dir.
|
|
616
|
+
shutdownSignal: shutdownController.signal,
|
|
617
|
+
// Report sync stats so the user sees confirmation rather than a
|
|
618
|
+
// silent pause between the child exiting and the CLI returning.
|
|
619
|
+
//
|
|
620
|
+
// NOTE: `count` is bidirectional per relayfile's onAfterSync
|
|
621
|
+
// contract (see @relayfile/local-mount launch.d.ts) — it sums
|
|
622
|
+
// autosync activity in *both* directions (inbound project→mount
|
|
623
|
+
// and outbound mount→project, including deletes) plus the final
|
|
624
|
+
// mount→project syncBack. Phrasing this as "synced back to the
|
|
625
|
+
// repo" earlier misled sessions where inbound events dominated:
|
|
626
|
+
// a user who did no edits still saw "Synced 15 changes back"
|
|
627
|
+
// because ambient initial-mirror traffic counted. Phrase as "file
|
|
628
|
+
// events during session" so we don't overclaim direction.
|
|
629
|
+
onAfterSync: (count) => {
|
|
630
|
+
const aborted = shutdownController.signal.aborted;
|
|
631
|
+
const qualifier = aborted ? ' (partial)' : '';
|
|
632
|
+
const message = count > 0
|
|
633
|
+
? `Session complete — ${count} file event${count === 1 ? '' : 's'} during session${qualifier}.`
|
|
634
|
+
: 'Session complete — no file events.';
|
|
635
|
+
if (syncSpinner) {
|
|
636
|
+
syncSpinner.succeed(message);
|
|
637
|
+
syncSpinner = undefined;
|
|
638
|
+
}
|
|
639
|
+
else {
|
|
640
|
+
process.stderr.write(`✓ ${message}\n`);
|
|
641
|
+
}
|
|
642
|
+
},
|
|
643
|
+
...(deferInstallToMount || hasConfigFiles
|
|
644
|
+
? {
|
|
645
|
+
onBeforeLaunch: (dir) => {
|
|
646
|
+
if (deferInstallToMount) {
|
|
647
|
+
runInstallOrThrow(install.command, installLabel, dir);
|
|
648
|
+
}
|
|
649
|
+
for (const file of spec.configFiles) {
|
|
650
|
+
assertSafeRelativePath(file.path);
|
|
651
|
+
const target = join(dir, file.path);
|
|
652
|
+
// mkdir -p for any subdirs in file.path — the
|
|
653
|
+
// InteractiveConfigFile contract allows nested relative
|
|
654
|
+
// paths, and writeFileSync would otherwise throw ENOENT.
|
|
655
|
+
mkdirSync(dirname(target), { recursive: true });
|
|
656
|
+
writeFileSync(target, file.contents, 'utf8');
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
: {})
|
|
334
661
|
});
|
|
335
662
|
return result.exitCode;
|
|
336
663
|
}
|
|
337
664
|
catch (err) {
|
|
665
|
+
// If the spinner is still live when we error out, mark it failed so
|
|
666
|
+
// the pending animation doesn't hang around under the error message.
|
|
667
|
+
if (syncSpinner) {
|
|
668
|
+
syncSpinner.fail('Sync did not complete');
|
|
669
|
+
syncSpinner = undefined;
|
|
670
|
+
}
|
|
671
|
+
// InstallCommandError carries the real install exit code — surfacing
|
|
672
|
+
// it (rather than collapsing onto 127) lets callers distinguish a
|
|
673
|
+
// failed `npx prpm install` from a missing harness binary.
|
|
674
|
+
if (err instanceof InstallCommandError) {
|
|
675
|
+
process.stderr.write(`${err.message}. Aborting.\n`);
|
|
676
|
+
return err.exitCode;
|
|
677
|
+
}
|
|
338
678
|
const e = err;
|
|
339
679
|
if (e.code === 'ENOENT') {
|
|
340
|
-
process.stderr.write(`Failed to spawn "${spec.bin}" inside
|
|
341
|
-
|
|
342
|
-
else {
|
|
343
|
-
process.stderr.write(`Failed to launch clean mount: ${e.message}\n`);
|
|
680
|
+
process.stderr.write(`Failed to spawn "${spec.bin}" inside sandbox mount: binary not found on PATH. Install the ${runtime.harness} CLI and retry.\n`);
|
|
681
|
+
return 127;
|
|
344
682
|
}
|
|
345
|
-
|
|
683
|
+
process.stderr.write(`Failed to launch sandbox mount: ${e.message}\n`);
|
|
684
|
+
return 1;
|
|
346
685
|
}
|
|
347
686
|
finally {
|
|
348
|
-
|
|
687
|
+
// Defensive: if neither onAfterSync nor the catch branch stopped the
|
|
688
|
+
// spinner (e.g. unexpected exit path), stop it cleanly here so the
|
|
689
|
+
// terminal is not left in spinner state.
|
|
690
|
+
if (syncSpinner) {
|
|
691
|
+
syncSpinner.stop();
|
|
692
|
+
syncSpinner = undefined;
|
|
693
|
+
}
|
|
694
|
+
process.removeListener('SIGINT', forceExitHandler);
|
|
695
|
+
// When the install ran inside the mount, its cleanup paths are
|
|
696
|
+
// mount-relative (e.g. `.skills/<name>`, `skills/<name>`) and
|
|
697
|
+
// running cleanup here would resolve them against the real repo
|
|
698
|
+
// cwd — potentially `rm -rf`ing pre-existing user content. The
|
|
699
|
+
// mount dir is removed wholesale by `removeSessionRoot` below, so
|
|
700
|
+
// the install's cleanup is redundant anyway in that case.
|
|
701
|
+
if (!deferInstallToMount) {
|
|
702
|
+
runCleanup(install.cleanupCommand, install.cleanupCommandString);
|
|
703
|
+
}
|
|
349
704
|
removeSessionRoot(sessionRoot);
|
|
350
705
|
}
|
|
351
706
|
}
|
|
@@ -573,6 +928,192 @@ function runList(args) {
|
|
|
573
928
|
}
|
|
574
929
|
process.exit(0);
|
|
575
930
|
}
|
|
931
|
+
function parseShowArgs(args) {
|
|
932
|
+
let json = false;
|
|
933
|
+
let all = false;
|
|
934
|
+
let selector;
|
|
935
|
+
for (const arg of args) {
|
|
936
|
+
if (arg === '--json') {
|
|
937
|
+
json = true;
|
|
938
|
+
}
|
|
939
|
+
else if (arg === '--all') {
|
|
940
|
+
all = true;
|
|
941
|
+
}
|
|
942
|
+
else if (arg === '-h' || arg === '--help') {
|
|
943
|
+
process.stdout.write('Usage: agent-workforce show <persona>[@<tier>] [--all] [--json]\n');
|
|
944
|
+
process.exit(0);
|
|
945
|
+
}
|
|
946
|
+
else if (arg.startsWith('--')) {
|
|
947
|
+
die(`show: unexpected flag "${arg}".`);
|
|
948
|
+
}
|
|
949
|
+
else if (selector === undefined) {
|
|
950
|
+
selector = arg;
|
|
951
|
+
}
|
|
952
|
+
else {
|
|
953
|
+
die(`show: unexpected argument "${arg}".`);
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
if (!selector)
|
|
957
|
+
die('show: missing persona name.');
|
|
958
|
+
return { selector, json, all };
|
|
959
|
+
}
|
|
960
|
+
function resolveShowTarget(selector, all) {
|
|
961
|
+
const at = selector.indexOf('@');
|
|
962
|
+
const key = at === -1 ? selector : selector.slice(0, at);
|
|
963
|
+
const tierRaw = at === -1 ? undefined : selector.slice(at + 1);
|
|
964
|
+
if (!key)
|
|
965
|
+
die('show: missing persona name before "@".');
|
|
966
|
+
let explicitTier;
|
|
967
|
+
if (tierRaw !== undefined) {
|
|
968
|
+
if (!PERSONA_TIERS.includes(tierRaw)) {
|
|
969
|
+
die(`show: invalid tier "${tierRaw}". Must be one of: ${PERSONA_TIERS.join(', ')}`);
|
|
970
|
+
}
|
|
971
|
+
explicitTier = tierRaw;
|
|
972
|
+
if (all) {
|
|
973
|
+
die('show: --all cannot be combined with an explicit @<tier> suffix.');
|
|
974
|
+
}
|
|
975
|
+
}
|
|
976
|
+
const localSpec = local.byId.get(key);
|
|
977
|
+
let spec;
|
|
978
|
+
let source = 'library';
|
|
979
|
+
if (localSpec) {
|
|
980
|
+
spec = localSpec;
|
|
981
|
+
source = local.sources.get(key) ?? 'pwd';
|
|
982
|
+
}
|
|
983
|
+
else {
|
|
984
|
+
const byIntent = personaCatalog[key];
|
|
985
|
+
if (byIntent) {
|
|
986
|
+
spec = byIntent;
|
|
987
|
+
}
|
|
988
|
+
else {
|
|
989
|
+
const byId = Object.values(personaCatalog).find((p) => p.id === key);
|
|
990
|
+
if (byId)
|
|
991
|
+
spec = byId;
|
|
992
|
+
}
|
|
993
|
+
}
|
|
994
|
+
if (!spec) {
|
|
995
|
+
const result = resolveSpec(key);
|
|
996
|
+
if ('error' in result)
|
|
997
|
+
die(result.error, false);
|
|
998
|
+
spec = result;
|
|
999
|
+
}
|
|
1000
|
+
let tiers;
|
|
1001
|
+
if (all) {
|
|
1002
|
+
tiers = [...PERSONA_TIERS];
|
|
1003
|
+
}
|
|
1004
|
+
else if (explicitTier) {
|
|
1005
|
+
tiers = [explicitTier];
|
|
1006
|
+
}
|
|
1007
|
+
else {
|
|
1008
|
+
const rule = routingProfiles.default.intents[spec.intent];
|
|
1009
|
+
tiers = [rule?.tier ?? 'best-value'];
|
|
1010
|
+
}
|
|
1011
|
+
return { spec, source, tiers, explicitTier };
|
|
1012
|
+
}
|
|
1013
|
+
function indent(text, prefix) {
|
|
1014
|
+
return text
|
|
1015
|
+
.split('\n')
|
|
1016
|
+
.map((line) => (line.length > 0 ? prefix + line : line))
|
|
1017
|
+
.join('\n');
|
|
1018
|
+
}
|
|
1019
|
+
function formatPersonaShow(spec, source, tiers, tierNote) {
|
|
1020
|
+
const lines = [];
|
|
1021
|
+
lines.push(`PERSONA ${spec.id}`);
|
|
1022
|
+
lines.push(`SOURCE ${source}`);
|
|
1023
|
+
lines.push(`INTENT ${spec.intent}`);
|
|
1024
|
+
lines.push(`TAGS ${spec.tags.length ? spec.tags.join(', ') : '(none)'}`);
|
|
1025
|
+
lines.push(`DESCRIPTION ${spec.description}`);
|
|
1026
|
+
lines.push(`TIERS SHOWN ${tiers.join(', ')}${tierNote ? ` (${tierNote})` : ''}`);
|
|
1027
|
+
lines.push('');
|
|
1028
|
+
lines.push('SKILLS');
|
|
1029
|
+
if (spec.skills.length === 0) {
|
|
1030
|
+
lines.push(' (none)');
|
|
1031
|
+
}
|
|
1032
|
+
else {
|
|
1033
|
+
for (const s of spec.skills) {
|
|
1034
|
+
lines.push(` - ${s.id}`);
|
|
1035
|
+
lines.push(` source: ${s.source}`);
|
|
1036
|
+
lines.push(` description: ${s.description}`);
|
|
1037
|
+
}
|
|
1038
|
+
}
|
|
1039
|
+
lines.push('');
|
|
1040
|
+
lines.push('MCP SERVERS');
|
|
1041
|
+
const servers = Object.entries(spec.mcpServers ?? {});
|
|
1042
|
+
if (servers.length === 0) {
|
|
1043
|
+
lines.push(' (none)');
|
|
1044
|
+
}
|
|
1045
|
+
else {
|
|
1046
|
+
for (const [name, server] of servers) {
|
|
1047
|
+
lines.push(` - ${name} (${server.type})`);
|
|
1048
|
+
if (server.type === 'stdio') {
|
|
1049
|
+
lines.push(` command: ${server.command}${server.args?.length ? ' ' + server.args.join(' ') : ''}`);
|
|
1050
|
+
if (server.env && Object.keys(server.env).length > 0) {
|
|
1051
|
+
lines.push(` env: ${Object.keys(server.env).join(', ')}`);
|
|
1052
|
+
}
|
|
1053
|
+
}
|
|
1054
|
+
else {
|
|
1055
|
+
lines.push(` url: ${server.url}`);
|
|
1056
|
+
if (server.headers && Object.keys(server.headers).length > 0) {
|
|
1057
|
+
lines.push(` headers: ${Object.keys(server.headers).join(', ')}`);
|
|
1058
|
+
}
|
|
1059
|
+
}
|
|
1060
|
+
}
|
|
1061
|
+
}
|
|
1062
|
+
lines.push('');
|
|
1063
|
+
lines.push('PERMISSIONS');
|
|
1064
|
+
const perms = spec.permissions;
|
|
1065
|
+
if (!perms || (!perms.allow?.length && !perms.deny?.length && !perms.mode)) {
|
|
1066
|
+
lines.push(' (none)');
|
|
1067
|
+
}
|
|
1068
|
+
else {
|
|
1069
|
+
if (perms.mode)
|
|
1070
|
+
lines.push(` mode: ${perms.mode}`);
|
|
1071
|
+
if (perms.allow?.length)
|
|
1072
|
+
lines.push(` allow: ${perms.allow.join(', ')}`);
|
|
1073
|
+
if (perms.deny?.length)
|
|
1074
|
+
lines.push(` deny: ${perms.deny.join(', ')}`);
|
|
1075
|
+
}
|
|
1076
|
+
lines.push('');
|
|
1077
|
+
lines.push('ENV');
|
|
1078
|
+
const envKeys = Object.keys(spec.env ?? {});
|
|
1079
|
+
if (envKeys.length === 0) {
|
|
1080
|
+
lines.push(' (none)');
|
|
1081
|
+
}
|
|
1082
|
+
else {
|
|
1083
|
+
for (const k of envKeys)
|
|
1084
|
+
lines.push(` ${k}=${spec.env[k]}`);
|
|
1085
|
+
}
|
|
1086
|
+
for (const tier of tiers) {
|
|
1087
|
+
const rt = spec.tiers[tier];
|
|
1088
|
+
lines.push('');
|
|
1089
|
+
lines.push(`TIER: ${tier}`);
|
|
1090
|
+
lines.push(` harness: ${rt.harness}`);
|
|
1091
|
+
lines.push(` model: ${rt.model}`);
|
|
1092
|
+
lines.push(` reasoning: ${rt.harnessSettings.reasoning}`);
|
|
1093
|
+
lines.push(` timeout: ${rt.harnessSettings.timeoutSeconds}s`);
|
|
1094
|
+
lines.push(' systemPrompt:');
|
|
1095
|
+
lines.push(indent(rt.systemPrompt, ' '));
|
|
1096
|
+
}
|
|
1097
|
+
return lines.join('\n') + '\n';
|
|
1098
|
+
}
|
|
1099
|
+
function runShow(args) {
|
|
1100
|
+
const { selector, json, all } = parseShowArgs(args);
|
|
1101
|
+
const { spec, source, tiers, explicitTier } = resolveShowTarget(selector, all);
|
|
1102
|
+
const tierNote = all
|
|
1103
|
+
? 'all tiers'
|
|
1104
|
+
: explicitTier
|
|
1105
|
+
? 'explicit @<tier>'
|
|
1106
|
+
: 'recommended for intent; pass --all or @<tier> to override';
|
|
1107
|
+
if (json) {
|
|
1108
|
+
const projectedTiers = Object.fromEntries(tiers.map((t) => [t, spec.tiers[t]]));
|
|
1109
|
+
const projected = { ...spec, tiers: projectedTiers };
|
|
1110
|
+
process.stdout.write(JSON.stringify({ source, spec: projected }, null, 2) + '\n');
|
|
1111
|
+
}
|
|
1112
|
+
else {
|
|
1113
|
+
process.stdout.write(formatPersonaShow(spec, source, tiers, tierNote));
|
|
1114
|
+
}
|
|
1115
|
+
process.exit(0);
|
|
1116
|
+
}
|
|
576
1117
|
function runHarnessCheck() {
|
|
577
1118
|
const results = detectHarnesses();
|
|
578
1119
|
process.stdout.write(formatAvailabilityTable(results));
|
|
@@ -590,6 +1131,9 @@ async function main() {
|
|
|
590
1131
|
if (subcommand === 'list') {
|
|
591
1132
|
runList(rest);
|
|
592
1133
|
}
|
|
1134
|
+
if (subcommand === 'show') {
|
|
1135
|
+
runShow(rest);
|
|
1136
|
+
}
|
|
593
1137
|
if (subcommand === 'harness') {
|
|
594
1138
|
const [action, ...extra] = rest;
|
|
595
1139
|
if (!action || action === '-h' || action === '--help') {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.test.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import test from 'node:test';
|
|
2
2
|
import assert from 'node:assert/strict';
|
|
3
|
-
import { CLEAN_IGNORED_PATTERNS, decideCleanMode, parseAgentArgs } from './cli.js';
|
|
3
|
+
import { CLEAN_IGNORED_PATTERNS, SKILL_INSTALL_IGNORED_PATTERNS, assertSafeRelativePath, decideCleanMode, parseAgentArgs, resolveSystemPromptPlaceholders, stripAgentFlag } from './cli.js';
|
|
4
4
|
function trapExit() {
|
|
5
5
|
const trap = {
|
|
6
6
|
exits: [],
|
|
@@ -89,22 +89,68 @@ test('parseAgentArgs: -- stops flag parsing, positional args after are preserved
|
|
|
89
89
|
assert.equal(flags.installInRepo, false);
|
|
90
90
|
assert.deepEqual(positional, ['--install-in-repo', 'posthog']);
|
|
91
91
|
});
|
|
92
|
-
test('decideCleanMode: clean=false → no
|
|
92
|
+
test('decideCleanMode: claude + clean=false → no mount', () => {
|
|
93
93
|
assert.deepEqual(decideCleanMode('claude', false), { useClean: false });
|
|
94
|
+
});
|
|
95
|
+
test('decideCleanMode: codex + clean=false → no mount', () => {
|
|
94
96
|
assert.deepEqual(decideCleanMode('codex', false), { useClean: false });
|
|
95
|
-
|
|
97
|
+
});
|
|
98
|
+
test('decideCleanMode: opencode defaults to mount (skills would otherwise land in repo)', () => {
|
|
99
|
+
// Opencode has no installRoot support in the SDK, so the mount is the only
|
|
100
|
+
// way to keep `.opencode/skills/`, `.agents/skills/`, prpm.lock, etc. out
|
|
101
|
+
// of the real repo. Default-on for non-in-repo runs.
|
|
102
|
+
assert.deepEqual(decideCleanMode('opencode', false), { useClean: true });
|
|
103
|
+
assert.deepEqual(decideCleanMode('opencode', true), { useClean: true });
|
|
104
|
+
});
|
|
105
|
+
test('decideCleanMode: opencode + --install-in-repo → no mount', () => {
|
|
106
|
+
assert.deepEqual(decideCleanMode('opencode', false, true), { useClean: false });
|
|
107
|
+
assert.deepEqual(decideCleanMode('opencode', true, true), { useClean: false });
|
|
108
|
+
});
|
|
109
|
+
test('stripAgentFlag: removes --agent <name> pair preserving surrounding args', () => {
|
|
110
|
+
// Degrade path: when the CLI cannot materialize opencode.json (non-mount
|
|
111
|
+
// --install-in-repo), it strips the --agent selector so opencode launches
|
|
112
|
+
// with its default agent rather than failing to resolve the unknown one.
|
|
113
|
+
assert.deepEqual(stripAgentFlag(['--agent', 'persona-maker']), []);
|
|
114
|
+
assert.deepEqual(stripAgentFlag(['--foo', '--agent', 'persona-maker', '--bar']), ['--foo', '--bar']);
|
|
115
|
+
assert.deepEqual(stripAgentFlag(['--keep-me']), ['--keep-me']);
|
|
116
|
+
});
|
|
117
|
+
test('stripAgentFlag: trailing --agent without a value is preserved (caller decides)', () => {
|
|
118
|
+
// Defensive: don't swallow an argv that looks malformed — let the harness
|
|
119
|
+
// reject it so the bug surfaces instead of getting silently stripped.
|
|
120
|
+
assert.deepEqual(stripAgentFlag(['--agent']), ['--agent']);
|
|
121
|
+
});
|
|
122
|
+
test('stripAgentFlag: removes every --agent pair, not just the first', () => {
|
|
123
|
+
// Current producer emits exactly one pair, so behavior is equivalent
|
|
124
|
+
// today, but "strip all" is idempotent and safer if a future caller ever
|
|
125
|
+
// appends a second --agent for any reason.
|
|
126
|
+
assert.deepEqual(stripAgentFlag(['--agent', 'a', '--agent', 'b']), []);
|
|
127
|
+
assert.deepEqual(stripAgentFlag(['--before', '--agent', 'a', '--mid', '--agent', 'b', '--after']), ['--before', '--mid', '--after']);
|
|
128
|
+
});
|
|
129
|
+
test('assertSafeRelativePath: accepts typical relative paths', () => {
|
|
130
|
+
// Sanity: representative safe paths the opencode + future harnesses emit.
|
|
131
|
+
assert.doesNotThrow(() => assertSafeRelativePath('opencode.json'));
|
|
132
|
+
assert.doesNotThrow(() => assertSafeRelativePath('.opencode/config.json'));
|
|
133
|
+
assert.doesNotThrow(() => assertSafeRelativePath('nested/dir/file.json'));
|
|
134
|
+
});
|
|
135
|
+
test('assertSafeRelativePath: rejects empty, absolute, and path-traversal inputs', () => {
|
|
136
|
+
// Guards materialization against a malformed or adversarial persona trying
|
|
137
|
+
// to escape the mount via `join(dir, path)` and overwrite files outside
|
|
138
|
+
// the sandbox. Failure must surface with a clear message BEFORE any
|
|
139
|
+
// writeFileSync runs.
|
|
140
|
+
assert.throws(() => assertSafeRelativePath(''), /non-empty/);
|
|
141
|
+
assert.throws(() => assertSafeRelativePath('/etc/passwd'), /absolute/);
|
|
142
|
+
assert.throws(() => assertSafeRelativePath('../escape.json'), /\.\./);
|
|
143
|
+
assert.throws(() => assertSafeRelativePath('ok/../escape.json'), /\.\./);
|
|
144
|
+
assert.throws(() => assertSafeRelativePath('a/../../b.json'), /\.\./);
|
|
96
145
|
});
|
|
97
146
|
test('decideCleanMode: claude + clean → engaged', () => {
|
|
98
147
|
assert.deepEqual(decideCleanMode('claude', true), { useClean: true });
|
|
99
148
|
});
|
|
100
|
-
test('decideCleanMode:
|
|
149
|
+
test('decideCleanMode: codex + clean → disengaged with warning naming harness', () => {
|
|
101
150
|
const codex = decideCleanMode('codex', true);
|
|
102
151
|
assert.equal(codex.useClean, false);
|
|
103
152
|
assert.match(codex.warning ?? '', /claude harness/);
|
|
104
153
|
assert.match(codex.warning ?? '', /codex/);
|
|
105
|
-
const opencode = decideCleanMode('opencode', true);
|
|
106
|
-
assert.equal(opencode.useClean, false);
|
|
107
|
-
assert.match(opencode.warning ?? '', /opencode/);
|
|
108
154
|
});
|
|
109
155
|
test('CLEAN_IGNORED_PATTERNS: covers the declared repo-level claude config files', () => {
|
|
110
156
|
// Pinned order + exact set — canary for anyone accidentally shrinking the
|
|
@@ -116,6 +162,41 @@ test('CLEAN_IGNORED_PATTERNS: covers the declared repo-level claude config files
|
|
|
116
162
|
'.mcp.json'
|
|
117
163
|
]);
|
|
118
164
|
});
|
|
165
|
+
test('resolveSystemPromptPlaceholders: substitutes <harness> with the active harness', () => {
|
|
166
|
+
const input = 'produce the exact install command: `npx -y prpm install <ref> --as <harness>` for prpm using the active harness';
|
|
167
|
+
const out = resolveSystemPromptPlaceholders(input, 'opencode');
|
|
168
|
+
assert.match(out, /--as opencode/);
|
|
169
|
+
assert.ok(!out.includes('<harness>'), 'expected <harness> placeholder to be resolved');
|
|
170
|
+
// Other angle-bracket placeholders (<ref>, <repo-url>, etc.) are deliberately
|
|
171
|
+
// preserved — they are LLM-facing template variables.
|
|
172
|
+
assert.ok(out.includes('<ref>'));
|
|
173
|
+
});
|
|
174
|
+
test('resolveSystemPromptPlaceholders: resolves every occurrence (not just the first)', () => {
|
|
175
|
+
const out = resolveSystemPromptPlaceholders('<harness> then <harness> again', 'codex');
|
|
176
|
+
assert.equal(out, 'codex then codex again');
|
|
177
|
+
});
|
|
178
|
+
test('resolveSystemPromptPlaceholders: leaves prompts without the placeholder untouched', () => {
|
|
179
|
+
const original = 'You are a code reviewer. No placeholders here.';
|
|
180
|
+
assert.equal(resolveSystemPromptPlaceholders(original, 'claude'), original);
|
|
181
|
+
});
|
|
182
|
+
test('SKILL_INSTALL_IGNORED_PATTERNS: keeps skill-install artifacts out of the real repo', () => {
|
|
183
|
+
// Pinned — non-claude sessions rely on these to prevent `.opencode/skills/`,
|
|
184
|
+
// `.agents/skills/`, and skill.sh per-provider symlink farms from being
|
|
185
|
+
// copied into the mount or synced back on exit. Shrinking this set
|
|
186
|
+
// re-introduces repo pollution from `npx prpm install` / `npx skills add`;
|
|
187
|
+
// expand via review, not silently.
|
|
188
|
+
assert.deepEqual([...SKILL_INSTALL_IGNORED_PATTERNS], [
|
|
189
|
+
'.agents',
|
|
190
|
+
'.claude/skills',
|
|
191
|
+
'.factory/skills',
|
|
192
|
+
'.kiro/skills',
|
|
193
|
+
'skills',
|
|
194
|
+
'.opencode',
|
|
195
|
+
'.skills',
|
|
196
|
+
'prpm.lock',
|
|
197
|
+
'skills-lock.json'
|
|
198
|
+
]);
|
|
199
|
+
});
|
|
119
200
|
// Integration-ish subprocess helper: spawn the built CLI, collect stderr,
|
|
120
201
|
// and return once the child exits. We force the harness binary to fail to
|
|
121
202
|
// spawn (PATH scrubbed) so these runs terminate quickly regardless of what
|
|
@@ -174,7 +255,7 @@ test('main: --clean on an interactive non-claude session warns and proceeds with
|
|
|
174
255
|
// npm-provenance-publisher@best runs on codex. --clean should warn and the
|
|
175
256
|
// run should continue down the non-mount spawn path (which then fails to
|
|
176
257
|
// spawn codex because PATH is scrubbed). We should NEVER see a
|
|
177
|
-
// "
|
|
258
|
+
// "sandbox mount → …" line, which the mount branch emits before calling
|
|
178
259
|
// launchOnMount.
|
|
179
260
|
const { stderr } = await runCliCapturingStderr([
|
|
180
261
|
'agent',
|
|
@@ -182,6 +263,6 @@ test('main: --clean on an interactive non-claude session warns and proceeds with
|
|
|
182
263
|
'npm-provenance-publisher@best'
|
|
183
264
|
]);
|
|
184
265
|
assert.match(stderr, /--clean is only supported for the claude harness/, 'expected non-claude clean warning to surface');
|
|
185
|
-
assert.ok(!/
|
|
266
|
+
assert.ok(!/sandbox mount →/.test(stderr), `expected the mount branch to be skipped; saw stderr:\n${stderr}`);
|
|
186
267
|
});
|
|
187
268
|
//# sourceMappingURL=cli.test.js.map
|
package/dist/cli.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../src/cli.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../src/cli.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentworkforce/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -13,9 +13,10 @@
|
|
|
13
13
|
"package.json"
|
|
14
14
|
],
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@relayfile/local-mount": "^0.
|
|
17
|
-
"
|
|
18
|
-
"@agentworkforce/
|
|
16
|
+
"@relayfile/local-mount": "^0.5.0",
|
|
17
|
+
"ora": "^9.4.0",
|
|
18
|
+
"@agentworkforce/harness-kit": "0.2.0",
|
|
19
|
+
"@agentworkforce/workload-router": "0.4.0"
|
|
19
20
|
},
|
|
20
21
|
"repository": {
|
|
21
22
|
"type": "git",
|