@hopping-dev/hub 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli/index.js CHANGED
@@ -45,6 +45,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
45
45
  */
46
46
  const commander_1 = require("commander");
47
47
  const setup_1 = require("./setup");
48
+ const uninstall_1 = require("./uninstall");
48
49
  const program = new commander_1.Command();
49
50
  program.name('hopping-hub').description('HopPing Hub — AI Agent Remote Control').version('0.1.0');
50
51
  // Default command: start MCP Server
@@ -78,5 +79,20 @@ program
78
79
  };
79
80
  await (0, setup_1.executeSetup)(flags);
80
81
  });
82
+ // Uninstall command
83
+ program
84
+ .command('uninstall')
85
+ .description('Remove HopPing configurations — MCP, Hooks, and Skill')
86
+ .option('-y, --yes', 'Skip confirmation prompt', false)
87
+ .option('--dry-run', 'Show what would be removed without modifying files', false)
88
+ .option('--scope <scope>', 'Config scope: project, user, or both', 'both')
89
+ .action(async (opts) => {
90
+ const flags = {
91
+ yes: opts.yes,
92
+ dryRun: opts.dryRun,
93
+ scope: opts.scope === 'project' ? 'project' : opts.scope === 'user' ? 'user' : 'both',
94
+ };
95
+ await (0, uninstall_1.executeUninstall)(flags);
96
+ });
81
97
  program.parse(process.argv);
82
98
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;;;;;;;GAQG;AACH,yCAA4C;AAC5C,mCAAwD;AAExD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,uCAAuC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAElG,oCAAoC;AACpC,OAAO;KACJ,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;KACrC,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,6BAA6B;IAC7B,wDAAa,UAAU,GAAC,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEL,gBAAgB;AAChB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,gFAAgF,CAAC;KAC7F,MAAM,CAAC,WAAW,EAAE,0BAA0B,EAAE,KAAK,CAAC;KACtD,MAAM,CAAC,WAAW,EAAE,4CAA4C,EAAE,KAAK,CAAC;KACxE,MAAM,CAAC,iBAAiB,EAAE,+BAA+B,EAAE,SAAS,CAAC;KACrE,MAAM,CAAC,cAAc,EAAE,0BAA0B,EAAE,KAAK,CAAC;KACzD,MAAM,CAAC,cAAc,EAAE,yBAAyB,EAAE,KAAK,CAAC;KACxD,SAAS,CACR,IAAI,kBAAM,CAAC,mBAAmB,EAAE,wBAAwB,CAAC;KACtD,OAAO,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;KAC1C,OAAO,CAAC,MAAM,CAAC,CACnB;KACA,MAAM,CACL,KAAK,EAAE,IAON,EAAE,EAAE;IACH,MAAM,KAAK,GAAe;QACxB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACjD,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC;IAEF,MAAM,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC;AAC5B,CAAC,CACF,CAAC;AAEJ,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;;;;;;;GAQG;AACH,yCAA4C;AAC5C,mCAAwD;AACxD,2CAAoE;AAEpE,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,uCAAuC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAElG,oCAAoC;AACpC,OAAO;KACJ,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;KACrC,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,6BAA6B;IAC7B,wDAAa,UAAU,GAAC,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEL,gBAAgB;AAChB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,gFAAgF,CAAC;KAC7F,MAAM,CAAC,WAAW,EAAE,0BAA0B,EAAE,KAAK,CAAC;KACtD,MAAM,CAAC,WAAW,EAAE,4CAA4C,EAAE,KAAK,CAAC;KACxE,MAAM,CAAC,iBAAiB,EAAE,+BAA+B,EAAE,SAAS,CAAC;KACrE,MAAM,CAAC,cAAc,EAAE,0BAA0B,EAAE,KAAK,CAAC;KACzD,MAAM,CAAC,cAAc,EAAE,yBAAyB,EAAE,KAAK,CAAC;KACxD,SAAS,CACR,IAAI,kBAAM,CAAC,mBAAmB,EAAE,wBAAwB,CAAC;KACtD,OAAO,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;KAC1C,OAAO,CAAC,MAAM,CAAC,CACnB;KACA,MAAM,CACL,KAAK,EAAE,IAON,EAAE,EAAE;IACH,MAAM,KAAK,GAAe;QACxB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACjD,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC;IAEF,MAAM,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC;AAC5B,CAAC,CACF,CAAC;AAEJ,oBAAoB;AACpB,OAAO;KACJ,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CAAC,WAAW,EAAE,0BAA0B,EAAE,KAAK,CAAC;KACtD,MAAM,CAAC,WAAW,EAAE,oDAAoD,EAAE,KAAK,CAAC;KAChF,MAAM,CAAC,iBAAiB,EAAE,sCAAsC,EAAE,MAAM,CAAC;KACzE,MAAM,CACL,KAAK,EAAE,IAIN,EAAE,EAAE;IACH,MAAM,KAAK,GAAmB;QAC5B,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;KACtF,CAAC;IAEF,MAAM,IAAA,4BAAgB,EAAC,KAAK,CAAC,CAAC;AAChC,CAAC,CACF,CAAC;AAEJ,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export interface UninstallFlags {
2
+ yes: boolean;
3
+ dryRun: boolean;
4
+ scope: 'project' | 'user' | 'both';
5
+ }
6
+ export declare function executeUninstall(flags: UninstallFlags, dirname?: string): Promise<void>;
7
+ //# sourceMappingURL=uninstall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/cli/uninstall.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;CACpC;AA4VD,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,cAAc,EACrB,OAAO,GAAE,MAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAqFf"}
@@ -0,0 +1,399 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.executeUninstall = executeUninstall;
40
+ /**
41
+ * Uninstall CLI — 移除 HopPing 的所有設定(MCP + Hooks + Skill)
42
+ *
43
+ * 反向操作 setup.ts 所寫入的內容
44
+ */
45
+ const readline = __importStar(require("node:readline"));
46
+ const fs = __importStar(require("node:fs"));
47
+ const fsp = __importStar(require("node:fs/promises"));
48
+ const path = __importStar(require("node:path"));
49
+ const chalk_1 = __importDefault(require("chalk"));
50
+ const TOML = __importStar(require("smol-toml"));
51
+ const path_resolver_1 = require("./path-resolver");
52
+ // ============================================
53
+ // Interactive Helpers
54
+ // ============================================
55
+ async function confirm(message) {
56
+ const rl = readline.createInterface({
57
+ input: process.stdin,
58
+ output: process.stderr,
59
+ });
60
+ return new Promise((done) => {
61
+ rl.question(`${message} (y/N) `, (answer) => {
62
+ rl.close();
63
+ const trimmed = answer.trim().toLowerCase();
64
+ done(trimmed === 'y' || trimmed === 'yes');
65
+ });
66
+ });
67
+ }
68
+ // ============================================
69
+ // JSON / TOML Helpers
70
+ // ============================================
71
+ async function readJsonFile(filePath) {
72
+ try {
73
+ const content = await fsp.readFile(filePath, 'utf-8');
74
+ return JSON.parse(content);
75
+ }
76
+ catch {
77
+ return null;
78
+ }
79
+ }
80
+ async function readTomlFile(filePath) {
81
+ try {
82
+ const content = await fsp.readFile(filePath, 'utf-8');
83
+ return TOML.parse(content);
84
+ }
85
+ catch {
86
+ return null;
87
+ }
88
+ }
89
+ async function writeJsonFile(filePath, data) {
90
+ await fsp.writeFile(filePath, JSON.stringify(data, null, 2) + '\n', 'utf-8');
91
+ }
92
+ async function writeTomlFile(filePath, data) {
93
+ await fsp.writeFile(filePath, TOML.stringify(data) + '\n', 'utf-8');
94
+ }
95
+ // ============================================
96
+ // Skill Path Helper
97
+ // ============================================
98
+ function getSkillInstallDir(agentName) {
99
+ const home = process.env.HOME ?? process.env.USERPROFILE ?? '';
100
+ switch (agentName) {
101
+ case 'claude-code':
102
+ return path.join(home, '.claude', 'skills', 'hopping-skill');
103
+ case 'cursor':
104
+ return path.join(home, '.cursor', 'skills', 'hopping-skill');
105
+ default:
106
+ return path.join(home, '.claude', 'skills', 'hopping-skill');
107
+ }
108
+ }
109
+ // ============================================
110
+ // MCP Config Removal
111
+ // ============================================
112
+ /** Hook command pattern(與 config-writer.ts 一致) */
113
+ const HOPPING_HOOK_PATTERN = /hopping|pre-tool-use|post-tool-use|cursor-adapter/i;
114
+ async function removeMcpJson(configPath, dryRun) {
115
+ const data = await readJsonFile(configPath);
116
+ if (!data)
117
+ return { path: configPath, action: 'not-found' };
118
+ const mcpServers = data.mcpServers;
119
+ if (!mcpServers || !('hopping-hub' in mcpServers)) {
120
+ return { path: configPath, action: 'not-found' };
121
+ }
122
+ delete mcpServers['hopping-hub'];
123
+ if (!dryRun) {
124
+ // 如果 mcpServers 變空且沒有其他 key,考慮是否保留檔案
125
+ if (Object.keys(mcpServers).length === 0) {
126
+ delete data.mcpServers;
127
+ }
128
+ // 只有當整個檔案變空時才不寫入(但保留其他設定)
129
+ if (Object.keys(data).length > 0) {
130
+ await writeJsonFile(configPath, data);
131
+ }
132
+ }
133
+ return { path: configPath, action: 'removed' };
134
+ }
135
+ async function removeMcpToml(configPath, dryRun) {
136
+ const data = await readTomlFile(configPath);
137
+ if (!data)
138
+ return { path: configPath, action: 'not-found' };
139
+ const mcpServers = data.mcp_servers;
140
+ if (!mcpServers || !('hopping-hub' in mcpServers)) {
141
+ return { path: configPath, action: 'not-found' };
142
+ }
143
+ delete mcpServers['hopping-hub'];
144
+ if (!dryRun) {
145
+ if (Object.keys(mcpServers).length === 0) {
146
+ delete data.mcp_servers;
147
+ }
148
+ if (Object.keys(data).length > 0) {
149
+ await writeTomlFile(configPath, data);
150
+ }
151
+ }
152
+ return { path: configPath, action: 'removed' };
153
+ }
154
+ async function removeMcpConfig(agent, scope, dryRun) {
155
+ const configPath = scope === 'project' ? agent.mcpConfigPath : agent.globalMcpConfigPath;
156
+ if (agent.configFormat === 'toml') {
157
+ return removeMcpToml(configPath, dryRun);
158
+ }
159
+ return removeMcpJson(configPath, dryRun);
160
+ }
161
+ // ============================================
162
+ // Hooks Config Removal
163
+ // ============================================
164
+ async function removeClaudeCodeHooks(hooksConfigPath, dryRun) {
165
+ const data = await readJsonFile(hooksConfigPath);
166
+ if (!data)
167
+ return { path: hooksConfigPath, action: 'not-found' };
168
+ const hooks = data.hooks;
169
+ if (!hooks)
170
+ return { path: hooksConfigPath, action: 'not-found' };
171
+ let changed = false;
172
+ // PreToolUse
173
+ if (Array.isArray(hooks.PreToolUse)) {
174
+ const before = hooks.PreToolUse.length;
175
+ hooks.PreToolUse = hooks.PreToolUse.filter((h) => !h.hooks?.some((sub) => HOPPING_HOOK_PATTERN.test(sub.command)));
176
+ if (hooks.PreToolUse.length === 0)
177
+ delete hooks.PreToolUse;
178
+ if (hooks.PreToolUse === undefined || hooks.PreToolUse.length < before)
179
+ changed = true;
180
+ }
181
+ // PostToolUse
182
+ if (Array.isArray(hooks.PostToolUse)) {
183
+ const before = hooks.PostToolUse.length;
184
+ hooks.PostToolUse = hooks.PostToolUse.filter((h) => !h.hooks?.some((sub) => HOPPING_HOOK_PATTERN.test(sub.command)));
185
+ if (hooks.PostToolUse.length === 0)
186
+ delete hooks.PostToolUse;
187
+ if (hooks.PostToolUse === undefined || hooks.PostToolUse.length < before)
188
+ changed = true;
189
+ }
190
+ if (!changed)
191
+ return { path: hooksConfigPath, action: 'not-found' };
192
+ if (!dryRun) {
193
+ if (Object.keys(hooks).length === 0) {
194
+ delete data.hooks;
195
+ }
196
+ await writeJsonFile(hooksConfigPath, data);
197
+ }
198
+ return { path: hooksConfigPath, action: 'removed' };
199
+ }
200
+ async function removeCursorHooks(hooksConfigPath, dryRun) {
201
+ const data = await readJsonFile(hooksConfigPath);
202
+ if (!data)
203
+ return { path: hooksConfigPath, action: 'not-found' };
204
+ const hooks = data.hooks;
205
+ if (!hooks)
206
+ return { path: hooksConfigPath, action: 'not-found' };
207
+ let changed = false;
208
+ // preToolUse (camelCase)
209
+ if (Array.isArray(hooks.preToolUse)) {
210
+ const before = hooks.preToolUse.length;
211
+ hooks.preToolUse = hooks.preToolUse.filter((h) => !HOPPING_HOOK_PATTERN.test(h.command));
212
+ if (hooks.preToolUse.length === 0)
213
+ delete hooks.preToolUse;
214
+ if (hooks.preToolUse === undefined || hooks.preToolUse.length < before)
215
+ changed = true;
216
+ }
217
+ // postToolUse (camelCase)
218
+ if (Array.isArray(hooks.postToolUse)) {
219
+ const before = hooks.postToolUse.length;
220
+ hooks.postToolUse = hooks.postToolUse.filter((h) => !HOPPING_HOOK_PATTERN.test(h.command));
221
+ if (hooks.postToolUse.length === 0)
222
+ delete hooks.postToolUse;
223
+ if (hooks.postToolUse === undefined || hooks.postToolUse.length < before)
224
+ changed = true;
225
+ }
226
+ if (!changed)
227
+ return { path: hooksConfigPath, action: 'not-found' };
228
+ if (!dryRun) {
229
+ if (Object.keys(hooks).length === 0) {
230
+ delete data.hooks;
231
+ }
232
+ await writeJsonFile(hooksConfigPath, data);
233
+ }
234
+ return { path: hooksConfigPath, action: 'removed' };
235
+ }
236
+ async function removeHooksConfig(agent, dryRun) {
237
+ if (!agent.supportsHooks || !agent.hooksConfigPath) {
238
+ return 'unsupported';
239
+ }
240
+ if (agent.name === 'claude-code') {
241
+ return removeClaudeCodeHooks(agent.hooksConfigPath, dryRun);
242
+ }
243
+ if (agent.name === 'cursor') {
244
+ return removeCursorHooks(agent.hooksConfigPath, dryRun);
245
+ }
246
+ return 'unsupported';
247
+ }
248
+ // ============================================
249
+ // Skill Removal
250
+ // ============================================
251
+ async function removeSkill(agentName, dryRun) {
252
+ const skillDir = getSkillInstallDir(agentName);
253
+ const skillFile = path.join(skillDir, 'SKILL.md');
254
+ if (!fs.existsSync(skillFile)) {
255
+ return { path: skillDir, action: 'not-found' };
256
+ }
257
+ if (!dryRun) {
258
+ fs.unlinkSync(skillFile);
259
+ // 清除空目錄
260
+ try {
261
+ fs.rmdirSync(skillDir);
262
+ }
263
+ catch {
264
+ // 目錄不空(有其他檔案),保留
265
+ }
266
+ }
267
+ return { path: skillDir, action: 'removed' };
268
+ }
269
+ // ============================================
270
+ // Display Plan
271
+ // ============================================
272
+ function displayPlan(agents, flags) {
273
+ const log = (msg) => {
274
+ console.error(msg);
275
+ };
276
+ log('');
277
+ log(chalk_1.default.bold.yellow(' HopPing Uninstall — Remove All Configurations'));
278
+ log('');
279
+ if (agents.length === 0) {
280
+ log(chalk_1.default.yellow(' No agents detected. Nothing to uninstall.'));
281
+ return;
282
+ }
283
+ log(` Detected agents: ${chalk_1.default.cyan(agents.map((a) => a.displayName).join(', '))}`);
284
+ log(` Scope: ${chalk_1.default.cyan(flags.scope)}`);
285
+ log('');
286
+ log(chalk_1.default.bold(' Will remove:'));
287
+ log('');
288
+ // 1. MCP
289
+ log(chalk_1.default.bold(' 1. MCP Server config'));
290
+ for (const agent of agents) {
291
+ const scopes = flags.scope === 'both' ? ['project', 'user'] : [flags.scope];
292
+ for (const s of scopes) {
293
+ const configPath = s === 'project' ? agent.mcpConfigPath : agent.globalMcpConfigPath;
294
+ log(` ${chalk_1.default.red('-')} ${agent.displayName} (${s}) ${chalk_1.default.dim(`<- ${configPath}`)}`);
295
+ }
296
+ }
297
+ log('');
298
+ // 2. Hooks
299
+ log(chalk_1.default.bold(' 2. Hooks config'));
300
+ for (const agent of agents) {
301
+ if (!agent.supportsHooks || !agent.hooksConfigPath) {
302
+ log(` ${chalk_1.default.dim('-')} ${agent.displayName} ${chalk_1.default.dim('(not supported)')}`);
303
+ }
304
+ else {
305
+ log(` ${chalk_1.default.red('-')} ${agent.displayName} ${chalk_1.default.dim(`<- ${agent.hooksConfigPath}`)}`);
306
+ }
307
+ }
308
+ log('');
309
+ // 3. Skill
310
+ log(chalk_1.default.bold(' 3. Skill (SKILL.md)'));
311
+ for (const agent of agents) {
312
+ const skillDir = getSkillInstallDir(agent.name);
313
+ log(` ${chalk_1.default.red('-')} ${agent.displayName} ${chalk_1.default.dim(`<- ${skillDir}`)}`);
314
+ }
315
+ log('');
316
+ if (flags.dryRun) {
317
+ log(chalk_1.default.yellow(' [dry-run] No files will be modified.'));
318
+ log('');
319
+ }
320
+ }
321
+ // ============================================
322
+ // Execute Uninstall
323
+ // ============================================
324
+ async function executeUninstall(flags, dirname = __dirname) {
325
+ const log = (msg) => {
326
+ console.error(msg);
327
+ };
328
+ // 1. Resolve paths (reuse setup's resolver)
329
+ const resolved = (0, path_resolver_1.resolve)(dirname);
330
+ const agents = resolved.detectedAgents;
331
+ // 2. Display plan
332
+ displayPlan(agents, flags);
333
+ if (agents.length === 0) {
334
+ log(chalk_1.default.yellow(' No agents detected. Nothing to uninstall.'));
335
+ return;
336
+ }
337
+ // 3. Confirm (default No for safety)
338
+ if (!flags.yes && !flags.dryRun) {
339
+ const ok = await confirm(chalk_1.default.bold.red(' Are you sure you want to uninstall HopPing?'));
340
+ if (!ok) {
341
+ log(chalk_1.default.yellow(' Aborted.'));
342
+ return;
343
+ }
344
+ log('');
345
+ }
346
+ // 4. Remove MCP config
347
+ const scopes = flags.scope === 'both'
348
+ ? ['project', 'user']
349
+ : [flags.scope];
350
+ for (const agent of agents) {
351
+ for (const scope of scopes) {
352
+ const result = await removeMcpConfig(agent, scope, flags.dryRun);
353
+ const icon = result.action === 'removed'
354
+ ? flags.dryRun
355
+ ? chalk_1.default.dim('[dry-run]')
356
+ : chalk_1.default.green(' OK')
357
+ : chalk_1.default.dim(' --');
358
+ log(`${icon} ${agent.displayName} MCP config (${scope}): ${result.action}`);
359
+ }
360
+ }
361
+ // 5. Remove Hooks config
362
+ for (const agent of agents) {
363
+ const result = await removeHooksConfig(agent, flags.dryRun);
364
+ if (result === 'unsupported') {
365
+ log(chalk_1.default.dim(` -- ${agent.displayName} hooks: not supported`));
366
+ }
367
+ else {
368
+ const icon = result.action === 'removed'
369
+ ? flags.dryRun
370
+ ? chalk_1.default.dim('[dry-run]')
371
+ : chalk_1.default.green(' OK')
372
+ : chalk_1.default.dim(' --');
373
+ log(`${icon} ${agent.displayName} hooks: ${result.action}`);
374
+ }
375
+ }
376
+ // 6. Remove Skill
377
+ log('');
378
+ for (const agent of agents) {
379
+ const result = await removeSkill(agent.name, flags.dryRun);
380
+ const icon = result.action === 'removed'
381
+ ? flags.dryRun
382
+ ? chalk_1.default.dim('[dry-run]')
383
+ : chalk_1.default.green(' OK')
384
+ : chalk_1.default.dim(' --');
385
+ log(`${icon} ${agent.displayName} Skill: ${result.action}`);
386
+ }
387
+ // 7. Done
388
+ log('');
389
+ if (flags.dryRun) {
390
+ log(chalk_1.default.yellow(' [dry-run] No changes were made.'));
391
+ }
392
+ else {
393
+ log(chalk_1.default.bold.green(' HopPing has been uninstalled.'));
394
+ log('');
395
+ log(chalk_1.default.dim(' To reinstall: npx @hopping-dev/hub setup'));
396
+ }
397
+ log('');
398
+ }
399
+ //# sourceMappingURL=uninstall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/cli/uninstall.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hopping-dev/hub",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "bin": {