ga-plugins-cli 0.1.0 → 0.1.2

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 (55) hide show
  1. package/dist/config-patcher.d.ts +20 -50
  2. package/dist/config-patcher.d.ts.map +1 -1
  3. package/dist/config-patcher.js +138 -102
  4. package/dist/config-patcher.js.map +1 -1
  5. package/dist/index.js +75 -22
  6. package/dist/index.js.map +1 -1
  7. package/dist/installer.d.ts +0 -18
  8. package/dist/installer.d.ts.map +1 -1
  9. package/dist/installer.js +19 -39
  10. package/dist/installer.js.map +1 -1
  11. package/dist/types.d.ts +10 -6
  12. package/dist/types.d.ts.map +1 -1
  13. package/dist/uninstaller.d.ts +0 -23
  14. package/dist/uninstaller.d.ts.map +1 -1
  15. package/dist/uninstaller.js +22 -68
  16. package/dist/uninstaller.js.map +1 -1
  17. package/package.json +3 -2
  18. package/plugins/go-reviewer/.claude-plugin/plugin.json +12 -0
  19. package/plugins/go-reviewer/commands/go-review.md +424 -0
  20. package/plugins/go-reviewer/mcp-servers/go-reviewer-mcp/README.md +236 -0
  21. package/plugins/go-reviewer/mcp-servers/go-reviewer-mcp/main.go +678 -0
  22. package/plugins/go-scaffolder/.claude-plugin/plugin.json +12 -0
  23. package/plugins/go-scaffolder/commands/scaffold-service.md +802 -0
  24. package/plugins/go-scaffolder/reference-service/.env.example +27 -0
  25. package/plugins/go-scaffolder/reference-service/Dockerfile +55 -0
  26. package/plugins/go-scaffolder/reference-service/REFERENCE-SERVICE-NOTICE.md +104 -0
  27. package/plugins/go-scaffolder/reference-service/cmd/server/main.go +266 -0
  28. package/plugins/go-scaffolder/reference-service/config/config.go +67 -0
  29. package/plugins/go-scaffolder/reference-service/go.mod +17 -0
  30. package/plugins/go-scaffolder/reference-service/internal/domain/booking.go +118 -0
  31. package/plugins/go-scaffolder/reference-service/internal/handler/booking.go +242 -0
  32. package/plugins/go-scaffolder/reference-service/internal/handler/booking_test.go +451 -0
  33. package/plugins/go-scaffolder/reference-service/internal/repository/booking_postgres.go +124 -0
  34. package/plugins/go-scaffolder/reference-service/internal/usecase/booking.go +181 -0
  35. package/plugins/go-standards/.claude-plugin/plugin.json +22 -0
  36. package/plugins/go-standards/commands/go-standards-check.md +232 -0
  37. package/plugins/go-standards/skills/concurrency.md +336 -0
  38. package/plugins/go-standards/skills/config.md +267 -0
  39. package/plugins/go-standards/skills/error-handling.md +286 -0
  40. package/plugins/go-standards/skills/http-chi.md +390 -0
  41. package/plugins/go-standards/skills/logging-observability.md +340 -0
  42. package/plugins/go-standards/skills/naming-and-style.md +315 -0
  43. package/plugins/go-standards/skills/project-layout.md +313 -0
  44. package/plugins/go-standards/skills/testing.md +366 -0
  45. package/plugins/java2go-porter/.claude-plugin/plugin.json +21 -0
  46. package/plugins/java2go-porter/agents/analyzer.md +232 -0
  47. package/plugins/java2go-porter/agents/reviewer.md +241 -0
  48. package/plugins/java2go-porter/agents/test-pairer.md +365 -0
  49. package/plugins/java2go-porter/agents/translator.md +419 -0
  50. package/plugins/java2go-porter/commands/port-java-service.md +149 -0
  51. package/plugins/java2go-porter/skills/idiom-mapping.md +75 -0
  52. package/plugins/migration-safety/.claude-plugin/plugin.json +20 -0
  53. package/plugins/migration-safety/commands/gen-characterization-test.md +452 -0
  54. package/plugins/migration-safety/commands/strangler-plan.md +356 -0
  55. package/plugins/migration-safety/skills/strangler-fig.md +382 -0
package/dist/installer.js CHANGED
@@ -6,12 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.install = install;
7
7
  exports.installAll = installAll;
8
8
  const fs_extra_1 = __importDefault(require("fs-extra"));
9
- const path_1 = __importDefault(require("path"));
10
9
  const chalk_1 = __importDefault(require("chalk"));
11
10
  const config_patcher_js_1 = require("./config-patcher.js");
12
11
  const registry_js_1 = require("./registry.js");
13
- // ─── Versions file helpers ────────────────────────────────────────────────────
14
- /** Reads the versions tracking file, returning defaults if missing. */
15
12
  function readVersions() {
16
13
  const versionsPath = (0, config_patcher_js_1.getVersionsFilePath)();
17
14
  if (!fs_extra_1.default.existsSync(versionsPath)) {
@@ -32,7 +29,6 @@ function readVersions() {
32
29
  };
33
30
  }
34
31
  }
35
- /** Writes the versions tracking file to disk. */
36
32
  function writeVersions(versions, dryRun) {
37
33
  const versionsPath = (0, config_patcher_js_1.getVersionsFilePath)();
38
34
  if (dryRun) {
@@ -41,43 +37,23 @@ function writeVersions(versions, dryRun) {
41
37
  }
42
38
  fs_extra_1.default.outputJSONSync(versionsPath, versions, { spaces: 2 });
43
39
  }
44
- // ─── Prefix helper ────────────────────────────────────────────────────────────
45
40
  function prefix(dryRun) {
46
41
  return dryRun ? chalk_1.default.yellow('[DRY RUN] ') : '';
47
42
  }
48
- // ─── Core install logic ───────────────────────────────────────────────────────
49
- /**
50
- * Installs the given plugin IDs to ~/.claude/plugins/ and registers them in ~/.claude.json.
51
- *
52
- * Each plugin:
53
- * 1. Gets its bundled source path resolved from the npm package
54
- * 2. Is copied to ~/.claude/plugins/<pluginId>/ (overwrites any existing version)
55
- * 3. Gets an entry added/updated in ~/.claude.json under the `plugins` array
56
- * 4. Gets its version recorded in ~/.claude/plugins/.ga-versions.json
57
- *
58
- * All actions are printed to stdout. In dry-run mode, no files are written.
59
- *
60
- * @throws if a bundled plugin source directory cannot be found
61
- */
62
43
  async function install(pluginIds, options = {}) {
63
44
  const dryRun = options.dryRun ?? false;
64
45
  const pluginsDir = (0, config_patcher_js_1.getPluginsDir)();
65
46
  const pkgVersion = require('../package.json').version ?? '0.1.0';
66
47
  const now = new Date().toISOString();
67
- // Ensure ~/.claude/plugins/ exists
68
48
  if (!dryRun) {
69
49
  fs_extra_1.default.ensureDirSync(pluginsDir);
50
+ (0, config_patcher_js_1.ensureMarketplaceRegistered)(pkgVersion);
70
51
  }
71
- else {
72
- console.log(chalk_1.default.dim(` [DRY RUN] Would ensure directory: ${pluginsDir}`));
73
- }
74
- // Load current state
75
- const config = (0, config_patcher_js_1.readClaudeConfig)();
52
+ let installedPlugins = (0, config_patcher_js_1.readInstalledPlugins)();
76
53
  const versions = readVersions();
77
- let updatedConfig = config;
78
54
  for (const pluginId of pluginIds) {
79
- const srcPath = (0, registry_js_1.getBundledPluginPath)(pluginId); // throws if unknown id
80
- const destPath = path_1.default.join(pluginsDir, pluginId);
55
+ const srcPath = (0, registry_js_1.getBundledPluginPath)(pluginId);
56
+ const destPath = (0, config_patcher_js_1.getPluginCachePath)(pluginId, pkgVersion);
81
57
  // ── Copy plugin folder ──────────────────────────────────────────────────
82
58
  if (!fs_extra_1.default.existsSync(srcPath)) {
83
59
  console.warn(chalk_1.default.yellow(` Warning: bundled plugin source not found for "${pluginId}" at ${srcPath}. ` +
@@ -88,29 +64,33 @@ async function install(pluginIds, options = {}) {
88
64
  ` ${chalk_1.default.dim('→')} ${destPath}`);
89
65
  if (!dryRun) {
90
66
  fs_extra_1.default.copySync(srcPath, destPath, { overwrite: true });
67
+ (0, config_patcher_js_1.ensureMarketplacePluginDir)(pluginId, srcPath);
91
68
  }
92
69
  }
93
- // ── Register in ~/.claude.json ──────────────────────────────────────────
94
- console.log(`${prefix(dryRun)}${chalk_1.default.cyan('register')} ${pluginId} in ${chalk_1.default.dim('~/.claude.json')}`);
70
+ // ── Register in installed_plugins.json ──────────────────────────────────
71
+ console.log(`${prefix(dryRun)}${chalk_1.default.cyan('register')} ${pluginId} in ${chalk_1.default.dim('installed_plugins.json')}`);
95
72
  if (!dryRun) {
96
- updatedConfig = (0, config_patcher_js_1.addPluginEntry)(updatedConfig, { id: pluginId, path: destPath });
73
+ installedPlugins = (0, config_patcher_js_1.addInstalledPlugin)(installedPlugins, pluginId, {
74
+ scope: 'user',
75
+ installPath: destPath,
76
+ version: pkgVersion,
77
+ installedAt: now,
78
+ lastUpdated: now,
79
+ });
97
80
  }
98
- // ── Update versions record ──────────────────────────────────────────────
99
81
  versions.plugins[pluginId] = { version: pkgVersion, installedAt: now };
100
- console.log(chalk_1.default.green(` ✓ ${pluginId} installed (v${pkgVersion})`));
82
+ if (!dryRun) {
83
+ (0, config_patcher_js_1.setPluginEnabled)(pluginId, true);
84
+ }
85
+ console.log(chalk_1.default.green(` ✓ ${pluginId} installed and enabled (v${pkgVersion})`));
101
86
  }
102
- // Write updated config and versions atomically (once, after all plugins)
103
87
  if (!dryRun) {
104
- (0, config_patcher_js_1.writeClaudeConfig)(updatedConfig);
88
+ (0, config_patcher_js_1.writeInstalledPlugins)(installedPlugins);
105
89
  versions.version = pkgVersion;
106
90
  versions.installedAt = now;
107
91
  }
108
92
  writeVersions(versions, dryRun);
109
93
  }
110
- /**
111
- * Installs ALL known GA plugins.
112
- * Convenience wrapper around `install(getAllPluginIds(), options)`.
113
- */
114
94
  async function installAll(options = {}) {
115
95
  return install((0, registry_js_1.getAllPluginIds)(), options);
116
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"installer.js","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"installer.js","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -18,12 +18,16 @@ export interface InstalledVersions {
18
18
  installedAt: string;
19
19
  }>;
20
20
  }
21
- export interface ClaudeConfig {
22
- plugins?: PluginConfig[];
23
- [key: string]: unknown;
21
+ export interface InstalledPlugin {
22
+ scope: 'user' | 'project';
23
+ installPath: string;
24
+ version: string;
25
+ installedAt: string;
26
+ lastUpdated: string;
27
+ gitCommitSha?: string;
24
28
  }
25
- export interface PluginConfig {
26
- id: string;
27
- path: string;
29
+ export interface InstalledPluginsFile {
30
+ version: 2;
31
+ plugins: Record<string, InstalledPlugin[]>;
28
32
  }
29
33
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnE;AAID,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;CAC5C"}
@@ -1,32 +1,9 @@
1
1
  export interface UninstallOptions {
2
- /** When true, prints what would happen without actually doing it. */
3
2
  dryRun?: boolean;
4
3
  }
5
4
  export interface UninstallAllOptions extends UninstallOptions {
6
- /** When true, skips the interactive confirmation prompt. */
7
5
  skipConfirm?: boolean;
8
6
  }
9
- /**
10
- * Uninstalls the given plugin IDs from ~/.claude/plugins/ and removes them from ~/.claude.json.
11
- *
12
- * For each plugin:
13
- * - If the plugin folder exists: removes it
14
- * - If the folder is missing but an entry exists in ~/.claude.json: cleans up the stale entry
15
- * and prints a warning
16
- * - Removes the entry from .ga-versions.json
17
- *
18
- * In dry-run mode, no files are removed.
19
- */
20
7
  export declare function uninstall(pluginIds: string[], options?: UninstallOptions): Promise<void>;
21
- /**
22
- * Uninstalls ALL installed GA plugins.
23
- *
24
- * Discovers installed plugins by:
25
- * 1. Checking which known plugin IDs have a folder in ~/.claude/plugins/
26
- * 2. Checking which known plugin IDs have an entry in ~/.claude.json
27
- * The union of both sets is uninstalled.
28
- *
29
- * When `skipConfirm` is false (default), prompts for interactive confirmation.
30
- */
31
8
  export declare function uninstallAll(options?: UninstallAllOptions): Promise<void>;
32
9
  //# sourceMappingURL=uninstaller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"uninstaller.d.ts","sourceRoot":"","sources":["../src/uninstaller.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,4DAA4D;IAC5D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAoED;;;;;;;;;;GAUG;AACH,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CA2Df;AAED;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDnF"}
1
+ {"version":3,"file":"uninstaller.d.ts","sourceRoot":"","sources":["../src/uninstaller.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAmDD,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAgDf;AAED,wBAAsB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyCnF"}
@@ -6,12 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.uninstall = uninstall;
7
7
  exports.uninstallAll = uninstallAll;
8
8
  const fs_extra_1 = __importDefault(require("fs-extra"));
9
- const path_1 = __importDefault(require("path"));
10
9
  const readline_1 = __importDefault(require("readline"));
11
10
  const chalk_1 = __importDefault(require("chalk"));
12
11
  const config_patcher_js_1 = require("./config-patcher.js");
13
12
  const registry_js_1 = require("./registry.js");
14
- // ─── Versions file helpers ────────────────────────────────────────────────────
15
13
  function readVersions() {
16
14
  const versionsPath = (0, config_patcher_js_1.getVersionsFilePath)();
17
15
  if (!fs_extra_1.default.existsSync(versionsPath)) {
@@ -40,15 +38,9 @@ function writeVersions(versions, dryRun) {
40
38
  }
41
39
  fs_extra_1.default.outputJSONSync(versionsPath, versions, { spaces: 2 });
42
40
  }
43
- // ─── Prefix helper ────────────────────────────────────────────────────────────
44
41
  function prefix(dryRun) {
45
42
  return dryRun ? chalk_1.default.yellow('[DRY RUN] ') : '';
46
43
  }
47
- // ─── Confirmation prompt ──────────────────────────────────────────────────────
48
- /**
49
- * Prompts the user for confirmation on stdin.
50
- * Returns true if user typed "yes" (case-insensitive).
51
- */
52
44
  function promptConfirm(message) {
53
45
  return new Promise((resolve) => {
54
46
  const rl = readline_1.default.createInterface({
@@ -61,97 +53,59 @@ function promptConfirm(message) {
61
53
  rl.close();
62
54
  resolve(answer.trim().toLowerCase() === 'yes');
63
55
  });
64
- rl.once('close', () => {
65
- resolve(false);
66
- });
56
+ rl.once('close', () => { resolve(false); });
67
57
  });
68
58
  }
69
- // ─── Core uninstall logic ─────────────────────────────────────────────────────
70
- /**
71
- * Uninstalls the given plugin IDs from ~/.claude/plugins/ and removes them from ~/.claude.json.
72
- *
73
- * For each plugin:
74
- * - If the plugin folder exists: removes it
75
- * - If the folder is missing but an entry exists in ~/.claude.json: cleans up the stale entry
76
- * and prints a warning
77
- * - Removes the entry from .ga-versions.json
78
- *
79
- * In dry-run mode, no files are removed.
80
- */
81
59
  async function uninstall(pluginIds, options = {}) {
82
60
  const dryRun = options.dryRun ?? false;
83
- const pluginsDir = (0, config_patcher_js_1.getPluginsDir)();
84
- const config = (0, config_patcher_js_1.readClaudeConfig)();
61
+ let installedPlugins = (0, config_patcher_js_1.readInstalledPlugins)();
85
62
  const versions = readVersions();
86
- let updatedConfig = config;
87
63
  for (const pluginId of pluginIds) {
88
- const destPath = path_1.default.join(pluginsDir, pluginId);
64
+ const entry = (0, config_patcher_js_1.getInstalledEntry)(installedPlugins, pluginId);
65
+ const destPath = entry?.installPath ?? (0, config_patcher_js_1.getPluginCachePath)(pluginId, versions.plugins[pluginId]?.version ?? '0.1.0');
89
66
  const folderExists = fs_extra_1.default.existsSync(destPath);
90
- if (!folderExists) {
91
- // Check if a stale config entry exists
92
- const hasEntry = Array.isArray(updatedConfig.plugins) &&
93
- updatedConfig.plugins.some((p) => p.id === pluginId);
94
- if (hasEntry) {
95
- console.warn(chalk_1.default.yellow(` Warning: plugin folder not found for "${pluginId}" at ${destPath} ` +
96
- `but a config entry exists — cleaning up stale entry.`));
97
- }
98
- else {
99
- console.log(chalk_1.default.dim(` ${pluginId}: not installed (nothing to remove)`));
100
- continue;
101
- }
67
+ if (!folderExists && !entry) {
68
+ console.log(chalk_1.default.dim(` ${pluginId}: not installed (nothing to remove)`));
69
+ continue;
70
+ }
71
+ if (!folderExists && entry) {
72
+ console.warn(chalk_1.default.yellow(` Warning: plugin folder not found for "${pluginId}" at ${destPath} ` +
73
+ `but a registry entry exists — cleaning up stale entry.`));
102
74
  }
103
75
  else {
104
- // ── Remove plugin folder ──────────────────────────────────────────────
105
76
  console.log(`${prefix(dryRun)}${chalk_1.default.red('remove')} ${destPath}`);
106
77
  if (!dryRun) {
107
78
  fs_extra_1.default.removeSync(destPath);
79
+ (0, config_patcher_js_1.removeMarketplacePluginDir)(pluginId);
108
80
  }
109
81
  }
110
- // ── Remove from ~/.claude.json ────────────────────────────────────────
111
- console.log(`${prefix(dryRun)}${chalk_1.default.red('deregister')} ${pluginId} from ${chalk_1.default.dim('~/.claude.json')}`);
82
+ console.log(`${prefix(dryRun)}${chalk_1.default.red('deregister')} ${pluginId} from ${chalk_1.default.dim('installed_plugins.json')}`);
112
83
  if (!dryRun) {
113
- updatedConfig = (0, config_patcher_js_1.removePluginEntry)(updatedConfig, pluginId);
84
+ installedPlugins = (0, config_patcher_js_1.removeInstalledPlugin)(installedPlugins, pluginId);
85
+ (0, config_patcher_js_1.setPluginEnabled)(pluginId, false);
114
86
  }
115
- // ── Remove from versions record ───────────────────────────────────────
116
87
  delete versions.plugins[pluginId];
117
88
  console.log(chalk_1.default.green(` ✓ ${pluginId} uninstalled`));
118
89
  }
119
- // Write updated config and versions once, after all plugins
120
90
  if (!dryRun) {
121
- (0, config_patcher_js_1.writeClaudeConfig)(updatedConfig);
91
+ (0, config_patcher_js_1.writeInstalledPlugins)(installedPlugins);
122
92
  }
123
93
  writeVersions(versions, dryRun);
124
94
  }
125
- /**
126
- * Uninstalls ALL installed GA plugins.
127
- *
128
- * Discovers installed plugins by:
129
- * 1. Checking which known plugin IDs have a folder in ~/.claude/plugins/
130
- * 2. Checking which known plugin IDs have an entry in ~/.claude.json
131
- * The union of both sets is uninstalled.
132
- *
133
- * When `skipConfirm` is false (default), prompts for interactive confirmation.
134
- */
135
95
  async function uninstallAll(options = {}) {
136
96
  const dryRun = options.dryRun ?? false;
137
97
  const skipConfirm = options.skipConfirm ?? false;
138
- // Discover what is actually installed
139
- const pluginsDir = (0, config_patcher_js_1.getPluginsDir)();
140
- const config = (0, config_patcher_js_1.readClaudeConfig)();
98
+ const installedPlugins = (0, config_patcher_js_1.readInstalledPlugins)();
141
99
  const allKnownIds = (0, registry_js_1.getAllPluginIds)();
100
+ const versions = readVersions();
142
101
  const installedIds = new Set();
143
- // Check filesystem
144
102
  for (const id of allKnownIds) {
145
- if (fs_extra_1.default.existsSync(path_1.default.join(pluginsDir, id))) {
103
+ if ((0, config_patcher_js_1.getInstalledEntry)(installedPlugins, id)) {
146
104
  installedIds.add(id);
147
105
  }
148
- }
149
- // Check config entries (catches stale entries without folders)
150
- if (Array.isArray(config.plugins)) {
151
- for (const entry of config.plugins) {
152
- if ((0, registry_js_1.validatePluginId)(entry.id)) {
153
- installedIds.add(entry.id);
154
- }
106
+ // Also catch entries tracked only in versions file
107
+ if (versions.plugins[id]) {
108
+ installedIds.add(id);
155
109
  }
156
110
  }
157
111
  if (installedIds.size === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"uninstaller.js","sourceRoot":"","sources":["../src/uninstaller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uninstaller.js","sourceRoot":"","sources":["../src/uninstaller.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "ga-plugins-cli",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "CLI to install GA Migration Claude Code plugins globally at user level (~/.claude/plugins/)",
5
5
  "bin": {
6
6
  "ga-plugins-cli": "./dist/index.js"
7
7
  },
8
8
  "main": "./dist/index.js",
9
9
  "scripts": {
10
- "build": "tsc",
10
+ "copy-plugins": "node -e \"const f=require('fs-extra'),p=require('path');f.copySync(p.join(process.cwd(),'../plugins'),p.join(process.cwd(),'plugins'),{overwrite:true});console.log('plugins copied')\"",
11
+ "build": "npm run copy-plugins && tsc",
11
12
  "dev": "ts-node src/index.ts",
12
13
  "prepublishOnly": "npm run build",
13
14
  "lint": "eslint src/**/*.ts"
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "go-reviewer",
3
+ "version": "0.1.0",
4
+ "description": "Incremental Go code review (new findings only, diff-based) + auto-fix in isolated git worktree. Integrates external linters via MCP shim.",
5
+ "commands": [
6
+ {
7
+ "name": "go-review",
8
+ "description": "Review Go code changes — incremental (new findings only) or full audit with auto-fix in isolated worktree",
9
+ "path": "commands/go-review.md"
10
+ }
11
+ ]
12
+ }