f2g-telco 0.1.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 (45) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +83 -0
  3. package/dist/commands/add.d.ts +1 -0
  4. package/dist/commands/add.js +264 -0
  5. package/dist/commands/add.js.map +1 -0
  6. package/dist/commands/doctor.d.ts +1 -0
  7. package/dist/commands/doctor.js +97 -0
  8. package/dist/commands/doctor.js.map +1 -0
  9. package/dist/commands/init.d.ts +8 -0
  10. package/dist/commands/init.js +460 -0
  11. package/dist/commands/init.js.map +1 -0
  12. package/dist/commands/list.d.ts +7 -0
  13. package/dist/commands/list.js +52 -0
  14. package/dist/commands/list.js.map +1 -0
  15. package/dist/commands/remove.d.ts +1 -0
  16. package/dist/commands/remove.js +127 -0
  17. package/dist/commands/remove.js.map +1 -0
  18. package/dist/commands/update.d.ts +1 -0
  19. package/dist/commands/update.js +41 -0
  20. package/dist/commands/update.js.map +1 -0
  21. package/dist/index.d.ts +2 -0
  22. package/dist/index.js +70 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/installers/mcps.d.ts +33 -0
  25. package/dist/installers/mcps.js +185 -0
  26. package/dist/installers/mcps.js.map +1 -0
  27. package/dist/installers/skills.d.ts +15 -0
  28. package/dist/installers/skills.js +55 -0
  29. package/dist/installers/skills.js.map +1 -0
  30. package/dist/utils/config.d.ts +22 -0
  31. package/dist/utils/config.js +36 -0
  32. package/dist/utils/config.js.map +1 -0
  33. package/dist/utils/detect.d.ts +18 -0
  34. package/dist/utils/detect.js +42 -0
  35. package/dist/utils/detect.js.map +1 -0
  36. package/dist/utils/logger.d.ts +12 -0
  37. package/dist/utils/logger.js +22 -0
  38. package/dist/utils/logger.js.map +1 -0
  39. package/package.json +64 -0
  40. package/registry/mcps.json +186 -0
  41. package/registry/providers.json +121 -0
  42. package/registry/skills.json +34 -0
  43. package/templates/crush/autonomous.md +38 -0
  44. package/templates/inventory.md +16 -0
  45. package/templates/kiro/orchestrator.md +17 -0
@@ -0,0 +1,460 @@
1
+ import inquirer from 'inquirer';
2
+ import chalk from 'chalk';
3
+ import fs from 'fs-extra';
4
+ import path from 'path';
5
+ import os from 'os';
6
+ import { execSync } from 'child_process';
7
+ import { detectEnvironment } from '../utils/detect.js';
8
+ import { log, isVerbose } from '../utils/logger.js';
9
+ import { saveConfig, loadConfig, getToolPaths } from '../utils/config.js';
10
+ import { installMcps, writeToolConfig } from '../installers/mcps.js';
11
+ import { installSkills } from '../installers/skills.js';
12
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
13
+ const registryDir = path.resolve(__dirname, '..', '..', 'registry');
14
+ const templatesDir = path.resolve(__dirname, '..', '..', 'templates');
15
+ /**
16
+ * Draw a boxed panel for guided API key setup
17
+ */
18
+ function drawSetupBox(name, description, steps) {
19
+ const width = 60;
20
+ const topBorder = '╔' + '═'.repeat(width - 2) + '╗';
21
+ const bottomBorder = '╚' + '═'.repeat(width - 2) + '╝';
22
+ const emptyLine = '║' + ' '.repeat(width - 2) + '║';
23
+ const padLine = (text) => {
24
+ const visible = text.replace(/\x1B\[[0-9;]*m/g, ''); // Strip ANSI for length calc
25
+ const padding = width - 2 - visible.length;
26
+ return '║ ' + text + ' '.repeat(Math.max(0, padding - 2)) + '║';
27
+ };
28
+ console.log('\n' + chalk.cyan(topBorder));
29
+ console.log(chalk.cyan(padLine(chalk.bold(`📦 ${name}`) + chalk.dim(` — ${description}`))));
30
+ console.log(chalk.cyan(emptyLine));
31
+ steps.forEach((step, i) => {
32
+ const numbered = `${i + 1}. ${step}`;
33
+ console.log(chalk.cyan(padLine(numbered)));
34
+ });
35
+ console.log(chalk.cyan(emptyLine));
36
+ console.log(chalk.cyan(bottomBorder));
37
+ }
38
+ /**
39
+ * Prompt for a single MCP/provider API key with guided setup
40
+ */
41
+ async function promptApiKey(name, description, envKey, steps) {
42
+ drawSetupBox(name, description, steps);
43
+ const { action } = await inquirer.prompt([{
44
+ type: 'list',
45
+ name: 'action',
46
+ message: 'What would you like to do?',
47
+ choices: [
48
+ { name: chalk.green('Enter API key'), value: 'enter' },
49
+ { name: chalk.yellow('Skip — install without this service'), value: 'skip' },
50
+ ],
51
+ }]);
52
+ if (action === 'skip') {
53
+ return { key: '', skipped: true };
54
+ }
55
+ const { value } = await inquirer.prompt([{
56
+ type: 'password',
57
+ name: 'value',
58
+ message: `${envKey}:`,
59
+ mask: '*',
60
+ }]);
61
+ return { key: value || '', skipped: !value };
62
+ }
63
+ /**
64
+ * Show the end summary of configured vs skipped services
65
+ */
66
+ function showOnboardingSummary(results) {
67
+ console.log('\n' + chalk.bold(' Configuration Summary:'));
68
+ console.log();
69
+ for (const name of results.configured) {
70
+ console.log(chalk.green(` ✅ ${name}`) + chalk.dim(' (API key saved)'));
71
+ }
72
+ for (const name of results.skipped) {
73
+ console.log(chalk.yellow(` ⏭️ ${name}`) + chalk.dim(' (skipped)'));
74
+ }
75
+ if (results.skipped.length > 0) {
76
+ console.log();
77
+ console.log(chalk.dim(' Skipped services can be added later with: f2g-telco init --reconfigure'));
78
+ }
79
+ console.log();
80
+ }
81
+ /**
82
+ * Guided onboarding flow for collecting API keys
83
+ */
84
+ async function guidedOnboarding(mcps, providerConfig, existingEnvVars) {
85
+ const envVars = { ...existingEnvVars };
86
+ const skippedMcps = new Set();
87
+ const results = { configured: [], skipped: [] };
88
+ // First: handle provider API key if needed
89
+ if (providerConfig?.requiresEnv && providerConfig.requiresEnv.length > 0) {
90
+ for (const envKey of providerConfig.requiresEnv) {
91
+ if (process.env[envKey] || envVars[envKey]) {
92
+ results.configured.push(providerConfig.name);
93
+ continue;
94
+ }
95
+ const steps = providerConfig.setupSteps || [
96
+ providerConfig.setup || `Set up ${providerConfig.name}`,
97
+ ];
98
+ const { key, skipped } = await promptApiKey(providerConfig.name, providerConfig.description, envKey, steps);
99
+ if (skipped) {
100
+ results.skipped.push(providerConfig.name);
101
+ }
102
+ else {
103
+ envVars[envKey] = key;
104
+ results.configured.push(providerConfig.name);
105
+ }
106
+ }
107
+ }
108
+ // Then: handle each MCP that requires an API key
109
+ for (const mcp of mcps) {
110
+ if (!mcp.requiresEnv || mcp.requiresEnv.length === 0)
111
+ continue;
112
+ for (const envKey of mcp.requiresEnv) {
113
+ if (process.env[envKey] || envVars[envKey]) {
114
+ results.configured.push(mcp.name);
115
+ continue;
116
+ }
117
+ const steps = mcp.setupSteps || [
118
+ mcp.envSetup || `Get API key for ${mcp.name}`,
119
+ ];
120
+ const { key, skipped } = await promptApiKey(mcp.name, mcp.description, envKey, steps);
121
+ if (skipped) {
122
+ results.skipped.push(mcp.name);
123
+ skippedMcps.add(mcp.id);
124
+ }
125
+ else {
126
+ envVars[envKey] = key;
127
+ results.configured.push(mcp.name);
128
+ }
129
+ }
130
+ }
131
+ showOnboardingSummary(results);
132
+ return { envVars, skippedMcps };
133
+ }
134
+ export async function initCommand(options) {
135
+ try {
136
+ await runInit(options);
137
+ }
138
+ catch (err) {
139
+ handleInitError(err);
140
+ process.exit(1);
141
+ }
142
+ }
143
+ function handleInitError(err) {
144
+ const message = err instanceof Error ? err.message : String(err);
145
+ // Network errors
146
+ if (message.includes('ENOTFOUND') || message.includes('getaddrinfo') || message.includes('ECONNREFUSED')) {
147
+ log.error('No internet connection');
148
+ log.dim(' Check your network and try again. Some MCPs require downloading packages.');
149
+ return;
150
+ }
151
+ // Git not installed
152
+ if (message.includes('git') && (message.includes('ENOENT') || message.includes('not found'))) {
153
+ log.error('Git is not installed');
154
+ log.dim(' Install Git first: https://git-scm.com/downloads');
155
+ return;
156
+ }
157
+ // npm permission errors
158
+ if (message.includes('EACCES') || message.includes('permission denied')) {
159
+ log.error('Permission denied during installation');
160
+ log.dim(' F2G-Telco installs to ~/.local — check your permissions.');
161
+ return;
162
+ }
163
+ // Generic error
164
+ log.error(message);
165
+ if (isVerbose() && err instanceof Error && err.stack) {
166
+ console.error(chalk.dim(err.stack));
167
+ }
168
+ }
169
+ async function runInit(options) {
170
+ console.log(chalk.bold(`
171
+ ╔═══════════════════════════════════════╗
172
+ ║ F2G-Telco v0.1.0 ║
173
+ ║ Supercharge your AI environment ║
174
+ ╚═══════════════════════════════════════╝
175
+ `));
176
+ // Handle --reconfigure: jump straight to API key collection
177
+ if (options.reconfigure) {
178
+ const existingConfig = await loadConfig();
179
+ if (!existingConfig) {
180
+ log.error('No existing configuration found. Run `f2g-telco init` first.');
181
+ process.exit(1);
182
+ }
183
+ log.header('Reconfiguring API Keys');
184
+ const mcpRegistry = await fs.readJson(path.join(registryDir, 'mcps.json'));
185
+ const providers = await fs.readJson(path.join(registryDir, 'providers.json'));
186
+ const providerConfig = providers.providers.find((p) => p.id === existingConfig.provider);
187
+ const { envVars, skippedMcps } = await guidedOnboarding(mcpRegistry.mcps, providerConfig, {});
188
+ // Reinstall MCPs with new keys
189
+ log.header('Reinstalling MCP servers');
190
+ const mcpsToInstall = mcpRegistry.mcps.filter((mcp) => !skippedMcps.has(mcp.id) && mcp.requiresEnv.every((key) => envVars[key] || process.env[key]));
191
+ const installedIds = await installMcps(mcpsToInstall, existingConfig.tool, envVars);
192
+ // Rewrite config
193
+ log.header('Updating configuration');
194
+ await writeToolConfig(mcpRegistry.mcps, installedIds, existingConfig.tool, envVars, providerConfig);
195
+ // Update saved config
196
+ existingConfig.installedMcps = installedIds;
197
+ await saveConfig(existingConfig);
198
+ log.success('Reconfiguration complete!');
199
+ return;
200
+ }
201
+ // Step 1: Detect
202
+ log.header('Step 1 — Detecting environment');
203
+ const env = await detectEnvironment();
204
+ log.info(`OS: ${env.os}`);
205
+ log.info(`Node: ${env.node || chalk.red('not found — required')}`);
206
+ log.info(`Python: ${env.python || chalk.dim('not found — some MCPs need it')}`);
207
+ log.info(`Git: ${env.git || chalk.red('not found — required')}`);
208
+ if (!env.node || !env.git) {
209
+ log.error('Node.js and Git are required. Install them first.');
210
+ process.exit(1);
211
+ }
212
+ const detected = [];
213
+ if (env.tools.crush)
214
+ detected.push('Crush');
215
+ if (env.tools.kiro)
216
+ detected.push('Kiro');
217
+ if (detected.length > 0)
218
+ log.success(`Tools: ${detected.join(', ')}`);
219
+ const detectedProviders = [];
220
+ if (env.providers.copilot)
221
+ detectedProviders.push('Copilot');
222
+ if (env.providers.ollama)
223
+ detectedProviders.push('Ollama');
224
+ if (env.providers.nim)
225
+ detectedProviders.push('NIM');
226
+ if (detectedProviders.length > 0)
227
+ log.success(`Providers: ${detectedProviders.join(', ')}`);
228
+ // Step 2: Choose tool
229
+ log.header('Step 2 — Choose your AI coding tool');
230
+ let tool = options.tool;
231
+ if (!tool) {
232
+ const { selectedTool } = await inquirer.prompt([{
233
+ type: 'list',
234
+ name: 'selectedTool',
235
+ message: 'Which tool do you want to configure?',
236
+ choices: [
237
+ { name: `Crush${env.tools.crush ? chalk.green(' (detected)') : ''}`, value: 'crush' },
238
+ { name: `Kiro CLI${env.tools.kiro ? chalk.green(' (detected)') : ''}`, value: 'kiro' },
239
+ ],
240
+ }]);
241
+ tool = selectedTool;
242
+ }
243
+ // Step 3: Choose provider
244
+ log.header('Step 3 — Choose your AI provider');
245
+ const providers = await fs.readJson(path.join(registryDir, 'providers.json'));
246
+ let provider = options.provider;
247
+ if (!provider) {
248
+ const choices = providers.providers
249
+ .filter((p) => p.tools.includes(tool))
250
+ .map((p) => ({
251
+ name: `${p.name}${p.free === true ? chalk.green(' (free)') : p.free === false ? chalk.yellow(' (subscription)') : ''} — ${p.description}`,
252
+ value: p.id,
253
+ }));
254
+ const { selectedProvider } = await inquirer.prompt([{
255
+ type: 'list',
256
+ name: 'selectedProvider',
257
+ message: 'Which AI provider do you use?',
258
+ choices,
259
+ }]);
260
+ provider = selectedProvider;
261
+ }
262
+ const providerConfig = providers.providers.find((p) => p.id === provider);
263
+ // Step 4: Guided API key collection
264
+ log.header('Step 4 — Service Configuration');
265
+ const mcpRegistry = await fs.readJson(path.join(registryDir, 'mcps.json'));
266
+ let envVars = {};
267
+ let skippedMcps = new Set();
268
+ if (!options.yes) {
269
+ const result = await guidedOnboarding(mcpRegistry.mcps, providerConfig, {});
270
+ envVars = result.envVars;
271
+ skippedMcps = result.skippedMcps;
272
+ }
273
+ // Step 5: Install MCPs
274
+ log.header('Step 5 — Installing MCP servers');
275
+ const mcpsToInstall = mcpRegistry.mcps.filter((mcp) => !skippedMcps.has(mcp.id) && mcp.requiresEnv.every((key) => envVars[key] || process.env[key]));
276
+ const installedIds = await installMcps(mcpsToInstall, tool, envVars);
277
+ // Step 5b: Install ContextGraph bridge (Python wrapper) if available
278
+ if (installedIds.includes('contextgraph') && env.python) {
279
+ await installContextGraphBridge(os.homedir(), envVars);
280
+ }
281
+ // Step 6: Write complete tool config
282
+ log.header('Step 6 — Writing tool configuration');
283
+ await writeToolConfig(mcpRegistry.mcps, installedIds, tool, envVars, providerConfig);
284
+ // Step 7: Install orchestrator
285
+ log.header('Step 7 — Setting up orchestrator agent');
286
+ const toolPaths = getToolPaths(tool);
287
+ const home = os.homedir();
288
+ if (tool === 'crush') {
289
+ const agentsDir = path.join(home, '.config', 'crush', 'agents');
290
+ await fs.ensureDir(agentsDir);
291
+ const tpl = await fs.readFile(path.join(templatesDir, 'crush', 'autonomous.md'), 'utf-8');
292
+ await fs.writeFile(path.join(agentsDir, 'autonomous.md'), tpl);
293
+ log.success('Orchestrator agent written to ~/.config/crush/agents/autonomous.md');
294
+ }
295
+ else if (tool === 'kiro') {
296
+ const tpl = await fs.readFile(path.join(templatesDir, 'kiro', 'orchestrator.md'), 'utf-8');
297
+ const content = tpl.replace(/USER/g, path.basename(home));
298
+ const settingsDir = path.join(home, '.kiro', 'settings');
299
+ await fs.ensureDir(settingsDir);
300
+ await fs.writeFile(path.join(settingsDir, 'orchestrator.md'), content);
301
+ log.success('Orchestrator written to ~/.kiro/settings/orchestrator.md');
302
+ }
303
+ // Step 8: Install skills
304
+ log.header('Step 8 — Installing skills');
305
+ const skillsRegistry = await fs.readJson(path.join(registryDir, 'skills.json'));
306
+ await fs.ensureDir(toolPaths.skills);
307
+ const skillCount = await installSkills(skillsRegistry.sources, toolPaths.skills);
308
+ log.success(`${skillCount} skills symlinked`);
309
+ // Step 9: Generate INVENTORY.md
310
+ log.header('Step 9 — Generating INVENTORY.md');
311
+ const inventoryPath = path.join(home, '.agents', 'INVENTORY.md');
312
+ await fs.ensureDir(path.dirname(inventoryPath));
313
+ await generateInventory(inventoryPath, installedIds, mcpRegistry.mcps, tool);
314
+ log.success(`INVENTORY.md → ${inventoryPath}`);
315
+ // Step 10: Save config
316
+ const config = {
317
+ version: '0.1.0',
318
+ provider: provider,
319
+ tool: tool,
320
+ installedMcps: installedIds,
321
+ installedSkills: [],
322
+ paths: {
323
+ home,
324
+ config: toolPaths.config,
325
+ skills: toolPaths.skills,
326
+ agents: toolPaths.agents || '',
327
+ inventory: inventoryPath,
328
+ },
329
+ };
330
+ await saveConfig(config);
331
+ console.log(chalk.bold.green(`
332
+ ✔ F2G-Telco setup complete!
333
+
334
+ Tool: ${tool}
335
+ Provider: ${providerConfig.name}
336
+ MCPs: ${installedIds.length} installed
337
+ Skills: ${skillCount} symlinked
338
+ Orchestrator: ✔
339
+ Permissions: ${tool === 'crush' ? '38+ tools auto-approved' : 'configured'}
340
+
341
+ Next steps:
342
+ f2g-telco doctor Check everything is working
343
+ f2g-telco list See what's installed
344
+ f2g-telco update Pull latest configs
345
+ `));
346
+ }
347
+ async function generateInventory(filePath, installedIds, allMcps, tool) {
348
+ const rows = allMcps
349
+ .filter(m => installedIds.includes(m.id))
350
+ .map(m => `| ${m.name} | ${m.description} |`)
351
+ .join('\n');
352
+ await fs.writeFile(filePath, `# AI Environment Inventory
353
+ > Generated by F2G-Telco v0.1.0. Agents: read this to know what's available.
354
+
355
+ ## MCP Servers (active)
356
+ | Server | Purpose |
357
+ |--------|---------|
358
+ ${rows}
359
+
360
+ ## Skills Discovery
361
+ Skills are in the tool's skills directory. Each has a SKILL.md with a \`description\` field.
362
+ Match task to skill by reading descriptions. Do NOT preload all skills.
363
+
364
+ ## Key Rules
365
+ - **gitnexus**: Run \`npx gitnexus analyze\` in a repo before querying
366
+ - **context7**: Use for up-to-date library documentation
367
+ - **sequential-thinking**: Use for complex multi-step reasoning
368
+ - **mem0**: Check for prior context before starting work
369
+ - **contextgraph**: Use for structured recall with entity relationships
370
+
371
+ ---
372
+ *Tool: ${tool} | Generated: ${new Date().toISOString().split('T')[0]} | F2G-Telco v0.1.0*
373
+ `);
374
+ }
375
+ /**
376
+ * Install ContextGraph Python package and create bridge wrapper script.
377
+ * The wrapper script allows MCP tools to invoke contextgraph-mcp.
378
+ */
379
+ async function installContextGraphBridge(home, envVars) {
380
+ const binDir = path.join(home, '.local', 'bin');
381
+ const wrapperPath = path.join(binDir, 'contextgraph-mcp');
382
+ log.info('Setting up ContextGraph bridge with mem0 hydration...');
383
+ try {
384
+ execSync('pip3 install contextgraph[server,mcp] --quiet --break-system-packages 2>/dev/null || pip3 install contextgraph[server,mcp] --quiet', {
385
+ stdio: 'pipe',
386
+ timeout: 120_000,
387
+ });
388
+ await fs.ensureDir(binDir);
389
+ // Determine mem0 config for hydration
390
+ const mem0Key = envVars.MEM0_API_KEY || process.env.MEM0_API_KEY || '';
391
+ const mem0User = envVars.MEM0_DEFAULT_USER_ID || process.env.MEM0_DEFAULT_USER_ID || process.env.USER || 'default';
392
+ // Python wrapper that hydrates from mem0 on boot, then starts MCP server
393
+ const wrapperScript = `#!/usr/bin/env python3
394
+ """ContextGraph MCP server with mem0 hydration — generated by F2G-Telco."""
395
+ import json, logging, os, sys, urllib.request
396
+
397
+ MEM0_API_KEY = os.environ.get("MEM0_API_KEY", ${JSON.stringify(mem0Key)})
398
+ MEM0_USER_ID = os.environ.get("MEM0_USER_ID", ${JSON.stringify(mem0User)})
399
+ HYDRATE_LIMIT = 50
400
+
401
+ os.environ.setdefault("CG_AGENT_NAME", "f2g-agent")
402
+ os.environ.setdefault("CG_AGENT_ORG", MEM0_USER_ID)
403
+
404
+ logging.basicConfig(level="WARNING", format="%(asctime)s %(name)s %(levelname)s %(message)s", stream=sys.stderr)
405
+ logger = logging.getLogger("contextgraph-bridge")
406
+
407
+ def fetch_mem0():
408
+ if not MEM0_API_KEY:
409
+ return []
410
+ payload = json.dumps({"filters": {"AND": [{"user_id": MEM0_USER_ID}]}, "page": 1, "page_size": HYDRATE_LIMIT}).encode()
411
+ req = urllib.request.Request("https://api.mem0.ai/v2/memories/", data=payload, headers={
412
+ "Authorization": f"Token {MEM0_API_KEY}", "Content-Type": "application/json"}, method="POST")
413
+ try:
414
+ with urllib.request.urlopen(req, timeout=20) as resp:
415
+ data = json.loads(resp.read().decode())
416
+ return (data if isinstance(data, list) else data.get("results", []))[:HYDRATE_LIMIT]
417
+ except Exception as e:
418
+ logger.warning("mem0 fetch failed: %s", e)
419
+ return []
420
+
421
+ def hydrate(service, agent_id, memories):
422
+ stored = 0
423
+ for mem in memories:
424
+ text = mem.get("memory", "")
425
+ if not text or len(text) < 20:
426
+ continue
427
+ if (mem.get("metadata") or {}).get("type") == "consolidation":
428
+ continue
429
+ try:
430
+ service.store_memory(agent_id=agent_id, content=text, visibility="org",
431
+ evidence=["hydrated from mem0"], citations=[f"mem0:{mem.get('id', '?')}"])
432
+ stored += 1
433
+ except Exception:
434
+ pass
435
+ return stored
436
+
437
+ def main():
438
+ from contextgraph.bootstrap import create_service
439
+ from contextgraph.mcp_server import _try_run_mcp_sdk, _JsonRpcServer
440
+ service = create_service()
441
+ agent = service.register_agent(name=os.environ.get("CG_AGENT_NAME", "f2g-agent"),
442
+ org_id=os.environ.get("CG_AGENT_ORG", "default"))
443
+ memories = fetch_mem0()
444
+ count = hydrate(service, agent.agent_id, memories) if memories else 0
445
+ sys.stderr.write(f"[contextgraph] Hydrated {count}/{len(memories)} mem0 memories\\n")
446
+ if not _try_run_mcp_sdk(service, agent.agent_id):
447
+ _JsonRpcServer(service, agent.agent_id).run()
448
+
449
+ if __name__ == "__main__":
450
+ main()
451
+ `;
452
+ await fs.writeFile(wrapperPath, wrapperScript);
453
+ await fs.chmod(wrapperPath, 0o755);
454
+ log.success(`ContextGraph bridge with mem0 hydration → ${wrapperPath}`);
455
+ }
456
+ catch {
457
+ log.warn('ContextGraph bridge setup failed — install Python 3.11+ and retry');
458
+ }
459
+ }
460
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ interface ListOptions {
2
+ mcps?: boolean;
3
+ skills?: boolean;
4
+ providers?: boolean;
5
+ }
6
+ export declare function listCommand(options: ListOptions): Promise<void>;
7
+ export {};
@@ -0,0 +1,52 @@
1
+ import chalk from 'chalk';
2
+ import fs from 'fs-extra';
3
+ import path from 'path';
4
+ import { log } from '../utils/logger.js';
5
+ import { loadConfig } from '../utils/config.js';
6
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
7
+ const registryDir = path.resolve(__dirname, '..', '..', 'registry');
8
+ export async function listCommand(options) {
9
+ const config = await loadConfig();
10
+ const showAll = !options.mcps && !options.skills && !options.providers;
11
+ if (showAll || options.mcps) {
12
+ log.header('MCP Servers');
13
+ const registry = await fs.readJson(path.join(registryDir, 'mcps.json'));
14
+ for (const mcp of registry.mcps) {
15
+ const installed = config?.installedMcps.includes(mcp.id);
16
+ const status = installed ? chalk.green('✔') : chalk.dim('○');
17
+ const freeTag = mcp.free ? chalk.green(' free') : '';
18
+ console.log(` ${status} ${chalk.bold(mcp.name)}${freeTag} — ${mcp.description}`);
19
+ if (mcp.requiresEnv.length > 0) {
20
+ console.log(chalk.dim(` requires: ${mcp.requiresEnv.join(', ')}`));
21
+ }
22
+ }
23
+ }
24
+ if (showAll || options.providers) {
25
+ log.header('Providers');
26
+ const registry = await fs.readJson(path.join(registryDir, 'providers.json'));
27
+ for (const p of registry.providers) {
28
+ const active = config?.provider === p.id;
29
+ const status = active ? chalk.green('✔') : chalk.dim('○');
30
+ const freeTag = p.free ? chalk.green(' free') : p.free === false ? chalk.yellow(' paid') : '';
31
+ console.log(` ${status} ${chalk.bold(p.name)}${freeTag} — ${p.description}`);
32
+ }
33
+ }
34
+ if (showAll || options.skills) {
35
+ log.header('Skill Sources');
36
+ const registry = await fs.readJson(path.join(registryDir, 'skills.json'));
37
+ for (const s of registry.sources) {
38
+ console.log(` ${chalk.bold(s.name)} — ${s.description}`);
39
+ if (s.picks) {
40
+ const counts = [];
41
+ if (s.picks.agents)
42
+ counts.push(`${s.picks.agents.length} agents`);
43
+ if (s.picks.skills)
44
+ counts.push(`${s.picks.skills.length} skills`);
45
+ if (s.picks.instructions)
46
+ counts.push(`${s.picks.instructions.length} instructions`);
47
+ console.log(chalk.dim(` picks: ${counts.join(', ')}`));
48
+ }
49
+ }
50
+ }
51
+ }
52
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function removeCommand(mcpId: string): Promise<void>;