f2g-telco 0.1.2 → 0.1.4
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/dist/commands/init.js +4 -4
- package/dist/commands/status.js +54 -8
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/update.js +74 -21
- package/dist/commands/update.js.map +1 -1
- package/dist/installers/mcps.js +7 -13
- package/dist/installers/mcps.js.map +1 -1
- package/dist/utils/fileLogger.js +1 -1
- package/package.json +1 -1
package/dist/commands/init.js
CHANGED
|
@@ -168,7 +168,7 @@ function handleInitError(err) {
|
|
|
168
168
|
}
|
|
169
169
|
}
|
|
170
170
|
async function runInit(options) {
|
|
171
|
-
const version = '0.1.
|
|
171
|
+
const version = '0.1.3';
|
|
172
172
|
console.log('');
|
|
173
173
|
console.log(chalk.cyan.bold(' ███████╗██████╗ ██████╗ '));
|
|
174
174
|
console.log(chalk.cyan.bold(' ██╔════╝╚════██╗██╔════╝ '));
|
|
@@ -346,9 +346,9 @@ async function runInit(options) {
|
|
|
346
346
|
Permissions: ${tool === 'crush' ? '38+ tools auto-approved' : 'configured'}
|
|
347
347
|
|
|
348
348
|
Next steps:
|
|
349
|
-
f2g-telco doctor Check everything is working
|
|
350
|
-
f2g-telco list See what's installed
|
|
351
|
-
f2g-telco update Pull latest configs
|
|
349
|
+
npx f2g-telco doctor Check everything is working
|
|
350
|
+
npx f2g-telco list See what's installed
|
|
351
|
+
npx f2g-telco update Pull latest configs
|
|
352
352
|
|
|
353
353
|
Log file: ${getLogPath()}
|
|
354
354
|
`));
|
package/dist/commands/status.js
CHANGED
|
@@ -1,20 +1,66 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
|
-
import
|
|
2
|
+
import fs from 'fs-extra';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import os from 'os';
|
|
5
|
+
import { loadConfig, getToolPaths } from '../utils/config.js';
|
|
3
6
|
import { log } from '../utils/logger.js';
|
|
4
7
|
export async function statusCommand() {
|
|
5
8
|
const config = await loadConfig();
|
|
6
9
|
if (!config) {
|
|
7
|
-
log.error('No F2G-Telco config found. Run: f2g-telco init');
|
|
10
|
+
log.error('No F2G-Telco config found. Run: npx f2g-telco init');
|
|
8
11
|
return;
|
|
9
12
|
}
|
|
13
|
+
const home = os.homedir();
|
|
14
|
+
const paths = getToolPaths(config.tool);
|
|
15
|
+
// MCP config check
|
|
16
|
+
let mcpCount = 0;
|
|
17
|
+
try {
|
|
18
|
+
if (config.tool === 'crush') {
|
|
19
|
+
const crush = await fs.readJson(paths.mcpConfig);
|
|
20
|
+
mcpCount = Object.keys(crush.mcp || {}).length;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
const kiro = await fs.readJson(paths.mcpConfig);
|
|
24
|
+
mcpCount = Object.keys(kiro.mcpServers || {}).length;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
catch { /* config unreadable */ }
|
|
28
|
+
// Skills count
|
|
29
|
+
let skillCount = 0;
|
|
30
|
+
try {
|
|
31
|
+
const entries = await fs.readdir(paths.skills);
|
|
32
|
+
skillCount = entries.length;
|
|
33
|
+
}
|
|
34
|
+
catch { /* dir missing */ }
|
|
35
|
+
// Inventory check
|
|
36
|
+
const invExists = await fs.pathExists(config.paths.inventory);
|
|
37
|
+
let invLines = 0;
|
|
38
|
+
if (invExists) {
|
|
39
|
+
const content = await fs.readFile(config.paths.inventory, 'utf-8');
|
|
40
|
+
invLines = content.split('\n').length;
|
|
41
|
+
}
|
|
42
|
+
// Providers from config
|
|
43
|
+
const providers = config.provider ? config.provider.split(',').map(p => p.trim()) : ['unknown'];
|
|
10
44
|
console.log(`
|
|
11
|
-
${chalk.bold('F2G-Telco')} v${config.version}
|
|
45
|
+
${chalk.bold.blue('F2G-Telco')} v${config.version}
|
|
46
|
+
${'─'.repeat(40)}
|
|
47
|
+
|
|
48
|
+
${chalk.bold('Tool')} ${chalk.cyan(config.tool)}
|
|
49
|
+
${chalk.bold('Providers')} ${providers.map(p => chalk.cyan(p)).join(', ')}
|
|
50
|
+
${chalk.bold('MCPs')} ${chalk.green(String(config.installedMcps.length))} configured (${mcpCount} in ${config.tool} config)
|
|
51
|
+
${chalk.bold('Skills')} ${chalk.green(String(skillCount))} in ${paths.skills}
|
|
52
|
+
${chalk.bold('Inventory')} ${invExists ? chalk.green(`${invLines} lines`) : chalk.red('missing')}
|
|
53
|
+
|
|
54
|
+
${chalk.bold('Configured MCPs:')}
|
|
55
|
+
${config.installedMcps.map(m => ' ' + chalk.dim('• ') + m).join('\n ')}
|
|
12
56
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
57
|
+
${chalk.bold('Paths:')}
|
|
58
|
+
${chalk.dim(' Config: ')} ${config.paths.config}
|
|
59
|
+
${chalk.dim(' Skills: ')} ${paths.skills}
|
|
60
|
+
${chalk.dim(' Agents: ')} ${paths.agents}
|
|
61
|
+
${chalk.dim(' MCP file: ')} ${paths.mcpConfig}
|
|
62
|
+
${chalk.dim(' Inventory: ')} ${config.paths.inventory}
|
|
63
|
+
${chalk.dim(' Log: ')} ${path.join(home, '.f2g-telco', 'f2g-telco.log')}
|
|
18
64
|
`);
|
|
19
65
|
}
|
|
20
66
|
//# sourceMappingURL=status.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/update.js
CHANGED
|
@@ -1,41 +1,94 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
1
2
|
import { execSync } from 'child_process';
|
|
3
|
+
import fs from 'fs-extra';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import os from 'os';
|
|
2
6
|
import ora from 'ora';
|
|
7
|
+
import { loadConfig, getToolPaths } from '../utils/config.js';
|
|
3
8
|
import { log } from '../utils/logger.js';
|
|
4
|
-
import { loadConfig } from '../utils/config.js';
|
|
5
9
|
export async function updateCommand() {
|
|
6
10
|
log.header('F2G-Telco Update');
|
|
7
11
|
const config = await loadConfig();
|
|
8
12
|
if (!config) {
|
|
9
|
-
log.error('No F2G-Telco config found. Run: f2g-telco init');
|
|
13
|
+
log.error('No F2G-Telco config found. Run: npx f2g-telco init');
|
|
10
14
|
return;
|
|
11
15
|
}
|
|
12
|
-
|
|
13
|
-
|
|
16
|
+
const home = os.homedir();
|
|
17
|
+
let updated = 0;
|
|
18
|
+
// 1. Check for CLI updates via npm
|
|
19
|
+
const s1 = ora('Checking for f2g-telco updates...').start();
|
|
14
20
|
try {
|
|
15
|
-
execSync('npm
|
|
16
|
-
|
|
21
|
+
const latest = execSync('npm view f2g-telco version 2>/dev/null', {
|
|
22
|
+
encoding: 'utf-8', timeout: 15_000,
|
|
23
|
+
}).trim();
|
|
24
|
+
if (latest && latest !== config.version) {
|
|
25
|
+
s1.succeed(`New version available: ${chalk.green(latest)} (current: ${config.version})`);
|
|
26
|
+
console.log(chalk.dim(` Run: npx f2g-telco@${latest} init to upgrade`));
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
s1.succeed(`f2g-telco is up to date (v${config.version})`);
|
|
30
|
+
}
|
|
17
31
|
}
|
|
18
32
|
catch {
|
|
19
|
-
|
|
33
|
+
s1.info('Could not check npm registry (offline?)');
|
|
20
34
|
}
|
|
21
|
-
// Update skill
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
35
|
+
// 2. Update skill repositories
|
|
36
|
+
const skillDirs = ['awesome-copilot', 'agency-agents', 'claude-best-practices'];
|
|
37
|
+
const agentsDir = path.join(home, '.agents');
|
|
38
|
+
for (const dir of skillDirs) {
|
|
39
|
+
const repoPath = path.join(agentsDir, dir);
|
|
40
|
+
if (!await fs.pathExists(path.join(repoPath, '.git')))
|
|
41
|
+
continue;
|
|
42
|
+
const s = ora(`Updating ${dir}...`).start();
|
|
43
|
+
try {
|
|
44
|
+
const result = execSync(`git -C "${repoPath}" pull --ff-only 2>&1`, {
|
|
45
|
+
encoding: 'utf-8', timeout: 30_000,
|
|
46
|
+
});
|
|
47
|
+
if (result.includes('Already up to date')) {
|
|
48
|
+
s.succeed(`${dir} — already up to date`);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
s.succeed(`${dir} — ${chalk.green('updated')}`);
|
|
52
|
+
updated++;
|
|
31
53
|
}
|
|
32
|
-
catch { /* skip if not cloned */ }
|
|
33
54
|
}
|
|
34
|
-
|
|
55
|
+
catch {
|
|
56
|
+
s.warn(`${dir} — could not update (check manually)`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// 3. Refresh MCP config from registry
|
|
60
|
+
const s3 = ora('Refreshing MCP configuration...').start();
|
|
61
|
+
try {
|
|
62
|
+
const registryPath = path.resolve(path.dirname(new URL(import.meta.url).pathname), '..', '..', 'registry', 'mcps.json');
|
|
63
|
+
// For npx usage, registry is bundled — just confirm config is intact
|
|
64
|
+
const paths = getToolPaths(config.tool);
|
|
65
|
+
if (await fs.pathExists(paths.mcpConfig)) {
|
|
66
|
+
s3.succeed('MCP configuration intact');
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
s3.warn('MCP config file missing — run: npx f2g-telco init');
|
|
70
|
+
}
|
|
35
71
|
}
|
|
36
72
|
catch {
|
|
37
|
-
|
|
73
|
+
s3.info('MCP config check skipped');
|
|
74
|
+
}
|
|
75
|
+
// 4. Verify INVENTORY.md
|
|
76
|
+
const s4 = ora('Checking INVENTORY.md...').start();
|
|
77
|
+
if (await fs.pathExists(config.paths.inventory)) {
|
|
78
|
+
s4.succeed('INVENTORY.md present');
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
s4.warn('INVENTORY.md missing — run: npx f2g-telco init');
|
|
82
|
+
}
|
|
83
|
+
// Summary
|
|
84
|
+
console.log('');
|
|
85
|
+
if (updated > 0) {
|
|
86
|
+
log.success(`Update complete — ${updated} skill source(s) updated.`);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
log.success('Everything is up to date.');
|
|
38
90
|
}
|
|
39
|
-
log.
|
|
91
|
+
console.log(chalk.dim(' Run: npx f2g-telco doctor to verify health'));
|
|
92
|
+
console.log('');
|
|
40
93
|
}
|
|
41
94
|
//# sourceMappingURL=update.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
package/dist/installers/mcps.js
CHANGED
|
@@ -11,28 +11,22 @@ export async function installMcps(mcps, tool, envVars) {
|
|
|
11
11
|
const userPrefix = path.join(home, '.local');
|
|
12
12
|
for (let i = 0; i < mcps.length; i++) {
|
|
13
13
|
const mcp = mcps[i];
|
|
14
|
-
const spinner = ora(`[${i + 1}/${mcps.length}]
|
|
14
|
+
const spinner = ora(`[${i + 1}/${mcps.length}] Configuring ${mcp.name}...`).start();
|
|
15
15
|
try {
|
|
16
16
|
if (mcp.python) {
|
|
17
|
-
|
|
17
|
+
// Python MCPs need actual install
|
|
18
|
+
execSync('pip3 install contextgraph[server,mcp] --quiet --break-system-packages 2>/dev/null || pip3 install contextgraph[server,mcp] --quiet', { stdio: 'pipe', timeout: 120_000 });
|
|
19
|
+
spinner.succeed(`${mcp.name} installed`);
|
|
18
20
|
}
|
|
19
21
|
else {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
try {
|
|
23
|
-
execSync(`npm install -g ${pkg} 2>/dev/null`, { stdio: 'pipe', timeout: 120_000 });
|
|
24
|
-
}
|
|
25
|
-
catch {
|
|
26
|
-
execSync(`npm install --prefix "${userPrefix}" ${pkg}`, { stdio: 'pipe', timeout: 120_000 });
|
|
27
|
-
}
|
|
22
|
+
// Node MCPs: npx handles download at runtime — no install needed
|
|
23
|
+
spinner.succeed(`${mcp.name} configured (via npx)`);
|
|
28
24
|
}
|
|
29
25
|
installed.push(mcp.id);
|
|
30
|
-
spinner.succeed(`${mcp.name} installed`);
|
|
31
26
|
}
|
|
32
27
|
catch {
|
|
33
|
-
// Install failed, but npx will still work — mark as installed
|
|
34
28
|
installed.push(mcp.id);
|
|
35
|
-
spinner.warn(`${mcp.name} —
|
|
29
|
+
spinner.warn(`${mcp.name} — will use npx at runtime`);
|
|
36
30
|
}
|
|
37
31
|
}
|
|
38
32
|
return installed;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcps.js","sourceRoot":"","sources":["../../src/installers/mcps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAyBlD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAgB,EAChB,IAAY,EACZ,OAA+B;IAE/B,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"mcps.js","sourceRoot":"","sources":["../../src/installers/mcps.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/fileLogger.js
CHANGED
|
@@ -26,7 +26,7 @@ export async function logSection(title) {
|
|
|
26
26
|
}
|
|
27
27
|
export async function logSystemInfo() {
|
|
28
28
|
await logSection('F2G-Telco Session');
|
|
29
|
-
await logToFile('INFO', `Version: 0.1.
|
|
29
|
+
await logToFile('INFO', `Version: 0.1.3`);
|
|
30
30
|
await logToFile('INFO', `OS: ${os.platform()} ${os.arch()} ${os.release()}`);
|
|
31
31
|
await logToFile('INFO', `Node: ${process.version}`);
|
|
32
32
|
await logToFile('INFO', `Home: ${os.homedir()}`);
|