@specship/specship-win32-arm64 0.14.3 → 0.16.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/lib/dist/activation/steering.d.ts +26 -0
- package/lib/dist/activation/steering.d.ts.map +1 -0
- package/lib/dist/activation/steering.js +79 -0
- package/lib/dist/activation/steering.js.map +1 -0
- package/lib/dist/bin/specship.js +97 -8
- package/lib/dist/bin/specship.js.map +1 -1
- package/lib/dist/extraction/specs/markdown-spec-extractor.d.ts +9 -7
- package/lib/dist/extraction/specs/markdown-spec-extractor.d.ts.map +1 -1
- package/lib/dist/extraction/specs/markdown-spec-extractor.js +17 -10
- package/lib/dist/extraction/specs/markdown-spec-extractor.js.map +1 -1
- package/lib/dist/extraction/specs/spec-file-writeback.d.ts +37 -0
- package/lib/dist/extraction/specs/spec-file-writeback.d.ts.map +1 -0
- package/lib/dist/extraction/specs/spec-file-writeback.js +159 -0
- package/lib/dist/extraction/specs/spec-file-writeback.js.map +1 -0
- package/lib/dist/extraction/tree-sitter-helpers.d.ts.map +1 -1
- package/lib/dist/extraction/tree-sitter-helpers.js +12 -1
- package/lib/dist/extraction/tree-sitter-helpers.js.map +1 -1
- package/lib/dist/installer/index.d.ts +26 -7
- package/lib/dist/installer/index.d.ts.map +1 -1
- package/lib/dist/installer/index.js +121 -17
- package/lib/dist/installer/index.js.map +1 -1
- package/lib/dist/installer/purge.d.ts +83 -0
- package/lib/dist/installer/purge.d.ts.map +1 -0
- package/lib/dist/installer/purge.js +144 -0
- package/lib/dist/installer/purge.js.map +1 -0
- package/lib/dist/installer/targets/claude.d.ts +11 -2
- package/lib/dist/installer/targets/claude.d.ts.map +1 -1
- package/lib/dist/installer/targets/claude.js +83 -7
- package/lib/dist/installer/targets/claude.js.map +1 -1
- package/lib/dist/installer/targets/shared.d.ts +10 -2
- package/lib/dist/installer/targets/shared.d.ts.map +1 -1
- package/lib/dist/installer/targets/shared.js +22 -11
- package/lib/dist/installer/targets/shared.js.map +1 -1
- package/lib/dist/installer/targets/types.d.ts +10 -0
- package/lib/dist/installer/targets/types.d.ts.map +1 -1
- package/lib/dist/mcp/model-context.d.ts +51 -0
- package/lib/dist/mcp/model-context.d.ts.map +1 -0
- package/lib/dist/mcp/model-context.js +229 -0
- package/lib/dist/mcp/model-context.js.map +1 -0
- package/lib/dist/mcp/spec-tools.d.ts.map +1 -1
- package/lib/dist/mcp/spec-tools.js +44 -1
- package/lib/dist/mcp/spec-tools.js.map +1 -1
- package/lib/dist/mcp/tools.d.ts +21 -0
- package/lib/dist/mcp/tools.d.ts.map +1 -1
- package/lib/dist/mcp/tools.js +71 -5
- package/lib/dist/mcp/tools.js.map +1 -1
- package/lib/dist/resolution/spec-link-resolver.d.ts.map +1 -1
- package/lib/dist/resolution/spec-link-resolver.js +42 -28
- package/lib/dist/resolution/spec-link-resolver.js.map +1 -1
- package/lib/dist/server/ingest/index.js +1 -1
- package/lib/dist/server/ingest/ingestor.js +24 -4
- package/lib/dist/server/routes/claude.js +31 -5
- package/lib/dist/server/routes/spec.js +13 -0
- package/lib/dist/server/routes/workflow.js +15 -1
- package/lib/dist/server/server.js +2 -2
- package/lib/dist/statusline/index.d.ts.map +1 -1
- package/lib/dist/statusline/index.js +6 -0
- package/lib/dist/statusline/index.js.map +1 -1
- package/lib/dist/statusline/paths.d.ts +2 -0
- package/lib/dist/statusline/paths.d.ts.map +1 -1
- package/lib/dist/statusline/paths.js +5 -0
- package/lib/dist/statusline/paths.js.map +1 -1
- package/lib/dist/types.d.ts +8 -3
- package/lib/dist/types.d.ts.map +1 -1
- package/lib/dist/ui/assets/index-CjjaftDw.js +50 -0
- package/lib/dist/ui/index.html +1 -1
- package/lib/dist/workflows/defaults/spec-implement.yaml +5 -0
- package/lib/dist/workflows/defaults/spec-verify.yaml +23 -9
- package/lib/dist/workflows/executor.d.ts +19 -0
- package/lib/dist/workflows/executor.d.ts.map +1 -1
- package/lib/dist/workflows/executor.js +131 -18
- package/lib/dist/workflows/executor.js.map +1 -1
- package/lib/dist/workflows/runners/bash.d.ts.map +1 -1
- package/lib/dist/workflows/runners/bash.js +14 -1
- package/lib/dist/workflows/runners/bash.js.map +1 -1
- package/lib/node_modules/.package-lock.json +1 -1
- package/lib/package.json +1 -1
- package/package.json +1 -1
- package/lib/dist/server/chat/classify.js +0 -130
- package/lib/dist/server/routes/chat-answer.js +0 -499
- package/lib/dist/server/routes/chat.js +0 -144
- package/lib/dist/ui/assets/index-CpBBlEO2.js +0 -51
|
@@ -50,9 +50,12 @@ exports.uninstallTargets = uninstallTargets;
|
|
|
50
50
|
exports.runUninstaller = runUninstaller;
|
|
51
51
|
exports.offerWatchFallback = offerWatchFallback;
|
|
52
52
|
const child_process_1 = require("child_process");
|
|
53
|
+
const os = __importStar(require("os"));
|
|
53
54
|
const path = __importStar(require("path"));
|
|
54
55
|
const fs = __importStar(require("fs"));
|
|
55
56
|
const claude_1 = require("./targets/claude");
|
|
57
|
+
const updater_1 = require("../update/updater");
|
|
58
|
+
const purge_1 = require("./purge");
|
|
56
59
|
const glyphs_1 = require("../ui/glyphs");
|
|
57
60
|
// Lightweight (fs/path only) — safe for the installer's no-native-modules rule.
|
|
58
61
|
const enforce_1 = require("../enforce/enforce");
|
|
@@ -209,7 +212,13 @@ async function runInstallerWithOptions(opts) {
|
|
|
209
212
|
// Step 4: write Claude config. The governance tier is opt-in
|
|
210
213
|
// (INSTALL-WEDGE-DOC): only an explicit `sdd: true` (from `--sdd`) installs it;
|
|
211
214
|
// a default install provisions the retrieval tier alone.
|
|
212
|
-
const result = claude_1.claudeTarget.install(location, {
|
|
215
|
+
const result = claude_1.claudeTarget.install(location, {
|
|
216
|
+
autoAllow,
|
|
217
|
+
sdd: opts.sdd,
|
|
218
|
+
withJira: opts.withJira,
|
|
219
|
+
withDesigner: opts.withDesigner,
|
|
220
|
+
installStatusLine,
|
|
221
|
+
});
|
|
213
222
|
for (const file of result.files) {
|
|
214
223
|
const verb = file.action === 'unchanged'
|
|
215
224
|
? 'Unchanged'
|
|
@@ -295,16 +304,14 @@ function uninstallTargets(targets, location) {
|
|
|
295
304
|
});
|
|
296
305
|
}
|
|
297
306
|
/**
|
|
298
|
-
*
|
|
299
|
-
*
|
|
300
|
-
*
|
|
301
|
-
*
|
|
302
|
-
* uninit` owns.
|
|
307
|
+
* Uninstaller entry. By default a COMPLETE removal (UNINSTALL-PURGE-DOC): the
|
|
308
|
+
* Claude Code wiring at both locations, the current project's `.specship/`
|
|
309
|
+
* index, the user-level `~/.specship/` data, and the binary itself. The
|
|
310
|
+
* `--keep-data` escape hatch runs the original wiring-only behavior instead.
|
|
303
311
|
*/
|
|
304
312
|
async function runUninstaller(opts) {
|
|
305
313
|
const clack = await importESM('@clack/prompts');
|
|
306
314
|
clack.intro(`SpecShip v${getVersion()} — uninstall`);
|
|
307
|
-
const useDefaults = opts.yes === true;
|
|
308
315
|
if (opts.target === 'none') {
|
|
309
316
|
clack.outro('Skipped — nothing to uninstall.');
|
|
310
317
|
return;
|
|
@@ -314,14 +321,22 @@ async function runUninstaller(opts) {
|
|
|
314
321
|
throw new Error(`Unknown --target value "${opts.target}". This build is Claude-only; ` +
|
|
315
322
|
`accepted values are 'claude' (default), 'auto', 'all', or 'none'.`);
|
|
316
323
|
}
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
324
|
+
if (opts.keepData) {
|
|
325
|
+
await wiringOnlyUninstall(clack, opts);
|
|
326
|
+
return;
|
|
327
|
+
}
|
|
328
|
+
await purgeUninstall(clack, opts);
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* REQ-UNINSTALL-003 — the original behavior: strip only the Claude Code wiring
|
|
332
|
+
* at the chosen location, leaving the index, `~/.specship`, and the binary.
|
|
333
|
+
*/
|
|
334
|
+
async function wiringOnlyUninstall(clack, opts) {
|
|
320
335
|
let location;
|
|
321
336
|
if (opts.location) {
|
|
322
337
|
location = opts.location;
|
|
323
338
|
}
|
|
324
|
-
else if (
|
|
339
|
+
else if (opts.yes === true) {
|
|
325
340
|
location = 'local';
|
|
326
341
|
}
|
|
327
342
|
else {
|
|
@@ -339,13 +354,10 @@ async function runUninstaller(opts) {
|
|
|
339
354
|
}
|
|
340
355
|
location = sel;
|
|
341
356
|
}
|
|
342
|
-
// Step 2: sweep + feedback. uninstallTargets always returns one
|
|
343
|
-
// report per input target — the non-null assertion is safe.
|
|
344
357
|
const report = uninstallTargets([claude_1.claudeTarget], location)[0];
|
|
345
358
|
if (report.status === 'removed') {
|
|
346
|
-
for (const p of report.removedPaths)
|
|
359
|
+
for (const p of report.removedPaths)
|
|
347
360
|
clack.log.success(`Claude Code: removed ${tildify(p)}`);
|
|
348
|
-
}
|
|
349
361
|
}
|
|
350
362
|
else if (report.status === 'not-configured') {
|
|
351
363
|
clack.log.info(`Claude Code: not configured — nothing to remove`);
|
|
@@ -353,11 +365,10 @@ async function runUninstaller(opts) {
|
|
|
353
365
|
else {
|
|
354
366
|
clack.log.info(`Claude Code: skipped — ${report.notes[0] ?? 'unsupported location'}`);
|
|
355
367
|
}
|
|
356
|
-
// Step 3: for local uninstall, the index dir is separate.
|
|
357
368
|
if (location === 'local' && fs.existsSync(path.join(process.cwd(), '.specship'))) {
|
|
358
369
|
clack.log.info('The .specship/ index for this project is still here. Run `specship uninit` to delete it.');
|
|
359
370
|
}
|
|
360
|
-
|
|
371
|
+
clack.log.info('Kept your data and the specship binary (--keep-data). Run `specship uninstall` (no flag) for a complete removal.');
|
|
361
372
|
if (report.status === 'removed') {
|
|
362
373
|
clack.outro('Removed SpecShip from Claude Code. Restart it to apply.');
|
|
363
374
|
}
|
|
@@ -365,6 +376,99 @@ async function runUninstaller(opts) {
|
|
|
365
376
|
clack.outro(`SpecShip was not configured in Claude Code at the ${location} location — nothing to remove.`);
|
|
366
377
|
}
|
|
367
378
|
}
|
|
379
|
+
/**
|
|
380
|
+
* REQ-UNINSTALL-001/002 — complete removal: the Claude Code wiring at BOTH
|
|
381
|
+
* locations, the current project's index, the user-level `~/.specship`, and the
|
|
382
|
+
* binary (by detected install method). Gated by a confirmation that lists
|
|
383
|
+
* exactly what will be deleted; `--yes` skips the prompt.
|
|
384
|
+
*/
|
|
385
|
+
async function purgeUninstall(clack, opts) {
|
|
386
|
+
const env = opts.purgeEnv ?? deriveDefaultPurgeEnv();
|
|
387
|
+
const plan = (0, purge_1.planPurge)(env);
|
|
388
|
+
const targets = [
|
|
389
|
+
'Claude Code wiring (global + this project)',
|
|
390
|
+
`This project's index — ${tildify(plan.projectIndex)}`,
|
|
391
|
+
...plan.dataDirs.map((d) => `User data & config (incl. JIRA credentials) — ${tildify(d)}`),
|
|
392
|
+
];
|
|
393
|
+
if (plan.symlink)
|
|
394
|
+
targets.push(`PATH symlink — ${tildify(plan.symlink)}`);
|
|
395
|
+
if (plan.npmRemove)
|
|
396
|
+
targets.push('The specship program — `npm rm -g @specship/specship`');
|
|
397
|
+
if (plan.method === 'unknown')
|
|
398
|
+
targets.push('The specship program — manual (install method unknown)');
|
|
399
|
+
clack.log.warn('This permanently removes EVERYTHING SpecShip:\n' +
|
|
400
|
+
targets.map((t) => ` • ${t}`).join('\n') +
|
|
401
|
+
"\n (Other projects' .specship/ indexes are NOT auto-removed — no registry exists.)");
|
|
402
|
+
if (opts.yes !== true) {
|
|
403
|
+
const proceed = await clack.confirm({ message: 'Remove SpecShip completely?', initialValue: false });
|
|
404
|
+
if (clack.isCancel(proceed) || proceed !== true) {
|
|
405
|
+
clack.cancel('Uninstall cancelled — nothing was removed.');
|
|
406
|
+
return;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
// 1. Claude Code wiring at BOTH locations.
|
|
410
|
+
for (const location of ['global', 'local']) {
|
|
411
|
+
const report = uninstallTargets([claude_1.claudeTarget], location)[0];
|
|
412
|
+
if (report.status === 'removed') {
|
|
413
|
+
for (const p of report.removedPaths)
|
|
414
|
+
clack.log.success(`Claude Code (${location}): removed ${tildify(p)}`);
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
// 2. Index + user data + binary. Self-affecting removals run LAST inside
|
|
418
|
+
// executePurge, so nothing loads a new module after the code is gone.
|
|
419
|
+
const result = (0, purge_1.executePurge)(plan, productionPurgeDeps(clack, env.homedir));
|
|
420
|
+
for (const note of result.notes)
|
|
421
|
+
clack.log.warn(note);
|
|
422
|
+
clack.outro('SpecShip completely removed. Restart Claude Code to apply.');
|
|
423
|
+
}
|
|
424
|
+
/** Derive the purge env when the CLI didn't pass one (back-compat / tests). */
|
|
425
|
+
function deriveDefaultPurgeEnv() {
|
|
426
|
+
const installDir = process.env.SPECSHIP_INSTALL_DIR || path.join(os.homedir(), '.specship');
|
|
427
|
+
const binDir = process.env.SPECSHIP_BIN_DIR || path.join(os.homedir(), '.local', 'bin');
|
|
428
|
+
return {
|
|
429
|
+
cwd: process.cwd(),
|
|
430
|
+
homedir: os.homedir(),
|
|
431
|
+
installDir,
|
|
432
|
+
binDir,
|
|
433
|
+
method: (0, updater_1.detectInstallMethod)(__dirname, installDir),
|
|
434
|
+
};
|
|
435
|
+
}
|
|
436
|
+
/** Production filesystem/spawn deps for `executePurge`, guarded against unsafe paths. */
|
|
437
|
+
function productionPurgeDeps(clack, homedir) {
|
|
438
|
+
return {
|
|
439
|
+
rmDir: (p) => {
|
|
440
|
+
(0, purge_1.assertSafeToRemove)(p, homedir);
|
|
441
|
+
if (!fs.existsSync(p))
|
|
442
|
+
return false;
|
|
443
|
+
fs.rmSync(p, { recursive: true, force: true });
|
|
444
|
+
return true;
|
|
445
|
+
},
|
|
446
|
+
rmFile: (p) => {
|
|
447
|
+
try {
|
|
448
|
+
fs.lstatSync(p);
|
|
449
|
+
}
|
|
450
|
+
catch {
|
|
451
|
+
return false;
|
|
452
|
+
} // lstat: a broken symlink is still removable
|
|
453
|
+
fs.rmSync(p, { force: true });
|
|
454
|
+
return true;
|
|
455
|
+
},
|
|
456
|
+
runNpmRemove: () => {
|
|
457
|
+
try {
|
|
458
|
+
(0, child_process_1.execFileSync)('npm', ['rm', '-g', '@specship/specship'], { stdio: 'ignore' });
|
|
459
|
+
return { ok: true, detail: 'removed @specship/specship (npm global)' };
|
|
460
|
+
}
|
|
461
|
+
catch (err) {
|
|
462
|
+
return {
|
|
463
|
+
ok: false,
|
|
464
|
+
detail: 'could not run `npm rm -g @specship/specship` automatically — run it ' +
|
|
465
|
+
`yourself to remove the binary. (${err instanceof Error ? err.message : String(err)})`,
|
|
466
|
+
};
|
|
467
|
+
}
|
|
468
|
+
},
|
|
469
|
+
log: (msg) => clack.log.success(msg),
|
|
470
|
+
};
|
|
471
|
+
}
|
|
368
472
|
/**
|
|
369
473
|
* Replace home-directory prefix in a path with `~/` for cleaner log
|
|
370
474
|
* lines. Pure cosmetic.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2FH,oCAEC;AAED,0DAmLC;AAkDD,4CA2BC;AAQD,wCAqBC;AA6ND,gDA4DC;AAnpBD,iDAAuD;AACvD,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AACzB,6CAAuF;AAEvF,+CAAwD;AACxD,mCAAyG;AACzG,yCAAyC;AACzC,gFAAgF;AAChF,gDAAsD;AACtD,4EAA4E;AAC5E,4EAA4E;AAC5E,uEAAuE;AACvE,uDAA2D;AAC3D,iDAAuF;AAEvF,mEAAmE;AACnE,qEAAqE;AACrE,YAAY;AACZ,iDAKyB;AAJvB,+GAAA,cAAc,OAAA;AACd,iHAAA,gBAAgB,OAAA;AAChB,6GAAA,YAAY,OAAA;AACZ,+GAAA,cAAc,OAAA;AAIhB,0EAA0E;AAC1E,uEAAuE;AACvE,8DAA8D;AAC9D,MAAM,SAAS,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CACL,CAAC;AAElE,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,cAAc,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1E,OAAO,WAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAwCD;;GAEG;AACI,KAAK,UAAU,YAAY;IAChC,OAAO,uBAAuB,CAAC,EAAE,CAAC,CAAC;AACrC,CAAC;AAEM,KAAK,UAAU,uBAAuB,CAAC,IAAyB;IACrE,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAEhD,KAAK,CAAC,KAAK,CAAC,aAAa,UAAU,EAAE,EAAE,CAAC,CAAC;IAEzC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC;IAEtC,oEAAoE;IACpE,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IACD,oEAAoE;IACpE,iCAAiC;IACjC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;WACtB,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACb,2BAA2B,IAAI,CAAC,MAAM,gCAAgC;YACtE,mEAAmE,CACpE,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,2CAA2C;IAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,qBAAqB,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC;YAChD,OAAO,EAAE,4FAA4F;YACrG,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,IAAI,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAC1C,KAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,qBAAqB,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;YAC1B,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YACtC,IAAI,CAAC;gBACH,IAAA,wBAAQ,EAAC,mCAAmC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpF,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,CAAC,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;gBAChD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAC;QAC3G,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,kEAAkE;IAClE,qEAAqE;IACrE,sEAAsE;IACtE,yDAAyD;IACzD,IAAI,QAAkB,CAAC;IACvB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC3B,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACvB,QAAQ,GAAG,OAAO,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;YAC7B,OAAO,EAAE,gEAAgE;YACzE,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,OAAiB,EAAE,KAAK,EAAE,iCAAiC,EAAE,IAAI,EAAE,uCAAuC,EAAE;gBACrH,EAAE,KAAK,EAAE,QAAiB,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,0CAA0C,EAAE;aACtG;YACD,YAAY,EAAE,OAAgB;SAC/B,CAAC,CAAC;QACH,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,QAAQ,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,kCAAkC;IAClC,IAAI,SAAkB,CAAC;IACvB,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACjC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAC7B,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACvB,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC;YAC9B,OAAO,EAAE,yEAAyE;YAClF,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,SAAS,GAAG,GAAG,CAAC;IAClB,CAAC;IAED,4EAA4E;IAC5E,4EAA4E;IAC5E,qEAAqE;IACrE,6EAA6E;IAC7E,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAClC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC;IACtC,CAAC;SAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAA,wBAAe,EAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,IAAA,6BAAoB,GAAE,EAAE,qDAAqD,CAAC,CAAC;QAC5F,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC;gBAC9B,OAAO,EAAE,6FAA6F;gBACtG,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;YACH,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,KAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;gBACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,iBAAiB,GAAG,GAAG,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,gFAAgF;IAChF,yDAAyD;IACzD,MAAM,MAAM,GAAG,qBAAY,CAAC,OAAO,CAAC,QAAQ,EAAE;QAC5C,SAAS;QACT,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,iBAAiB;KAClB,CAAC,CAAC;IACH,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,KAAK,WAAW;YACtC,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS;gBACrC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS;oBACrC,CAAC,CAAC,SAAS,CAAC;QAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;QACtC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,wEAAwE;IACxE,wEAAwE;IACxE,2EAA2E;IAC3E,wEAAwE;IACxE,wEAAwE;IACxE,kEAAkE;IAClE,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;QACtB,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC;gBAC/B,OAAO,EAAE,kGAAkG;gBAC3G,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;YACH,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,KAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;gBACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,OAAO,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;gBACxE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;oBACnB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,sBAAsB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;gBACvF,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;YACnG,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,8CAA8C,EAAE,+BAA+B,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,sBAAsB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,mCAAmC,EAAE,aAAa,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;AAC5D,CAAC;AA4CD;;;;;GAKG;AACH,SAAgB,gBAAgB,CAC9B,OAA+B,EAC/B,QAAkB;IAElB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC5B,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,GAAa,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;YACjE,OAAO;gBACL,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,MAAM,EAAE,aAAsB;gBAC9B,YAAY,EAAE,EAAE;gBAChB,KAAK,EAAE,CAAC,MAAM,QAAQ,2BAA2B,IAAI,OAAO,CAAC;aAC9D,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK;aAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC;aACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAE,SAAmB,CAAC,CAAC,CAAE,gBAA0B;YACpF,YAAY;YACZ,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;SAC1B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,cAAc,CAAC,IAA2B;IAC9D,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAChD,KAAK,CAAC,KAAK,CAAC,aAAa,UAAU,EAAE,cAAc,CAAC,CAAC;IAErD,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAC/C,OAAO;IACT,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;WACtB,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACb,2BAA2B,IAAI,CAAC,MAAM,gCAAgC;YACtE,mEAAmE,CACpE,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IACD,MAAM,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,mBAAmB,CAChC,KAAsC,EACtC,IAA2B;IAE3B,IAAI,QAAkB,CAAC;IACvB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC3B,CAAC;SAAM,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;QAC7B,QAAQ,GAAG,OAAO,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;YAC7B,OAAO,EAAE,yDAAyD;YAClE,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,OAAiB,EAAE,KAAK,EAAE,2BAA2B,EAAE,IAAI,EAAE,uCAAuC,EAAE;gBAC/G,EAAE,KAAK,EAAE,QAAiB,EAAE,KAAK,EAAE,uBAAuB,EAAE,IAAI,EAAE,0CAA0C,EAAE;aAC/G;YACD,YAAY,EAAE,OAAgB;SAC/B,CAAC,CAAC;QACH,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,QAAQ,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,qBAAY,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAC;IAC9D,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,YAAY;YAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,wBAAwB,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/F,CAAC;SAAM,IAAI,MAAM,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;QAC9C,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IACpE,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QACjF,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,0FAA0F,CAAC,CAAC;IAC7G,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,kHAAkH,CAAC,CAAC;IAEnI,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;IACzE,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,KAAK,CAAC,qDAAqD,QAAQ,gCAAgC,CAAC,CAAC;IAC7G,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,cAAc,CAC3B,KAAsC,EACtC,IAA2B;IAE3B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,qBAAqB,EAAE,CAAC;IACrD,MAAM,IAAI,GAAG,IAAA,iBAAS,EAAC,GAAG,CAAC,CAAC;IAE5B,MAAM,OAAO,GAAa;QACxB,4CAA4C;QAC5C,0BAA0B,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;QACtD,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iDAAiD,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3F,CAAC;IACF,IAAI,IAAI,CAAC,OAAO;QAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1E,IAAI,IAAI,CAAC,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IAC1F,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;IAEtG,KAAK,CAAC,GAAG,CAAC,IAAI,CACZ,iDAAiD;QACjD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACzC,qFAAqF,CACtF,CAAC;IAEF,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,6BAA6B,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;QACrG,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YAChD,KAAK,CAAC,MAAM,CAAC,4CAA4C,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,KAAK,MAAM,QAAQ,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAe,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,qBAAY,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAC;QAC9D,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,YAAY;gBAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,QAAQ,cAAc,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,yEAAyE;IACzE,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,IAAI,EAAE,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK;QAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEtD,KAAK,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;AAC5E,CAAC;AAED,+EAA+E;AAC/E,SAAS,qBAAqB;IAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;IAC5F,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACxF,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE;QACrB,UAAU;QACV,MAAM;QACN,MAAM,EAAE,IAAA,6BAAmB,EAAC,SAAS,EAAE,UAAU,CAAC;KACnD,CAAC;AACJ,CAAC;AAED,yFAAyF;AACzF,SAAS,mBAAmB,CAC1B,KAAsC,EACtC,OAAe;IAEf,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;YACX,IAAA,0BAAkB,EAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC/B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,IAAI,CAAC;gBAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO,KAAK,CAAC;YAAC,CAAC,CAAC,6CAA6C;YAC9F,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,YAAY,EAAE,GAAG,EAAE;YACjB,IAAI,CAAC;gBACH,IAAA,4BAAY,EAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC7E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,yCAAyC,EAAE,CAAC;YACzE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EACJ,sEAAsE;wBACtE,mCAAmC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG;iBACzF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;KACrC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,OAAO,CAAC,CAAS;IACxB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;IACrC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzE,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,sBAAsB,CACnC,KAAsC,EACtC,WAAW,GAAG,KAAK;IAEnB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAElC,IAAI,QAA2C,CAAC;IAChD,IAAI,CAAC;QACH,QAAQ,GAAG,CAAC,wDAAa,UAAU,GAAC,CAAC,CAAC,OAAO,CAAC;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,kCAAkC,GAAG,EAAE,CAAC,CAAC;QACzD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QACjF,OAAO;IACT,CAAC;IAED,+BAA+B;IAC/B,IAAI,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QAC/D,MAAM,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;QACnE,OAAO;IACT,CAAC;IAED,aAAa;IACb,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAElD,+EAA+E;IAC/E,MAAM,EAAE,qBAAqB,EAAE,GAAG,wDAAa,wBAAwB,GAAC,CAAC;IACzE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAA,kBAAS,GAAE,CAAC,IAAI,WAAW,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;IAEzC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC;QAC/B,UAAU,EAAE,QAAQ,CAAC,UAAU;KAChC,CAAC,CAAC;IAEH,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEtB,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IACtK,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IACzH,CAAC;IAED,EAAE,CAAC,KAAK,EAAE,CAAC;IAEX,MAAM,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;AACrE,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,kBAAkB,CACtC,KAAsC,EACtC,WAAmB,EACnB,OAA0B,EAAE;IAE5B,MAAM,MAAM,GAAG,IAAA,kCAAmB,EAAC,WAAW,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,6CAA6C;IAElE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,yCAAyC,MAAM,GAAG,CAAC,CAAC;IACnE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,4FAA4F,CAAC,CAAC;IAE7G,0EAA0E;IAC1E,IAAI,CAAC,IAAA,qBAAS,EAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QACjF,OAAO;IACT,CAAC;IAED,4EAA4E;IAC5E,IAAI,IAAA,+BAAmB,EAAC,WAAW,CAAC,EAAE,CAAC;QACrC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,4FAA4F,CAAC,CAAC;QAC7G,OAAO;IACT,CAAC;IAED,IAAI,MAAyB,CAAC;IAC9B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,MAAM,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;YAC7B,OAAO,EAAE,2CAA2C;YACpD,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,MAAe,EAAE,KAAK,EAAE,sCAAsC,EAAE,IAAI,EAAE,kCAAkC,EAAE;gBACnH,EAAE,KAAK,EAAE,QAAiB,EAAE,KAAK,EAAE,kCAAkC,EAAE,IAAI,EAAE,cAAc,EAAE;aAC9F;YACD,YAAY,EAAE,MAAe;SAC9B,CAAC,CAAC;QACH,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;YACpF,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,CAAC;IACf,CAAC;IAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QACjF,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,8BAAkB,EAAC,WAAW,CAAC,CAAC;IAC/C,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,GAAG,CAAC,OAAO,CACf,iBAAiB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK;YAC/F,mDAAmD,CACpD,CAAC;QACF,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IACxE,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,GAAG,CAAC,IAAI,CACZ,8BAA8B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI;YAC9E,4CAA4C,CAC7C,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Complete-uninstall (purge) planning + execution (UNINSTALL-PURGE-DOC).
|
|
3
|
+
*
|
|
4
|
+
* `planPurge` is PURE — it computes the exact set of SpecShip-owned artifacts to
|
|
5
|
+
* remove (project index, user-level data dirs, PATH symlink, npm-removal flag)
|
|
6
|
+
* from an environment description, touching no filesystem. That keeps the delete
|
|
7
|
+
* set unit-testable and means the executor can never surprise-remove a path the
|
|
8
|
+
* planner didn't name.
|
|
9
|
+
*
|
|
10
|
+
* `executePurge` performs the data + binary removals (the Claude Code wiring
|
|
11
|
+
* sweep is done by the caller, which reuses `uninstallTargets`). Self-affecting
|
|
12
|
+
* removals — the bundle install dir that holds the RUNNING code, or `npm rm -g`
|
|
13
|
+
* of the running global package — run LAST, so nothing needs a not-yet-loaded
|
|
14
|
+
* module after the code is gone. Every removal is best-effort: an OS refusal
|
|
15
|
+
* (e.g. an in-use executable on Windows) is caught and reported, never thrown.
|
|
16
|
+
*/
|
|
17
|
+
import type { InstallMethod } from '../update/updater';
|
|
18
|
+
export interface PurgeEnv {
|
|
19
|
+
/** The current project root (its `.specship/` index is removed). */
|
|
20
|
+
cwd: string;
|
|
21
|
+
/** The user's home dir (`~/.specship` holds config, JIRA creds, worktrees). */
|
|
22
|
+
homedir: string;
|
|
23
|
+
/** Bundle install root: `SPECSHIP_INSTALL_DIR` || `~/.specship`. */
|
|
24
|
+
installDir: string;
|
|
25
|
+
/** PATH symlink dir: `SPECSHIP_BIN_DIR` || `~/.local/bin`. */
|
|
26
|
+
binDir: string;
|
|
27
|
+
/** How the running binary was installed (from `detectInstallMethod`). */
|
|
28
|
+
method: InstallMethod;
|
|
29
|
+
}
|
|
30
|
+
export interface PurgePlan {
|
|
31
|
+
method: InstallMethod;
|
|
32
|
+
/** The current project's index dir to remove. */
|
|
33
|
+
projectIndex: string;
|
|
34
|
+
/** User-level dirs to remove (data/config + the bundle install). Deduped. */
|
|
35
|
+
dataDirs: string[];
|
|
36
|
+
/** PATH symlink to remove (bundle only), else null. */
|
|
37
|
+
symlink: string | null;
|
|
38
|
+
/** True when the binary is removed via `npm rm -g`. */
|
|
39
|
+
npmRemove: boolean;
|
|
40
|
+
/** For an unknown method: the manual binary-removal hint, else null. */
|
|
41
|
+
manualBinaryHint: string | null;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Guard against a catastrophic delete: refuse a filesystem root, the home dir
|
|
45
|
+
* itself, or any top-level directory (fewer than two path segments). Every real
|
|
46
|
+
* purge target — `~/.specship`, `<cwd>/.specship`, a bundle install dir — has at
|
|
47
|
+
* least two segments, so this only ever fires on a misconfigured env. Throws.
|
|
48
|
+
*/
|
|
49
|
+
export declare function assertSafeToRemove(p: string, homedir: string): void;
|
|
50
|
+
/**
|
|
51
|
+
* Compute every SpecShip-owned artifact to remove (REQ-UNINSTALL-001/002). Pure:
|
|
52
|
+
* no filesystem access. The bundle install lives under `installDir` (default
|
|
53
|
+
* `~/.specship`); when that coincides with the user-data dir (the default) the
|
|
54
|
+
* two dedupe to one removal, otherwise both are removed.
|
|
55
|
+
*/
|
|
56
|
+
export declare function planPurge(env: PurgeEnv): PurgePlan;
|
|
57
|
+
export interface PurgeExecDeps {
|
|
58
|
+
/** Remove a directory tree; returns true if it existed and was removed. Throws on OS refusal. */
|
|
59
|
+
rmDir: (p: string) => boolean;
|
|
60
|
+
/** Remove a file/symlink; returns true if it existed and was removed. Throws on OS refusal. */
|
|
61
|
+
rmFile: (p: string) => boolean;
|
|
62
|
+
/** Run `npm rm -g @specship/specship`; returns ok + a short detail line. Never throws. */
|
|
63
|
+
runNpmRemove: () => {
|
|
64
|
+
ok: boolean;
|
|
65
|
+
detail: string;
|
|
66
|
+
};
|
|
67
|
+
/** Emit a progress line. */
|
|
68
|
+
log: (msg: string) => void;
|
|
69
|
+
}
|
|
70
|
+
export interface PurgeResult {
|
|
71
|
+
removed: string[];
|
|
72
|
+
notes: string[];
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Execute a purge plan's data + binary removals (REQ-UNINSTALL-001/002). Order
|
|
76
|
+
* matters: the project index and the PATH symlink go first (never the running
|
|
77
|
+
* code), then `npm rm -g` (npm) and the data/install dirs (bundle) LAST because
|
|
78
|
+
* they remove the running code — after that point no new module may load. Each
|
|
79
|
+
* step is best-effort; a caught OS refusal becomes a note plus, when relevant,
|
|
80
|
+
* the manual fallback (REQ-UNINSTALL-002.A4).
|
|
81
|
+
*/
|
|
82
|
+
export declare function executePurge(plan: PurgePlan, deps: PurgeExecDeps): PurgeResult;
|
|
83
|
+
//# sourceMappingURL=purge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purge.d.ts","sourceRoot":"","sources":["../../src/installer/purge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,WAAW,QAAQ;IACvB,oEAAoE;IACpE,GAAG,EAAE,MAAM,CAAC;IACZ,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,aAAa,CAAC;IACtB,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,uDAAuD;IACvD,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,uDAAuD;IACvD,SAAS,EAAE,OAAO,CAAC;IACnB,wEAAwE;IACxE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAOD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAMnE;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG,SAAS,CAmBlD;AAED,MAAM,WAAW,aAAa;IAC5B,iGAAiG;IACjG,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9B,+FAA+F;IAC/F,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/B,0FAA0F;IAC1F,YAAY,EAAE,MAAM;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,4BAA4B;IAC5B,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,GAAG,WAAW,CAgC9E"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Complete-uninstall (purge) planning + execution (UNINSTALL-PURGE-DOC).
|
|
4
|
+
*
|
|
5
|
+
* `planPurge` is PURE — it computes the exact set of SpecShip-owned artifacts to
|
|
6
|
+
* remove (project index, user-level data dirs, PATH symlink, npm-removal flag)
|
|
7
|
+
* from an environment description, touching no filesystem. That keeps the delete
|
|
8
|
+
* set unit-testable and means the executor can never surprise-remove a path the
|
|
9
|
+
* planner didn't name.
|
|
10
|
+
*
|
|
11
|
+
* `executePurge` performs the data + binary removals (the Claude Code wiring
|
|
12
|
+
* sweep is done by the caller, which reuses `uninstallTargets`). Self-affecting
|
|
13
|
+
* removals — the bundle install dir that holds the RUNNING code, or `npm rm -g`
|
|
14
|
+
* of the running global package — run LAST, so nothing needs a not-yet-loaded
|
|
15
|
+
* module after the code is gone. Every removal is best-effort: an OS refusal
|
|
16
|
+
* (e.g. an in-use executable on Windows) is caught and reported, never thrown.
|
|
17
|
+
*/
|
|
18
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
19
|
+
if (k2 === undefined) k2 = k;
|
|
20
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
21
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
22
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
23
|
+
}
|
|
24
|
+
Object.defineProperty(o, k2, desc);
|
|
25
|
+
}) : (function(o, m, k, k2) {
|
|
26
|
+
if (k2 === undefined) k2 = k;
|
|
27
|
+
o[k2] = m[k];
|
|
28
|
+
}));
|
|
29
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
30
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
31
|
+
}) : function(o, v) {
|
|
32
|
+
o["default"] = v;
|
|
33
|
+
});
|
|
34
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
35
|
+
var ownKeys = function(o) {
|
|
36
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
37
|
+
var ar = [];
|
|
38
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
39
|
+
return ar;
|
|
40
|
+
};
|
|
41
|
+
return ownKeys(o);
|
|
42
|
+
};
|
|
43
|
+
return function (mod) {
|
|
44
|
+
if (mod && mod.__esModule) return mod;
|
|
45
|
+
var result = {};
|
|
46
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
47
|
+
__setModuleDefault(result, mod);
|
|
48
|
+
return result;
|
|
49
|
+
};
|
|
50
|
+
})();
|
|
51
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
52
|
+
exports.assertSafeToRemove = assertSafeToRemove;
|
|
53
|
+
exports.planPurge = planPurge;
|
|
54
|
+
exports.executePurge = executePurge;
|
|
55
|
+
const path = __importStar(require("path"));
|
|
56
|
+
/** The user-level SpecShip data directory — always `~/.specship`. */
|
|
57
|
+
function userDataDir(homedir) {
|
|
58
|
+
return path.join(homedir, '.specship');
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Guard against a catastrophic delete: refuse a filesystem root, the home dir
|
|
62
|
+
* itself, or any top-level directory (fewer than two path segments). Every real
|
|
63
|
+
* purge target — `~/.specship`, `<cwd>/.specship`, a bundle install dir — has at
|
|
64
|
+
* least two segments, so this only ever fires on a misconfigured env. Throws.
|
|
65
|
+
*/
|
|
66
|
+
function assertSafeToRemove(p, homedir) {
|
|
67
|
+
const r = path.resolve(p);
|
|
68
|
+
const segments = r.split(path.sep).filter(Boolean).length;
|
|
69
|
+
if (r === path.parse(r).root || r === path.resolve(homedir) || segments < 2) {
|
|
70
|
+
throw new Error(`refusing to remove unsafe path: ${r}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Compute every SpecShip-owned artifact to remove (REQ-UNINSTALL-001/002). Pure:
|
|
75
|
+
* no filesystem access. The bundle install lives under `installDir` (default
|
|
76
|
+
* `~/.specship`); when that coincides with the user-data dir (the default) the
|
|
77
|
+
* two dedupe to one removal, otherwise both are removed.
|
|
78
|
+
*/
|
|
79
|
+
function planPurge(env) {
|
|
80
|
+
const userData = userDataDir(env.homedir);
|
|
81
|
+
const dataDirs = [userData];
|
|
82
|
+
if (env.method === 'bundle') {
|
|
83
|
+
const inst = path.resolve(env.installDir);
|
|
84
|
+
if (!dataDirs.some((d) => path.resolve(d) === inst))
|
|
85
|
+
dataDirs.push(env.installDir);
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
method: env.method,
|
|
89
|
+
projectIndex: path.join(env.cwd, '.specship'),
|
|
90
|
+
dataDirs,
|
|
91
|
+
symlink: env.method === 'bundle' ? path.join(env.binDir, 'specship') : null,
|
|
92
|
+
npmRemove: env.method === 'npm',
|
|
93
|
+
manualBinaryHint: env.method === 'unknown'
|
|
94
|
+
? 'Could not tell how specship was installed — remove the binary manually: ' +
|
|
95
|
+
'`npm rm -g @specship/specship`, or delete its install dir + its PATH symlink.'
|
|
96
|
+
: null,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Execute a purge plan's data + binary removals (REQ-UNINSTALL-001/002). Order
|
|
101
|
+
* matters: the project index and the PATH symlink go first (never the running
|
|
102
|
+
* code), then `npm rm -g` (npm) and the data/install dirs (bundle) LAST because
|
|
103
|
+
* they remove the running code — after that point no new module may load. Each
|
|
104
|
+
* step is best-effort; a caught OS refusal becomes a note plus, when relevant,
|
|
105
|
+
* the manual fallback (REQ-UNINSTALL-002.A4).
|
|
106
|
+
*/
|
|
107
|
+
function executePurge(plan, deps) {
|
|
108
|
+
const removed = [];
|
|
109
|
+
const notes = [];
|
|
110
|
+
const attempt = (p, rm) => {
|
|
111
|
+
try {
|
|
112
|
+
if (rm(p)) {
|
|
113
|
+
removed.push(p);
|
|
114
|
+
deps.log(`removed ${p}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
notes.push(`could not remove ${p}: ${err instanceof Error ? err.message : String(err)}`);
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
// 1. This project's index (never the running code).
|
|
122
|
+
attempt(plan.projectIndex, deps.rmDir);
|
|
123
|
+
// 2. The PATH symlink (bundle) — safe to unlink while running.
|
|
124
|
+
if (plan.symlink)
|
|
125
|
+
attempt(plan.symlink, deps.rmFile);
|
|
126
|
+
// 3. npm binary removal — self-affecting (removes the running global package).
|
|
127
|
+
if (plan.npmRemove) {
|
|
128
|
+
const r = deps.runNpmRemove();
|
|
129
|
+
if (r.ok) {
|
|
130
|
+
removed.push('@specship/specship (npm global)');
|
|
131
|
+
deps.log(r.detail);
|
|
132
|
+
}
|
|
133
|
+
else
|
|
134
|
+
notes.push(r.detail);
|
|
135
|
+
}
|
|
136
|
+
// 4. User data + bundle install LAST — for a bundle install these hold the
|
|
137
|
+
// running code, so nothing may load a new module after this.
|
|
138
|
+
for (const d of plan.dataDirs)
|
|
139
|
+
attempt(d, deps.rmDir);
|
|
140
|
+
if (plan.manualBinaryHint)
|
|
141
|
+
notes.push(plan.manualBinaryHint);
|
|
142
|
+
return { removed, notes };
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=purge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purge.js","sourceRoot":"","sources":["../../src/installer/purge.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ import { AgentTarget, Location, WriteResult } from './types';
|
|
|
24
24
|
* writes all three files. Without this split the shims silently
|
|
25
25
|
* cause side effects callers don't expect.
|
|
26
26
|
*/
|
|
27
|
-
export declare function writeMcpEntry(loc: Location): WriteResult['files'][number];
|
|
27
|
+
export declare function writeMcpEntry(loc: Location, integrations?: string[]): WriteResult['files'][number];
|
|
28
28
|
/**
|
|
29
29
|
* Remove stale **pre-0.8** specship auto-sync hooks
|
|
30
30
|
* (`specship mark-dirty` / `specship sync-if-dirty`) from Claude
|
|
@@ -48,7 +48,7 @@ export declare function cleanupStaleSessionStartSyncHook(loc: Location): WriteRe
|
|
|
48
48
|
* destroy its own write if this ran there.
|
|
49
49
|
*/
|
|
50
50
|
export declare function cleanupCurrentHooks(loc: Location): WriteResult['files'][number];
|
|
51
|
-
export declare function writePermissionsEntry(loc: Location): WriteResult['files'][number];
|
|
51
|
+
export declare function writePermissionsEntry(loc: Location, integrations?: string[]): WriteResult['files'][number];
|
|
52
52
|
/**
|
|
53
53
|
* What status line is configured at this location, from SpecShip's point of
|
|
54
54
|
* view (REQ-STATUSLINE-006): `none` (free to write), `ours` (a marked entry we
|
|
@@ -102,8 +102,17 @@ export declare function writeHooksEntry(loc: Location): WriteResult['files'][num
|
|
|
102
102
|
* `autoAllow`, since it's part of the SDD steering feature.
|
|
103
103
|
*/
|
|
104
104
|
export declare function writeSddHookEntry(loc: Location): WriteResult['files'][number];
|
|
105
|
+
/**
|
|
106
|
+
* Write the retrieval-steering UserPromptSubmit hook into `settings.json`
|
|
107
|
+
* (STEER-HOOK-DOC, REQ-STEER-001). Same idempotent merge as the other hooks;
|
|
108
|
+
* part of the default retrieval tier — NOT gated on `--sdd` or autoAllow
|
|
109
|
+
* (the hook only prints guidance and is silent without an index).
|
|
110
|
+
*/
|
|
111
|
+
export declare function writeSteerHookEntry(loc: Location): WriteResult['files'][number];
|
|
105
112
|
/** Remove the SDD nudge hook written by `writeSddHookEntry`. Uninstall-only. */
|
|
106
113
|
export declare function cleanupSddHooks(loc: Location): WriteResult['files'][number];
|
|
114
|
+
/** Remove the steering hook written by `writeSteerHookEntry`. Uninstall-only. */
|
|
115
|
+
export declare function cleanupSteerHooks(loc: Location): WriteResult['files'][number];
|
|
107
116
|
/**
|
|
108
117
|
* Write the spec-driven-development steering rule into the project CLAUDE.md
|
|
109
118
|
* (SDD-INSTALL-DOC, REQ-SDD-001). Idempotent + marker-delimited so the user's
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/installer/targets/claude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,OAAO,EACL,WAAW,EAGX,QAAQ,EACR,WAAW,EACZ,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/installer/targets/claude.ts"],"names":[],"mappings":"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"}
|