daedalus-cli 3.63.2 → 3.65.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.
Files changed (87) hide show
  1. package/CHANGELOG.md +22 -3
  2. package/dist/agents/orchestrator.d.ts +3 -6
  3. package/dist/agents/orchestrator.d.ts.map +1 -1
  4. package/dist/agents/orchestrator.js +39 -843
  5. package/dist/agents/orchestrator.js.map +1 -1
  6. package/dist/agents/subagent-runner.d.ts +18 -0
  7. package/dist/agents/subagent-runner.d.ts.map +1 -0
  8. package/dist/agents/subagent-runner.js +231 -0
  9. package/dist/agents/subagent-runner.js.map +1 -0
  10. package/dist/agents/subagent-runner.test.d.ts +2 -0
  11. package/dist/agents/subagent-runner.test.d.ts.map +1 -0
  12. package/dist/agents/subagent-runner.test.js +74 -0
  13. package/dist/agents/subagent-runner.test.js.map +1 -0
  14. package/dist/agents/task-delegator.d.ts +28 -0
  15. package/dist/agents/task-delegator.d.ts.map +1 -0
  16. package/dist/agents/task-delegator.js +542 -0
  17. package/dist/agents/task-delegator.js.map +1 -0
  18. package/dist/agents/task-delegator.test.d.ts +2 -0
  19. package/dist/agents/task-delegator.test.d.ts.map +1 -0
  20. package/dist/agents/task-delegator.test.js +83 -0
  21. package/dist/agents/task-delegator.test.js.map +1 -0
  22. package/dist/agents/turn-guards.d.ts +41 -0
  23. package/dist/agents/turn-guards.d.ts.map +1 -0
  24. package/dist/agents/turn-guards.js +325 -0
  25. package/dist/agents/turn-guards.js.map +1 -0
  26. package/dist/agents/turn-guards.test.d.ts +2 -0
  27. package/dist/agents/turn-guards.test.d.ts.map +1 -0
  28. package/dist/agents/turn-guards.test.js +123 -0
  29. package/dist/agents/turn-guards.test.js.map +1 -0
  30. package/dist/commands/agents.d.ts +5 -28
  31. package/dist/commands/agents.d.ts.map +1 -1
  32. package/dist/commands/agents.js +11 -1021
  33. package/dist/commands/agents.js.map +1 -1
  34. package/dist/commands/autopilot.d.ts +30 -0
  35. package/dist/commands/autopilot.d.ts.map +1 -0
  36. package/dist/commands/autopilot.js +372 -0
  37. package/dist/commands/autopilot.js.map +1 -0
  38. package/dist/commands/hunt.d.ts +3 -0
  39. package/dist/commands/hunt.d.ts.map +1 -0
  40. package/dist/commands/hunt.js +181 -0
  41. package/dist/commands/hunt.js.map +1 -0
  42. package/dist/commands/mcp.d.ts +3 -0
  43. package/dist/commands/mcp.d.ts.map +1 -0
  44. package/dist/commands/mcp.js +339 -0
  45. package/dist/commands/mcp.js.map +1 -0
  46. package/dist/commands/onboard.d.ts +3 -0
  47. package/dist/commands/onboard.d.ts.map +1 -0
  48. package/dist/commands/onboard.js +109 -0
  49. package/dist/commands/onboard.js.map +1 -0
  50. package/dist/config/index.d.ts.map +1 -1
  51. package/dist/config/index.js +2 -7
  52. package/dist/config/index.js.map +1 -1
  53. package/dist/indexing/indexer.d.ts +1 -1
  54. package/dist/indexing/indexer.d.ts.map +1 -1
  55. package/dist/indexing/indexer.js +112 -89
  56. package/dist/indexing/indexer.js.map +1 -1
  57. package/dist/indexing/indexer.test.js +58 -2
  58. package/dist/indexing/indexer.test.js.map +1 -1
  59. package/dist/indexing/watcher.js +1 -1
  60. package/dist/indexing/watcher.js.map +1 -1
  61. package/dist/indexing/watcher.test.js +53 -16
  62. package/dist/indexing/watcher.test.js.map +1 -1
  63. package/dist/model.d.ts.map +1 -1
  64. package/dist/model.js +32 -426
  65. package/dist/model.js.map +1 -1
  66. package/dist/router/fallback.test.js +67 -0
  67. package/dist/router/fallback.test.js.map +1 -1
  68. package/dist/router/index.d.ts.map +1 -1
  69. package/dist/router/index.js +23 -2
  70. package/dist/router/index.js.map +1 -1
  71. package/dist/session/manager.d.ts +2 -2
  72. package/dist/session/manager.d.ts.map +1 -1
  73. package/dist/session/manager.js +9 -6
  74. package/dist/session/manager.js.map +1 -1
  75. package/dist/session/manager.test.js +5 -0
  76. package/dist/session/manager.test.js.map +1 -1
  77. package/dist/session/sqlite.d.ts +4 -0
  78. package/dist/session/sqlite.d.ts.map +1 -1
  79. package/dist/session/sqlite.js +17 -0
  80. package/dist/session/sqlite.js.map +1 -1
  81. package/dist/session/sqlite.test.js +10 -1
  82. package/dist/session/sqlite.test.js.map +1 -1
  83. package/dist/types.d.ts +17 -5
  84. package/dist/types.d.ts.map +1 -1
  85. package/dist/types.test.js +19 -0
  86. package/dist/types.test.js.map +1 -1
  87. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autopilot.js","sourceRoot":"","sources":["../../src/commands/autopilot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from './types.js';
2
+ export declare const huntCommand: Command;
3
+ //# sourceMappingURL=hunt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hunt.d.ts","sourceRoot":"","sources":["../../src/commands/hunt.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,WAAW,EAAE,OAiLzB,CAAC"}
@@ -0,0 +1,181 @@
1
+ import pc from 'picocolors';
2
+ import { execSync } from 'child_process';
3
+ import { errMessage } from '../utils/errors.js';
4
+ import { getGitRepoInfo } from '../agents/loop.js';
5
+ import { safeGitResetHard, safeBranchDelete, safeBranchSwitch, allowDestroyFromArgs, } from '../git/safe-git.js';
6
+ export const huntCommand = {
7
+ name: '/hunt',
8
+ aliases: ['/bug'],
9
+ description: 'Autonomously hunt down and fix a bug: reproduce, locate root cause, fix, verify',
10
+ usage: '/hunt <failing-test-filepath> or <bug description>',
11
+ helpText: 'End-to-end autonomous bug fixing. If given a test file path, runs it to capture the failure, searches the codebase for root cause, implements a fix, verifies the test passes, commits, pushes, and opens a pull request.\n\nFlow:\n 1. (Optional) Runs the failing test to capture error output\n 2. Creates a git branch (daedalus-hunt-<slug>)\n 3. Runs the multi-agent orchestrator to find and fix the bug\n 4. Re-runs the test to confirm the fix\n 5. Commits and pushes to GitHub\n 6. Opens a Pull Request against main\n\nProvide a test file path to enable automated reproduction and verification.',
12
+ execute: async (args, ctx) => {
13
+ const input = args.trim();
14
+ if (!input) {
15
+ console.log(pc.yellow('[WARN] Usage: /hunt <failing-test-filepath> or <bug description>'));
16
+ return;
17
+ }
18
+ const repoInfo = getGitRepoInfo(ctx.toolContext.projectRoot);
19
+ if (!repoInfo) {
20
+ console.log(pc.yellow('[INFO] No GitHub remote found. Running in local-only mode (no PR will be created).'));
21
+ }
22
+ const slug = input.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '').slice(0, 40);
23
+ const branchName = `daedalus-hunt-${slug}`;
24
+ const testFilePattern = /\.(test|spec)\.(ts|tsx|js|jsx|mjs)$/i;
25
+ const isTestFile = testFilePattern.test(input.trim());
26
+ let testFailureOutput = '';
27
+ if (isTestFile) {
28
+ const testPath = input.trim();
29
+ console.log(pc.cyan(`\n[HUNT] Reproducing failure from: ${testPath}`));
30
+ try {
31
+ const { execute: termExec } = await import('../tools/builtin/terminal.js');
32
+ const testResult = await termExec({ command: `npx vitest run ${testPath} --reporter=verbose`, timeout: 120, workdir: process.cwd() }, ctx.toolContext);
33
+ if (testResult.success) {
34
+ console.log(pc.yellow(`\n[HUNT] Test passed — no bug to fix. Running on main branch only.`));
35
+ return;
36
+ }
37
+ testFailureOutput = testResult.content || '';
38
+ const errorLines = testFailureOutput.split('\n').filter(l => l.includes('FAIL') || l.includes('AssertionError') || l.includes('Error:') || l.includes('×')).slice(0, 20).join('\n');
39
+ console.log(pc.red(`\n[HUNT] Failure reproduced:\n${errorLines.slice(0, 1000)}`));
40
+ }
41
+ catch (err) {
42
+ const msg = err instanceof Error ? errMessage(err) : String(err);
43
+ console.log(pc.yellow(`[HUNT] Could not run test: ${msg}. Continuing with description only.`));
44
+ }
45
+ }
46
+ try {
47
+ const allowDestroy = allowDestroyFromArgs(input) || !!repoInfo;
48
+ safeBranchSwitch(branchName, { cwd: ctx.toolContext.projectRoot, allowDestroy, branch: branchName });
49
+ console.log(pc.green(`[OK] Switched to branch: ${branchName}`));
50
+ }
51
+ catch (err) {
52
+ const msg = err instanceof Error ? errMessage(err) : String(err);
53
+ console.log(pc.red(`[ERROR] Failed to create branch: ${msg}`));
54
+ return;
55
+ }
56
+ const testContext = testFailureOutput ? `\n\nTest failure output:\n\`\`\`\n${testFailureOutput.slice(0, 4000)}\n\`\`\`` : '';
57
+ const goal = `Fix the following bug:\n${input}${testContext}\n\nFind the root cause, fix it, and ensure existing tests still pass.`;
58
+ console.log(pc.cyan(`\n[HUNT] Starting autonomous bug hunt...`));
59
+ process.env.DAEDALUS_AUTO_APPROVE = 'true';
60
+ let orchestratorResult = '';
61
+ try {
62
+ const { Orchestrator } = await import('../agents/orchestrator.js');
63
+ const orchestrator = new Orchestrator(ctx.router, ctx.messages, ctx.toolContext, ctx.sessionManager, ctx.config?.modelOverride);
64
+ orchestratorResult = await orchestrator.run(goal);
65
+ console.log(pc.white(`\n${orchestratorResult}`));
66
+ const orchestrationFailed = orchestratorResult.startsWith('Orchestration failed') || orchestratorResult.includes('## Orchestration Hit Verification Failures');
67
+ const wasAborted = orchestratorResult.includes('## Orchestration Paused');
68
+ if (orchestrationFailed || wasAborted) {
69
+ throw new Error(orchestrationFailed ? 'Orchestration reported failure' : 'Orchestration was paused/aborted');
70
+ }
71
+ }
72
+ catch (err) {
73
+ const msg = err instanceof Error ? errMessage(err) : String(err);
74
+ console.log(pc.red(`\n[ERROR] Bug hunt stopped: ${msg}`));
75
+ console.log(pc.dim('[CHECK] Fix did not verify — discarding the attempt to keep main clean.'));
76
+ const allowDestroy = allowDestroyFromArgs(input) || !!repoInfo;
77
+ if (allowDestroy) {
78
+ try {
79
+ safeGitResetHard({ cwd: ctx.toolContext.projectRoot, allowDestroy });
80
+ execSync('git checkout main', { cwd: ctx.toolContext.projectRoot, stdio: 'ignore', windowsHide: true });
81
+ safeBranchDelete(branchName, { cwd: ctx.toolContext.projectRoot, allowDestroy });
82
+ console.log(pc.green('[OK] Branch cleaned up; main is untouched.'));
83
+ }
84
+ catch (rollbackErr) {
85
+ const rbMsg = rollbackErr instanceof Error ? rollbackErr.message : String(rollbackErr);
86
+ console.log(pc.red(`[ERROR] Cleanup failed: ${rbMsg}. Manual cleanup may be needed.`));
87
+ }
88
+ }
89
+ else {
90
+ console.log(pc.cyan(`[INFO] Local-only mode: keeping branch '${branchName}' with the attempted fix for inspection. Fix and commit manually.`));
91
+ }
92
+ return;
93
+ }
94
+ if (isTestFile && testFailureOutput) {
95
+ console.log(pc.cyan('\n[HUNT] Verifying fix...'));
96
+ try {
97
+ const { execute: termExec } = await import('../tools/builtin/terminal.js');
98
+ const verifyResult = await termExec({ command: `npx vitest run ${input.trim()} --reporter=verbose`, timeout: 120, workdir: process.cwd() }, ctx.toolContext);
99
+ if (verifyResult.success) {
100
+ console.log(pc.green(`\n[HUNT] ✓ Fix verified — test passes.`));
101
+ }
102
+ else {
103
+ console.log(pc.yellow(`\n[HUNT] ⚠ Fix verification failed. Test still failing. Continuing to commit partial fix.`));
104
+ }
105
+ }
106
+ catch (err) {
107
+ const msg = err instanceof Error ? errMessage(err) : String(err);
108
+ console.log(pc.yellow(`[HUNT] Verification skipped: ${msg}`));
109
+ }
110
+ }
111
+ console.log(pc.cyan('\n[HUNT] Committing changes...'));
112
+ try {
113
+ execSync('git add .', { cwd: ctx.toolContext.projectRoot, windowsHide: true });
114
+ const cleanTitle = input.replace(/[^a-zA-Z0-9 ]/g, '').trim();
115
+ execSync(`git commit -m "fix: ${cleanTitle}"`, { cwd: ctx.toolContext.projectRoot, windowsHide: true });
116
+ console.log(pc.green('[OK] Changes committed.'));
117
+ }
118
+ catch (err) {
119
+ const msg = err instanceof Error ? errMessage(err) : String(err);
120
+ if (msg.includes('nothing to commit')) {
121
+ console.log(pc.yellow('[INFO] No changes to commit.'));
122
+ }
123
+ else {
124
+ console.log(pc.red(`[ERROR] Failed to commit: ${msg}`));
125
+ return;
126
+ }
127
+ }
128
+ if (repoInfo) {
129
+ console.log(pc.cyan('\n[HUNT] Pushing branch and creating PR...'));
130
+ let token = process.env.GITHUB_TOKEN || process.env.GH_TOKEN;
131
+ if (!token) {
132
+ try {
133
+ token = execSync('gh auth token', { encoding: 'utf8', windowsHide: true }).trim();
134
+ }
135
+ catch {
136
+ console.log(pc.yellow('[INFO] No GitHub token found. Run `gh auth login` or set GITHUB_TOKEN.'));
137
+ console.log(pc.yellow(`[INFO] Branch ${branchName} is ready locally. Push manually.`));
138
+ return;
139
+ }
140
+ }
141
+ try {
142
+ execSync(`git push -u origin ${branchName} --force`, { cwd: ctx.toolContext.projectRoot, windowsHide: true });
143
+ const hasSummary = orchestratorResult && !orchestratorResult.startsWith('Orchestration failed');
144
+ const prBody = `## Description\n\nAutonomously fixed by Daedalus Hunt.\n\n**Bug:** ${input}\n${testFailureOutput ? `\n**Failure reproduced:**\n\`\`\`\n${testFailureOutput.slice(0, 1500)}\n\`\`\`\n` : ''}${hasSummary ? `\n**Summary:**\n${orchestratorResult.slice(0, 2000)}` : ''}\n\n---\n_Generated by \`/hunt\`_`;
145
+ const prResponse = await fetch(`https://api.github.com/repos/${repoInfo.owner}/${repoInfo.repo}/pulls`, {
146
+ method: 'POST',
147
+ headers: {
148
+ 'Authorization': `Bearer ${token}`,
149
+ 'Content-Type': 'application/json',
150
+ },
151
+ body: JSON.stringify({
152
+ title: `[Hunt] ${input}`,
153
+ head: branchName,
154
+ base: 'main',
155
+ body: prBody,
156
+ }),
157
+ });
158
+ if (prResponse.ok) {
159
+ const pr = await prResponse.json();
160
+ console.log(pc.green(`\n[OK] Pull Request created: ${pr.html_url}`));
161
+ }
162
+ else {
163
+ const errText = await prResponse.text();
164
+ console.log(pc.red(`[ERROR] Failed to create PR: ${prResponse.status} ${errText}`));
165
+ console.log(pc.yellow(`[INFO] Branch ${branchName} is pushed. Create PR manually.`));
166
+ }
167
+ }
168
+ catch (err) {
169
+ const msg = err instanceof Error ? errMessage(err) : String(err);
170
+ console.log(pc.red(`[ERROR] Push/PR failed: ${msg}`));
171
+ console.log(pc.yellow(`[INFO] Branch ${branchName} is ready locally.`));
172
+ }
173
+ }
174
+ else {
175
+ console.log(pc.yellow('\n[INFO] No GitHub remote configured. Fix is committed locally.'));
176
+ console.log(pc.yellow(`[INFO] Branch: ${branchName}`));
177
+ }
178
+ console.log(pc.cyan(`\n[HUNT] Done! Run 'git checkout main' to return to main branch.`));
179
+ }
180
+ };
181
+ //# sourceMappingURL=hunt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hunt.js","sourceRoot":"","sources":["../../src/commands/hunt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from './types.js';
2
+ export declare const mcpCommand: Command;
3
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,UAAU,EAAE,OA2VxB,CAAC"}
@@ -0,0 +1,339 @@
1
+ import pc from 'picocolors';
2
+ import { errMessage } from '../utils/errors.js';
3
+ export const mcpCommand = {
4
+ name: '/mcp',
5
+ description: 'Manage MCP servers: explore, search, install, list, remove, info',
6
+ usage: '/mcp <subcommand> [args]',
7
+ helpText: 'Configure and interact with Model Context Protocol (MCP) servers.\n\nSubcommands:\n explore, ex Browse curated featured community MCP servers\n list, l List all installed MCP servers and their active state\n search, s <query> Search the public MCP Registry for available servers\n install, i <name> Install an MCP server from the registry\n remove, rm <name> Uninstall an MCP server\n info <name> Display metadata and information for a registry server\n enable <name> Enable a configured server\n disable <name> Disable a configured server without removing it',
8
+ execute: async (args, _ctx) => {
9
+ const parts = args.trim().split(/\s+/);
10
+ const sub = parts[0]?.toLowerCase();
11
+ const rest = parts.slice(1).join(' ').trim();
12
+ const { searchRegistry, fetchServerByName, fetchAllServers, registryEntryToConfig, addServerToConfig, removeServerFromConfig, listInstalledServers, toggleServer } = await import('../tools/mcp/manager.js');
13
+ const { mcpRegistry } = await import('../tools/mcp/registry.js');
14
+ switch (sub) {
15
+ case 'bundle':
16
+ case 'b': {
17
+ const { listMcpBundles, getMcpBundle } = await import('../tools/mcp/bundles.js');
18
+ const bundleSub = parts[1]?.toLowerCase();
19
+ const bundleTarget = parts[2];
20
+ if (bundleSub === 'list' || !bundleSub) {
21
+ console.log(pc.cyan('\n=== One-Click MCP Tool Bundles ===\n'));
22
+ for (const b of listMcpBundles()) {
23
+ console.log(` ${pc.bold(b.name.padEnd(16))} ${pc.dim(b.description)}`);
24
+ for (const s of b.servers) {
25
+ console.log(` ${pc.dim('•')} ${pc.cyan(s.name)}: ${s.description}`);
26
+ }
27
+ console.log();
28
+ }
29
+ console.log(pc.dim(' Install a bundle: /mcp bundle install <name>\n'));
30
+ return;
31
+ }
32
+ if (bundleSub === 'install') {
33
+ if (!bundleTarget) {
34
+ console.log(pc.yellow(' Usage: /mcp bundle install <name>'));
35
+ return;
36
+ }
37
+ const bundle = getMcpBundle(bundleTarget);
38
+ if (!bundle) {
39
+ console.log(pc.red(` Bundle "${bundleTarget}" not found. Run /mcp bundle list to see presets.`));
40
+ return;
41
+ }
42
+ console.log(pc.cyan(`\n [MCP BUNDLE] Installing preset bundle: ${pc.bold(bundle.name)}...`));
43
+ for (const s of bundle.servers) {
44
+ addServerToConfig({ name: s.name, transport: 'stdio', command: s.command, args: s.args, enabled: true });
45
+ console.log(pc.green(` [OK] Installed MCP server "${s.name}"`));
46
+ }
47
+ console.log(pc.dim('\n Run /mcp reconnect to activate new servers.\n'));
48
+ return;
49
+ }
50
+ console.log(pc.yellow(' Usage: /mcp bundle [list | install <name>]'));
51
+ return;
52
+ }
53
+ case 'search':
54
+ case 's': {
55
+ if (!rest) {
56
+ console.log(pc.yellow(' Usage: /mcp search <query>'));
57
+ return;
58
+ }
59
+ console.log(pc.dim(` Searching registry for "${rest}"...`));
60
+ try {
61
+ const results = await searchRegistry(rest, 15);
62
+ if (results.length === 0) {
63
+ console.log(pc.yellow(' No servers found. Try a broader search.'));
64
+ return;
65
+ }
66
+ console.log(`\n ${pc.bold(`Found ${results.length} server(s):`)}`);
67
+ for (const s of results) {
68
+ const label = s.title || s.name;
69
+ const desc = s.description.length > 80 ? s.description.slice(0, 80) + '…' : s.description;
70
+ const remote = s.remotes?.[0]?.url || '';
71
+ const pkg = s.packages?.[0]?.identifier || '';
72
+ const source = remote || pkg || '(no install info)';
73
+ const installType = s.packages ? 'stdio' : s.remotes ? 'http' : '?';
74
+ console.log(` ${pc.cyan(label)}`);
75
+ console.log(` ${pc.dim(desc)}`);
76
+ console.log(` ${pc.gray('Install:')} ${pc.dim(source)} (${installType})`);
77
+ console.log();
78
+ }
79
+ }
80
+ catch (err) {
81
+ console.log(pc.red(` Search failed: ${errMessage(err)}`));
82
+ }
83
+ return;
84
+ }
85
+ case 'install':
86
+ case 'i': {
87
+ if (!rest) {
88
+ console.log(pc.yellow(' Usage: /mcp install <server-name>'));
89
+ console.log(pc.dim(' First search for a server with: /mcp search <query>'));
90
+ return;
91
+ }
92
+ console.log(pc.dim(` Fetching "${rest}" from registry...`));
93
+ try {
94
+ const entry = await fetchServerByName(rest);
95
+ if (!entry) {
96
+ console.log(pc.yellow(` Server "${rest}" not found in registry. Try /mcp search first.`));
97
+ return;
98
+ }
99
+ const config = registryEntryToConfig(entry);
100
+ if (!config) {
101
+ console.log(pc.yellow(` Cannot install "${rest}": no stdio package or remote URL found.`));
102
+ return;
103
+ }
104
+ const result = addServerToConfig(config);
105
+ if (result.success) {
106
+ console.log(pc.green(` ${result.message}`));
107
+ console.log(pc.dim(' Restart Daedalus or reconnect to load the new server.'));
108
+ }
109
+ else {
110
+ console.log(pc.yellow(` ${result.message}`));
111
+ }
112
+ }
113
+ catch (err) {
114
+ console.log(pc.red(` Install failed: ${errMessage(err)}`));
115
+ }
116
+ return;
117
+ }
118
+ case 'explore':
119
+ case 'ex': {
120
+ console.log(pc.dim(' Browsing the MCP registry...\n'));
121
+ try {
122
+ const all = await fetchAllServers(100);
123
+ const local = all.filter(s => s.packages && s.packages.length > 0);
124
+ const remote = all.filter(s => s.remotes && s.remotes.length > 0);
125
+ console.log(` ${pc.bold(`Found ${all.length} servers in registry`)}`);
126
+ const showSample = (list, label, max = 5) => {
127
+ if (list.length === 0)
128
+ return;
129
+ console.log(`\n ${pc.underline(label)} (${list.length} available)`);
130
+ for (const s of list.slice(0, max)) {
131
+ const pkg = s.packages?.[0]?.identifier || '';
132
+ const url = s.remotes?.[0]?.url || '';
133
+ const source = pkg || url;
134
+ const info = s.description.length > 55 ? s.description.slice(0, 53) + '…' : s.description;
135
+ const showName = s.name.length > 28 ? s.name.slice(0, 26) + '…' : s.name;
136
+ console.log(` ${pc.cyan(showName.padEnd(30))} ${pc.dim(info)}`);
137
+ console.log(` ${' '.repeat(30)} ${pc.gray('→')} ${pc.dim(source)}`);
138
+ }
139
+ if (list.length > max) {
140
+ console.log(` ${' '.repeat(30)} ${pc.dim(`… and ${list.length - max} more`)}`);
141
+ }
142
+ };
143
+ showSample(local, 'Local (stdio — install & run)', 6);
144
+ showSample(remote, 'Remote (HTTP — cloud API)', 6);
145
+ console.log(`\n ${pc.dim('Tip: /mcp search <query> to find specific servers')}`);
146
+ }
147
+ catch (err) {
148
+ console.log(pc.red(` Explore failed: ${errMessage(err)}`));
149
+ }
150
+ return;
151
+ }
152
+ case 'list':
153
+ case 'ls':
154
+ case 'l': {
155
+ const servers = listInstalledServers();
156
+ if (servers.length === 0) {
157
+ console.log(pc.yellow(' No MCP servers installed.'));
158
+ console.log(pc.dim(' Try /mcp explore to see what\'s available.'));
159
+ return;
160
+ }
161
+ const connected = mcpRegistry.getConnectedServers();
162
+ console.log(`\n ${pc.bold('Installed MCP Servers:')}`);
163
+ for (const s of servers) {
164
+ const status = connected.includes(s.name) ? pc.green('●') : s.enabled ? pc.yellow('○') : pc.red('○');
165
+ const state = connected.includes(s.name) ? pc.green('connected')
166
+ : s.enabled ? pc.yellow('pending')
167
+ : pc.red('disabled');
168
+ console.log(` ${status} ${pc.cyan(s.name.padEnd(20))} ${pc.dim(s.transport.padEnd(6))} ${state}`);
169
+ }
170
+ console.log();
171
+ return;
172
+ }
173
+ case 'remove':
174
+ case 'rm':
175
+ case 'r': {
176
+ if (!rest) {
177
+ console.log(pc.yellow(' Usage: /mcp remove <server-name>'));
178
+ return;
179
+ }
180
+ const result = removeServerFromConfig(rest);
181
+ if (result.success) {
182
+ console.log(pc.green(` ${result.message}`));
183
+ }
184
+ else {
185
+ console.log(pc.yellow(` ${result.message}`));
186
+ }
187
+ return;
188
+ }
189
+ case 'info': {
190
+ if (!rest) {
191
+ console.log(pc.yellow(' Usage: /mcp info <server-name>'));
192
+ return;
193
+ }
194
+ try {
195
+ console.log(pc.dim(` Fetching "${rest}" from registry...`));
196
+ const entry = await fetchServerByName(rest);
197
+ if (!entry) {
198
+ console.log(pc.yellow(` Server "${rest}" not found.`));
199
+ return;
200
+ }
201
+ console.log(`\n ${pc.bold(entry.title || entry.name)}`);
202
+ console.log(` ${pc.dim(entry.description)}`);
203
+ console.log(` ${pc.gray('Name:')} ${entry.name}`);
204
+ console.log(` ${pc.gray('Version:')} ${entry.version}`);
205
+ if (entry.websiteUrl)
206
+ console.log(` ${pc.gray('Website:')} ${entry.websiteUrl}`);
207
+ if (entry.repository?.url)
208
+ console.log(` ${pc.gray('Source:')} ${entry.repository.url}`);
209
+ if (entry.remotes && entry.remotes.length > 0) {
210
+ console.log(`\n ${pc.bold('Remote endpoints:')}`);
211
+ for (const r of entry.remotes) {
212
+ console.log(` ${pc.cyan(r.type)} ${pc.dim(r.url)}`);
213
+ if (r.headers) {
214
+ for (const h of r.headers) {
215
+ const req = h.isRequired ? pc.yellow(' (required)') : '';
216
+ const secret = h.isSecret ? pc.dim(' [secret]') : '';
217
+ console.log(` ${pc.gray('Header:')} ${h.name}${req}${secret}`);
218
+ }
219
+ }
220
+ }
221
+ }
222
+ if (entry.packages && entry.packages.length > 0) {
223
+ console.log(`\n ${pc.bold('Packages:')}`);
224
+ for (const p of entry.packages) {
225
+ const [cmd, ...args] = p.registryType === 'npm' ? ['npx', '-y', p.identifier]
226
+ : p.registryType === 'pypi' ? ['uvx', p.identifier]
227
+ : [p.identifier];
228
+ console.log(` ${pc.cyan(p.registryType)} ${pc.dim(`${cmd} ${args.join(' ')}`)}`);
229
+ if (p.environmentVariables) {
230
+ for (const env of p.environmentVariables) {
231
+ const req = env.isRequired ? pc.yellow(' (required)') : '';
232
+ const secret = env.isSecret ? pc.dim(' [secret]') : '';
233
+ console.log(` ${pc.gray('Env:')} ${env.name}${req}${secret}`);
234
+ if (env.description)
235
+ console.log(` ${pc.dim(env.description)}`);
236
+ }
237
+ }
238
+ }
239
+ }
240
+ console.log();
241
+ }
242
+ catch (err) {
243
+ console.log(pc.red(` Info fetch failed: ${errMessage(err)}`));
244
+ }
245
+ return;
246
+ }
247
+ case 'reconnect':
248
+ case 'rc': {
249
+ const { loadConfig } = await import('../config/index.js');
250
+ const config = loadConfig();
251
+ const mcpConfigs = Object.entries(config.tools.mcpServers)
252
+ .filter(([_, s]) => s.enabled)
253
+ .map(([name, s]) => ({
254
+ name,
255
+ transport: s.transport,
256
+ command: s.command,
257
+ args: s.args,
258
+ url: s.url,
259
+ headers: s.headers,
260
+ enabled: s.enabled,
261
+ }));
262
+ const already = mcpRegistry.getConnectedServers();
263
+ const newServers = mcpConfigs.filter(c => !already.includes(c.name));
264
+ if (newServers.length === 0) {
265
+ if (mcpConfigs.length === 0) {
266
+ console.log(pc.yellow(' No enabled MCP servers configured. Install one with /mcp install'));
267
+ }
268
+ else {
269
+ console.log(pc.dim(' All enabled MCP servers are already connected.'));
270
+ }
271
+ return;
272
+ }
273
+ mcpRegistry.setConfigs(mcpConfigs);
274
+ const connected = [];
275
+ const failed = [];
276
+ for (const s of newServers) {
277
+ try {
278
+ await mcpRegistry.connectServer(s);
279
+ connected.push(s.name);
280
+ }
281
+ catch (err) {
282
+ failed.push(`${s.name} (${errMessage(err)})`);
283
+ }
284
+ }
285
+ if (connected.length > 0) {
286
+ const totalTools = mcpRegistry.getToolDefinitions().length;
287
+ console.log(pc.green(` Connected: ${connected.join(', ')} (${totalTools} MCP tools total)`));
288
+ }
289
+ if (failed.length > 0) {
290
+ console.log(pc.yellow(` Failed: ${failed.join(', ')}`));
291
+ }
292
+ return;
293
+ }
294
+ case 'enable':
295
+ case 'e': {
296
+ if (!rest) {
297
+ console.log(pc.yellow(' Usage: /mcp enable <server-name>'));
298
+ return;
299
+ }
300
+ const enableResult = toggleServer(rest, true);
301
+ console.log(enableResult.success ? pc.green(` ${enableResult.message}`) : pc.yellow(` ${enableResult.message}`));
302
+ return;
303
+ }
304
+ case 'disable':
305
+ case 'd': {
306
+ if (!rest) {
307
+ console.log(pc.yellow(' Usage: /mcp disable <server-name>'));
308
+ return;
309
+ }
310
+ const disableResult = toggleServer(rest, false);
311
+ console.log(disableResult.success ? pc.green(` ${disableResult.message}`) : pc.yellow(` ${disableResult.message}`));
312
+ return;
313
+ }
314
+ default:
315
+ console.log(pc.bold('\n MCP Server Manager'));
316
+ console.log(` ${pc.cyan('/mcp explore')} ${pc.dim('Browse available servers in the registry')}`);
317
+ console.log(` ${pc.cyan('/mcp search <query>')} ${pc.dim('Search MCP registry + Smithery')}`);
318
+ console.log(` ${pc.cyan('/mcp install <name>')} ${pc.dim('Install a server from the registry')}`);
319
+ console.log(` ${pc.cyan('/mcp list')} ${pc.dim('List installed servers')}`);
320
+ console.log(` ${pc.cyan('/mcp remove <name>')} ${pc.dim('Remove an installed server')}`);
321
+ console.log(` ${pc.cyan('/mcp info <name>')} ${pc.dim('Show server details')}`);
322
+ console.log(` ${pc.cyan('/mcp reconnect')} ${pc.dim('Reconnect all enabled servers')}`);
323
+ console.log(` ${pc.cyan('/mcp enable <name>')} ${pc.dim('Enable a disabled server')}`);
324
+ console.log(` ${pc.cyan('/mcp disable <name>')} ${pc.dim('Disable a server without removing it')}`);
325
+ console.log(`\n ${pc.bold('Popular npm MCP servers (add to ~/.daedalus/config.json):')}`);
326
+ console.log(` ${pc.dim(' "server-name": { "transport": "stdio", "command": "npx", "args": ["-y", "@npm/package"], "enabled": true }')}`);
327
+ console.log(` ${pc.gray('→')} ${pc.cyan('filesystem')} ${pc.dim('npx -y @modelcontextprotocol/server-filesystem <allowed-dir>')}`);
328
+ console.log(` ${pc.gray('→')} ${pc.cyan('puppeteer')} ${pc.dim('npx -y @modelcontextprotocol/server-puppeteer')}`);
329
+ console.log(` ${pc.gray('→')} ${pc.cyan('memory')} ${pc.dim('npx -y @modelcontextprotocol/server-memory')}`);
330
+ console.log(` ${pc.gray('→')} ${pc.cyan('fetch')} ${pc.dim('npx -y @modelcontextprotocol/server-fetch')}`);
331
+ console.log(` ${pc.gray('→')} ${pc.cyan('sequential-thinking')} ${pc.dim('npx -y @modelcontextprotocol/server-sequential-thinking')}`);
332
+ console.log(` ${pc.gray('→')} ${pc.cyan('github')} ${pc.dim('npx -y @github/github-mcp-server')}`);
333
+ console.log(` ${pc.gray('→')} ${pc.cyan('sqlite')} ${pc.dim('npx -y @modelcontextprotocol/server-sqlite <db-path>')}`);
334
+ console.log(` ${pc.dim(' Then run /mcp reconnect to load them.')}`);
335
+ console.log();
336
+ }
337
+ }
338
+ };
339
+ //# sourceMappingURL=mcp.js.map