@magic-ingredients/tiny-brain-local 0.13.1 → 0.14.11
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/agents/formatters/claude-code-formatter.js +0 -1
- package/dist/agents/formatters/formatter-factory.js +0 -1
- package/dist/agents/types.js +0 -1
- package/dist/core/console-logger.js +0 -1
- package/dist/core/file-logger.js +0 -1
- package/dist/core/mcp-server.js +0 -1
- package/dist/index.d.ts +22 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -151
- package/dist/prompts/index.js +0 -1
- package/dist/prompts/persona/persona.prompt.js +0 -1
- package/dist/prompts/planning/planning.prompt.js +0 -1
- package/dist/prompts/prompt-registry.js +0 -1
- package/dist/prompts/rules/rules.prompt.js +0 -1
- package/dist/prompts/thinking/thinking.prompt.js +0 -1
- package/dist/services/UpdateService.js +0 -1
- package/dist/services/agent-installation-service.js +0 -1
- package/dist/services/agent-manager.js +0 -1
- package/dist/services/agent-service.js +0 -1
- package/dist/services/analyse-service.d.ts +52 -8
- package/dist/services/analyse-service.d.ts.map +1 -1
- package/dist/services/analyse-service.js +325 -66
- package/dist/services/credential-storage.service.js +0 -1
- package/dist/services/dashboard-launcher.service.js +0 -1
- package/dist/services/persona-enhancer.js +0 -1
- package/dist/services/persona-service.js +0 -1
- package/dist/services/remote/auth-token-service.js +0 -1
- package/dist/services/remote/persona-sync-service.js +0 -1
- package/dist/services/remote/system-persona-service.js +0 -1
- package/dist/services/repo-service.d.ts.map +1 -1
- package/dist/services/repo-service.js +31 -25
- package/dist/services/versioning-service.js +0 -1
- package/dist/storage/local-filesystem-adapter.js +0 -1
- package/dist/storage/platform-config-adapter.js +0 -1
- package/dist/storage/platform-path-builder.js +0 -1
- package/dist/storage/storage-path-builder.js +0 -1
- package/dist/tools/analyse-request/analyse-request.tool.js +0 -1
- package/dist/tools/analyse.tool.d.ts +4 -0
- package/dist/tools/analyse.tool.d.ts.map +1 -1
- package/dist/tools/analyse.tool.js +34 -3
- package/dist/tools/config/config.tool.d.ts +3 -0
- package/dist/tools/config/config.tool.d.ts.map +1 -1
- package/dist/tools/config/config.tool.js +139 -70
- package/dist/tools/config/index.js +0 -1
- package/dist/tools/index.d.ts +4 -4
- package/dist/tools/index.js +0 -1
- package/dist/tools/persona/as.tool.js +0 -1
- package/dist/tools/persona/persona.tool.js +0 -1
- package/dist/tools/plan/plan.tool.d.ts +4 -0
- package/dist/tools/plan/plan.tool.d.ts.map +1 -1
- package/dist/tools/plan/plan.tool.js +144 -32
- package/dist/tools/rules/rules.tool.js +0 -1
- package/dist/tools/strategy/strategy.tool.js +0 -1
- package/dist/tools/thinking/thinking.tool.js +0 -1
- package/dist/tools/tool-registry.js +0 -1
- package/dist/tools/update/update.tool.js +0 -1
- package/dist/tools/validate-response/validate-response.tool.js +0 -1
- package/dist/types/local-context.js +0 -1
- package/dist/types/request-context.d.ts +1 -1
- package/dist/types/request-context.d.ts.map +1 -1
- package/dist/types/request-context.js +0 -1
- package/dist/utils/package-version.js +0 -1
- package/dist/utils/repo-utils.js +0 -1
- package/package.json +7 -26
- package/LICENSE +0 -21
- package/README.md +0 -260
- package/dist/agents/formatters/claude-code-formatter.js.map +0 -1
- package/dist/agents/formatters/formatter-factory.js.map +0 -1
- package/dist/agents/types.js.map +0 -1
- package/dist/analyser/analyzers/script-analyzer.d.ts +0 -10
- package/dist/analyser/analyzers/script-analyzer.d.ts.map +0 -1
- package/dist/analyser/analyzers/script-analyzer.js +0 -205
- package/dist/analyser/analyzers/script-analyzer.js.map +0 -1
- package/dist/analyser/detectors/base-detector.d.ts +0 -12
- package/dist/analyser/detectors/base-detector.d.ts.map +0 -1
- package/dist/analyser/detectors/base-detector.js +0 -50
- package/dist/analyser/detectors/base-detector.js.map +0 -1
- package/dist/analyser/detectors/javascript-detector.d.ts +0 -19
- package/dist/analyser/detectors/javascript-detector.d.ts.map +0 -1
- package/dist/analyser/detectors/javascript-detector.js +0 -347
- package/dist/analyser/detectors/javascript-detector.js.map +0 -1
- package/dist/analyser/index.d.ts +0 -5
- package/dist/analyser/index.d.ts.map +0 -1
- package/dist/analyser/index.js +0 -315
- package/dist/analyser/index.js.map +0 -1
- package/dist/analyser/types.d.ts +0 -2
- package/dist/analyser/types.d.ts.map +0 -1
- package/dist/analyser/types.js +0 -2
- package/dist/analyser/types.js.map +0 -1
- package/dist/analyser/utils.d.ts +0 -5
- package/dist/analyser/utils.d.ts.map +0 -1
- package/dist/analyser/utils.js +0 -24
- package/dist/analyser/utils.js.map +0 -1
- package/dist/cli/cli-factory.d.ts +0 -3
- package/dist/cli/cli-factory.d.ts.map +0 -1
- package/dist/cli/cli-factory.js +0 -235
- package/dist/cli/cli-factory.js.map +0 -1
- package/dist/cli/commands/analyse.command.d.ts +0 -18
- package/dist/cli/commands/analyse.command.d.ts.map +0 -1
- package/dist/cli/commands/analyse.command.js +0 -161
- package/dist/cli/commands/analyse.command.js.map +0 -1
- package/dist/cli/commands/config.command.d.ts +0 -25
- package/dist/cli/commands/config.command.d.ts.map +0 -1
- package/dist/cli/commands/config.command.js +0 -285
- package/dist/cli/commands/config.command.js.map +0 -1
- package/dist/cli/commands/install.command.d.ts +0 -23
- package/dist/cli/commands/install.command.d.ts.map +0 -1
- package/dist/cli/commands/install.command.js +0 -189
- package/dist/cli/commands/install.command.js.map +0 -1
- package/dist/cli/commands/list.command.d.ts +0 -15
- package/dist/cli/commands/list.command.d.ts.map +0 -1
- package/dist/cli/commands/list.command.js +0 -90
- package/dist/cli/commands/list.command.js.map +0 -1
- package/dist/cli/commands/status.command.d.ts +0 -25
- package/dist/cli/commands/status.command.d.ts.map +0 -1
- package/dist/cli/commands/status.command.js +0 -367
- package/dist/cli/commands/status.command.js.map +0 -1
- package/dist/cli/commands/track-commit.command.d.ts +0 -52
- package/dist/cli/commands/track-commit.command.d.ts.map +0 -1
- package/dist/cli/commands/track-commit.command.js +0 -239
- package/dist/cli/commands/track-commit.command.js.map +0 -1
- package/dist/cli/commands/uninstall.command.d.ts +0 -23
- package/dist/cli/commands/uninstall.command.d.ts.map +0 -1
- package/dist/cli/commands/uninstall.command.js +0 -176
- package/dist/cli/commands/uninstall.command.js.map +0 -1
- package/dist/cli/commands/validate-commit-message.command.d.ts +0 -47
- package/dist/cli/commands/validate-commit-message.command.d.ts.map +0 -1
- package/dist/cli/commands/validate-commit-message.command.js +0 -223
- package/dist/cli/commands/validate-commit-message.command.js.map +0 -1
- package/dist/cli/installers/base-installer.d.ts +0 -20
- package/dist/cli/installers/base-installer.d.ts.map +0 -1
- package/dist/cli/installers/base-installer.js +0 -3
- package/dist/cli/installers/base-installer.js.map +0 -1
- package/dist/cli/installers/chatgpt-installer.d.ts +0 -18
- package/dist/cli/installers/chatgpt-installer.d.ts.map +0 -1
- package/dist/cli/installers/chatgpt-installer.js +0 -45
- package/dist/cli/installers/chatgpt-installer.js.map +0 -1
- package/dist/cli/installers/claude-code-installer.d.ts +0 -23
- package/dist/cli/installers/claude-code-installer.d.ts.map +0 -1
- package/dist/cli/installers/claude-code-installer.js +0 -127
- package/dist/cli/installers/claude-code-installer.js.map +0 -1
- package/dist/cli/installers/claude-desktop-installer.d.ts +0 -18
- package/dist/cli/installers/claude-desktop-installer.d.ts.map +0 -1
- package/dist/cli/installers/claude-desktop-installer.js +0 -48
- package/dist/cli/installers/claude-desktop-installer.js.map +0 -1
- package/dist/cli/installers/cursor-installer.d.ts +0 -18
- package/dist/cli/installers/cursor-installer.d.ts.map +0 -1
- package/dist/cli/installers/cursor-installer.js +0 -45
- package/dist/cli/installers/cursor-installer.js.map +0 -1
- package/dist/cli/installers/installer-factory.d.ts +0 -30
- package/dist/cli/installers/installer-factory.d.ts.map +0 -1
- package/dist/cli/installers/installer-factory.js +0 -90
- package/dist/cli/installers/installer-factory.js.map +0 -1
- package/dist/cli/utils/node-resolver.d.ts +0 -53
- package/dist/cli/utils/node-resolver.d.ts.map +0 -1
- package/dist/cli/utils/node-resolver.js +0 -200
- package/dist/cli/utils/node-resolver.js.map +0 -1
- package/dist/cli/utils/package-locator.d.ts +0 -9
- package/dist/cli/utils/package-locator.d.ts.map +0 -1
- package/dist/cli/utils/package-locator.js +0 -81
- package/dist/cli/utils/package-locator.js.map +0 -1
- package/dist/cli/utils/system-info.d.ts +0 -20
- package/dist/cli/utils/system-info.d.ts.map +0 -1
- package/dist/cli/utils/system-info.js +0 -90
- package/dist/cli/utils/system-info.js.map +0 -1
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -27
- package/dist/cli.js.map +0 -1
- package/dist/core/console-logger.js.map +0 -1
- package/dist/core/file-logger.js.map +0 -1
- package/dist/core/mcp-server.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/prompts/index.js.map +0 -1
- package/dist/prompts/persona/persona.prompt.js.map +0 -1
- package/dist/prompts/planning/planning.prompt.js.map +0 -1
- package/dist/prompts/prompt-registry.js.map +0 -1
- package/dist/prompts/rules/rules.prompt.js.map +0 -1
- package/dist/prompts/thinking/thinking.prompt.js.map +0 -1
- package/dist/services/UpdateService.js.map +0 -1
- package/dist/services/adr-service.d.ts +0 -70
- package/dist/services/adr-service.d.ts.map +0 -1
- package/dist/services/adr-service.js +0 -242
- package/dist/services/adr-service.js.map +0 -1
- package/dist/services/agent-installation-service.js.map +0 -1
- package/dist/services/agent-manager.js.map +0 -1
- package/dist/services/agent-service.js.map +0 -1
- package/dist/services/analyse-service.js.map +0 -1
- package/dist/services/credential-storage.service.js.map +0 -1
- package/dist/services/dashboard-launcher.service.js.map +0 -1
- package/dist/services/persona-enhancer.js.map +0 -1
- package/dist/services/persona-grouper.d.ts +0 -29
- package/dist/services/persona-grouper.d.ts.map +0 -1
- package/dist/services/persona-grouper.js +0 -111
- package/dist/services/persona-grouper.js.map +0 -1
- package/dist/services/persona-service.js.map +0 -1
- package/dist/services/remote/auth-token-service.js.map +0 -1
- package/dist/services/remote/persona-sync-service.js.map +0 -1
- package/dist/services/remote/system-persona-service.js.map +0 -1
- package/dist/services/repo-service.js.map +0 -1
- package/dist/services/types/persona-types.d.ts +0 -84
- package/dist/services/types/persona-types.d.ts.map +0 -1
- package/dist/services/types/persona-types.js +0 -5
- package/dist/services/types/persona-types.js.map +0 -1
- package/dist/services/versioning-service.js.map +0 -1
- package/dist/storage/local-filesystem-adapter.js.map +0 -1
- package/dist/storage/platform-config-adapter.js.map +0 -1
- package/dist/storage/platform-path-builder.js.map +0 -1
- package/dist/storage/storage-path-builder.js.map +0 -1
- package/dist/test-setup.d.ts +0 -2
- package/dist/test-setup.d.ts.map +0 -1
- package/dist/test-setup.js +0 -12
- package/dist/test-setup.js.map +0 -1
- package/dist/tools/analyse-request/analyse-request.tool.js.map +0 -1
- package/dist/tools/analyse.tool.js.map +0 -1
- package/dist/tools/config/config.tool.js.map +0 -1
- package/dist/tools/config/index.js.map +0 -1
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/persona/as.tool.js.map +0 -1
- package/dist/tools/persona/persona.tool.js.map +0 -1
- package/dist/tools/plan/plan.tool.js.map +0 -1
- package/dist/tools/rules/rules.tool.js.map +0 -1
- package/dist/tools/strategy/strategy.tool.js.map +0 -1
- package/dist/tools/thinking/thinking.tool.js.map +0 -1
- package/dist/tools/tool-registry.js.map +0 -1
- package/dist/tools/update/update.tool.js.map +0 -1
- package/dist/tools/validate-response/validate-response.tool.js.map +0 -1
- package/dist/types/local-context.js.map +0 -1
- package/dist/types/request-context.js.map +0 -1
- package/dist/utils/adr-pattern-detector.d.ts +0 -38
- package/dist/utils/adr-pattern-detector.d.ts.map +0 -1
- package/dist/utils/adr-pattern-detector.js +0 -158
- package/dist/utils/adr-pattern-detector.js.map +0 -1
- package/dist/utils/adr-suggestion-generator.d.ts +0 -50
- package/dist/utils/adr-suggestion-generator.d.ts.map +0 -1
- package/dist/utils/adr-suggestion-generator.js +0 -63
- package/dist/utils/adr-suggestion-generator.js.map +0 -1
- package/dist/utils/commit-parser.d.ts +0 -25
- package/dist/utils/commit-parser.d.ts.map +0 -1
- package/dist/utils/commit-parser.js +0 -46
- package/dist/utils/commit-parser.js.map +0 -1
- package/dist/utils/package-version.js.map +0 -1
- package/dist/utils/repo-utils.js.map +0 -1
- package/templates/adr/README.md +0 -243
- package/templates/adr/_template/0001-record-architecture-decisions.md +0 -223
- package/templates/adr/_template/ADR_CREATION_INSTRUCTIONS.md +0 -234
- package/templates/adr/_template/adr-schema.json +0 -74
- package/templates/adr/_template/adr-template.md +0 -136
- package/templates/prd/PRD_CREATION_INSTRUCTIONS.md +0 -268
- package/templates/prd/README.md +0 -252
- package/templates/prd/_template/feature-template.md +0 -105
- package/templates/prd/_template/prd-template.md +0 -126
- package/templates/prd/example-task-management/features/task-collaboration.md +0 -84
- package/templates/prd/example-task-management/features/task-crud.md +0 -222
- package/templates/prd/example-task-management/features/task-workflow.md +0 -62
- package/templates/prd/example-task-management/prd.md +0 -177
- package/templates/prd/feature-schema.json +0 -54
- package/templates/prd/prd-schema.json +0 -60
|
@@ -1,223 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Validate Commit Message Command
|
|
3
|
-
*
|
|
4
|
-
* CLI command called by commit-msg git hook to validate PRD/Feature/Task references.
|
|
5
|
-
* Prevents commits with invalid references from being created.
|
|
6
|
-
*/
|
|
7
|
-
import * as fs from 'fs/promises';
|
|
8
|
-
import * as path from 'path';
|
|
9
|
-
export class ValidateCommitMessageCommand {
|
|
10
|
-
/**
|
|
11
|
-
* Read commit message from file
|
|
12
|
-
*/
|
|
13
|
-
async readCommitMessage(filePath) {
|
|
14
|
-
try {
|
|
15
|
-
return await fs.readFile(filePath, 'utf-8');
|
|
16
|
-
}
|
|
17
|
-
catch (error) {
|
|
18
|
-
throw new Error(`Failed to read commit message file: ${error.message}`);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Parse commit headers for PRD, Feature, and Task metadata
|
|
23
|
-
* @returns Parsed headers or null if any required header is missing
|
|
24
|
-
*/
|
|
25
|
-
parseCommitHeaders(message) {
|
|
26
|
-
const prdMatch = message.match(/^PRD:\s*(.+)$/m);
|
|
27
|
-
const featureMatch = message.match(/^Feature:\s*(.+)$/m);
|
|
28
|
-
const taskMatch = message.match(/^Task:\s*(.+)$/m);
|
|
29
|
-
// All three headers are required
|
|
30
|
-
if (!prdMatch || !featureMatch || !taskMatch) {
|
|
31
|
-
return null;
|
|
32
|
-
}
|
|
33
|
-
return {
|
|
34
|
-
prdId: prdMatch[1].trim(),
|
|
35
|
-
featureId: featureMatch[1].trim(),
|
|
36
|
-
taskDescription: taskMatch[1].trim(),
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Validate that PRD directory exists
|
|
41
|
-
*/
|
|
42
|
-
async validatePRDExists(prdId, prdBasePath) {
|
|
43
|
-
try {
|
|
44
|
-
const prdPath = path.join(prdBasePath, prdId);
|
|
45
|
-
// Check if PRD directory exists
|
|
46
|
-
try {
|
|
47
|
-
const stats = await fs.stat(prdPath);
|
|
48
|
-
if (stats.isDirectory()) {
|
|
49
|
-
return { valid: true };
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
catch {
|
|
53
|
-
// Directory doesn't exist - list available PRDs
|
|
54
|
-
}
|
|
55
|
-
// List available PRDs
|
|
56
|
-
let availablePRDs = [];
|
|
57
|
-
try {
|
|
58
|
-
const entries = await fs.readdir(prdBasePath, { withFileTypes: true });
|
|
59
|
-
availablePRDs = entries
|
|
60
|
-
.filter(entry => entry.isDirectory())
|
|
61
|
-
.map(entry => entry.name)
|
|
62
|
-
.sort();
|
|
63
|
-
}
|
|
64
|
-
catch {
|
|
65
|
-
return {
|
|
66
|
-
valid: false,
|
|
67
|
-
error: `No PRDs found in ${prdBasePath}. Please create a PRD first.`
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
if (availablePRDs.length === 0) {
|
|
71
|
-
return {
|
|
72
|
-
valid: false,
|
|
73
|
-
error: `No PRDs found in ${prdBasePath}. Please create a PRD first.`
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
return {
|
|
77
|
-
valid: false,
|
|
78
|
-
error: `PRD not found: ${prdId}\n\nAvailable PRDs:\n - ${availablePRDs.join('\n - ')}`
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
catch (error) {
|
|
82
|
-
return {
|
|
83
|
-
valid: false,
|
|
84
|
-
error: `Error validating PRD: ${error.message}`
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Validate that feature exists in progress.json
|
|
90
|
-
*/
|
|
91
|
-
async validateFeatureExists(prdId, featureId, prdBasePath) {
|
|
92
|
-
try {
|
|
93
|
-
const progressJsonPath = path.join(prdBasePath, prdId, 'progress.json');
|
|
94
|
-
// Check if progress.json exists
|
|
95
|
-
let progressData;
|
|
96
|
-
try {
|
|
97
|
-
const content = await fs.readFile(progressJsonPath, 'utf-8');
|
|
98
|
-
progressData = JSON.parse(content);
|
|
99
|
-
}
|
|
100
|
-
catch {
|
|
101
|
-
return {
|
|
102
|
-
valid: false,
|
|
103
|
-
error: `No progress.json found for PRD: ${prdId}`
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
// Check if features array exists
|
|
107
|
-
if (!progressData.features || !Array.isArray(progressData.features)) {
|
|
108
|
-
return {
|
|
109
|
-
valid: false,
|
|
110
|
-
error: `No features found in PRD: ${prdId}`
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
// Find feature by ID
|
|
114
|
-
const feature = progressData.features.find((f) => f.id === featureId);
|
|
115
|
-
if (feature) {
|
|
116
|
-
return { valid: true };
|
|
117
|
-
}
|
|
118
|
-
// Feature not found - list available features
|
|
119
|
-
const availableFeatures = progressData.features.map((f) => `${f.id} (#${f.number}: ${f.title})`);
|
|
120
|
-
return {
|
|
121
|
-
valid: false,
|
|
122
|
-
error: `Feature not found: ${featureId}\n\nAvailable features:\n - ${availableFeatures.join('\n - ')}`
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
catch (error) {
|
|
126
|
-
return {
|
|
127
|
-
valid: false,
|
|
128
|
-
error: `Error validating feature: ${error.message}`
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Validate that task exists in feature's tasks array by exact description match
|
|
134
|
-
*/
|
|
135
|
-
async validateTaskExists(prdId, featureId, taskDescription, prdBasePath) {
|
|
136
|
-
try {
|
|
137
|
-
const progressJsonPath = path.join(prdBasePath, prdId, 'progress.json');
|
|
138
|
-
// Check if progress.json exists
|
|
139
|
-
let progressData;
|
|
140
|
-
try {
|
|
141
|
-
const content = await fs.readFile(progressJsonPath, 'utf-8');
|
|
142
|
-
progressData = JSON.parse(content);
|
|
143
|
-
}
|
|
144
|
-
catch {
|
|
145
|
-
return {
|
|
146
|
-
valid: false,
|
|
147
|
-
error: `No progress.json found for PRD: ${prdId}`
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
// Check if features array exists
|
|
151
|
-
if (!progressData.features || !Array.isArray(progressData.features)) {
|
|
152
|
-
return {
|
|
153
|
-
valid: false,
|
|
154
|
-
error: `No features found in PRD: ${prdId}`
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
// Find feature by ID
|
|
158
|
-
const feature = progressData.features.find((f) => f.id === featureId);
|
|
159
|
-
if (!feature) {
|
|
160
|
-
return {
|
|
161
|
-
valid: false,
|
|
162
|
-
error: `Feature not found: ${featureId}`
|
|
163
|
-
};
|
|
164
|
-
}
|
|
165
|
-
// Check if tasks array exists
|
|
166
|
-
if (!feature.tasks || !Array.isArray(feature.tasks)) {
|
|
167
|
-
return {
|
|
168
|
-
valid: false,
|
|
169
|
-
error: `No tasks found in feature: ${featureId}`
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
// Find task by exact case-sensitive description match
|
|
173
|
-
const task = feature.tasks.find((t) => t.description === taskDescription);
|
|
174
|
-
if (task) {
|
|
175
|
-
return { valid: true };
|
|
176
|
-
}
|
|
177
|
-
// Task not found - list available tasks
|
|
178
|
-
const availableTasks = feature.tasks.map((t) => t.description);
|
|
179
|
-
return {
|
|
180
|
-
valid: false,
|
|
181
|
-
error: `Task not found: ${taskDescription}\n\nAvailable tasks in ${featureId}:\n - ${availableTasks.join('\n - ')}`
|
|
182
|
-
};
|
|
183
|
-
}
|
|
184
|
-
catch (error) {
|
|
185
|
-
return {
|
|
186
|
-
valid: false,
|
|
187
|
-
error: `Error validating task: ${error.message}`
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Execute validation
|
|
193
|
-
*/
|
|
194
|
-
async execute(options) {
|
|
195
|
-
// Read commit message from file
|
|
196
|
-
const message = await this.readCommitMessage(options.messageFile);
|
|
197
|
-
// Parse headers
|
|
198
|
-
const headers = this.parseCommitHeaders(message);
|
|
199
|
-
// If no headers, allow commit (not PRD-tracked)
|
|
200
|
-
if (!headers) {
|
|
201
|
-
return;
|
|
202
|
-
}
|
|
203
|
-
// Determine PRD base path (default to docs/prd in current directory)
|
|
204
|
-
const prdBasePath = options.prdBasePath || path.join(process.cwd(), 'docs/prd');
|
|
205
|
-
// Validate PRD exists
|
|
206
|
-
const prdValidation = await this.validatePRDExists(headers.prdId, prdBasePath);
|
|
207
|
-
if (!prdValidation.valid) {
|
|
208
|
-
throw new Error(prdValidation.error);
|
|
209
|
-
}
|
|
210
|
-
// Validate feature exists
|
|
211
|
-
const featureValidation = await this.validateFeatureExists(headers.prdId, headers.featureId, prdBasePath);
|
|
212
|
-
if (!featureValidation.valid) {
|
|
213
|
-
throw new Error(featureValidation.error);
|
|
214
|
-
}
|
|
215
|
-
// Validate task exists
|
|
216
|
-
const taskValidation = await this.validateTaskExists(headers.prdId, headers.featureId, headers.taskDescription, prdBasePath);
|
|
217
|
-
if (!taskValidation.valid) {
|
|
218
|
-
throw new Error(taskValidation.error);
|
|
219
|
-
}
|
|
220
|
-
// All validations passed
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
//# sourceMappingURL=validate-commit-message.command.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validate-commit-message.command.js","sourceRoot":"","sources":["../../../src/cli/commands/validate-commit-message.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base-installer.js","sourceRoot":"","sources":["../../../src/cli/installers/base-installer.ts"],"names":[],"mappings":"AAaA,MAAM,OAAgB,qBAAqB;CAM1C"}
|
|
@@ -1,18 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,45 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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;YAmCb,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;IAavE,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;CAQzC"}
|
|
@@ -1,127 +0,0 @@
|
|
|
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
|
-
import { exec } from 'child_process';
|
|
5
|
-
import { promisify } from 'util';
|
|
6
|
-
const execAsync = promisify(exec);
|
|
7
|
-
export class ClaudeCodeInstaller extends BasePlatformInstaller {
|
|
8
|
-
configAdapter;
|
|
9
|
-
pathBuilder;
|
|
10
|
-
nodeResolver;
|
|
11
|
-
constructor(configAdapter, nodeResolver) {
|
|
12
|
-
super();
|
|
13
|
-
this.configAdapter = configAdapter;
|
|
14
|
-
this.pathBuilder = new PlatformPathBuilder();
|
|
15
|
-
this.nodeResolver = nodeResolver || new NodeResolver();
|
|
16
|
-
}
|
|
17
|
-
getPlatformName() {
|
|
18
|
-
return 'claude-code';
|
|
19
|
-
}
|
|
20
|
-
getConfigPath() {
|
|
21
|
-
return this.pathBuilder.getClaudeCodeConfig();
|
|
22
|
-
}
|
|
23
|
-
async install(serverPath, options) {
|
|
24
|
-
// Find the best Node runtime for this platform
|
|
25
|
-
const nodeRuntime = await this.nodeResolver.findNodeRuntime('claude-code');
|
|
26
|
-
// Optionally validate the server can start
|
|
27
|
-
if (options.validateServer) {
|
|
28
|
-
const testResult = await this.nodeResolver.testServerStartup(nodeRuntime.command, serverPath);
|
|
29
|
-
if (!testResult.success) {
|
|
30
|
-
throw new Error(`Server validation failed: ${testResult.error}`);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
// Try to use CLI first
|
|
34
|
-
if (await this.isCliAvailable()) {
|
|
35
|
-
await this.installViaCli(serverPath, options, nodeRuntime.command);
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
// Fall back to direct config modification
|
|
39
|
-
await this.installViaConfig(serverPath, options, nodeRuntime.command);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
async installViaCli(serverPath, options, nodeCommand) {
|
|
43
|
-
// First check if server already exists and remove it
|
|
44
|
-
try {
|
|
45
|
-
const checkCommand = `claude mcp get ${options.name}`;
|
|
46
|
-
await execAsync(checkCommand);
|
|
47
|
-
// Server exists, remove it first to update configuration
|
|
48
|
-
const removeCommand = `claude mcp remove ${options.name}${options.scope ? ` --scope ${options.scope}` : ''}`;
|
|
49
|
-
await execAsync(removeCommand);
|
|
50
|
-
}
|
|
51
|
-
catch {
|
|
52
|
-
// Server doesn't exist, proceed with normal installation
|
|
53
|
-
}
|
|
54
|
-
const args = [
|
|
55
|
-
'mcp',
|
|
56
|
-
'add',
|
|
57
|
-
options.name,
|
|
58
|
-
'--',
|
|
59
|
-
nodeCommand,
|
|
60
|
-
serverPath
|
|
61
|
-
];
|
|
62
|
-
if (options.scope) {
|
|
63
|
-
args.push('--scope', options.scope);
|
|
64
|
-
}
|
|
65
|
-
if (options.env) {
|
|
66
|
-
for (const [key, value] of Object.entries(options.env)) {
|
|
67
|
-
args.push('-e', `${key}=${value}`);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
const command = `claude ${args.join(' ')}`;
|
|
71
|
-
await execAsync(command);
|
|
72
|
-
}
|
|
73
|
-
async installViaConfig(serverPath, options, nodeCommand) {
|
|
74
|
-
// Backup existing config first
|
|
75
|
-
await this.configAdapter.backupPlatformConfig('claude-code', options.scope);
|
|
76
|
-
// Add the server to config
|
|
77
|
-
await this.configAdapter.addMCPServer('claude-code', options.name, {
|
|
78
|
-
command: nodeCommand,
|
|
79
|
-
args: [serverPath],
|
|
80
|
-
env: options.env
|
|
81
|
-
}, options.scope);
|
|
82
|
-
}
|
|
83
|
-
async uninstall(name, options) {
|
|
84
|
-
// Try to use CLI first
|
|
85
|
-
if (await this.isCliAvailable()) {
|
|
86
|
-
await this.uninstallViaCli(name, options);
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
// Fall back to direct config modification
|
|
90
|
-
await this.uninstallViaConfig(name, options);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
async uninstallViaCli(name, options) {
|
|
94
|
-
const args = ['mcp', 'remove', name];
|
|
95
|
-
if (options.scope) {
|
|
96
|
-
args.push('--scope', options.scope);
|
|
97
|
-
}
|
|
98
|
-
const command = `claude ${args.join(' ')}`;
|
|
99
|
-
await execAsync(command);
|
|
100
|
-
}
|
|
101
|
-
async uninstallViaConfig(name, options) {
|
|
102
|
-
await this.configAdapter.removeMCPServer('claude-code', name, options.scope);
|
|
103
|
-
}
|
|
104
|
-
async verify(name, options) {
|
|
105
|
-
// Try CLI verification first if available
|
|
106
|
-
try {
|
|
107
|
-
const command = `claude mcp get ${name}`;
|
|
108
|
-
const result = await execAsync(command);
|
|
109
|
-
// Check if the output contains the server name (successful get)
|
|
110
|
-
return result.stdout.includes(name);
|
|
111
|
-
}
|
|
112
|
-
catch {
|
|
113
|
-
// If CLI fails, fall back to config file verification
|
|
114
|
-
return await this.configAdapter.isMCPServerConfigured('claude-code', name, options.scope);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
async isCliAvailable() {
|
|
118
|
-
try {
|
|
119
|
-
await execAsync('claude --version');
|
|
120
|
-
return true;
|
|
121
|
-
}
|
|
122
|
-
catch {
|
|
123
|
-
return false;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
//# sourceMappingURL=claude-code-installer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-installer.js","sourceRoot":"","sources":["../../../src/cli/installers/claude-code-installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
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 ClaudeDesktopInstaller 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=claude-desktop-installer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude-desktop-installer.d.ts","sourceRoot":"","sources":["../../../src/cli/installers/claude-desktop-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,sBAAuB,SAAQ,qBAAqB;IAC/D,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,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAE,KAAK,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAI/E"}
|
|
@@ -1,48 +0,0 @@
|
|
|
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 ClaudeDesktopInstaller 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 'claude-desktop';
|
|
16
|
-
}
|
|
17
|
-
getConfigPath() {
|
|
18
|
-
return this.pathBuilder.getClaudeDesktopConfig();
|
|
19
|
-
}
|
|
20
|
-
async install(serverPath, options) {
|
|
21
|
-
// Find the best Node runtime for this platform
|
|
22
|
-
const nodeRuntime = await this.nodeResolver.findNodeRuntime('claude-desktop');
|
|
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
|
-
// Claude Desktop doesn't use scope - always uses single config file
|
|
31
|
-
await this.configAdapter.backupPlatformConfig('claude-desktop', undefined);
|
|
32
|
-
await this.configAdapter.addMCPServer('claude-desktop', options.name, {
|
|
33
|
-
command: nodeRuntime.command,
|
|
34
|
-
args: [serverPath],
|
|
35
|
-
env: options.env
|
|
36
|
-
}, undefined // Claude Desktop doesn't use scope
|
|
37
|
-
);
|
|
38
|
-
}
|
|
39
|
-
async uninstall(name, _options) {
|
|
40
|
-
// Claude Desktop doesn't use scope
|
|
41
|
-
await this.configAdapter.removeMCPServer('claude-desktop', name, undefined);
|
|
42
|
-
}
|
|
43
|
-
async verify(name, _options) {
|
|
44
|
-
// Claude Desktop doesn't use scope
|
|
45
|
-
return await this.configAdapter.isMCPServerConfigured('claude-desktop', name, undefined);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=claude-desktop-installer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude-desktop-installer.js","sourceRoot":"","sources":["../../../src/cli/installers/claude-desktop-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,sBAAuB,SAAQ,qBAAqB;IACvD,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,gBAAgB,CAAC;IAC1B,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,OAAuB;QACvD,+CAA+C;QAC/C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QAE9E,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,oEAAoE;QACpE,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;QAE3E,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CACnC,gBAAgB,EAChB,OAAO,CAAC,IAAI,EACZ;YACE,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,IAAI,EAAE,CAAC,UAAU,CAAC;YAClB,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,EACD,SAAS,CAAC,mCAAmC;SAC9C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,QAA0B;QACtD,mCAAmC;QACnC,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,gBAAgB,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,QAAgC;QACzD,mCAAmC;QACnC,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3F,CAAC;CACF"}
|
|
@@ -1,18 +0,0 @@
|
|
|
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 CursorInstaller 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=cursor-installer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-installer.d.ts","sourceRoot":"","sources":["../../../src/cli/installers/cursor-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,eAAgB,SAAQ,qBAAqB;IACxD,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"}
|