codingbuddy 5.1.2 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -0
- package/dist/src/app.module.js +2 -0
- package/dist/src/app.module.js.map +1 -1
- package/dist/src/cli/cli.d.ts +3 -3
- package/dist/src/cli/cli.js +118 -1
- package/dist/src/cli/cli.js.map +1 -1
- package/dist/src/cli/cli.types.d.ts +14 -0
- package/dist/src/cli/init/init.constants.js +0 -1
- package/dist/src/cli/init/init.constants.js.map +1 -1
- package/dist/src/cli/plugin/install.command.d.ts +10 -0
- package/dist/src/cli/plugin/install.command.js +31 -0
- package/dist/src/cli/plugin/install.command.js.map +1 -0
- package/dist/src/cli/plugin/plugins.command.d.ts +9 -0
- package/dist/src/cli/plugin/plugins.command.js +51 -0
- package/dist/src/cli/plugin/plugins.command.js.map +1 -0
- package/dist/src/cli/plugin/search.command.d.ts +9 -0
- package/dist/src/cli/plugin/search.command.js +53 -0
- package/dist/src/cli/plugin/search.command.js.map +1 -0
- package/dist/src/cli/plugin/uninstall.command.d.ts +12 -0
- package/dist/src/cli/plugin/uninstall.command.js +79 -0
- package/dist/src/cli/plugin/uninstall.command.js.map +1 -0
- package/dist/src/cli/plugin/update.command.d.ts +11 -0
- package/dist/src/cli/plugin/update.command.js +103 -0
- package/dist/src/cli/plugin/update.command.js.map +1 -0
- package/dist/src/cli/run-tui.js +16 -0
- package/dist/src/cli/run-tui.js.map +1 -1
- package/dist/src/context/briefing-loader.service.d.ts +27 -0
- package/dist/src/context/briefing-loader.service.js +124 -0
- package/dist/src/context/briefing-loader.service.js.map +1 -0
- package/dist/src/context/briefing.service.d.ts +27 -0
- package/dist/src/context/briefing.service.js +181 -0
- package/dist/src/context/briefing.service.js.map +1 -0
- package/dist/src/context/briefing.types.d.ts +13 -0
- package/dist/src/context/briefing.types.js +6 -0
- package/dist/src/context/briefing.types.js.map +1 -0
- package/dist/src/context/context.module.js +16 -2
- package/dist/src/context/context.module.js.map +1 -1
- package/dist/src/context/index.d.ts +2 -0
- package/dist/src/context/index.js +2 -0
- package/dist/src/context/index.js.map +1 -1
- package/dist/src/main.js +0 -17
- package/dist/src/main.js.map +1 -1
- package/dist/src/mcp/handlers/briefing.handler.d.ts +12 -0
- package/dist/src/mcp/handlers/briefing.handler.js +71 -0
- package/dist/src/mcp/handlers/briefing.handler.js.map +1 -0
- package/dist/src/mcp/handlers/index.d.ts +4 -0
- package/dist/src/mcp/handlers/index.js +9 -1
- package/dist/src/mcp/handlers/index.js.map +1 -1
- package/dist/src/mcp/handlers/quality-report.handler.d.ts +12 -0
- package/dist/src/mcp/handlers/quality-report.handler.js +75 -0
- package/dist/src/mcp/handlers/quality-report.handler.js.map +1 -0
- package/dist/src/mcp/handlers/resume.handler.d.ts +12 -0
- package/dist/src/mcp/handlers/resume.handler.js +63 -0
- package/dist/src/mcp/handlers/resume.handler.js.map +1 -0
- package/dist/src/mcp/handlers/rule-impact.handler.d.ts +23 -0
- package/dist/src/mcp/handlers/rule-impact.handler.js +241 -0
- package/dist/src/mcp/handlers/rule-impact.handler.js.map +1 -0
- package/dist/src/mcp/handlers/skill.handler.js +2 -2
- package/dist/src/mcp/handlers/skill.handler.js.map +1 -1
- package/dist/src/mcp/mcp.module.js +6 -0
- package/dist/src/mcp/mcp.module.js.map +1 -1
- package/dist/src/plugin/plugin-installer.service.d.ts +41 -0
- package/dist/src/plugin/plugin-installer.service.js +183 -0
- package/dist/src/plugin/plugin-installer.service.js.map +1 -0
- package/dist/src/plugin/plugin-manifest.schema.d.ts +21 -0
- package/dist/src/plugin/plugin-manifest.schema.js +45 -0
- package/dist/src/plugin/plugin-manifest.schema.js.map +1 -0
- package/dist/src/plugin/plugin.module.d.ts +2 -0
- package/dist/src/plugin/plugin.module.js +17 -0
- package/dist/src/plugin/plugin.module.js.map +1 -0
- package/dist/src/plugin/plugin.types.d.ts +7 -0
- package/dist/src/plugin/plugin.types.js +3 -0
- package/dist/src/plugin/plugin.types.js.map +1 -0
- package/dist/src/plugin/registry-client.d.ts +24 -0
- package/dist/src/plugin/registry-client.js +45 -0
- package/dist/src/plugin/registry-client.js.map +1 -0
- package/dist/src/rules/rule-event-collector.d.ts +7 -0
- package/dist/src/rules/rule-event-collector.js +38 -0
- package/dist/src/rules/rule-event-collector.js.map +1 -0
- package/dist/src/rules/rule-event.types.d.ts +9 -0
- package/dist/src/rules/rule-event.types.js +10 -0
- package/dist/src/rules/rule-event.types.js.map +1 -0
- package/dist/src/rules/rule-stats-writer.d.ts +23 -0
- package/dist/src/rules/rule-stats-writer.js +138 -0
- package/dist/src/rules/rule-stats-writer.js.map +1 -0
- package/dist/src/rules/rules.module.js +4 -2
- package/dist/src/rules/rules.module.js.map +1 -1
- package/dist/src/rules/rules.service.d.ts +2 -1
- package/dist/src/rules/rules.service.js.map +1 -1
- package/dist/src/rules/skill.schema.d.ts +5 -0
- package/dist/src/rules/skill.schema.js +6 -0
- package/dist/src/rules/skill.schema.js.map +1 -1
- package/dist/src/shared/rules-core.d.ts +2 -1
- package/dist/src/shared/rules-core.js +1 -0
- package/dist/src/shared/rules-core.js.map +1 -1
- package/dist/src/shared/version.d.ts +1 -1
- package/dist/src/shared/version.js +1 -1
- package/dist/src/ship/file-specialist-mapper.d.ts +9 -0
- package/dist/src/ship/file-specialist-mapper.js +56 -0
- package/dist/src/ship/file-specialist-mapper.js.map +1 -0
- package/dist/src/ship/quality-report.service.d.ts +6 -0
- package/dist/src/ship/quality-report.service.js +56 -0
- package/dist/src/ship/quality-report.service.js.map +1 -0
- package/dist/src/ship/quality-report.types.d.ts +20 -0
- package/dist/src/ship/quality-report.types.js +3 -0
- package/dist/src/ship/quality-report.types.js.map +1 -0
- package/dist/src/ship/ship.module.d.ts +2 -0
- package/dist/src/ship/ship.module.js +21 -0
- package/dist/src/ship/ship.module.js.map +1 -0
- package/dist/src/skill/skill-recommendation.service.d.ts +9 -2
- package/dist/src/skill/skill-recommendation.service.js +94 -16
- package/dist/src/skill/skill-recommendation.service.js.map +1 -1
- package/dist/src/skill/skill.module.js +2 -0
- package/dist/src/skill/skill.module.js.map +1 -1
- package/dist/src/tui/__perf__/memory-stability.spec.js +6 -6
- package/dist/src/tui/__perf__/memory-stability.spec.js.map +1 -1
- package/dist/src/tui/__perf__/rendering-performance.spec.js +5 -8
- package/dist/src/tui/__perf__/rendering-performance.spec.js.map +1 -1
- package/dist/src/tui/dashboard-app.spec.js +15 -15
- package/dist/src/tui/dashboard-app.spec.js.map +1 -1
- package/dist/src/tui/eventbus-ui.integration.spec.js +45 -45
- package/dist/src/tui/eventbus-ui.integration.spec.js.map +1 -1
- package/dist/src/tui/events/hud-file-bridge.d.ts +21 -0
- package/dist/src/tui/events/hud-file-bridge.js +112 -0
- package/dist/src/tui/events/hud-file-bridge.js.map +1 -0
- package/dist/src/tui/events/index.d.ts +1 -0
- package/dist/src/tui/events/index.js +3 -1
- package/dist/src/tui/events/index.js.map +1 -1
- package/dist/src/tui/testing/tui-test-utils.d.ts +2 -0
- package/dist/src/tui/testing/tui-test-utils.js +25 -0
- package/dist/src/tui/testing/tui-test-utils.js.map +1 -0
- package/dist/src/tui/transport-tui.integration.spec.js +8 -8
- package/dist/src/tui/transport-tui.integration.spec.js.map +1 -1
- package/dist/src/tui-bundle.mjs +226 -61
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -21,6 +21,11 @@ npx codingbuddy init
|
|
|
21
21
|
|---------|-------------|
|
|
22
22
|
| `codingbuddy init` | Analyze project and generate configuration |
|
|
23
23
|
| `codingbuddy mcp` | Start MCP server (stdio mode by default) |
|
|
24
|
+
| `codingbuddy install <source>` | Install plugin from git URL or registry |
|
|
25
|
+
| `codingbuddy search <query>` | Search plugins in registry |
|
|
26
|
+
| `codingbuddy plugins` | List installed plugins |
|
|
27
|
+
| `codingbuddy update [name]` | Update outdated plugins |
|
|
28
|
+
| `codingbuddy uninstall <name>` | Uninstall plugin |
|
|
24
29
|
| `codingbuddy --help` | Show help |
|
|
25
30
|
| `codingbuddy --version` | Show version |
|
|
26
31
|
|
|
@@ -45,6 +50,10 @@ npx codingbuddy init
|
|
|
45
50
|
| `get_code_conventions` | **🆕** Get project code conventions from config files (tsconfig, eslint, prettier, editorconfig, markdownlint) |
|
|
46
51
|
| `generate_checklist` | Generate contextual checklists including conventions domain |
|
|
47
52
|
| `analyze_task` | Comprehensive task analysis with risk assessment |
|
|
53
|
+
| `pr_quality_report` | Run specialist agents on changed files for PR quality |
|
|
54
|
+
| `create_briefing` | Capture session state for cross-session recovery |
|
|
55
|
+
| `resume_session` | Load previous session briefing |
|
|
56
|
+
| `get_rule_impact_report` | Rule effectiveness analytics |
|
|
48
57
|
|
|
49
58
|
### MCP Prompts
|
|
50
59
|
|
package/dist/src/app.module.js
CHANGED
|
@@ -16,6 +16,7 @@ const agent_module_1 = require("./agent/agent.module");
|
|
|
16
16
|
const checklist_module_1 = require("./checklist/checklist.module");
|
|
17
17
|
const context_module_1 = require("./context/context.module");
|
|
18
18
|
const events_module_1 = require("./tui/events/events.module");
|
|
19
|
+
const plugin_module_1 = require("./plugin/plugin.module");
|
|
19
20
|
let AppModule = class AppModule {
|
|
20
21
|
};
|
|
21
22
|
exports.AppModule = AppModule;
|
|
@@ -30,6 +31,7 @@ exports.AppModule = AppModule = __decorate([
|
|
|
30
31
|
checklist_module_1.ChecklistModule,
|
|
31
32
|
context_module_1.ContextModule,
|
|
32
33
|
events_module_1.TuiEventsModule,
|
|
34
|
+
plugin_module_1.PluginModule,
|
|
33
35
|
],
|
|
34
36
|
})
|
|
35
37
|
], AppModule);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,2CAA8C;AAC9C,uDAAmD;AACnD,iDAA6C;AAC7C,6DAAyD;AACzD,uDAAmD;AACnD,mEAA+D;AAC/D,6DAAyD;AACzD,8DAA6D;
|
|
1
|
+
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,2CAA8C;AAC9C,uDAAmD;AACnD,iDAA6C;AAC7C,6DAAyD;AACzD,uDAAmD;AACnD,mEAA+D;AAC/D,6DAAyD;AACzD,8DAA6D;AAC7D,0DAAsD;AAe/C,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IAbrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,qBAAY,CAAC,OAAO,EAAE;YACtB,0BAAW;YACX,sBAAS;YACT,8BAAa;YACb,0BAAW;YACX,kCAAe;YACf,8BAAa;YACb,+BAAe;YACf,4BAAY;SACb;KACF,CAAC;GACW,SAAS,CAAG"}
|
package/dist/src/cli/cli.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import type { InitOptions, TuiOptions } from './cli.types';
|
|
2
|
+
import type { InitOptions, TuiOptions, InstallOptions, UninstallOptions, SearchOptions, UpdateOptions } from './cli.types';
|
|
3
3
|
export interface ParsedArgs {
|
|
4
|
-
command: 'init' | 'mcp' | 'tui' | 'help' | 'version';
|
|
5
|
-
options: Partial<InitOptions> & Partial<TuiOptions>;
|
|
4
|
+
command: 'init' | 'install' | 'plugins' | 'uninstall' | 'search' | 'update' | 'mcp' | 'tui' | 'help' | 'version';
|
|
5
|
+
options: Partial<InitOptions> & Partial<TuiOptions> & Partial<InstallOptions> & Partial<UninstallOptions> & Partial<SearchOptions> & Partial<UpdateOptions>;
|
|
6
6
|
}
|
|
7
7
|
export declare function parseArgs(args: string[]): ParsedArgs;
|
|
8
8
|
export declare function printUsage(): void;
|
package/dist/src/cli/cli.js
CHANGED
|
@@ -28,6 +28,39 @@ function parseArgs(args) {
|
|
|
28
28
|
const restart = args.includes('--restart');
|
|
29
29
|
return { command: 'tui', options: { ...options, restart } };
|
|
30
30
|
}
|
|
31
|
+
if (command === 'install') {
|
|
32
|
+
const installSource = args[1];
|
|
33
|
+
const installForce = args.includes('--force') || args.includes('-f');
|
|
34
|
+
return {
|
|
35
|
+
command: 'install',
|
|
36
|
+
options: { ...options, installSource, installForce },
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
if (command === 'plugins') {
|
|
40
|
+
return { command: 'plugins', options };
|
|
41
|
+
}
|
|
42
|
+
if (command === 'search') {
|
|
43
|
+
const searchQuery = args.slice(1).join(' ');
|
|
44
|
+
return {
|
|
45
|
+
command: 'search',
|
|
46
|
+
options: { ...options, searchQuery },
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
if (command === 'uninstall') {
|
|
50
|
+
const uninstallName = args[1];
|
|
51
|
+
const uninstallYes = args.includes('--yes') || args.includes('-y');
|
|
52
|
+
return {
|
|
53
|
+
command: 'uninstall',
|
|
54
|
+
options: { ...options, uninstallName, uninstallYes },
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
if (command === 'update') {
|
|
58
|
+
const updatePluginName = args[1];
|
|
59
|
+
return {
|
|
60
|
+
command: 'update',
|
|
61
|
+
options: { ...options, updatePluginName },
|
|
62
|
+
};
|
|
63
|
+
}
|
|
31
64
|
if (command !== 'init') {
|
|
32
65
|
return { command: 'help', options };
|
|
33
66
|
}
|
|
@@ -54,6 +87,11 @@ CodingBuddy CLI - AI-powered project configuration generator
|
|
|
54
87
|
|
|
55
88
|
Usage:
|
|
56
89
|
codingbuddy init [path] [options] Initialize configuration
|
|
90
|
+
codingbuddy install <git-url> Install a plugin from git repository
|
|
91
|
+
codingbuddy search <query> Search plugins in the registry
|
|
92
|
+
codingbuddy plugins List installed plugins
|
|
93
|
+
codingbuddy update [name] Check and update outdated plugins
|
|
94
|
+
codingbuddy uninstall <name> Uninstall a plugin
|
|
57
95
|
codingbuddy mcp Start MCP server (stdio mode)
|
|
58
96
|
codingbuddy tui Monitor agent execution in real-time
|
|
59
97
|
codingbuddy tui --restart Restart TUI client (fixes blank screen)
|
|
@@ -61,7 +99,7 @@ Usage:
|
|
|
61
99
|
codingbuddy --version Show version
|
|
62
100
|
|
|
63
101
|
Options:
|
|
64
|
-
--force, -f Overwrite existing config
|
|
102
|
+
--force, -f Overwrite existing config / force install
|
|
65
103
|
--yes, -y Accept detected defaults (quick setup)
|
|
66
104
|
--api-key <key> Anthropic API key (or set ANTHROPIC_API_KEY env)
|
|
67
105
|
|
|
@@ -69,6 +107,13 @@ Examples:
|
|
|
69
107
|
codingbuddy init Initialize in current directory
|
|
70
108
|
codingbuddy init ./my-project Initialize in specific directory
|
|
71
109
|
codingbuddy init --force Overwrite existing config
|
|
110
|
+
codingbuddy install github:user/repo Install a community plugin
|
|
111
|
+
codingbuddy search nextjs Search for Next.js plugins
|
|
112
|
+
codingbuddy plugins List all installed plugins
|
|
113
|
+
codingbuddy update Check all plugins for updates
|
|
114
|
+
codingbuddy update my-plugin Update a specific plugin
|
|
115
|
+
codingbuddy uninstall my-plugin Remove a plugin
|
|
116
|
+
codingbuddy uninstall my-plugin -y Remove without confirmation
|
|
72
117
|
codingbuddy mcp Start MCP server for AI assistants
|
|
73
118
|
|
|
74
119
|
Note:
|
|
@@ -116,6 +161,78 @@ async function main(args = process.argv.slice(2)) {
|
|
|
116
161
|
await runTui({ restart: options.restart ?? false });
|
|
117
162
|
break;
|
|
118
163
|
}
|
|
164
|
+
case 'search': {
|
|
165
|
+
const { runSearch } = await Promise.resolve().then(() => require('./plugin/search.command'));
|
|
166
|
+
if (!options.searchQuery) {
|
|
167
|
+
process.stderr.write('Error: Missing query. Usage: codingbuddy search <query>\n');
|
|
168
|
+
process.exitCode = 1;
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
const searchResult = await runSearch({ query: options.searchQuery });
|
|
172
|
+
if (!searchResult.success) {
|
|
173
|
+
process.exitCode = 1;
|
|
174
|
+
}
|
|
175
|
+
break;
|
|
176
|
+
}
|
|
177
|
+
case 'install': {
|
|
178
|
+
const { runInstall } = await Promise.resolve().then(() => require('./plugin/install.command'));
|
|
179
|
+
if (!options.installSource) {
|
|
180
|
+
process.stderr.write('Error: Missing git URL. Usage: codingbuddy install <git-url>\n');
|
|
181
|
+
process.exitCode = 1;
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
const installResult = await runInstall({
|
|
185
|
+
source: options.installSource,
|
|
186
|
+
projectRoot: options.projectRoot ?? process.cwd(),
|
|
187
|
+
force: options.installForce ?? false,
|
|
188
|
+
});
|
|
189
|
+
if (!installResult.success) {
|
|
190
|
+
process.exitCode = 1;
|
|
191
|
+
}
|
|
192
|
+
break;
|
|
193
|
+
}
|
|
194
|
+
case 'plugins': {
|
|
195
|
+
const { runPlugins } = await Promise.resolve().then(() => require('./plugin/plugins.command'));
|
|
196
|
+
const pluginsResult = runPlugins({
|
|
197
|
+
projectRoot: options.projectRoot ?? process.cwd(),
|
|
198
|
+
});
|
|
199
|
+
if (!pluginsResult.success) {
|
|
200
|
+
process.exitCode = 1;
|
|
201
|
+
}
|
|
202
|
+
break;
|
|
203
|
+
}
|
|
204
|
+
case 'uninstall': {
|
|
205
|
+
const { runUninstall } = await Promise.resolve().then(() => require('./plugin/uninstall.command'));
|
|
206
|
+
if (!options.uninstallName) {
|
|
207
|
+
process.stderr.write('Error: Missing plugin name. Usage: codingbuddy uninstall <name>\n');
|
|
208
|
+
process.exitCode = 1;
|
|
209
|
+
break;
|
|
210
|
+
}
|
|
211
|
+
const uninstallResult = runUninstall({
|
|
212
|
+
pluginName: options.uninstallName,
|
|
213
|
+
projectRoot: options.projectRoot ?? process.cwd(),
|
|
214
|
+
yes: options.uninstallYes ?? false,
|
|
215
|
+
});
|
|
216
|
+
if (!uninstallResult.success && !uninstallResult.confirmationRequired) {
|
|
217
|
+
process.exitCode = 1;
|
|
218
|
+
}
|
|
219
|
+
if (uninstallResult.confirmationRequired) {
|
|
220
|
+
process.stderr.write('Confirmation required. Use --yes or -y to skip.\n');
|
|
221
|
+
process.exitCode = 1;
|
|
222
|
+
}
|
|
223
|
+
break;
|
|
224
|
+
}
|
|
225
|
+
case 'update': {
|
|
226
|
+
const { runUpdate } = await Promise.resolve().then(() => require('./plugin/update.command'));
|
|
227
|
+
const updateResult = await runUpdate({
|
|
228
|
+
projectRoot: options.projectRoot ?? process.cwd(),
|
|
229
|
+
pluginName: options.updatePluginName,
|
|
230
|
+
});
|
|
231
|
+
if (!updateResult.success) {
|
|
232
|
+
process.exitCode = 1;
|
|
233
|
+
}
|
|
234
|
+
break;
|
|
235
|
+
}
|
|
119
236
|
case 'init': {
|
|
120
237
|
const result = await (0, init_1.runInit)(options);
|
|
121
238
|
if (!result.success) {
|
package/dist/src/cli/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli/cli.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli/cli.ts"],"names":[],"mappings":";;;AA6CA,8BAuFC;AAKD,gCA8CC;AAKD,oCAEC;AAoBD,oBAgHC;AA3TD,iCAAiC;AACjC,kCAAoC;AACpC,2DAA4D;AAoC5D,SAAgB,SAAS,CAAC,IAAc;IACtC,MAAM,OAAO,GAAyB;QACpC,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE;QAC1B,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,KAAK;KACnB,CAAC;IAGF,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACtC,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IACzC,CAAC;IAGD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACrC,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC3C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;IAC9D,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrE,OAAO;YACL,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE;SACrD,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,OAAO;YACL,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE;SACrC,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnE,OAAO;YACL,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE;SACrD,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,MAAM,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,OAAO;YACL,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,gBAAgB,EAAE;SAC1C,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACtC,CAAC;IAGD,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;QAEpB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACtC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC3C,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;QAC7B,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YAC/B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAEhC,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC;AAKD,SAAgB,UAAU;IACxB,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Cf,CAAC;IAEA,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;AACrC,CAAC;AAKD,SAAgB,YAAY;IAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,IAAA,iCAAiB,GAAE,IAAI,CAAC,CAAC;AAChE,CAAC;AAKD,SAAS,kBAAkB;IACzB,MAAM,OAAO,GAAG;;;;;;;CAOjB,CAAC;IACA,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAKM,KAAK,UAAU,IAAI,CAAC,OAAiB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAG7C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,kBAAkB,EAAE,CAAC;IACvB,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM;YACT,UAAU,EAAE,CAAC;YACb,MAAM;QAER,KAAK,SAAS;YACZ,YAAY,EAAE,CAAC;YACf,MAAM;QAER,KAAK,KAAK;YACR,MAAM,IAAA,gBAAS,GAAE,CAAC;YAClB,MAAM;QAER,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,EAAE,MAAM,EAAE,GAAG,2CAAa,WAAW,EAAC,CAAC;YAC7C,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;YACpD,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,EAAE,SAAS,EAAE,GAAG,2CAAa,yBAAyB,EAAC,CAAC;YAC9D,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;gBAClF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,MAAM;YACR,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YACrE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC1B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,EAAE,UAAU,EAAE,GAAG,2CAAa,0BAA0B,EAAC,CAAC;YAChE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;gBACvF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,MAAM;YACR,CAAC;YACD,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC;gBACrC,MAAM,EAAE,OAAO,CAAC,aAAa;gBAC7B,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE;gBACjD,KAAK,EAAE,OAAO,CAAC,YAAY,IAAI,KAAK;aACrC,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC3B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,EAAE,UAAU,EAAE,GAAG,2CAAa,0BAA0B,EAAC,CAAC;YAChE,MAAM,aAAa,GAAG,UAAU,CAAC;gBAC/B,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE;aAClD,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC3B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,EAAE,YAAY,EAAE,GAAG,2CAAa,4BAA4B,EAAC,CAAC;YACpE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;gBAC1F,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,MAAM;YACR,CAAC;YACD,MAAM,eAAe,GAAG,YAAY,CAAC;gBACnC,UAAU,EAAE,OAAO,CAAC,aAAa;gBACjC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE;gBACjD,GAAG,EAAE,OAAO,CAAC,YAAY,IAAI,KAAK;aACnC,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,CAAC;gBACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;YACD,IAAI,eAAe,CAAC,oBAAoB,EAAE,CAAC;gBACzC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;gBAC1E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,EAAE,SAAS,EAAE,GAAG,2CAAa,yBAAyB,EAAC,CAAC;YAC9D,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC;gBACnC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE;gBACjD,UAAU,EAAE,OAAO,CAAC,gBAAgB;aACrC,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC1B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,IAAA,cAAO,EAAC,OAAsB,CAAC,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;YACD,MAAM;QACR,CAAC;IACH,CAAC;AACH,CAAC;AAGD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACnB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACrC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -15,4 +15,18 @@ export interface InitResult {
|
|
|
15
15
|
export interface TuiOptions {
|
|
16
16
|
restart: boolean;
|
|
17
17
|
}
|
|
18
|
+
export interface InstallOptions {
|
|
19
|
+
installSource?: string;
|
|
20
|
+
installForce?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface UninstallOptions {
|
|
23
|
+
uninstallName?: string;
|
|
24
|
+
uninstallYes?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface SearchOptions {
|
|
27
|
+
searchQuery?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface UpdateOptions {
|
|
30
|
+
updatePluginName?: string;
|
|
31
|
+
}
|
|
18
32
|
export type LogLevel = 'info' | 'success' | 'warn' | 'error';
|
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CODINGBUDDY_GITIGNORE_ENTRIES = exports.CLAUDE_SETTINGS_ENV_ENTRIES = void 0;
|
|
4
4
|
exports.CLAUDE_SETTINGS_ENV_ENTRIES = {
|
|
5
5
|
ENABLE_TOOL_SEARCH: 'false',
|
|
6
|
-
CODINGBUDDY_AUTO_TUI: '1',
|
|
7
6
|
};
|
|
8
7
|
exports.CODINGBUDDY_GITIGNORE_ENTRIES = [
|
|
9
8
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.constants.js","sourceRoot":"","sources":["../../../../src/cli/init/init.constants.ts"],"names":[],"mappings":";;;AAca,QAAA,2BAA2B,GAA2B;IACjE,kBAAkB,EAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"init.constants.js","sourceRoot":"","sources":["../../../../src/cli/init/init.constants.ts"],"names":[],"mappings":";;;AAca,QAAA,2BAA2B,GAA2B;IACjE,kBAAkB,EAAE,OAAO;CAC5B,CAAC;AAQW,QAAA,6BAA6B,GAAqB;IAC7D;QACE,OAAO,EAAE,yBAAyB;QAClC,OAAO,EAAE,iCAAiC;KAC3C;IACD;QACE,OAAO,EAAE,6BAA6B;KACvC;IACD;QACE,OAAO,EAAE,eAAe;KACzB;CACF,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface InstallCommandOptions {
|
|
2
|
+
source: string;
|
|
3
|
+
projectRoot: string;
|
|
4
|
+
force: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface InstallCommandResult {
|
|
7
|
+
success: boolean;
|
|
8
|
+
error?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function runInstall(options: InstallCommandOptions): Promise<InstallCommandResult>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runInstall = runInstall;
|
|
4
|
+
const plugin_installer_service_1 = require("../../plugin/plugin-installer.service");
|
|
5
|
+
const console_1 = require("../utils/console");
|
|
6
|
+
async function runInstall(options) {
|
|
7
|
+
const console = (0, console_1.createConsoleUtils)();
|
|
8
|
+
const installer = new plugin_installer_service_1.PluginInstallerService();
|
|
9
|
+
try {
|
|
10
|
+
const resolved = await installer.resolveSource(options.source);
|
|
11
|
+
console.log.step('📦', `Installing plugin from ${resolved.source}...`);
|
|
12
|
+
const result = await installer.install({
|
|
13
|
+
source: resolved.source,
|
|
14
|
+
targetRoot: options.projectRoot,
|
|
15
|
+
force: options.force,
|
|
16
|
+
version: resolved.version,
|
|
17
|
+
});
|
|
18
|
+
if (result.success) {
|
|
19
|
+
console.log.success(result.summary ?? `Installed ${result.pluginName}`);
|
|
20
|
+
return { success: true };
|
|
21
|
+
}
|
|
22
|
+
console.log.error(result.error ?? 'Installation failed');
|
|
23
|
+
return { success: false, error: result.error };
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
27
|
+
console.log.error(message);
|
|
28
|
+
return { success: false, error: message };
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=install.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.command.js","sourceRoot":"","sources":["../../../../src/cli/plugin/install.command.ts"],"names":[],"mappings":";;AAqBA,gCA4BC;AA1CD,oFAA+E;AAC/E,8CAAsD;AAa/C,KAAK,UAAU,UAAU,CAAC,OAA8B;IAC7D,MAAM,OAAO,GAAG,IAAA,4BAAkB,GAAE,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,iDAAsB,EAAE,CAAC;IAE/C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE/D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,0BAA0B,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;QAEvE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC;YACrC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,UAAU,EAAE,OAAO,CAAC,WAAW;YAC/B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,QAAQ,CAAC,OAAO;SAC1B,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,aAAa,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YACxE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,qBAAqB,CAAC,CAAC;QACzD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACjD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC5C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runPlugins = runPlugins;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const console_1 = require("../utils/console");
|
|
7
|
+
function formatAssetCounts(provides) {
|
|
8
|
+
const parts = [];
|
|
9
|
+
if (provides.agents.length > 0) {
|
|
10
|
+
parts.push(`${provides.agents.length} agents`);
|
|
11
|
+
}
|
|
12
|
+
if (provides.rules.length > 0) {
|
|
13
|
+
parts.push(`${provides.rules.length} rules`);
|
|
14
|
+
}
|
|
15
|
+
if (provides.skills.length > 0) {
|
|
16
|
+
parts.push(`${provides.skills.length} skills`);
|
|
17
|
+
}
|
|
18
|
+
if (provides.checklists.length > 0) {
|
|
19
|
+
parts.push(`${provides.checklists.length} checklists`);
|
|
20
|
+
}
|
|
21
|
+
return parts.length > 0 ? `(${parts.join(', ')})` : '(no assets)';
|
|
22
|
+
}
|
|
23
|
+
function runPlugins(options) {
|
|
24
|
+
const console = (0, console_1.createConsoleUtils)();
|
|
25
|
+
const pluginsJsonPath = (0, path_1.join)(options.projectRoot, '.codingbuddy', 'plugins.json');
|
|
26
|
+
if (!(0, fs_1.existsSync)(pluginsJsonPath)) {
|
|
27
|
+
console.log.info('No plugins installed.');
|
|
28
|
+
return { success: true, count: 0 };
|
|
29
|
+
}
|
|
30
|
+
let registry;
|
|
31
|
+
try {
|
|
32
|
+
const raw = (0, fs_1.readFileSync)(pluginsJsonPath, 'utf-8');
|
|
33
|
+
registry = JSON.parse(raw);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
console.log.error('Failed to read plugins.json. File may be corrupted.');
|
|
37
|
+
return { success: false, count: 0, error: 'Corrupted plugins.json' };
|
|
38
|
+
}
|
|
39
|
+
if (!registry.plugins || registry.plugins.length === 0) {
|
|
40
|
+
console.log.info('No plugins installed.');
|
|
41
|
+
return { success: true, count: 0 };
|
|
42
|
+
}
|
|
43
|
+
console.log.info('Installed plugins:');
|
|
44
|
+
for (const plugin of registry.plugins) {
|
|
45
|
+
const counts = formatAssetCounts(plugin.provides);
|
|
46
|
+
console.log.step(' ', `${plugin.name} ${plugin.version} ${counts}`);
|
|
47
|
+
}
|
|
48
|
+
console.log.info(`\nTotal: ${registry.plugins.length} plugin${registry.plugins.length !== 1 ? 's' : ''}`);
|
|
49
|
+
return { success: true, count: registry.plugins.length };
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=plugins.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.command.js","sourceRoot":"","sources":["../../../../src/cli/plugin/plugins.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runSearch = runSearch;
|
|
4
|
+
const registry_client_1 = require("../../plugin/registry-client");
|
|
5
|
+
const console_1 = require("../utils/console");
|
|
6
|
+
function formatProvides(provides) {
|
|
7
|
+
const parts = [];
|
|
8
|
+
const agents = provides.agents?.length ?? 0;
|
|
9
|
+
const rules = provides.rules?.length ?? 0;
|
|
10
|
+
const skills = provides.skills?.length ?? 0;
|
|
11
|
+
const checklists = provides.checklists?.length ?? 0;
|
|
12
|
+
if (agents > 0)
|
|
13
|
+
parts.push(`${agents} agent${agents !== 1 ? 's' : ''}`);
|
|
14
|
+
if (rules > 0)
|
|
15
|
+
parts.push(`${rules} rule${rules !== 1 ? 's' : ''}`);
|
|
16
|
+
if (skills > 0)
|
|
17
|
+
parts.push(`${skills} skill${skills !== 1 ? 's' : ''}`);
|
|
18
|
+
if (checklists > 0)
|
|
19
|
+
parts.push(`${checklists} checklist${checklists !== 1 ? 's' : ''}`);
|
|
20
|
+
return parts.length > 0 ? parts.join(', ') : 'no assets';
|
|
21
|
+
}
|
|
22
|
+
function printPlugin(console, plugin) {
|
|
23
|
+
console.log.step(' ', `${plugin.name} (${plugin.version}) — ${plugin.description}`);
|
|
24
|
+
if (plugin.tags.length > 0) {
|
|
25
|
+
console.log.step(' ', ` Tags: ${plugin.tags.join(', ')}`);
|
|
26
|
+
}
|
|
27
|
+
console.log.step(' ', ` Provides: ${formatProvides(plugin.provides)}`);
|
|
28
|
+
console.log.step(' ', ` Install: codingbuddy install ${plugin.name}`);
|
|
29
|
+
}
|
|
30
|
+
async function runSearch(options) {
|
|
31
|
+
const console = (0, console_1.createConsoleUtils)();
|
|
32
|
+
const client = new registry_client_1.RegistryClient();
|
|
33
|
+
try {
|
|
34
|
+
const results = await client.search(options.query);
|
|
35
|
+
if (results.length === 0) {
|
|
36
|
+
console.log.info(`No plugins found matching "${options.query}"`);
|
|
37
|
+
return { success: true, count: 0 };
|
|
38
|
+
}
|
|
39
|
+
console.log.step('🔍', `Search results for "${options.query}":\n`);
|
|
40
|
+
for (const plugin of results) {
|
|
41
|
+
printPlugin(console, plugin);
|
|
42
|
+
process.stdout.write('\n');
|
|
43
|
+
}
|
|
44
|
+
console.log.info(`Found ${results.length} plugin${results.length !== 1 ? 's' : ''} matching "${options.query}"`);
|
|
45
|
+
return { success: true, count: results.length };
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
49
|
+
console.log.error(`Search failed: ${message}`);
|
|
50
|
+
return { success: false, count: 0, error: message };
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=search.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.command.js","sourceRoot":"","sources":["../../../../src/cli/plugin/search.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface UninstallCommandOptions {
|
|
2
|
+
pluginName: string;
|
|
3
|
+
projectRoot: string;
|
|
4
|
+
yes: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface UninstallCommandResult {
|
|
7
|
+
success: boolean;
|
|
8
|
+
error?: string;
|
|
9
|
+
confirmationRequired?: boolean;
|
|
10
|
+
pluginSummary?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function runUninstall(options: UninstallCommandOptions): UninstallCommandResult;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runUninstall = runUninstall;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const console_1 = require("../utils/console");
|
|
7
|
+
const ASSET_EXTENSIONS = {
|
|
8
|
+
agents: '.json',
|
|
9
|
+
rules: '.md',
|
|
10
|
+
skills: '.md',
|
|
11
|
+
checklists: '.md',
|
|
12
|
+
};
|
|
13
|
+
const ASSET_DIRS = ['agents', 'rules', 'skills', 'checklists'];
|
|
14
|
+
function removePluginFiles(aiRulesDir, provides) {
|
|
15
|
+
let removedCount = 0;
|
|
16
|
+
for (const dir of ASSET_DIRS) {
|
|
17
|
+
const names = provides[dir] ?? [];
|
|
18
|
+
const ext = ASSET_EXTENSIONS[dir];
|
|
19
|
+
for (const name of names) {
|
|
20
|
+
const filePath = (0, path_1.join)(aiRulesDir, dir, `${name}${ext}`);
|
|
21
|
+
if ((0, fs_1.existsSync)(filePath)) {
|
|
22
|
+
(0, fs_1.unlinkSync)(filePath);
|
|
23
|
+
removedCount++;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return removedCount;
|
|
28
|
+
}
|
|
29
|
+
function buildSummary(plugin) {
|
|
30
|
+
const parts = [];
|
|
31
|
+
if (plugin.provides.agents.length > 0)
|
|
32
|
+
parts.push(`${plugin.provides.agents.length} agents`);
|
|
33
|
+
if (plugin.provides.rules.length > 0)
|
|
34
|
+
parts.push(`${plugin.provides.rules.length} rules`);
|
|
35
|
+
if (plugin.provides.skills.length > 0)
|
|
36
|
+
parts.push(`${plugin.provides.skills.length} skills`);
|
|
37
|
+
if (plugin.provides.checklists.length > 0)
|
|
38
|
+
parts.push(`${plugin.provides.checklists.length} checklists`);
|
|
39
|
+
return parts.length > 0 ? `Removing ${parts.join(', ')}` : 'No assets to remove';
|
|
40
|
+
}
|
|
41
|
+
function runUninstall(options) {
|
|
42
|
+
const console = (0, console_1.createConsoleUtils)();
|
|
43
|
+
const pluginsJsonPath = (0, path_1.join)(options.projectRoot, '.codingbuddy', 'plugins.json');
|
|
44
|
+
if (!(0, fs_1.existsSync)(pluginsJsonPath)) {
|
|
45
|
+
console.log.error(`Plugin "${options.pluginName}" not found. No plugins are installed.`);
|
|
46
|
+
return { success: false, error: 'Plugin not found' };
|
|
47
|
+
}
|
|
48
|
+
let registry;
|
|
49
|
+
try {
|
|
50
|
+
const raw = (0, fs_1.readFileSync)(pluginsJsonPath, 'utf-8');
|
|
51
|
+
registry = JSON.parse(raw);
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
console.log.error('Failed to read plugins.json. File may be corrupted.');
|
|
55
|
+
return { success: false, error: 'Corrupted plugins.json' };
|
|
56
|
+
}
|
|
57
|
+
const plugin = registry.plugins.find(p => p.name === options.pluginName);
|
|
58
|
+
if (!plugin) {
|
|
59
|
+
console.log.error(`Plugin "${options.pluginName}" not found in registry.`);
|
|
60
|
+
return { success: false, error: 'Plugin not found' };
|
|
61
|
+
}
|
|
62
|
+
const summary = buildSummary(plugin);
|
|
63
|
+
console.log.step('📦', `Uninstalling ${plugin.name}@${plugin.version}...`);
|
|
64
|
+
console.log.step(' ', summary);
|
|
65
|
+
if (!options.yes) {
|
|
66
|
+
return {
|
|
67
|
+
success: false,
|
|
68
|
+
confirmationRequired: true,
|
|
69
|
+
pluginSummary: `${plugin.name}@${plugin.version}: ${summary}`,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
const aiRulesDir = (0, path_1.join)(options.projectRoot, '.ai-rules');
|
|
73
|
+
removePluginFiles(aiRulesDir, plugin.provides);
|
|
74
|
+
registry.plugins = registry.plugins.filter(p => p.name !== options.pluginName);
|
|
75
|
+
(0, fs_1.writeFileSync)(pluginsJsonPath, JSON.stringify(registry, null, 2), 'utf-8');
|
|
76
|
+
console.log.success(`Removed ${plugin.name}`);
|
|
77
|
+
return { success: true };
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=uninstall.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall.command.js","sourceRoot":"","sources":["../../../../src/cli/plugin/uninstall.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface UpdateCommandOptions {
|
|
2
|
+
projectRoot: string;
|
|
3
|
+
pluginName?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface UpdateCommandResult {
|
|
6
|
+
success: boolean;
|
|
7
|
+
checked: number;
|
|
8
|
+
updated: number;
|
|
9
|
+
error?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function runUpdate(options: UpdateCommandOptions): Promise<UpdateCommandResult>;
|