gsd-pi 2.33.1-dev.29a8268 → 2.33.1-dev.bf822e6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +16 -0
- package/dist/resource-loader.d.ts +2 -0
- package/dist/resource-loader.js +39 -4
- 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} +25 -33
- 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 +665 -0
- package/dist/resources/extensions/gsd/auto.js +1495 -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 +1158 -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 +384 -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-ai/dist/models.generated.d.ts +5498 -3645
- package/packages/pi-ai/dist/models.generated.d.ts.map +1 -1
- package/packages/pi-ai/dist/models.generated.js +2595 -742
- package/packages/pi-ai/dist/models.generated.js.map +1 -1
- package/packages/pi-ai/src/models.generated.ts +2852 -999
- package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/agent-session.js +9 -0
- package/packages/pi-coding-agent/dist/core/agent-session.js.map +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/src/core/agent-session.ts +9 -0
- 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/packages/pi-tui/dist/utils.d.ts.map +1 -1
- package/packages/pi-tui/dist/utils.js +32 -2
- package/packages/pi-tui/dist/utils.js.map +1 -1
- package/packages/pi-tui/src/utils.ts +28 -2
- 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-verification.ts +20 -2
- package/src/resources/extensions/gsd/auto-worktree.ts +74 -2
- package/src/resources/extensions/gsd/auto.ts +11 -0
- package/src/resources/extensions/gsd/commands-bootstrap.ts +252 -0
- package/src/resources/extensions/gsd/commands.ts +39 -31
- package/src/resources/extensions/gsd/git-service.ts +7 -0
- package/src/resources/extensions/gsd/guided-flow.ts +22 -11
- package/src/resources/extensions/gsd/index.ts +93 -32
- 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 +6 -0
- package/src/resources/extensions/gsd/tests/loop-regression.test.ts +1 -4
- 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/verification-gate.test.ts +65 -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 -658
- 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 -1149
- 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 -586
- 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 -1401
- 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 -426
- 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-dispatch-loop.test.ts +0 -691
- 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/cache-staleness-regression.test.ts +0 -317
- 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 -1181
- 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 -877
- 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-parse-regression.test.ts +0 -358
- 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-regression.test.ts +0 -216
- package/dist/resources/extensions/gsd/tests/session-lock.test.ts +0 -434
- 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-sync-milestones.test.ts +0 -206
- 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/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
|
@@ -1,365 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Unit tests for structured-data-formatter.ts — compact notation for prompt injection.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { describe, it } from "node:test";
|
|
6
|
-
import assert from "node:assert/strict";
|
|
7
|
-
|
|
8
|
-
import {
|
|
9
|
-
formatDecisionCompact,
|
|
10
|
-
formatDecisionsCompact,
|
|
11
|
-
formatRequirementCompact,
|
|
12
|
-
formatRequirementsCompact,
|
|
13
|
-
formatTaskPlanCompact,
|
|
14
|
-
measureSavings,
|
|
15
|
-
} from "../structured-data-formatter.js";
|
|
16
|
-
|
|
17
|
-
// ---------------------------------------------------------------------------
|
|
18
|
-
// Fixtures
|
|
19
|
-
// ---------------------------------------------------------------------------
|
|
20
|
-
|
|
21
|
-
const sampleDecision = {
|
|
22
|
-
id: "D001",
|
|
23
|
-
when_context: "M001/S01",
|
|
24
|
-
scope: "architecture",
|
|
25
|
-
decision: "Use SQLite for storage",
|
|
26
|
-
choice: "WAL mode, single-writer",
|
|
27
|
-
rationale: "Built-in, no external deps",
|
|
28
|
-
revisable: "yes",
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
const sampleDecision2 = {
|
|
32
|
-
id: "D002",
|
|
33
|
-
when_context: "M001/S02",
|
|
34
|
-
scope: "testing",
|
|
35
|
-
decision: "Unit test all parsers",
|
|
36
|
-
choice: "node:test framework",
|
|
37
|
-
rationale: "Fast, zero-dependency",
|
|
38
|
-
revisable: "no",
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
const sampleRequirement = {
|
|
42
|
-
id: "R001",
|
|
43
|
-
class: "functional",
|
|
44
|
-
status: "active",
|
|
45
|
-
description: "Response latency < 200ms for API endpoints",
|
|
46
|
-
why: "Critical for user experience",
|
|
47
|
-
primary_owner: "S01",
|
|
48
|
-
validation: "Load test confirms P99 < 200ms",
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
const sampleRequirement2 = {
|
|
52
|
-
id: "R002",
|
|
53
|
-
class: "non-functional",
|
|
54
|
-
status: "active",
|
|
55
|
-
description: "Data consistency across writes",
|
|
56
|
-
why: "Prevents data loss",
|
|
57
|
-
primary_owner: "S02",
|
|
58
|
-
validation: "Integration test suite",
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
const sampleTaskDone = {
|
|
62
|
-
id: "T01",
|
|
63
|
-
title: "Database schema",
|
|
64
|
-
description: "Create tables for decisions and requirements",
|
|
65
|
-
done: true,
|
|
66
|
-
estimate: "30m",
|
|
67
|
-
files: ["src/db.ts", "src/schema.ts"],
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
const sampleTaskPending = {
|
|
71
|
-
id: "T02",
|
|
72
|
-
title: "API endpoints",
|
|
73
|
-
description: "REST endpoints for CRUD operations",
|
|
74
|
-
done: false,
|
|
75
|
-
estimate: "1h",
|
|
76
|
-
files: ["src/api.ts"],
|
|
77
|
-
verify: "npm test",
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
// ---------------------------------------------------------------------------
|
|
81
|
-
// formatDecisionCompact
|
|
82
|
-
// ---------------------------------------------------------------------------
|
|
83
|
-
|
|
84
|
-
describe("structured-data-formatter: formatDecisionCompact", () => {
|
|
85
|
-
it("produces pipe-separated single-line output", () => {
|
|
86
|
-
const result = formatDecisionCompact(sampleDecision);
|
|
87
|
-
assert.equal(
|
|
88
|
-
result,
|
|
89
|
-
"D001 | M001/S01 | architecture | Use SQLite for storage | WAL mode, single-writer | Built-in, no external deps | yes",
|
|
90
|
-
);
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
it("includes all fields in the correct order", () => {
|
|
94
|
-
const result = formatDecisionCompact(sampleDecision);
|
|
95
|
-
const parts = result.split(" | ");
|
|
96
|
-
assert.equal(parts.length, 7);
|
|
97
|
-
assert.equal(parts[0], "D001");
|
|
98
|
-
assert.equal(parts[6], "yes");
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
// ---------------------------------------------------------------------------
|
|
103
|
-
// formatDecisionsCompact
|
|
104
|
-
// ---------------------------------------------------------------------------
|
|
105
|
-
|
|
106
|
-
describe("structured-data-formatter: formatDecisionsCompact", () => {
|
|
107
|
-
it("includes Fields header line", () => {
|
|
108
|
-
const result = formatDecisionsCompact([sampleDecision]);
|
|
109
|
-
assert.ok(result.startsWith("# Decisions (compact)"));
|
|
110
|
-
assert.ok(result.includes("Fields: id | when | scope | decision | choice | rationale | revisable"));
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
it("formats multiple decisions on separate lines", () => {
|
|
114
|
-
const result = formatDecisionsCompact([sampleDecision, sampleDecision2]);
|
|
115
|
-
const lines = result.split("\n");
|
|
116
|
-
// header, fields, blank, D001, D002
|
|
117
|
-
assert.equal(lines.length, 5);
|
|
118
|
-
assert.ok(lines[3].startsWith("D001"));
|
|
119
|
-
assert.ok(lines[4].startsWith("D002"));
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
it("returns (none) for empty array", () => {
|
|
123
|
-
const result = formatDecisionsCompact([]);
|
|
124
|
-
assert.ok(result.includes("(none)"));
|
|
125
|
-
});
|
|
126
|
-
|
|
127
|
-
it("formats single-item array with header", () => {
|
|
128
|
-
const result = formatDecisionsCompact([sampleDecision]);
|
|
129
|
-
assert.ok(result.includes("# Decisions (compact)"));
|
|
130
|
-
assert.ok(result.includes("D001"));
|
|
131
|
-
// Only one data line after the blank separator
|
|
132
|
-
const dataLines = result.split("\n\n")[1].split("\n");
|
|
133
|
-
assert.equal(dataLines.length, 1);
|
|
134
|
-
});
|
|
135
|
-
});
|
|
136
|
-
|
|
137
|
-
// ---------------------------------------------------------------------------
|
|
138
|
-
// formatRequirementCompact
|
|
139
|
-
// ---------------------------------------------------------------------------
|
|
140
|
-
|
|
141
|
-
describe("structured-data-formatter: formatRequirementCompact", () => {
|
|
142
|
-
it("produces multi-line compact format", () => {
|
|
143
|
-
const result = formatRequirementCompact(sampleRequirement);
|
|
144
|
-
const lines = result.split("\n");
|
|
145
|
-
assert.equal(lines.length, 4);
|
|
146
|
-
});
|
|
147
|
-
|
|
148
|
-
it("first line has id, class, status, owner", () => {
|
|
149
|
-
const result = formatRequirementCompact(sampleRequirement);
|
|
150
|
-
const first = result.split("\n")[0];
|
|
151
|
-
assert.equal(first, "R001 [functional] (active) owner:S01");
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
it("description is indented on second line", () => {
|
|
155
|
-
const result = formatRequirementCompact(sampleRequirement);
|
|
156
|
-
const second = result.split("\n")[1];
|
|
157
|
-
assert.equal(second, " Response latency < 200ms for API endpoints");
|
|
158
|
-
});
|
|
159
|
-
|
|
160
|
-
it("includes why and validate lines", () => {
|
|
161
|
-
const result = formatRequirementCompact(sampleRequirement);
|
|
162
|
-
assert.ok(result.includes(" why: Critical for user experience"));
|
|
163
|
-
assert.ok(result.includes(" validate: Load test confirms P99 < 200ms"));
|
|
164
|
-
});
|
|
165
|
-
});
|
|
166
|
-
|
|
167
|
-
// ---------------------------------------------------------------------------
|
|
168
|
-
// formatRequirementsCompact
|
|
169
|
-
// ---------------------------------------------------------------------------
|
|
170
|
-
|
|
171
|
-
describe("structured-data-formatter: formatRequirementsCompact", () => {
|
|
172
|
-
it("includes header", () => {
|
|
173
|
-
const result = formatRequirementsCompact([sampleRequirement]);
|
|
174
|
-
assert.ok(result.startsWith("# Requirements (compact)"));
|
|
175
|
-
});
|
|
176
|
-
|
|
177
|
-
it("separates multiple requirements with blank lines", () => {
|
|
178
|
-
const result = formatRequirementsCompact([sampleRequirement, sampleRequirement2]);
|
|
179
|
-
const blocks = result.split("\n\n");
|
|
180
|
-
// header block, R001 block, R002 block
|
|
181
|
-
assert.equal(blocks.length, 3);
|
|
182
|
-
});
|
|
183
|
-
|
|
184
|
-
it("returns (none) for empty array", () => {
|
|
185
|
-
const result = formatRequirementsCompact([]);
|
|
186
|
-
assert.ok(result.includes("(none)"));
|
|
187
|
-
});
|
|
188
|
-
|
|
189
|
-
it("formats single-item array", () => {
|
|
190
|
-
const result = formatRequirementsCompact([sampleRequirement]);
|
|
191
|
-
assert.ok(result.includes("R001"));
|
|
192
|
-
assert.ok(!result.includes("R002"));
|
|
193
|
-
});
|
|
194
|
-
});
|
|
195
|
-
|
|
196
|
-
// ---------------------------------------------------------------------------
|
|
197
|
-
// formatTaskPlanCompact
|
|
198
|
-
// ---------------------------------------------------------------------------
|
|
199
|
-
|
|
200
|
-
describe("structured-data-formatter: formatTaskPlanCompact", () => {
|
|
201
|
-
it("uses [x] for done tasks and [ ] for pending", () => {
|
|
202
|
-
const result = formatTaskPlanCompact([sampleTaskDone, sampleTaskPending]);
|
|
203
|
-
assert.ok(result.includes("T01 [x] Database schema (30m)"));
|
|
204
|
-
assert.ok(result.includes("T02 [ ] API endpoints (1h)"));
|
|
205
|
-
});
|
|
206
|
-
|
|
207
|
-
it("includes files list when present", () => {
|
|
208
|
-
const result = formatTaskPlanCompact([sampleTaskDone]);
|
|
209
|
-
assert.ok(result.includes(" files: src/db.ts, src/schema.ts"));
|
|
210
|
-
});
|
|
211
|
-
|
|
212
|
-
it("includes verify when present", () => {
|
|
213
|
-
const result = formatTaskPlanCompact([sampleTaskPending]);
|
|
214
|
-
assert.ok(result.includes(" verify: npm test"));
|
|
215
|
-
});
|
|
216
|
-
|
|
217
|
-
it("omits files line when not provided", () => {
|
|
218
|
-
const noFiles = { ...sampleTaskDone, files: undefined };
|
|
219
|
-
const result = formatTaskPlanCompact([noFiles]);
|
|
220
|
-
assert.ok(!result.includes("files:"));
|
|
221
|
-
});
|
|
222
|
-
|
|
223
|
-
it("omits verify line when not provided", () => {
|
|
224
|
-
const noVerify = { ...sampleTaskDone, verify: undefined };
|
|
225
|
-
const result = formatTaskPlanCompact([noVerify]);
|
|
226
|
-
assert.ok(!result.includes("verify:"));
|
|
227
|
-
});
|
|
228
|
-
|
|
229
|
-
it("description is indented", () => {
|
|
230
|
-
const result = formatTaskPlanCompact([sampleTaskDone]);
|
|
231
|
-
assert.ok(result.includes(" Create tables for decisions and requirements"));
|
|
232
|
-
});
|
|
233
|
-
|
|
234
|
-
it("returns (none) for empty array", () => {
|
|
235
|
-
const result = formatTaskPlanCompact([]);
|
|
236
|
-
assert.ok(result.includes("(none)"));
|
|
237
|
-
});
|
|
238
|
-
|
|
239
|
-
it("formats single-item array with header", () => {
|
|
240
|
-
const result = formatTaskPlanCompact([sampleTaskDone]);
|
|
241
|
-
assert.ok(result.startsWith("# Tasks (compact)"));
|
|
242
|
-
// Only one task block
|
|
243
|
-
const blocks = result.split("\n\n");
|
|
244
|
-
assert.equal(blocks.length, 2);
|
|
245
|
-
});
|
|
246
|
-
});
|
|
247
|
-
|
|
248
|
-
// ---------------------------------------------------------------------------
|
|
249
|
-
// measureSavings
|
|
250
|
-
// ---------------------------------------------------------------------------
|
|
251
|
-
|
|
252
|
-
describe("structured-data-formatter: measureSavings", () => {
|
|
253
|
-
it("returns positive savings when compact is shorter", () => {
|
|
254
|
-
const compact = "short";
|
|
255
|
-
const markdown = "this is a much longer markdown version";
|
|
256
|
-
const savings = measureSavings(compact, markdown);
|
|
257
|
-
assert.ok(savings > 0, `expected positive savings, got ${savings}`);
|
|
258
|
-
});
|
|
259
|
-
|
|
260
|
-
it("returns 0 for empty markdown", () => {
|
|
261
|
-
assert.equal(measureSavings("anything", ""), 0);
|
|
262
|
-
});
|
|
263
|
-
|
|
264
|
-
it("returns negative when compact is longer", () => {
|
|
265
|
-
const compact = "this is somehow longer than the original";
|
|
266
|
-
const markdown = "tiny";
|
|
267
|
-
const savings = measureSavings(compact, markdown);
|
|
268
|
-
assert.ok(savings < 0, `expected negative savings, got ${savings}`);
|
|
269
|
-
});
|
|
270
|
-
});
|
|
271
|
-
|
|
272
|
-
// ---------------------------------------------------------------------------
|
|
273
|
-
// Realistic token savings measurement
|
|
274
|
-
// ---------------------------------------------------------------------------
|
|
275
|
-
|
|
276
|
-
describe("structured-data-formatter: realistic savings", () => {
|
|
277
|
-
it("decisions compact format saves 30%+ vs markdown table", () => {
|
|
278
|
-
const decisions = [sampleDecision, sampleDecision2];
|
|
279
|
-
|
|
280
|
-
// Simulate a typical markdown table
|
|
281
|
-
const markdownTable = [
|
|
282
|
-
"| ID | When | Scope | Decision | Choice | Rationale | Revisable |",
|
|
283
|
-
"|------|------------|--------------|-------------------------|------------------------|--------------------------|-----------|",
|
|
284
|
-
"| D001 | M001/S01 | architecture | Use SQLite for storage | WAL mode, single-writer | Built-in, no external deps | yes |",
|
|
285
|
-
"| D002 | M001/S02 | testing | Unit test all parsers | node:test framework | Fast, zero-dependency | no |",
|
|
286
|
-
].join("\n");
|
|
287
|
-
|
|
288
|
-
const compactOutput = formatDecisionsCompact(decisions);
|
|
289
|
-
const savings = measureSavings(compactOutput, markdownTable);
|
|
290
|
-
assert.ok(
|
|
291
|
-
savings >= 30,
|
|
292
|
-
`expected >=30% savings, got ${savings.toFixed(1)}%`,
|
|
293
|
-
);
|
|
294
|
-
});
|
|
295
|
-
|
|
296
|
-
it("requirements compact format saves 30%+ vs markdown sections", () => {
|
|
297
|
-
const requirements = [sampleRequirement, sampleRequirement2];
|
|
298
|
-
|
|
299
|
-
// Simulate verbose markdown format with all fields
|
|
300
|
-
const markdownSections = [
|
|
301
|
-
"## R001",
|
|
302
|
-
"",
|
|
303
|
-
"- **Class:** functional",
|
|
304
|
-
"- **Status:** active",
|
|
305
|
-
"- **Description:** Response latency < 200ms for API endpoints",
|
|
306
|
-
"- **Why:** Critical for user experience",
|
|
307
|
-
"- **Source:** architecture review",
|
|
308
|
-
"- **Primary Owner:** S01",
|
|
309
|
-
"- **Supporting Slices:** S02, S03",
|
|
310
|
-
"- **Validation:** Load test confirms P99 < 200ms",
|
|
311
|
-
"- **Notes:** Monitor in production",
|
|
312
|
-
"",
|
|
313
|
-
"## R002",
|
|
314
|
-
"",
|
|
315
|
-
"- **Class:** non-functional",
|
|
316
|
-
"- **Status:** active",
|
|
317
|
-
"- **Description:** Data consistency across writes",
|
|
318
|
-
"- **Why:** Prevents data loss",
|
|
319
|
-
"- **Source:** data team review",
|
|
320
|
-
"- **Primary Owner:** S02",
|
|
321
|
-
"- **Supporting Slices:** S01",
|
|
322
|
-
"- **Validation:** Integration test suite",
|
|
323
|
-
"- **Notes:** Requires WAL mode",
|
|
324
|
-
].join("\n");
|
|
325
|
-
|
|
326
|
-
const compactOutput = formatRequirementsCompact(requirements);
|
|
327
|
-
const savings = measureSavings(compactOutput, markdownSections);
|
|
328
|
-
assert.ok(
|
|
329
|
-
savings >= 30,
|
|
330
|
-
`expected >=30% savings, got ${savings.toFixed(1)}%`,
|
|
331
|
-
);
|
|
332
|
-
});
|
|
333
|
-
|
|
334
|
-
it("task plan compact format saves 30%+ vs markdown sections", () => {
|
|
335
|
-
const tasks = [sampleTaskDone, sampleTaskPending];
|
|
336
|
-
|
|
337
|
-
// Simulate verbose markdown task format
|
|
338
|
-
const markdownTasks = [
|
|
339
|
-
"## T01 - Database schema",
|
|
340
|
-
"",
|
|
341
|
-
"- **Status:** Done",
|
|
342
|
-
"- **Estimate:** 30m",
|
|
343
|
-
"- **Description:** Create tables for decisions and requirements",
|
|
344
|
-
"- **Files:**",
|
|
345
|
-
" - src/db.ts",
|
|
346
|
-
" - src/schema.ts",
|
|
347
|
-
"",
|
|
348
|
-
"## T02 - API endpoints",
|
|
349
|
-
"",
|
|
350
|
-
"- **Status:** Pending",
|
|
351
|
-
"- **Estimate:** 1h",
|
|
352
|
-
"- **Description:** REST endpoints for CRUD operations",
|
|
353
|
-
"- **Files:**",
|
|
354
|
-
" - src/api.ts",
|
|
355
|
-
"- **Verify:** npm test",
|
|
356
|
-
].join("\n");
|
|
357
|
-
|
|
358
|
-
const compactOutput = formatTaskPlanCompact(tasks);
|
|
359
|
-
const savings = measureSavings(compactOutput, markdownTasks);
|
|
360
|
-
assert.ok(
|
|
361
|
-
savings >= 30,
|
|
362
|
-
`expected >=30% savings, got ${savings.toFixed(1)}%`,
|
|
363
|
-
);
|
|
364
|
-
});
|
|
365
|
-
});
|
|
@@ -1,323 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tests for summary-distiller.ts — the summary distillation module.
|
|
3
|
-
* Verifies frontmatter extraction, compact formatting, budget enforcement,
|
|
4
|
-
* and progressive field dropping.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { describe, it } from "node:test";
|
|
8
|
-
import assert from "node:assert/strict";
|
|
9
|
-
|
|
10
|
-
import { distillSingle, distillSummaries } from "../summary-distiller.js";
|
|
11
|
-
|
|
12
|
-
// ─── Fixtures ────────────────────────────────────────────────────────────────
|
|
13
|
-
|
|
14
|
-
const REALISTIC_SUMMARY = `---
|
|
15
|
-
id: S01
|
|
16
|
-
parent: M001
|
|
17
|
-
milestone: M001
|
|
18
|
-
provides:
|
|
19
|
-
- Core type definitions
|
|
20
|
-
- File I/O utilities
|
|
21
|
-
requires: []
|
|
22
|
-
affects:
|
|
23
|
-
- All downstream slices
|
|
24
|
-
key_files:
|
|
25
|
-
- src/types.ts
|
|
26
|
-
- src/files.ts
|
|
27
|
-
- src/paths.ts
|
|
28
|
-
key_decisions:
|
|
29
|
-
- D001
|
|
30
|
-
- D003
|
|
31
|
-
patterns_established:
|
|
32
|
-
- Pure function modules
|
|
33
|
-
- Dependency injection via parameters
|
|
34
|
-
drill_down_paths:
|
|
35
|
-
- src/types.ts for interface contracts
|
|
36
|
-
observability_surfaces:
|
|
37
|
-
- Unit test coverage > 90%
|
|
38
|
-
duration: 45m
|
|
39
|
-
verification_result: pass
|
|
40
|
-
completed_at: 2025-03-15T10:00:00Z
|
|
41
|
-
blocker_discovered: false
|
|
42
|
-
---
|
|
43
|
-
|
|
44
|
-
# S01: Core Type Definitions and File I/O
|
|
45
|
-
|
|
46
|
-
Foundation types and file operations for the GSD extension.
|
|
47
|
-
|
|
48
|
-
## What Happened
|
|
49
|
-
|
|
50
|
-
Implemented 12 core interfaces spanning roadmap parsing, slice plans, summaries,
|
|
51
|
-
and continuation state. Added file I/O utilities for reading, parsing, and writing
|
|
52
|
-
GSD artifact files. Established the path resolution module for computing absolute
|
|
53
|
-
and relative paths to milestone, slice, and task artifacts.
|
|
54
|
-
|
|
55
|
-
## Deviations
|
|
56
|
-
|
|
57
|
-
Minor deviation from plan: added \`filesModified\` field to Summary interface that
|
|
58
|
-
was not in the original design, based on the realization that tracking modified
|
|
59
|
-
files in summaries enables better diff-context prioritization.
|
|
60
|
-
|
|
61
|
-
## Files Modified
|
|
62
|
-
|
|
63
|
-
- \`src/types.ts\` — 12 interfaces, 4 type aliases
|
|
64
|
-
- \`src/files.ts\` — 8 parser functions, 3 writer functions
|
|
65
|
-
- \`src/paths.ts\` — 14 path resolver functions
|
|
66
|
-
`;
|
|
67
|
-
|
|
68
|
-
const SECOND_SUMMARY = `---
|
|
69
|
-
id: S02
|
|
70
|
-
parent: M001
|
|
71
|
-
milestone: M001
|
|
72
|
-
provides:
|
|
73
|
-
- Roadmap parser
|
|
74
|
-
- Slice dependency resolver
|
|
75
|
-
requires:
|
|
76
|
-
- Core type definitions
|
|
77
|
-
key_files:
|
|
78
|
-
- src/roadmap.ts
|
|
79
|
-
- src/deps.ts
|
|
80
|
-
key_decisions:
|
|
81
|
-
- D004
|
|
82
|
-
patterns_established:
|
|
83
|
-
- DAG-based ordering
|
|
84
|
-
drill_down_paths:
|
|
85
|
-
- src/deps.ts for topological sort
|
|
86
|
-
duration: 30m
|
|
87
|
-
verification_result: pass
|
|
88
|
-
completed_at: 2025-03-15T11:00:00Z
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
# S02: Roadmap Parser and Dependency Resolution
|
|
92
|
-
|
|
93
|
-
Built the roadmap parser and DAG-based dependency resolver.
|
|
94
|
-
|
|
95
|
-
## What Happened
|
|
96
|
-
|
|
97
|
-
Created a Markdown-based roadmap parser that extracts slice metadata from
|
|
98
|
-
structured headings and bullet lists. Implemented a topological sort for
|
|
99
|
-
resolving slice execution order based on declared dependencies.
|
|
100
|
-
|
|
101
|
-
## Files Modified
|
|
102
|
-
|
|
103
|
-
- \`src/roadmap.ts\` — parser with regex-based extraction
|
|
104
|
-
- \`src/deps.ts\` — DAG builder and topological sort
|
|
105
|
-
`;
|
|
106
|
-
|
|
107
|
-
const NO_FRONTMATTER = `# S99: Quick Fix
|
|
108
|
-
|
|
109
|
-
A quick patch with no frontmatter at all.
|
|
110
|
-
|
|
111
|
-
## What Happened
|
|
112
|
-
|
|
113
|
-
Fixed a typo.
|
|
114
|
-
`;
|
|
115
|
-
|
|
116
|
-
const EMPTY_ARRAYS_SUMMARY = `---
|
|
117
|
-
id: S03
|
|
118
|
-
provides: []
|
|
119
|
-
requires: []
|
|
120
|
-
key_files: []
|
|
121
|
-
key_decisions: []
|
|
122
|
-
patterns_established: []
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
# S03: Empty Slice
|
|
126
|
-
|
|
127
|
-
Nothing to provide or require.
|
|
128
|
-
`;
|
|
129
|
-
|
|
130
|
-
// ─── distillSingle ──────────────────────────────────────────────────────────
|
|
131
|
-
|
|
132
|
-
describe("summary-distiller: distillSingle", () => {
|
|
133
|
-
it("extracts frontmatter fields from a realistic summary", () => {
|
|
134
|
-
const result = distillSingle(REALISTIC_SUMMARY);
|
|
135
|
-
assert.ok(result.includes("## S01:"), "should include the id header");
|
|
136
|
-
assert.ok(result.includes("provides: Core type definitions, File I/O utilities"),
|
|
137
|
-
"should list provides");
|
|
138
|
-
assert.ok(result.includes("key_files: src/types.ts, src/files.ts, src/paths.ts"),
|
|
139
|
-
"should list key_files");
|
|
140
|
-
assert.ok(result.includes("key_decisions: D001, D003"),
|
|
141
|
-
"should list key_decisions");
|
|
142
|
-
assert.ok(result.includes("patterns: Pure function modules, Dependency injection via parameters"),
|
|
143
|
-
"should list patterns");
|
|
144
|
-
});
|
|
145
|
-
|
|
146
|
-
it("extracts the one-liner from the title line", () => {
|
|
147
|
-
const result = distillSingle(REALISTIC_SUMMARY);
|
|
148
|
-
// The title line "# S01: Core Type Definitions and File I/O" provides the one-liner
|
|
149
|
-
assert.ok(
|
|
150
|
-
result.includes("Core Type Definitions and File I/O"),
|
|
151
|
-
"should include one-liner from title",
|
|
152
|
-
);
|
|
153
|
-
});
|
|
154
|
-
|
|
155
|
-
it("falls back to first paragraph when title has no inline text", () => {
|
|
156
|
-
const summary = `---
|
|
157
|
-
id: S10
|
|
158
|
-
provides:
|
|
159
|
-
- Widget API
|
|
160
|
-
---
|
|
161
|
-
|
|
162
|
-
# S10:
|
|
163
|
-
|
|
164
|
-
Widget API for rendering dashboard components.
|
|
165
|
-
|
|
166
|
-
## What Happened
|
|
167
|
-
|
|
168
|
-
Built the widget system.
|
|
169
|
-
`;
|
|
170
|
-
const result = distillSingle(summary);
|
|
171
|
-
assert.ok(
|
|
172
|
-
result.includes("Widget API for rendering"),
|
|
173
|
-
"should use first paragraph as one-liner when title text is empty",
|
|
174
|
-
);
|
|
175
|
-
});
|
|
176
|
-
|
|
177
|
-
it("drops verbose prose sections", () => {
|
|
178
|
-
const result = distillSingle(REALISTIC_SUMMARY);
|
|
179
|
-
assert.ok(!result.includes("What Happened"), "should not include What Happened heading");
|
|
180
|
-
assert.ok(!result.includes("Implemented 12 core"), "should not include prose body");
|
|
181
|
-
assert.ok(!result.includes("Deviations"), "should not include Deviations");
|
|
182
|
-
assert.ok(!result.includes("filesModified"), "should not include deviation details");
|
|
183
|
-
assert.ok(!result.includes("drill_down_paths"), "should not include drill_down_paths label");
|
|
184
|
-
assert.ok(!result.includes("duration"), "should not include duration");
|
|
185
|
-
assert.ok(!result.includes("verification_result"), "should not include verification_result");
|
|
186
|
-
assert.ok(!result.includes("completed_at"), "should not include completed_at");
|
|
187
|
-
});
|
|
188
|
-
|
|
189
|
-
it("handles array fields in provides/requires", () => {
|
|
190
|
-
const result = distillSingle(SECOND_SUMMARY);
|
|
191
|
-
assert.ok(result.includes("provides: Roadmap parser, Slice dependency resolver"),
|
|
192
|
-
"should join provides array");
|
|
193
|
-
assert.ok(result.includes("requires: Core type definitions"),
|
|
194
|
-
"should join requires array");
|
|
195
|
-
});
|
|
196
|
-
|
|
197
|
-
it("omits empty requires when none declared", () => {
|
|
198
|
-
const result = distillSingle(REALISTIC_SUMMARY);
|
|
199
|
-
assert.ok(!result.includes("requires:"), "should omit requires when empty");
|
|
200
|
-
});
|
|
201
|
-
|
|
202
|
-
it("handles missing frontmatter gracefully", () => {
|
|
203
|
-
const result = distillSingle(NO_FRONTMATTER);
|
|
204
|
-
assert.ok(result.includes("## S99:"), "should extract id from title");
|
|
205
|
-
assert.ok(result.includes("Quick Fix"), "should include title text");
|
|
206
|
-
});
|
|
207
|
-
|
|
208
|
-
it("handles empty array frontmatter fields", () => {
|
|
209
|
-
const result = distillSingle(EMPTY_ARRAYS_SUMMARY);
|
|
210
|
-
assert.ok(result.includes("## S03:"), "should have the id");
|
|
211
|
-
assert.ok(!result.includes("provides:"), "should omit empty provides");
|
|
212
|
-
assert.ok(!result.includes("requires:"), "should omit empty requires");
|
|
213
|
-
assert.ok(!result.includes("key_files:"), "should omit empty key_files");
|
|
214
|
-
assert.ok(!result.includes("key_decisions:"), "should omit empty key_decisions");
|
|
215
|
-
assert.ok(!result.includes("patterns:"), "should omit empty patterns");
|
|
216
|
-
});
|
|
217
|
-
|
|
218
|
-
it("produces significantly shorter output than input", () => {
|
|
219
|
-
const result = distillSingle(REALISTIC_SUMMARY);
|
|
220
|
-
assert.ok(
|
|
221
|
-
result.length < REALISTIC_SUMMARY.length * 0.5,
|
|
222
|
-
`distilled (${result.length}) should be <50% of original (${REALISTIC_SUMMARY.length})`,
|
|
223
|
-
);
|
|
224
|
-
});
|
|
225
|
-
});
|
|
226
|
-
|
|
227
|
-
// ─── distillSummaries ────────────────────────────────────────────────────────
|
|
228
|
-
|
|
229
|
-
describe("summary-distiller: distillSummaries", () => {
|
|
230
|
-
it("combines multiple summaries into structured blocks", () => {
|
|
231
|
-
const result = distillSummaries([REALISTIC_SUMMARY, SECOND_SUMMARY], 10_000);
|
|
232
|
-
assert.equal(result.summaryCount, 2);
|
|
233
|
-
assert.ok(result.content.includes("## S01:"), "should include first summary");
|
|
234
|
-
assert.ok(result.content.includes("## S02:"), "should include second summary");
|
|
235
|
-
});
|
|
236
|
-
|
|
237
|
-
it("reports positive savings percentage", () => {
|
|
238
|
-
const result = distillSummaries([REALISTIC_SUMMARY, SECOND_SUMMARY], 10_000);
|
|
239
|
-
assert.ok(result.savingsPercent > 0, `savings should be positive, got ${result.savingsPercent}%`);
|
|
240
|
-
assert.ok(result.distilledChars < result.originalChars,
|
|
241
|
-
"distilled chars should be less than original");
|
|
242
|
-
});
|
|
243
|
-
|
|
244
|
-
it("fits content within budgetChars when budget is generous", () => {
|
|
245
|
-
const result = distillSummaries([REALISTIC_SUMMARY, SECOND_SUMMARY], 10_000);
|
|
246
|
-
assert.ok(
|
|
247
|
-
result.content.length <= 10_000,
|
|
248
|
-
`content length ${result.content.length} should be within budget 10000`,
|
|
249
|
-
);
|
|
250
|
-
assert.ok(!result.content.includes("[...truncated]"), "should not truncate with generous budget");
|
|
251
|
-
});
|
|
252
|
-
|
|
253
|
-
it("enforces budget with truncation when needed", () => {
|
|
254
|
-
const result = distillSummaries([REALISTIC_SUMMARY, SECOND_SUMMARY], 200);
|
|
255
|
-
assert.ok(
|
|
256
|
-
result.content.length <= 215, // allow some slack for truncation marker
|
|
257
|
-
`content length ${result.content.length} should be near budget 200`,
|
|
258
|
-
);
|
|
259
|
-
assert.ok(result.content.includes("[...truncated]"), "should include truncation marker");
|
|
260
|
-
});
|
|
261
|
-
|
|
262
|
-
it("progressively drops fields when budget is tight", () => {
|
|
263
|
-
// With a budget that can fit the header lines but not all fields,
|
|
264
|
-
// patterns should be dropped first, then key_decisions, then key_files
|
|
265
|
-
const full = distillSummaries([REALISTIC_SUMMARY], 100_000);
|
|
266
|
-
assert.ok(full.content.includes("patterns:"), "full output should have patterns");
|
|
267
|
-
|
|
268
|
-
// Find a budget that forces dropping patterns but keeps key_decisions
|
|
269
|
-
const withoutPatterns = full.content.replace(/patterns:.*$/m, "").length;
|
|
270
|
-
const withPatterns = full.content.length;
|
|
271
|
-
|
|
272
|
-
if (withPatterns > withoutPatterns) {
|
|
273
|
-
const tightBudget = withoutPatterns + 5;
|
|
274
|
-
const tight = distillSummaries([REALISTIC_SUMMARY], tightBudget);
|
|
275
|
-
assert.ok(!tight.content.includes("patterns:"),
|
|
276
|
-
"tight budget should drop patterns first");
|
|
277
|
-
assert.ok(tight.content.includes("key_decisions:"),
|
|
278
|
-
"tight budget should still have key_decisions");
|
|
279
|
-
}
|
|
280
|
-
});
|
|
281
|
-
|
|
282
|
-
it("handles a single summary", () => {
|
|
283
|
-
const result = distillSummaries([REALISTIC_SUMMARY], 10_000);
|
|
284
|
-
assert.equal(result.summaryCount, 1);
|
|
285
|
-
assert.ok(result.content.includes("## S01:"), "should include the single summary");
|
|
286
|
-
});
|
|
287
|
-
|
|
288
|
-
it("handles empty input array", () => {
|
|
289
|
-
const result = distillSummaries([], 10_000);
|
|
290
|
-
assert.equal(result.summaryCount, 0);
|
|
291
|
-
assert.equal(result.content, "");
|
|
292
|
-
assert.equal(result.savingsPercent, 0);
|
|
293
|
-
assert.equal(result.originalChars, 0);
|
|
294
|
-
assert.equal(result.distilledChars, 0);
|
|
295
|
-
});
|
|
296
|
-
|
|
297
|
-
it("handles malformed content gracefully", () => {
|
|
298
|
-
const malformed = "this is not a valid summary at all\nno frontmatter\nno headings";
|
|
299
|
-
const result = distillSummaries([malformed], 10_000);
|
|
300
|
-
assert.equal(result.summaryCount, 1);
|
|
301
|
-
// Should not throw, should produce some output
|
|
302
|
-
assert.ok(result.content.length > 0, "should produce output even for malformed input");
|
|
303
|
-
});
|
|
304
|
-
|
|
305
|
-
it("handles very tight budget (100 chars) with truncation", () => {
|
|
306
|
-
const result = distillSummaries([REALISTIC_SUMMARY, SECOND_SUMMARY], 100);
|
|
307
|
-
assert.ok(
|
|
308
|
-
result.content.length <= 115, // small slack for marker
|
|
309
|
-
`content (${result.content.length}) should be near budget 100`,
|
|
310
|
-
);
|
|
311
|
-
assert.ok(result.content.includes("[...truncated]"), "should truncate at very tight budget");
|
|
312
|
-
assert.ok(result.savingsPercent > 80, `savings should be very high, got ${result.savingsPercent}%`);
|
|
313
|
-
});
|
|
314
|
-
|
|
315
|
-
it("tracks original and distilled character counts accurately", () => {
|
|
316
|
-
const summaries = [REALISTIC_SUMMARY, SECOND_SUMMARY];
|
|
317
|
-
const totalOriginal = summaries.reduce((s, c) => s + c.length, 0);
|
|
318
|
-
const result = distillSummaries(summaries, 10_000);
|
|
319
|
-
assert.equal(result.originalChars, totalOriginal, "originalChars should match input total");
|
|
320
|
-
assert.equal(result.distilledChars, result.content.length,
|
|
321
|
-
"distilledChars should match content length");
|
|
322
|
-
});
|
|
323
|
-
});
|