@magic-ingredients/tiny-brain-local 0.5.1 → 0.6.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 +202 -23
- package/dist/cli/cli-factory.d.ts +3 -0
- package/dist/cli/cli-factory.d.ts.map +1 -0
- package/dist/cli/cli-factory.js +113 -0
- package/dist/cli/cli-factory.js.map +1 -0
- package/dist/cli/commands/install.command.d.ts +23 -0
- package/dist/cli/commands/install.command.d.ts.map +1 -0
- package/dist/cli/commands/install.command.js +189 -0
- package/dist/cli/commands/install.command.js.map +1 -0
- package/dist/cli/commands/list.command.d.ts +15 -0
- package/dist/cli/commands/list.command.d.ts.map +1 -0
- package/dist/cli/commands/list.command.js +90 -0
- package/dist/cli/commands/list.command.js.map +1 -0
- package/dist/cli/commands/status.command.d.ts +19 -0
- package/dist/cli/commands/status.command.d.ts.map +1 -0
- package/dist/cli/commands/status.command.js +104 -0
- package/dist/cli/commands/status.command.js.map +1 -0
- package/dist/cli/commands/uninstall.command.d.ts +23 -0
- package/dist/cli/commands/uninstall.command.d.ts.map +1 -0
- package/dist/cli/commands/uninstall.command.js +176 -0
- package/dist/cli/commands/uninstall.command.js.map +1 -0
- package/dist/cli/installers/base-installer.d.ts +20 -0
- package/dist/cli/installers/base-installer.d.ts.map +1 -0
- package/dist/cli/installers/base-installer.js +3 -0
- package/dist/cli/installers/base-installer.js.map +1 -0
- package/dist/cli/installers/chatgpt-installer.d.ts +18 -0
- package/dist/cli/installers/chatgpt-installer.d.ts.map +1 -0
- package/dist/cli/installers/chatgpt-installer.js +45 -0
- package/dist/cli/installers/chatgpt-installer.js.map +1 -0
- package/dist/cli/installers/claude-code-installer.d.ts +23 -0
- package/dist/cli/installers/claude-code-installer.d.ts.map +1 -0
- package/dist/cli/installers/claude-code-installer.js +106 -0
- package/dist/cli/installers/claude-code-installer.js.map +1 -0
- package/dist/cli/installers/claude-desktop-installer.d.ts +18 -0
- package/dist/cli/installers/claude-desktop-installer.d.ts.map +1 -0
- package/dist/cli/installers/claude-desktop-installer.js +48 -0
- package/dist/cli/installers/claude-desktop-installer.js.map +1 -0
- package/dist/cli/installers/cursor-installer.d.ts +18 -0
- package/dist/cli/installers/cursor-installer.d.ts.map +1 -0
- package/dist/cli/installers/cursor-installer.js +45 -0
- package/dist/cli/installers/cursor-installer.js.map +1 -0
- package/dist/cli/installers/installer-factory.d.ts +30 -0
- package/dist/cli/installers/installer-factory.d.ts.map +1 -0
- package/dist/cli/installers/installer-factory.js +89 -0
- package/dist/cli/installers/installer-factory.js.map +1 -0
- package/dist/cli/utils/node-resolver.d.ts +53 -0
- package/dist/cli/utils/node-resolver.d.ts.map +1 -0
- package/dist/cli/utils/node-resolver.js +200 -0
- package/dist/cli/utils/node-resolver.js.map +1 -0
- package/dist/cli/utils/package-locator.d.ts +9 -0
- package/dist/cli/utils/package-locator.d.ts.map +1 -0
- package/dist/cli/utils/package-locator.js +81 -0
- package/dist/cli/utils/package-locator.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +27 -0
- package/dist/cli.js.map +1 -0
- package/dist/prompts/prompt-registry.js +6 -6
- package/dist/prompts/prompt-registry.js.map +1 -1
- package/dist/prompts/rules/rules.prompt.d.ts +32 -0
- package/dist/prompts/rules/rules.prompt.d.ts.map +1 -0
- package/dist/prompts/{memory/memory.prompt.js → rules/rules.prompt.js} +64 -58
- package/dist/prompts/rules/rules.prompt.js.map +1 -0
- package/dist/storage/platform-config-adapter.d.ts +42 -0
- package/dist/storage/platform-config-adapter.d.ts.map +1 -0
- package/dist/storage/platform-config-adapter.js +128 -0
- package/dist/storage/platform-config-adapter.js.map +1 -0
- package/dist/storage/platform-path-builder.d.ts +32 -0
- package/dist/storage/platform-path-builder.d.ts.map +1 -0
- package/dist/storage/platform-path-builder.js +93 -0
- package/dist/storage/platform-path-builder.js.map +1 -0
- package/dist/tools/persona/as.tool.d.ts +4 -4
- package/dist/tools/persona/as.tool.d.ts.map +1 -1
- package/dist/tools/persona/as.tool.js +150 -117
- package/dist/tools/persona/as.tool.js.map +1 -1
- package/dist/tools/{memory/memory.tool.d.ts → rules/rules.tool.d.ts} +5 -5
- package/dist/tools/rules/rules.tool.d.ts.map +1 -0
- package/dist/tools/rules/rules.tool.js +133 -0
- package/dist/tools/rules/rules.tool.js.map +1 -0
- package/dist/tools/tool-registry.js +4 -4
- package/dist/tools/tool-registry.js.map +1 -1
- package/package.json +12 -2
- package/dist/prompts/memory/memory.prompt.d.ts +0 -32
- package/dist/prompts/memory/memory.prompt.d.ts.map +0 -1
- package/dist/prompts/memory/memory.prompt.js.map +0 -1
- package/dist/tools/memory/memory.tool.d.ts.map +0 -1
- package/dist/tools/memory/memory.tool.js +0 -110
- package/dist/tools/memory/memory.tool.js.map +0 -1
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
export class ListCommand {
|
|
3
|
+
factory;
|
|
4
|
+
constructor(factory) {
|
|
5
|
+
this.factory = factory;
|
|
6
|
+
}
|
|
7
|
+
async execute(options = {}) {
|
|
8
|
+
console.log(chalk.cyan.bold('\n📋 Supported Platforms for tiny-brain MCP Server\n'));
|
|
9
|
+
const platforms = await this.getPlatformInfo(options);
|
|
10
|
+
this.displayPlatforms(platforms, options);
|
|
11
|
+
console.log();
|
|
12
|
+
console.log(chalk.gray('────────────────────────────────────────'));
|
|
13
|
+
console.log(chalk.gray(`💡 To install tiny-brain on a platform, run:`));
|
|
14
|
+
console.log(chalk.cyan(` tiny-brain install <platform>`));
|
|
15
|
+
console.log(chalk.gray(` or`));
|
|
16
|
+
console.log(chalk.cyan(` tiny-brain install`));
|
|
17
|
+
console.log(chalk.gray(` for interactive installation`));
|
|
18
|
+
}
|
|
19
|
+
async getPlatformInfo(options) {
|
|
20
|
+
const supportedPlatforms = this.factory.getSupportedPlatforms();
|
|
21
|
+
const detectedPlatforms = options.showDetected
|
|
22
|
+
? await this.getDetectedPlatforms()
|
|
23
|
+
: [];
|
|
24
|
+
return supportedPlatforms.map(platform => {
|
|
25
|
+
const info = this.getPlatformDetails(platform);
|
|
26
|
+
return {
|
|
27
|
+
...info,
|
|
28
|
+
detected: detectedPlatforms.includes(platform)
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
async getDetectedPlatforms() {
|
|
33
|
+
try {
|
|
34
|
+
const installers = await this.factory.getInstallersForInstalledPlatforms();
|
|
35
|
+
return installers.map(i => i.getPlatformName());
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
getPlatformDetails(platform) {
|
|
42
|
+
const platforms = {
|
|
43
|
+
'claude-code': {
|
|
44
|
+
name: 'claude-code',
|
|
45
|
+
displayName: 'Claude Code',
|
|
46
|
+
emoji: '🤖',
|
|
47
|
+
description: 'Anthropic\'s AI coding assistant CLI tool'
|
|
48
|
+
},
|
|
49
|
+
'claude-desktop': {
|
|
50
|
+
name: 'claude-desktop',
|
|
51
|
+
displayName: 'Claude Desktop',
|
|
52
|
+
emoji: '💻',
|
|
53
|
+
description: 'Desktop chat application for Claude AI'
|
|
54
|
+
},
|
|
55
|
+
'cursor': {
|
|
56
|
+
name: 'cursor',
|
|
57
|
+
displayName: 'Cursor IDE',
|
|
58
|
+
emoji: '⚡',
|
|
59
|
+
description: 'AI-powered code editor built on VSCode'
|
|
60
|
+
},
|
|
61
|
+
'chatgpt': {
|
|
62
|
+
name: 'chatgpt',
|
|
63
|
+
displayName: 'ChatGPT Desktop',
|
|
64
|
+
emoji: '🧠',
|
|
65
|
+
description: 'OpenAI\'s desktop chat application'
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
return platforms[platform] || {
|
|
69
|
+
name: platform,
|
|
70
|
+
displayName: platform,
|
|
71
|
+
emoji: '📦',
|
|
72
|
+
description: 'Unknown platform'
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
displayPlatforms(platforms, options) {
|
|
76
|
+
const maxNameLength = Math.max(...platforms.map(p => p.displayName.length));
|
|
77
|
+
for (const platform of platforms) {
|
|
78
|
+
const padding = ' '.repeat(maxNameLength - platform.displayName.length);
|
|
79
|
+
let line = `${platform.emoji} ${chalk.bold(platform.displayName)}${padding}`;
|
|
80
|
+
if (options.showDetected && platform.detected) {
|
|
81
|
+
line += ` ${chalk.green('✅ Detected')}`;
|
|
82
|
+
}
|
|
83
|
+
console.log(line);
|
|
84
|
+
console.log(chalk.gray(` ${platform.description}`));
|
|
85
|
+
console.log(chalk.gray(` Command: ${chalk.cyan(`tiny-brain install ${platform.name}`)}`));
|
|
86
|
+
console.log();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=list.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.command.js","sourceRoot":"","sources":["../../../src/cli/commands/list.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { InstallerFactory } from '../installers/installer-factory.js';
|
|
2
|
+
import { ConfigScope } from '../../storage/platform-path-builder.js';
|
|
3
|
+
interface StatusOptions {
|
|
4
|
+
name?: string;
|
|
5
|
+
scope?: ConfigScope;
|
|
6
|
+
verbose?: boolean;
|
|
7
|
+
platform?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class StatusCommand {
|
|
10
|
+
private factory;
|
|
11
|
+
constructor(factory: InstallerFactory);
|
|
12
|
+
execute(options?: StatusOptions): Promise<void>;
|
|
13
|
+
private checkPlatforms;
|
|
14
|
+
private displayStatuses;
|
|
15
|
+
private getPlatformDisplayName;
|
|
16
|
+
private showSummary;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=status.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAErE,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAQD,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAmB;gBAEtB,OAAO,EAAE,gBAAgB;IAI/B,OAAO,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;YAsB3C,cAAc;IAwC5B,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,WAAW;CA2BpB"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
export class StatusCommand {
|
|
3
|
+
factory;
|
|
4
|
+
constructor(factory) {
|
|
5
|
+
this.factory = factory;
|
|
6
|
+
}
|
|
7
|
+
async execute(options = {}) {
|
|
8
|
+
console.log(chalk.cyan.bold('\n📊 tiny-brain Installation Status\n'));
|
|
9
|
+
const serverName = options.name || 'tiny-brain';
|
|
10
|
+
// Get status for platforms
|
|
11
|
+
const statuses = await this.checkPlatforms(serverName, options);
|
|
12
|
+
if (statuses.length === 0) {
|
|
13
|
+
console.log(chalk.yellow('⚠️ No platforms found'));
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
// Display status for each platform
|
|
17
|
+
this.displayStatuses(statuses, options);
|
|
18
|
+
// Show summary
|
|
19
|
+
if (!options.platform) {
|
|
20
|
+
this.showSummary(statuses);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
async checkPlatforms(serverName, options) {
|
|
24
|
+
const statuses = [];
|
|
25
|
+
if (options.platform) {
|
|
26
|
+
// Check specific platform
|
|
27
|
+
try {
|
|
28
|
+
const installer = this.factory.getInstaller(options.platform);
|
|
29
|
+
const installed = await installer.verify(serverName, {
|
|
30
|
+
scope: options.scope || 'local'
|
|
31
|
+
});
|
|
32
|
+
statuses.push({
|
|
33
|
+
platform: options.platform,
|
|
34
|
+
installed,
|
|
35
|
+
configPath: installer.getConfigPath()
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
console.error(chalk.red(`❌ Error checking platform ${options.platform}: ${error}`));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
// Check all platforms
|
|
44
|
+
const installers = this.factory.getAllInstallers();
|
|
45
|
+
for (const installer of installers) {
|
|
46
|
+
const platform = installer.getPlatformName();
|
|
47
|
+
const installed = await installer.verify(serverName, {
|
|
48
|
+
scope: options.scope || 'local'
|
|
49
|
+
});
|
|
50
|
+
statuses.push({
|
|
51
|
+
platform,
|
|
52
|
+
installed,
|
|
53
|
+
configPath: installer.getConfigPath()
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return statuses;
|
|
58
|
+
}
|
|
59
|
+
displayStatuses(statuses, options) {
|
|
60
|
+
const maxPlatformLength = Math.max(...statuses.map(s => this.getPlatformDisplayName(s.platform).length));
|
|
61
|
+
for (const status of statuses) {
|
|
62
|
+
const platformName = this.getPlatformDisplayName(status.platform);
|
|
63
|
+
const padding = ' '.repeat(maxPlatformLength - platformName.length);
|
|
64
|
+
if (status.installed) {
|
|
65
|
+
console.log(`${platformName}${padding} ${chalk.green('✅ Installed')}`);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
console.log(`${platformName}${padding} ${chalk.gray('❌ Not installed')}`);
|
|
69
|
+
}
|
|
70
|
+
if (options.verbose) {
|
|
71
|
+
console.log(chalk.gray(` Config: ${status.configPath}`));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
getPlatformDisplayName(platform) {
|
|
76
|
+
const displayNames = {
|
|
77
|
+
'claude-code': '🤖 Claude Code',
|
|
78
|
+
'claude-desktop': '💻 Claude Desktop',
|
|
79
|
+
'cursor': '⚡ Cursor IDE',
|
|
80
|
+
'chatgpt': '🧠 ChatGPT Desktop'
|
|
81
|
+
};
|
|
82
|
+
return displayNames[platform] || platform;
|
|
83
|
+
}
|
|
84
|
+
showSummary(statuses) {
|
|
85
|
+
const installed = statuses.filter(s => s.installed).length;
|
|
86
|
+
const notInstalled = statuses.filter(s => !s.installed).length;
|
|
87
|
+
console.log();
|
|
88
|
+
console.log(chalk.cyan('──────────────────────────────'));
|
|
89
|
+
if (installed > 0 && notInstalled > 0) {
|
|
90
|
+
console.log(chalk.cyan(`📈 Summary: ${chalk.green(`${installed} installed`)}, ${chalk.gray(`${notInstalled} not installed`)}`));
|
|
91
|
+
}
|
|
92
|
+
else if (installed > 0) {
|
|
93
|
+
console.log(chalk.green(`✅ tiny-brain is installed on ${installed} platform${installed > 1 ? 's' : ''}`));
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
console.log(chalk.yellow(`⚠️ tiny-brain is not installed on any platforms`));
|
|
97
|
+
}
|
|
98
|
+
console.log();
|
|
99
|
+
if (notInstalled > 0) {
|
|
100
|
+
console.log(chalk.gray(`💡 Run ${chalk.cyan('tiny-brain install')} to set up on more platforms`));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=status.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.command.js","sourceRoot":"","sources":["../../../src/cli/commands/status.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { InstallerFactory } from '../installers/installer-factory.js';
|
|
2
|
+
import { ConfigScope } from '../../storage/platform-path-builder.js';
|
|
3
|
+
interface UninstallOptions {
|
|
4
|
+
platform?: string;
|
|
5
|
+
all?: boolean;
|
|
6
|
+
name?: string;
|
|
7
|
+
scope?: ConfigScope;
|
|
8
|
+
force?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare class UninstallCommand {
|
|
11
|
+
private factory;
|
|
12
|
+
constructor(factory: InstallerFactory);
|
|
13
|
+
execute(options?: UninstallOptions): Promise<void>;
|
|
14
|
+
private determinePlatforms;
|
|
15
|
+
private getInstalledPlatforms;
|
|
16
|
+
private promptForPlatforms;
|
|
17
|
+
private confirmUninstall;
|
|
18
|
+
private getPlatformDisplayName;
|
|
19
|
+
private uninstallPlatforms;
|
|
20
|
+
private showSummary;
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=uninstall.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/uninstall.command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAErE,UAAU,gBAAgB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAQD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAmB;gBAEtB,OAAO,EAAE,gBAAgB;IAI/B,OAAO,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;YA8B9C,kBAAkB;YAuBlB,qBAAqB;YASrB,kBAAkB;YAqClB,gBAAgB;IAe9B,OAAO,CAAC,sBAAsB;YAWhB,kBAAkB;IAkDhC,OAAO,CAAC,WAAW;CA6BpB"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import inquirer from 'inquirer';
|
|
3
|
+
export class UninstallCommand {
|
|
4
|
+
factory;
|
|
5
|
+
constructor(factory) {
|
|
6
|
+
this.factory = factory;
|
|
7
|
+
}
|
|
8
|
+
async execute(options = {}) {
|
|
9
|
+
console.log(chalk.cyan.bold('\n🗑️ tiny-brain MCP Server Uninstaller\n'));
|
|
10
|
+
const serverName = options.name || 'tiny-brain';
|
|
11
|
+
// Determine which platforms to uninstall from
|
|
12
|
+
const platforms = await this.determinePlatforms(options);
|
|
13
|
+
if (platforms.length === 0) {
|
|
14
|
+
console.log(chalk.yellow('⚠️ No platforms selected for uninstallation'));
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
// Confirm uninstallation unless --force flag is set
|
|
18
|
+
if (!options.force) {
|
|
19
|
+
const confirmed = await this.confirmUninstall(platforms, serverName);
|
|
20
|
+
if (!confirmed) {
|
|
21
|
+
console.log(chalk.yellow('\n⚠️ Uninstallation cancelled'));
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
// Uninstall from each selected platform
|
|
26
|
+
console.log(chalk.cyan(`\n🗑️ Uninstalling from ${platforms.length} platform(s)...\n`));
|
|
27
|
+
const results = await this.uninstallPlatforms(platforms, serverName, options);
|
|
28
|
+
// Show summary
|
|
29
|
+
this.showSummary(results);
|
|
30
|
+
}
|
|
31
|
+
async determinePlatforms(options) {
|
|
32
|
+
// If specific platform provided
|
|
33
|
+
if (options.platform) {
|
|
34
|
+
return [options.platform];
|
|
35
|
+
}
|
|
36
|
+
// Get installed platforms
|
|
37
|
+
const installedPlatforms = await this.getInstalledPlatforms();
|
|
38
|
+
if (installedPlatforms.length === 0) {
|
|
39
|
+
console.log(chalk.yellow('⚠️ tiny-brain is not installed on any platforms'));
|
|
40
|
+
return [];
|
|
41
|
+
}
|
|
42
|
+
// If --all flag is set
|
|
43
|
+
if (options.all) {
|
|
44
|
+
return installedPlatforms;
|
|
45
|
+
}
|
|
46
|
+
// Interactive mode
|
|
47
|
+
return await this.promptForPlatforms(installedPlatforms);
|
|
48
|
+
}
|
|
49
|
+
async getInstalledPlatforms() {
|
|
50
|
+
try {
|
|
51
|
+
const installers = await this.factory.getInstallersForInstalledPlatforms();
|
|
52
|
+
return installers.map(i => i.getPlatformName());
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return [];
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async promptForPlatforms(installedPlatforms) {
|
|
59
|
+
const choices = [
|
|
60
|
+
{
|
|
61
|
+
name: chalk.bold('🗑️ Uninstall All'),
|
|
62
|
+
value: 'all',
|
|
63
|
+
checked: false
|
|
64
|
+
},
|
|
65
|
+
...installedPlatforms.map(platform => ({
|
|
66
|
+
name: this.getPlatformDisplayName(platform),
|
|
67
|
+
value: platform,
|
|
68
|
+
checked: false
|
|
69
|
+
}))
|
|
70
|
+
];
|
|
71
|
+
const { platforms } = await inquirer.prompt([
|
|
72
|
+
{
|
|
73
|
+
type: 'checkbox',
|
|
74
|
+
name: 'platforms',
|
|
75
|
+
message: '🎯 Select platforms to uninstall tiny-brain from:',
|
|
76
|
+
choices,
|
|
77
|
+
validate: (answer) => {
|
|
78
|
+
if (answer.length === 0) {
|
|
79
|
+
return 'You must select at least one platform';
|
|
80
|
+
}
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
]);
|
|
85
|
+
// Handle "Uninstall All" selection
|
|
86
|
+
if (platforms.includes('all')) {
|
|
87
|
+
return installedPlatforms;
|
|
88
|
+
}
|
|
89
|
+
return platforms;
|
|
90
|
+
}
|
|
91
|
+
async confirmUninstall(platforms, serverName) {
|
|
92
|
+
const platformList = platforms.map(p => ` • ${this.getPlatformDisplayName(p)}`).join('\n');
|
|
93
|
+
const { confirm } = await inquirer.prompt([
|
|
94
|
+
{
|
|
95
|
+
type: 'confirm',
|
|
96
|
+
name: 'confirm',
|
|
97
|
+
message: `Are you sure you want to uninstall "${serverName}" from:\n${platformList}\n`,
|
|
98
|
+
default: false
|
|
99
|
+
}
|
|
100
|
+
]);
|
|
101
|
+
return confirm;
|
|
102
|
+
}
|
|
103
|
+
getPlatformDisplayName(platform) {
|
|
104
|
+
const displayNames = {
|
|
105
|
+
'claude-code': '🤖 Claude Code',
|
|
106
|
+
'claude-desktop': '💻 Claude Desktop',
|
|
107
|
+
'cursor': '⚡ Cursor IDE',
|
|
108
|
+
'chatgpt': '🧠 ChatGPT Desktop'
|
|
109
|
+
};
|
|
110
|
+
return displayNames[platform] || platform;
|
|
111
|
+
}
|
|
112
|
+
async uninstallPlatforms(platforms, serverName, options) {
|
|
113
|
+
const results = new Map();
|
|
114
|
+
for (const platform of platforms) {
|
|
115
|
+
console.log(chalk.cyan.bold(`\n🗑️ Uninstalling Tiny Brain from ${platform}...`));
|
|
116
|
+
try {
|
|
117
|
+
const installer = this.factory.getInstaller(platform);
|
|
118
|
+
console.log(chalk.gray(`🔍 Locating configuration...`));
|
|
119
|
+
const configPath = installer.getConfigPath();
|
|
120
|
+
console.log(chalk.gray(` 📁 Config path: ${configPath}`));
|
|
121
|
+
console.log(chalk.gray(`🗑️ Removing tiny-brain configuration...`));
|
|
122
|
+
await installer.uninstall(serverName, {
|
|
123
|
+
scope: options.scope || 'local'
|
|
124
|
+
});
|
|
125
|
+
// Verify uninstallation
|
|
126
|
+
console.log(chalk.gray(`🔍 Verifying removal...`));
|
|
127
|
+
const stillInstalled = await installer.verify(serverName, { scope: options.scope || 'local' });
|
|
128
|
+
if (!stillInstalled) {
|
|
129
|
+
console.log(chalk.green.bold(`✅ Successfully uninstalled tiny-brain from ${this.getPlatformDisplayName(platform)}`));
|
|
130
|
+
results.set(platform, { success: true });
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
console.log(chalk.yellow(`⚠️ Uninstalled but verification shows it still exists in ${this.getPlatformDisplayName(platform)}`));
|
|
134
|
+
console.log(chalk.gray(` 💡 You may need to manually edit ${configPath}`));
|
|
135
|
+
results.set(platform, { success: false, error: 'Verification failed' });
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
140
|
+
console.error(chalk.red(`❌ Uninstall failed for ${this.getPlatformDisplayName(platform)}: ${errorMessage}`));
|
|
141
|
+
results.set(platform, { success: false, error: errorMessage });
|
|
142
|
+
}
|
|
143
|
+
console.log(); // Empty line between platforms
|
|
144
|
+
}
|
|
145
|
+
return results;
|
|
146
|
+
}
|
|
147
|
+
showSummary(results) {
|
|
148
|
+
console.log(chalk.cyan.bold('📊 Uninstall Summary:\n'));
|
|
149
|
+
let successCount = 0;
|
|
150
|
+
let failureCount = 0;
|
|
151
|
+
for (const [platform, result] of results) {
|
|
152
|
+
if (result.success) {
|
|
153
|
+
console.log(chalk.green(` ✅ ${this.getPlatformDisplayName(platform)}`));
|
|
154
|
+
successCount++;
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
console.log(chalk.red(` ❌ ${this.getPlatformDisplayName(platform)} - ${result.error}`));
|
|
158
|
+
failureCount++;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
console.log();
|
|
162
|
+
if (failureCount === 0) {
|
|
163
|
+
console.log(chalk.green.bold(`🎉 All uninstallations completed successfully!`));
|
|
164
|
+
console.log(chalk.gray(`\n💡 tiny-brain has been removed from the selected platforms.`));
|
|
165
|
+
}
|
|
166
|
+
else if (successCount > 0) {
|
|
167
|
+
console.log(chalk.yellow(`⚠️ ${successCount} succeeded, ${failureCount} failed`));
|
|
168
|
+
console.log(chalk.gray(`\n💡 Check the errors above for failed platforms.`));
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
console.log(chalk.red(`❌ All uninstallations failed`));
|
|
172
|
+
console.log(chalk.gray(`\n💡 Please check the errors above and try again.`));
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=uninstall.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall.command.js","sourceRoot":"","sources":["../../../src/cli/commands/uninstall.command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAkBhC,MAAM,OAAO,gBAAgB;IACnB,OAAO,CAAmB;IAElC,YAAY,OAAyB;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAA4B,EAAE;QAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;QAE3E,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC;QAEhD,8CAA8C;QAC9C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,8CAA8C,CAAC,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QAED,oDAAoD;QACpD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACrE,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC;gBAC5D,OAAO;YACT,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,SAAS,CAAC,MAAM,mBAAmB,CAAC,CAAC,CAAC;QAEzF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAE9E,eAAe;QACf,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,OAAyB;QACxD,gCAAgC;QAChC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;QAED,0BAA0B;QAC1B,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE9D,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,kDAAkD,CAAC,CAAC,CAAC;YAC9E,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,uBAAuB;QACvB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,OAAO,kBAAkB,CAAC;QAC5B,CAAC;QAED,mBAAmB;QACnB,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IAC3D,CAAC;IAEO,KAAK,CAAC,qBAAqB;QACjC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kCAAkC,EAAE,CAAC;YAC3E,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,kBAA4B;QAC3D,MAAM,OAAO,GAAqB;YAChC;gBACE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC;gBACtC,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,KAAK;aACf;YACD,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACrC,IAAI,EAAE,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC;gBAC3C,KAAK,EAAE,QAAQ;gBACf,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;SACJ,CAAC;QAEF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YAC1C;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,mDAAmD;gBAC5D,OAAO;gBACP,QAAQ,EAAE,CAAC,MAAgB,EAAE,EAAE;oBAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACxB,OAAO,uCAAuC,CAAC;oBACjD,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;SACF,CAAC,CAAC;QAEH,mCAAmC;QACnC,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,kBAAkB,CAAC;QAC5B,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,SAAmB,EAAE,UAAkB;QACpE,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5F,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACxC;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,uCAAuC,UAAU,YAAY,YAAY,IAAI;gBACtF,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,sBAAsB,CAAC,QAAgB;QAC7C,MAAM,YAAY,GAA2B;YAC3C,aAAa,EAAE,gBAAgB;YAC/B,gBAAgB,EAAE,mBAAmB;YACrC,QAAQ,EAAE,cAAc;YACxB,SAAS,EAAE,oBAAoB;SAChC,CAAC;QAEF,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC;IAC5C,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,SAAmB,EACnB,UAAkB,EAClB,OAAyB;QAEzB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgD,CAAC;QAExE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uCAAuC,QAAQ,KAAK,CAAC,CAAC,CAAC;YAEnF,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAEtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;gBACxD,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC,CAAC;gBAE5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;gBAErE,MAAM,SAAS,CAAC,SAAS,CAAC,UAAU,EAAE;oBACpC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO;iBAChC,CAAC,CAAC;gBAEH,wBAAwB;gBACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;gBACnD,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,MAAM,CAC3C,UAAU,EACV,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO,EAAE,CACpC,CAAC;gBAEF,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,8CAA8C,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;oBACrH,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3C,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6DAA6D,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;oBAChI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uCAAuC,UAAU,EAAE,CAAC,CAAC,CAAC;oBAC7E,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;gBAC9E,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,KAAK,YAAY,EAAE,CAAC,CAAC,CAAC;gBAC7G,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;YACjE,CAAC;YAED,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,+BAA+B;QAChD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,WAAW,CAAC,OAA0D;QAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAExD,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACzC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1E,YAAY,EAAE,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC1F,YAAY,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC,CAAC;QAC3F,CAAC;aAAM,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,YAAY,eAAe,YAAY,SAAS,CAAC,CAAC,CAAC;YACnF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ConfigScope } from '../../storage/platform-path-builder.js';
|
|
2
|
+
export interface InstallOptions {
|
|
3
|
+
scope: ConfigScope;
|
|
4
|
+
name: string;
|
|
5
|
+
env?: Record<string, string>;
|
|
6
|
+
validateServer?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface UninstallOptions {
|
|
9
|
+
scope: ConfigScope;
|
|
10
|
+
}
|
|
11
|
+
export declare abstract class BasePlatformInstaller {
|
|
12
|
+
abstract getPlatformName(): string;
|
|
13
|
+
abstract getConfigPath(): string;
|
|
14
|
+
abstract install(serverPath: string, options: InstallOptions): Promise<void>;
|
|
15
|
+
abstract uninstall(name: string, options: UninstallOptions): Promise<void>;
|
|
16
|
+
abstract verify(name: string, options: {
|
|
17
|
+
scope: ConfigScope;
|
|
18
|
+
}): Promise<boolean>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=base-installer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-installer.d.ts","sourceRoot":"","sources":["../../../src/cli/installers/base-installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAErE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,8BAAsB,qBAAqB;IACzC,QAAQ,CAAC,eAAe,IAAI,MAAM;IAClC,QAAQ,CAAC,aAAa,IAAI,MAAM;IAChC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAC5E,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1E,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,KAAK,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CACjF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-installer.js","sourceRoot":"","sources":["../../../src/cli/installers/base-installer.ts"],"names":[],"mappings":"AAaA,MAAM,OAAgB,qBAAqB;CAM1C"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BasePlatformInstaller, InstallOptions, UninstallOptions } from './base-installer.js';
|
|
2
|
+
import { PlatformConfigAdapter } from '../../storage/platform-config-adapter.js';
|
|
3
|
+
import { ConfigScope } from '../../storage/platform-path-builder.js';
|
|
4
|
+
import { NodeResolver } from '../utils/node-resolver.js';
|
|
5
|
+
export declare class ChatGPTInstaller extends BasePlatformInstaller {
|
|
6
|
+
private configAdapter;
|
|
7
|
+
private pathBuilder;
|
|
8
|
+
private nodeResolver;
|
|
9
|
+
constructor(configAdapter: PlatformConfigAdapter, nodeResolver?: NodeResolver);
|
|
10
|
+
getPlatformName(): string;
|
|
11
|
+
getConfigPath(): string;
|
|
12
|
+
install(serverPath: string, options: InstallOptions): Promise<void>;
|
|
13
|
+
uninstall(name: string, options: UninstallOptions): Promise<void>;
|
|
14
|
+
verify(name: string, options: {
|
|
15
|
+
scope: ConfigScope;
|
|
16
|
+
}): Promise<boolean>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=chatgpt-installer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chatgpt-installer.d.ts","sourceRoot":"","sources":["../../../src/cli/installers/chatgpt-installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAuB,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,qBAAa,gBAAiB,SAAQ,qBAAqB;IACzD,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,YAAY,CAAe;gBAEvB,aAAa,EAAE,qBAAqB,EAAE,YAAY,CAAC,EAAE,YAAY;IAO7E,eAAe,IAAI,MAAM;IAIzB,aAAa,IAAI,MAAM;IAIjB,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BnE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,KAAK,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAG9E"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { BasePlatformInstaller } from './base-installer.js';
|
|
2
|
+
import { PlatformPathBuilder } from '../../storage/platform-path-builder.js';
|
|
3
|
+
import { NodeResolver } from '../utils/node-resolver.js';
|
|
4
|
+
export class ChatGPTInstaller extends BasePlatformInstaller {
|
|
5
|
+
configAdapter;
|
|
6
|
+
pathBuilder;
|
|
7
|
+
nodeResolver;
|
|
8
|
+
constructor(configAdapter, nodeResolver) {
|
|
9
|
+
super();
|
|
10
|
+
this.configAdapter = configAdapter;
|
|
11
|
+
this.pathBuilder = new PlatformPathBuilder();
|
|
12
|
+
this.nodeResolver = nodeResolver || new NodeResolver();
|
|
13
|
+
}
|
|
14
|
+
getPlatformName() {
|
|
15
|
+
return 'chatgpt';
|
|
16
|
+
}
|
|
17
|
+
getConfigPath() {
|
|
18
|
+
return this.pathBuilder.getChatGPTConfig();
|
|
19
|
+
}
|
|
20
|
+
async install(serverPath, options) {
|
|
21
|
+
// Find the best Node runtime for this platform
|
|
22
|
+
const nodeRuntime = await this.nodeResolver.findNodeRuntime('chatgpt');
|
|
23
|
+
// Optionally validate the server can start
|
|
24
|
+
if (options.validateServer) {
|
|
25
|
+
const testResult = await this.nodeResolver.testServerStartup(nodeRuntime.command, serverPath);
|
|
26
|
+
if (!testResult.success) {
|
|
27
|
+
throw new Error(`Server validation failed: ${testResult.error}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// ChatGPT uses direct config modification
|
|
31
|
+
await this.configAdapter.backupPlatformConfig('chatgpt', options.scope);
|
|
32
|
+
await this.configAdapter.addMCPServer('chatgpt', options.name, {
|
|
33
|
+
command: nodeRuntime.command,
|
|
34
|
+
args: [serverPath],
|
|
35
|
+
env: options.env
|
|
36
|
+
}, options.scope);
|
|
37
|
+
}
|
|
38
|
+
async uninstall(name, options) {
|
|
39
|
+
await this.configAdapter.removeMCPServer('chatgpt', name, options.scope);
|
|
40
|
+
}
|
|
41
|
+
async verify(name, options) {
|
|
42
|
+
return await this.configAdapter.isMCPServerConfigured('chatgpt', name, options.scope);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=chatgpt-installer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chatgpt-installer.js","sourceRoot":"","sources":["../../../src/cli/installers/chatgpt-installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAoC,MAAM,qBAAqB,CAAC;AAE9F,OAAO,EAAE,mBAAmB,EAAe,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,OAAO,gBAAiB,SAAQ,qBAAqB;IACjD,aAAa,CAAwB;IACrC,WAAW,CAAsB;IACjC,YAAY,CAAe;IAEnC,YAAY,aAAoC,EAAE,YAA2B;QAC3E,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,YAAY,IAAI,IAAI,YAAY,EAAE,CAAC;IACzD,CAAC;IAED,eAAe;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,OAAuB;QACvD,+CAA+C;QAC/C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAEvE,2CAA2C;QAC3C,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAC9F,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,6BAA6B,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAExE,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CACnC,SAAS,EACT,OAAO,CAAC,IAAI,EACZ;YACE,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,IAAI,EAAE,CAAC,UAAU,CAAC;YAClB,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,EACD,OAAO,CAAC,KAAK,CACd,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,OAAyB;QACrD,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,OAA+B;QACxD,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACxF,CAAC;CACF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BasePlatformInstaller, InstallOptions, UninstallOptions } from './base-installer.js';
|
|
2
|
+
import { PlatformConfigAdapter } from '../../storage/platform-config-adapter.js';
|
|
3
|
+
import { ConfigScope } from '../../storage/platform-path-builder.js';
|
|
4
|
+
import { NodeResolver } from '../utils/node-resolver.js';
|
|
5
|
+
export declare class ClaudeCodeInstaller extends BasePlatformInstaller {
|
|
6
|
+
private configAdapter;
|
|
7
|
+
private pathBuilder;
|
|
8
|
+
private nodeResolver;
|
|
9
|
+
constructor(configAdapter: PlatformConfigAdapter, nodeResolver?: NodeResolver);
|
|
10
|
+
getPlatformName(): string;
|
|
11
|
+
getConfigPath(): string;
|
|
12
|
+
install(serverPath: string, options: InstallOptions): Promise<void>;
|
|
13
|
+
private installViaCli;
|
|
14
|
+
private installViaConfig;
|
|
15
|
+
uninstall(name: string, options: UninstallOptions): Promise<void>;
|
|
16
|
+
private uninstallViaCli;
|
|
17
|
+
private uninstallViaConfig;
|
|
18
|
+
verify(name: string, options: {
|
|
19
|
+
scope: ConfigScope;
|
|
20
|
+
}): Promise<boolean>;
|
|
21
|
+
isCliAvailable(): Promise<boolean>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=claude-code-installer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-code-installer.d.ts","sourceRoot":"","sources":["../../../src/cli/installers/claude-code-installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAuB,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAMzD,qBAAa,mBAAoB,SAAQ,qBAAqB;IAC5D,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,YAAY,CAAe;gBAEvB,aAAa,EAAE,qBAAqB,EAAE,YAAY,CAAC,EAAE,YAAY;IAO7E,eAAe,IAAI,MAAM;IAIzB,aAAa,IAAI,MAAM;IAIjB,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;YAqB3D,aAAa;YAwBb,gBAAgB;IAiBxB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;YAUzD,eAAe;YAWf,kBAAkB;IAI1B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,KAAK,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvE,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;CAQzC"}
|