gsd-pi 2.33.0-dev.bafba33 → 2.33.1-dev.235d83a
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/README.md +13 -18
- package/dist/cli.js +16 -0
- package/dist/resource-loader.d.ts +2 -0
- package/dist/resource-loader.js +36 -3
- package/dist/resources/extensions/ask-user-questions.js +217 -0
- package/dist/resources/extensions/async-jobs/async-bash-tool.js +180 -0
- package/dist/resources/extensions/async-jobs/await-tool.js +90 -0
- package/dist/resources/extensions/async-jobs/cancel-job-tool.js +28 -0
- package/dist/resources/extensions/async-jobs/index.js +119 -0
- package/dist/resources/extensions/async-jobs/job-manager.js +159 -0
- package/dist/resources/extensions/aws-auth/index.js +138 -0
- package/dist/resources/extensions/bg-shell/bg-shell-command.js +182 -0
- package/dist/resources/extensions/bg-shell/bg-shell-lifecycle.js +343 -0
- package/dist/resources/extensions/bg-shell/bg-shell-tool.js +831 -0
- package/dist/resources/extensions/bg-shell/index.js +41 -0
- package/dist/resources/extensions/bg-shell/interaction.js +160 -0
- package/dist/resources/extensions/bg-shell/output-formatter.js +245 -0
- package/dist/resources/extensions/bg-shell/overlay.js +378 -0
- package/dist/resources/extensions/bg-shell/process-manager.js +413 -0
- package/dist/resources/extensions/bg-shell/readiness-detector.js +109 -0
- package/dist/resources/extensions/bg-shell/types.js +96 -0
- package/dist/resources/extensions/bg-shell/utilities.js +50 -0
- package/dist/resources/extensions/browser-tools/capture.js +179 -0
- package/dist/resources/extensions/browser-tools/core.js +899 -0
- package/dist/resources/extensions/browser-tools/{evaluate-helpers.ts → evaluate-helpers.js} +0 -1
- package/dist/resources/extensions/browser-tools/index.js +123 -0
- package/dist/resources/extensions/browser-tools/lifecycle.js +222 -0
- package/dist/resources/extensions/browser-tools/refs.js +254 -0
- package/dist/resources/extensions/browser-tools/settle.js +173 -0
- package/dist/resources/extensions/browser-tools/state.js +126 -0
- package/dist/resources/extensions/browser-tools/tools/action-cache.js +179 -0
- package/dist/resources/extensions/browser-tools/tools/assertions.js +320 -0
- package/dist/resources/extensions/browser-tools/tools/codegen.js +242 -0
- package/dist/resources/extensions/browser-tools/tools/device.js +162 -0
- package/dist/resources/extensions/browser-tools/tools/extract.js +191 -0
- package/dist/resources/extensions/browser-tools/tools/forms.js +710 -0
- package/dist/resources/extensions/browser-tools/tools/injection-detect.js +178 -0
- package/dist/resources/extensions/browser-tools/tools/inspection.js +426 -0
- package/dist/resources/extensions/browser-tools/tools/intent.js +556 -0
- package/dist/resources/extensions/browser-tools/tools/interaction.js +776 -0
- package/dist/resources/extensions/browser-tools/tools/navigation.js +208 -0
- package/dist/resources/extensions/browser-tools/tools/network-mock.js +194 -0
- package/dist/resources/extensions/browser-tools/tools/pages.js +280 -0
- package/dist/resources/extensions/browser-tools/tools/pdf.js +74 -0
- package/dist/resources/extensions/browser-tools/tools/refs.js +485 -0
- package/dist/resources/extensions/browser-tools/tools/screenshot.js +87 -0
- package/dist/resources/extensions/browser-tools/tools/session.js +375 -0
- package/dist/resources/extensions/browser-tools/tools/state-persistence.js +180 -0
- package/dist/resources/extensions/browser-tools/tools/visual-diff.js +174 -0
- package/dist/resources/extensions/browser-tools/tools/wait.js +201 -0
- package/dist/resources/extensions/browser-tools/tools/zoom.js +90 -0
- package/dist/resources/extensions/browser-tools/utils.js +490 -0
- package/dist/resources/extensions/context7/index.js +337 -0
- package/dist/resources/extensions/get-secrets-from-user.js +492 -0
- package/dist/resources/extensions/google-search/index.js +373 -0
- package/dist/resources/extensions/gsd/activity-log.js +146 -0
- package/dist/resources/extensions/gsd/atomic-write.js +38 -0
- package/dist/resources/extensions/gsd/auto/session.js +187 -0
- package/dist/resources/extensions/gsd/auto-budget.js +30 -0
- package/dist/resources/extensions/gsd/{auto-constants.ts → auto-constants.js} +0 -1
- package/dist/resources/extensions/gsd/auto-dashboard.js +509 -0
- package/dist/resources/extensions/gsd/auto-direct-dispatch.js +180 -0
- package/dist/resources/extensions/gsd/auto-dispatch.js +382 -0
- package/dist/resources/extensions/gsd/auto-idempotency.js +106 -0
- package/dist/resources/extensions/gsd/auto-model-selection.js +133 -0
- package/dist/resources/extensions/gsd/auto-observability.js +54 -0
- package/dist/resources/extensions/gsd/auto-post-unit.js +495 -0
- package/dist/resources/extensions/gsd/auto-prompts.js +1121 -0
- package/dist/resources/extensions/gsd/auto-recovery.js +550 -0
- package/dist/resources/extensions/gsd/auto-start.js +393 -0
- package/dist/resources/extensions/gsd/auto-stuck-detection.js +165 -0
- package/dist/resources/extensions/gsd/{auto-supervisor.ts → auto-supervisor.js} +29 -32
- package/dist/resources/extensions/gsd/auto-timeout-recovery.js +183 -0
- package/dist/resources/extensions/gsd/auto-timers.js +181 -0
- package/dist/resources/extensions/gsd/auto-tool-tracking.js +50 -0
- package/dist/resources/extensions/gsd/auto-unit-closeout.js +30 -0
- package/dist/resources/extensions/gsd/auto-verification.js +209 -0
- package/dist/resources/extensions/gsd/auto-worktree.js +594 -0
- package/dist/resources/extensions/gsd/auto.js +1485 -0
- package/dist/resources/extensions/gsd/{cache.ts → cache.js} +5 -7
- package/dist/resources/extensions/gsd/captures.js +348 -0
- package/dist/resources/extensions/gsd/claude-import.js +540 -0
- package/dist/resources/extensions/gsd/collision-diagnostics.js +226 -0
- package/dist/resources/extensions/gsd/commands-bootstrap.js +223 -0
- package/dist/resources/extensions/gsd/commands-config.js +89 -0
- package/dist/resources/extensions/gsd/commands-extensions.js +259 -0
- package/dist/resources/extensions/gsd/commands-handlers.js +310 -0
- package/dist/resources/extensions/gsd/commands-inspect.js +70 -0
- package/dist/resources/extensions/gsd/commands-logs.js +468 -0
- package/dist/resources/extensions/gsd/commands-maintenance.js +185 -0
- package/dist/resources/extensions/gsd/commands-prefs-wizard.js +660 -0
- package/dist/resources/extensions/gsd/commands-workflow-templates.js +408 -0
- package/dist/resources/extensions/gsd/commands.js +1024 -0
- package/dist/resources/extensions/gsd/complexity-classifier.js +257 -0
- package/dist/resources/extensions/gsd/{constants.ts → constants.js} +0 -6
- package/dist/resources/extensions/gsd/context-budget.js +187 -0
- package/dist/resources/extensions/gsd/context-store.js +165 -0
- package/dist/resources/extensions/gsd/crash-recovery.js +110 -0
- package/dist/resources/extensions/gsd/dashboard-overlay.js +562 -0
- package/dist/resources/extensions/gsd/db-writer.js +298 -0
- package/dist/resources/extensions/gsd/debug-logger.js +161 -0
- package/dist/resources/extensions/gsd/detection.js +373 -0
- package/dist/resources/extensions/gsd/diff-context.js +168 -0
- package/dist/resources/extensions/gsd/dispatch-guard.js +76 -0
- package/dist/resources/extensions/gsd/doctor-checks.js +563 -0
- package/dist/resources/extensions/gsd/doctor-environment.js +429 -0
- package/dist/resources/extensions/gsd/doctor-format.js +71 -0
- package/dist/resources/extensions/gsd/doctor-proactive.js +239 -0
- package/dist/resources/extensions/gsd/doctor-providers.js +292 -0
- package/dist/resources/extensions/gsd/doctor-types.js +12 -0
- package/dist/resources/extensions/gsd/doctor.js +672 -0
- package/dist/resources/extensions/gsd/error-utils.js +6 -0
- package/dist/resources/extensions/gsd/{errors.ts → errors.js} +6 -11
- package/dist/resources/extensions/gsd/exit-command.js +11 -0
- package/dist/resources/extensions/gsd/{export-html.ts → export-html.js} +482 -614
- package/dist/resources/extensions/gsd/export.js +268 -0
- package/dist/resources/extensions/gsd/file-watcher.js +76 -0
- package/dist/resources/extensions/gsd/files.js +937 -0
- package/dist/resources/extensions/gsd/forensics.js +511 -0
- package/dist/resources/extensions/gsd/{git-constants.ts → git-constants.js} +4 -5
- package/dist/resources/extensions/gsd/git-self-heal.js +113 -0
- package/dist/resources/extensions/gsd/git-service.js +460 -0
- package/dist/resources/extensions/gsd/{gitignore.ts → gitignore.js} +98 -125
- package/dist/resources/extensions/gsd/gsd-db.js +590 -0
- package/dist/resources/extensions/gsd/guided-flow-queue.js +366 -0
- package/dist/resources/extensions/gsd/guided-flow.js +1149 -0
- package/dist/resources/extensions/gsd/health-widget.js +141 -0
- package/dist/resources/extensions/gsd/history.js +118 -0
- package/dist/resources/extensions/gsd/index.js +1250 -0
- package/dist/resources/extensions/gsd/init-wizard.js +479 -0
- package/dist/resources/extensions/gsd/json-persistence.js +62 -0
- package/dist/resources/extensions/gsd/{jsonl-utils.ts → jsonl-utils.js} +10 -7
- package/dist/resources/extensions/gsd/key-manager.js +829 -0
- package/dist/resources/extensions/gsd/marketplace-discovery.js +356 -0
- package/dist/resources/extensions/gsd/md-importer.js +440 -0
- package/dist/resources/extensions/gsd/mechanical-completion.js +351 -0
- package/dist/resources/extensions/gsd/memory-extractor.js +295 -0
- package/dist/resources/extensions/gsd/memory-store.js +351 -0
- package/dist/resources/extensions/gsd/metrics.js +377 -0
- package/dist/resources/extensions/gsd/migrate/command.js +157 -0
- package/dist/resources/extensions/gsd/migrate/index.js +7 -0
- package/dist/resources/extensions/gsd/migrate/parser.js +268 -0
- package/dist/resources/extensions/gsd/migrate/parsers.js +477 -0
- package/dist/resources/extensions/gsd/migrate/preview.js +47 -0
- package/dist/resources/extensions/gsd/migrate/transformer.js +278 -0
- package/dist/resources/extensions/gsd/migrate/types.js +4 -0
- package/dist/resources/extensions/gsd/migrate/validator.js +41 -0
- package/dist/resources/extensions/gsd/migrate/writer.js +477 -0
- package/dist/resources/extensions/gsd/migrate-external.js +130 -0
- package/dist/resources/extensions/gsd/milestone-actions.js +111 -0
- package/dist/resources/extensions/gsd/{milestone-ids.ts → milestone-ids.js} +50 -63
- package/dist/resources/extensions/gsd/model-cost-table.js +48 -0
- package/dist/resources/extensions/gsd/model-router.js +187 -0
- package/dist/resources/extensions/gsd/namespaced-registry.js +322 -0
- package/dist/resources/extensions/gsd/namespaced-resolver.js +176 -0
- package/dist/resources/extensions/gsd/native-git-bridge.js +842 -0
- package/dist/resources/extensions/gsd/native-parser-bridge.js +156 -0
- package/dist/resources/extensions/gsd/notifications.js +58 -0
- package/dist/resources/extensions/gsd/observability-validator.js +398 -0
- package/dist/resources/extensions/gsd/parallel-eligibility.js +182 -0
- package/dist/resources/extensions/gsd/parallel-merge.js +121 -0
- package/dist/resources/extensions/gsd/parallel-orchestrator.js +687 -0
- package/dist/resources/extensions/gsd/paths.js +414 -0
- package/dist/resources/extensions/gsd/plugin-importer.js +254 -0
- package/dist/resources/extensions/gsd/post-unit-hooks.js +433 -0
- package/dist/resources/extensions/gsd/preferences-models.js +294 -0
- package/dist/resources/extensions/gsd/preferences-skills.js +154 -0
- package/dist/resources/extensions/gsd/preferences-types.js +73 -0
- package/dist/resources/extensions/gsd/preferences-validation.js +607 -0
- package/dist/resources/extensions/gsd/preferences.js +325 -0
- package/dist/resources/extensions/gsd/progress-score.js +197 -0
- package/dist/resources/extensions/gsd/prompt-cache-optimizer.js +150 -0
- package/dist/resources/extensions/gsd/prompt-compressor.js +393 -0
- package/dist/resources/extensions/gsd/prompt-loader.js +119 -0
- package/dist/resources/extensions/gsd/prompt-ordering.js +170 -0
- package/dist/resources/extensions/gsd/provider-error-pause.js +60 -0
- package/dist/resources/extensions/gsd/queue-order.js +178 -0
- package/dist/resources/extensions/gsd/queue-reorder-ui.js +234 -0
- package/dist/resources/extensions/gsd/quick.js +230 -0
- package/dist/resources/extensions/gsd/repo-identity.js +187 -0
- package/dist/resources/extensions/gsd/{reports.ts → reports.js} +146 -241
- package/dist/resources/extensions/gsd/{resource-version.ts → resource-version.js} +50 -53
- package/dist/resources/extensions/gsd/roadmap-slices.js +130 -0
- package/dist/resources/extensions/gsd/routing-history.js +210 -0
- package/dist/resources/extensions/gsd/safe-fs.js +52 -0
- package/dist/resources/extensions/gsd/semantic-chunker.js +254 -0
- package/dist/resources/extensions/gsd/session-forensics.js +427 -0
- package/dist/resources/extensions/gsd/session-lock.js +376 -0
- package/dist/resources/extensions/gsd/session-status-io.js +134 -0
- package/dist/resources/extensions/gsd/skill-discovery.js +121 -0
- package/dist/resources/extensions/gsd/skill-health.js +324 -0
- package/dist/resources/extensions/gsd/{skill-telemetry.ts → skill-telemetry.js} +58 -74
- package/dist/resources/extensions/gsd/state.js +653 -0
- package/dist/resources/extensions/gsd/structured-data-formatter.js +97 -0
- package/dist/resources/extensions/gsd/summary-distiller.js +212 -0
- package/dist/resources/extensions/gsd/token-counter.js +54 -0
- package/dist/resources/extensions/gsd/triage-resolution.js +217 -0
- package/dist/resources/extensions/gsd/triage-ui.js +125 -0
- package/dist/resources/extensions/gsd/types.js +4 -0
- package/dist/resources/extensions/gsd/undo.js +210 -0
- package/dist/resources/extensions/gsd/unit-id.js +7 -0
- package/dist/resources/extensions/gsd/unit-runtime.js +130 -0
- package/dist/resources/extensions/gsd/validate-directory.js +143 -0
- package/dist/resources/extensions/gsd/verification-evidence.js +123 -0
- package/dist/resources/extensions/gsd/verification-gate.js +543 -0
- package/dist/resources/extensions/gsd/visualizer-data.js +612 -0
- package/dist/resources/extensions/gsd/visualizer-overlay.js +501 -0
- package/dist/resources/extensions/gsd/visualizer-views.js +893 -0
- package/dist/resources/extensions/gsd/workflow-templates.js +188 -0
- package/dist/resources/extensions/gsd/workspace-index.js +139 -0
- package/dist/resources/extensions/gsd/worktree-command-bootstrap.js +40 -0
- package/dist/resources/extensions/gsd/worktree-command.js +676 -0
- package/dist/resources/extensions/gsd/worktree-manager.js +359 -0
- package/dist/resources/extensions/gsd/worktree.js +236 -0
- package/dist/resources/extensions/mac-tools/index.js +768 -0
- package/dist/resources/extensions/mcp-client/index.js +363 -0
- package/dist/resources/extensions/package.json +3 -0
- package/dist/resources/extensions/remote-questions/config.js +70 -0
- package/dist/resources/extensions/remote-questions/discord-adapter.js +134 -0
- package/dist/resources/extensions/remote-questions/format.js +234 -0
- package/dist/resources/extensions/remote-questions/http-client.js +43 -0
- package/dist/resources/extensions/remote-questions/manager.js +156 -0
- package/dist/resources/extensions/remote-questions/{mod.ts → mod.js} +1 -10
- package/dist/resources/extensions/remote-questions/notify.js +89 -0
- package/dist/resources/extensions/remote-questions/remote-command.js +453 -0
- package/dist/resources/extensions/remote-questions/slack-adapter.js +123 -0
- package/dist/resources/extensions/remote-questions/status.js +25 -0
- package/dist/resources/extensions/remote-questions/store.js +70 -0
- package/dist/resources/extensions/remote-questions/telegram-adapter.js +123 -0
- package/dist/resources/extensions/remote-questions/types.js +5 -0
- package/dist/resources/extensions/search-the-web/cache.js +74 -0
- package/dist/resources/extensions/search-the-web/command-search-provider.js +79 -0
- package/dist/resources/extensions/search-the-web/format.js +161 -0
- package/dist/resources/extensions/search-the-web/http.js +178 -0
- package/dist/resources/extensions/search-the-web/index.js +41 -0
- package/dist/resources/extensions/search-the-web/native-search.js +166 -0
- package/dist/resources/extensions/search-the-web/provider.js +143 -0
- package/dist/resources/extensions/search-the-web/tavily.js +82 -0
- package/dist/resources/extensions/search-the-web/tool-fetch-page.js +452 -0
- package/dist/resources/extensions/search-the-web/tool-llm-context.js +455 -0
- package/dist/resources/extensions/search-the-web/tool-search.js +482 -0
- package/dist/resources/extensions/search-the-web/url-utils.js +121 -0
- package/dist/resources/extensions/shared/confirm-ui.js +96 -0
- package/dist/resources/extensions/shared/{format-utils.ts → format-utils.js} +85 -91
- package/dist/resources/extensions/shared/frontmatter.js +109 -0
- package/dist/resources/extensions/shared/interview-ui.js +569 -0
- package/dist/resources/extensions/shared/{mod.ts → mod.js} +2 -24
- package/dist/resources/extensions/shared/next-action-ui.js +168 -0
- package/dist/resources/extensions/shared/{path-display.ts → path-display.js} +2 -3
- package/dist/resources/extensions/shared/sanitize.js +17 -0
- package/dist/resources/extensions/shared/terminal.js +21 -0
- package/dist/resources/extensions/shared/ui.js +245 -0
- package/dist/resources/extensions/shared/wizard-ui.js +478 -0
- package/dist/resources/extensions/slash-commands/audit.js +72 -0
- package/dist/resources/extensions/slash-commands/clear.js +8 -0
- package/dist/resources/extensions/slash-commands/create-extension.js +264 -0
- package/dist/resources/extensions/slash-commands/create-slash-command.js +208 -0
- package/dist/resources/extensions/slash-commands/index.js +10 -0
- package/dist/resources/extensions/subagent/agents.js +103 -0
- package/dist/resources/extensions/subagent/index.js +905 -0
- package/dist/resources/extensions/subagent/isolation.js +384 -0
- package/dist/resources/extensions/subagent/worker-registry.js +73 -0
- package/dist/resources/extensions/ttsr/index.js +144 -0
- package/dist/resources/extensions/ttsr/rule-loader.js +70 -0
- package/dist/resources/extensions/ttsr/ttsr-manager.js +380 -0
- package/dist/resources/extensions/universal-config/discovery.js +94 -0
- package/dist/resources/extensions/universal-config/format.js +178 -0
- package/dist/resources/extensions/universal-config/index.js +99 -0
- package/dist/resources/extensions/universal-config/scanners.js +574 -0
- package/dist/resources/extensions/universal-config/tools.js +57 -0
- package/dist/resources/extensions/universal-config/types.js +8 -0
- package/dist/resources/extensions/voice/index.js +247 -0
- package/dist/startup-timings.d.ts +2 -0
- package/dist/startup-timings.js +22 -0
- package/package.json +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/index.d.ts +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/index.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/index.js +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/index.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/loader.d.ts +1 -0
- package/packages/pi-coding-agent/dist/core/extensions/loader.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/loader.js +31 -4
- package/packages/pi-coding-agent/dist/core/extensions/loader.js.map +1 -1
- package/packages/pi-coding-agent/dist/index.d.ts +1 -1
- package/packages/pi-coding-agent/dist/index.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/index.js +1 -1
- package/packages/pi-coding-agent/dist/index.js.map +1 -1
- package/packages/pi-coding-agent/package.json +1 -1
- package/packages/pi-coding-agent/src/core/extensions/index.ts +1 -0
- package/packages/pi-coding-agent/src/core/extensions/loader.ts +35 -4
- package/packages/pi-coding-agent/src/index.ts +1 -0
- package/pkg/package.json +1 -1
- package/src/resources/extensions/bg-shell/index.ts +41 -46
- package/src/resources/extensions/browser-tools/index.ts +156 -67
- package/src/resources/extensions/gsd/auto-supervisor.ts +10 -5
- package/src/resources/extensions/gsd/auto-verification.ts +20 -2
- package/src/resources/extensions/gsd/auto-worktree.ts +136 -1
- package/src/resources/extensions/gsd/commands-bootstrap.ts +252 -0
- package/src/resources/extensions/gsd/commands.ts +53 -33
- package/src/resources/extensions/gsd/git-service.ts +24 -11
- package/src/resources/extensions/gsd/index.ts +106 -34
- package/src/resources/extensions/gsd/quick.ts +52 -3
- package/src/resources/extensions/gsd/repo-identity.ts +56 -22
- package/src/resources/extensions/gsd/session-lock.ts +80 -16
- package/src/resources/extensions/gsd/tests/auto-dispatch-loop.test.ts +691 -0
- package/src/resources/extensions/gsd/tests/cache-staleness-regression.test.ts +317 -0
- package/src/resources/extensions/gsd/tests/git-service.test.ts +16 -7
- package/src/resources/extensions/gsd/tests/loop-regression.test.ts +40 -5
- package/src/resources/extensions/gsd/tests/quick-branch-lifecycle.test.ts +281 -0
- package/src/resources/extensions/gsd/tests/repo-identity-worktree.test.ts +71 -0
- package/src/resources/extensions/gsd/tests/roadmap-parse-regression.test.ts +358 -0
- package/src/resources/extensions/gsd/tests/session-lock-regression.test.ts +216 -0
- package/src/resources/extensions/gsd/tests/session-lock.test.ts +119 -0
- package/src/resources/extensions/gsd/tests/verification-gate.test.ts +65 -0
- package/src/resources/extensions/gsd/tests/worktree-sync-milestones.test.ts +206 -0
- package/src/resources/extensions/gsd/types.ts +4 -0
- package/src/resources/extensions/gsd/verification-evidence.ts +1 -1
- package/src/resources/extensions/gsd/verification-gate.ts +23 -2
- package/src/resources/extensions/gsd/worktree-command-bootstrap.ts +46 -0
- package/src/resources/extensions/gsd/worktree-command.ts +17 -11
- package/src/resources/extensions/package.json +3 -0
- package/src/resources/extensions/search-the-web/command-search-provider.ts +1 -1
- package/src/resources/extensions/search-the-web/index.ts +35 -52
- package/src/resources/extensions/search-the-web/tavily.ts +1 -1
- package/dist/resources/extensions/ask-user-questions.ts +0 -290
- package/dist/resources/extensions/async-jobs/async-bash-tool.ts +0 -212
- package/dist/resources/extensions/async-jobs/await-tool.ts +0 -103
- package/dist/resources/extensions/async-jobs/cancel-job-tool.ts +0 -35
- package/dist/resources/extensions/async-jobs/index.ts +0 -141
- package/dist/resources/extensions/async-jobs/job-manager.ts +0 -211
- package/dist/resources/extensions/aws-auth/index.ts +0 -144
- package/dist/resources/extensions/bg-shell/bg-shell-command.ts +0 -219
- package/dist/resources/extensions/bg-shell/bg-shell-lifecycle.ts +0 -400
- package/dist/resources/extensions/bg-shell/bg-shell-tool.ts +0 -985
- package/dist/resources/extensions/bg-shell/index.ts +0 -59
- package/dist/resources/extensions/bg-shell/interaction.ts +0 -198
- package/dist/resources/extensions/bg-shell/output-formatter.ts +0 -279
- package/dist/resources/extensions/bg-shell/overlay.ts +0 -437
- package/dist/resources/extensions/bg-shell/process-manager.ts +0 -464
- package/dist/resources/extensions/bg-shell/readiness-detector.ts +0 -126
- package/dist/resources/extensions/bg-shell/types.ts +0 -303
- package/dist/resources/extensions/bg-shell/utilities.ts +0 -57
- package/dist/resources/extensions/browser-tools/capture.ts +0 -199
- package/dist/resources/extensions/browser-tools/core.ts +0 -1196
- package/dist/resources/extensions/browser-tools/index.ts +0 -71
- package/dist/resources/extensions/browser-tools/lifecycle.ts +0 -270
- package/dist/resources/extensions/browser-tools/refs.ts +0 -264
- package/dist/resources/extensions/browser-tools/settle.ts +0 -197
- package/dist/resources/extensions/browser-tools/state.ts +0 -408
- package/dist/resources/extensions/browser-tools/tools/action-cache.ts +0 -216
- package/dist/resources/extensions/browser-tools/tools/assertions.ts +0 -342
- package/dist/resources/extensions/browser-tools/tools/codegen.ts +0 -274
- package/dist/resources/extensions/browser-tools/tools/device.ts +0 -183
- package/dist/resources/extensions/browser-tools/tools/extract.ts +0 -229
- package/dist/resources/extensions/browser-tools/tools/forms.ts +0 -801
- package/dist/resources/extensions/browser-tools/tools/injection-detect.ts +0 -221
- package/dist/resources/extensions/browser-tools/tools/inspection.ts +0 -492
- package/dist/resources/extensions/browser-tools/tools/intent.ts +0 -614
- package/dist/resources/extensions/browser-tools/tools/interaction.ts +0 -865
- package/dist/resources/extensions/browser-tools/tools/navigation.ts +0 -232
- package/dist/resources/extensions/browser-tools/tools/network-mock.ts +0 -244
- package/dist/resources/extensions/browser-tools/tools/pages.ts +0 -303
- package/dist/resources/extensions/browser-tools/tools/pdf.ts +0 -92
- package/dist/resources/extensions/browser-tools/tools/refs.ts +0 -541
- package/dist/resources/extensions/browser-tools/tools/screenshot.ts +0 -101
- package/dist/resources/extensions/browser-tools/tools/session.ts +0 -400
- package/dist/resources/extensions/browser-tools/tools/state-persistence.ts +0 -202
- package/dist/resources/extensions/browser-tools/tools/visual-diff.ts +0 -209
- package/dist/resources/extensions/browser-tools/tools/wait.ts +0 -247
- package/dist/resources/extensions/browser-tools/tools/zoom.ts +0 -104
- package/dist/resources/extensions/browser-tools/utils.ts +0 -660
- package/dist/resources/extensions/context7/index.ts +0 -428
- package/dist/resources/extensions/get-secrets-from-user.ts +0 -607
- package/dist/resources/extensions/google-search/index.ts +0 -466
- package/dist/resources/extensions/gsd/activity-log.ts +0 -162
- package/dist/resources/extensions/gsd/atomic-write.ts +0 -35
- package/dist/resources/extensions/gsd/auto/session.ts +0 -236
- package/dist/resources/extensions/gsd/auto-budget.ts +0 -32
- package/dist/resources/extensions/gsd/auto-dashboard.ts +0 -626
- package/dist/resources/extensions/gsd/auto-direct-dispatch.ts +0 -224
- package/dist/resources/extensions/gsd/auto-dispatch.ts +0 -409
- package/dist/resources/extensions/gsd/auto-idempotency.ts +0 -151
- package/dist/resources/extensions/gsd/auto-model-selection.ts +0 -179
- package/dist/resources/extensions/gsd/auto-observability.ts +0 -72
- package/dist/resources/extensions/gsd/auto-post-unit.ts +0 -618
- package/dist/resources/extensions/gsd/auto-prompts.ts +0 -1273
- package/dist/resources/extensions/gsd/auto-recovery.ts +0 -578
- package/dist/resources/extensions/gsd/auto-start.ts +0 -483
- package/dist/resources/extensions/gsd/auto-stuck-detection.ts +0 -221
- package/dist/resources/extensions/gsd/auto-timeout-recovery.ts +0 -263
- package/dist/resources/extensions/gsd/auto-timers.ts +0 -224
- package/dist/resources/extensions/gsd/auto-tool-tracking.ts +0 -54
- package/dist/resources/extensions/gsd/auto-unit-closeout.ts +0 -48
- package/dist/resources/extensions/gsd/auto-verification.ts +0 -229
- package/dist/resources/extensions/gsd/auto-worktree.ts +0 -524
- package/dist/resources/extensions/gsd/auto.ts +0 -1834
- package/dist/resources/extensions/gsd/captures.ts +0 -427
- package/dist/resources/extensions/gsd/claude-import.ts +0 -656
- package/dist/resources/extensions/gsd/collision-diagnostics.ts +0 -332
- package/dist/resources/extensions/gsd/commands-config.ts +0 -102
- package/dist/resources/extensions/gsd/commands-extensions.ts +0 -328
- package/dist/resources/extensions/gsd/commands-handlers.ts +0 -395
- package/dist/resources/extensions/gsd/commands-inspect.ts +0 -91
- package/dist/resources/extensions/gsd/commands-logs.ts +0 -536
- package/dist/resources/extensions/gsd/commands-maintenance.ts +0 -206
- package/dist/resources/extensions/gsd/commands-prefs-wizard.ts +0 -780
- package/dist/resources/extensions/gsd/commands-workflow-templates.ts +0 -543
- package/dist/resources/extensions/gsd/commands.ts +0 -1137
- package/dist/resources/extensions/gsd/complexity-classifier.ts +0 -320
- package/dist/resources/extensions/gsd/context-budget.ts +0 -266
- package/dist/resources/extensions/gsd/context-store.ts +0 -195
- package/dist/resources/extensions/gsd/crash-recovery.ts +0 -121
- package/dist/resources/extensions/gsd/dashboard-overlay.ts +0 -681
- package/dist/resources/extensions/gsd/db-writer.ts +0 -360
- package/dist/resources/extensions/gsd/debug-logger.ts +0 -178
- package/dist/resources/extensions/gsd/detection.ts +0 -470
- package/dist/resources/extensions/gsd/diff-context.ts +0 -214
- package/dist/resources/extensions/gsd/dispatch-guard.ts +0 -81
- package/dist/resources/extensions/gsd/doctor-checks.ts +0 -612
- package/dist/resources/extensions/gsd/doctor-environment.ts +0 -497
- package/dist/resources/extensions/gsd/doctor-format.ts +0 -78
- package/dist/resources/extensions/gsd/doctor-proactive.ts +0 -292
- package/dist/resources/extensions/gsd/doctor-providers.ts +0 -343
- package/dist/resources/extensions/gsd/doctor-types.ts +0 -87
- package/dist/resources/extensions/gsd/doctor.ts +0 -722
- package/dist/resources/extensions/gsd/error-utils.ts +0 -6
- package/dist/resources/extensions/gsd/exit-command.ts +0 -18
- package/dist/resources/extensions/gsd/export.ts +0 -317
- package/dist/resources/extensions/gsd/file-watcher.ts +0 -97
- package/dist/resources/extensions/gsd/files.ts +0 -1058
- package/dist/resources/extensions/gsd/forensics.ts +0 -629
- package/dist/resources/extensions/gsd/git-self-heal.ts +0 -127
- package/dist/resources/extensions/gsd/git-service.ts +0 -580
- package/dist/resources/extensions/gsd/gsd-db.ts +0 -685
- package/dist/resources/extensions/gsd/guided-flow-queue.ts +0 -440
- package/dist/resources/extensions/gsd/guided-flow.ts +0 -1303
- package/dist/resources/extensions/gsd/health-widget.ts +0 -167
- package/dist/resources/extensions/gsd/history.ts +0 -143
- package/dist/resources/extensions/gsd/index.ts +0 -1390
- package/dist/resources/extensions/gsd/init-wizard.ts +0 -587
- package/dist/resources/extensions/gsd/json-persistence.ts +0 -67
- package/dist/resources/extensions/gsd/key-manager.ts +0 -996
- package/dist/resources/extensions/gsd/marketplace-discovery.ts +0 -508
- package/dist/resources/extensions/gsd/md-importer.ts +0 -527
- package/dist/resources/extensions/gsd/mechanical-completion.ts +0 -430
- package/dist/resources/extensions/gsd/memory-extractor.ts +0 -352
- package/dist/resources/extensions/gsd/memory-store.ts +0 -441
- package/dist/resources/extensions/gsd/metrics.ts +0 -532
- package/dist/resources/extensions/gsd/migrate/command.ts +0 -219
- package/dist/resources/extensions/gsd/migrate/index.ts +0 -42
- package/dist/resources/extensions/gsd/migrate/parser.ts +0 -323
- package/dist/resources/extensions/gsd/migrate/parsers.ts +0 -539
- package/dist/resources/extensions/gsd/migrate/preview.ts +0 -48
- package/dist/resources/extensions/gsd/migrate/transformer.ts +0 -346
- package/dist/resources/extensions/gsd/migrate/types.ts +0 -370
- package/dist/resources/extensions/gsd/migrate/validator.ts +0 -55
- package/dist/resources/extensions/gsd/migrate/writer.ts +0 -579
- package/dist/resources/extensions/gsd/migrate-external.ts +0 -140
- package/dist/resources/extensions/gsd/milestone-actions.ts +0 -126
- package/dist/resources/extensions/gsd/model-cost-table.ts +0 -65
- package/dist/resources/extensions/gsd/model-router.ts +0 -256
- package/dist/resources/extensions/gsd/namespaced-registry.ts +0 -467
- package/dist/resources/extensions/gsd/namespaced-resolver.ts +0 -307
- package/dist/resources/extensions/gsd/native-git-bridge.ts +0 -1041
- package/dist/resources/extensions/gsd/native-parser-bridge.ts +0 -267
- package/dist/resources/extensions/gsd/notifications.ts +0 -87
- package/dist/resources/extensions/gsd/observability-validator.ts +0 -429
- package/dist/resources/extensions/gsd/parallel-eligibility.ts +0 -233
- package/dist/resources/extensions/gsd/parallel-merge.ts +0 -157
- package/dist/resources/extensions/gsd/parallel-orchestrator.ts +0 -826
- package/dist/resources/extensions/gsd/paths.ts +0 -449
- package/dist/resources/extensions/gsd/plugin-importer.ts +0 -411
- package/dist/resources/extensions/gsd/post-unit-hooks.ts +0 -520
- package/dist/resources/extensions/gsd/preferences-models.ts +0 -329
- package/dist/resources/extensions/gsd/preferences-skills.ts +0 -169
- package/dist/resources/extensions/gsd/preferences-types.ts +0 -229
- package/dist/resources/extensions/gsd/preferences-validation.ts +0 -590
- package/dist/resources/extensions/gsd/preferences.ts +0 -416
- package/dist/resources/extensions/gsd/progress-score.ts +0 -273
- package/dist/resources/extensions/gsd/prompt-cache-optimizer.ts +0 -213
- package/dist/resources/extensions/gsd/prompt-compressor.ts +0 -508
- package/dist/resources/extensions/gsd/prompt-loader.ts +0 -130
- package/dist/resources/extensions/gsd/prompt-ordering.ts +0 -200
- package/dist/resources/extensions/gsd/provider-error-pause.ts +0 -88
- package/dist/resources/extensions/gsd/queue-order.ts +0 -230
- package/dist/resources/extensions/gsd/queue-reorder-ui.ts +0 -276
- package/dist/resources/extensions/gsd/quick.ts +0 -212
- package/dist/resources/extensions/gsd/repo-identity.ts +0 -169
- package/dist/resources/extensions/gsd/roadmap-slices.ts +0 -149
- package/dist/resources/extensions/gsd/routing-history.ts +0 -286
- package/dist/resources/extensions/gsd/safe-fs.ts +0 -47
- package/dist/resources/extensions/gsd/semantic-chunker.ts +0 -336
- package/dist/resources/extensions/gsd/session-forensics.ts +0 -537
- package/dist/resources/extensions/gsd/session-lock.ts +0 -362
- package/dist/resources/extensions/gsd/session-status-io.ts +0 -179
- package/dist/resources/extensions/gsd/skill-discovery.ts +0 -139
- package/dist/resources/extensions/gsd/skill-health.ts +0 -417
- package/dist/resources/extensions/gsd/state.ts +0 -727
- package/dist/resources/extensions/gsd/structured-data-formatter.ts +0 -144
- package/dist/resources/extensions/gsd/summary-distiller.ts +0 -258
- package/dist/resources/extensions/gsd/tests/activity-log.test.ts +0 -213
- package/dist/resources/extensions/gsd/tests/agent-end-retry.test.ts +0 -107
- package/dist/resources/extensions/gsd/tests/all-milestones-complete-merge.test.ts +0 -200
- package/dist/resources/extensions/gsd/tests/auto-budget-alerts.test.ts +0 -50
- package/dist/resources/extensions/gsd/tests/auto-dashboard.test.ts +0 -166
- package/dist/resources/extensions/gsd/tests/auto-lock-creation.test.ts +0 -186
- package/dist/resources/extensions/gsd/tests/auto-preflight.test.ts +0 -40
- package/dist/resources/extensions/gsd/tests/auto-recovery.test.ts +0 -640
- package/dist/resources/extensions/gsd/tests/auto-reentrancy-guard.test.ts +0 -127
- package/dist/resources/extensions/gsd/tests/auto-secrets-gate.test.ts +0 -302
- package/dist/resources/extensions/gsd/tests/auto-session-encapsulation.test.ts +0 -257
- package/dist/resources/extensions/gsd/tests/auto-skip-loop.test.ts +0 -123
- package/dist/resources/extensions/gsd/tests/auto-worktree-milestone-merge.test.ts +0 -340
- package/dist/resources/extensions/gsd/tests/auto-worktree.test.ts +0 -167
- package/dist/resources/extensions/gsd/tests/budget-prediction.test.ts +0 -220
- package/dist/resources/extensions/gsd/tests/captures.test.ts +0 -438
- package/dist/resources/extensions/gsd/tests/claude-import-tui.test.ts +0 -351
- package/dist/resources/extensions/gsd/tests/collect-from-manifest.test.ts +0 -469
- package/dist/resources/extensions/gsd/tests/collision-diagnostics.test.ts +0 -705
- package/dist/resources/extensions/gsd/tests/commands-logs.test.ts +0 -241
- package/dist/resources/extensions/gsd/tests/complete-milestone.test.ts +0 -209
- package/dist/resources/extensions/gsd/tests/complexity-classifier.test.ts +0 -181
- package/dist/resources/extensions/gsd/tests/context-budget.test.ts +0 -352
- package/dist/resources/extensions/gsd/tests/context-compression.test.ts +0 -193
- package/dist/resources/extensions/gsd/tests/context-store.test.ts +0 -462
- package/dist/resources/extensions/gsd/tests/continue-here.test.ts +0 -285
- package/dist/resources/extensions/gsd/tests/cost-projection.test.ts +0 -134
- package/dist/resources/extensions/gsd/tests/crash-recovery.test.ts +0 -134
- package/dist/resources/extensions/gsd/tests/dashboard-budget.test.ts +0 -346
- package/dist/resources/extensions/gsd/tests/db-writer.test.ts +0 -602
- package/dist/resources/extensions/gsd/tests/debug-logger.test.ts +0 -185
- package/dist/resources/extensions/gsd/tests/derive-state-db.test.ts +0 -405
- package/dist/resources/extensions/gsd/tests/derive-state-deps.test.ts +0 -421
- package/dist/resources/extensions/gsd/tests/derive-state-draft.test.ts +0 -308
- package/dist/resources/extensions/gsd/tests/derive-state.test.ts +0 -788
- package/dist/resources/extensions/gsd/tests/detection.test.ts +0 -398
- package/dist/resources/extensions/gsd/tests/diff-context.test.ts +0 -136
- package/dist/resources/extensions/gsd/tests/discuss-prompt.test.ts +0 -15
- package/dist/resources/extensions/gsd/tests/dispatch-guard.test.ts +0 -128
- package/dist/resources/extensions/gsd/tests/dispatch-missing-task-plans.test.ts +0 -132
- package/dist/resources/extensions/gsd/tests/dispatch-stall-guard.test.ts +0 -126
- package/dist/resources/extensions/gsd/tests/doctor-environment.test.ts +0 -314
- package/dist/resources/extensions/gsd/tests/doctor-fixlevel.test.ts +0 -245
- package/dist/resources/extensions/gsd/tests/doctor-git.test.ts +0 -344
- package/dist/resources/extensions/gsd/tests/doctor-proactive.test.ts +0 -278
- package/dist/resources/extensions/gsd/tests/doctor-providers.test.ts +0 -298
- package/dist/resources/extensions/gsd/tests/doctor-runtime.test.ts +0 -302
- package/dist/resources/extensions/gsd/tests/doctor.test.ts +0 -652
- package/dist/resources/extensions/gsd/tests/draft-promotion.test.ts +0 -169
- package/dist/resources/extensions/gsd/tests/exit-command.test.ts +0 -50
- package/dist/resources/extensions/gsd/tests/export-html-all.test.ts +0 -105
- package/dist/resources/extensions/gsd/tests/export-html-enhancements.test.ts +0 -378
- package/dist/resources/extensions/gsd/tests/extension-selector-separator.test.ts +0 -144
- package/dist/resources/extensions/gsd/tests/feature-branch-lifecycle-integration.test.ts +0 -424
- package/dist/resources/extensions/gsd/tests/git-self-heal.test.ts +0 -131
- package/dist/resources/extensions/gsd/tests/git-service.test.ts +0 -1172
- package/dist/resources/extensions/gsd/tests/gsd-db.test.ts +0 -353
- package/dist/resources/extensions/gsd/tests/gsd-inspect.test.ts +0 -125
- package/dist/resources/extensions/gsd/tests/gsd-tools.test.ts +0 -326
- package/dist/resources/extensions/gsd/tests/headless-answers.test.ts +0 -340
- package/dist/resources/extensions/gsd/tests/headless-query.test.ts +0 -162
- package/dist/resources/extensions/gsd/tests/idle-recovery.test.ts +0 -485
- package/dist/resources/extensions/gsd/tests/in-flight-tool-tracking.test.ts +0 -32
- package/dist/resources/extensions/gsd/tests/init-wizard.test.ts +0 -197
- package/dist/resources/extensions/gsd/tests/integration/headless-command.ts +0 -534
- package/dist/resources/extensions/gsd/tests/integration-edge.test.ts +0 -228
- package/dist/resources/extensions/gsd/tests/integration-lifecycle.test.ts +0 -277
- package/dist/resources/extensions/gsd/tests/integration-mixed-milestones.test.ts +0 -523
- package/dist/resources/extensions/gsd/tests/key-manager.test.ts +0 -414
- package/dist/resources/extensions/gsd/tests/knowledge.test.ts +0 -161
- package/dist/resources/extensions/gsd/tests/loop-regression.test.ts +0 -839
- package/dist/resources/extensions/gsd/tests/manifest-status.test.ts +0 -283
- package/dist/resources/extensions/gsd/tests/marketplace-test-fixtures.ts +0 -91
- package/dist/resources/extensions/gsd/tests/md-importer.test.ts +0 -410
- package/dist/resources/extensions/gsd/tests/mechanical-completion.test.ts +0 -356
- package/dist/resources/extensions/gsd/tests/memory-extractor.test.ts +0 -180
- package/dist/resources/extensions/gsd/tests/memory-leak-guards.test.ts +0 -91
- package/dist/resources/extensions/gsd/tests/memory-store.test.ts +0 -345
- package/dist/resources/extensions/gsd/tests/metrics.test.ts +0 -253
- package/dist/resources/extensions/gsd/tests/migrate-command.test.ts +0 -369
- package/dist/resources/extensions/gsd/tests/migrate-parser.test.ts +0 -757
- package/dist/resources/extensions/gsd/tests/migrate-transformer.test.ts +0 -635
- package/dist/resources/extensions/gsd/tests/migrate-validator-parsers.test.ts +0 -414
- package/dist/resources/extensions/gsd/tests/migrate-writer-integration.test.ts +0 -303
- package/dist/resources/extensions/gsd/tests/migrate-writer.test.ts +0 -398
- package/dist/resources/extensions/gsd/tests/milestone-transition-worktree.test.ts +0 -147
- package/dist/resources/extensions/gsd/tests/model-cost-table.test.ts +0 -69
- package/dist/resources/extensions/gsd/tests/model-isolation.test.ts +0 -157
- package/dist/resources/extensions/gsd/tests/model-router.test.ts +0 -167
- package/dist/resources/extensions/gsd/tests/must-have-parser.test.ts +0 -291
- package/dist/resources/extensions/gsd/tests/namespaced-registry.test.ts +0 -1027
- package/dist/resources/extensions/gsd/tests/namespaced-resolver.test.ts +0 -671
- package/dist/resources/extensions/gsd/tests/native-has-changes-cache.test.ts +0 -61
- package/dist/resources/extensions/gsd/tests/next-milestone-id.test.ts +0 -23
- package/dist/resources/extensions/gsd/tests/none-mode-gates.test.ts +0 -114
- package/dist/resources/extensions/gsd/tests/notifications.test.ts +0 -67
- package/dist/resources/extensions/gsd/tests/overrides.test.ts +0 -131
- package/dist/resources/extensions/gsd/tests/parallel-budget-atomicity.test.ts +0 -331
- package/dist/resources/extensions/gsd/tests/parallel-crash-recovery.test.ts +0 -298
- package/dist/resources/extensions/gsd/tests/parallel-merge.test.ts +0 -468
- package/dist/resources/extensions/gsd/tests/parallel-orchestration.test.ts +0 -685
- package/dist/resources/extensions/gsd/tests/parallel-worker-monitoring.test.ts +0 -171
- package/dist/resources/extensions/gsd/tests/parallel-workers-multi-milestone-e2e.test.ts +0 -354
- package/dist/resources/extensions/gsd/tests/park-edge-cases.test.ts +0 -276
- package/dist/resources/extensions/gsd/tests/park-milestone.test.ts +0 -401
- package/dist/resources/extensions/gsd/tests/parsers.test.ts +0 -1704
- package/dist/resources/extensions/gsd/tests/plan-milestone.test.ts +0 -133
- package/dist/resources/extensions/gsd/tests/plan-quality-validator.test.ts +0 -363
- package/dist/resources/extensions/gsd/tests/plan-slice-prompt.test.ts +0 -42
- package/dist/resources/extensions/gsd/tests/plugin-importer-live.test.ts +0 -481
- package/dist/resources/extensions/gsd/tests/plugin-importer.test.ts +0 -1383
- package/dist/resources/extensions/gsd/tests/post-unit-hooks.test.ts +0 -337
- package/dist/resources/extensions/gsd/tests/preferences.test.ts +0 -276
- package/dist/resources/extensions/gsd/tests/progress-score.test.ts +0 -206
- package/dist/resources/extensions/gsd/tests/prompt-budget-enforcement.test.ts +0 -464
- package/dist/resources/extensions/gsd/tests/prompt-cache-optimizer.test.ts +0 -314
- package/dist/resources/extensions/gsd/tests/prompt-compressor.test.ts +0 -529
- package/dist/resources/extensions/gsd/tests/prompt-db.test.ts +0 -385
- package/dist/resources/extensions/gsd/tests/prompt-ordering.test.ts +0 -296
- package/dist/resources/extensions/gsd/tests/provider-errors.test.ts +0 -338
- package/dist/resources/extensions/gsd/tests/queue-draft-detection.test.ts +0 -126
- package/dist/resources/extensions/gsd/tests/queue-order.test.ts +0 -204
- package/dist/resources/extensions/gsd/tests/queue-reorder-e2e.test.ts +0 -282
- package/dist/resources/extensions/gsd/tests/reassess-detection.test.ts +0 -154
- package/dist/resources/extensions/gsd/tests/reassess-prompt.test.ts +0 -145
- package/dist/resources/extensions/gsd/tests/regex-hardening.test.ts +0 -281
- package/dist/resources/extensions/gsd/tests/remote-questions.test.ts +0 -642
- package/dist/resources/extensions/gsd/tests/remote-status.test.ts +0 -99
- package/dist/resources/extensions/gsd/tests/replan-slice.test.ts +0 -538
- package/dist/resources/extensions/gsd/tests/requirements.test.ts +0 -106
- package/dist/resources/extensions/gsd/tests/roadmap-slices.test.ts +0 -66
- package/dist/resources/extensions/gsd/tests/routing-history.test.ts +0 -240
- package/dist/resources/extensions/gsd/tests/run-uat.test.ts +0 -416
- package/dist/resources/extensions/gsd/tests/secure-env-collect.test.ts +0 -185
- package/dist/resources/extensions/gsd/tests/semantic-chunker.test.ts +0 -426
- package/dist/resources/extensions/gsd/tests/session-lock.test.ts +0 -315
- package/dist/resources/extensions/gsd/tests/skill-lifecycle.test.ts +0 -126
- package/dist/resources/extensions/gsd/tests/smart-entry-draft.test.ts +0 -123
- package/dist/resources/extensions/gsd/tests/stale-worktree-cwd.test.ts +0 -142
- package/dist/resources/extensions/gsd/tests/stop-auto-remote.test.ts +0 -156
- package/dist/resources/extensions/gsd/tests/structured-data-formatter.test.ts +0 -365
- package/dist/resources/extensions/gsd/tests/summary-distiller.test.ts +0 -323
- package/dist/resources/extensions/gsd/tests/test-helpers.ts +0 -61
- package/dist/resources/extensions/gsd/tests/token-counter.test.ts +0 -129
- package/dist/resources/extensions/gsd/tests/token-optimization-benchmark.test.ts +0 -1272
- package/dist/resources/extensions/gsd/tests/token-optimization-prefs.test.ts +0 -164
- package/dist/resources/extensions/gsd/tests/token-profile.test.ts +0 -268
- package/dist/resources/extensions/gsd/tests/token-savings.test.ts +0 -366
- package/dist/resources/extensions/gsd/tests/triage-dispatch.test.ts +0 -340
- package/dist/resources/extensions/gsd/tests/triage-resolution.test.ts +0 -416
- package/dist/resources/extensions/gsd/tests/undo.test.ts +0 -136
- package/dist/resources/extensions/gsd/tests/unique-milestone-ids.test.ts +0 -219
- package/dist/resources/extensions/gsd/tests/unit-runtime.test.ts +0 -258
- package/dist/resources/extensions/gsd/tests/update-command.test.ts +0 -67
- package/dist/resources/extensions/gsd/tests/validate-directory.test.ts +0 -222
- package/dist/resources/extensions/gsd/tests/validate-milestone.test.ts +0 -375
- package/dist/resources/extensions/gsd/tests/verification-evidence.test.ts +0 -745
- package/dist/resources/extensions/gsd/tests/verification-gate.test.ts +0 -1208
- package/dist/resources/extensions/gsd/tests/visualizer-critical-path.test.ts +0 -145
- package/dist/resources/extensions/gsd/tests/visualizer-data.test.ts +0 -446
- package/dist/resources/extensions/gsd/tests/visualizer-overlay.test.ts +0 -237
- package/dist/resources/extensions/gsd/tests/visualizer-views.test.ts +0 -718
- package/dist/resources/extensions/gsd/tests/worker-registry.test.ts +0 -148
- package/dist/resources/extensions/gsd/tests/workflow-templates.test.ts +0 -173
- package/dist/resources/extensions/gsd/tests/workspace-index.test.ts +0 -38
- package/dist/resources/extensions/gsd/tests/worktree-bugfix.test.ts +0 -120
- package/dist/resources/extensions/gsd/tests/worktree-e2e.test.ts +0 -244
- package/dist/resources/extensions/gsd/tests/worktree-integration.test.ts +0 -207
- package/dist/resources/extensions/gsd/tests/worktree-manager.test.ts +0 -141
- package/dist/resources/extensions/gsd/tests/worktree-post-create-hook.test.ts +0 -165
- package/dist/resources/extensions/gsd/tests/worktree.test.ts +0 -171
- package/dist/resources/extensions/gsd/tests/write-gate.test.ts +0 -211
- package/dist/resources/extensions/gsd/token-counter.ts +0 -65
- package/dist/resources/extensions/gsd/triage-resolution.ts +0 -284
- package/dist/resources/extensions/gsd/triage-ui.ts +0 -175
- package/dist/resources/extensions/gsd/types.ts +0 -425
- package/dist/resources/extensions/gsd/undo.ts +0 -223
- package/dist/resources/extensions/gsd/unit-id.ts +0 -14
- package/dist/resources/extensions/gsd/unit-runtime.ts +0 -192
- package/dist/resources/extensions/gsd/validate-directory.ts +0 -164
- package/dist/resources/extensions/gsd/verification-evidence.ts +0 -188
- package/dist/resources/extensions/gsd/verification-gate.ts +0 -643
- package/dist/resources/extensions/gsd/visualizer-data.ts +0 -866
- package/dist/resources/extensions/gsd/visualizer-overlay.ts +0 -566
- package/dist/resources/extensions/gsd/visualizer-views.ts +0 -1171
- package/dist/resources/extensions/gsd/workflow-templates.ts +0 -241
- package/dist/resources/extensions/gsd/workspace-index.ts +0 -217
- package/dist/resources/extensions/gsd/worktree-command.ts +0 -807
- package/dist/resources/extensions/gsd/worktree-manager.ts +0 -449
- package/dist/resources/extensions/gsd/worktree.ts +0 -257
- package/dist/resources/extensions/mac-tools/index.ts +0 -852
- package/dist/resources/extensions/mcp-client/index.ts +0 -459
- package/dist/resources/extensions/mcporter/extension-manifest.json +0 -12
- package/dist/resources/extensions/remote-questions/config.ts +0 -83
- package/dist/resources/extensions/remote-questions/discord-adapter.ts +0 -148
- package/dist/resources/extensions/remote-questions/format.ts +0 -315
- package/dist/resources/extensions/remote-questions/http-client.ts +0 -76
- package/dist/resources/extensions/remote-questions/manager.ts +0 -184
- package/dist/resources/extensions/remote-questions/notify.ts +0 -90
- package/dist/resources/extensions/remote-questions/remote-command.ts +0 -457
- package/dist/resources/extensions/remote-questions/slack-adapter.ts +0 -141
- package/dist/resources/extensions/remote-questions/status.ts +0 -31
- package/dist/resources/extensions/remote-questions/store.ts +0 -81
- package/dist/resources/extensions/remote-questions/telegram-adapter.ts +0 -149
- package/dist/resources/extensions/remote-questions/types.ts +0 -102
- package/dist/resources/extensions/search-the-web/cache.ts +0 -78
- package/dist/resources/extensions/search-the-web/command-search-provider.ts +0 -101
- package/dist/resources/extensions/search-the-web/format.ts +0 -258
- package/dist/resources/extensions/search-the-web/http.ts +0 -238
- package/dist/resources/extensions/search-the-web/index.ts +0 -65
- package/dist/resources/extensions/search-the-web/native-search.ts +0 -193
- package/dist/resources/extensions/search-the-web/provider.ts +0 -148
- package/dist/resources/extensions/search-the-web/tavily.ts +0 -116
- package/dist/resources/extensions/search-the-web/tool-fetch-page.ts +0 -589
- package/dist/resources/extensions/search-the-web/tool-llm-context.ts +0 -608
- package/dist/resources/extensions/search-the-web/tool-search.ts +0 -649
- package/dist/resources/extensions/search-the-web/url-utils.ts +0 -125
- package/dist/resources/extensions/shared/confirm-ui.ts +0 -126
- package/dist/resources/extensions/shared/frontmatter.ts +0 -117
- package/dist/resources/extensions/shared/interview-ui.ts +0 -613
- package/dist/resources/extensions/shared/next-action-ui.ts +0 -212
- package/dist/resources/extensions/shared/sanitize.ts +0 -19
- package/dist/resources/extensions/shared/terminal.ts +0 -23
- package/dist/resources/extensions/shared/tests/format-utils.test.ts +0 -153
- package/dist/resources/extensions/shared/ui.ts +0 -400
- package/dist/resources/extensions/shared/wizard-ui.ts +0 -551
- package/dist/resources/extensions/slash-commands/audit.ts +0 -88
- package/dist/resources/extensions/slash-commands/clear.ts +0 -10
- package/dist/resources/extensions/slash-commands/create-extension.ts +0 -297
- package/dist/resources/extensions/slash-commands/create-slash-command.ts +0 -234
- package/dist/resources/extensions/slash-commands/index.ts +0 -12
- package/dist/resources/extensions/subagent/agents.ts +0 -126
- package/dist/resources/extensions/subagent/index.ts +0 -1121
- package/dist/resources/extensions/subagent/isolation.ts +0 -501
- package/dist/resources/extensions/subagent/worker-registry.ts +0 -99
- package/dist/resources/extensions/ttsr/index.ts +0 -168
- package/dist/resources/extensions/ttsr/rule-loader.ts +0 -74
- package/dist/resources/extensions/ttsr/ttsr-manager.ts +0 -456
- package/dist/resources/extensions/universal-config/discovery.ts +0 -104
- package/dist/resources/extensions/universal-config/format.ts +0 -191
- package/dist/resources/extensions/universal-config/index.ts +0 -120
- package/dist/resources/extensions/universal-config/scanners.ts +0 -642
- package/dist/resources/extensions/universal-config/tests/discovery.test.ts +0 -119
- package/dist/resources/extensions/universal-config/tests/format.test.ts +0 -127
- package/dist/resources/extensions/universal-config/tests/scanners.test.ts +0 -456
- package/dist/resources/extensions/universal-config/tools.ts +0 -60
- package/dist/resources/extensions/universal-config/types.ts +0 -135
- package/dist/resources/extensions/voice/index.ts +0 -272
- package/dist/resources/skills/create-gsd-extension/templates/extension-skeleton.ts +0 -51
- package/dist/resources/skills/create-gsd-extension/templates/stateful-tool-skeleton.ts +0 -143
- package/src/resources/extensions/mcporter/extension-manifest.json +0 -12
|
@@ -23,30 +23,24 @@ import type {
|
|
|
23
23
|
ExtensionCommandContext,
|
|
24
24
|
ExtensionContext,
|
|
25
25
|
} from "@gsd/pi-coding-agent";
|
|
26
|
-
import {
|
|
26
|
+
import {
|
|
27
|
+
createBashTool,
|
|
28
|
+
createEditTool,
|
|
29
|
+
createReadTool,
|
|
30
|
+
createWriteTool,
|
|
31
|
+
importExtensionModule,
|
|
32
|
+
isToolCallEventType,
|
|
33
|
+
} from "@gsd/pi-coding-agent";
|
|
27
34
|
import { Type } from "@sinclair/typebox";
|
|
28
35
|
|
|
29
36
|
import { debugLog, debugTime } from "./debug-logger.js";
|
|
30
|
-
import {
|
|
37
|
+
import { registerLazyGSDCommand } from "./commands-bootstrap.js";
|
|
31
38
|
import { loadToolApiKeys } from "./commands-config.js";
|
|
32
39
|
import { registerExitCommand } from "./exit-command.js";
|
|
33
|
-
import {
|
|
34
|
-
import { getActiveAutoWorktreeContext } from "./auto-worktree.js";
|
|
40
|
+
import { registerLazyWorktreeCommands } from "./worktree-command-bootstrap.js";
|
|
35
41
|
import { saveFile, formatContinue, loadFile, parseContinue, parseSummary, loadActiveOverrides, formatOverridesSection } from "./files.js";
|
|
36
42
|
import { loadPrompt } from "./prompt-loader.js";
|
|
37
|
-
import { deriveState } from "./state.js";
|
|
38
|
-
import { isAutoActive, isAutoPaused, handleAgentEnd, pauseAuto, getAutoDashboardData, getAutoModeStartModel, markToolStart, markToolEnd } from "./auto.js";
|
|
39
43
|
import { saveActivityLog } from "./activity-log.js";
|
|
40
|
-
import { checkAutoStartAfterDiscuss, getDiscussionMilestoneId, findMilestoneIds, nextMilestoneId } from "./guided-flow.js";
|
|
41
|
-
import { GSDDashboardOverlay } from "./dashboard-overlay.js";
|
|
42
|
-
import {
|
|
43
|
-
loadEffectiveGSDPreferences,
|
|
44
|
-
renderPreferencesForSystemPrompt,
|
|
45
|
-
resolveAllSkillReferences,
|
|
46
|
-
resolveModelWithFallbacksForUnit,
|
|
47
|
-
getNextFallbackModel,
|
|
48
|
-
isTransientNetworkError,
|
|
49
|
-
} from "./preferences.js";
|
|
50
44
|
import { hasSkillSnapshot, detectNewSkills, formatSkillsXml } from "./skill-discovery.js";
|
|
51
45
|
import {
|
|
52
46
|
resolveSlicePath, resolveSliceFile, resolveTaskFile, resolveTaskFiles, resolveTasksDir,
|
|
@@ -60,19 +54,37 @@ import { existsSync, readFileSync } from "node:fs";
|
|
|
60
54
|
import { homedir } from "node:os";
|
|
61
55
|
import { shortcutDesc } from "../shared/mod.js";
|
|
62
56
|
import { Text } from "@gsd/pi-tui";
|
|
63
|
-
import { pauseAutoForProviderError, classifyProviderError } from "./provider-error-pause.js";
|
|
64
57
|
import { toPosixPath } from "../shared/mod.js";
|
|
65
|
-
import { isParallelActive, shutdownParallel } from "./parallel-orchestrator.js";
|
|
66
58
|
import { DEFAULT_BASH_TIMEOUT_SECS } from "./constants.js";
|
|
67
59
|
import { getErrorMessage } from "./error-utils.js";
|
|
68
60
|
|
|
61
|
+
function memoizeImport<T>(loader: () => Promise<T>): () => Promise<T> {
|
|
62
|
+
let promise: Promise<T> | null = null;
|
|
63
|
+
return () => {
|
|
64
|
+
if (!promise) {
|
|
65
|
+
promise = loader();
|
|
66
|
+
}
|
|
67
|
+
return promise;
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const loadAutoModule = memoizeImport(() => importExtensionModule<typeof import("./auto.js")>(import.meta.url, "./auto.js"));
|
|
72
|
+
const loadStateModule = memoizeImport(() => importExtensionModule<typeof import("./state.js")>(import.meta.url, "./state.js"));
|
|
73
|
+
const loadGuidedFlowModule = memoizeImport(() => importExtensionModule<typeof import("./guided-flow.js")>(import.meta.url, "./guided-flow.js"));
|
|
74
|
+
const loadPreferencesModule = memoizeImport(() => importExtensionModule<typeof import("./preferences.js")>(import.meta.url, "./preferences.js"));
|
|
75
|
+
const loadDashboardOverlayModule = memoizeImport(() => importExtensionModule<typeof import("./dashboard-overlay.js")>(import.meta.url, "./dashboard-overlay.js"));
|
|
76
|
+
const loadWorktreeCommandModule = memoizeImport(() => importExtensionModule<typeof import("./worktree-command.js")>(import.meta.url, "./worktree-command.js"));
|
|
77
|
+
const loadAutoWorktreeModule = memoizeImport(() => importExtensionModule<typeof import("./auto-worktree.js")>(import.meta.url, "./auto-worktree.js"));
|
|
78
|
+
const loadProviderErrorPauseModule = memoizeImport(() => importExtensionModule<typeof import("./provider-error-pause.js")>(import.meta.url, "./provider-error-pause.js"));
|
|
79
|
+
const loadParallelOrchestratorModule = memoizeImport(() => importExtensionModule<typeof import("./parallel-orchestrator.js")>(import.meta.url, "./parallel-orchestrator.js"));
|
|
80
|
+
|
|
69
81
|
/**
|
|
70
82
|
* Ensure the GSD database is available, auto-initializing if needed.
|
|
71
83
|
* Returns true if the DB is ready, false if initialization failed.
|
|
72
84
|
*/
|
|
73
85
|
async function ensureDbAvailable(): Promise<boolean> {
|
|
74
86
|
try {
|
|
75
|
-
const db = await import("./gsd-db.js");
|
|
87
|
+
const db = await importExtensionModule<typeof import("./gsd-db.js")>(import.meta.url, "./gsd-db.js");
|
|
76
88
|
if (db.isDbAvailable()) return true;
|
|
77
89
|
|
|
78
90
|
// Auto-initialize: open (and create if needed) the DB at the standard path
|
|
@@ -212,8 +224,8 @@ const GSD_LOGO_LINES = [
|
|
|
212
224
|
];
|
|
213
225
|
|
|
214
226
|
export default function (pi: ExtensionAPI) {
|
|
215
|
-
|
|
216
|
-
|
|
227
|
+
registerLazyGSDCommand(pi);
|
|
228
|
+
registerLazyWorktreeCommands(pi);
|
|
217
229
|
registerExitCommand(pi);
|
|
218
230
|
|
|
219
231
|
// ── EPIPE guard — prevent crash when stdout/stderr pipe closes unexpectedly ──
|
|
@@ -223,11 +235,22 @@ export default function (pi: ExtensionAPI) {
|
|
|
223
235
|
// chance to persist state and pause instead of crashing (see issue #739).
|
|
224
236
|
if (!process.listeners("uncaughtException").some(l => l.name === "_gsdEpipeGuard")) {
|
|
225
237
|
const _gsdEpipeGuard = (err: Error): void => {
|
|
226
|
-
|
|
238
|
+
const code = (err as NodeJS.ErrnoException).code;
|
|
239
|
+
if (code === "EPIPE") {
|
|
227
240
|
// Pipe closed — nothing we can write; just exit cleanly
|
|
228
241
|
process.exit(0);
|
|
229
242
|
}
|
|
230
|
-
//
|
|
243
|
+
// ECOMPROMISED: proper-lockfile's update timer detected mtime drift (system
|
|
244
|
+
// sleep, heavy event loop stall, or filesystem precision mismatch on Node.js
|
|
245
|
+
// v25+). The onCompromised callback already set _lockCompromised = true, but
|
|
246
|
+
// due to a subtle interaction between the synchronous fs adapter and the
|
|
247
|
+
// setTimeout boundary, the error can still propagate here as an uncaught
|
|
248
|
+
// exception. Exit cleanly so the process.once("exit") handler removes the
|
|
249
|
+
// lock directory — allowing the next session to acquire cleanly (#1322).
|
|
250
|
+
if (code === "ECOMPROMISED") {
|
|
251
|
+
process.exit(1);
|
|
252
|
+
}
|
|
253
|
+
// Re-throw anything that isn't EPIPE or ECOMPROMISED so real crashes still surface
|
|
231
254
|
throw err;
|
|
232
255
|
};
|
|
233
256
|
process.on("uncaughtException", _gsdEpipeGuard);
|
|
@@ -358,7 +381,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
358
381
|
}
|
|
359
382
|
|
|
360
383
|
try {
|
|
361
|
-
const { saveDecisionToDb } = await import("./db-writer.js");
|
|
384
|
+
const { saveDecisionToDb } = await importExtensionModule<typeof import("./db-writer.js")>(import.meta.url, "./db-writer.js");
|
|
362
385
|
const { id } = await saveDecisionToDb(
|
|
363
386
|
{
|
|
364
387
|
scope: params.scope,
|
|
@@ -420,7 +443,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
420
443
|
|
|
421
444
|
try {
|
|
422
445
|
// Verify requirement exists
|
|
423
|
-
const db = await import("./gsd-db.js");
|
|
446
|
+
const db = await importExtensionModule<typeof import("./gsd-db.js")>(import.meta.url, "./gsd-db.js");
|
|
424
447
|
const existing = db.getRequirementById(params.id);
|
|
425
448
|
if (!existing) {
|
|
426
449
|
return {
|
|
@@ -430,7 +453,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
430
453
|
};
|
|
431
454
|
}
|
|
432
455
|
|
|
433
|
-
const { updateRequirementInDb } = await import("./db-writer.js");
|
|
456
|
+
const { updateRequirementInDb } = await importExtensionModule<typeof import("./db-writer.js")>(import.meta.url, "./db-writer.js");
|
|
434
457
|
const updates: Record<string, string | undefined> = {};
|
|
435
458
|
if (params.status !== undefined) updates.status = params.status;
|
|
436
459
|
if (params.validation !== undefined) updates.validation = params.validation;
|
|
@@ -508,7 +531,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
508
531
|
relativePath = `milestones/${params.milestone_id}/${params.milestone_id}-${params.artifact_type}.md`;
|
|
509
532
|
}
|
|
510
533
|
|
|
511
|
-
const { saveArtifactToDb } = await import("./db-writer.js");
|
|
534
|
+
const { saveArtifactToDb } = await importExtensionModule<typeof import("./db-writer.js")>(import.meta.url, "./db-writer.js");
|
|
512
535
|
await saveArtifactToDb(
|
|
513
536
|
{
|
|
514
537
|
path: relativePath,
|
|
@@ -563,6 +586,10 @@ export default function (pi: ExtensionAPI) {
|
|
|
563
586
|
parameters: Type.Object({}),
|
|
564
587
|
async execute(_toolCallId, _params, _signal, _onUpdate, _ctx) {
|
|
565
588
|
try {
|
|
589
|
+
const [{ findMilestoneIds, nextMilestoneId }, { loadEffectiveGSDPreferences }] = await Promise.all([
|
|
590
|
+
loadGuidedFlowModule(),
|
|
591
|
+
loadPreferencesModule(),
|
|
592
|
+
]);
|
|
566
593
|
const basePath = process.cwd();
|
|
567
594
|
const existingIds = findMilestoneIds(basePath);
|
|
568
595
|
const uniqueEnabled = !!loadEffectiveGSDPreferences()?.preferences?.unique_milestone_ids;
|
|
@@ -610,15 +637,15 @@ export default function (pi: ExtensionAPI) {
|
|
|
610
637
|
|
|
611
638
|
// Always-on health widget — ambient system health signal below the editor
|
|
612
639
|
try {
|
|
613
|
-
const { initHealthWidget } = await import("./health-widget.js");
|
|
640
|
+
const { initHealthWidget } = await importExtensionModule<typeof import("./health-widget.js")>(import.meta.url, "./health-widget.js");
|
|
614
641
|
initHealthWidget(ctx);
|
|
615
642
|
} catch { /* non-fatal — widget is best-effort */ }
|
|
616
643
|
|
|
617
644
|
// Notify remote questions status if configured
|
|
618
645
|
try {
|
|
619
646
|
const [{ getRemoteConfigStatus }, { getLatestPromptSummary }] = await Promise.all([
|
|
620
|
-
import("../remote-questions/config.js"),
|
|
621
|
-
import("../remote-questions/status.js"),
|
|
647
|
+
importExtensionModule<typeof import("../remote-questions/config.js")>(import.meta.url, "../remote-questions/config.js"),
|
|
648
|
+
importExtensionModule<typeof import("../remote-questions/status.js")>(import.meta.url, "../remote-questions/status.js"),
|
|
622
649
|
]);
|
|
623
650
|
const status = getRemoteConfigStatus();
|
|
624
651
|
const latest = getLatestPromptSummary();
|
|
@@ -641,6 +668,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
641
668
|
return;
|
|
642
669
|
}
|
|
643
670
|
|
|
671
|
+
const { GSDDashboardOverlay } = await loadDashboardOverlayModule();
|
|
644
672
|
const result = await ctx.ui.custom<void>(
|
|
645
673
|
(tui, theme, _kb, done) => {
|
|
646
674
|
return new GSDDashboardOverlay(tui, theme, () => done());
|
|
@@ -658,7 +686,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
658
686
|
|
|
659
687
|
// Fallback for RPC mode where ctx.ui.custom() returns undefined.
|
|
660
688
|
if (result === undefined) {
|
|
661
|
-
const { fireStatusViaCommand } = await import("./commands.js");
|
|
689
|
+
const { fireStatusViaCommand } = await importExtensionModule<typeof import("./commands.js")>(import.meta.url, "./commands.js");
|
|
662
690
|
await fireStatusViaCommand(ctx);
|
|
663
691
|
}
|
|
664
692
|
},
|
|
@@ -670,6 +698,8 @@ export default function (pi: ExtensionAPI) {
|
|
|
670
698
|
|
|
671
699
|
const stopContextTimer = debugTime("context-inject");
|
|
672
700
|
const systemContent = loadPrompt("system");
|
|
701
|
+
const { loadEffectiveGSDPreferences, resolveAllSkillReferences, renderPreferencesForSystemPrompt } =
|
|
702
|
+
await loadPreferencesModule();
|
|
673
703
|
const loadedPreferences = loadEffectiveGSDPreferences();
|
|
674
704
|
let preferenceBlock = "";
|
|
675
705
|
if (loadedPreferences) {
|
|
@@ -703,7 +733,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
703
733
|
// Inject auto-learned project memories
|
|
704
734
|
let memoryBlock = "";
|
|
705
735
|
try {
|
|
706
|
-
const { getActiveMemoriesRanked, formatMemoriesForPrompt } = await import("./memory-store.js");
|
|
736
|
+
const { getActiveMemoriesRanked, formatMemoriesForPrompt } = await importExtensionModule<typeof import("./memory-store.js")>(import.meta.url, "./memory-store.js");
|
|
707
737
|
const memories = getActiveMemoriesRanked(30);
|
|
708
738
|
if (memories.length > 0) {
|
|
709
739
|
const formatted = formatMemoriesForPrompt(memories, 2000);
|
|
@@ -733,6 +763,10 @@ export default function (pi: ExtensionAPI) {
|
|
|
733
763
|
|
|
734
764
|
// Worktree context — override the static CWD in the system prompt
|
|
735
765
|
let worktreeBlock = "";
|
|
766
|
+
const [{ getActiveWorktreeName, getWorktreeOriginalCwd }, { getActiveAutoWorktreeContext }] = await Promise.all([
|
|
767
|
+
loadWorktreeCommandModule(),
|
|
768
|
+
loadAutoWorktreeModule(),
|
|
769
|
+
]);
|
|
736
770
|
const worktreeName = getActiveWorktreeName();
|
|
737
771
|
const worktreeMainCwd = getWorktreeOriginalCwd();
|
|
738
772
|
const autoWorktree = getActiveAutoWorktreeContext();
|
|
@@ -796,9 +830,31 @@ export default function (pi: ExtensionAPI) {
|
|
|
796
830
|
|
|
797
831
|
// ── agent_end: auto-mode advancement or auto-start after discuss ───────────
|
|
798
832
|
pi.on("agent_end", async (event, ctx: ExtensionContext) => {
|
|
833
|
+
const [
|
|
834
|
+
{
|
|
835
|
+
isAutoActive,
|
|
836
|
+
pauseAuto,
|
|
837
|
+
getAutoDashboardData,
|
|
838
|
+
getAutoModeStartModel,
|
|
839
|
+
handleAgentEnd,
|
|
840
|
+
},
|
|
841
|
+
{ checkAutoStartAfterDiscuss },
|
|
842
|
+
{
|
|
843
|
+
isTransientNetworkError,
|
|
844
|
+
resolveModelWithFallbacksForUnit,
|
|
845
|
+
getNextFallbackModel,
|
|
846
|
+
},
|
|
847
|
+
{ classifyProviderError, pauseAutoForProviderError },
|
|
848
|
+
] = await Promise.all([
|
|
849
|
+
loadAutoModule(),
|
|
850
|
+
loadGuidedFlowModule(),
|
|
851
|
+
loadPreferencesModule(),
|
|
852
|
+
loadProviderErrorPauseModule(),
|
|
853
|
+
]);
|
|
854
|
+
|
|
799
855
|
// Clean up quick-task branch if one just completed (#1269)
|
|
800
856
|
try {
|
|
801
|
-
const { cleanupQuickBranch } = await import("./quick.js");
|
|
857
|
+
const { cleanupQuickBranch } = await importExtensionModule<typeof import("./quick.js")>(import.meta.url, "./quick.js");
|
|
802
858
|
cleanupQuickBranch();
|
|
803
859
|
} catch { /* non-fatal */ }
|
|
804
860
|
|
|
@@ -1009,6 +1065,11 @@ export default function (pi: ExtensionAPI) {
|
|
|
1009
1065
|
|
|
1010
1066
|
// ── session_before_compact ────────────────────────────────────────────────
|
|
1011
1067
|
pi.on("session_before_compact", async (_event, _ctx: ExtensionContext) => {
|
|
1068
|
+
const [{ isAutoActive, isAutoPaused }, { deriveState }] = await Promise.all([
|
|
1069
|
+
loadAutoModule(),
|
|
1070
|
+
loadStateModule(),
|
|
1071
|
+
]);
|
|
1072
|
+
|
|
1012
1073
|
// Block compaction during auto-mode — each unit is a fresh session
|
|
1013
1074
|
// Also block during paused state — context is valuable for the user
|
|
1014
1075
|
if (isAutoActive() || isAutoPaused()) {
|
|
@@ -1055,6 +1116,12 @@ export default function (pi: ExtensionAPI) {
|
|
|
1055
1116
|
|
|
1056
1117
|
// ── session_shutdown: save activity log on Ctrl+C / SIGTERM ─────────────
|
|
1057
1118
|
pi.on("session_shutdown", async (_event, ctx: ExtensionContext) => {
|
|
1119
|
+
const [{ isParallelActive, shutdownParallel }, { isAutoActive, isAutoPaused, getAutoDashboardData }] =
|
|
1120
|
+
await Promise.all([
|
|
1121
|
+
loadParallelOrchestratorModule(),
|
|
1122
|
+
loadAutoModule(),
|
|
1123
|
+
]);
|
|
1124
|
+
|
|
1058
1125
|
if (isParallelActive()) {
|
|
1059
1126
|
try {
|
|
1060
1127
|
await shutdownParallel(process.cwd());
|
|
@@ -1066,7 +1133,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
1066
1133
|
const cliWorktree = process.env.GSD_CLI_WORKTREE;
|
|
1067
1134
|
if (cliWorktree) {
|
|
1068
1135
|
try {
|
|
1069
|
-
const { autoCommitCurrentBranch } = await import("./worktree.js");
|
|
1136
|
+
const { autoCommitCurrentBranch } = await importExtensionModule<typeof import("./worktree.js")>(import.meta.url, "./worktree.js");
|
|
1070
1137
|
const msg = autoCommitCurrentBranch(process.cwd(), "session-end", cliWorktree);
|
|
1071
1138
|
if (msg) {
|
|
1072
1139
|
ctx.ui.notify(`Auto-committed worktree ${cliWorktree} before exit.`, "info");
|
|
@@ -1091,6 +1158,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
1091
1158
|
// CONTEXT.md can be written.
|
|
1092
1159
|
pi.on("tool_call", async (event) => {
|
|
1093
1160
|
if (!isToolCallEventType("write", event)) return;
|
|
1161
|
+
const { getDiscussionMilestoneId } = await loadGuidedFlowModule();
|
|
1094
1162
|
const result = shouldBlockContextWrite(
|
|
1095
1163
|
event.toolName,
|
|
1096
1164
|
event.input.path,
|
|
@@ -1108,6 +1176,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
1108
1176
|
pi.on("tool_result", async (event) => {
|
|
1109
1177
|
if (event.toolName !== "ask_user_questions") return;
|
|
1110
1178
|
|
|
1179
|
+
const { getDiscussionMilestoneId } = await loadGuidedFlowModule();
|
|
1111
1180
|
const milestoneId = getDiscussionMilestoneId();
|
|
1112
1181
|
// Queue flows don't set pendingAutoStart, so milestoneId may be null.
|
|
1113
1182
|
// Depth gate detection still applies — it sets per-milestone flags.
|
|
@@ -1183,11 +1252,13 @@ export default function (pi: ExtensionAPI) {
|
|
|
1183
1252
|
|
|
1184
1253
|
// ── tool_execution_start/end: track in-flight tools for idle detection ──
|
|
1185
1254
|
pi.on("tool_execution_start", async (event) => {
|
|
1255
|
+
const { isAutoActive, markToolStart } = await loadAutoModule();
|
|
1186
1256
|
if (!isAutoActive()) return;
|
|
1187
1257
|
markToolStart(event.toolCallId);
|
|
1188
1258
|
});
|
|
1189
1259
|
|
|
1190
1260
|
pi.on("tool_execution_end", async (event) => {
|
|
1261
|
+
const { markToolEnd } = await loadAutoModule();
|
|
1191
1262
|
markToolEnd(event.toolCallId);
|
|
1192
1263
|
});
|
|
1193
1264
|
}
|
|
@@ -1202,6 +1273,7 @@ async function buildGuidedExecuteContextInjection(prompt: string, basePath: stri
|
|
|
1202
1273
|
const resumeMatch = prompt.match(/Resume interrupted work\.[\s\S]*?slice\s+(S\d+)\s+of milestone\s+(M\d+(?:-[a-z0-9]{6})?)/i);
|
|
1203
1274
|
if (resumeMatch) {
|
|
1204
1275
|
const [, sliceId, milestoneId] = resumeMatch;
|
|
1276
|
+
const { deriveState } = await loadStateModule();
|
|
1205
1277
|
const state = await deriveState(basePath);
|
|
1206
1278
|
if (
|
|
1207
1279
|
state.activeMilestone?.id === milestoneId &&
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
import type { ExtensionAPI, ExtensionCommandContext } from "@gsd/pi-coding-agent";
|
|
13
|
-
import { existsSync, mkdirSync, readdirSync } from "node:fs";
|
|
13
|
+
import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync, unlinkSync } from "node:fs";
|
|
14
14
|
import { join } from "node:path";
|
|
15
15
|
import { loadPrompt } from "./prompt-loader.js";
|
|
16
16
|
import { gsdRoot } from "./paths.js";
|
|
@@ -168,6 +168,8 @@ export async function handleQuick(
|
|
|
168
168
|
slug,
|
|
169
169
|
description,
|
|
170
170
|
};
|
|
171
|
+
// Persist to disk so recovery works across session crashes (#1293).
|
|
172
|
+
persistPendingReturn(_pendingQuickBranchReturn, basePath);
|
|
171
173
|
}
|
|
172
174
|
}
|
|
173
175
|
|
|
@@ -181,15 +183,58 @@ let _pendingQuickBranchReturn: {
|
|
|
181
183
|
description: string;
|
|
182
184
|
} | null = null;
|
|
183
185
|
|
|
186
|
+
// ─── Disk Persistence ─────────────────────────────────────────────────────
|
|
187
|
+
|
|
188
|
+
/** Path to the pending quick-task return file. */
|
|
189
|
+
function pendingReturnPath(basePath: string): string {
|
|
190
|
+
return join(gsdRoot(basePath), "runtime", "quick-return.json");
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/** Write pending return state to disk. */
|
|
194
|
+
function persistPendingReturn(state: NonNullable<typeof _pendingQuickBranchReturn>, basePath: string): void {
|
|
195
|
+
const filePath = pendingReturnPath(basePath);
|
|
196
|
+
mkdirSync(join(gsdRoot(basePath), "runtime"), { recursive: true });
|
|
197
|
+
writeFileSync(filePath, JSON.stringify(state, null, 2) + "\n", "utf-8");
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/** Remove pending return file from disk. */
|
|
201
|
+
function clearPendingReturn(basePath: string): void {
|
|
202
|
+
try { unlinkSync(pendingReturnPath(basePath)); } catch { /* already gone */ }
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/** Load pending return from disk (cross-session recovery). */
|
|
206
|
+
function loadPendingReturn(basePath: string): NonNullable<typeof _pendingQuickBranchReturn> | null {
|
|
207
|
+
const filePath = pendingReturnPath(basePath);
|
|
208
|
+
if (!existsSync(filePath)) return null;
|
|
209
|
+
try {
|
|
210
|
+
return JSON.parse(readFileSync(filePath, "utf-8"));
|
|
211
|
+
} catch {
|
|
212
|
+
return null;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
184
216
|
/**
|
|
185
217
|
* Merge the quick-task branch back to the original branch and switch.
|
|
186
218
|
* Called from the agent_end handler after a quick task completes.
|
|
219
|
+
*
|
|
220
|
+
* Checks both in-memory state (same session) and disk state (cross-session
|
|
221
|
+
* recovery for crashed/interrupted sessions).
|
|
222
|
+
*
|
|
187
223
|
* Returns true if a branch return was performed.
|
|
188
224
|
*/
|
|
189
225
|
export function cleanupQuickBranch(): boolean {
|
|
190
|
-
|
|
191
|
-
|
|
226
|
+
// Prefer in-memory state; fall back to disk for cross-session recovery
|
|
227
|
+
let state = _pendingQuickBranchReturn;
|
|
228
|
+
if (!state) {
|
|
229
|
+
// Try loading from disk — handles the case where the session that
|
|
230
|
+
// started the quick task crashed before agent_end could run (#1293).
|
|
231
|
+
const basePath = process.cwd();
|
|
232
|
+
state = loadPendingReturn(basePath);
|
|
233
|
+
}
|
|
234
|
+
if (!state) return false;
|
|
235
|
+
|
|
192
236
|
_pendingQuickBranchReturn = null;
|
|
237
|
+
const { basePath, originalBranch, quickBranch, taskNum, slug, description } = state;
|
|
193
238
|
|
|
194
239
|
try {
|
|
195
240
|
// Auto-commit any remaining work
|
|
@@ -205,8 +250,12 @@ export function cleanupQuickBranch(): boolean {
|
|
|
205
250
|
|
|
206
251
|
// Clean up quick branch
|
|
207
252
|
try { runGit(basePath, ["branch", "-D", quickBranch]); } catch {}
|
|
253
|
+
|
|
254
|
+
// Clean up disk state
|
|
255
|
+
clearPendingReturn(basePath);
|
|
208
256
|
return true;
|
|
209
257
|
} catch {
|
|
258
|
+
// Cleanup failed — leave disk state for next attempt
|
|
210
259
|
return false;
|
|
211
260
|
}
|
|
212
261
|
}
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
|
|
9
9
|
import { createHash } from "node:crypto";
|
|
10
10
|
import { execFileSync } from "node:child_process";
|
|
11
|
-
import { existsSync, lstatSync, mkdirSync, readFileSync, realpathSync, symlinkSync } from "node:fs";
|
|
11
|
+
import { existsSync, lstatSync, mkdirSync, readFileSync, realpathSync, rmSync, symlinkSync } from "node:fs";
|
|
12
12
|
import { homedir } from "node:os";
|
|
13
|
-
import { join, resolve
|
|
13
|
+
import { join, resolve } from "node:path";
|
|
14
14
|
|
|
15
15
|
// ─── Repo Identity ──────────────────────────────────────────────────────────
|
|
16
16
|
|
|
@@ -35,35 +35,56 @@ function getRemoteUrl(basePath: string): string {
|
|
|
35
35
|
* Resolve the git toplevel (real root) for the given path.
|
|
36
36
|
* For worktrees this returns the main repo root, not the worktree path.
|
|
37
37
|
*/
|
|
38
|
-
function
|
|
38
|
+
function canonicalizeExistingPath(path: string): string {
|
|
39
|
+
try {
|
|
40
|
+
return realpathSync(path);
|
|
41
|
+
} catch {
|
|
42
|
+
return resolve(path);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function resolveGitCommonDir(basePath: string): string {
|
|
39
47
|
try {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
48
|
+
return execFileSync("git", ["rev-parse", "--path-format=absolute", "--git-common-dir"], {
|
|
49
|
+
cwd: basePath,
|
|
50
|
+
encoding: "utf-8",
|
|
51
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
52
|
+
timeout: 5_000,
|
|
53
|
+
}).trim();
|
|
54
|
+
} catch {
|
|
55
|
+
const raw = execFileSync("git", ["rev-parse", "--git-common-dir"], {
|
|
44
56
|
cwd: basePath,
|
|
45
57
|
encoding: "utf-8",
|
|
46
58
|
stdio: ["ignore", "pipe", "ignore"],
|
|
47
59
|
timeout: 5_000,
|
|
48
60
|
}).trim();
|
|
61
|
+
return resolve(basePath, raw);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function resolveGitRoot(basePath: string): string {
|
|
66
|
+
try {
|
|
67
|
+
const commonDir = resolveGitCommonDir(basePath);
|
|
68
|
+
const normalizedCommonDir = commonDir.replaceAll("\\", "/");
|
|
69
|
+
|
|
70
|
+
// Normal repo or worktree with shared common dir pointing at <repo>/.git.
|
|
71
|
+
if (normalizedCommonDir.endsWith("/.git")) {
|
|
72
|
+
return canonicalizeExistingPath(resolve(commonDir, ".."));
|
|
73
|
+
}
|
|
49
74
|
|
|
50
|
-
//
|
|
51
|
-
|
|
52
|
-
if (
|
|
53
|
-
|
|
54
|
-
// or /path/to/project/.git/worktrees/M001 → /path/to/project
|
|
55
|
-
const gitDir = commonDir.replace(/[/\\]worktrees[/\\][^/\\]+$/, "");
|
|
56
|
-
const mainRoot = resolve(gitDir, "..");
|
|
57
|
-
return mainRoot;
|
|
75
|
+
// Some git setups may still expose <repo>/.git/worktrees/<name>.
|
|
76
|
+
const worktreeMarker = "/.git/worktrees/";
|
|
77
|
+
if (normalizedCommonDir.includes(worktreeMarker)) {
|
|
78
|
+
return canonicalizeExistingPath(resolve(commonDir, "..", ".."));
|
|
58
79
|
}
|
|
59
80
|
|
|
60
|
-
//
|
|
61
|
-
return execFileSync("git", ["rev-parse", "--show-toplevel"], {
|
|
81
|
+
// Fallback for unusual layouts.
|
|
82
|
+
return canonicalizeExistingPath(execFileSync("git", ["rev-parse", "--show-toplevel"], {
|
|
62
83
|
cwd: basePath,
|
|
63
84
|
encoding: "utf-8",
|
|
64
85
|
stdio: ["ignore", "pipe", "ignore"],
|
|
65
86
|
timeout: 5_000,
|
|
66
|
-
}).trim();
|
|
87
|
+
}).trim());
|
|
67
88
|
} catch {
|
|
68
89
|
return resolve(basePath);
|
|
69
90
|
}
|
|
@@ -111,10 +132,17 @@ export function externalGsdRoot(basePath: string): string {
|
|
|
111
132
|
export function ensureGsdSymlink(projectPath: string): string {
|
|
112
133
|
const externalPath = externalGsdRoot(projectPath);
|
|
113
134
|
const localGsd = join(projectPath, ".gsd");
|
|
135
|
+
const inWorktree = isInsideWorktree(projectPath);
|
|
114
136
|
|
|
115
137
|
// Ensure external directory exists
|
|
116
138
|
mkdirSync(externalPath, { recursive: true });
|
|
117
139
|
|
|
140
|
+
const replaceWithSymlink = (): string => {
|
|
141
|
+
rmSync(localGsd, { recursive: true, force: true });
|
|
142
|
+
symlinkSync(externalPath, localGsd, "junction");
|
|
143
|
+
return externalPath;
|
|
144
|
+
};
|
|
145
|
+
|
|
118
146
|
if (!existsSync(localGsd)) {
|
|
119
147
|
// Nothing exists yet — create symlink
|
|
120
148
|
symlinkSync(externalPath, localGsd, "junction");
|
|
@@ -130,14 +158,20 @@ export function ensureGsdSymlink(projectPath: string): string {
|
|
|
130
158
|
if (target === externalPath) {
|
|
131
159
|
return externalPath; // correct symlink, no-op
|
|
132
160
|
}
|
|
133
|
-
//
|
|
134
|
-
//
|
|
161
|
+
// In a worktree, mismatched symlinks are always stale. Heal them so
|
|
162
|
+
// the worktree points at the same external state dir as the main repo.
|
|
163
|
+
if (inWorktree) {
|
|
164
|
+
return replaceWithSymlink();
|
|
165
|
+
}
|
|
166
|
+
// Outside worktrees, preserve custom overrides or legacy symlinks.
|
|
135
167
|
return target;
|
|
136
168
|
}
|
|
137
169
|
|
|
138
170
|
if (stat.isDirectory()) {
|
|
139
|
-
// Real directory — migration will handle this later.
|
|
140
|
-
//
|
|
171
|
+
// Real directory in the main repo — migration will handle this later.
|
|
172
|
+
// In worktrees, keep the directory in place and let syncGsdStateToWorktree
|
|
173
|
+
// refresh its contents. Replacing a git-tracked .gsd directory with a
|
|
174
|
+
// symlink makes git think tracked planning files were deleted.
|
|
141
175
|
return localGsd;
|
|
142
176
|
}
|
|
143
177
|
} catch {
|