@hileeon/mcc 0.1.8 → 0.2.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 +229 -127
- package/dist/accounts/store.d.ts +12 -0
- package/dist/accounts/store.d.ts.map +1 -1
- package/dist/accounts/store.js.map +1 -1
- package/dist/commands/launch.d.ts +9 -0
- package/dist/commands/launch.d.ts.map +1 -0
- package/dist/commands/launch.js +162 -0
- package/dist/commands/launch.js.map +1 -0
- package/dist/commands/mcp.d.ts +9 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +112 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/profile-test.d.ts +17 -0
- package/dist/commands/profile-test.d.ts.map +1 -0
- package/dist/commands/profile-test.js +188 -0
- package/dist/commands/profile-test.js.map +1 -0
- package/dist/commands/profile.d.ts +8 -0
- package/dist/commands/profile.d.ts.map +1 -0
- package/dist/commands/profile.js +125 -0
- package/dist/commands/profile.js.map +1 -0
- package/dist/core/model-router.d.ts.map +1 -1
- package/dist/core/model-router.js +36 -3
- package/dist/core/model-router.js.map +1 -1
- package/dist/{dashboard-server.d.ts → dashboard/server.d.ts} +1 -1
- package/dist/dashboard/server.d.ts.map +1 -0
- package/dist/{dashboard-server.js → dashboard/server.js} +254 -48
- package/dist/dashboard/server.js.map +1 -0
- package/dist/mcc.d.ts +4 -2
- package/dist/mcc.d.ts.map +1 -1
- package/dist/mcc.js +127 -408
- package/dist/mcc.js.map +1 -1
- package/dist/mcp/installer.d.ts.map +1 -1
- package/dist/mcp/installer.js +5 -2
- package/dist/mcp/installer.js.map +1 -1
- package/dist/mcp/mcp-config.d.ts +33 -3
- package/dist/mcp/mcp-config.d.ts.map +1 -1
- package/dist/mcp/mcp-config.js +81 -29
- package/dist/mcp/mcp-config.js.map +1 -1
- package/dist/proxy/proxy-daemon.d.ts +1 -1
- package/dist/proxy/proxy-daemon.d.ts.map +1 -1
- package/dist/proxy/proxy-daemon.js +27 -7
- package/dist/proxy/proxy-daemon.js.map +1 -1
- package/dist/proxy/proxy-entry.js +11 -4
- package/dist/proxy/proxy-entry.js.map +1 -1
- package/dist/proxy/proxy-paths.d.ts +1 -0
- package/dist/proxy/proxy-paths.d.ts.map +1 -1
- package/dist/proxy/proxy-paths.js.map +1 -1
- package/dist/proxy/proxy-server.d.ts +1 -0
- package/dist/proxy/proxy-server.d.ts.map +1 -1
- package/dist/proxy/proxy-server.js +114 -6
- package/dist/proxy/proxy-server.js.map +1 -1
- package/dist/shared/config.d.ts +15 -0
- package/dist/shared/config.d.ts.map +1 -0
- package/dist/shared/config.js +79 -0
- package/dist/shared/config.js.map +1 -0
- package/dist/shared/logger.d.ts +23 -18
- package/dist/shared/logger.d.ts.map +1 -1
- package/dist/shared/logger.js +17 -178
- package/dist/shared/logger.js.map +1 -1
- package/dist/shared/provider-preset-catalog.d.ts +8 -2
- package/dist/shared/provider-preset-catalog.d.ts.map +1 -1
- package/dist/shared/provider-preset-catalog.js +61 -31
- package/dist/shared/provider-preset-catalog.js.map +1 -1
- package/dist/shared/test-image.d.ts +15 -0
- package/dist/shared/test-image.d.ts.map +1 -0
- package/dist/shared/test-image.js +89 -0
- package/dist/shared/test-image.js.map +1 -0
- package/dist/ui/assets/index-7kowlJw9.js +40 -0
- package/dist/ui/assets/index-DnC-lskL.css +1 -0
- package/dist/ui/index.html +21 -13
- package/dist/update.d.ts +31 -0
- package/dist/update.d.ts.map +1 -0
- package/dist/update.js +196 -0
- package/dist/update.js.map +1 -0
- package/lib/mcp/mcc-image-analysis-server.cjs +454 -454
- package/lib/mcp/mcc-websearch-server.cjs +339 -339
- package/lib/mcp-hooks/image-analysis-runtime.cjs +563 -510
- package/lib/mcp-hooks/image-analyzer-transformer.cjs +526 -526
- package/lib/mcp-hooks/websearch-transformer.cjs +1597 -1421
- package/lib/proxy/config/config-loader-facade.js +24 -24
- package/lib/proxy/glmt/delta-accumulator.js +362 -362
- package/lib/proxy/glmt/glmt-transformer.js +203 -203
- package/lib/proxy/glmt/index.js +40 -40
- package/lib/proxy/glmt/locale-enforcer.js +68 -68
- package/lib/proxy/glmt/pipeline/content-transformer.js +161 -161
- package/lib/proxy/glmt/pipeline/index.js +19 -19
- package/lib/proxy/glmt/pipeline/request-transformer.js +115 -115
- package/lib/proxy/glmt/pipeline/response-builder.js +204 -204
- package/lib/proxy/glmt/pipeline/stream-parser.js +233 -233
- package/lib/proxy/glmt/pipeline/tool-call-handler.js +77 -77
- package/lib/proxy/glmt/pipeline/types.js +5 -5
- package/lib/proxy/glmt/reasoning-enforcer.js +150 -150
- package/lib/proxy/glmt/sse-parser.js +101 -101
- package/lib/proxy/services/logging.js +13 -13
- package/lib/proxy/transformers/request-transformer.js +471 -471
- package/lib/proxy/transformers/sse-stream-transformer.js +198 -198
- package/lib/shared/logger.cjs +160 -138
- package/package.json +58 -41
- package/dist/dashboard-server.d.ts.map +0 -1
- package/dist/dashboard-server.js.map +0 -1
- package/dist/ui/assets/index-B16lhKZ6.js +0 -40
- package/dist/ui/assets/index-jEfiB6-h.css +0 -1
package/dist/mcc.js
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* MCC - My Cloud Code
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
6
|
+
* CLI entry point: parses argv, prints help/version, dispatches to command
|
|
7
|
+
* modules under src/commands/ (and the dashboard subprocess). Business logic
|
|
8
|
+
* lives in those modules, not here.
|
|
8
9
|
*/
|
|
9
10
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
11
|
if (k2 === undefined) k2 = k;
|
|
@@ -39,443 +40,161 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
39
40
|
return result;
|
|
40
41
|
};
|
|
41
42
|
})();
|
|
42
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
43
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
44
|
-
};
|
|
45
43
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
-
const child_process_1 = require("child_process");
|
|
47
44
|
const path = __importStar(require("path"));
|
|
48
|
-
const picocolors_1 = __importDefault(require("picocolors"));
|
|
49
|
-
const store_1 = require("./accounts/store");
|
|
50
|
-
const instance_manager_1 = require("./accounts/instance-manager");
|
|
51
|
-
const model_router_1 = require("./core/model-router");
|
|
52
45
|
const installer_1 = require("./mcp/installer");
|
|
53
|
-
const
|
|
54
|
-
const
|
|
55
|
-
const
|
|
56
|
-
const
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
46
|
+
const update_1 = require("./update");
|
|
47
|
+
const launch_1 = require("./commands/launch");
|
|
48
|
+
const profile_1 = require("./commands/profile");
|
|
49
|
+
const profile_test_1 = require("./commands/profile-test");
|
|
50
|
+
const mcp_1 = require("./commands/mcp");
|
|
51
|
+
function readPkgVersion() {
|
|
52
|
+
try {
|
|
53
|
+
return require(path.join(__dirname, '..', 'package.json')).version;
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return '0.0.0';
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const PKG_VERSION = readPkgVersion();
|
|
60
60
|
function showVersion() {
|
|
61
61
|
console.log(`@hileeon/mcc ${PKG_VERSION}`);
|
|
62
62
|
}
|
|
63
63
|
function showHelp() {
|
|
64
|
-
console.log(`
|
|
65
|
-
MCC - My Cloud Code
|
|
66
|
-
|
|
67
|
-
Usage: mcc [mcc-options] <profile> [claude-options...]
|
|
68
|
-
|
|
69
|
-
<profile> Profile name to launch (required)
|
|
70
|
-
[claude-options...] All options after profile are passed directly to Claude Code
|
|
71
|
-
|
|
72
|
-
MCC Options:
|
|
73
|
-
-h, --help Show this help
|
|
74
|
-
-v, --version Show version number
|
|
75
|
-
-- Explicit separator (everything after is for Claude Code)
|
|
76
|
-
|
|
77
|
-
Note: All flags after <profile> are passed directly to Claude Code.
|
|
78
|
-
|
|
79
|
-
Debug logging: MCC_LOG_LEVEL=debug node dist/mcc.js deepseek
|
|
80
|
-
|
|
81
|
-
Examples:
|
|
82
|
-
mcc deepseek Interactive session
|
|
83
|
-
mcc deepseek --print "hello" Non-interactive
|
|
84
|
-
mcc deepseek --print "hello" --verbose Claude Code verbose mode
|
|
85
|
-
|
|
86
|
-
mcc profile add prod --base-url https://api.deepseek.com/anthropic --api-key sk-xxxx --model deepseek-chat
|
|
87
|
-
mcc profile list
|
|
88
|
-
mcc
|
|
64
|
+
console.log(`
|
|
65
|
+
MCC - My Cloud Code
|
|
66
|
+
|
|
67
|
+
Usage: mcc [mcc-options] <profile> [claude-options...]
|
|
68
|
+
|
|
69
|
+
<profile> Profile name to launch (required)
|
|
70
|
+
[claude-options...] All options after profile are passed directly to Claude Code
|
|
71
|
+
|
|
72
|
+
MCC Options:
|
|
73
|
+
-h, --help Show this help
|
|
74
|
+
-v, --version Show version number
|
|
75
|
+
-- Explicit separator (everything after is for Claude Code)
|
|
76
|
+
|
|
77
|
+
Note: All flags after <profile> are passed directly to Claude Code.
|
|
78
|
+
|
|
79
|
+
Debug logging: MCC_LOG_LEVEL=debug node dist/mcc.js deepseek
|
|
80
|
+
|
|
81
|
+
Examples:
|
|
82
|
+
mcc deepseek Interactive session
|
|
83
|
+
mcc deepseek --print "hello" Non-interactive
|
|
84
|
+
mcc deepseek --print "hello" --verbose Claude Code verbose mode
|
|
85
|
+
|
|
86
|
+
mcc profile add prod --base-url https://api.deepseek.com/anthropic --api-key sk-xxxx --model deepseek-chat
|
|
87
|
+
mcc profile list
|
|
88
|
+
mcc profile test Health-check every profile (key + balance)
|
|
89
|
+
mcc profile test deepseek --vision Also probe whether its model sees images
|
|
90
|
+
mcc config Open the Web config dashboard
|
|
91
|
+
|
|
92
|
+
mcc update Upgrade mcc to the latest version
|
|
93
|
+
mcc update --check Check for a new version without installing
|
|
94
|
+
mcc update-check off Disable the "update available" reminder (default: on)
|
|
89
95
|
`.trim());
|
|
90
96
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}
|
|
104
|
-
process.exit(1);
|
|
105
|
-
}
|
|
106
|
-
const proto = profile.protocol || 'anthropic';
|
|
107
|
-
console.log(` ${picocolors_1.default.cyan(picocolors_1.default.bold('●'))} ${picocolors_1.default.bold(profileName)} ${picocolors_1.default.dim('·')} ${picocolors_1.default.cyan(profile.model)} ${picocolors_1.default.dim('·')} ${picocolors_1.default.dim(proto)}`);
|
|
108
|
-
const apiKey = (0, store_1.getProfileApiKey)(profileName);
|
|
109
|
-
if (!apiKey) {
|
|
110
|
-
console.error(`[!] No API key found for profile: ${profileName}`);
|
|
111
|
-
process.exit(1);
|
|
112
|
-
}
|
|
113
|
-
// Read MCP config early so we can display provider info
|
|
114
|
-
const mcpConfig = (0, mcp_config_1.readMcpConfig)();
|
|
115
|
-
const wsProviders = (0, mcp_config_1.getEnabledWebSearchProviders)(mcpConfig);
|
|
116
|
-
const iaProvider = (0, mcp_config_1.getActiveImageAnalysisProvider)(mcpConfig);
|
|
117
|
-
const instancePath = await instanceMgr.ensureInstance(profileName);
|
|
118
|
-
console.log(` ${picocolors_1.default.dim('instance')} ${picocolors_1.default.dim(instancePath)}`);
|
|
119
|
-
(0, installer_1.syncInstanceMcpServers)(instancePath, registry_1.BUILTIN_MCP_SERVERS.map((s) => s.name), profileName);
|
|
120
|
-
// Initialize logging session
|
|
121
|
-
const sessionId = (0, logger_1.makeSessionId)();
|
|
122
|
-
const mccHome = process.env.MCC_HOME ?? path.join(process.env.HOME ?? process.env.USERPROFILE ?? '~', '.mcc');
|
|
123
|
-
const logDir = path.join(mccHome, 'logs', profileName, sessionId);
|
|
124
|
-
(0, logger_1.init)(sessionId, logDir);
|
|
125
|
-
logger_1.log.info('MCC', `Session starting: ${profileName} | log: ${logDir}`);
|
|
126
|
-
console.log(` ${picocolors_1.default.dim('session')} ${picocolors_1.default.dim(sessionId)}`);
|
|
127
|
-
// MCP provider summary
|
|
128
|
-
if (wsProviders.length > 0) {
|
|
129
|
-
console.log(` ${picocolors_1.default.dim('websearch')} ${picocolors_1.default.dim(wsProviders.join(', '))}`);
|
|
130
|
-
}
|
|
131
|
-
else if (mcpConfig.websearch.enabled) {
|
|
132
|
-
console.log(` ${picocolors_1.default.dim('websearch')} ${picocolors_1.default.dim('none enabled')}`);
|
|
133
|
-
}
|
|
134
|
-
if (mcpConfig.imageAnalysis.enabled) {
|
|
135
|
-
if (iaProvider) {
|
|
136
|
-
console.log(` ${picocolors_1.default.dim('image')} ${picocolors_1.default.dim(iaProvider.id)} ${picocolors_1.default.dim('·')} ${picocolors_1.default.cyan(iaProvider.model)}`);
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
console.log(` ${picocolors_1.default.dim('image')} ${picocolors_1.default.dim('no active provider')}`);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
const env = (0, model_router_1.buildProfileEnv)(profile, apiKey, instancePath);
|
|
143
|
-
env.MCC_CURRENT_PROFILE = profileName;
|
|
144
|
-
env.MCC_LOG_SESSION_ID = sessionId;
|
|
145
|
-
env.MCC_LOG_DIR = logDir;
|
|
146
|
-
// Debug: key env vars (no secrets)
|
|
147
|
-
if ((0, logger_1.isDebugEnabled)()) {
|
|
148
|
-
const debugEnvs = [
|
|
149
|
-
['ANTHROPIC_BASE_URL', env.ANTHROPIC_BASE_URL],
|
|
150
|
-
['ANTHROPIC_MODEL', env.ANTHROPIC_MODEL],
|
|
151
|
-
['CLAUDE_CONFIG_DIR', env.CLAUDE_CONFIG_DIR],
|
|
152
|
-
['MCC_WEBSEARCH_ENABLED', env.MCC_WEBSEARCH_ENABLED || '0'],
|
|
153
|
-
['MCC_IMAGE_ANALYSIS_ENABLED', env.MCC_IMAGE_ANALYSIS_ENABLED || '0'],
|
|
154
|
-
];
|
|
155
|
-
if (env.ANTHROPIC_DEFAULT_OPUS_MODEL !== env.ANTHROPIC_MODEL)
|
|
156
|
-
debugEnvs.push(['ANTHROPIC_DEFAULT_OPUS_MODEL', env.ANTHROPIC_DEFAULT_OPUS_MODEL]);
|
|
157
|
-
if (env.ANTHROPIC_DEFAULT_SONNET_MODEL !== env.ANTHROPIC_MODEL)
|
|
158
|
-
debugEnvs.push(['ANTHROPIC_DEFAULT_SONNET_MODEL', env.ANTHROPIC_DEFAULT_SONNET_MODEL]);
|
|
159
|
-
if (env.ANTHROPIC_DEFAULT_HAIKU_MODEL !== env.ANTHROPIC_MODEL)
|
|
160
|
-
debugEnvs.push(['ANTHROPIC_DEFAULT_HAIKU_MODEL', env.ANTHROPIC_DEFAULT_HAIKU_MODEL]);
|
|
161
|
-
console.log(` ${picocolors_1.default.dim('---')}`);
|
|
162
|
-
for (const [k, v] of debugEnvs) {
|
|
163
|
-
console.log(` ${picocolors_1.default.dim('env')} ${picocolors_1.default.dim(k)}=${picocolors_1.default.dim(v)}`);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
// Start translation proxy for OpenAI-compatible profiles
|
|
167
|
-
if (profile.protocol === 'openai') {
|
|
168
|
-
try {
|
|
169
|
-
const proxyInfo = await (0, proxy_daemon_1.startProxy)(profileName, profile.baseUrl, apiKey, profile.model, profile.proxyChatCompletionsPath);
|
|
170
|
-
env.ANTHROPIC_BASE_URL = `http://127.0.0.1:${proxyInfo.port}`;
|
|
171
|
-
env.ANTHROPIC_AUTH_TOKEN = proxyInfo.authToken;
|
|
172
|
-
// MCP image analysis also needs to go through the proxy
|
|
173
|
-
env.MCC_IMAGE_ANALYSIS_RUNTIME_BASE_URL = `http://127.0.0.1:${proxyInfo.port}`;
|
|
174
|
-
env.MCC_IMAGE_ANALYSIS_RUNTIME_API_KEY = proxyInfo.authToken;
|
|
175
|
-
console.log(` ${picocolors_1.default.dim('proxy')} ${picocolors_1.default.cyan(`:${proxyInfo.port}`)}`);
|
|
176
|
-
}
|
|
177
|
-
catch (e) {
|
|
178
|
-
console.error(`[!] Failed to start translation proxy: ${e.message}`);
|
|
179
|
-
process.exit(1);
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
console.log(`\n ${picocolors_1.default.green('✓')} ${picocolors_1.default.bold('launching Claude Code')}`);
|
|
183
|
-
const remainingArgs = args.slice(1);
|
|
184
|
-
const child = (0, child_process_1.spawn)('claude', remainingArgs, {
|
|
185
|
-
env: { ...process.env, ...env },
|
|
186
|
-
stdio: 'inherit',
|
|
187
|
-
});
|
|
188
|
-
child.on('exit', (code) => process.exit(code ?? 0));
|
|
189
|
-
}
|
|
190
|
-
async function cmdProfileAdd(args) {
|
|
191
|
-
const name = args[0];
|
|
192
|
-
if (!name) {
|
|
193
|
-
console.error('[!] Usage: mcc profile add <name> --base-url <url> --api-key <key> --model <model> [--protocol anthropic|openai] [--opus-model <m>] [--sonnet-model <m>] [--haiku-model <m>]');
|
|
194
|
-
process.exit(1);
|
|
195
|
-
}
|
|
196
|
-
const getArg = (flag) => {
|
|
197
|
-
const idx = args.indexOf(flag);
|
|
198
|
-
return idx !== -1 ? args[idx + 1] : undefined;
|
|
199
|
-
};
|
|
200
|
-
const baseUrl = getArg('--base-url');
|
|
201
|
-
const apiKey = getArg('--api-key');
|
|
202
|
-
const model = getArg('--model') ?? 'claude-sonnet-4-6';
|
|
203
|
-
const protocol = getArg('--protocol') ?? 'anthropic';
|
|
204
|
-
const proxyChatCompletionsPath = getArg('--proxy-chat-completions-path');
|
|
205
|
-
if (!baseUrl || !apiKey) {
|
|
206
|
-
console.error('[!] --base-url and --api-key are required');
|
|
207
|
-
process.exit(1);
|
|
208
|
-
}
|
|
209
|
-
if (protocol !== 'anthropic' && protocol !== 'openai') {
|
|
210
|
-
console.error('[!] --protocol must be "anthropic" or "openai"');
|
|
211
|
-
process.exit(1);
|
|
212
|
-
}
|
|
213
|
-
const profile = {
|
|
214
|
-
name,
|
|
215
|
-
baseUrl,
|
|
216
|
-
model,
|
|
217
|
-
opusModel: getArg('--opus-model'),
|
|
218
|
-
sonnetModel: getArg('--sonnet-model'),
|
|
219
|
-
haikuModel: getArg('--haiku-model'),
|
|
220
|
-
protocol,
|
|
221
|
-
proxyChatCompletionsPath: proxyChatCompletionsPath || undefined,
|
|
222
|
-
createdAt: new Date().toISOString(),
|
|
223
|
-
};
|
|
224
|
-
(0, store_1.saveProfile)(profile, apiKey);
|
|
225
|
-
await instanceMgr.ensureInstance(name);
|
|
226
|
-
const instancePath = instanceMgr.getInstancePath(name);
|
|
227
|
-
(0, installer_1.syncInstanceMcpServers)(instancePath, registry_1.BUILTIN_MCP_SERVERS.map((s) => s.name), name);
|
|
228
|
-
console.log(`[OK] Profile created: ${name}`);
|
|
229
|
-
console.log(` Base URL: ${baseUrl}`);
|
|
230
|
-
console.log(` Model: ${model}`);
|
|
231
|
-
console.log(` Protocol: ${protocol}`);
|
|
232
|
-
if (profile.opusModel)
|
|
233
|
-
console.log(` Opus: ${profile.opusModel}`);
|
|
234
|
-
if (profile.sonnetModel)
|
|
235
|
-
console.log(` Sonnet: ${profile.sonnetModel}`);
|
|
236
|
-
if (profile.haikuModel)
|
|
237
|
-
console.log(` Haiku: ${profile.haikuModel}`);
|
|
238
|
-
if (profile.proxyChatCompletionsPath)
|
|
239
|
-
console.log(` Proxy chat path: ${profile.proxyChatCompletionsPath}`);
|
|
240
|
-
}
|
|
241
|
-
async function cmdProfileList() {
|
|
242
|
-
const profiles = (0, store_1.listProfiles)();
|
|
243
|
-
const defaultProfile = (0, store_1.getDefaultProfile)();
|
|
244
|
-
if (profiles.length === 0) {
|
|
245
|
-
console.log('[i] No profiles. Run: mcc profile add <name> --base-url <url> --api-key <key> --model <model>');
|
|
246
|
-
return;
|
|
247
|
-
}
|
|
248
|
-
console.log('Profiles:');
|
|
249
|
-
for (const p of profiles) {
|
|
250
|
-
const marker = p.name === defaultProfile ? ' (default)' : '';
|
|
251
|
-
console.log(` ${p.name}${marker}`);
|
|
252
|
-
console.log(` Base URL: ${p.baseUrl}`);
|
|
253
|
-
console.log(` Model: ${p.model}`);
|
|
254
|
-
console.log(` Protocol: ${p.protocol || 'anthropic'}`);
|
|
255
|
-
if (p.opusModel)
|
|
256
|
-
console.log(` Opus: ${p.opusModel}`);
|
|
257
|
-
if (p.sonnetModel)
|
|
258
|
-
console.log(` Sonnet: ${p.sonnetModel}`);
|
|
259
|
-
if (p.haikuModel)
|
|
260
|
-
console.log(` Haiku: ${p.haikuModel}`);
|
|
261
|
-
if (p.proxyChatCompletionsPath)
|
|
262
|
-
console.log(` Proxy chat path: ${p.proxyChatCompletionsPath}`);
|
|
263
|
-
console.log();
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
async function cmdProfileRemove(args) {
|
|
267
|
-
const name = args[0];
|
|
268
|
-
if (!name) {
|
|
269
|
-
console.error('[!] Usage: mcc profile remove <name>');
|
|
270
|
-
process.exit(1);
|
|
271
|
-
}
|
|
272
|
-
if (!(0, store_1.hasProfile)(name)) {
|
|
273
|
-
console.error(`[!] Profile not found: ${name}`);
|
|
274
|
-
process.exit(1);
|
|
275
|
-
}
|
|
276
|
-
(0, store_1.deleteProfile)(name);
|
|
277
|
-
await instanceMgr.deleteInstance(name);
|
|
278
|
-
console.log(`[OK] Profile removed: ${name}`);
|
|
97
|
+
/**
|
|
98
|
+
* Start the config dashboard server in this same process.
|
|
99
|
+
*
|
|
100
|
+
* Implemented as a dynamic import (not a child_process spawn) so it works
|
|
101
|
+
* uniformly whether mcc.ts is being executed by tsx (src/*.ts) or by node
|
|
102
|
+
* (dist/*.js) — child_process would have to pick a file path and one of
|
|
103
|
+
* the two modes would always be missing the file. Same process is fine
|
|
104
|
+
* because the dashboard server is the long-running thing anyway and we
|
|
105
|
+
* have nothing to do after it boots.
|
|
106
|
+
*/
|
|
107
|
+
async function spawnConfigDashboard() {
|
|
108
|
+
await Promise.resolve().then(() => __importStar(require('./dashboard/server')));
|
|
279
109
|
}
|
|
280
|
-
async function
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
110
|
+
async function dispatchProfile(args) {
|
|
111
|
+
switch (args[0]) {
|
|
112
|
+
case 'add':
|
|
113
|
+
await (0, profile_1.cmdProfileAdd)(args.slice(1));
|
|
114
|
+
break;
|
|
115
|
+
case 'list':
|
|
116
|
+
await (0, profile_1.cmdProfileList)();
|
|
117
|
+
break;
|
|
118
|
+
case 'test':
|
|
119
|
+
await (0, profile_test_1.cmdProfileTest)(args.slice(1));
|
|
120
|
+
break;
|
|
121
|
+
case 'remove':
|
|
122
|
+
await (0, profile_1.cmdProfileRemove)(args.slice(1));
|
|
123
|
+
break;
|
|
124
|
+
case 'default':
|
|
125
|
+
await (0, profile_1.cmdProfileDefault)(args.slice(1));
|
|
126
|
+
break;
|
|
127
|
+
default:
|
|
128
|
+
console.error(`[!] Unknown profile command: ${args[0]}`);
|
|
129
|
+
showHelp();
|
|
285
130
|
process.exit(1);
|
|
286
|
-
}
|
|
287
|
-
(0, store_1.setDefaultProfile)(name);
|
|
288
|
-
console.log(`[OK] Default profile set: ${name}`);
|
|
289
|
-
}
|
|
290
|
-
else {
|
|
291
|
-
const defaultProf = (0, store_1.getDefaultProfile)();
|
|
292
|
-
console.log(defaultProf ? `Default profile: ${defaultProf}` : '[i] No default profile set');
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
async function cmdMcpList() {
|
|
296
|
-
const servers = (0, registry_1.getAllServers)();
|
|
297
|
-
console.log('MCP Servers:');
|
|
298
|
-
for (const s of servers) {
|
|
299
|
-
const isBuiltin = 'config' in s;
|
|
300
|
-
const marker = isBuiltin && s.enabledByDefault ? ' (builtin, default)' : isBuiltin ? ' (builtin)' : '';
|
|
301
|
-
console.log(` ${s.name}${marker}`);
|
|
302
|
-
console.log(` ${s.displayName}: ${s.description}`);
|
|
303
|
-
if (!isBuiltin) {
|
|
304
|
-
const ext = s;
|
|
305
|
-
console.log(` Command: ${ext.command} ${ext.args.join(' ')}`);
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
async function cmdMcpAdd(args) {
|
|
310
|
-
const getArg = (flag) => {
|
|
311
|
-
const idx = args.indexOf(flag);
|
|
312
|
-
return idx !== -1 ? args[idx + 1] : undefined;
|
|
313
|
-
};
|
|
314
|
-
const getBoolArg = (flag) => args.includes(flag);
|
|
315
|
-
const name = getArg('--name');
|
|
316
|
-
const displayName = getArg('--display-name') ?? name ?? '';
|
|
317
|
-
const description = getArg('--description') ?? '';
|
|
318
|
-
const command = getArg('--command') ?? 'uvx';
|
|
319
|
-
const argsStr = getArg('--args') ?? '';
|
|
320
|
-
const argsList = argsStr ? argsStr.split(',').map((s) => s.trim()) : [];
|
|
321
|
-
const providerRef = getArg('--provider-ref');
|
|
322
|
-
const enabledByDefault = getBoolArg('--enabled-by-default');
|
|
323
|
-
if (!name || !command) {
|
|
324
|
-
console.error('[!] --name and --command are required');
|
|
325
|
-
console.error(' Usage: mcc mcp add --name <id> --command <cmd> --args "<arg1>,<arg2>" [--display-name <name>] [--description <desc>] [--provider-ref <provider>] [--enabled-by-default]');
|
|
326
|
-
process.exit(1);
|
|
327
|
-
}
|
|
328
|
-
const envVars = {};
|
|
329
|
-
if (providerRef) {
|
|
330
|
-
envVars.MINIMAX_API_KEY = `\${MCC_PROVIDER_KEY:${providerRef}}`;
|
|
331
|
-
envVars.MINIMAX_API_HOST = 'https://api.minimaxi.com';
|
|
332
|
-
}
|
|
333
|
-
const server = {
|
|
334
|
-
name,
|
|
335
|
-
displayName,
|
|
336
|
-
description,
|
|
337
|
-
command,
|
|
338
|
-
args: argsList,
|
|
339
|
-
envVars,
|
|
340
|
-
enabledByDefault,
|
|
341
|
-
};
|
|
342
|
-
(0, external_registry_1.addExternalMcpServer)(server);
|
|
343
|
-
console.log(`[OK] External MCP added: ${name}`);
|
|
344
|
-
}
|
|
345
|
-
async function cmdMcpRemove(args) {
|
|
346
|
-
const name = args[0];
|
|
347
|
-
if (!name) {
|
|
348
|
-
console.error('[!] Usage: mcc mcp remove <name>');
|
|
349
|
-
process.exit(1);
|
|
350
|
-
}
|
|
351
|
-
const existing = (0, external_registry_1.readExternalMcpRegistry)().find((s) => s.name === name);
|
|
352
|
-
if (!existing) {
|
|
353
|
-
console.error(`[!] External MCP not found: ${name}`);
|
|
354
|
-
process.exit(1);
|
|
355
|
-
}
|
|
356
|
-
(0, external_registry_1.removeExternalMcpServer)(name);
|
|
357
|
-
console.log(`[OK] External MCP removed: ${name}`);
|
|
358
|
-
}
|
|
359
|
-
async function cmdMcpEnable(args) {
|
|
360
|
-
const name = args[0];
|
|
361
|
-
const profileName = args[1];
|
|
362
|
-
if (!name || !profileName) {
|
|
363
|
-
console.error('[!] Usage: mcc mcp enable <name> <profile>');
|
|
364
|
-
process.exit(1);
|
|
365
131
|
}
|
|
366
|
-
if (!(0, store_1.hasProfile)(profileName)) {
|
|
367
|
-
console.error(`[!] Profile not found: ${profileName}`);
|
|
368
|
-
process.exit(1);
|
|
369
|
-
}
|
|
370
|
-
const instancePath = instanceMgr.getInstancePath(profileName);
|
|
371
|
-
(0, installer_1.enableInstanceExternalMcp)(instancePath, name);
|
|
372
|
-
(0, installer_1.syncInstanceMcpServers)(instancePath, registry_1.BUILTIN_MCP_SERVERS.map((s) => s.name), profileName);
|
|
373
|
-
console.log(`[OK] External MCP '${name}' enabled for profile '${profileName}'`);
|
|
374
132
|
}
|
|
375
|
-
async function
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
133
|
+
async function dispatchMcp(args) {
|
|
134
|
+
switch (args[0]) {
|
|
135
|
+
case 'list':
|
|
136
|
+
await (0, mcp_1.cmdMcpList)();
|
|
137
|
+
break;
|
|
138
|
+
case 'add':
|
|
139
|
+
await (0, mcp_1.cmdMcpAdd)(args.slice(1));
|
|
140
|
+
break;
|
|
141
|
+
case 'remove':
|
|
142
|
+
await (0, mcp_1.cmdMcpRemove)(args.slice(1));
|
|
143
|
+
break;
|
|
144
|
+
case 'enable':
|
|
145
|
+
await (0, mcp_1.cmdMcpEnable)(args.slice(1));
|
|
146
|
+
break;
|
|
147
|
+
case 'disable':
|
|
148
|
+
await (0, mcp_1.cmdMcpDisable)(args.slice(1));
|
|
149
|
+
break;
|
|
150
|
+
default:
|
|
151
|
+
console.error(`[!] Unknown mcp command: ${args[0]}`);
|
|
152
|
+
showHelp();
|
|
153
|
+
process.exit(1);
|
|
385
154
|
}
|
|
386
|
-
const instancePath = instanceMgr.getInstancePath(profileName);
|
|
387
|
-
(0, installer_1.disableInstanceExternalMcp)(instancePath, name);
|
|
388
|
-
(0, installer_1.syncInstanceMcpServers)(instancePath, registry_1.BUILTIN_MCP_SERVERS.map((s) => s.name), profileName);
|
|
389
|
-
console.log(`[OK] External MCP '${name}' disabled for profile '${profileName}'`);
|
|
390
155
|
}
|
|
391
156
|
async function main() {
|
|
392
157
|
const rawArgs = process.argv.slice(2);
|
|
393
|
-
//
|
|
394
|
-
//
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
if (rawArgs[0] === '-v' || rawArgs[0] === '--version')
|
|
400
|
-
showVersion();
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
// No args: show help
|
|
404
|
-
if (rawArgs.length === 0) {
|
|
405
|
-
showHelp();
|
|
406
|
-
return;
|
|
407
|
-
}
|
|
158
|
+
// Kick off the (async, cached) update check as early as possible so any
|
|
159
|
+
// pending notification can print at process exit. No-op when disabled / in CI.
|
|
160
|
+
(0, update_1.checkForUpdates)(PKG_VERSION);
|
|
161
|
+
// Global flags — always intercepted regardless of position.
|
|
162
|
+
if (rawArgs[0] === '-h' || rawArgs[0] === '--help')
|
|
163
|
+
return showHelp();
|
|
164
|
+
if (rawArgs[0] === '-v' || rawArgs[0] === '--version')
|
|
165
|
+
return showVersion();
|
|
166
|
+
if (rawArgs.length === 0)
|
|
167
|
+
return showHelp();
|
|
408
168
|
// Parse: mcc <profile> [claude-args...]
|
|
409
169
|
// Explicit separator: mcc <profile> -- <claude-args...>
|
|
410
|
-
// Everything after first arg (the profile) is passed to Claude as-is.
|
|
170
|
+
// Everything after the first arg (the profile) is passed to Claude as-is.
|
|
411
171
|
const dashIdx = rawArgs.indexOf('--');
|
|
412
172
|
const profileArgs = dashIdx === -1 ? rawArgs : rawArgs.slice(0, dashIdx);
|
|
413
173
|
const claudeArgs = dashIdx === -1 ? [] : rawArgs.slice(dashIdx); // includes '--'
|
|
414
|
-
if (profileArgs.length === 0)
|
|
415
|
-
showHelp();
|
|
416
|
-
return;
|
|
417
|
-
}
|
|
174
|
+
if (profileArgs.length === 0)
|
|
175
|
+
return showHelp();
|
|
418
176
|
(0, installer_1.installBuiltinServers)();
|
|
419
177
|
const command = profileArgs[0];
|
|
420
178
|
const args = profileArgs.slice(1);
|
|
421
179
|
switch (command) {
|
|
422
|
-
// mcc <profile> - launch with profile
|
|
423
180
|
case 'profile':
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
case 'remove':
|
|
432
|
-
await cmdProfileRemove(args.slice(1));
|
|
433
|
-
break;
|
|
434
|
-
case 'default':
|
|
435
|
-
await cmdProfileDefault(args.slice(1));
|
|
436
|
-
break;
|
|
437
|
-
default:
|
|
438
|
-
console.error(`[!] Unknown profile command: ${args[0]}`);
|
|
439
|
-
showHelp();
|
|
440
|
-
process.exit(1);
|
|
441
|
-
}
|
|
181
|
+
await dispatchProfile(args);
|
|
182
|
+
break;
|
|
183
|
+
case 'mcp':
|
|
184
|
+
await dispatchMcp(args);
|
|
185
|
+
break;
|
|
186
|
+
case 'config':
|
|
187
|
+
await spawnConfigDashboard();
|
|
442
188
|
break;
|
|
443
|
-
case '
|
|
444
|
-
(0,
|
|
445
|
-
env: process.env,
|
|
446
|
-
stdio: 'inherit',
|
|
447
|
-
});
|
|
189
|
+
case 'update':
|
|
190
|
+
await (0, update_1.runUpdate)({ checkOnly: args.includes('--check') });
|
|
448
191
|
break;
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
const sub = args[0];
|
|
452
|
-
const subArgs = args.slice(1);
|
|
453
|
-
switch (sub) {
|
|
454
|
-
case 'list':
|
|
455
|
-
await cmdMcpList();
|
|
456
|
-
break;
|
|
457
|
-
case 'add':
|
|
458
|
-
await cmdMcpAdd(subArgs);
|
|
459
|
-
break;
|
|
460
|
-
case 'remove':
|
|
461
|
-
await cmdMcpRemove(subArgs);
|
|
462
|
-
break;
|
|
463
|
-
case 'enable':
|
|
464
|
-
await cmdMcpEnable(subArgs);
|
|
465
|
-
break;
|
|
466
|
-
case 'disable':
|
|
467
|
-
await cmdMcpDisable(subArgs);
|
|
468
|
-
break;
|
|
469
|
-
default:
|
|
470
|
-
console.error(`[!] Unknown mcp command: ${sub}`);
|
|
471
|
-
showHelp();
|
|
472
|
-
process.exit(1);
|
|
473
|
-
}
|
|
192
|
+
case 'update-check':
|
|
193
|
+
(0, update_1.setUpdateCheckCmd)(args[0]);
|
|
474
194
|
break;
|
|
475
|
-
}
|
|
476
195
|
default:
|
|
477
|
-
// Treat as profile launch; pass profile name + claude args
|
|
478
|
-
await cmdLaunch([command, ...args, ...claudeArgs]);
|
|
196
|
+
// Treat unknown command as profile launch; pass profile name + claude args
|
|
197
|
+
await (0, launch_1.cmdLaunch)([command, ...args, ...claudeArgs]);
|
|
479
198
|
}
|
|
480
199
|
}
|
|
481
200
|
main().catch((err) => {
|
package/dist/mcc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcc.js","sourceRoot":"","sources":["../src/mcc.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcc.js","sourceRoot":"","sources":["../src/mcc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/mcp/installer.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/mcp/installer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAepB,wBAAgB,qBAAqB,IAAI,IAAI,CAyD5C;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAU3F;AAoBD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAQ1E;AA8CD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM,EAAE,EAC5B,YAAY,CAAC,EAAE,MAAM,GACpB,IAAI,CA4CN;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAMlF;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAMnF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAI5C"}
|
package/dist/mcp/installer.js
CHANGED
|
@@ -49,6 +49,7 @@ exports.getAllServerNames = getAllServerNames;
|
|
|
49
49
|
const fs = __importStar(require("fs"));
|
|
50
50
|
const path = __importStar(require("path"));
|
|
51
51
|
const picocolors_1 = __importDefault(require("picocolors"));
|
|
52
|
+
const logger_1 = require("../shared/logger");
|
|
52
53
|
const registry_1 = require("./registry");
|
|
53
54
|
const external_registry_1 = require("./external-registry");
|
|
54
55
|
const mcp_config_1 = require("./mcp-config");
|
|
@@ -242,8 +243,10 @@ function syncInstanceMcpServers(instancePath, enabledServerNames, _profileName)
|
|
|
242
243
|
encoding: 'utf8',
|
|
243
244
|
mode: 0o600,
|
|
244
245
|
});
|
|
245
|
-
|
|
246
|
-
|
|
246
|
+
if ((0, logger_1.isDebugEnabled)()) {
|
|
247
|
+
const count = Object.keys(mcpServers).length;
|
|
248
|
+
console.log(` ${picocolors_1.default.dim('mcp')} ${picocolors_1.default.dim(`${count} server(s) synced`)}`);
|
|
249
|
+
}
|
|
247
250
|
}
|
|
248
251
|
/**
|
|
249
252
|
* Enable an external MCP for a specific instance.
|