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.
Files changed (136) hide show
  1. package/README.md +9 -0
  2. package/dist/src/app.module.js +2 -0
  3. package/dist/src/app.module.js.map +1 -1
  4. package/dist/src/cli/cli.d.ts +3 -3
  5. package/dist/src/cli/cli.js +118 -1
  6. package/dist/src/cli/cli.js.map +1 -1
  7. package/dist/src/cli/cli.types.d.ts +14 -0
  8. package/dist/src/cli/init/init.constants.js +0 -1
  9. package/dist/src/cli/init/init.constants.js.map +1 -1
  10. package/dist/src/cli/plugin/install.command.d.ts +10 -0
  11. package/dist/src/cli/plugin/install.command.js +31 -0
  12. package/dist/src/cli/plugin/install.command.js.map +1 -0
  13. package/dist/src/cli/plugin/plugins.command.d.ts +9 -0
  14. package/dist/src/cli/plugin/plugins.command.js +51 -0
  15. package/dist/src/cli/plugin/plugins.command.js.map +1 -0
  16. package/dist/src/cli/plugin/search.command.d.ts +9 -0
  17. package/dist/src/cli/plugin/search.command.js +53 -0
  18. package/dist/src/cli/plugin/search.command.js.map +1 -0
  19. package/dist/src/cli/plugin/uninstall.command.d.ts +12 -0
  20. package/dist/src/cli/plugin/uninstall.command.js +79 -0
  21. package/dist/src/cli/plugin/uninstall.command.js.map +1 -0
  22. package/dist/src/cli/plugin/update.command.d.ts +11 -0
  23. package/dist/src/cli/plugin/update.command.js +103 -0
  24. package/dist/src/cli/plugin/update.command.js.map +1 -0
  25. package/dist/src/cli/run-tui.js +16 -0
  26. package/dist/src/cli/run-tui.js.map +1 -1
  27. package/dist/src/context/briefing-loader.service.d.ts +27 -0
  28. package/dist/src/context/briefing-loader.service.js +124 -0
  29. package/dist/src/context/briefing-loader.service.js.map +1 -0
  30. package/dist/src/context/briefing.service.d.ts +27 -0
  31. package/dist/src/context/briefing.service.js +181 -0
  32. package/dist/src/context/briefing.service.js.map +1 -0
  33. package/dist/src/context/briefing.types.d.ts +13 -0
  34. package/dist/src/context/briefing.types.js +6 -0
  35. package/dist/src/context/briefing.types.js.map +1 -0
  36. package/dist/src/context/context.module.js +16 -2
  37. package/dist/src/context/context.module.js.map +1 -1
  38. package/dist/src/context/index.d.ts +2 -0
  39. package/dist/src/context/index.js +2 -0
  40. package/dist/src/context/index.js.map +1 -1
  41. package/dist/src/main.js +0 -17
  42. package/dist/src/main.js.map +1 -1
  43. package/dist/src/mcp/handlers/briefing.handler.d.ts +12 -0
  44. package/dist/src/mcp/handlers/briefing.handler.js +71 -0
  45. package/dist/src/mcp/handlers/briefing.handler.js.map +1 -0
  46. package/dist/src/mcp/handlers/index.d.ts +4 -0
  47. package/dist/src/mcp/handlers/index.js +9 -1
  48. package/dist/src/mcp/handlers/index.js.map +1 -1
  49. package/dist/src/mcp/handlers/quality-report.handler.d.ts +12 -0
  50. package/dist/src/mcp/handlers/quality-report.handler.js +75 -0
  51. package/dist/src/mcp/handlers/quality-report.handler.js.map +1 -0
  52. package/dist/src/mcp/handlers/resume.handler.d.ts +12 -0
  53. package/dist/src/mcp/handlers/resume.handler.js +63 -0
  54. package/dist/src/mcp/handlers/resume.handler.js.map +1 -0
  55. package/dist/src/mcp/handlers/rule-impact.handler.d.ts +23 -0
  56. package/dist/src/mcp/handlers/rule-impact.handler.js +241 -0
  57. package/dist/src/mcp/handlers/rule-impact.handler.js.map +1 -0
  58. package/dist/src/mcp/handlers/skill.handler.js +2 -2
  59. package/dist/src/mcp/handlers/skill.handler.js.map +1 -1
  60. package/dist/src/mcp/mcp.module.js +6 -0
  61. package/dist/src/mcp/mcp.module.js.map +1 -1
  62. package/dist/src/plugin/plugin-installer.service.d.ts +41 -0
  63. package/dist/src/plugin/plugin-installer.service.js +183 -0
  64. package/dist/src/plugin/plugin-installer.service.js.map +1 -0
  65. package/dist/src/plugin/plugin-manifest.schema.d.ts +21 -0
  66. package/dist/src/plugin/plugin-manifest.schema.js +45 -0
  67. package/dist/src/plugin/plugin-manifest.schema.js.map +1 -0
  68. package/dist/src/plugin/plugin.module.d.ts +2 -0
  69. package/dist/src/plugin/plugin.module.js +17 -0
  70. package/dist/src/plugin/plugin.module.js.map +1 -0
  71. package/dist/src/plugin/plugin.types.d.ts +7 -0
  72. package/dist/src/plugin/plugin.types.js +3 -0
  73. package/dist/src/plugin/plugin.types.js.map +1 -0
  74. package/dist/src/plugin/registry-client.d.ts +24 -0
  75. package/dist/src/plugin/registry-client.js +45 -0
  76. package/dist/src/plugin/registry-client.js.map +1 -0
  77. package/dist/src/rules/rule-event-collector.d.ts +7 -0
  78. package/dist/src/rules/rule-event-collector.js +38 -0
  79. package/dist/src/rules/rule-event-collector.js.map +1 -0
  80. package/dist/src/rules/rule-event.types.d.ts +9 -0
  81. package/dist/src/rules/rule-event.types.js +10 -0
  82. package/dist/src/rules/rule-event.types.js.map +1 -0
  83. package/dist/src/rules/rule-stats-writer.d.ts +23 -0
  84. package/dist/src/rules/rule-stats-writer.js +138 -0
  85. package/dist/src/rules/rule-stats-writer.js.map +1 -0
  86. package/dist/src/rules/rules.module.js +4 -2
  87. package/dist/src/rules/rules.module.js.map +1 -1
  88. package/dist/src/rules/rules.service.d.ts +2 -1
  89. package/dist/src/rules/rules.service.js.map +1 -1
  90. package/dist/src/rules/skill.schema.d.ts +5 -0
  91. package/dist/src/rules/skill.schema.js +6 -0
  92. package/dist/src/rules/skill.schema.js.map +1 -1
  93. package/dist/src/shared/rules-core.d.ts +2 -1
  94. package/dist/src/shared/rules-core.js +1 -0
  95. package/dist/src/shared/rules-core.js.map +1 -1
  96. package/dist/src/shared/version.d.ts +1 -1
  97. package/dist/src/shared/version.js +1 -1
  98. package/dist/src/ship/file-specialist-mapper.d.ts +9 -0
  99. package/dist/src/ship/file-specialist-mapper.js +56 -0
  100. package/dist/src/ship/file-specialist-mapper.js.map +1 -0
  101. package/dist/src/ship/quality-report.service.d.ts +6 -0
  102. package/dist/src/ship/quality-report.service.js +56 -0
  103. package/dist/src/ship/quality-report.service.js.map +1 -0
  104. package/dist/src/ship/quality-report.types.d.ts +20 -0
  105. package/dist/src/ship/quality-report.types.js +3 -0
  106. package/dist/src/ship/quality-report.types.js.map +1 -0
  107. package/dist/src/ship/ship.module.d.ts +2 -0
  108. package/dist/src/ship/ship.module.js +21 -0
  109. package/dist/src/ship/ship.module.js.map +1 -0
  110. package/dist/src/skill/skill-recommendation.service.d.ts +9 -2
  111. package/dist/src/skill/skill-recommendation.service.js +94 -16
  112. package/dist/src/skill/skill-recommendation.service.js.map +1 -1
  113. package/dist/src/skill/skill.module.js +2 -0
  114. package/dist/src/skill/skill.module.js.map +1 -1
  115. package/dist/src/tui/__perf__/memory-stability.spec.js +6 -6
  116. package/dist/src/tui/__perf__/memory-stability.spec.js.map +1 -1
  117. package/dist/src/tui/__perf__/rendering-performance.spec.js +5 -8
  118. package/dist/src/tui/__perf__/rendering-performance.spec.js.map +1 -1
  119. package/dist/src/tui/dashboard-app.spec.js +15 -15
  120. package/dist/src/tui/dashboard-app.spec.js.map +1 -1
  121. package/dist/src/tui/eventbus-ui.integration.spec.js +45 -45
  122. package/dist/src/tui/eventbus-ui.integration.spec.js.map +1 -1
  123. package/dist/src/tui/events/hud-file-bridge.d.ts +21 -0
  124. package/dist/src/tui/events/hud-file-bridge.js +112 -0
  125. package/dist/src/tui/events/hud-file-bridge.js.map +1 -0
  126. package/dist/src/tui/events/index.d.ts +1 -0
  127. package/dist/src/tui/events/index.js +3 -1
  128. package/dist/src/tui/events/index.js.map +1 -1
  129. package/dist/src/tui/testing/tui-test-utils.d.ts +2 -0
  130. package/dist/src/tui/testing/tui-test-utils.js +25 -0
  131. package/dist/src/tui/testing/tui-test-utils.js.map +1 -0
  132. package/dist/src/tui/transport-tui.integration.spec.js +8 -8
  133. package/dist/src/tui/transport-tui.integration.spec.js.map +1 -1
  134. package/dist/src/tui-bundle.mjs +226 -61
  135. package/dist/tsconfig.build.tsbuildinfo +1 -1
  136. 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
 
@@ -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;AActD,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IAZrB,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;SAChB;KACF,CAAC;GACW,SAAS,CAAG"}
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"}
@@ -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;
@@ -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) {
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli/cli.ts"],"names":[],"mappings":"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"}
@@ -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;IAC3B,oBAAoB,EAAE,GAAG;CAC1B,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"}
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,9 @@
1
+ export interface PluginsCommandOptions {
2
+ projectRoot: string;
3
+ }
4
+ export interface PluginsCommandResult {
5
+ success: boolean;
6
+ count: number;
7
+ error?: string;
8
+ }
9
+ export declare function runPlugins(options: PluginsCommandOptions): PluginsCommandResult;
@@ -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,9 @@
1
+ export interface SearchCommandOptions {
2
+ query: string;
3
+ }
4
+ export interface SearchCommandResult {
5
+ success: boolean;
6
+ count: number;
7
+ error?: string;
8
+ }
9
+ export declare function runSearch(options: SearchCommandOptions): Promise<SearchCommandResult>;
@@ -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":";;AAqGA,oCAoDC;AAlJD,2BAAyE;AACzE,+BAA4B;AAC5B,8CAAsD;AAwCtD,MAAM,gBAAgB,GAA2B;IAC/C,MAAM,EAAE,OAAO;IACf,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,KAAK;IACb,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAU,CAAC;AAUxE,SAAS,iBAAiB,CAAC,UAAkB,EAAE,QAAkC;IAC/E,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC;YACxD,IAAI,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;gBACzB,IAAA,eAAU,EAAC,QAAQ,CAAC,CAAC;gBACrB,YAAY,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAKD,SAAS,YAAY,CAAC,MAAoB;IACxC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;IAC7F,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC;IAC1F,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;IAC7F,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,aAAa,CAAC,CAAC;IAChE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC;AACnF,CAAC;AAKD,SAAgB,YAAY,CAAC,OAAgC;IAC3D,MAAM,OAAO,GAAG,IAAA,4BAAkB,GAAE,CAAC;IACrC,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,WAAW,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;IAGlF,IAAI,CAAC,IAAA,eAAU,EAAC,eAAe,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,OAAO,CAAC,UAAU,wCAAwC,CAAC,CAAC;QACzF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;IACvD,CAAC;IAED,IAAI,QAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAA,iBAAY,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QACnD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC;IAC7D,CAAC;IAGD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACzE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,OAAO,CAAC,UAAU,0BAA0B,CAAC,CAAC;QAC3E,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;IACvD,CAAC;IAGD,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAGhC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,oBAAoB,EAAE,IAAI;YAC1B,aAAa,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,EAAE;SAC9D,CAAC;IACJ,CAAC;IAGD,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC1D,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAG/C,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/E,IAAA,kBAAa,EAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAG3E,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAE9C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC"}
@@ -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>;