autodev-cli 1.4.0 → 1.4.3
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/bin/autodev.js +0 -0
- package/out/agentBackup/archive.d.ts +44 -0
- package/out/agentBackup/archive.js +131 -0
- package/out/agentBackup/archive.js.map +1 -0
- package/out/agentBackup/export.d.ts +18 -0
- package/out/agentBackup/export.js +92 -0
- package/out/agentBackup/export.js.map +1 -0
- package/out/agentBackup/import.d.ts +21 -0
- package/out/agentBackup/import.js +40 -0
- package/out/agentBackup/import.js.map +1 -0
- package/out/agentBackup/index.d.ts +6 -0
- package/out/agentBackup/index.js +11 -0
- package/out/agentBackup/index.js.map +1 -0
- package/out/agentBackup/layout.d.ts +30 -0
- package/out/agentBackup/layout.js +126 -0
- package/out/agentBackup/layout.js.map +1 -0
- package/out/agentBackup/manifest.d.ts +24 -0
- package/out/agentBackup/manifest.js +70 -0
- package/out/agentBackup/manifest.js.map +1 -0
- package/out/agentBackup/opencodeDb.d.ts +20 -0
- package/out/agentBackup/opencodeDb.js +213 -0
- package/out/agentBackup/opencodeDb.js.map +1 -0
- package/out/agentBackup/sessionProviders.d.ts +35 -0
- package/out/agentBackup/sessionProviders.js +263 -0
- package/out/agentBackup/sessionProviders.js.map +1 -0
- package/out/agentBackup/upload.d.ts +9 -0
- package/out/agentBackup/upload.js +121 -0
- package/out/agentBackup/upload.js.map +1 -0
- package/out/cli.d.ts +1 -0
- package/out/cli.js +8 -0
- package/out/cli.js.map +1 -1
- package/out/cliExit.d.ts +34 -0
- package/out/cliExit.js +159 -0
- package/out/cliExit.js.map +1 -0
- package/out/commands/config.d.ts +2 -0
- package/out/commands/config.js +7 -7
- package/out/commands/config.js.map +1 -1
- package/out/commands/connect.d.ts +2 -0
- package/out/commands/connect.js +11 -0
- package/out/commands/connect.js.map +1 -1
- package/out/commands/export.d.ts +2 -0
- package/out/commands/export.js +79 -0
- package/out/commands/export.js.map +1 -0
- package/out/commands/import.d.ts +2 -0
- package/out/commands/import.js +92 -0
- package/out/commands/import.js.map +1 -0
- package/out/commands/init.d.ts +16 -0
- package/out/commands/init.js +9 -5
- package/out/commands/init.js.map +1 -1
- package/out/commands/resume.d.ts +2 -0
- package/out/commands/resume.js +65 -0
- package/out/commands/resume.js.map +1 -0
- package/out/commands/sessions.d.ts +2 -0
- package/out/commands/sessions.js +64 -0
- package/out/commands/sessions.js.map +1 -0
- package/out/commands/start.d.ts +2 -0
- package/out/commands/start.js +40 -7
- package/out/commands/start.js.map +1 -1
- package/out/commands/status.d.ts +2 -0
- package/out/commands/status.js +3 -3
- package/out/commands/status.js.map +1 -1
- package/out/commands/tailOutput.d.ts +12 -0
- package/out/commands/up.d.ts +3 -0
- package/out/configManager.d.ts +42 -0
- package/out/configManager.js +430 -0
- package/out/configManager.js.map +1 -0
- package/out/connect.d.ts +4 -0
- package/out/connect.js +7 -7
- package/out/connect.js.map +1 -1
- package/out/core/adapters.d.ts +34 -0
- package/out/core/adapters.js +84 -0
- package/out/core/adapters.js.map +1 -0
- package/out/core/commandHelpers.d.ts +12 -0
- package/out/core/commandHelpers.js +96 -0
- package/out/core/commandHelpers.js.map +1 -0
- package/out/core/projectMcp.d.ts +25 -0
- package/out/core/projectMcp.js +144 -0
- package/out/core/projectMcp.js.map +1 -0
- package/out/core/provider/BaseProvider.d.ts +14 -0
- package/out/core/provider/BaseProvider.js +25 -0
- package/out/core/provider/BaseProvider.js.map +1 -0
- package/out/core/provider/ProviderRegistry.d.ts +12 -0
- package/out/core/provider/ProviderRegistry.js +40 -0
- package/out/core/provider/ProviderRegistry.js.map +1 -0
- package/out/core/provider/contract.d.ts +62 -0
- package/out/core/provider/contract.js +9 -0
- package/out/core/provider/contract.js.map +1 -0
- package/out/core/provider/implementations.d.ts +54 -0
- package/out/core/provider/implementations.js +147 -0
- package/out/core/provider/implementations.js.map +1 -0
- package/out/core/settingsLoader.d.ts +221 -0
- package/out/core/settingsLoader.js +176 -0
- package/out/core/settingsLoader.js.map +1 -0
- package/out/discordGateway.d.ts +26 -0
- package/out/discordGateway.js +230 -0
- package/out/discordGateway.js.map +1 -0
- package/out/discordPoller.d.ts +28 -0
- package/out/discordPoller.js +247 -0
- package/out/discordPoller.js.map +1 -0
- package/out/dispatcher.d.ts +12 -0
- package/out/dispatcher.js +214 -0
- package/out/dispatcher.js.map +1 -0
- package/out/emailPoller.d.ts +42 -0
- package/out/emailPoller.js +221 -0
- package/out/emailPoller.js.map +1 -0
- package/out/git/gitService.d.ts +36 -0
- package/out/git/gitService.js +165 -0
- package/out/git/gitService.js.map +1 -0
- package/out/hookEventNormalizer.d.ts +39 -0
- package/out/hookEventNormalizer.js +397 -0
- package/out/hookEventNormalizer.js.map +1 -0
- package/out/hooksManager.d.ts +25 -0
- package/out/hooksManager.js +471 -0
- package/out/hooksManager.js.map +1 -0
- package/out/launchIde.d.ts +14 -0
- package/out/logger.d.ts +12 -0
- package/out/mcpEmailTest.d.ts +29 -0
- package/out/mcpEmailTest.js +245 -0
- package/out/mcpEmailTest.js.map +1 -0
- package/out/mcpInstallCheck.d.ts +23 -0
- package/out/mcpInstallCheck.js +219 -0
- package/out/mcpInstallCheck.js.map +1 -0
- package/out/mcpManager.d.ts +35 -0
- package/out/mcpManager.js +371 -0
- package/out/mcpManager.js.map +1 -0
- package/out/messageBuilder.d.ts +54 -0
- package/out/messageBuilder.js +373 -0
- package/out/messageBuilder.js.map +1 -0
- package/out/openCodeHooksManager.d.ts +23 -0
- package/out/openCodeHooksManager.js +511 -0
- package/out/openCodeHooksManager.js.map +1 -0
- package/out/periodicActions.d.ts +63 -0
- package/out/periodicActions.js +237 -0
- package/out/periodicActions.js.map +1 -0
- package/out/profileBuilder.d.ts +29 -0
- package/out/profileBuilder.js +366 -0
- package/out/profileBuilder.js.map +1 -0
- package/out/prompt.d.ts +12 -0
- package/out/prompt.js +18 -0
- package/out/prompt.js.map +1 -0
- package/out/protocolSections.d.ts +26 -0
- package/out/protocolSections.js +209 -0
- package/out/protocolSections.js.map +1 -0
- package/out/providers/claudeCliProvider.d.ts +71 -0
- package/out/providers/claudeCliProvider.js +425 -0
- package/out/providers/claudeCliProvider.js.map +1 -0
- package/out/providers/claudeTuiProvider.d.ts +23 -0
- package/out/providers/claudeTuiProvider.js +296 -0
- package/out/providers/claudeTuiProvider.js.map +1 -0
- package/out/providers/copilotCliProvider.d.ts +16 -0
- package/out/providers/copilotCliProvider.js +44 -0
- package/out/providers/copilotCliProvider.js.map +1 -0
- package/out/providers/copilotSdkProvider.d.ts +12 -0
- package/out/providers/copilotSdkProvider.js +445 -0
- package/out/providers/copilotSdkProvider.js.map +1 -0
- package/out/providers/grokTuiProvider.d.ts +14 -0
- package/out/providers/grokTuiProvider.js +271 -0
- package/out/providers/grokTuiProvider.js.map +1 -0
- package/out/providers/opencodeCliProvider.d.ts +29 -0
- package/out/providers/opencodeCliProvider.js +199 -0
- package/out/providers/opencodeCliProvider.js.map +1 -0
- package/out/providers/opencodeSdkProvider.d.ts +22 -0
- package/out/providers/opencodeSdkProvider.js +557 -0
- package/out/providers/opencodeSdkProvider.js.map +1 -0
- package/out/providers.d.ts +9 -0
- package/out/providers.js +44 -0
- package/out/providers.js.map +1 -0
- package/out/rateLimit.d.ts +18 -0
- package/out/rateLimit.js +90 -0
- package/out/rateLimit.js.map +1 -0
- package/out/rdp/auth.d.ts +55 -0
- package/out/rdp/auth.js +197 -0
- package/out/rdp/auth.js.map +1 -0
- package/out/rdp/bridge.d.ts +86 -0
- package/out/rdp/bridge.js +1398 -0
- package/out/rdp/bridge.js.map +1 -0
- package/out/rdp/constants.d.ts +86 -0
- package/out/rdp/constants.js +182 -0
- package/out/rdp/constants.js.map +1 -0
- package/out/rdp/index.d.ts +7 -0
- package/out/rdp/index.js +14 -0
- package/out/rdp/index.js.map +1 -0
- package/out/rdp/session.d.ts +30 -0
- package/out/rdp/session.js +196 -0
- package/out/rdp/session.js.map +1 -0
- package/out/rdp/types.d.ts +27 -0
- package/out/rdp/types.js +6 -0
- package/out/rdp/types.js.map +1 -0
- package/out/sdk/index.d.ts +22 -0
- package/out/sdk/index.js +81 -0
- package/out/sdk/index.js.map +1 -0
- package/out/sessionState.d.ts +54 -0
- package/out/sessionState.js +284 -0
- package/out/sessionState.js.map +1 -0
- package/out/sessions.d.ts +11 -0
- package/out/sessions.js +32 -0
- package/out/sessions.js.map +1 -0
- package/out/taskLoop.d.ts +152 -0
- package/out/taskLoop.js +2505 -0
- package/out/taskLoop.js.map +1 -0
- package/out/todo.d.ts +42 -0
- package/out/todo.js +311 -0
- package/out/todo.js.map +1 -0
- package/out/todoWriteManager.d.ts +26 -0
- package/out/todoWriteManager.js +44 -0
- package/out/todoWriteManager.js.map +1 -0
- package/out/vnc/auth.d.ts +52 -0
- package/out/vnc/auth.js +181 -0
- package/out/vnc/auth.js.map +1 -0
- package/out/vnc/bridge.d.ts +40 -0
- package/out/vnc/bridge.js +540 -0
- package/out/vnc/bridge.js.map +1 -0
- package/out/vnc/constants.d.ts +8 -0
- package/out/vnc/constants.js +34 -0
- package/out/vnc/constants.js.map +1 -0
- package/out/vnc/des.d.ts +6 -0
- package/out/vnc/des.js +93 -0
- package/out/vnc/des.js.map +1 -0
- package/out/vnc/index.d.ts +7 -0
- package/out/vnc/index.js +13 -0
- package/out/vnc/index.js.map +1 -0
- package/out/vnc/session.d.ts +18 -0
- package/out/vnc/session.js +193 -0
- package/out/vnc/session.js.map +1 -0
- package/out/vnc/types.d.ts +16 -0
- package/out/vnc/types.js +6 -0
- package/out/vnc/types.js.map +1 -0
- package/out/webSocketPoller.d.ts +95 -0
- package/out/webSocketPoller.js +986 -0
- package/out/webSocketPoller.js.map +1 -0
- package/out/webhook.d.ts +37 -0
- package/out/webhook.js +265 -0
- package/out/webhook.js.map +1 -0
- package/out/webhookPoller.d.ts +40 -0
- package/out/webhookPoller.js +378 -0
- package/out/webhookPoller.js.map +1 -0
- package/package.json +54 -41
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.McpServerManager = exports.DEFAULT_MCP_SERVERS = void 0;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const os = __importStar(require("os"));
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
// ---------------------------------------------------------------------------
|
|
41
|
+
// McpServerManager — unified MCP server configuration across all CLI providers
|
|
42
|
+
//
|
|
43
|
+
// Each provider stores MCP server definitions in its own config file with a
|
|
44
|
+
// slightly different schema. This class normalises them into a single
|
|
45
|
+
// McpServerEntry type and provides add / remove / list / syncAll operations
|
|
46
|
+
// that write to every provider at once.
|
|
47
|
+
//
|
|
48
|
+
// Config file locations:
|
|
49
|
+
// Claude CLI : ~/.claude/settings.json (key: mcpServers)
|
|
50
|
+
// Copilot CLI : ~/.copilot/mcp-config.json (key: mcpServers, has "type"/"tools")
|
|
51
|
+
// OpenCode CLI: %APPDATA%/opencode/config.json (key: mcp, command is an array)
|
|
52
|
+
// ---------------------------------------------------------------------------
|
|
53
|
+
/**
|
|
54
|
+
* Default MCP servers applied to every CLI provider on extension activation.
|
|
55
|
+
* Add entries here to have them automatically synced to Claude, Copilot, and OpenCode.
|
|
56
|
+
*/
|
|
57
|
+
exports.DEFAULT_MCP_SERVERS = [
|
|
58
|
+
{
|
|
59
|
+
name: 'memory',
|
|
60
|
+
command: 'npx',
|
|
61
|
+
args: ['-y', '@modelcontextprotocol/server-memory'],
|
|
62
|
+
env: {
|
|
63
|
+
MEMORY_FILE_PATH: '.autodev/memories/.mcp-graph.json',
|
|
64
|
+
},
|
|
65
|
+
tools: ['*'],
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: 'playwright',
|
|
69
|
+
command: 'npx',
|
|
70
|
+
args: ['-y', '@playwright/mcp@latest'],
|
|
71
|
+
tools: ['*'],
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
name: 'sequential-thinking',
|
|
75
|
+
command: 'npx',
|
|
76
|
+
args: ['-y', '@modelcontextprotocol/server-sequential-thinking'],
|
|
77
|
+
tools: ['*'],
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
name: 'computer-use-mcp',
|
|
81
|
+
command: 'npx',
|
|
82
|
+
args: ['-y', 'computer-use-mcp'],
|
|
83
|
+
tools: ['*'],
|
|
84
|
+
},
|
|
85
|
+
];
|
|
86
|
+
// ---------------------------------------------------------------------------
|
|
87
|
+
// Path helpers
|
|
88
|
+
// ---------------------------------------------------------------------------
|
|
89
|
+
function claudeConfigPath() {
|
|
90
|
+
// Claude CLI reads mcpServers from ~/.claude/settings.json
|
|
91
|
+
return path.join(os.homedir(), '.claude', 'settings.json');
|
|
92
|
+
}
|
|
93
|
+
/** ~/.claude.json — stores per-project enabledMcpjsonServers */
|
|
94
|
+
function claudeDotJsonPath() {
|
|
95
|
+
return path.join(os.homedir(), '.claude.json');
|
|
96
|
+
}
|
|
97
|
+
function copilotConfigPath() {
|
|
98
|
+
return path.join(os.homedir(), '.copilot', 'mcp-config.json');
|
|
99
|
+
}
|
|
100
|
+
function opencodeConfigPath() {
|
|
101
|
+
// Windows: %APPDATA%\opencode\config.json
|
|
102
|
+
// Linux/macOS: ~/.config/opencode/config.json
|
|
103
|
+
const base = process.platform === 'win32'
|
|
104
|
+
? (process.env['APPDATA'] ?? path.join(os.homedir(), 'AppData', 'Roaming'))
|
|
105
|
+
: path.join(os.homedir(), '.config');
|
|
106
|
+
return path.join(base, 'opencode', 'config.json');
|
|
107
|
+
}
|
|
108
|
+
// ---------------------------------------------------------------------------
|
|
109
|
+
// Generic JSON read / write helpers
|
|
110
|
+
// ---------------------------------------------------------------------------
|
|
111
|
+
function readJson(filePath, fallback) {
|
|
112
|
+
try {
|
|
113
|
+
if (fs.existsSync(filePath)) {
|
|
114
|
+
return JSON.parse(fs.readFileSync(filePath, 'utf8'));
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch { /* treat missing / corrupt file as empty */ }
|
|
118
|
+
return fallback;
|
|
119
|
+
}
|
|
120
|
+
function writeJson(filePath, data) {
|
|
121
|
+
const dir = path.dirname(filePath);
|
|
122
|
+
if (!fs.existsSync(dir)) {
|
|
123
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
124
|
+
}
|
|
125
|
+
fs.writeFileSync(filePath, JSON.stringify(data, null, 2) + '\n', 'utf8');
|
|
126
|
+
}
|
|
127
|
+
// ---------------------------------------------------------------------------
|
|
128
|
+
// Per-provider read / write
|
|
129
|
+
// ---------------------------------------------------------------------------
|
|
130
|
+
function readClaudeServers() {
|
|
131
|
+
const cfg = readJson(claudeConfigPath(), {});
|
|
132
|
+
const result = {};
|
|
133
|
+
for (const [name, s] of Object.entries(cfg.mcpServers ?? {})) {
|
|
134
|
+
result[name] = {
|
|
135
|
+
name,
|
|
136
|
+
command: s.command,
|
|
137
|
+
args: s.args ?? [],
|
|
138
|
+
...(s.env ? { env: s.env } : {}),
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
return result;
|
|
142
|
+
}
|
|
143
|
+
function writeClaudeServers(servers) {
|
|
144
|
+
const cfg = readJson(claudeConfigPath(), {});
|
|
145
|
+
cfg.mcpServers = {};
|
|
146
|
+
for (const [name, s] of Object.entries(servers)) {
|
|
147
|
+
cfg.mcpServers[name] = {
|
|
148
|
+
command: s.command,
|
|
149
|
+
args: s.args,
|
|
150
|
+
...(s.env ? { env: s.env } : {}),
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
writeJson(claudeConfigPath(), cfg);
|
|
154
|
+
}
|
|
155
|
+
function readCopilotServers() {
|
|
156
|
+
const cfg = readJson(copilotConfigPath(), {});
|
|
157
|
+
const result = {};
|
|
158
|
+
for (const [name, s] of Object.entries(cfg.mcpServers ?? {})) {
|
|
159
|
+
result[name] = {
|
|
160
|
+
name,
|
|
161
|
+
command: s.command,
|
|
162
|
+
args: s.args ?? [],
|
|
163
|
+
...(s.env ? { env: s.env } : {}),
|
|
164
|
+
tools: s.tools ?? ['*'],
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
return result;
|
|
168
|
+
}
|
|
169
|
+
function writeCopilotServers(servers) {
|
|
170
|
+
const cfg = readJson(copilotConfigPath(), {});
|
|
171
|
+
cfg.mcpServers = {};
|
|
172
|
+
for (const [name, s] of Object.entries(servers)) {
|
|
173
|
+
cfg.mcpServers[name] = {
|
|
174
|
+
type: 'local',
|
|
175
|
+
command: s.command,
|
|
176
|
+
args: s.args,
|
|
177
|
+
env: s.env ?? {},
|
|
178
|
+
tools: s.tools ?? ['*'],
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
writeJson(copilotConfigPath(), cfg);
|
|
182
|
+
}
|
|
183
|
+
function readOpenCodeServers() {
|
|
184
|
+
const cfg = readJson(opencodeConfigPath(), {});
|
|
185
|
+
const result = {};
|
|
186
|
+
for (const [name, s] of Object.entries(cfg.mcp ?? {})) {
|
|
187
|
+
const [command, ...args] = s.command;
|
|
188
|
+
result[name] = {
|
|
189
|
+
name,
|
|
190
|
+
command: command ?? '',
|
|
191
|
+
args,
|
|
192
|
+
...(s.environment ? { env: s.environment } : s['env'] ? { env: s['env'] } : {}),
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
return result;
|
|
196
|
+
}
|
|
197
|
+
function writeOpenCodeServers(servers) {
|
|
198
|
+
const cfg = readJson(opencodeConfigPath(), {});
|
|
199
|
+
cfg.mcp = {};
|
|
200
|
+
for (const [name, s] of Object.entries(servers)) {
|
|
201
|
+
const entry = {
|
|
202
|
+
type: 'local',
|
|
203
|
+
command: [s.command, ...s.args],
|
|
204
|
+
enabled: true,
|
|
205
|
+
};
|
|
206
|
+
if (s.env && Object.keys(s.env).length > 0) {
|
|
207
|
+
entry.environment = s.env;
|
|
208
|
+
}
|
|
209
|
+
cfg.mcp[name] = entry;
|
|
210
|
+
}
|
|
211
|
+
// Remove any legacy top-level keys that opencode no longer accepts
|
|
212
|
+
// (e.g. "env" was renamed to "environment" in the mcp server schema).
|
|
213
|
+
for (const server of Object.values(cfg.mcp)) {
|
|
214
|
+
const s = server;
|
|
215
|
+
delete s['env'];
|
|
216
|
+
}
|
|
217
|
+
writeJson(opencodeConfigPath(), cfg);
|
|
218
|
+
}
|
|
219
|
+
const ALL_PROVIDERS = ['claude-cli', 'copilot-cli', 'opencode-cli'];
|
|
220
|
+
class McpServerManager {
|
|
221
|
+
// -------------------------------------------------------------------------
|
|
222
|
+
// Path accessors (static, for display/info purposes)
|
|
223
|
+
// -------------------------------------------------------------------------
|
|
224
|
+
static configPathFor(provider) {
|
|
225
|
+
if (provider === 'claude-cli') {
|
|
226
|
+
return claudeConfigPath();
|
|
227
|
+
}
|
|
228
|
+
if (provider === 'copilot-cli') {
|
|
229
|
+
return copilotConfigPath();
|
|
230
|
+
}
|
|
231
|
+
/* opencode-cli */ return opencodeConfigPath();
|
|
232
|
+
}
|
|
233
|
+
// -------------------------------------------------------------------------
|
|
234
|
+
// Per-provider read
|
|
235
|
+
// -------------------------------------------------------------------------
|
|
236
|
+
static readServers(provider) {
|
|
237
|
+
if (provider === 'claude-cli') {
|
|
238
|
+
return readClaudeServers();
|
|
239
|
+
}
|
|
240
|
+
if (provider === 'copilot-cli') {
|
|
241
|
+
return readCopilotServers();
|
|
242
|
+
}
|
|
243
|
+
/* opencode-cli */ return readOpenCodeServers();
|
|
244
|
+
}
|
|
245
|
+
// -------------------------------------------------------------------------
|
|
246
|
+
// Per-provider write (replaces all servers for that provider)
|
|
247
|
+
// -------------------------------------------------------------------------
|
|
248
|
+
static writeServers(provider, servers) {
|
|
249
|
+
if (provider === 'claude-cli') {
|
|
250
|
+
writeClaudeServers(servers);
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
if (provider === 'copilot-cli') {
|
|
254
|
+
writeCopilotServers(servers);
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
/* opencode-cli */ writeOpenCodeServers(servers);
|
|
258
|
+
}
|
|
259
|
+
// -------------------------------------------------------------------------
|
|
260
|
+
// Unified list — union of servers across all providers
|
|
261
|
+
// -------------------------------------------------------------------------
|
|
262
|
+
static listAll() {
|
|
263
|
+
const merged = {};
|
|
264
|
+
for (const provider of ALL_PROVIDERS) {
|
|
265
|
+
for (const [name, entry] of Object.entries(McpServerManager.readServers(provider))) {
|
|
266
|
+
if (!merged[name]) {
|
|
267
|
+
merged[name] = entry;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return Object.values(merged);
|
|
272
|
+
}
|
|
273
|
+
// -------------------------------------------------------------------------
|
|
274
|
+
// Add a server to all providers (or a specific subset)
|
|
275
|
+
// -------------------------------------------------------------------------
|
|
276
|
+
static addServer(entry, targets = ALL_PROVIDERS) {
|
|
277
|
+
for (const provider of targets) {
|
|
278
|
+
const servers = McpServerManager.readServers(provider);
|
|
279
|
+
servers[entry.name] = entry;
|
|
280
|
+
McpServerManager.writeServers(provider, servers);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
// -------------------------------------------------------------------------
|
|
284
|
+
// Remove a server from all providers (or a specific subset)
|
|
285
|
+
// -------------------------------------------------------------------------
|
|
286
|
+
static removeServer(name, targets = ALL_PROVIDERS) {
|
|
287
|
+
for (const provider of targets) {
|
|
288
|
+
const servers = McpServerManager.readServers(provider);
|
|
289
|
+
if (name in servers) {
|
|
290
|
+
delete servers[name];
|
|
291
|
+
McpServerManager.writeServers(provider, servers);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
// -------------------------------------------------------------------------
|
|
296
|
+
// Sync a full list of servers to all providers (replaces existing entries)
|
|
297
|
+
// -------------------------------------------------------------------------
|
|
298
|
+
static syncAll(servers, targets = ALL_PROVIDERS) {
|
|
299
|
+
const map = {};
|
|
300
|
+
for (const s of servers) {
|
|
301
|
+
map[s.name] = s;
|
|
302
|
+
}
|
|
303
|
+
for (const provider of targets) {
|
|
304
|
+
McpServerManager.writeServers(provider, map);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
// -------------------------------------------------------------------------
|
|
308
|
+
// Add defaults — only inserts entries that aren't already present
|
|
309
|
+
// -------------------------------------------------------------------------
|
|
310
|
+
static addDefaults(targets = ALL_PROVIDERS, log) {
|
|
311
|
+
for (const server of exports.DEFAULT_MCP_SERVERS) {
|
|
312
|
+
for (const provider of targets) {
|
|
313
|
+
const current = McpServerManager.readServers(provider);
|
|
314
|
+
if (!current[server.name]) {
|
|
315
|
+
current[server.name] = server;
|
|
316
|
+
McpServerManager.writeServers(provider, current);
|
|
317
|
+
log?.(`MCP: added '${server.name}' to ${provider}`);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
// -------------------------------------------------------------------------
|
|
323
|
+
// enableForClaudeProject — writes enabledMcpjsonServers into ~/.claude.json
|
|
324
|
+
// under projects[workspaceRoot] so Claude Code actually loads them.
|
|
325
|
+
// See: https://github.com/anthropics/claude-code/issues/24657
|
|
326
|
+
// -------------------------------------------------------------------------
|
|
327
|
+
static enableForClaudeProject(workspaceRoot, serverNames, log) {
|
|
328
|
+
const dotJson = readJson(claudeDotJsonPath(), {});
|
|
329
|
+
dotJson.projects ??= {};
|
|
330
|
+
const proj = dotJson.projects[workspaceRoot] ?? {};
|
|
331
|
+
const existing = new Set(proj.enabledMcpjsonServers ?? []);
|
|
332
|
+
const added = [];
|
|
333
|
+
for (const name of serverNames) {
|
|
334
|
+
if (!existing.has(name)) {
|
|
335
|
+
existing.add(name);
|
|
336
|
+
added.push(name);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
if (added.length === 0) {
|
|
340
|
+
return;
|
|
341
|
+
}
|
|
342
|
+
proj.enabledMcpjsonServers = [...existing];
|
|
343
|
+
dotJson.projects[workspaceRoot] = proj;
|
|
344
|
+
writeJson(claudeDotJsonPath(), dotJson);
|
|
345
|
+
log?.(`MCP: enabled [${added.join(', ')}] for Claude project ${workspaceRoot}`);
|
|
346
|
+
}
|
|
347
|
+
// -------------------------------------------------------------------------
|
|
348
|
+
// disableAttribution — removes "Co-Authored-By" / "Generated with Claude Code"
|
|
349
|
+
// footers by writing attribution settings to .claude/settings.json in the
|
|
350
|
+
// project root.
|
|
351
|
+
// -------------------------------------------------------------------------
|
|
352
|
+
static disableAttribution(workspaceRoot, log) {
|
|
353
|
+
const settingsPath = path.join(workspaceRoot, '.claude', 'settings.json');
|
|
354
|
+
const cfg = readJson(settingsPath, {});
|
|
355
|
+
cfg.attribution = { commit: '', pr: '' };
|
|
356
|
+
cfg.includeCoAuthoredBy = false;
|
|
357
|
+
writeJson(settingsPath, cfg);
|
|
358
|
+
log?.(`MCP: wrote attribution=off to ${settingsPath}`);
|
|
359
|
+
}
|
|
360
|
+
// -------------------------------------------------------------------------
|
|
361
|
+
// addDefaultsAndEnable — addDefaults + enableForClaudeProject in one call
|
|
362
|
+
// -------------------------------------------------------------------------
|
|
363
|
+
static addDefaultsAndEnable(workspaceRoot, targets = ALL_PROVIDERS, log) {
|
|
364
|
+
McpServerManager.addDefaults(targets, log);
|
|
365
|
+
if (targets.includes('claude-cli')) {
|
|
366
|
+
McpServerManager.enableForClaudeProject(workspaceRoot, exports.DEFAULT_MCP_SERVERS.map(s => s.name), log);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
exports.McpServerManager = McpServerManager;
|
|
371
|
+
//# sourceMappingURL=mcpManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcpManager.js","sourceRoot":"","sources":["../src/mcpManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Task } from './todo';
|
|
2
|
+
/** Agent profile instructions written for each task run */
|
|
3
|
+
export declare const AGENT_PROFILE_FILE = ".autodev/AGENT_PROFILE.md";
|
|
4
|
+
/** Directory where per-task message files are stored */
|
|
5
|
+
export declare const MESSAGES_DIR = ".autodev/messages";
|
|
6
|
+
/** Directory where attachments are saved, grouped by timestamp+hash */
|
|
7
|
+
export declare const ATTACHMENTS_DIR = ".autodev/messages/attachments";
|
|
8
|
+
export interface ProfileMeta {
|
|
9
|
+
title?: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
/** When true, the task instruction omits the commit step */
|
|
12
|
+
noCommit?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Parse YAML-like frontmatter from a markdown file.
|
|
16
|
+
* Returns metadata and the body with frontmatter stripped.
|
|
17
|
+
*/
|
|
18
|
+
export declare function parseFrontmatter(content: string): {
|
|
19
|
+
meta: ProfileMeta;
|
|
20
|
+
body: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Save an attachment to `.autodev/messages/attachments/<groupId>/filename`.
|
|
24
|
+
* If `groupId` is omitted a new `<timestamp>_<hex>` folder is created.
|
|
25
|
+
* Returns the workspace-relative forward-slash path (suitable for embedding in .md).
|
|
26
|
+
*/
|
|
27
|
+
export declare function saveAttachment(workspaceRoot: string, filename: string, data: Buffer | string, groupId?: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* Write arbitrary content to a timestamped message file and return the full path.
|
|
30
|
+
* Used for reminder/check-in messages that bypass buildMessage().
|
|
31
|
+
*/
|
|
32
|
+
export declare function writeMessageFile(root: string, content: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* Builds the agent message for a task, writing two separate files:
|
|
35
|
+
* - `.autodev/AGENT_PROFILE.md` — profile instructions (frontmatter stripped)
|
|
36
|
+
* - `.autodev/messages/MESSAGE_<timestamp>.md` — task + current TODO
|
|
37
|
+
*
|
|
38
|
+
* Returns `{ prompt, messageFile }` where `prompt` is the combined string for UI
|
|
39
|
+
* providers that cannot read files via @-references, and `messageFile` is the
|
|
40
|
+
* absolute path of the written message file for CLI providers.
|
|
41
|
+
*/
|
|
42
|
+
/**
|
|
43
|
+
* Assembles and writes `.autodev/AGENT_PROFILE.md` from the currently enabled
|
|
44
|
+
* profile sections + any active MCP protocol injections. Also deploys / removes
|
|
45
|
+
* Claude skill files for enabled / disabled MCPs.
|
|
46
|
+
*
|
|
47
|
+
* Called directly from the sidebar "Save & Rebuild Profile" button so the file
|
|
48
|
+
* is updated immediately without waiting for a task run.
|
|
49
|
+
*/
|
|
50
|
+
export declare function rebuildProfile(root: string): void;
|
|
51
|
+
export declare function buildMessage(task: Task, root: string, todoDir: string, includeProfile?: boolean): {
|
|
52
|
+
prompt: string;
|
|
53
|
+
messageFile: string;
|
|
54
|
+
};
|