@soleri/cli 9.11.0 → 9.13.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/README.md +44 -15
- package/dist/commands/create.js +11 -2
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/dev.js +11 -9
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/dream.d.ts +10 -0
- package/dist/commands/dream.js +151 -0
- package/dist/commands/dream.js.map +1 -0
- package/dist/commands/uninstall.js +161 -3
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/main.js +2 -0
- package/dist/main.js.map +1 -1
- package/dist/prompts/create-wizard.js +6 -40
- package/dist/prompts/create-wizard.js.map +1 -1
- package/dist/utils/agent-artifacts.d.ts +63 -0
- package/dist/utils/agent-artifacts.js +276 -0
- package/dist/utils/agent-artifacts.js.map +1 -0
- package/package.json +1 -1
- package/src/__tests__/dream.test.ts +119 -0
- package/src/__tests__/uninstall-full.test.ts +566 -0
- package/src/commands/create.ts +10 -2
- package/src/commands/dev.ts +19 -9
- package/src/commands/dream.ts +174 -0
- package/src/commands/uninstall.ts +214 -31
- package/src/main.ts +2 -0
- package/src/prompts/create-wizard.ts +7 -40
- package/src/utils/agent-artifacts.ts +366 -0
package/README.md
CHANGED
|
@@ -14,21 +14,22 @@ The interactive wizard walks you through agent configuration: name, role, domain
|
|
|
14
14
|
|
|
15
15
|
## Commands
|
|
16
16
|
|
|
17
|
-
| Command | Description
|
|
18
|
-
| ---------------------------------- |
|
|
19
|
-
| `soleri create [name]` | Interactive wizard to scaffold a new agent
|
|
20
|
-
| `soleri list [dir]` | Show agents in a directory
|
|
21
|
-
| `soleri add-domain <domain>` | Add a knowledge domain to the agent in cwd
|
|
22
|
-
| `soleri install-knowledge <pack>` | Install knowledge packs from a local path
|
|
23
|
-
| `soleri dev` | Run agent in development mode (stdio MCP server)
|
|
24
|
-
| `soleri doctor` | Health check — Node, npm, tsx, agent, deps, build, MCP
|
|
25
|
-
| `soleri hooks add <editor>` | Generate editor hooks/config files
|
|
26
|
-
| `soleri hooks remove <editor>` | Remove editor hooks/config files
|
|
27
|
-
| `soleri hooks list` | Show installed editor hooks
|
|
28
|
-
| `soleri hooks add-pack <pack>` | Install a hook pack globally (~/.claude/)
|
|
29
|
-
| `soleri hooks remove-pack <pack>` | Remove a hook pack
|
|
30
|
-
| `soleri hooks list-packs` | Show available hook packs and their status
|
|
31
|
-
| `soleri hooks upgrade-pack <pack>` | Upgrade a hook pack to the latest version
|
|
17
|
+
| Command | Description |
|
|
18
|
+
| ---------------------------------- | ------------------------------------------------------- |
|
|
19
|
+
| `soleri create [name]` | Interactive wizard to scaffold a new agent |
|
|
20
|
+
| `soleri list [dir]` | Show agents in a directory |
|
|
21
|
+
| `soleri add-domain <domain>` | Add a knowledge domain to the agent in cwd |
|
|
22
|
+
| `soleri install-knowledge <pack>` | Install knowledge packs from a local path |
|
|
23
|
+
| `soleri dev` | Run agent in development mode (stdio MCP server) |
|
|
24
|
+
| `soleri doctor` | Health check — Node, npm, tsx, agent, deps, build, MCP |
|
|
25
|
+
| `soleri hooks add <editor>` | Generate editor hooks/config files |
|
|
26
|
+
| `soleri hooks remove <editor>` | Remove editor hooks/config files |
|
|
27
|
+
| `soleri hooks list` | Show installed editor hooks |
|
|
28
|
+
| `soleri hooks add-pack <pack>` | Install a hook pack globally (~/.claude/) |
|
|
29
|
+
| `soleri hooks remove-pack <pack>` | Remove a hook pack |
|
|
30
|
+
| `soleri hooks list-packs` | Show available hook packs and their status |
|
|
31
|
+
| `soleri hooks upgrade-pack <pack>` | Upgrade a hook pack to the latest version |
|
|
32
|
+
| `soleri uninstall [dir]` | Remove agent MCP entries (or all artifacts with --full) |
|
|
32
33
|
|
|
33
34
|
### Create
|
|
34
35
|
|
|
@@ -108,6 +109,34 @@ soleri hooks add claude-code # Add editor hooks
|
|
|
108
109
|
soleri add-domain security # Add a domain later
|
|
109
110
|
```
|
|
110
111
|
|
|
112
|
+
### Uninstall
|
|
113
|
+
|
|
114
|
+
Remove an agent's MCP server registration:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
soleri uninstall [dir] # Remove MCP server entries only
|
|
118
|
+
soleri uninstall [dir] --target claude # Remove from Claude only
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Fully remove an agent and all its artifacts:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
soleri uninstall [dir] --full # Interactive confirmation
|
|
125
|
+
soleri uninstall [dir] --full --dry-run # Preview what would be removed
|
|
126
|
+
soleri uninstall [dir] --full --force # Skip confirmation (CI/scripting)
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
#### Artifacts removed with --full
|
|
130
|
+
|
|
131
|
+
| Artifact | Location |
|
|
132
|
+
| ------------------ | ---------------------------------------------------------------------------- |
|
|
133
|
+
| MCP server entries | `~/.claude.json`, `~/.codex/config.toml`, `~/.config/opencode/opencode.json` |
|
|
134
|
+
| Project directory | `~/projects/<agent>/` or specified dir |
|
|
135
|
+
| Data directory | `~/.soleri/<agent>/` (current), `~/.<agent>/` (legacy) |
|
|
136
|
+
| CLAUDE.md blocks | `~/CLAUDE.md`, `~/.claude/CLAUDE.md` |
|
|
137
|
+
| Permission entries | `~/.claude/settings.local.json` |
|
|
138
|
+
| Launcher script | `/usr/local/bin/<agent>` |
|
|
139
|
+
|
|
111
140
|
## How It Works
|
|
112
141
|
|
|
113
142
|
The CLI wraps [`@soleri/forge`](../forge) — the same scaffolding engine that powers AI-driven agent creation via MCP. The CLI provides a terminal-first interface for the same operations.
|
package/dist/commands/create.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { accessSync, constants as fsConstants, readFileSync, existsSync } from 'node:fs';
|
|
1
|
+
import { accessSync, constants as fsConstants, mkdirSync, readFileSync, existsSync } from 'node:fs';
|
|
2
2
|
import { resolve } from 'node:path';
|
|
3
3
|
import * as p from '@clack/prompts';
|
|
4
4
|
import { previewScaffold, scaffold, AgentConfigSchema, SETUP_TARGETS, scaffoldFileTree, } from '@soleri/forge/lib';
|
|
@@ -139,7 +139,16 @@ export function registerCreate(program) {
|
|
|
139
139
|
})),
|
|
140
140
|
};
|
|
141
141
|
const outputDir = opts?.dir ? resolve(opts.dir) : (config.outputDir ?? process.cwd());
|
|
142
|
-
// Preflight:
|
|
142
|
+
// Preflight: ensure output directory exists and is writable
|
|
143
|
+
if (!existsSync(outputDir)) {
|
|
144
|
+
try {
|
|
145
|
+
mkdirSync(outputDir, { recursive: true });
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
p.log.error(`Cannot create ${outputDir} — check permissions`);
|
|
149
|
+
process.exit(1);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
143
152
|
try {
|
|
144
153
|
accessSync(outputDir, fsConstants.W_OK);
|
|
145
154
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/dev.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
|
-
import { watch, writeFileSync } from 'node:fs';
|
|
2
|
+
import { existsSync, watch, writeFileSync } from 'node:fs';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
import * as p from '@clack/prompts';
|
|
5
5
|
import { detectAgent } from '../utils/agent-context.js';
|
|
@@ -23,16 +23,19 @@ export function registerDev(program) {
|
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
|
-
function runFileTreeDev(agentPath, agentId) {
|
|
26
|
+
async function runFileTreeDev(agentPath, agentId) {
|
|
27
27
|
p.log.info(`Starting ${agentId} in file-tree dev mode...`);
|
|
28
28
|
p.log.info('Starting Knowledge Engine + watching for file changes.');
|
|
29
29
|
p.log.info('CLAUDE.md will be regenerated automatically on changes.');
|
|
30
30
|
p.log.info('Press Ctrl+C to stop.\n');
|
|
31
|
-
regenerateClaudeMd(agentPath);
|
|
31
|
+
await regenerateClaudeMd(agentPath);
|
|
32
32
|
// Start the engine server
|
|
33
33
|
let engineBin;
|
|
34
34
|
try {
|
|
35
|
-
|
|
35
|
+
const candidate = join(agentPath, 'node_modules', '@soleri', 'core', 'dist', 'engine', 'bin', 'soleri-engine.js');
|
|
36
|
+
if (!existsSync(candidate))
|
|
37
|
+
throw new Error('Engine not found at ' + candidate);
|
|
38
|
+
engineBin = candidate;
|
|
36
39
|
}
|
|
37
40
|
catch {
|
|
38
41
|
p.log.error('Engine not found. Run: npm install @soleri/core');
|
|
@@ -66,10 +69,10 @@ function runFileTreeDev(agentPath, agentId) {
|
|
|
66
69
|
// Debounce — regenerate at most once per 200ms
|
|
67
70
|
if (debounceTimer)
|
|
68
71
|
clearTimeout(debounceTimer);
|
|
69
|
-
debounceTimer = setTimeout(() => {
|
|
72
|
+
debounceTimer = setTimeout(async () => {
|
|
70
73
|
const changedFile = filename ? ` (${filename})` : '';
|
|
71
74
|
p.log.info(`Change detected${changedFile} — regenerating CLAUDE.md`);
|
|
72
|
-
regenerateClaudeMd(agentPath);
|
|
75
|
+
await regenerateClaudeMd(agentPath);
|
|
73
76
|
}, 200);
|
|
74
77
|
});
|
|
75
78
|
}
|
|
@@ -95,11 +98,10 @@ function runFileTreeDev(agentPath, agentId) {
|
|
|
95
98
|
}
|
|
96
99
|
});
|
|
97
100
|
}
|
|
98
|
-
function regenerateClaudeMd(agentPath) {
|
|
101
|
+
async function regenerateClaudeMd(agentPath) {
|
|
99
102
|
try {
|
|
100
103
|
// Dynamic import to avoid loading forge at CLI startup
|
|
101
|
-
|
|
102
|
-
const { composeClaudeMd } = require('@soleri/forge/lib');
|
|
104
|
+
const { composeClaudeMd } = await import('@soleri/forge/lib');
|
|
103
105
|
const { content } = composeClaudeMd(agentPath);
|
|
104
106
|
writeFileSync(join(agentPath, 'CLAUDE.md'), content, 'utf-8');
|
|
105
107
|
p.log.success('CLAUDE.md regenerated');
|
package/dist/commands/dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dream CLI — vault memory consolidation.
|
|
3
|
+
*
|
|
4
|
+
* `soleri dream` — run a dream pass immediately
|
|
5
|
+
* `soleri dream schedule [--time HH:MM]` — schedule daily cron
|
|
6
|
+
* `soleri dream unschedule` — remove cron entry
|
|
7
|
+
* `soleri dream status` — show dream status + cron info
|
|
8
|
+
*/
|
|
9
|
+
import type { Command } from 'commander';
|
|
10
|
+
export declare function registerDream(program: Command): void;
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dream CLI — vault memory consolidation.
|
|
3
|
+
*
|
|
4
|
+
* `soleri dream` — run a dream pass immediately
|
|
5
|
+
* `soleri dream schedule [--time HH:MM]` — schedule daily cron
|
|
6
|
+
* `soleri dream unschedule` — remove cron entry
|
|
7
|
+
* `soleri dream status` — show dream status + cron info
|
|
8
|
+
*/
|
|
9
|
+
import { existsSync } from 'node:fs';
|
|
10
|
+
import { join } from 'node:path';
|
|
11
|
+
import { detectAgent } from '../utils/agent-context.js';
|
|
12
|
+
import { pass, fail, info, heading, dim } from '../utils/logger.js';
|
|
13
|
+
import { SOLERI_HOME } from '@soleri/core';
|
|
14
|
+
function resolveVaultDbPath(agentId) {
|
|
15
|
+
const newDbPath = join(SOLERI_HOME, agentId, 'vault.db');
|
|
16
|
+
const legacyDbPath = join(SOLERI_HOME, '..', `.${agentId}`, 'vault.db');
|
|
17
|
+
if (existsSync(newDbPath))
|
|
18
|
+
return newDbPath;
|
|
19
|
+
if (existsSync(legacyDbPath))
|
|
20
|
+
return legacyDbPath;
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
export function registerDream(program) {
|
|
24
|
+
const dream = program.command('dream').description('Vault memory consolidation');
|
|
25
|
+
// ─── soleri dream (no subcommand) — run immediately ─────────
|
|
26
|
+
dream
|
|
27
|
+
.command('run', { isDefault: true })
|
|
28
|
+
.description('Run a dream pass immediately')
|
|
29
|
+
.action(async () => {
|
|
30
|
+
const agent = detectAgent();
|
|
31
|
+
if (!agent) {
|
|
32
|
+
fail('Not in a Soleri agent project', 'Run from an agent directory');
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
const dbPath = resolveVaultDbPath(agent.agentId);
|
|
36
|
+
if (!dbPath) {
|
|
37
|
+
fail('Vault DB not found', 'Run the agent once to initialize its vault database.');
|
|
38
|
+
process.exit(1);
|
|
39
|
+
}
|
|
40
|
+
const { Vault, Curator, DreamEngine, ensureDreamSchema } = await import('@soleri/core');
|
|
41
|
+
const vault = new Vault(dbPath);
|
|
42
|
+
try {
|
|
43
|
+
ensureDreamSchema(vault.getProvider());
|
|
44
|
+
const curator = new Curator(vault);
|
|
45
|
+
const engine = new DreamEngine(vault, curator);
|
|
46
|
+
heading('Dream — Memory Consolidation');
|
|
47
|
+
info('Running dream pass...');
|
|
48
|
+
console.log();
|
|
49
|
+
const report = engine.run();
|
|
50
|
+
pass('Dream pass complete');
|
|
51
|
+
console.log();
|
|
52
|
+
console.log(' Field Value');
|
|
53
|
+
console.log(' ───────────────────── ──────────────');
|
|
54
|
+
dim(` Duration ${report.durationMs}ms`);
|
|
55
|
+
dim(` Duplicates found ${report.duplicatesFound}`);
|
|
56
|
+
dim(` Stale archived ${report.staleArchived}`);
|
|
57
|
+
dim(` Contradictions found ${report.contradictionsFound}`);
|
|
58
|
+
dim(` Total dreams ${report.totalDreams}`);
|
|
59
|
+
dim(` Timestamp ${report.timestamp}`);
|
|
60
|
+
console.log();
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
vault.close();
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
// ─── soleri dream schedule ──────────────────────────────────
|
|
67
|
+
dream
|
|
68
|
+
.command('schedule')
|
|
69
|
+
.description('Schedule daily dream cron job')
|
|
70
|
+
.option('--time <HH:MM>', 'Time to run (24h format)', '22:00')
|
|
71
|
+
.action(async (opts) => {
|
|
72
|
+
const agent = detectAgent();
|
|
73
|
+
if (!agent) {
|
|
74
|
+
fail('Not in a Soleri agent project', 'Run from an agent directory');
|
|
75
|
+
process.exit(1);
|
|
76
|
+
}
|
|
77
|
+
const { scheduleDream } = await import('@soleri/core');
|
|
78
|
+
const result = scheduleDream(opts.time, agent.agentPath);
|
|
79
|
+
if (!result.isScheduled) {
|
|
80
|
+
fail('Failed to schedule dream cron', 'Check time format (HH:MM) and crontab access.');
|
|
81
|
+
process.exit(1);
|
|
82
|
+
}
|
|
83
|
+
heading('Dream — Scheduled');
|
|
84
|
+
pass(`Daily dream scheduled at ${result.time}`);
|
|
85
|
+
dim(` Log path: ${result.logPath}`);
|
|
86
|
+
dim(` Project: ${result.projectDir}`);
|
|
87
|
+
console.log();
|
|
88
|
+
});
|
|
89
|
+
// ─── soleri dream unschedule ────────────────────────────────
|
|
90
|
+
dream
|
|
91
|
+
.command('unschedule')
|
|
92
|
+
.description('Remove dream cron entry')
|
|
93
|
+
.action(async () => {
|
|
94
|
+
const { unscheduleDream } = await import('@soleri/core');
|
|
95
|
+
unscheduleDream();
|
|
96
|
+
heading('Dream — Unscheduled');
|
|
97
|
+
pass('Dream cron entry removed');
|
|
98
|
+
console.log();
|
|
99
|
+
});
|
|
100
|
+
// ─── soleri dream status ────────────────────────────────────
|
|
101
|
+
dream
|
|
102
|
+
.command('status')
|
|
103
|
+
.description('Show dream status and cron info')
|
|
104
|
+
.action(async () => {
|
|
105
|
+
const agent = detectAgent();
|
|
106
|
+
if (!agent) {
|
|
107
|
+
fail('Not in a Soleri agent project', 'Run from an agent directory');
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
const dbPath = resolveVaultDbPath(agent.agentId);
|
|
111
|
+
heading('Dream — Status');
|
|
112
|
+
// Dream engine status (only if vault exists)
|
|
113
|
+
if (dbPath) {
|
|
114
|
+
const { Vault, Curator, DreamEngine, ensureDreamSchema } = await import('@soleri/core');
|
|
115
|
+
const vault = new Vault(dbPath);
|
|
116
|
+
try {
|
|
117
|
+
ensureDreamSchema(vault.getProvider());
|
|
118
|
+
const curator = new Curator(vault);
|
|
119
|
+
const engine = new DreamEngine(vault, curator);
|
|
120
|
+
const status = engine.getStatus();
|
|
121
|
+
console.log(' Field Value');
|
|
122
|
+
console.log(' ──────────────────────── ──────────────');
|
|
123
|
+
dim(` Sessions since last ${status.sessionsSinceLastDream}`);
|
|
124
|
+
dim(` Last dream at ${status.lastDreamAt ?? 'never'}`);
|
|
125
|
+
dim(` Last duration ${status.lastDreamDurationMs !== null ? `${status.lastDreamDurationMs}ms` : 'n/a'}`);
|
|
126
|
+
dim(` Total dreams ${status.totalDreams}`);
|
|
127
|
+
dim(` Gate eligible ${status.gateEligible ? 'yes' : 'no'}`);
|
|
128
|
+
}
|
|
129
|
+
finally {
|
|
130
|
+
vault.close();
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
info('Vault DB not found — dream engine status unavailable.');
|
|
135
|
+
}
|
|
136
|
+
console.log();
|
|
137
|
+
// Cron schedule status
|
|
138
|
+
const { getDreamSchedule } = await import('@soleri/core');
|
|
139
|
+
const cron = getDreamSchedule();
|
|
140
|
+
if (cron.isScheduled) {
|
|
141
|
+
pass(`Cron scheduled at ${cron.time}`);
|
|
142
|
+
dim(` Log path: ${cron.logPath}`);
|
|
143
|
+
dim(` Project: ${cron.projectDir}`);
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
info('No cron schedule configured. Run `soleri dream schedule` to set one.');
|
|
147
|
+
}
|
|
148
|
+
console.log();
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=dream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dream.js","sourceRoot":"","sources":["../../src/commands/dream.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ import { join, resolve } from 'node:path';
|
|
|
3
3
|
import { homedir } from 'node:os';
|
|
4
4
|
import * as p from '@clack/prompts';
|
|
5
5
|
import { detectAgent } from '../utils/agent-context.js';
|
|
6
|
+
import { detectArtifacts, removeDirectory, removeClaudeMdBlock, removePermissionEntries, removeLauncherScript, } from '../utils/agent-artifacts.js';
|
|
7
|
+
import { pass, fail, warn, skip, heading, dim } from '../utils/logger.js';
|
|
6
8
|
function uninstallClaude(agentId) {
|
|
7
9
|
const configPath = join(homedir(), '.claude.json');
|
|
8
10
|
if (!existsSync(configPath)) {
|
|
@@ -70,12 +72,161 @@ function uninstallOpencode(agentId) {
|
|
|
70
72
|
function escapeRegExp(s) {
|
|
71
73
|
return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
72
74
|
}
|
|
75
|
+
// ---------------------------------------------------------------------------
|
|
76
|
+
// Full uninstall helpers
|
|
77
|
+
// ---------------------------------------------------------------------------
|
|
78
|
+
function countArtifacts(manifest) {
|
|
79
|
+
let count = 0;
|
|
80
|
+
if (manifest.projectDir?.exists)
|
|
81
|
+
count++;
|
|
82
|
+
if (manifest.dataDir?.exists)
|
|
83
|
+
count++;
|
|
84
|
+
if (manifest.dataDirLegacy?.exists)
|
|
85
|
+
count++;
|
|
86
|
+
count += manifest.claudeMdBlocks.length;
|
|
87
|
+
count += manifest.mcpServerEntries.length;
|
|
88
|
+
if (manifest.permissionEntries.length > 0)
|
|
89
|
+
count++;
|
|
90
|
+
if (manifest.launcherScript?.exists)
|
|
91
|
+
count++;
|
|
92
|
+
return count;
|
|
93
|
+
}
|
|
94
|
+
function displayManifest(manifest) {
|
|
95
|
+
heading(`Artifacts for "${manifest.agentId}"`);
|
|
96
|
+
const show = (label, loc) => {
|
|
97
|
+
if (loc?.exists)
|
|
98
|
+
warn(label, loc.path);
|
|
99
|
+
else
|
|
100
|
+
dim(`${label} — not found`);
|
|
101
|
+
};
|
|
102
|
+
show('Project directory', manifest.projectDir);
|
|
103
|
+
show('Data directory', manifest.dataDir);
|
|
104
|
+
show('Data directory (legacy)', manifest.dataDirLegacy);
|
|
105
|
+
show('Launcher script', manifest.launcherScript);
|
|
106
|
+
if (manifest.claudeMdBlocks.length > 0) {
|
|
107
|
+
for (const block of manifest.claudeMdBlocks) {
|
|
108
|
+
warn('CLAUDE.md block', `${block.path} (lines ${block.startLine}-${block.endLine})`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
dim('CLAUDE.md blocks — none found');
|
|
113
|
+
}
|
|
114
|
+
if (manifest.mcpServerEntries.length > 0) {
|
|
115
|
+
for (const entry of manifest.mcpServerEntries) {
|
|
116
|
+
warn(`MCP server (${entry.target})`, `${entry.file} → ${entry.key}`);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
dim('MCP server entries — none found');
|
|
121
|
+
}
|
|
122
|
+
if (manifest.permissionEntries.length > 0) {
|
|
123
|
+
for (const pe of manifest.permissionEntries) {
|
|
124
|
+
warn(`Permissions (${pe.matches.length} entries)`, pe.file);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
dim('Permission entries — none found');
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
function reportResult(label, result) {
|
|
132
|
+
if (result.removed)
|
|
133
|
+
pass(label, result.path);
|
|
134
|
+
else if (result.error)
|
|
135
|
+
fail(label, result.error);
|
|
136
|
+
else
|
|
137
|
+
skip(label, result.path);
|
|
138
|
+
}
|
|
139
|
+
async function fullUninstall(agentId, agentDir, target, dryRun, force) {
|
|
140
|
+
const manifest = detectArtifacts(agentId, agentDir);
|
|
141
|
+
const total = countArtifacts(manifest);
|
|
142
|
+
displayManifest(manifest);
|
|
143
|
+
if (total === 0) {
|
|
144
|
+
p.log.info('Nothing to remove.');
|
|
145
|
+
process.exit(2);
|
|
146
|
+
}
|
|
147
|
+
console.log(`\n Found ${total} artifact(s) to remove.\n`);
|
|
148
|
+
if (dryRun) {
|
|
149
|
+
p.log.info('Dry run — no changes made.');
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
if (!force) {
|
|
153
|
+
const confirmed = await p.confirm({
|
|
154
|
+
message: `Remove all artifacts for "${agentId}"? This cannot be undone.`,
|
|
155
|
+
});
|
|
156
|
+
if (p.isCancel(confirmed) || !confirmed) {
|
|
157
|
+
p.log.info('Cancelled.');
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
let removed = 0;
|
|
162
|
+
heading('Removing artifacts');
|
|
163
|
+
// 1. MCP server entries (existing logic)
|
|
164
|
+
if (target === 'claude' || target === 'both' || target === 'all') {
|
|
165
|
+
uninstallClaude(agentId);
|
|
166
|
+
}
|
|
167
|
+
if (target === 'codex' || target === 'both' || target === 'all') {
|
|
168
|
+
uninstallCodex(agentId);
|
|
169
|
+
}
|
|
170
|
+
if (target === 'opencode' || target === 'all') {
|
|
171
|
+
uninstallOpencode(agentId);
|
|
172
|
+
}
|
|
173
|
+
removed += manifest.mcpServerEntries.length;
|
|
174
|
+
// 2. Permission entries
|
|
175
|
+
for (const pe of manifest.permissionEntries) {
|
|
176
|
+
const result = await removePermissionEntries(pe.file, agentId);
|
|
177
|
+
reportResult(`Permissions (${pe.matches.length} entries)`, result);
|
|
178
|
+
if (result.removed)
|
|
179
|
+
removed++;
|
|
180
|
+
}
|
|
181
|
+
// 3. CLAUDE.md blocks (reverse order to preserve line numbers)
|
|
182
|
+
const sortedBlocks = [...manifest.claudeMdBlocks].sort((a, b) => b.startLine - a.startLine);
|
|
183
|
+
for (const block of sortedBlocks) {
|
|
184
|
+
const result = await removeClaudeMdBlock(block.path, block.startLine, block.endLine);
|
|
185
|
+
reportResult('CLAUDE.md block', result);
|
|
186
|
+
if (result.removed)
|
|
187
|
+
removed++;
|
|
188
|
+
}
|
|
189
|
+
// 4. Launcher script
|
|
190
|
+
if (manifest.launcherScript?.exists) {
|
|
191
|
+
const result = await removeLauncherScript(manifest.launcherScript.path);
|
|
192
|
+
reportResult('Launcher script', result);
|
|
193
|
+
if (result.removed)
|
|
194
|
+
removed++;
|
|
195
|
+
}
|
|
196
|
+
// 5. Data directories
|
|
197
|
+
if (manifest.dataDir?.exists) {
|
|
198
|
+
const result = await removeDirectory(manifest.dataDir.path);
|
|
199
|
+
reportResult('Data directory', result);
|
|
200
|
+
if (result.removed)
|
|
201
|
+
removed++;
|
|
202
|
+
}
|
|
203
|
+
if (manifest.dataDirLegacy?.exists) {
|
|
204
|
+
const result = await removeDirectory(manifest.dataDirLegacy.path);
|
|
205
|
+
reportResult('Data directory (legacy)', result);
|
|
206
|
+
if (result.removed)
|
|
207
|
+
removed++;
|
|
208
|
+
}
|
|
209
|
+
// 6. Project directory (last — most destructive)
|
|
210
|
+
if (manifest.projectDir?.exists) {
|
|
211
|
+
const result = await removeDirectory(manifest.projectDir.path);
|
|
212
|
+
reportResult('Project directory', result);
|
|
213
|
+
if (result.removed)
|
|
214
|
+
removed++;
|
|
215
|
+
}
|
|
216
|
+
console.log(`\n Removed ${removed}/${total} artifacts for "${agentId}".\n`);
|
|
217
|
+
}
|
|
218
|
+
// ---------------------------------------------------------------------------
|
|
219
|
+
// Command registration
|
|
220
|
+
// ---------------------------------------------------------------------------
|
|
73
221
|
export function registerUninstall(program) {
|
|
74
222
|
program
|
|
75
223
|
.command('uninstall')
|
|
76
224
|
.argument('[dir]', 'Agent directory (defaults to cwd)')
|
|
77
|
-
.option('--target <target>', 'Registration target: opencode, claude, codex, or all'
|
|
78
|
-
.
|
|
225
|
+
.option('--target <target>', 'Registration target: opencode, claude, codex, or all')
|
|
226
|
+
.option('--full', 'Remove all agent artifacts (project, data, configs, permissions, launcher)')
|
|
227
|
+
.option('--dry-run', 'Show what would be removed without making changes')
|
|
228
|
+
.option('--force', 'Skip confirmation prompt')
|
|
229
|
+
.description('Remove agent MCP server entries (or all artifacts with --full)')
|
|
79
230
|
.action(async (dir, opts) => {
|
|
80
231
|
const resolvedDir = dir ? resolve(dir) : undefined;
|
|
81
232
|
const ctx = detectAgent(resolvedDir);
|
|
@@ -83,12 +234,19 @@ export function registerUninstall(program) {
|
|
|
83
234
|
p.log.error('Not in an agent project. Run from an agent directory or pass its path.');
|
|
84
235
|
process.exit(1);
|
|
85
236
|
}
|
|
86
|
-
|
|
237
|
+
// Default: 'all' when --full, 'opencode' otherwise
|
|
238
|
+
const defaultTarget = opts?.full ? 'all' : 'opencode';
|
|
239
|
+
const target = (opts?.target ?? defaultTarget);
|
|
87
240
|
const validTargets = ['claude', 'codex', 'opencode', 'both', 'all'];
|
|
88
241
|
if (!validTargets.includes(target)) {
|
|
89
242
|
p.log.error(`Invalid target "${target}". Use: ${validTargets.join(', ')}`);
|
|
90
243
|
process.exit(1);
|
|
91
244
|
}
|
|
245
|
+
if (opts?.full) {
|
|
246
|
+
await fullUninstall(ctx.agentId, resolvedDir, target, !!opts.dryRun, !!opts.force);
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
// Default: MCP-only removal (backward compatible)
|
|
92
250
|
if (target === 'claude' || target === 'both' || target === 'all') {
|
|
93
251
|
uninstallClaude(ctx.agentId);
|
|
94
252
|
}
|