@specship/specship-darwin-arm64 0.29.0 → 0.30.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/bin/specship +1 -1
- package/lib/dist/.claude-plugin/plugin.json +15 -3
- package/lib/dist/activation/cheatsheet.d.ts +10 -7
- package/lib/dist/activation/cheatsheet.d.ts.map +1 -1
- package/lib/dist/activation/cheatsheet.js +21 -5
- package/lib/dist/activation/cheatsheet.js.map +1 -1
- package/lib/dist/activation/hook-output.d.ts +75 -2
- package/lib/dist/activation/hook-output.d.ts.map +1 -1
- package/lib/dist/activation/hook-output.js +114 -3
- package/lib/dist/activation/hook-output.js.map +1 -1
- package/lib/dist/activation/search-intercept.d.ts +20 -7
- package/lib/dist/activation/search-intercept.d.ts.map +1 -1
- package/lib/dist/activation/search-intercept.js +27 -5
- package/lib/dist/activation/search-intercept.js.map +1 -1
- package/lib/dist/activation/steering.d.ts +7 -4
- package/lib/dist/activation/steering.d.ts.map +1 -1
- package/lib/dist/activation/steering.js +10 -8
- package/lib/dist/activation/steering.js.map +1 -1
- package/lib/dist/agents/detect.d.ts +32 -0
- package/lib/dist/agents/detect.d.ts.map +1 -0
- package/lib/dist/agents/detect.js +54 -0
- package/lib/dist/agents/detect.js.map +1 -0
- package/lib/dist/agents/recent-project.d.ts +18 -0
- package/lib/dist/agents/recent-project.d.ts.map +1 -0
- package/lib/dist/agents/recent-project.js +92 -0
- package/lib/dist/agents/recent-project.js.map +1 -0
- package/lib/dist/analytics/canonical-tools.d.ts +23 -0
- package/lib/dist/analytics/canonical-tools.d.ts.map +1 -0
- package/lib/dist/analytics/canonical-tools.js +36 -0
- package/lib/dist/analytics/canonical-tools.js.map +1 -0
- package/lib/dist/analytics/canonical-tools.json +16 -0
- package/lib/dist/analytics/specship-impact.d.ts +3 -2
- package/lib/dist/analytics/specship-impact.d.ts.map +1 -1
- package/lib/dist/analytics/specship-impact.js +6 -4
- package/lib/dist/analytics/specship-impact.js.map +1 -1
- package/lib/dist/bin/specship.js +215 -170
- package/lib/dist/bin/specship.js.map +1 -1
- package/lib/dist/bin/uninstall.js +2 -2
- package/lib/dist/bin/uninstall.js.map +1 -1
- package/lib/dist/claudemd/audit.d.ts +12 -3
- package/lib/dist/claudemd/audit.d.ts.map +1 -1
- package/lib/dist/claudemd/audit.js +65 -22
- package/lib/dist/claudemd/audit.js.map +1 -1
- package/lib/dist/commands/specship/spec.md +9 -0
- package/lib/dist/db/migrations.d.ts +1 -1
- package/lib/dist/db/migrations.d.ts.map +1 -1
- package/lib/dist/db/migrations.js +18 -4
- package/lib/dist/db/migrations.js.map +1 -1
- package/lib/dist/db/schema.sql +8 -0
- package/lib/dist/db/spec-queries.d.ts +13 -1
- package/lib/dist/db/spec-queries.d.ts.map +1 -1
- package/lib/dist/db/spec-queries.js +21 -0
- package/lib/dist/db/spec-queries.js.map +1 -1
- package/lib/dist/enforce/changed-files.d.ts +7 -0
- package/lib/dist/enforce/changed-files.d.ts.map +1 -1
- package/lib/dist/enforce/changed-files.js +17 -0
- package/lib/dist/enforce/changed-files.js.map +1 -1
- package/lib/dist/enforce/enforce.d.ts +35 -1
- package/lib/dist/enforce/enforce.d.ts.map +1 -1
- package/lib/dist/enforce/enforce.js +66 -2
- package/lib/dist/enforce/enforce.js.map +1 -1
- package/lib/dist/extraction/index.d.ts +50 -4
- package/lib/dist/extraction/index.d.ts.map +1 -1
- package/lib/dist/extraction/index.js +105 -13
- package/lib/dist/extraction/index.js.map +1 -1
- package/lib/dist/extraction/parse-warnings.d.ts +16 -0
- package/lib/dist/extraction/parse-warnings.d.ts.map +1 -0
- package/lib/dist/extraction/parse-warnings.js +30 -0
- package/lib/dist/extraction/parse-warnings.js.map +1 -0
- package/lib/dist/extraction/tree-sitter.d.ts +27 -0
- package/lib/dist/extraction/tree-sitter.d.ts.map +1 -1
- package/lib/dist/extraction/tree-sitter.js +168 -1
- package/lib/dist/extraction/tree-sitter.js.map +1 -1
- package/lib/dist/health/smoke-check.js +1 -1
- package/lib/dist/health/smoke-check.js.map +1 -1
- package/lib/dist/hooks/hooks.json +16 -1
- package/lib/dist/index.d.ts +63 -3
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +235 -9
- package/lib/dist/index.js.map +1 -1
- package/lib/dist/installer/agent-record.d.ts +80 -0
- package/lib/dist/installer/agent-record.d.ts.map +1 -0
- package/lib/dist/installer/agent-record.js +351 -0
- package/lib/dist/installer/agent-record.js.map +1 -0
- package/lib/dist/installer/auto-migrate.d.ts +56 -0
- package/lib/dist/installer/auto-migrate.d.ts.map +1 -0
- package/lib/dist/installer/auto-migrate.js +328 -0
- package/lib/dist/installer/auto-migrate.js.map +1 -0
- package/lib/dist/installer/index.d.ts +37 -8
- package/lib/dist/installer/index.d.ts.map +1 -1
- package/lib/dist/installer/index.js +156 -46
- package/lib/dist/installer/index.js.map +1 -1
- package/lib/dist/installer/install-defaults.d.ts +4 -3
- package/lib/dist/installer/install-defaults.d.ts.map +1 -1
- package/lib/dist/installer/install-defaults.js +6 -5
- package/lib/dist/installer/install-defaults.js.map +1 -1
- package/lib/dist/installer/{config-writer.d.ts → targets/claude-config-writer.d.ts} +1 -1
- package/lib/dist/installer/targets/claude-config-writer.d.ts.map +1 -0
- package/lib/dist/installer/{config-writer.js → targets/claude-config-writer.js} +7 -6
- package/lib/dist/installer/targets/claude-config-writer.js.map +1 -0
- package/lib/dist/installer/targets/claude-projects.d.ts +9 -0
- package/lib/dist/installer/targets/claude-projects.d.ts.map +1 -0
- package/lib/dist/installer/targets/claude-projects.js +151 -0
- package/lib/dist/installer/targets/claude-projects.js.map +1 -0
- package/lib/dist/installer/targets/claude.d.ts +28 -1
- package/lib/dist/installer/targets/claude.d.ts.map +1 -1
- package/lib/dist/installer/targets/claude.js +39 -20
- package/lib/dist/installer/targets/claude.js.map +1 -1
- package/lib/dist/installer/targets/feature-parity.d.ts +28 -0
- package/lib/dist/installer/targets/feature-parity.d.ts.map +1 -0
- package/lib/dist/installer/targets/feature-parity.js +32 -0
- package/lib/dist/installer/targets/feature-parity.js.map +1 -0
- package/lib/dist/installer/{gemini-commands.d.ts → targets/gemini-commands.d.ts} +7 -3
- package/lib/dist/installer/targets/gemini-commands.d.ts.map +1 -0
- package/lib/dist/installer/{gemini-commands.js → targets/gemini-commands.js} +35 -14
- package/lib/dist/installer/targets/gemini-commands.js.map +1 -0
- package/lib/dist/installer/targets/gemini-projects.d.ts +11 -0
- package/lib/dist/installer/targets/gemini-projects.d.ts.map +1 -0
- package/lib/dist/installer/targets/gemini-projects.js +84 -0
- package/lib/dist/installer/targets/gemini-projects.js.map +1 -0
- package/lib/dist/installer/targets/gemini.d.ts +94 -8
- package/lib/dist/installer/targets/gemini.d.ts.map +1 -1
- package/lib/dist/installer/targets/gemini.js +392 -33
- package/lib/dist/installer/targets/gemini.js.map +1 -1
- package/lib/dist/installer/targets/registry.d.ts +8 -1
- package/lib/dist/installer/targets/registry.d.ts.map +1 -1
- package/lib/dist/installer/targets/registry.js +14 -5
- package/lib/dist/installer/targets/registry.js.map +1 -1
- package/lib/dist/installer/targets/shared.d.ts +44 -1
- package/lib/dist/installer/targets/shared.d.ts.map +1 -1
- package/lib/dist/installer/targets/shared.js +130 -3
- package/lib/dist/installer/targets/shared.js.map +1 -1
- package/lib/dist/installer/targets/types.d.ts +23 -1
- package/lib/dist/installer/targets/types.d.ts.map +1 -1
- package/lib/dist/jira/auto-publish.d.ts +22 -2
- package/lib/dist/jira/auto-publish.d.ts.map +1 -1
- package/lib/dist/jira/auto-publish.js +54 -9
- package/lib/dist/jira/auto-publish.js.map +1 -1
- package/lib/dist/jira/board-first.d.ts +15 -2
- package/lib/dist/jira/board-first.d.ts.map +1 -1
- package/lib/dist/jira/board-first.js +16 -0
- package/lib/dist/jira/board-first.js.map +1 -1
- package/lib/dist/jira/ci-publish.d.ts +72 -0
- package/lib/dist/jira/ci-publish.d.ts.map +1 -0
- package/lib/dist/jira/ci-publish.js +162 -0
- package/lib/dist/jira/ci-publish.js.map +1 -0
- package/lib/dist/jira/publish.d.ts +23 -0
- package/lib/dist/jira/publish.d.ts.map +1 -1
- package/lib/dist/jira/publish.js +0 -0
- package/lib/dist/jira/publish.js.map +1 -1
- package/lib/dist/jira/regression-pack.d.ts.map +1 -1
- package/lib/dist/jira/regression-pack.js +7 -1
- package/lib/dist/jira/regression-pack.js.map +1 -1
- package/lib/dist/jira/repo-config.d.ts.map +1 -1
- package/lib/dist/jira/repo-config.js +8 -0
- package/lib/dist/jira/repo-config.js.map +1 -1
- package/lib/dist/jira/types.d.ts +8 -0
- package/lib/dist/jira/types.d.ts.map +1 -1
- package/lib/dist/jira/types.js.map +1 -1
- package/lib/dist/knowledge/enforce.d.ts.map +1 -1
- package/lib/dist/knowledge/enforce.js +6 -1
- package/lib/dist/knowledge/enforce.js.map +1 -1
- package/lib/dist/mcp/jira-tools.d.ts +5 -0
- package/lib/dist/mcp/jira-tools.d.ts.map +1 -1
- package/lib/dist/mcp/jira-tools.js +59 -4
- package/lib/dist/mcp/jira-tools.js.map +1 -1
- package/lib/dist/mcp/proxy.d.ts.map +1 -1
- package/lib/dist/mcp/proxy.js +2 -1
- package/lib/dist/mcp/proxy.js.map +1 -1
- package/lib/dist/mcp/server-instructions.d.ts +16 -10
- package/lib/dist/mcp/server-instructions.d.ts.map +1 -1
- package/lib/dist/mcp/server-instructions.js +69 -20
- package/lib/dist/mcp/server-instructions.js.map +1 -1
- package/lib/dist/mcp/session.d.ts +11 -0
- package/lib/dist/mcp/session.d.ts.map +1 -1
- package/lib/dist/mcp/session.js +43 -1
- package/lib/dist/mcp/session.js.map +1 -1
- package/lib/dist/mcp/tools.d.ts.map +1 -1
- package/lib/dist/mcp/tools.js +8 -0
- package/lib/dist/mcp/tools.js.map +1 -1
- package/lib/dist/reflect/apply.d.ts +2 -2
- package/lib/dist/reflect/apply.d.ts.map +1 -1
- package/lib/dist/reflect/apply.js +6 -5
- package/lib/dist/reflect/apply.js.map +1 -1
- package/lib/dist/reflect/miner.d.ts.map +1 -1
- package/lib/dist/reflect/miner.js +28 -15
- package/lib/dist/reflect/miner.js.map +1 -1
- package/lib/dist/reflect/session-outcomes.d.ts.map +1 -1
- package/lib/dist/reflect/session-outcomes.js +8 -3
- package/lib/dist/reflect/session-outcomes.js.map +1 -1
- package/lib/dist/reflect/targets.d.ts.map +1 -1
- package/lib/dist/reflect/targets.js +25 -5
- package/lib/dist/reflect/targets.js.map +1 -1
- package/lib/dist/reflect/types.d.ts +7 -0
- package/lib/dist/reflect/types.d.ts.map +1 -1
- package/lib/dist/resolution/spec-link-resolver.d.ts +14 -2
- package/lib/dist/resolution/spec-link-resolver.d.ts.map +1 -1
- package/lib/dist/resolution/spec-link-resolver.js +13 -3
- package/lib/dist/resolution/spec-link-resolver.js.map +1 -1
- package/lib/dist/server/canonical-tools.js +50 -0
- package/lib/dist/server/cli.js +2 -2
- package/lib/dist/server/host-profiles.js +39 -0
- package/lib/dist/server/ingest/index.js +2 -1
- package/lib/dist/server/ingest/ingestor.js +195 -76
- package/lib/dist/server/ingest/project-paths.js +8 -2
- package/lib/dist/server/ingest/recorded-projects.js +43 -0
- package/lib/dist/server/ingest/specship-classify.js +7 -2
- package/lib/dist/server/ingest/transcripts/claude-jsonl.js +54 -0
- package/lib/dist/server/ingest/transcripts/claude.js +64 -0
- package/lib/dist/server/ingest/transcripts/gemini.js +469 -0
- package/lib/dist/server/ingest/transcripts/index.js +14 -0
- package/lib/dist/server/ingest/{parser.js → transcripts/shared.js} +3 -49
- package/lib/dist/server/ingest/transcripts/types.js +4 -0
- package/lib/dist/server/ingest/watcher.js +31 -30
- package/lib/dist/server/routes/claude.js +27 -10
- package/lib/dist/server/routes/graph.js +64 -3
- package/lib/dist/server/routes/mcp.js +57 -15
- package/lib/dist/server/routes/memory.js +54 -35
- package/lib/dist/server/routes/projects.js +78 -7
- package/lib/dist/server/routes/spec.js +125 -0
- package/lib/dist/server/server.js +8 -2
- package/lib/dist/skills/spec-author/SKILL.md +1 -1
- package/lib/dist/skills/spec-author/references/gap-questions.md +1 -1
- package/lib/dist/spec-lint/lint.d.ts +26 -1
- package/lib/dist/spec-lint/lint.d.ts.map +1 -1
- package/lib/dist/spec-lint/lint.js +96 -7
- package/lib/dist/spec-lint/lint.js.map +1 -1
- package/lib/dist/sync/worktree.d.ts +48 -0
- package/lib/dist/sync/worktree.d.ts.map +1 -1
- package/lib/dist/sync/worktree.js +109 -0
- package/lib/dist/sync/worktree.js.map +1 -1
- package/lib/dist/ui/assets/bricolage-latin-C23fTOVi.woff2 +0 -0
- package/lib/dist/ui/assets/bricolage-latin-ext-B82pxkPf.woff2 +0 -0
- package/lib/dist/ui/assets/index-54vorjyq.css +1 -0
- package/lib/dist/ui/assets/index-BZQonCVb.js +52 -0
- package/lib/dist/ui/assets/space-grotesk-latin-DPT1xrvW.woff2 +0 -0
- package/lib/dist/ui/assets/space-grotesk-latin-ext-wJGaI8U0.woff2 +0 -0
- package/lib/dist/ui/index.html +2 -2
- package/lib/dist/update/updater.d.ts +6 -0
- package/lib/dist/update/updater.d.ts.map +1 -1
- package/lib/dist/update/updater.js +13 -1
- package/lib/dist/update/updater.js.map +1 -1
- package/lib/dist/workflows/agents/claude.d.ts +9 -0
- package/lib/dist/workflows/agents/claude.d.ts.map +1 -1
- package/lib/dist/workflows/agents/claude.js +22 -3
- package/lib/dist/workflows/agents/claude.js.map +1 -1
- package/lib/dist/workflows/agents/gemini-version.d.ts +18 -0
- package/lib/dist/workflows/agents/gemini-version.d.ts.map +1 -0
- package/lib/dist/workflows/agents/gemini-version.js +81 -0
- package/lib/dist/workflows/agents/gemini-version.js.map +1 -0
- package/lib/dist/workflows/agents/gemini.d.ts +1 -1
- package/lib/dist/workflows/agents/gemini.d.ts.map +1 -1
- package/lib/dist/workflows/agents/gemini.js +12 -2
- package/lib/dist/workflows/agents/gemini.js.map +1 -1
- package/lib/dist/workflows/agents/index.d.ts +2 -0
- package/lib/dist/workflows/agents/index.d.ts.map +1 -1
- package/lib/dist/workflows/agents/index.js +5 -0
- package/lib/dist/workflows/agents/index.js.map +1 -1
- package/lib/dist/workflows/agents/types.d.ts +13 -0
- package/lib/dist/workflows/agents/types.d.ts.map +1 -1
- package/lib/dist/workflows/agents/types.js.map +1 -1
- package/lib/dist/workflows/condition-evaluator.d.ts +8 -0
- package/lib/dist/workflows/condition-evaluator.d.ts.map +1 -1
- package/lib/dist/workflows/condition-evaluator.js +7 -0
- package/lib/dist/workflows/condition-evaluator.js.map +1 -1
- package/lib/dist/workflows/defaults/claude-design-implement.yaml +11 -11
- package/lib/dist/workflows/defaults/spec-author.yaml +9 -9
- package/lib/dist/workflows/defaults/spec-fix.yaml +8 -8
- package/lib/dist/workflows/defaults/spec-implement.yaml +38 -23
- package/lib/dist/workflows/defaults/spec-relink.yaml +5 -5
- package/lib/dist/workflows/defaults/spec-verify.yaml +3 -3
- package/lib/dist/workflows/executor.d.ts +7 -0
- package/lib/dist/workflows/executor.d.ts.map +1 -1
- package/lib/dist/workflows/executor.js +22 -5
- package/lib/dist/workflows/executor.js.map +1 -1
- package/lib/node_modules/.package-lock.json +1 -1
- package/lib/package.json +3 -2
- package/package.json +1 -1
- package/lib/dist/installer/config-writer.d.ts.map +0 -1
- package/lib/dist/installer/config-writer.js.map +0 -1
- package/lib/dist/installer/gemini-commands.d.ts.map +0 -1
- package/lib/dist/installer/gemini-commands.js.map +0 -1
- package/lib/dist/ui/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
- package/lib/dist/ui/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
- package/lib/dist/ui/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
- package/lib/dist/ui/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
- package/lib/dist/ui/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
- package/lib/dist/ui/assets/index-BzuUWUAE.js +0 -50
- package/lib/dist/ui/assets/index-ezwX2EfG.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-record.js","sourceRoot":"","sources":["../../src/installer/agent-record.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmEA,0CAEC;AAGD,wDAOC;AAyDD,0CA0BC;AAcD,4CAgBC;AAsCD,sCAqBC;AAGD,0CAcC;AAOD,sDASC;AAOD,oDAoBC;AAQD,gDA2BC;AAOD,8CASC;AA1WD;;;;;;;;;;;;;;;;;GAiBG;AACH,uCAAyB;AACzB,2CAA6B;AAC7B,+CAAsD;AACtD,iDAAgD;AAChD,6CAA+C;AAGlC,QAAA,iBAAiB,GAAG,uBAAuB,CAAC;AA0CzD,SAAgB,eAAe,CAAC,MAAyB,OAAO,CAAC,GAAG;IAClE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAA,2BAAiB,EAAC,GAAG,CAAC,EAAE,yBAAiB,CAAC,CAAC;AAC9D,CAAC;AAED,gFAAgF;AAChF,SAAgB,sBAAsB;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACnG,OAAO,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,4EAA4E;AAC5E,IAAI,gBAAgB,GAAuB,IAAI,CAAC;AAChD,SAAS,WAAW;IAClB,IAAI,CAAC,gBAAgB;QAAE,gBAAgB,GAAG,IAAI,GAAG,CAAS,IAAA,qBAAU,GAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzF,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAC9E,SAAS,cAAc,CAAC,CAAU;IAChC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG;WAC1D,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC;AAC7E,CAAC;AAED,SAAS,cAAc,CAAC,GAAY;IAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACvD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,GAAY;IACjC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5E,IAAI,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAC7D,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACnF,MAAM,KAAK,GAAqB;QAC9B,KAAK,EAAE,CAAC,CAAC,KAAiB;QAC1B,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,UAAU,EAAE,CAAC,CAAC,UAAU;KACzB,CAAC;IACF,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;QACxB,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACjF,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;IACpC,CAAC;IACD,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,OAAkC,CAAC;QAC/C,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,CAAU,EAAE,CAAC;YACxF,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS;gBAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAY,CAAC;QAC9D,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/D,CAAC;IACD,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAClD,IAAI,KAAK;QAAE,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC;IAC3C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,wEAAwE;AACxE,SAAgB,eAAe,CAAC,MAAyB,OAAO,CAAC,GAAG;IAClE,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACvD,MAAM,CAAC,GAAG,MAAiC,CAAC;IAC5C,IAAI,CAAC,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACpE,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,uEAAuE;IACvE,0EAA0E;IAC1E,0EAA0E;IAC1E,wDAAwD;IACxD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,SAAS,CAAC,MAAmB;IACpC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO;SAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SAC5B,MAAM,CAAC,CAAC,CAAC,EAAyB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AACvE,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,MAAmB,EAAE,MAAyB,OAAO,CAAC,GAAG;IACxF,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,+BAA+B;IACjC,CAAC;IACD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,uEAAuE;IACvE,4CAA4C;IAC5C,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IAClB,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;IACzC,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7C,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mFAAmF;AACnF,SAAS,aAAa,CAAC,CAAS;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,CAAmB,EAAE,KAAe,EAAE,KAAe,EAAE,WAAoB;IAC1F,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACzD,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,aAAa,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,KAAK,aAAa,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,SAAS,CAChB,KAAe,EACf,KAAe,EACf,WAA+B,EAC/B,OAAe,EACf,OAAwB;IAExB,MAAM,KAAK,GAAqB,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;IAChG,IAAI,KAAK,KAAK,OAAO;QAAE,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACtF,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,KAAK,GAAmB,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,CAAU,EAAE,CAAC;YACxF,IAAI,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS;gBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;IAC3D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,qEAAqE;AACrE,SAAgB,aAAa,CAC3B,KAAe,EACf,KAAe,EACf,WAA+B,EAC/B,UAAkB,sBAAsB,EAAE,EAC1C,MAAyB,OAAO,CAAC,GAAG,EACpC,OAAwB;IAExB,yEAAyE;IACzE,qDAAqD;IACrD,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAA,qBAAU,GAAE,EAAE,OAAO,CAAC,CAAC;IAChH,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;IACjF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACpE,yEAAyE;IACzE,6DAA6D;IAC7D,IAAI,KAAK,EAAE,iBAAiB;QAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,MAAM,MAAM,GAAgB,EAAE,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;IAC1D,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,mFAAmF;AACnF,SAAgB,eAAe,CAC7B,KAAe,EACf,KAAe,EACf,WAAoB,EACpB,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,IAAI,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/E,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC;IAC9D,MAAM,MAAM,GAAgB,EAAE,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;IAC1D,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB,CACnC,KAAe,EACf,KAAe,EACf,WAAoB,EACpB,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,IAAI,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IACxF,OAAO,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACxE,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB,CAClC,KAAe,EACf,KAAe,EACf,WAA+B,EAC/B,KAAwB,EACxB,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,IAAI,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAA,qBAAU,GAAE,CAAC,CAAC;IAChG,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,IAAI,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAChE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IACD,IAAI,KAAK;QAAE,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC;;QACtC,OAAO,KAAK,CAAC,iBAAiB,CAAC;IACpC,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAChC,cAAsB,OAAO,CAAC,GAAG,EAAE,EACnC,UAAkC,IAAA,qBAAU,GAAE,EAC9C,UAAkB,sBAAsB,EAAE;IAE1C,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,KAAK,OAAO,CAAC;IACnC,IAAI,CAAC;QACH,IAAI,SAAS;YAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,KAAK,MAAM,KAAK,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAe,EAAE,CAAC;gBACtD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC;oBAAE,SAAS;gBAC9C,IAAI,UAAU,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC;oBACH,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC;gBACtD,CAAC;gBAAC,MAAM,CAAC;oBACP,UAAU,GAAG,KAAK,CAAC;gBACrB,CAAC;gBACD,IAAI,UAAU;oBAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,SAAS;YAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;AACvC,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAC/B,cAAsB,OAAO,CAAC,GAAG,EAAE,EACnC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,OAAO,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAChD,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC/B,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { type DetectedAgent } from '../agents/detect';
|
|
2
|
+
import { type AgentRecord } from './agent-record';
|
|
3
|
+
import type { AgentTarget, Location } from './targets/types';
|
|
4
|
+
export declare const AUTO_MIGRATE_GUARD_FILE = "auto-migrate.json";
|
|
5
|
+
export declare const AUTO_MIGRATE_ENV = "SPECSHIP_AUTO_MIGRATE";
|
|
6
|
+
export interface MigrationOutcome {
|
|
7
|
+
/**
|
|
8
|
+
* `none` — nothing to do (unknown agent, already set up, already tried);
|
|
9
|
+
* `installed` — the new agent was set up; `hint` — auto-setup is off and
|
|
10
|
+
* the line says how to do it by hand; `failed` — the attempt failed (now or
|
|
11
|
+
* earlier) and the line reports it.
|
|
12
|
+
*/
|
|
13
|
+
kind: 'none' | 'installed' | 'hint' | 'failed';
|
|
14
|
+
/** The one line to show the user. Absent for `none`. */
|
|
15
|
+
line?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface MigrationScope {
|
|
18
|
+
scope: Location;
|
|
19
|
+
/** Absolute project root for `local`; absent for `global`. */
|
|
20
|
+
projectRoot?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Auto-setup is on unless `SPECSHIP_AUTO_MIGRATE=0` or the project's
|
|
24
|
+
* `specship.config.json` says `"autoMigrate": false`.
|
|
25
|
+
*/
|
|
26
|
+
export declare function autoMigrateEnabled(env: NodeJS.ProcessEnv, projectRoot: string): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* The scope of the existing install that covers `projectRoot`: the local
|
|
29
|
+
* entry for this project (or an enclosing one) first, else a global entry.
|
|
30
|
+
* `null` when SpecShip is installed for nothing here — nothing to migrate.
|
|
31
|
+
*/
|
|
32
|
+
export declare function migrationScope(record: AgentRecord | null, projectRoot: string): MigrationScope | null;
|
|
33
|
+
/**
|
|
34
|
+
* Set SpecShip up for `agent` if it is a supported agent the record does not
|
|
35
|
+
* yet list for this scope (REQ-AGENTSWITCH-008). At most once per agent and
|
|
36
|
+
* scope: every attempt — installed, hinted or failed — is written to a guard
|
|
37
|
+
* file in the SpecShip home. A failure rolls back what the attempt wrote and
|
|
38
|
+
* is kept as a pending note until {@link takePendingMigrationFailure} hands it
|
|
39
|
+
* to an output.
|
|
40
|
+
*/
|
|
41
|
+
export declare function maybeAutoMigrate(agent: DetectedAgent, opts?: {
|
|
42
|
+
projectRoot?: string;
|
|
43
|
+
env?: NodeJS.ProcessEnv;
|
|
44
|
+
targets?: readonly AgentTarget[];
|
|
45
|
+
}): MigrationOutcome;
|
|
46
|
+
/**
|
|
47
|
+
* Hand a pending migration failure to the output that shows it, once: the
|
|
48
|
+
* note is cleared as it is read. `null` when nothing is pending.
|
|
49
|
+
*/
|
|
50
|
+
export declare function takePendingMigrationFailure(env?: NodeJS.ProcessEnv): string | null;
|
|
51
|
+
/**
|
|
52
|
+
* The line an output should show for an outcome. A failure is taken from the
|
|
53
|
+
* pending note so it is reported exactly once, by whichever output shows it.
|
|
54
|
+
*/
|
|
55
|
+
export declare function migrationLine(outcome: MigrationOutcome, env?: NodeJS.ProcessEnv): string | null;
|
|
56
|
+
//# sourceMappingURL=auto-migrate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-migrate.d.ts","sourceRoot":"","sources":["../../src/installer/auto-migrate.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,EAIL,KAAK,WAAW,EAGjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAY,MAAM,iBAAiB,CAAC;AAEvE,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAC3D,eAAO,MAAM,gBAAgB,0BAA0B,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC/C,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,QAAQ,CAAC;IAChB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAwDD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAQvF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CASrG;AAyCD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,aAAa,EACpB,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,CAAA;CAAO,GAC7F,gBAAgB,CA+FlB;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,IAAI,CAc/F;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,IAAI,CAK5G"}
|
|
@@ -0,0 +1,328 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.AUTO_MIGRATE_ENV = exports.AUTO_MIGRATE_GUARD_FILE = void 0;
|
|
37
|
+
exports.autoMigrateEnabled = autoMigrateEnabled;
|
|
38
|
+
exports.migrationScope = migrationScope;
|
|
39
|
+
exports.maybeAutoMigrate = maybeAutoMigrate;
|
|
40
|
+
exports.takePendingMigrationFailure = takePendingMigrationFailure;
|
|
41
|
+
exports.migrationLine = migrationLine;
|
|
42
|
+
/**
|
|
43
|
+
* Automatic set-up for a newly used agent (REQ-AGENTSWITCH-008).
|
|
44
|
+
*
|
|
45
|
+
* When SpecShip notices it is running under a supported agent that the
|
|
46
|
+
* installed-agents record does not list for the current scope, it installs
|
|
47
|
+
* SpecShip's own files for that agent at the scope of the existing install,
|
|
48
|
+
* once, and reports one line: what was written and the command that undoes
|
|
49
|
+
* it. The previously used agent's files are never touched — only the new
|
|
50
|
+
* target's `install()` runs.
|
|
51
|
+
*
|
|
52
|
+
* Agent-agnostic: the agent arrives as an adapter id from `src/agents/detect`
|
|
53
|
+
* (MCP client name, hook event, launcher env); targets come from the
|
|
54
|
+
* installer registry. No host names, events or config paths appear here.
|
|
55
|
+
*
|
|
56
|
+
* Hot path: the CLI calls this on every command, including per-turn hook
|
|
57
|
+
* commands. An unknown agent returns before any file access; a known agent
|
|
58
|
+
* that is already recorded costs exactly one small read (the record). Only a
|
|
59
|
+
* not-yet-recorded agent reads the one-shot guard and, if it migrates, the
|
|
60
|
+
* project config.
|
|
61
|
+
*
|
|
62
|
+
* Fs/path only — must stay importable without native modules (installer rule).
|
|
63
|
+
*/
|
|
64
|
+
const fs = __importStar(require("fs"));
|
|
65
|
+
const path = __importStar(require("path"));
|
|
66
|
+
const detect_1 = require("../agents/detect");
|
|
67
|
+
const updater_1 = require("../update/updater");
|
|
68
|
+
const agent_record_1 = require("./agent-record");
|
|
69
|
+
const registry_1 = require("./targets/registry");
|
|
70
|
+
const shared_1 = require("./targets/shared");
|
|
71
|
+
exports.AUTO_MIGRATE_GUARD_FILE = 'auto-migrate.json';
|
|
72
|
+
exports.AUTO_MIGRATE_ENV = 'SPECSHIP_AUTO_MIGRATE';
|
|
73
|
+
function guardPath(env) {
|
|
74
|
+
return path.join((0, updater_1.resolveInstallDir)(env), exports.AUTO_MIGRATE_GUARD_FILE);
|
|
75
|
+
}
|
|
76
|
+
function readGuard(env) {
|
|
77
|
+
try {
|
|
78
|
+
const raw = JSON.parse(fs.readFileSync(guardPath(env), 'utf-8'));
|
|
79
|
+
if (raw && raw.schemaVersion === 1 && Array.isArray(raw.attempts)) {
|
|
80
|
+
const attempts = raw.attempts.filter((a) => !!a && typeof a.agent === 'string' && (a.scope === 'global' || a.scope === 'local'));
|
|
81
|
+
const g = { schemaVersion: 1, attempts };
|
|
82
|
+
if (typeof raw.pendingFailure === 'string')
|
|
83
|
+
g.pendingFailure = raw.pendingFailure;
|
|
84
|
+
return g;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
catch { /* missing or unreadable → empty */ }
|
|
88
|
+
return { schemaVersion: 1, attempts: [] };
|
|
89
|
+
}
|
|
90
|
+
function writeGuard(guard, env) {
|
|
91
|
+
const file = guardPath(env);
|
|
92
|
+
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
93
|
+
const tmp = `${file}.${process.pid}.tmp`;
|
|
94
|
+
fs.writeFileSync(tmp, JSON.stringify(guard, null, 2) + '\n', { mode: 0o600 });
|
|
95
|
+
fs.renameSync(tmp, file);
|
|
96
|
+
}
|
|
97
|
+
function isWithin(child, parent) {
|
|
98
|
+
const rel = path.relative(path.resolve(parent), path.resolve(child));
|
|
99
|
+
return rel === '' || (!rel.startsWith('..') && !path.isAbsolute(rel));
|
|
100
|
+
}
|
|
101
|
+
function sameScope(a, b) {
|
|
102
|
+
if (a.scope !== b.scope)
|
|
103
|
+
return false;
|
|
104
|
+
if (a.scope === 'global')
|
|
105
|
+
return true;
|
|
106
|
+
return path.resolve(a.projectRoot ?? '') === path.resolve(b.projectRoot ?? '');
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Auto-setup is on unless `SPECSHIP_AUTO_MIGRATE=0` or the project's
|
|
110
|
+
* `specship.config.json` says `"autoMigrate": false`.
|
|
111
|
+
*/
|
|
112
|
+
function autoMigrateEnabled(env, projectRoot) {
|
|
113
|
+
const flag = env[exports.AUTO_MIGRATE_ENV];
|
|
114
|
+
if (flag !== undefined && ['0', 'false', 'off', 'no'].includes(flag.trim().toLowerCase()))
|
|
115
|
+
return false;
|
|
116
|
+
try {
|
|
117
|
+
const cfg = JSON.parse(fs.readFileSync(path.join(projectRoot, 'specship.config.json'), 'utf8'));
|
|
118
|
+
if (cfg && typeof cfg === 'object' && cfg.autoMigrate === false)
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
catch { /* no config → on */ }
|
|
122
|
+
return true;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* The scope of the existing install that covers `projectRoot`: the local
|
|
126
|
+
* entry for this project (or an enclosing one) first, else a global entry.
|
|
127
|
+
* `null` when SpecShip is installed for nothing here — nothing to migrate.
|
|
128
|
+
*/
|
|
129
|
+
function migrationScope(record, projectRoot) {
|
|
130
|
+
if (!record)
|
|
131
|
+
return null;
|
|
132
|
+
const local = record.entries
|
|
133
|
+
.filter((e) => e.scope === 'local' && e.projectRoot && isWithin(projectRoot, e.projectRoot))
|
|
134
|
+
// The innermost enclosing project wins.
|
|
135
|
+
.sort((a, b) => (b.projectRoot.length - a.projectRoot.length))[0];
|
|
136
|
+
if (local)
|
|
137
|
+
return { scope: 'local', projectRoot: path.resolve(local.projectRoot) };
|
|
138
|
+
if (record.entries.some((e) => e.scope === 'global'))
|
|
139
|
+
return { scope: 'global' };
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
/** Is `agent` already set up anywhere that covers this scope? */
|
|
143
|
+
function alreadyCovered(record, agent, where) {
|
|
144
|
+
return record.entries.some((e) => e.agent === agent &&
|
|
145
|
+
(e.scope === 'global' || (where.scope === 'local' && sameScope(e, where))));
|
|
146
|
+
}
|
|
147
|
+
/** The choices of the install being migrated from (same scope, any agent). */
|
|
148
|
+
function sourceChoices(record, where) {
|
|
149
|
+
const from = record.entries.find((e) => sameScope(e, where));
|
|
150
|
+
return from?.choices;
|
|
151
|
+
}
|
|
152
|
+
function undoCommand(id, scope) {
|
|
153
|
+
return `specship uninstall --target ${id} --${scope}`;
|
|
154
|
+
}
|
|
155
|
+
/** Name the written files in one line; a directory with several files is collapsed. */
|
|
156
|
+
function describeWritten(paths, base) {
|
|
157
|
+
const shown = [...new Set(paths.map((p) => path.resolve(p)))].map((p) => {
|
|
158
|
+
if (base && isWithin(p, base))
|
|
159
|
+
return path.relative(base, p) || p;
|
|
160
|
+
const home = process.env.HOME;
|
|
161
|
+
return home && isWithin(p, home) ? '~/' + path.relative(home, p) : p;
|
|
162
|
+
});
|
|
163
|
+
const byDir = new Map();
|
|
164
|
+
for (const s of shown) {
|
|
165
|
+
const d = path.dirname(s);
|
|
166
|
+
byDir.set(d, [...(byDir.get(d) ?? []), s]);
|
|
167
|
+
}
|
|
168
|
+
const parts = [];
|
|
169
|
+
for (const [dir, files] of byDir) {
|
|
170
|
+
if (files.length > 2)
|
|
171
|
+
parts.push(`${dir}/ (${files.length} files)`);
|
|
172
|
+
else
|
|
173
|
+
parts.push(...files);
|
|
174
|
+
}
|
|
175
|
+
return parts.join(', ');
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Set SpecShip up for `agent` if it is a supported agent the record does not
|
|
179
|
+
* yet list for this scope (REQ-AGENTSWITCH-008). At most once per agent and
|
|
180
|
+
* scope: every attempt — installed, hinted or failed — is written to a guard
|
|
181
|
+
* file in the SpecShip home. A failure rolls back what the attempt wrote and
|
|
182
|
+
* is kept as a pending note until {@link takePendingMigrationFailure} hands it
|
|
183
|
+
* to an output.
|
|
184
|
+
*/
|
|
185
|
+
function maybeAutoMigrate(agent, opts = {}) {
|
|
186
|
+
// Unknown evidence never triggers a change — and costs no file access.
|
|
187
|
+
if (!agent || agent === detect_1.UNKNOWN_AGENT)
|
|
188
|
+
return { kind: 'none' };
|
|
189
|
+
const pool = opts.targets ?? (0, registry_1.allTargets)();
|
|
190
|
+
// Only targets the registry allows are ever installed.
|
|
191
|
+
const target = pool.find((t) => t.id === agent);
|
|
192
|
+
if (!target)
|
|
193
|
+
return { kind: 'none' };
|
|
194
|
+
const env = opts.env ?? process.env;
|
|
195
|
+
const projectRoot = path.resolve(opts.projectRoot ?? process.cwd());
|
|
196
|
+
// One small read: the record. No rebuild, no detect pass.
|
|
197
|
+
const record = (0, agent_record_1.readAgentRecord)(env);
|
|
198
|
+
const where = migrationScope(record, projectRoot);
|
|
199
|
+
if (!record || !where)
|
|
200
|
+
return { kind: 'none' };
|
|
201
|
+
if (alreadyCovered(record, target.id, where))
|
|
202
|
+
return { kind: 'none' };
|
|
203
|
+
if (!target.supportsLocation(where.scope))
|
|
204
|
+
return { kind: 'none' };
|
|
205
|
+
const guard = readGuard(env);
|
|
206
|
+
const prior = guard.attempts.find((a) => a.agent === target.id && sameScope(a, where));
|
|
207
|
+
if (prior) {
|
|
208
|
+
return guard.pendingFailure ? { kind: 'failed', line: guard.pendingFailure } : { kind: 'none' };
|
|
209
|
+
}
|
|
210
|
+
const remember = (outcome) => {
|
|
211
|
+
const attempt = { agent: target.id, scope: where.scope, outcome, at: new Date().toISOString() };
|
|
212
|
+
if (where.projectRoot)
|
|
213
|
+
attempt.projectRoot = where.projectRoot;
|
|
214
|
+
guard.attempts.push(attempt);
|
|
215
|
+
};
|
|
216
|
+
if (!autoMigrateEnabled(env, where.projectRoot ?? projectRoot)) {
|
|
217
|
+
remember('hint');
|
|
218
|
+
try {
|
|
219
|
+
writeGuard(guard, env);
|
|
220
|
+
}
|
|
221
|
+
catch { /* advisory */ }
|
|
222
|
+
return {
|
|
223
|
+
kind: 'hint',
|
|
224
|
+
line: `SpecShip: auto-setup for ${target.displayName} is off — run \`specship install --target ${target.id} --location ${where.scope}\` to set it up.`,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
// Repeat the choices the existing install was made with; unknown ones get
|
|
228
|
+
// a non-interactive install's defaults (on). Each target ignores the
|
|
229
|
+
// choices it has no surface for, so no host is named here.
|
|
230
|
+
const c = sourceChoices(record, where);
|
|
231
|
+
const choices = {
|
|
232
|
+
autoAllow: c?.autoAllow ?? true,
|
|
233
|
+
sdd: c?.sdd ?? true,
|
|
234
|
+
statusLine: c?.statusLine ?? true,
|
|
235
|
+
...(c?.withJira ? { withJira: true } : {}),
|
|
236
|
+
...(c?.withDesigner ? { withDesigner: true } : {}),
|
|
237
|
+
};
|
|
238
|
+
const prevCwd = process.cwd();
|
|
239
|
+
(0, shared_1.beginWriteJournal)();
|
|
240
|
+
try {
|
|
241
|
+
if (where.projectRoot && where.projectRoot !== prevCwd)
|
|
242
|
+
process.chdir(where.projectRoot);
|
|
243
|
+
// Auto-allow carries over as `trust` too (REQ-AGENTSWITCH-010.A3) — but
|
|
244
|
+
// only when the user's recorded choice was explicitly on. A record that
|
|
245
|
+
// never stored the choice never opts anyone into a trust policy
|
|
246
|
+
// (REQ-GEMINI-009 stays strictly opt-in). A direct install still needs
|
|
247
|
+
// its own explicit opt-in.
|
|
248
|
+
const result = target.install(where.scope, {
|
|
249
|
+
autoAllow: choices.autoAllow ?? false,
|
|
250
|
+
trust: c?.autoAllow === true,
|
|
251
|
+
...(choices.withJira ? { withJira: true } : {}),
|
|
252
|
+
...(choices.withDesigner ? { withDesigner: true } : {}),
|
|
253
|
+
installStatusLine: choices.statusLine ?? false,
|
|
254
|
+
sdd: choices.sdd,
|
|
255
|
+
});
|
|
256
|
+
// The record update stays inside the journal: if it fails, the catch
|
|
257
|
+
// rolls back the target's files too, so "nothing was changed" is true.
|
|
258
|
+
(0, agent_record_1.recordInstall)(target.id, where.scope, where.projectRoot, (0, agent_record_1.currentSpecshipVersion)(), env, choices);
|
|
259
|
+
(0, shared_1.endWriteJournal)();
|
|
260
|
+
remember('installed');
|
|
261
|
+
try {
|
|
262
|
+
writeGuard(guard, env);
|
|
263
|
+
}
|
|
264
|
+
catch { /* advisory */ }
|
|
265
|
+
const written = result.files
|
|
266
|
+
.filter((f) => f.action === 'created' || f.action === 'updated')
|
|
267
|
+
.map((f) => f.path);
|
|
268
|
+
const what = written.length > 0 ? `wrote ${describeWritten(written, where.projectRoot)}` : 'nothing needed writing';
|
|
269
|
+
const scopeText = where.scope === 'local' ? 'this project' : 'all projects';
|
|
270
|
+
return {
|
|
271
|
+
kind: 'installed',
|
|
272
|
+
line: `SpecShip: set up ${target.displayName} for ${scopeText} — ${what}. Undo: \`${undoCommand(target.id, where.scope)}\`` +
|
|
273
|
+
(target.switchNote ? `\n${target.switchNote}` : ''),
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
catch (err) {
|
|
277
|
+
(0, shared_1.rollbackJournal)((0, shared_1.endWriteJournal)());
|
|
278
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
279
|
+
const line = `SpecShip: automatic setup for ${target.displayName} failed (${msg}); nothing was changed. Run \`specship install --target ${target.id} --location ${where.scope}\` to retry.`;
|
|
280
|
+
remember('failed');
|
|
281
|
+
guard.pendingFailure = line;
|
|
282
|
+
try {
|
|
283
|
+
writeGuard(guard, env);
|
|
284
|
+
}
|
|
285
|
+
catch { /* advisory */ }
|
|
286
|
+
return { kind: 'failed', line };
|
|
287
|
+
}
|
|
288
|
+
finally {
|
|
289
|
+
if (process.cwd() !== prevCwd)
|
|
290
|
+
process.chdir(prevCwd);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Hand a pending migration failure to the output that shows it, once: the
|
|
295
|
+
* note is cleared as it is read. `null` when nothing is pending.
|
|
296
|
+
*/
|
|
297
|
+
function takePendingMigrationFailure(env = process.env) {
|
|
298
|
+
let guard;
|
|
299
|
+
try {
|
|
300
|
+
if (!fs.existsSync(guardPath(env)))
|
|
301
|
+
return null;
|
|
302
|
+
guard = readGuard(env);
|
|
303
|
+
}
|
|
304
|
+
catch {
|
|
305
|
+
return null;
|
|
306
|
+
}
|
|
307
|
+
const line = guard.pendingFailure ?? null;
|
|
308
|
+
if (line) {
|
|
309
|
+
delete guard.pendingFailure;
|
|
310
|
+
try {
|
|
311
|
+
writeGuard(guard, env);
|
|
312
|
+
}
|
|
313
|
+
catch { /* advisory */ }
|
|
314
|
+
}
|
|
315
|
+
return line;
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* The line an output should show for an outcome. A failure is taken from the
|
|
319
|
+
* pending note so it is reported exactly once, by whichever output shows it.
|
|
320
|
+
*/
|
|
321
|
+
function migrationLine(outcome, env = process.env) {
|
|
322
|
+
// The note may be unsaved (an unwritable SpecShip home): report the
|
|
323
|
+
// failure from the outcome itself rather than not at all.
|
|
324
|
+
if (outcome.kind === 'failed')
|
|
325
|
+
return takePendingMigrationFailure(env) ?? outcome.line ?? null;
|
|
326
|
+
return outcome.line ?? null;
|
|
327
|
+
}
|
|
328
|
+
//# sourceMappingURL=auto-migrate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-migrate.js","sourceRoot":"","sources":["../../src/installer/auto-migrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,9 +11,10 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { type StatusLineOutcome } from './install-defaults';
|
|
13
13
|
import type { AgentTarget, Location, TargetId } from './targets/types';
|
|
14
|
-
import { type
|
|
15
|
-
|
|
16
|
-
export
|
|
14
|
+
import { type AgentRecordEntry } from './agent-record';
|
|
15
|
+
import { type PurgeEnv, type PurgeExecDeps } from './purge';
|
|
16
|
+
export { writeMcpConfig, writePermissions, hasMcpConfig, hasPermissions, } from './targets/claude-config-writer';
|
|
17
|
+
export type { InstallLocation } from './targets/claude-config-writer';
|
|
17
18
|
declare const importESM: (specifier: string) => Promise<typeof import("@clack/prompts")>;
|
|
18
19
|
export interface RunInstallerOptions {
|
|
19
20
|
/**
|
|
@@ -79,12 +80,14 @@ export interface RunInstallerOptions {
|
|
|
79
80
|
* Resolve the `--target` value into the targets to install
|
|
80
81
|
* (REQ-GEMINI-002.A4). An empty result means "install nothing" (`none`).
|
|
81
82
|
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
83
|
+
* No `--target` (or `auto`) wires the agent this command runs under, detected
|
|
84
|
+
* from its launcher environment (REQ-AGENTSWITCH-013): Gemini CLI from a
|
|
85
|
+
* Gemini shell, Claude Code from a Claude Code shell, Claude Code when it
|
|
86
|
+
* cannot tell. `all` stays pinned to Claude: it reads like "every registered
|
|
87
|
+
* target" but has always meant the single Claude install, and quietly
|
|
88
|
+
* widening it would write configs for agents nobody asked for.
|
|
86
89
|
*/
|
|
87
|
-
export declare function resolveInstallTargets(target?: string): AgentTarget[];
|
|
90
|
+
export declare function resolveInstallTargets(target?: string, env?: NodeJS.ProcessEnv): AgentTarget[];
|
|
88
91
|
/**
|
|
89
92
|
* What the run decided about the questions it no longer asks, so the caller
|
|
90
93
|
* can fold them into one closing summary (REQ-SLIM-003.A2). The CLI owns the
|
|
@@ -137,6 +140,10 @@ export interface RunUninstallerOptions {
|
|
|
137
140
|
* installer module's own `__dirname` as the method-detection anchor.
|
|
138
141
|
*/
|
|
139
142
|
purgeEnv?: PurgeEnv;
|
|
143
|
+
/** Test seam: the prompt UI (defaults to `@clack/prompts`). */
|
|
144
|
+
clack?: typeof import('@clack/prompts');
|
|
145
|
+
/** Test seam: the purge's filesystem/spawn deps (defaults to the production ones). */
|
|
146
|
+
purgeExecDeps?: PurgeExecDeps;
|
|
140
147
|
}
|
|
141
148
|
export type UninstallStatus = 'removed' | 'not-configured' | 'unsupported';
|
|
142
149
|
/**
|
|
@@ -161,6 +168,28 @@ export interface UninstallReport {
|
|
|
161
168
|
* uninstall returns `not-found` actions).
|
|
162
169
|
*/
|
|
163
170
|
export declare function uninstallTargets(targets: readonly AgentTarget[], location: Location): UninstallReport[];
|
|
171
|
+
/** One line per recorded entry, as `reinstallRecordedAgents` reports it. */
|
|
172
|
+
export interface ReinstallReport {
|
|
173
|
+
entry: AgentRecordEntry;
|
|
174
|
+
status: 'reinstalled' | 'skipped' | 'failed';
|
|
175
|
+
detail: string;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Reinstall SpecShip for every agent in the installed-agents record
|
|
179
|
+
* (REQ-AGENTSWITCH-006.A3) — what `specship update` and the bundle installer
|
|
180
|
+
* run, through the NEW binary, so each agent gets the new version's files.
|
|
181
|
+
*
|
|
182
|
+
* Each entry is reinstalled at its own scope with the choices it was
|
|
183
|
+
* installed with (SDD tier, auto-allow, status line); only an entry rebuilt
|
|
184
|
+
* from config files, whose choices are unknown, gets the defaults of a
|
|
185
|
+
* non-interactive `specship install -y`. Prior opt-ins (integrations, a
|
|
186
|
+
* Gemini trust policy) are preserved by the targets themselves. A local
|
|
187
|
+
* entry whose project root no longer exists is skipped and reported.
|
|
188
|
+
*/
|
|
189
|
+
export declare function reinstallRecordedAgents(opts?: {
|
|
190
|
+
projectRoot?: string;
|
|
191
|
+
targets?: readonly AgentTarget[];
|
|
192
|
+
}): ReinstallReport[];
|
|
164
193
|
/**
|
|
165
194
|
* Uninstaller entry. By default a COMPLETE removal (UNINSTALL-PURGE-DOC): the
|
|
166
195
|
* Claude Code wiring at both locations, the current project's `.specship/`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,EAML,KAAK,iBAAiB,EACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"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"}
|