gsd-pi 2.78.1-dev.0fdacd524 → 2.78.1-dev.2d3fd6e71
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 +15 -7
- package/dist/cli-auto-routing.d.ts +1 -0
- package/dist/cli-auto-routing.js +5 -0
- package/dist/cli.js +5 -14
- package/dist/headless-recover.d.ts +23 -0
- package/dist/headless-recover.js +93 -0
- package/dist/headless.js +9 -0
- package/dist/help-text.js +1 -0
- package/dist/loader.js +15 -3
- package/dist/resource-loader.js +26 -17
- package/dist/resources/.managed-resources-content-hash +1 -1
- package/dist/resources/GSD-WORKFLOW.md +29 -42
- package/dist/resources/extensions/async-jobs/job-manager.js +4 -0
- package/dist/resources/extensions/bg-shell/bg-shell-lifecycle.js +3 -2
- package/dist/resources/extensions/bg-shell/utilities.js +2 -1
- package/dist/resources/extensions/browser-tools/tools/intent.js +8 -1
- package/dist/resources/extensions/claude-code-cli/stream-adapter.js +22 -8
- package/dist/resources/extensions/github-sync/cli.js +3 -0
- package/dist/resources/extensions/github-sync/sync.js +86 -58
- package/dist/resources/extensions/gsd/auto/phases.js +87 -23
- package/dist/resources/extensions/gsd/auto/session.js +6 -0
- package/dist/resources/extensions/gsd/auto-artifact-paths.js +49 -31
- package/dist/resources/extensions/gsd/auto-dashboard.js +13 -2
- package/dist/resources/extensions/gsd/auto-direct-dispatch.js +2 -0
- package/dist/resources/extensions/gsd/auto-dispatch.js +238 -90
- package/dist/resources/extensions/gsd/auto-post-unit.js +108 -46
- package/dist/resources/extensions/gsd/auto-prompts.js +76 -6
- package/dist/resources/extensions/gsd/auto-recovery.js +69 -15
- package/dist/resources/extensions/gsd/auto-start.js +54 -64
- package/dist/resources/extensions/gsd/auto-timeout-recovery.js +18 -0
- package/dist/resources/extensions/gsd/auto-timers.js +24 -4
- package/dist/resources/extensions/gsd/auto-worktree.js +318 -212
- package/dist/resources/extensions/gsd/auto.js +112 -18
- package/dist/resources/extensions/gsd/bootstrap/agent-end-recovery.js +21 -3
- package/dist/resources/extensions/gsd/bootstrap/db-tools.js +40 -7
- package/dist/resources/extensions/gsd/bootstrap/dynamic-tools.js +9 -77
- package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +94 -17
- package/dist/resources/extensions/gsd/bootstrap/system-context.js +3 -4
- package/dist/resources/extensions/gsd/bootstrap/write-gate.js +142 -63
- package/dist/resources/extensions/gsd/branch-patterns.js +3 -3
- package/dist/resources/extensions/gsd/commands/catalog.js +7 -6
- package/dist/resources/extensions/gsd/commands/context.js +41 -5
- package/dist/resources/extensions/gsd/commands/dispatcher.js +11 -5
- package/dist/resources/extensions/gsd/commands/handlers/auto.js +2 -1
- package/dist/resources/extensions/gsd/commands/handlers/core.js +2 -0
- package/dist/resources/extensions/gsd/commands/handlers/ops.js +5 -0
- package/dist/resources/extensions/gsd/commands/handlers/workflow.js +24 -2
- package/dist/resources/extensions/gsd/commands-bootstrap.js +6 -0
- package/dist/resources/extensions/gsd/commands-codebase.js +2 -1
- package/dist/resources/extensions/gsd/commands-config.js +3 -3
- package/dist/resources/extensions/gsd/commands-debug.js +22 -1
- package/dist/resources/extensions/gsd/commands-eval-review.js +534 -0
- package/dist/resources/extensions/gsd/commands-extensions.js +4 -4
- package/dist/resources/extensions/gsd/commands-handlers.js +8 -8
- package/dist/resources/extensions/gsd/commands-logs.js +2 -1
- package/dist/resources/extensions/gsd/commands-mcp-status.js +2 -2
- package/dist/resources/extensions/gsd/commands-scan.js +2 -1
- package/dist/resources/extensions/gsd/commands-ship.js +67 -1
- package/dist/resources/extensions/gsd/commands-workflow-templates.js +5 -4
- package/dist/resources/extensions/gsd/context-budget.js +11 -3
- package/dist/resources/extensions/gsd/db-writer.js +150 -92
- package/dist/resources/extensions/gsd/deep-project-setup-policy.js +212 -0
- package/dist/resources/extensions/gsd/delegation-policy.js +155 -0
- package/dist/resources/extensions/gsd/detection.js +7 -7
- package/dist/resources/extensions/gsd/dispatch-guard.js +6 -10
- package/dist/resources/extensions/gsd/docs/preferences-reference.md +6 -4
- package/dist/resources/extensions/gsd/doctor-engine-checks.js +2 -2
- package/dist/resources/extensions/gsd/doctor-providers.js +2 -2
- package/dist/resources/extensions/gsd/doctor-runtime-checks.js +54 -0
- package/dist/resources/extensions/gsd/eval-review-schema.js +208 -0
- package/dist/resources/extensions/gsd/forensics.js +10 -4
- package/dist/resources/extensions/gsd/git-service.js +74 -4
- package/dist/resources/extensions/gsd/gsd-db.js +271 -10
- package/dist/resources/extensions/gsd/gsd-home.js +29 -0
- package/dist/resources/extensions/gsd/guided-flow-queue.js +1 -1
- package/dist/resources/extensions/gsd/guided-flow.js +390 -121
- package/dist/resources/extensions/gsd/init-wizard.js +16 -23
- package/dist/resources/extensions/gsd/interrupted-session.js +37 -2
- package/dist/resources/extensions/gsd/key-manager.js +2 -2
- package/dist/resources/extensions/gsd/markdown-renderer.js +59 -66
- package/dist/resources/extensions/gsd/metrics.js +287 -1
- package/dist/resources/extensions/gsd/migrate/command.js +3 -3
- package/dist/resources/extensions/gsd/milestone-scope-classifier.js +10 -8
- package/dist/resources/extensions/gsd/native-git-bridge.js +19 -42
- package/dist/resources/extensions/gsd/onboarding-state.js +2 -2
- package/dist/resources/extensions/gsd/parallel-merge.js +14 -13
- package/dist/resources/extensions/gsd/parallel-monitor-overlay.js +5 -2
- package/dist/resources/extensions/gsd/paths.js +151 -9
- package/dist/resources/extensions/gsd/planning-depth.js +114 -0
- package/dist/resources/extensions/gsd/preferences-models.js +18 -1
- package/dist/resources/extensions/gsd/preferences-skills.js +2 -1
- package/dist/resources/extensions/gsd/preferences-types.js +4 -0
- package/dist/resources/extensions/gsd/preferences-validation.js +9 -0
- package/dist/resources/extensions/gsd/preferences.js +20 -4
- package/dist/resources/extensions/gsd/project-research-policy.js +182 -0
- package/dist/resources/extensions/gsd/prompt-loader.js +2 -3
- package/dist/resources/extensions/gsd/prompts/complete-slice.md +5 -5
- package/dist/resources/extensions/gsd/prompts/execute-task.md +3 -3
- package/dist/resources/extensions/gsd/prompts/guided-discuss-milestone.md +8 -1
- package/dist/resources/extensions/gsd/prompts/guided-discuss-project.md +148 -0
- package/dist/resources/extensions/gsd/prompts/guided-discuss-requirements.md +126 -0
- package/dist/resources/extensions/gsd/prompts/guided-discuss-slice.md +8 -1
- package/dist/resources/extensions/gsd/prompts/guided-research-decision.md +70 -0
- package/dist/resources/extensions/gsd/prompts/guided-research-project.md +120 -0
- package/dist/resources/extensions/gsd/prompts/guided-workflow-preferences.md +68 -0
- package/dist/resources/extensions/gsd/prompts/plan-milestone.md +8 -2
- package/dist/resources/extensions/gsd/prompts/plan-slice.md +9 -7
- package/dist/resources/extensions/gsd/prompts/refine-slice.md +1 -1
- package/dist/resources/extensions/gsd/prompts/system.md +4 -4
- package/dist/resources/extensions/gsd/queue-order.js +6 -1
- package/dist/resources/extensions/gsd/repo-identity.js +20 -9
- package/dist/resources/extensions/gsd/rethink.js +2 -1
- package/dist/resources/extensions/gsd/safety/git-checkpoint.js +8 -1
- package/dist/resources/extensions/gsd/schemas/__fixtures__/valid-project.md +26 -0
- package/dist/resources/extensions/gsd/schemas/__fixtures__/valid-requirements.md +57 -0
- package/dist/resources/extensions/gsd/schemas/__fixtures__/valid-roadmap.md +19 -0
- package/dist/resources/extensions/gsd/schemas/parsers.js +276 -0
- package/dist/resources/extensions/gsd/schemas/validate.js +364 -0
- package/dist/resources/extensions/gsd/skill-telemetry.js +3 -2
- package/dist/resources/extensions/gsd/slice-cadence.js +56 -7
- package/dist/resources/extensions/gsd/state.js +91 -372
- package/dist/resources/extensions/gsd/templates/project.md +10 -0
- package/dist/resources/extensions/gsd/token-counter.js +1 -0
- package/dist/resources/extensions/gsd/tools/complete-milestone.js +6 -5
- package/dist/resources/extensions/gsd/tools/complete-slice.js +7 -12
- package/dist/resources/extensions/gsd/tools/complete-task.js +19 -31
- package/dist/resources/extensions/gsd/tools/plan-slice.js +6 -5
- package/dist/resources/extensions/gsd/tools/validate-milestone.js +7 -5
- package/dist/resources/extensions/gsd/tools/workflow-tool-executors.js +74 -11
- package/dist/resources/extensions/gsd/unit-context-manifest.js +96 -1
- package/dist/resources/extensions/gsd/unit-runtime.js +88 -24
- package/dist/resources/extensions/gsd/uok/plan-v2.js +14 -1
- package/dist/resources/extensions/gsd/user-input-boundary.js +157 -0
- package/dist/resources/extensions/gsd/watch/header-renderer.js +2 -1
- package/dist/resources/extensions/gsd/workflow-install.js +2 -3
- package/dist/resources/extensions/gsd/workflow-manifest.js +2 -1
- package/dist/resources/extensions/gsd/workflow-mcp-auto-prep.js +3 -21
- package/dist/resources/extensions/gsd/workflow-mcp.js +41 -5
- package/dist/resources/extensions/gsd/workflow-migration.js +4 -3
- package/dist/resources/extensions/gsd/workflow-plugins.js +3 -5
- package/dist/resources/extensions/gsd/workflow-reconcile.js +3 -3
- package/dist/resources/extensions/gsd/workflow-templates.js +2 -3
- package/dist/resources/extensions/gsd/workspace.js +59 -0
- package/dist/resources/extensions/gsd/worktree-command.js +4 -3
- package/dist/resources/extensions/gsd/worktree-manager.js +6 -6
- package/dist/resources/extensions/gsd/worktree-resolver.js +45 -8
- package/dist/resources/extensions/gsd/worktree-root.js +48 -9
- package/dist/resources/extensions/gsd/write-intercept.js +3 -3
- package/dist/resources/extensions/mcp-client/index.js +2 -2
- package/dist/resources/extensions/remote-questions/remote-command.js +2 -1
- package/dist/resources/extensions/remote-questions/status.js +2 -5
- package/dist/resources/extensions/remote-questions/store.js +2 -5
- package/dist/resources/extensions/search-the-web/provider.js +9 -8
- package/dist/resources/extensions/shared/next-action-ui.js +7 -0
- package/dist/resources/extensions/subagent/index.js +22 -17
- package/dist/resources/extensions/subagent/isolation.js +2 -2
- package/dist/resources/extensions/ttsr/rule-loader.js +2 -3
- package/dist/resources/extensions/voice/index.js +3 -2
- package/dist/resources/extensions/voice/linux-ready.js +2 -2
- package/dist/resources/skills/verify-before-complete/SKILL.md +1 -1
- package/dist/tool-bootstrap.js +7 -0
- package/dist/tsconfig.extensions.tsbuildinfo +1 -1
- package/dist/web/standalone/.next/BUILD_ID +1 -1
- package/dist/web/standalone/.next/app-path-routes-manifest.json +16 -16
- package/dist/web/standalone/.next/build-manifest.json +4 -4
- package/dist/web/standalone/.next/prerender-manifest.json +3 -3
- package/dist/web/standalone/.next/react-loadable-manifest.json +7 -7
- package/dist/web/standalone/.next/required-server-files.json +1 -1
- package/dist/web/standalone/.next/server/app/_global-error/page.js +3 -3
- package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found/page.js +2 -2
- package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.rsc +2 -2
- package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/boot/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/browse-directories/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/captures/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/cleanup/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/dev-mode/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/doctor/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/experimental/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/export-data/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/forensics/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/history/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/hooks/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/inspect/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/knowledge/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/live-state/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/notifications/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/onboarding/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/recovery/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/remote-questions/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/browser/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/command/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/session/events/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/session/events/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/session/manage/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/settings-data/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/shutdown/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/skill-health/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/steer/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/switch-root/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +2 -2
- package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +3 -3
- package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/upload/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/undo/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
- package/dist/web/standalone/.next/server/app/api/visualizer/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/index.html +1 -1
- package/dist/web/standalone/.next/server/app/index.rsc +3 -3
- package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/.next/server/app/page.js +2 -2
- package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/.next/server/app-paths-manifest.json +16 -16
- package/dist/web/standalone/.next/server/chunks/2331.js +16 -16
- package/dist/web/standalone/.next/server/chunks/4741.js +12 -12
- package/dist/web/standalone/.next/server/chunks/5822.js +2 -2
- package/dist/web/standalone/.next/server/chunks/63.js +8 -8
- package/dist/web/standalone/.next/server/chunks/6336.js +1 -0
- package/dist/web/standalone/.next/server/chunks/6897.js +3 -3
- package/dist/web/standalone/.next/server/functions-config-manifest.json +9 -0
- package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/dist/web/standalone/.next/server/middleware-manifest.json +2 -29
- package/dist/web/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/dist/web/standalone/.next/server/middleware.js +12 -4
- package/dist/web/standalone/.next/server/pages/404.html +1 -1
- package/dist/web/standalone/.next/server/pages/500.html +1 -1
- package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
- package/dist/web/standalone/.next/server/webpack-runtime.js +1 -1
- package/dist/web/standalone/.next/static/chunks/{9058.01ef3a463bda88f1.js → 2059.d6f49d697b624f2b.js} +2 -2
- package/dist/web/standalone/.next/static/chunks/2824.461404167557f2cd.js +1 -0
- package/dist/web/standalone/.next/static/chunks/363642f4.c6481b47ee815ba0.js +1 -0
- package/dist/web/standalone/.next/static/chunks/{3794-42fdce068d44fa4f.js → 3794-3fb4e6ee851037bb.js} +1 -1
- package/dist/web/standalone/.next/static/chunks/{4447.5bad7871be61ca73.js → 4447.fe6f304888d5ac71.js} +2 -2
- package/dist/web/standalone/.next/static/chunks/5326.def6842b53fecd26.js +1 -0
- package/dist/web/standalone/.next/static/chunks/{8336.31b019697882acfb.js → 8336.6f6f30e410419aff.js} +1 -1
- package/dist/web/standalone/.next/static/chunks/app/{page-9bf2e0c50fb2ca05.js → page-fab3ebb85b006001.js} +1 -1
- package/dist/web/standalone/.next/static/chunks/{framework-711ef29bc66f648c.js → framework-34a8c4228d7fd161.js} +1 -1
- package/dist/web/standalone/.next/static/chunks/{main-6919d9dd919bd15f.js → main-2b7d1294417bb6bc.js} +1 -1
- package/dist/web/standalone/.next/static/chunks/webpack-d82dbee6356c1733.js +1 -0
- package/dist/web/standalone/.next/static/css/{632cd626b1731d88.css → 54ec2745c1da488b.css} +1 -1
- package/dist/web/standalone/node_modules/@next/env/package.json +1 -1
- package/dist/web/standalone/node_modules/baseline-browser-mapping/dist/index.cjs +1 -1
- package/dist/web/standalone/node_modules/baseline-browser-mapping/package.json +3 -3
- package/dist/web/standalone/node_modules/caniuse-lite/data/agents.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/browserVersions.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/aac.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/abortcontroller.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/ac3-ec3.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/accelerometer.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/addeventlistener.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/alternate-stylesheet.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/ambient-light.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/apng.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/array-find-index.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/array-find.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/array-flat.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/array-includes.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/arrow-functions.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/asmjs.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/async-clipboard.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/async-functions.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/atob-btoa.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/audio-api.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/audio.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/audiotracks.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/autofocus.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/auxclick.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/av1.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/avif.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-attachment.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-clip-text.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-img-opts.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-position-x-y.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-repeat-round-space.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-sync.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/battery-status.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/beacon.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/beforeafterprint.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/bigint.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/blobbuilder.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/bloburls.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/border-image.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/border-radius.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/broadcastchannel.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/brotli.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/calc.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/canvas-blending.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/canvas-text.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/canvas.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/ch-unit.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/chacha20-poly1305.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/channel-messaging.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/childnode-remove.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/classlist.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/clipboard.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/colr-v1.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/colr.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/comparedocumentposition.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/console-basic.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/console-time.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/const.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/constraint-validation.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/contenteditable.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/cookie-store-api.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/cors.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/createimagebitmap.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/credential-management.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/cross-document-view-transitions.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/cryptography.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-all.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-anchor-positioning.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-animation.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-any-link.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-appearance.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-at-counter-style.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-autofill.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-backdrop-filter.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-background-offsets.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-boxshadow.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-canvas.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-caret-color.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-cascade-layers.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-cascade-scope.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-case-insensitive.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-clip-path.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-color-adjust.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-color-function.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-conic-gradients.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-container-queries-style.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-container-queries.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-container-query-units.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-containment.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-content-visibility.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-counters.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-crisp-edges.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-cross-fade.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-default-pseudo.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-deviceadaptation.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-dir-pseudo.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-display-contents.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-element-function.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-env-function.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-exclusions.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-featurequeries.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-file-selector-button.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-filter-function.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-filters.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-first-letter.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-first-line.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-fixed.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-focus-visible.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-focus-within.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-font-palette.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-font-stretch.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-gencontent.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-gradients.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-grid-animation.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-grid-lanes.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-grid.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-has.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-hyphens.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-if.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-image-orientation.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-image-set.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-in-out-of-range.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-initial-letter.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-initial-value.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-lch-lab.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-letter-spacing.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-line-clamp.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-logical-props.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-marker-pseudo.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-masks.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-matches-pseudo.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-math-functions.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-media-interaction.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-media-range-syntax.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-media-resolution.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-media-scripting.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-mediaqueries.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-mixblendmode.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-module-scripts.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-motion-paths.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-namespaces.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-nesting.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-not-sel-list.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-nth-child-of.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-opacity.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-optional-pseudo.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-overflow-anchor.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-overflow-overlay.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-overflow.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-page-break.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-paged-media.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-paint-api.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-placeholder-shown.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-placeholder.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-print-color-adjust.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-read-only-write.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-rebeccapurple.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-reflections.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-regions.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-relative-colors.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-repeating-gradients.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-resize.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-revert-value.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-rrggbbaa.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-scroll-behavior.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-scrollbar.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-sel2.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-sel3.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-selection.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-shapes.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-snappoints.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-sticky.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-subgrid.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-supports-api.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-table.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-align-last.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-box-trim.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-indent.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-justify.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-orientation.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-spacing.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-wrap-balance.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-textshadow.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-touch-action.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-transitions.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-unicode-bidi.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-unset-value.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-variables.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-when-else.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-widows-orphans.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-width-stretch.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-writing-mode.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-zoom.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-attr.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-boxsizing.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-colors.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-cursors-grab.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-cursors-newer.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-cursors.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-tabsize.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/currentcolor.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/custom-elements.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/custom-elementsv1.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/customevent.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/customizable-select.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/datalist.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/dataset.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/datauri.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/decorators.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/details.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/deviceorientation.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/devicepixelratio.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/dialog.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/dispatchevent.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/dnssec.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/do-not-track.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/document-currentscript.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/document-execcommand.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/document-policy.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/document-scrollingelement.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/documenthead.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/dom-manip-convenience.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/dom-range.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/domcontentloaded.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/dommatrix.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/download.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/dragndrop.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/element-closest.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/element-from-point.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/element-scroll-methods.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/eme.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/eot.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/es5.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-class.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-generators.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-module.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-number.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-string-includes.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/eventsource.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/extended-system-fonts.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/feature-policy.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/fetch.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/fieldset-disabled.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/fileapi.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/filereader.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/filereadersync.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/filesystem.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/flac.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/flexbox-gap.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/flexbox.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/flow-root.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/focusin-focusout-events.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-family-system-ui.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-feature.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-kerning.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-loading.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-size-adjust.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-smooth.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-unicode-range.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-variant-alternates.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-variant-numeric.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/fontface.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/form-attribute.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/form-submit-attributes.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/form-validation.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/forms.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/fullscreen.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/gamepad.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/geolocation.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/getboundingclientrect.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/getcomputedstyle.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/getelementsbyclassname.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/getrandomvalues.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/gyroscope.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/hardwareconcurrency.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/hashchange.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/heif.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/hevc.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/hidden.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/high-resolution-time.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/history.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/html-media-capture.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/html5semantic.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/http-live-streaming.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/http2.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/http3.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/iframe-sandbox.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/iframe-seamless.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/iframe-srcdoc.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/imagecapture.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/ime.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/import-maps.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/imports.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/indexeddb.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/indexeddb2.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/inline-block.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/innertext.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-color.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-datetime.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-email-tel-url.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-event.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-file-accept.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-file-directory.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-file-multiple.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-inputmode.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-minlength.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-number.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-pattern.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-placeholder.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-range.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-search.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-selection.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/insert-adjacent.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/insertadjacenthtml.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/internationalization.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/intersectionobserver.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/intl-pluralrules.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/intrinsic-width.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/jpeg2000.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/jpegxl.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/jpegxr.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/json.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-code.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-key.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-location.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-which.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/lazyload.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/let.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-icon-png.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-icon-svg.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-preconnect.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-prefetch.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-preload.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-prerender.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/loading-lazy-attr.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/loading-lazy-media.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/localecompare.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/magnetometer.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/matchesselector.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/matchmedia.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/mathml.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/maxlength.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/media-fragments.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/mediarecorder.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/mediasource.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/menu.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/meta-theme-color.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/meter.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/midi.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/minmaxwh.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/mp3.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/mpeg-dash.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/mpeg4.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/multibackgrounds.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/multicolumn.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/mutation-events.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/mutationobserver.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/namevalue-storage.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/native-filesystem-api.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/nav-timing.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/netinfo.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/notifications.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/object-entries.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/object-fit.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/object-observe.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/object-values.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/objectrtc.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/offline-apps.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/offscreencanvas.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/ogg-vorbis.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/ogv.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/ol-reversed.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/once-event-listener.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/online-status.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/opus.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/orientation-sensor.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/outline.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/pad-start-end.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/page-transition-events.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/pagevisibility.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/passive-event-listener.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/passkeys.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/passwordrules.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/path2d.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/payment-request.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/pdf-viewer.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/permissions-api.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/permissions-policy.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/picture-in-picture.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/picture.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/ping.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/png-alpha.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/pointer-events.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/pointer.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/pointerlock.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/portals.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/prefers-color-scheme.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/progress.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/promise-finally.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/promises.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/proximity.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/proxy.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/publickeypinning.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/push-api.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/queryselector.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/readonly-attr.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/referrer-policy.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/registerprotocolhandler.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/rel-noopener.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/rel-noreferrer.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/rellist.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/rem.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/requestanimationframe.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/requestidlecallback.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/resizeobserver.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/resource-timing.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/rest-parameters.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/rtcpeerconnection.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/ruby.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/run-in.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/screen-orientation.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/script-async.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/script-defer.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/scrollintoview.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/sdch.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/selection-api.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/server-timing.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/serviceworkers.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/setimmediate.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/shadowdom.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/shadowdomv1.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/sharedarraybuffer.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/sharedworkers.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/sni.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/spdy.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/speech-recognition.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/speech-synthesis.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/spellcheck-attribute.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/sql-storage.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/srcset.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/stream.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/streams.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/stricttransportsecurity.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/style-scoped.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/subresource-bundling.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/subresource-integrity.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-css.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-filters.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-fonts.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-fragment.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-html.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-html5.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-img.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-smil.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/sxg.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/tabindex-attr.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/template-literals.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/template.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/temporal.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/testfeat.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/text-decoration.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/text-emphasis.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/text-overflow.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/text-size-adjust.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/text-stroke.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/textcontent.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/textencoder.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/tls1-1.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/tls1-2.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/tls1-3.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/touch.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/transforms2d.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/transforms3d.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/trusted-types.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/ttf.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/typedarrays.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/u2f.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/unhandledrejection.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/url.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/urlsearchparams.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/use-strict.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/user-select-none.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/user-timing.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/variable-fonts.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/vector-effect.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/vibration.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/video.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/videotracks.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/view-transitions.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/viewport-unit-variants.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/viewport-units.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/wai-aria.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/wake-lock.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-bigint.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-bulk-memory.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-extended-const.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-gc.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-multi-memory.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-multi-value.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-mutable-globals.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-nontrapping-fptoint.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-reference-types.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-relaxed-simd.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-signext.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-simd.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-tail-calls.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-threads.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/wav.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/wbr-element.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/web-animation.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/web-app-manifest.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/web-bluetooth.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/web-serial.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/web-share.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/webauthn.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/webcodecs.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/webgl.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/webgl2.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/webgpu.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/webhid.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/webkit-user-drag.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/webm.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/webnfc.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/webp.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/websockets.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/webtransport.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/webusb.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/webvr.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/webvtt.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/webworkers.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/webxr.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/will-change.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/woff.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/woff2.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/word-break.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/wordwrap.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/x-doc-messaging.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/x-frame-options.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/xhr2.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/xhtml.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/xhtmlsmil.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/xml-serializer.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/data/features/zstd.js +1 -1
- package/dist/web/standalone/node_modules/caniuse-lite/package.json +7 -7
- package/dist/web/standalone/node_modules/next/dist/build/swc/index.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/build/webpack-config.js +3 -3
- package/dist/web/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +7 -7
- package/dist/web/standalone/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js +6 -6
- package/dist/web/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
- package/dist/web/standalone/node_modules/next/dist/server/config-schema.js +10 -2
- package/dist/web/standalone/node_modules/next/dist/server/config.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
- package/dist/web/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/server/render.js +27 -20
- package/dist/web/standalone/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
- package/dist/web/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
- package/dist/web/standalone/node_modules/next/package.json +15 -15
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/container.js +26 -18
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/css-syntax-error.js +47 -14
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/input.js +54 -29
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/lazy-result.js +47 -37
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/map-generator.js +26 -9
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/no-work-result.js +57 -55
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/node.js +99 -31
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/parser.js +10 -9
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/previous-map.js +30 -11
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/processor.js +7 -7
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/result.js +5 -5
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/stringifier.js +69 -28
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/tokenize.js +6 -2
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/package.json +48 -48
- package/dist/web/standalone/node_modules/react/cjs/react.development.js +1 -1
- package/dist/web/standalone/node_modules/react/cjs/react.production.js +1 -1
- package/dist/web/standalone/node_modules/react/package.json +1 -1
- package/dist/web/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js +1 -1
- package/dist/web/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js +1 -1
- package/dist/web/standalone/node_modules/react-dom/cjs/react-dom-server.browser.production.js +3 -3
- package/dist/web/standalone/node_modules/react-dom/cjs/react-dom-server.edge.production.js +3 -3
- package/dist/web/standalone/node_modules/react-dom/cjs/react-dom-server.node.production.js +3 -3
- package/dist/web/standalone/node_modules/react-dom/cjs/react-dom.production.js +1 -1
- package/dist/web/standalone/node_modules/react-dom/package.json +2 -2
- package/dist/web/standalone/package.json +12 -7
- package/dist/web/standalone/server.js +1 -1
- package/dist/worktree-cli.d.ts +5 -4
- package/dist/worktree-cli.js +17 -17
- package/package.json +2 -2
- package/packages/mcp-server/README.md +13 -11
- package/packages/mcp-server/dist/env-writer.d.ts +5 -1
- package/packages/mcp-server/dist/env-writer.d.ts.map +1 -1
- package/packages/mcp-server/dist/env-writer.js +41 -8
- package/packages/mcp-server/dist/env-writer.js.map +1 -1
- package/packages/mcp-server/dist/readers/graph.d.ts.map +1 -1
- package/packages/mcp-server/dist/readers/graph.js +7 -6
- package/packages/mcp-server/dist/readers/graph.js.map +1 -1
- package/packages/mcp-server/dist/readers/paths.d.ts +2 -0
- package/packages/mcp-server/dist/readers/paths.d.ts.map +1 -1
- package/packages/mcp-server/dist/readers/paths.js +163 -59
- package/packages/mcp-server/dist/readers/paths.js.map +1 -1
- package/packages/mcp-server/dist/remote-questions.d.ts +27 -0
- package/packages/mcp-server/dist/remote-questions.d.ts.map +1 -1
- package/packages/mcp-server/dist/remote-questions.js +47 -2
- package/packages/mcp-server/dist/remote-questions.js.map +1 -1
- package/packages/mcp-server/dist/server.d.ts +39 -1
- package/packages/mcp-server/dist/server.d.ts.map +1 -1
- package/packages/mcp-server/dist/server.js +228 -52
- package/packages/mcp-server/dist/server.js.map +1 -1
- package/packages/mcp-server/dist/session-manager.d.ts +6 -1
- package/packages/mcp-server/dist/session-manager.d.ts.map +1 -1
- package/packages/mcp-server/dist/session-manager.js +35 -13
- package/packages/mcp-server/dist/session-manager.js.map +1 -1
- package/packages/mcp-server/dist/workflow-tools.d.ts +7 -1
- package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
- package/packages/mcp-server/dist/workflow-tools.js +160 -30
- package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
- package/packages/mcp-server/src/env-writer.test.ts +76 -1
- package/packages/mcp-server/src/env-writer.ts +48 -9
- package/packages/mcp-server/src/import-candidates.test.ts +9 -4
- package/packages/mcp-server/src/mcp-server.test.ts +422 -2
- package/packages/mcp-server/src/parse-workflow-args.test.ts +80 -0
- package/packages/mcp-server/src/readers/graph.test.ts +5 -2
- package/packages/mcp-server/src/readers/graph.ts +14 -6
- package/packages/mcp-server/src/readers/paths.test.ts +67 -0
- package/packages/mcp-server/src/readers/paths.ts +173 -56
- package/packages/mcp-server/src/remote-questions.test.ts +103 -0
- package/packages/mcp-server/src/remote-questions.ts +53 -2
- package/packages/mcp-server/src/server.ts +284 -59
- package/packages/mcp-server/src/session-manager.ts +33 -12
- package/packages/mcp-server/src/workflow-tools.test.ts +230 -136
- package/packages/mcp-server/src/workflow-tools.ts +172 -34
- package/packages/mcp-server/tsconfig.tsbuildinfo +1 -1
- package/packages/native/dist/stream-process/index.js +207 -6
- package/packages/native/src/__tests__/stream-process.test.mjs +51 -18
- package/packages/native/src/stream-process/index.ts +249 -11
- package/packages/native/tsconfig.tsbuildinfo +1 -1
- package/packages/pi-ai/dist/providers/anthropic-bearer-auth.test.js +8 -2
- package/packages/pi-ai/dist/providers/anthropic-bearer-auth.test.js.map +1 -1
- package/packages/pi-ai/dist/providers/minimax-tool-name.test.js +8 -2
- package/packages/pi-ai/dist/providers/minimax-tool-name.test.js.map +1 -1
- package/packages/pi-ai/src/providers/anthropic-bearer-auth.test.ts +8 -2
- package/packages/pi-ai/src/providers/minimax-tool-name.test.ts +9 -2
- package/packages/pi-ai/tsconfig.tsbuildinfo +1 -1
- package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.js +278 -0
- package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/agent-session.d.ts +7 -0
- package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/agent-session.js +125 -55
- package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts +1 -0
- package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/runner.js +43 -2
- package/packages/pi-coding-agent/dist/core/extensions/runner.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/runner.test.js +79 -1
- package/packages/pi-coding-agent/dist/core/extensions/runner.test.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/tools/bash-spawn-windows.test.js +24 -6
- package/packages/pi-coding-agent/dist/core/tools/bash-spawn-windows.test.js.map +1 -1
- package/packages/pi-coding-agent/src/core/agent-session-abort-order.test.ts +319 -0
- package/packages/pi-coding-agent/src/core/agent-session.ts +128 -59
- package/packages/pi-coding-agent/src/core/extensions/runner.test.ts +89 -1
- package/packages/pi-coding-agent/src/core/extensions/runner.ts +46 -2
- package/packages/pi-coding-agent/src/core/tools/bash-spawn-windows.test.ts +26 -6
- package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -1
- package/src/resources/GSD-WORKFLOW.md +29 -42
- package/src/resources/extensions/async-jobs/job-manager.ts +3 -0
- package/src/resources/extensions/bg-shell/bg-shell-lifecycle.ts +3 -2
- package/src/resources/extensions/bg-shell/utilities.ts +2 -1
- package/src/resources/extensions/browser-tools/tools/intent.ts +13 -2
- package/src/resources/extensions/claude-code-cli/stream-adapter.ts +21 -8
- package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +34 -13
- package/src/resources/extensions/github-sync/cli.ts +3 -0
- package/src/resources/extensions/github-sync/sync.ts +88 -58
- package/src/resources/extensions/github-sync/tests/sync-source.test.ts +26 -0
- package/src/resources/extensions/gsd/auto/loop-deps.ts +1 -1
- package/src/resources/extensions/gsd/auto/phases.ts +100 -28
- package/src/resources/extensions/gsd/auto/session.ts +7 -0
- package/src/resources/extensions/gsd/auto-artifact-paths.ts +60 -30
- package/src/resources/extensions/gsd/auto-dashboard.ts +12 -2
- package/src/resources/extensions/gsd/auto-direct-dispatch.ts +2 -0
- package/src/resources/extensions/gsd/auto-dispatch.ts +257 -93
- package/src/resources/extensions/gsd/auto-post-unit.ts +131 -45
- package/src/resources/extensions/gsd/auto-prompts.ts +104 -7
- package/src/resources/extensions/gsd/auto-recovery.ts +75 -13
- package/src/resources/extensions/gsd/auto-start.ts +72 -72
- package/src/resources/extensions/gsd/auto-timeout-recovery.ts +22 -0
- package/src/resources/extensions/gsd/auto-timers.ts +37 -5
- package/src/resources/extensions/gsd/auto-worktree.ts +364 -238
- package/src/resources/extensions/gsd/auto.ts +130 -16
- package/src/resources/extensions/gsd/bootstrap/agent-end-recovery.ts +21 -2
- package/src/resources/extensions/gsd/bootstrap/db-tools.ts +38 -7
- package/src/resources/extensions/gsd/bootstrap/dynamic-tools.ts +9 -84
- package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +98 -18
- package/src/resources/extensions/gsd/bootstrap/system-context.ts +3 -4
- package/src/resources/extensions/gsd/bootstrap/tests/write-gate-basepath.test.ts +103 -0
- package/src/resources/extensions/gsd/bootstrap/write-gate.ts +165 -63
- package/src/resources/extensions/gsd/branch-patterns.ts +3 -3
- package/src/resources/extensions/gsd/commands/catalog.ts +7 -6
- package/src/resources/extensions/gsd/commands/context.ts +40 -6
- package/src/resources/extensions/gsd/commands/dispatcher.ts +11 -5
- package/src/resources/extensions/gsd/commands/handlers/auto.ts +2 -1
- package/src/resources/extensions/gsd/commands/handlers/core.ts +2 -0
- package/src/resources/extensions/gsd/commands/handlers/ops.ts +5 -0
- package/src/resources/extensions/gsd/commands/handlers/workflow.ts +23 -2
- package/src/resources/extensions/gsd/commands-bootstrap.ts +7 -0
- package/src/resources/extensions/gsd/commands-codebase.ts +2 -1
- package/src/resources/extensions/gsd/commands-config.ts +3 -3
- package/src/resources/extensions/gsd/commands-debug.ts +27 -1
- package/src/resources/extensions/gsd/commands-eval-review.ts +716 -0
- package/src/resources/extensions/gsd/commands-extensions.ts +4 -4
- package/src/resources/extensions/gsd/commands-handlers.ts +8 -8
- package/src/resources/extensions/gsd/commands-logs.ts +2 -1
- package/src/resources/extensions/gsd/commands-mcp-status.ts +2 -2
- package/src/resources/extensions/gsd/commands-scan.ts +2 -1
- package/src/resources/extensions/gsd/commands-ship.ts +101 -1
- package/src/resources/extensions/gsd/commands-workflow-templates.ts +5 -4
- package/src/resources/extensions/gsd/context-budget.ts +13 -2
- package/src/resources/extensions/gsd/db-writer.ts +169 -89
- package/src/resources/extensions/gsd/deep-project-setup-policy.ts +257 -0
- package/src/resources/extensions/gsd/delegation-policy.ts +197 -0
- package/src/resources/extensions/gsd/detection.ts +7 -7
- package/src/resources/extensions/gsd/dispatch-guard.ts +6 -11
- package/src/resources/extensions/gsd/docs/preferences-reference.md +6 -4
- package/src/resources/extensions/gsd/doctor-engine-checks.ts +2 -2
- package/src/resources/extensions/gsd/doctor-providers.ts +2 -2
- package/src/resources/extensions/gsd/doctor-runtime-checks.ts +53 -0
- package/src/resources/extensions/gsd/doctor-types.ts +1 -0
- package/src/resources/extensions/gsd/eval-review-schema.ts +243 -0
- package/src/resources/extensions/gsd/forensics.ts +10 -4
- package/src/resources/extensions/gsd/git-service.ts +81 -3
- package/src/resources/extensions/gsd/gsd-db.ts +272 -10
- package/src/resources/extensions/gsd/gsd-home.ts +30 -0
- package/src/resources/extensions/gsd/guided-flow-queue.ts +1 -1
- package/src/resources/extensions/gsd/guided-flow.ts +499 -122
- package/src/resources/extensions/gsd/init-wizard.ts +17 -20
- package/src/resources/extensions/gsd/interrupted-session.ts +39 -2
- package/src/resources/extensions/gsd/key-manager.ts +2 -2
- package/src/resources/extensions/gsd/markdown-renderer.ts +58 -79
- package/src/resources/extensions/gsd/metrics.ts +321 -1
- package/src/resources/extensions/gsd/migrate/command.ts +3 -3
- package/src/resources/extensions/gsd/milestone-scope-classifier.ts +15 -8
- package/src/resources/extensions/gsd/native-git-bridge.ts +19 -41
- package/src/resources/extensions/gsd/onboarding-state.ts +2 -2
- package/src/resources/extensions/gsd/parallel-merge.ts +14 -13
- package/src/resources/extensions/gsd/parallel-monitor-overlay.ts +5 -2
- package/src/resources/extensions/gsd/paths.ts +158 -9
- package/src/resources/extensions/gsd/planning-depth.ts +137 -0
- package/src/resources/extensions/gsd/preferences-models.ts +18 -1
- package/src/resources/extensions/gsd/preferences-skills.ts +2 -1
- package/src/resources/extensions/gsd/preferences-types.ts +11 -0
- package/src/resources/extensions/gsd/preferences-validation.ts +9 -0
- package/src/resources/extensions/gsd/preferences.ts +26 -5
- package/src/resources/extensions/gsd/project-research-policy.ts +259 -0
- package/src/resources/extensions/gsd/prompt-loader.ts +2 -3
- package/src/resources/extensions/gsd/prompts/complete-slice.md +5 -5
- package/src/resources/extensions/gsd/prompts/execute-task.md +3 -3
- package/src/resources/extensions/gsd/prompts/guided-discuss-milestone.md +8 -1
- package/src/resources/extensions/gsd/prompts/guided-discuss-project.md +148 -0
- package/src/resources/extensions/gsd/prompts/guided-discuss-requirements.md +126 -0
- package/src/resources/extensions/gsd/prompts/guided-discuss-slice.md +8 -1
- package/src/resources/extensions/gsd/prompts/guided-research-decision.md +70 -0
- package/src/resources/extensions/gsd/prompts/guided-research-project.md +120 -0
- package/src/resources/extensions/gsd/prompts/guided-workflow-preferences.md +68 -0
- package/src/resources/extensions/gsd/prompts/plan-milestone.md +8 -2
- package/src/resources/extensions/gsd/prompts/plan-slice.md +9 -7
- package/src/resources/extensions/gsd/prompts/refine-slice.md +1 -1
- package/src/resources/extensions/gsd/prompts/system.md +4 -4
- package/src/resources/extensions/gsd/queue-order.ts +6 -1
- package/src/resources/extensions/gsd/repo-identity.ts +15 -9
- package/src/resources/extensions/gsd/rethink.ts +2 -1
- package/src/resources/extensions/gsd/safety/git-checkpoint.ts +10 -1
- package/src/resources/extensions/gsd/schemas/__fixtures__/valid-project.md +26 -0
- package/src/resources/extensions/gsd/schemas/__fixtures__/valid-requirements.md +57 -0
- package/src/resources/extensions/gsd/schemas/__fixtures__/valid-roadmap.md +19 -0
- package/src/resources/extensions/gsd/schemas/parsers.ts +346 -0
- package/src/resources/extensions/gsd/schemas/validate.ts +452 -0
- package/src/resources/extensions/gsd/skill-telemetry.ts +3 -2
- package/src/resources/extensions/gsd/slice-cadence.ts +71 -6
- package/src/resources/extensions/gsd/state.ts +91 -389
- package/src/resources/extensions/gsd/templates/project.md +10 -0
- package/src/resources/extensions/gsd/tests/artifact-corruption-2630.test.ts +1 -0
- package/src/resources/extensions/gsd/tests/artifact-validators.test.ts +524 -0
- package/src/resources/extensions/gsd/tests/auto-dashboard.test.ts +20 -0
- package/src/resources/extensions/gsd/tests/auto-discuss-milestone-deadlock-4973.test.ts +42 -17
- package/src/resources/extensions/gsd/tests/auto-loop.test.ts +97 -31
- package/src/resources/extensions/gsd/tests/auto-paused-session-validation.test.ts +6 -0
- package/src/resources/extensions/gsd/tests/auto-remediate-slice-status.test.ts +21 -34
- package/src/resources/extensions/gsd/tests/auto-session-scope.test.ts +331 -0
- package/src/resources/extensions/gsd/tests/auto-start-clean-runtime-db-gated.test.ts +32 -1
- package/src/resources/extensions/gsd/tests/auto-start-index-lock.test.ts +38 -0
- package/src/resources/extensions/gsd/tests/auto-worktree-registry.test.ts +176 -0
- package/src/resources/extensions/gsd/tests/auto-wrapup-inflight-guard.test.ts +56 -0
- package/src/resources/extensions/gsd/tests/commands-eval-review.test.ts +612 -0
- package/src/resources/extensions/gsd/tests/commands-ship-eval-warn.test.ts +155 -0
- package/src/resources/extensions/gsd/tests/complete-task-rollback-evidence.test.ts +6 -7
- package/src/resources/extensions/gsd/tests/complete-task.test.ts +8 -6
- package/src/resources/extensions/gsd/tests/completed-at-reconcile.test.ts +12 -27
- package/src/resources/extensions/gsd/tests/completed-units-metrics-sync.test.ts +18 -5
- package/src/resources/extensions/gsd/tests/context-budget.test.ts +28 -0
- package/src/resources/extensions/gsd/tests/crash-recovery.test.ts +50 -0
- package/src/resources/extensions/gsd/tests/custom-engine-loop-integration.test.ts +2 -1
- package/src/resources/extensions/gsd/tests/db-path-worktree-symlink.test.ts +4 -4
- package/src/resources/extensions/gsd/tests/db-writer-path-containment.test.ts +152 -0
- package/src/resources/extensions/gsd/tests/db-writer-root-artifact.test.ts +221 -0
- package/src/resources/extensions/gsd/tests/db-writer-scope.test.ts +230 -0
- package/src/resources/extensions/gsd/tests/db-writer.test.ts +165 -21
- package/src/resources/extensions/gsd/tests/debug-command-handler.test.ts +37 -0
- package/src/resources/extensions/gsd/tests/deep-mode-integration.test.ts +406 -0
- package/src/resources/extensions/gsd/tests/deep-planning-mode-dispatch.test.ts +881 -0
- package/src/resources/extensions/gsd/tests/deep-project-auto-loop.test.ts +1562 -0
- package/src/resources/extensions/gsd/tests/deep-project-setup-policy.test.ts +193 -0
- package/src/resources/extensions/gsd/tests/delegation-policy.test.ts +151 -0
- package/src/resources/extensions/gsd/tests/derive-state-crossval.test.ts +6 -5
- package/src/resources/extensions/gsd/tests/derive-state-db-disk-reconcile.test.ts +10 -38
- package/src/resources/extensions/gsd/tests/derive-state-db.test.ts +136 -56
- package/src/resources/extensions/gsd/tests/derive-state-draft.test.ts +3 -0
- package/src/resources/extensions/gsd/tests/derive-state-helpers.test.ts +119 -61
- package/src/resources/extensions/gsd/tests/derive-state.test.ts +4 -0
- package/src/resources/extensions/gsd/tests/dispatch-backgroundable-annotation.test.ts +55 -0
- package/src/resources/extensions/gsd/tests/dispatch-complete-milestone-guard.test.ts +6 -20
- package/src/resources/extensions/gsd/tests/dispatch-guard.test.ts +4 -5
- package/src/resources/extensions/gsd/tests/dispatcher-stuck-planning.test.ts +14 -15
- package/src/resources/extensions/gsd/tests/draft-promotion.test.ts +3 -23
- package/src/resources/extensions/gsd/tests/ensure-db-open.test.ts +11 -16
- package/src/resources/extensions/gsd/tests/escalation.test.ts +2 -1
- package/src/resources/extensions/gsd/tests/eval-review-schema.test.ts +282 -0
- package/src/resources/extensions/gsd/tests/gate-1b-orphan-discrimination.test.ts +193 -0
- package/src/resources/extensions/gsd/tests/gate-1b-recovery-bound-corrections.test.ts +246 -0
- package/src/resources/extensions/gsd/tests/gate-1b-recovery-bound.test.ts +218 -0
- package/src/resources/extensions/gsd/tests/git-checkpoint.test.ts +9 -0
- package/src/resources/extensions/gsd/tests/gsd-db-failed-open-restore.test.ts +117 -0
- package/src/resources/extensions/gsd/tests/gsd-db-workspace-scope.test.ts +226 -0
- package/src/resources/extensions/gsd/tests/gsd-db.test.ts +2 -1
- package/src/resources/extensions/gsd/tests/gsd-home.test.ts +43 -0
- package/src/resources/extensions/gsd/tests/gsd-no-project-error-runtime.test.ts +15 -1
- package/src/resources/extensions/gsd/tests/gsd-root-canonical.test.ts +66 -0
- package/src/resources/extensions/gsd/tests/gsd-root-home-guard.test.ts +149 -0
- package/src/resources/extensions/gsd/tests/gsdroot-worktree-detection.test.ts +15 -36
- package/src/resources/extensions/gsd/tests/guided-flow-prompt-consolidation.test.ts +133 -0
- package/src/resources/extensions/gsd/tests/handler-worktree-write-isolation.test.ts +57 -0
- package/src/resources/extensions/gsd/tests/has-pending-deep-stage.test.ts +98 -0
- package/src/resources/extensions/gsd/tests/init-skip-git.test.ts +19 -0
- package/src/resources/extensions/gsd/tests/init-wizard.test.ts +17 -0
- package/src/resources/extensions/gsd/tests/integration/auto-worktree.test.ts +1 -0
- package/src/resources/extensions/gsd/tests/integration/commands-eval-review.integration.test.ts +254 -0
- package/src/resources/extensions/gsd/tests/integration/doctor-runtime.test.ts +40 -0
- package/src/resources/extensions/gsd/tests/integration/git-service.test.ts +42 -0
- package/src/resources/extensions/gsd/tests/integration/parallel-merge.test.ts +15 -15
- package/src/resources/extensions/gsd/tests/integration/state-machine-edge-cases.test.ts +15 -5
- package/src/resources/extensions/gsd/tests/integration/workspace-collapse-integration.test.ts +371 -0
- package/src/resources/extensions/gsd/tests/journal-integration.test.ts +124 -7
- package/src/resources/extensions/gsd/tests/markdown-renderer.test.ts +84 -9
- package/src/resources/extensions/gsd/tests/md-importer.test.ts +2 -1
- package/src/resources/extensions/gsd/tests/memory-store.test.ts +3 -2
- package/src/resources/extensions/gsd/tests/metrics-atomic-merge.test.ts +222 -0
- package/src/resources/extensions/gsd/tests/metrics-lock-hardening.test.ts +400 -0
- package/src/resources/extensions/gsd/tests/metrics-lock-not-acquired.test.ts +141 -0
- package/src/resources/extensions/gsd/tests/metrics-lock-retry-sleep.test.ts +287 -0
- package/src/resources/extensions/gsd/tests/metrics-prune-cache-invalidation.test.ts +149 -0
- package/src/resources/extensions/gsd/tests/metrics-scope.test.ts +378 -0
- package/src/resources/extensions/gsd/tests/milestone-scope-classifier.test.ts +19 -0
- package/src/resources/extensions/gsd/tests/model-unittype-mapping.test.ts +19 -0
- package/src/resources/extensions/gsd/tests/native-git-bridge-exec-fallback.test.ts +22 -2
- package/src/resources/extensions/gsd/tests/none-mode-gates.test.ts +51 -3
- package/src/resources/extensions/gsd/tests/originalbase-path-comparison.test.ts +329 -0
- package/src/resources/extensions/gsd/tests/park-milestone.test.ts +2 -0
- package/src/resources/extensions/gsd/tests/path-cache-decoupled.test.ts +209 -0
- package/src/resources/extensions/gsd/tests/path-normalization-unified.test.ts +175 -0
- package/src/resources/extensions/gsd/tests/paths-cache.test.ts +170 -0
- package/src/resources/extensions/gsd/tests/pending-autostart-scope.test.ts +120 -0
- package/src/resources/extensions/gsd/tests/plan-milestone-artifact-verification.test.ts +40 -0
- package/src/resources/extensions/gsd/tests/plan-slice-prompt.test.ts +0 -43
- package/src/resources/extensions/gsd/tests/plan-slice.test.ts +33 -0
- package/src/resources/extensions/gsd/tests/planning-depth-setter.test.ts +172 -0
- package/src/resources/extensions/gsd/tests/post-unit-git-failure.test.ts +18 -0
- package/src/resources/extensions/gsd/tests/preferences.test.ts +72 -0
- package/src/resources/extensions/gsd/tests/prefs-wizard-coverage.test.ts +1 -0
- package/src/resources/extensions/gsd/tests/progressive-planning.test.ts +25 -16
- package/src/resources/extensions/gsd/tests/project-root-cwd-crash.test.ts +4 -4
- package/src/resources/extensions/gsd/tests/projection-regression.test.ts +1 -0
- package/src/resources/extensions/gsd/tests/prompt-budget-enforcement.test.ts +2 -2
- package/src/resources/extensions/gsd/tests/prompt-contracts.test.ts +232 -28
- package/src/resources/extensions/gsd/tests/quality-gates.test.ts +7 -16
- package/src/resources/extensions/gsd/tests/ready-phrase-no-files-4573.test.ts +267 -0
- package/src/resources/extensions/gsd/tests/register-hooks-compaction-checkpoint.test.ts +6 -1
- package/src/resources/extensions/gsd/tests/register-hooks-depth-verification.test.ts +286 -8
- package/src/resources/extensions/gsd/tests/replan-slice.test.ts +3 -0
- package/src/resources/extensions/gsd/tests/resolve-ts.mjs +4 -0
- package/src/resources/extensions/gsd/tests/resume-missing-worktree-warning.test.ts +209 -0
- package/src/resources/extensions/gsd/tests/rogue-file-detection.test.ts +3 -4
- package/src/resources/extensions/gsd/tests/slice-cadence.test.ts +36 -0
- package/src/resources/extensions/gsd/tests/slice-disk-reconcile.test.ts +10 -56
- package/src/resources/extensions/gsd/tests/stale-slice-rows.test.ts +15 -16
- package/src/resources/extensions/gsd/tests/start-auto-detached.test.ts +53 -0
- package/src/resources/extensions/gsd/tests/stash-pop-gsd-conflict.test.ts +8 -2
- package/src/resources/extensions/gsd/tests/stash-queued-context-files.test.ts +12 -6
- package/src/resources/extensions/gsd/tests/state-corruption-2945.test.ts +1 -0
- package/src/resources/extensions/gsd/tests/state-machine-full-walkthrough.test.ts +23 -27
- package/src/resources/extensions/gsd/tests/steer-worktree-path.test.ts +13 -14
- package/src/resources/extensions/gsd/tests/stop-auto-remote.test.ts +4 -3
- package/src/resources/extensions/gsd/tests/sync-layer-scope.test.ts +453 -0
- package/src/resources/extensions/gsd/tests/sync-worktree-skip-current.test.ts +10 -33
- package/src/resources/extensions/gsd/tests/teardown-chdir-failure-clears-registry.test.ts +162 -0
- package/src/resources/extensions/gsd/tests/teardown-cleanup-parity.test.ts +102 -0
- package/src/resources/extensions/gsd/tests/teardown-failure-clears-registry.test.ts +186 -0
- package/src/resources/extensions/gsd/tests/token-counter.test.ts +9 -0
- package/src/resources/extensions/gsd/tests/tool-invocation-error-loop-break.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/tool-param-optionality.test.ts +34 -0
- package/src/resources/extensions/gsd/tests/unit-context-manifest.test.ts +10 -0
- package/src/resources/extensions/gsd/tests/unit-runtime.test.ts +41 -0
- package/src/resources/extensions/gsd/tests/uok-plan-v2-wiring.test.ts +48 -0
- package/src/resources/extensions/gsd/tests/validate-milestone-write-order.test.ts +7 -8
- package/src/resources/extensions/gsd/tests/validate-milestone.test.ts +9 -15
- package/src/resources/extensions/gsd/tests/validator-scope-parity.test.ts +239 -0
- package/src/resources/extensions/gsd/tests/verify-artifact-tightened.test.ts +52 -1
- package/src/resources/extensions/gsd/tests/workflow-logger-wiring.test.ts +12 -7
- package/src/resources/extensions/gsd/tests/workflow-mcp-auto-prep.test.ts +4 -4
- package/src/resources/extensions/gsd/tests/workflow-mcp.test.ts +83 -4
- package/src/resources/extensions/gsd/tests/workflow-tool-executors.test.ts +241 -4
- package/src/resources/extensions/gsd/tests/workspace.test.ts +196 -0
- package/src/resources/extensions/gsd/tests/worktree-db-same-file.test.ts +13 -0
- package/src/resources/extensions/gsd/tests/worktree-main-branch.test.ts +5 -0
- package/src/resources/extensions/gsd/tests/worktree-path-injection.test.ts +2 -1
- package/src/resources/extensions/gsd/tests/worktree-resolver.test.ts +103 -0
- package/src/resources/extensions/gsd/tests/worktree-root-resolution.test.ts +50 -0
- package/src/resources/extensions/gsd/tests/worktree-root.test.ts +69 -0
- package/src/resources/extensions/gsd/tests/worktree-sync-milestones.test.ts +65 -71
- package/src/resources/extensions/gsd/tests/worktree-sync-tasks.test.ts +26 -151
- package/src/resources/extensions/gsd/tests/write-gate-predicates.test.ts +43 -41
- package/src/resources/extensions/gsd/tests/write-gate.test.ts +180 -57
- package/src/resources/extensions/gsd/tests/write-intercept.test.ts +1 -1
- package/src/resources/extensions/gsd/token-counter.ts +2 -1
- package/src/resources/extensions/gsd/tools/complete-milestone.ts +7 -5
- package/src/resources/extensions/gsd/tools/complete-slice.ts +7 -14
- package/src/resources/extensions/gsd/tools/complete-task.ts +19 -34
- package/src/resources/extensions/gsd/tools/plan-slice.ts +10 -9
- package/src/resources/extensions/gsd/tools/validate-milestone.ts +7 -5
- package/src/resources/extensions/gsd/tools/workflow-tool-executors.ts +81 -14
- package/src/resources/extensions/gsd/unit-context-manifest.ts +97 -1
- package/src/resources/extensions/gsd/unit-runtime.ts +76 -24
- package/src/resources/extensions/gsd/uok/plan-v2.ts +19 -1
- package/src/resources/extensions/gsd/user-input-boundary.ts +166 -0
- package/src/resources/extensions/gsd/watch/header-renderer.ts +2 -1
- package/src/resources/extensions/gsd/workflow-install.ts +2 -3
- package/src/resources/extensions/gsd/workflow-manifest.ts +4 -1
- package/src/resources/extensions/gsd/workflow-mcp-auto-prep.ts +2 -18
- package/src/resources/extensions/gsd/workflow-mcp.ts +43 -6
- package/src/resources/extensions/gsd/workflow-migration.ts +4 -3
- package/src/resources/extensions/gsd/workflow-plugins.ts +4 -5
- package/src/resources/extensions/gsd/workflow-reconcile.ts +3 -3
- package/src/resources/extensions/gsd/workflow-templates.ts +2 -3
- package/src/resources/extensions/gsd/workspace.ts +95 -0
- package/src/resources/extensions/gsd/worktree-command.ts +4 -3
- package/src/resources/extensions/gsd/worktree-manager.ts +6 -6
- package/src/resources/extensions/gsd/worktree-resolver.ts +47 -9
- package/src/resources/extensions/gsd/worktree-root.ts +47 -9
- package/src/resources/extensions/gsd/write-intercept.ts +3 -3
- package/src/resources/extensions/mcp-client/index.ts +2 -2
- package/src/resources/extensions/remote-questions/remote-command.ts +2 -1
- package/src/resources/extensions/remote-questions/status.ts +2 -6
- package/src/resources/extensions/remote-questions/store.ts +2 -6
- package/src/resources/extensions/search-the-web/provider.ts +9 -8
- package/src/resources/extensions/shared/next-action-ui.ts +8 -0
- package/src/resources/extensions/shared/tests/next-action-ui-hasui.test.ts +112 -0
- package/src/resources/extensions/subagent/index.ts +22 -9
- package/src/resources/extensions/subagent/isolation.ts +2 -2
- package/src/resources/extensions/subagent/tests/model-override.test.ts +55 -0
- package/src/resources/extensions/ttsr/rule-loader.ts +2 -3
- package/src/resources/extensions/voice/index.ts +3 -2
- package/src/resources/extensions/voice/linux-ready.ts +2 -3
- package/src/resources/skills/verify-before-complete/SKILL.md +1 -1
- package/dist/resources/extensions/gsd/auto-loop.js +0 -13
- package/dist/resources/extensions/gsd/home-dir.js +0 -16
- package/dist/resources/extensions/gsd/prompts/guided-complete-slice.md +0 -3
- package/dist/resources/extensions/gsd/prompts/guided-execute-task.md +0 -3
- package/dist/resources/extensions/gsd/prompts/guided-plan-milestone.md +0 -30
- package/dist/resources/extensions/gsd/prompts/guided-plan-slice.md +0 -3
- package/dist/web/standalone/.next/server/chunks/1926.js +0 -1
- package/dist/web/standalone/.next/server/edge-runtime-webpack.js +0 -2
- package/dist/web/standalone/.next/static/chunks/2824.08296bc2f9654698.js +0 -1
- package/dist/web/standalone/.next/static/chunks/363642f4.cf8b455e0d94b478.js +0 -1
- package/dist/web/standalone/.next/static/chunks/5326.adc4bf49a22f4e67.js +0 -1
- package/dist/web/standalone/.next/static/chunks/webpack-f9f0dc45e4f3ac10.js +0 -1
- package/dist/web/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +0 -1
- package/dist/web/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
- package/dist/web/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +0 -42
- package/dist/web/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +0 -30
- package/dist/web/standalone/node_modules/@img/sharp-linuxmusl-x64/LICENSE +0 -191
- package/dist/web/standalone/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
- package/dist/web/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +0 -46
- package/src/resources/extensions/gsd/auto-loop.ts +0 -16
- package/src/resources/extensions/gsd/home-dir.ts +0 -19
- package/src/resources/extensions/gsd/prompts/guided-complete-slice.md +0 -3
- package/src/resources/extensions/gsd/prompts/guided-execute-task.md +0 -3
- package/src/resources/extensions/gsd/prompts/guided-plan-milestone.md +0 -30
- package/src/resources/extensions/gsd/prompts/guided-plan-slice.md +0 -3
- package/src/resources/extensions/gsd/tests/home-dir.test.ts +0 -52
- package/dist/web/standalone/.next/static/{4iu6IYeYfxOq8OidlDqp6 → X7_3k2EBYa-pIRIFXU3sv}/_buildManifest.js +0 -0
- package/dist/web/standalone/.next/static/{4iu6IYeYfxOq8OidlDqp6 → X7_3k2EBYa-pIRIFXU3sv}/_ssgManifest.js +0 -0
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/at-rule.js +0 -0
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/comment.js +0 -0
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/declaration.js +4 -4
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/document.js +0 -0
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/fromJSON.js +3 -3
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/list.js +0 -0
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/parse.js +1 -1
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/postcss.js +12 -12
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/root.js +0 -0
- package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/rule.js +6 -6
- /package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/stringify.js +0 -0
- /package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/symbols.js +0 -0
- /package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/terminal-highlight.js +0 -0
- /package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/warn-once.js +0 -0
- /package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/warning.js +0 -0
- /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/classes/comparator.js +0 -0
- /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/classes/range.js +0 -0
- /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/classes/semver.js +0 -0
- /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/cmp.js +0 -0
- /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/coerce.js +0 -0
- /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/compare.js +0 -0
- /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/eq.js +0 -0
- /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/gt.js +0 -0
- /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/gte.js +0 -0
- /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/lt.js +0 -0
- /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/lte.js +0 -0
- /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/neq.js +0 -0
- /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/parse.js +0 -0
- /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/satisfies.js +0 -0
- /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/constants.js +0 -0
- /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/debug.js +0 -0
- /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/identifiers.js +0 -0
- /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/lrucache.js +0 -0
- /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/parse-options.js +0 -0
- /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/re.js +0 -0
- /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/package.json +0 -0
|
@@ -7,23 +7,23 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { showNextAction } from "../shared/tui.js";
|
|
9
9
|
import { loadFile, saveFile } from "./files.js";
|
|
10
|
-
import { isDbAvailable, getMilestoneSlices } from "./gsd-db.js";
|
|
10
|
+
import { isDbAvailable, getMilestone, getMilestoneSlices } from "./gsd-db.js";
|
|
11
11
|
import { parseRoadmapSlices } from "./roadmap-slices.js";
|
|
12
12
|
import { loadPrompt, inlineTemplate } from "./prompt-loader.js";
|
|
13
|
-
import { buildDiscussMilestonePrompt, buildSkillActivationBlock } from "./auto-prompts.js";
|
|
14
|
-
import { deriveState } from "./state.js";
|
|
13
|
+
import { buildCompleteSlicePrompt, buildDiscussMilestonePrompt, buildExecuteTaskPrompt, buildPlanMilestonePrompt, buildPlanSlicePrompt, buildSkillActivationBlock, } from "./auto-prompts.js";
|
|
14
|
+
import { deriveState, isGhostMilestone } from "./state.js";
|
|
15
15
|
import { invalidateAllCaches } from "./cache.js";
|
|
16
16
|
import { startAutoDetached } from "./auto.js";
|
|
17
17
|
import { clearLock } from "./crash-recovery.js";
|
|
18
18
|
import { assessInterruptedSession, formatInterruptedSessionRunningMessage, formatInterruptedSessionSummary, } from "./interrupted-session.js";
|
|
19
19
|
import { listUnitRuntimeRecords, clearUnitRuntimeRecord } from "./unit-runtime.js";
|
|
20
20
|
import { resolveExpectedArtifactPath } from "./auto.js";
|
|
21
|
-
import {
|
|
22
|
-
import { gsdRoot, milestonesDir, resolveMilestoneFile, resolveSliceFile, resolveSlicePath, resolveGsdRootFile, relGsdRootFile, relMilestoneFile, relSliceFile, } from "./paths.js";
|
|
21
|
+
import { gsdHome } from "./gsd-home.js";
|
|
22
|
+
import { gsdRoot, milestonesDir, resolveMilestoneFile, resolveMilestonePath, resolveSliceFile, resolveSlicePath, resolveGsdRootFile, relGsdRootFile, relMilestoneFile, relSliceFile, clearPathCache, } from "./paths.js";
|
|
23
23
|
import { join } from "node:path";
|
|
24
|
-
import { readFileSync, existsSync, mkdirSync, readdirSync, unlinkSync } from "node:fs";
|
|
24
|
+
import { readFileSync, existsSync, mkdirSync, readdirSync, rmSync, unlinkSync } from "node:fs";
|
|
25
25
|
import { readSessionLockData, isSessionLockProcessAlive } from "./session-lock.js";
|
|
26
|
-
import { nativeIsRepo, nativeInit } from "./native-git-bridge.js";
|
|
26
|
+
import { nativeAddAll, nativeCommit, nativeHasCommittedHead, nativeIsRepo, nativeInit } from "./native-git-bridge.js";
|
|
27
27
|
import { isInheritedRepo } from "./repo-identity.js";
|
|
28
28
|
import { ensureGitignore, ensurePreferences, untrackRuntimeFiles } from "./gitignore.js";
|
|
29
29
|
import { loadEffectiveGSDPreferences } from "./preferences.js";
|
|
@@ -42,10 +42,40 @@ import { selectAndApplyModel } from "./auto-model-selection.js";
|
|
|
42
42
|
import { DISCUSS_TOOLS_ALLOWLIST } from "./constants.js";
|
|
43
43
|
import { getWorkflowTransportSupportError, getRequiredWorkflowToolsForGuidedUnit, supportsStructuredQuestions, } from "./workflow-mcp.js";
|
|
44
44
|
import { runPreparation, formatCodebaseBrief, formatPriorContextBrief, } from "./preparation.js";
|
|
45
|
+
import { verifyExpectedArtifact } from "./auto-recovery.js";
|
|
46
|
+
import { createWorkspace, scopeMilestone } from "./workspace.js";
|
|
45
47
|
// ─── Re-exports (preserve public API for existing importers) ────────────────
|
|
46
48
|
export { MILESTONE_ID_RE, generateMilestoneSuffix, nextMilestoneId, extractMilestoneSeq, parseMilestoneId, milestoneIdSort, maxMilestoneNum, findMilestoneIds, reserveMilestoneId, claimReservedId, getReservedMilestoneIds, clearReservedMilestoneIds, } from "./milestone-ids.js";
|
|
47
49
|
export { showQueue, handleQueueReorder, showQueueAdd, buildExistingMilestonesContext, } from "./guided-flow-queue.js";
|
|
48
50
|
import { logWarning } from "./workflow-logger.js";
|
|
51
|
+
// ─── Scope-based validator wrappers ──────────────────────────────────────────
|
|
52
|
+
// These thin wrappers accept a MilestoneScope so callers that already hold a
|
|
53
|
+
// pinned scope never have to re-derive (basePath, milestoneId) separately.
|
|
54
|
+
// The underlying implementations in auto-recovery.ts / auto-artifact-paths.ts /
|
|
55
|
+
// state.ts are unchanged — only the call surface in guided-flow.ts is migrated.
|
|
56
|
+
/**
|
|
57
|
+
* Scope-based overload of verifyExpectedArtifact.
|
|
58
|
+
* Uses scope.workspace.projectRoot as the authoritative base path, making
|
|
59
|
+
* the check immune to cwd-drift and worktree-path divergence.
|
|
60
|
+
*/
|
|
61
|
+
export function verifyExpectedArtifactForScope(scope, unitType, unitId) {
|
|
62
|
+
return verifyExpectedArtifact(unitType, unitId, scope.workspace.projectRoot);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Scope-based overload of resolveExpectedArtifactPath.
|
|
66
|
+
* Returns the canonical absolute path (or null) using the scope's projectRoot.
|
|
67
|
+
*/
|
|
68
|
+
export function resolveExpectedArtifactPathForScope(scope, unitType, unitId) {
|
|
69
|
+
return resolveExpectedArtifactPath(unitType, unitId, scope.workspace.projectRoot);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Scope-based overload of isGhostMilestone.
|
|
73
|
+
* Binds basePath and milestoneId from the scope, ensuring path resolution
|
|
74
|
+
* uses the canonical project root regardless of the cwd at call time.
|
|
75
|
+
*/
|
|
76
|
+
export function isGhostMilestoneByScope(scope) {
|
|
77
|
+
return isGhostMilestone(scope.workspace.projectRoot, scope.milestoneId);
|
|
78
|
+
}
|
|
49
79
|
function needsPlanV2Gate(state) {
|
|
50
80
|
return state.phase === "executing"
|
|
51
81
|
|| state.phase === "summarizing"
|
|
@@ -53,7 +83,7 @@ function needsPlanV2Gate(state) {
|
|
|
53
83
|
|| state.phase === "completing-milestone";
|
|
54
84
|
}
|
|
55
85
|
function runPlanV2Gate(ctx, basePath, state) {
|
|
56
|
-
const prefs = loadEffectiveGSDPreferences()?.preferences;
|
|
86
|
+
const prefs = loadEffectiveGSDPreferences(basePath)?.preferences;
|
|
57
87
|
const uokFlags = resolveUokFlags(prefs);
|
|
58
88
|
if (!uokFlags.planV2 || !needsPlanV2Gate(state))
|
|
59
89
|
return "pass";
|
|
@@ -76,29 +106,93 @@ function buildDocsCommitInstruction(_message) {
|
|
|
76
106
|
// #4573: cap for how many times we nudge the LLM after a premature ready
|
|
77
107
|
// phrase before giving up and asking the user to re-run /gsd.
|
|
78
108
|
const MAX_READY_REJECTS = 2;
|
|
109
|
+
// H1 (#5012): cap for Gate 1b plan-blocked recovery hints. After this many
|
|
110
|
+
// consecutive recovery attempts the loop is stopped and the user is directed
|
|
111
|
+
// to investigate manually.
|
|
112
|
+
const MAX_PLAN_BLOCKED_RECOVERIES = 3;
|
|
79
113
|
// #4573: matches the canonical ready phrase the discuss prompt asks the LLM
|
|
80
114
|
// to emit. Accepts any M-prefixed milestone ID (three digits + optional
|
|
81
115
|
// suffix) with optional trailing punctuation.
|
|
82
116
|
const READY_PHRASE_RE = /\bMilestone\s+M\d{3}[A-Z0-9-]*\s+ready\.?/i;
|
|
83
117
|
const pendingAutoStartMap = new Map();
|
|
118
|
+
const pendingDeepProjectSetupMap = new Map();
|
|
119
|
+
const USER_DRIVEN_DEEP_SETUP_UNITS = new Set([
|
|
120
|
+
"discuss-project",
|
|
121
|
+
"discuss-requirements",
|
|
122
|
+
"research-decision",
|
|
123
|
+
]);
|
|
124
|
+
const FOREGROUND_DEEP_SETUP_RULE_NAMES = new Set([
|
|
125
|
+
"deep: pre-planning (no workflow prefs) → workflow-preferences",
|
|
126
|
+
"deep: pre-planning (no PROJECT) → discuss-project",
|
|
127
|
+
"deep: pre-planning (no REQUIREMENTS) → discuss-requirements",
|
|
128
|
+
"deep: pre-planning (no research decision) → research-decision",
|
|
129
|
+
]);
|
|
130
|
+
const LEGACY_DEEP_SETUP_PSEUDO_MILESTONE_DIRS = new Set([
|
|
131
|
+
"PROJECT",
|
|
132
|
+
"REQUIREMENTS",
|
|
133
|
+
"RESEARCH-DECISION",
|
|
134
|
+
"RESEARCH-PROJECT",
|
|
135
|
+
"WORKFLOW-PREFS",
|
|
136
|
+
]);
|
|
137
|
+
const FOREGROUND_DEEP_SETUP_QUESTION_POLICY = `## Foreground Deep Setup Question Policy
|
|
138
|
+
|
|
139
|
+
This stage is running inside the foreground \`/gsd new-project --deep\` interview. Ask user questions in plain chat only.
|
|
140
|
+
|
|
141
|
+
- Do NOT call \`ask_user_questions\`, \`AskUserQuestion\`, or ToolSearch to discover user-input tools.
|
|
142
|
+
- Ask one focused round, then stop and wait for the user's normal chat response.`;
|
|
84
143
|
/**
|
|
85
144
|
* Backward-compat bridge: returns a mutable reference to the entry matching
|
|
86
145
|
* basePath, or the sole entry when only one session exists.
|
|
87
|
-
*
|
|
146
|
+
* Exported for testing — internal use only in production code.
|
|
88
147
|
*/
|
|
89
|
-
function _getPendingAutoStart(basePath) {
|
|
148
|
+
export function _getPendingAutoStart(basePath) {
|
|
90
149
|
if (basePath)
|
|
91
150
|
return pendingAutoStartMap.get(basePath) ?? null;
|
|
92
151
|
if (pendingAutoStartMap.size === 1)
|
|
93
152
|
return pendingAutoStartMap.values().next().value;
|
|
94
153
|
return null;
|
|
95
154
|
}
|
|
155
|
+
function hasNestedFileOrSymlink(dir) {
|
|
156
|
+
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
157
|
+
if (entry.isFile() || entry.isSymbolicLink())
|
|
158
|
+
return true;
|
|
159
|
+
if (entry.isDirectory() && hasNestedFileOrSymlink(join(dir, entry.name)))
|
|
160
|
+
return true;
|
|
161
|
+
}
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
function clearEmptyLegacyDeepSetupPseudoMilestones(basePath, entries) {
|
|
165
|
+
const mDir = milestonesDir(basePath);
|
|
166
|
+
const remaining = [];
|
|
167
|
+
for (const entry of entries) {
|
|
168
|
+
if (!LEGACY_DEEP_SETUP_PSEUDO_MILESTONE_DIRS.has(entry)) {
|
|
169
|
+
remaining.push(entry);
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
const entryPath = join(mDir, entry);
|
|
173
|
+
try {
|
|
174
|
+
if (hasNestedFileOrSymlink(entryPath)) {
|
|
175
|
+
remaining.push(entry);
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
rmSync(entryPath, { recursive: true, force: true });
|
|
179
|
+
logWarning("guided", `Self-heal: removed empty legacy deep setup pseudo-milestone directory ${entry}`);
|
|
180
|
+
}
|
|
181
|
+
catch (err) {
|
|
182
|
+
remaining.push(entry);
|
|
183
|
+
logWarning("guided", `legacy deep setup pseudo-milestone cleanup failed for ${entry}: ${err.message}`);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return remaining;
|
|
187
|
+
}
|
|
96
188
|
/**
|
|
97
189
|
* Store pending auto-start state for a project.
|
|
98
190
|
* Exported for testing (#2985).
|
|
99
191
|
*/
|
|
100
192
|
export function setPendingAutoStart(basePath, entry) {
|
|
101
|
-
|
|
193
|
+
const ws = createWorkspace(entry.basePath);
|
|
194
|
+
const scope = scopeMilestone(ws, entry.milestoneId);
|
|
195
|
+
pendingAutoStartMap.set(basePath, { createdAt: Date.now(), planBlockedRecoveryCount: 0, ...entry, scope });
|
|
102
196
|
}
|
|
103
197
|
/**
|
|
104
198
|
* Clear pending auto-start state.
|
|
@@ -113,6 +207,14 @@ export function clearPendingAutoStart(basePath) {
|
|
|
113
207
|
pendingAutoStartMap.clear();
|
|
114
208
|
}
|
|
115
209
|
}
|
|
210
|
+
export function clearPendingDeepProjectSetup(basePath) {
|
|
211
|
+
if (basePath) {
|
|
212
|
+
pendingDeepProjectSetupMap.delete(basePath);
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
pendingDeepProjectSetupMap.clear();
|
|
216
|
+
}
|
|
217
|
+
}
|
|
116
218
|
/**
|
|
117
219
|
* Returns the milestoneId being discussed for the given project.
|
|
118
220
|
* When basePath is omitted and only one session is active, returns that
|
|
@@ -129,6 +231,126 @@ export function getDiscussionMilestoneId(basePath) {
|
|
|
129
231
|
}
|
|
130
232
|
return null;
|
|
131
233
|
}
|
|
234
|
+
function _getPendingDeepProjectSetup(basePath) {
|
|
235
|
+
if (basePath)
|
|
236
|
+
return pendingDeepProjectSetupMap.get(basePath) ?? null;
|
|
237
|
+
if (pendingDeepProjectSetupMap.size === 1)
|
|
238
|
+
return pendingDeepProjectSetupMap.values().next().value;
|
|
239
|
+
return null;
|
|
240
|
+
}
|
|
241
|
+
function getDeepSetupSessionId(ctx) {
|
|
242
|
+
return ctx?.sessionManager?.getSessionId?.();
|
|
243
|
+
}
|
|
244
|
+
function _getPendingDeepProjectSetupForContext(ctx, basePath) {
|
|
245
|
+
if (basePath) {
|
|
246
|
+
const direct = pendingDeepProjectSetupMap.get(basePath);
|
|
247
|
+
if (direct)
|
|
248
|
+
return direct;
|
|
249
|
+
}
|
|
250
|
+
if (!ctx)
|
|
251
|
+
return _getPendingDeepProjectSetup();
|
|
252
|
+
const sessionId = getDeepSetupSessionId(ctx);
|
|
253
|
+
if (sessionId) {
|
|
254
|
+
const matches = [...pendingDeepProjectSetupMap.values()].filter(entry => entry.sessionId === sessionId);
|
|
255
|
+
if (matches.length === 1)
|
|
256
|
+
return matches[0];
|
|
257
|
+
}
|
|
258
|
+
const matches = [...pendingDeepProjectSetupMap.values()].filter(entry => entry.ctx === ctx);
|
|
259
|
+
return matches.length === 1 ? matches[0] : null;
|
|
260
|
+
}
|
|
261
|
+
export function getPendingDeepProjectSetupUnitForContext(ctx, basePath) {
|
|
262
|
+
const entry = _getPendingDeepProjectSetupForContext(ctx, basePath);
|
|
263
|
+
if (!entry?.currentUnitType || !entry.currentUnitId)
|
|
264
|
+
return null;
|
|
265
|
+
return {
|
|
266
|
+
unitType: entry.currentUnitType,
|
|
267
|
+
unitId: entry.currentUnitId,
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
export async function startDeepProjectSetupForeground(ctx, pi, basePath, step) {
|
|
271
|
+
const entry = {
|
|
272
|
+
ctx,
|
|
273
|
+
pi,
|
|
274
|
+
basePath,
|
|
275
|
+
step,
|
|
276
|
+
createdAt: Date.now(),
|
|
277
|
+
sessionId: getDeepSetupSessionId(ctx),
|
|
278
|
+
};
|
|
279
|
+
pendingDeepProjectSetupMap.set(basePath, entry);
|
|
280
|
+
await dispatchNextDeepProjectSetupStage(entry);
|
|
281
|
+
}
|
|
282
|
+
export async function checkDeepProjectSetupAfterTurn(_event, ctx, basePath) {
|
|
283
|
+
const entry = _getPendingDeepProjectSetupForContext(ctx, basePath);
|
|
284
|
+
if (!entry)
|
|
285
|
+
return false;
|
|
286
|
+
if (entry.currentUnitType && entry.currentUnitId) {
|
|
287
|
+
// TODO(C-future): PendingDeepProjectSetupEntry does not carry a MilestoneScope
|
|
288
|
+
// because deep-project-setup units span non-milestone unit types (discuss-project,
|
|
289
|
+
// discuss-requirements, etc.). Migrate to verifyExpectedArtifactForScope once
|
|
290
|
+
// PendingDeepProjectSetupEntry is extended with a scope field.
|
|
291
|
+
const artifactReady = verifyExpectedArtifact(entry.currentUnitType, entry.currentUnitId, entry.basePath);
|
|
292
|
+
if (!artifactReady) {
|
|
293
|
+
return false;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
return dispatchNextDeepProjectSetupStage(entry);
|
|
297
|
+
}
|
|
298
|
+
async function dispatchNextDeepProjectSetupStage(entry) {
|
|
299
|
+
invalidateAllCaches();
|
|
300
|
+
const prefs = loadEffectiveGSDPreferences(entry.basePath)?.preferences;
|
|
301
|
+
const { DISPATCH_RULES, hasPendingDeepStage } = await import("./auto-dispatch.js");
|
|
302
|
+
if (!hasPendingDeepStage(prefs, entry.basePath)) {
|
|
303
|
+
pendingDeepProjectSetupMap.delete(entry.basePath);
|
|
304
|
+
startAutoDetached(entry.ctx, entry.pi, entry.basePath, false, { step: entry.step });
|
|
305
|
+
return true;
|
|
306
|
+
}
|
|
307
|
+
const state = await deriveState(entry.basePath);
|
|
308
|
+
const dispatchCtx = {
|
|
309
|
+
basePath: entry.basePath,
|
|
310
|
+
mid: "PROJECT",
|
|
311
|
+
midTitle: "Project setup",
|
|
312
|
+
state,
|
|
313
|
+
prefs,
|
|
314
|
+
// Claude Code currently surfaces workflow-MCP question calls as tool-request
|
|
315
|
+
// UI that can be cancelled outside the normal chat flow. During the
|
|
316
|
+
// foreground deep project setup interview, keep user input in plain chat so
|
|
317
|
+
// `/gsd new-project --deep` cannot bounce through cancelled tool requests.
|
|
318
|
+
structuredQuestionsAvailable: "false",
|
|
319
|
+
};
|
|
320
|
+
let result = null;
|
|
321
|
+
for (const rule of DISPATCH_RULES) {
|
|
322
|
+
// Only evaluate foreground setup gates here. Later deep rules such as
|
|
323
|
+
// research-project have dispatch-time side effects (e.g. claiming an
|
|
324
|
+
// inflight marker) and must be left to auto-mode once the interview is
|
|
325
|
+
// complete.
|
|
326
|
+
if (!FOREGROUND_DEEP_SETUP_RULE_NAMES.has(rule.name))
|
|
327
|
+
continue;
|
|
328
|
+
result = await rule.match(dispatchCtx);
|
|
329
|
+
if (result)
|
|
330
|
+
break;
|
|
331
|
+
}
|
|
332
|
+
if (!result || result.action !== "dispatch") {
|
|
333
|
+
if (result?.action === "stop") {
|
|
334
|
+
entry.ctx.ui.notify(result.reason, result.level);
|
|
335
|
+
}
|
|
336
|
+
else if (hasPendingDeepStage(prefs, entry.basePath)) {
|
|
337
|
+
pendingDeepProjectSetupMap.delete(entry.basePath);
|
|
338
|
+
startAutoDetached(entry.ctx, entry.pi, entry.basePath, false, { step: entry.step });
|
|
339
|
+
return true;
|
|
340
|
+
}
|
|
341
|
+
return false;
|
|
342
|
+
}
|
|
343
|
+
if (!USER_DRIVEN_DEEP_SETUP_UNITS.has(result.unitType)) {
|
|
344
|
+
pendingDeepProjectSetupMap.delete(entry.basePath);
|
|
345
|
+
startAutoDetached(entry.ctx, entry.pi, entry.basePath, false, { step: entry.step });
|
|
346
|
+
return true;
|
|
347
|
+
}
|
|
348
|
+
entry.currentUnitType = result.unitType;
|
|
349
|
+
entry.currentUnitId = result.unitId;
|
|
350
|
+
entry.createdAt = Date.now();
|
|
351
|
+
await dispatchWorkflow(entry.pi, `${result.prompt}\n\n${FOREGROUND_DEEP_SETUP_QUESTION_POLICY}`, "gsd-run", entry.ctx, result.unitType);
|
|
352
|
+
return true;
|
|
353
|
+
}
|
|
132
354
|
/** Called from agent_end to check if auto-mode should start after discuss */
|
|
133
355
|
export function checkAutoStartAfterDiscuss() {
|
|
134
356
|
const entry = _getPendingAutoStart();
|
|
@@ -137,17 +359,61 @@ export function checkAutoStartAfterDiscuss() {
|
|
|
137
359
|
const { ctx, pi, basePath, milestoneId, step } = entry;
|
|
138
360
|
// Gate 1: Primary milestone must have CONTEXT.md or ROADMAP.md
|
|
139
361
|
// The "discuss" path creates CONTEXT.md; the "plan" path creates ROADMAP.md.
|
|
140
|
-
|
|
141
|
-
const
|
|
362
|
+
// Use pinned scope (immune to cwd-drift) for existence checks.
|
|
363
|
+
const contextFilePath = entry.scope.contextFile();
|
|
364
|
+
const roadmapFilePath = entry.scope.roadmapFile();
|
|
365
|
+
const contextFile = existsSync(contextFilePath) ? contextFilePath : null;
|
|
366
|
+
const roadmapFile = existsSync(roadmapFilePath) ? roadmapFilePath : null;
|
|
142
367
|
if (!contextFile && !roadmapFile)
|
|
143
368
|
return false; // neither artifact yet — keep waiting
|
|
369
|
+
// Gate 1b: Discriminate plan-blocked from discuss-incomplete when the DB row is queued.
|
|
370
|
+
// If the DB is available and the row is still "queued" but CONTEXT.md already exists on
|
|
371
|
+
// disk, the discuss phase completed but gsd_plan_milestone was hard-blocked by the
|
|
372
|
+
// depth-verification gate. Emit a recovery hint so the next agent turn can retry
|
|
373
|
+
// gsd_plan_milestone, then return false (keep blocking auto-start).
|
|
374
|
+
// If CONTEXT.md does not exist (discuss-incomplete), Gate 1 already blocked above.
|
|
375
|
+
if (isDbAvailable()) {
|
|
376
|
+
const dbRow = getMilestone(milestoneId);
|
|
377
|
+
if (dbRow?.status === "queued" && contextFile) {
|
|
378
|
+
if (entry.planBlockedRecoveryCount >= MAX_PLAN_BLOCKED_RECOVERIES) {
|
|
379
|
+
// H1: recovery loop cap reached — stop triggering new turns, escalate to user.
|
|
380
|
+
logWarning("guided", `Gate 1b: milestone ${milestoneId} plan-blocked recovery limit reached ` +
|
|
381
|
+
`(${entry.planBlockedRecoveryCount}/${MAX_PLAN_BLOCKED_RECOVERIES}); escalating to user`);
|
|
382
|
+
ctx.ui.notify(`Milestone ${milestoneId} plan_milestone has been blocked ${entry.planBlockedRecoveryCount} times. ` +
|
|
383
|
+
`Re-run /gsd to reset the recovery counter, or run /gsd-debug to diagnose without resetting.`, "error");
|
|
384
|
+
return false;
|
|
385
|
+
}
|
|
386
|
+
logWarning("guided", `Gate 1b: milestone ${milestoneId} queued with CONTEXT.md present — ` +
|
|
387
|
+
`plan_milestone was blocked; emitting recovery hint ` +
|
|
388
|
+
`(attempt ${entry.planBlockedRecoveryCount + 1}/${MAX_PLAN_BLOCKED_RECOVERIES})`);
|
|
389
|
+
ctx.ui.notify(`Milestone ${milestoneId}: context file exists but milestone is still queued. ` +
|
|
390
|
+
`Retrying gsd_plan_milestone to complete the blocked planning step.`, "warning");
|
|
391
|
+
try {
|
|
392
|
+
pi.sendMessage({
|
|
393
|
+
customType: "gsd-plan-milestone-blocked-recovery",
|
|
394
|
+
content: `Milestone ${milestoneId} has ${contextFile} on disk but its DB row is still ` +
|
|
395
|
+
`"queued". The gsd_plan_milestone tool was previously blocked by the ` +
|
|
396
|
+
`depth-verification gate. Call gsd_plan_milestone now to complete the ` +
|
|
397
|
+
`planning phase.`,
|
|
398
|
+
display: false,
|
|
399
|
+
}, { triggerTurn: true });
|
|
400
|
+
// Increment only after a successful dispatch so transient sendMessage
|
|
401
|
+
// failures do not consume recovery budget.
|
|
402
|
+
entry.planBlockedRecoveryCount += 1;
|
|
403
|
+
}
|
|
404
|
+
catch (e) {
|
|
405
|
+
logWarning("guided", `Gate 1b recovery sendMessage failed: ${e.message}`);
|
|
406
|
+
}
|
|
407
|
+
return false;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
144
410
|
// Gate 2: STATE.md must exist — written as the last step in the discuss
|
|
145
411
|
// output phase. This prevents auto-start from firing during Phase 3
|
|
146
412
|
// (sequential readiness gates for remaining milestones) in multi-milestone
|
|
147
413
|
// discussions, where M001-CONTEXT.md exists but M002/M003 haven't been
|
|
148
414
|
// processed yet.
|
|
149
|
-
const
|
|
150
|
-
if (!
|
|
415
|
+
const stateFilePath = entry.scope.stateFile();
|
|
416
|
+
if (!existsSync(stateFilePath))
|
|
151
417
|
return false; // discussion not finalized yet
|
|
152
418
|
// Gate 3: Multi-milestone completeness warning
|
|
153
419
|
// Parse PROJECT.md for milestone sequence, warn if any are missing context.
|
|
@@ -179,7 +445,7 @@ export function checkAutoStartAfterDiscuss() {
|
|
|
179
445
|
// The LLM writes DISCUSSION-MANIFEST.json after each Phase 3 gate decision.
|
|
180
446
|
// When it exists, validate it before auto-starting. Project history alone is
|
|
181
447
|
// not a reliable signal for the current discussion mode.
|
|
182
|
-
const manifestPath = join(
|
|
448
|
+
const manifestPath = join(entry.scope.workspace.contract.projectGsd, "DISCUSSION-MANIFEST.json");
|
|
183
449
|
if (existsSync(manifestPath)) {
|
|
184
450
|
try {
|
|
185
451
|
const manifest = JSON.parse(readFileSync(manifestPath, "utf-8"));
|
|
@@ -275,13 +541,15 @@ function hasToolUse(msg) {
|
|
|
275
541
|
/**
|
|
276
542
|
* #4573 — Detect and recover from the "ready phrase without files" failure mode.
|
|
277
543
|
*
|
|
278
|
-
* When the LLM emits "Milestone {{id}} ready." but has not written
|
|
279
|
-
*
|
|
280
|
-
* next /gsd invocation loops into the "All milestones
|
|
544
|
+
* When the LLM emits "Milestone {{id}} ready." but has not written the
|
|
545
|
+
* milestone CONTEXT/ROADMAP artifacts, `checkAutoStartAfterDiscuss()` silently
|
|
546
|
+
* returns false and the next /gsd invocation loops into the "All milestones
|
|
547
|
+
* complete" warning.
|
|
281
548
|
*
|
|
282
549
|
* This function, called from `handleAgentEnd` after `checkAutoStartAfterDiscuss`
|
|
283
550
|
* returns false, pattern-matches the ready phrase on the last assistant message.
|
|
284
|
-
* If it fired AND neither CONTEXT.md
|
|
551
|
+
* If it fired AND neither the canonical M###-CONTEXT.md/M###-ROADMAP.md nor
|
|
552
|
+
* legacy CONTEXT.md/ROADMAP.md files exist, it:
|
|
285
553
|
* 1. Notifies the user that the signal was rejected.
|
|
286
554
|
* 2. Injects a system message via `pi.sendMessage(..., {triggerTurn:true})`
|
|
287
555
|
* telling the LLM the signal was premature and to emit the writes now.
|
|
@@ -301,12 +569,35 @@ export function maybeHandleReadyPhraseWithoutFiles(event) {
|
|
|
301
569
|
const text = extractAssistantText(lastMsg);
|
|
302
570
|
if (!READY_PHRASE_RE.test(text))
|
|
303
571
|
return false;
|
|
572
|
+
// Bust paths.ts cached dir listings before checking for fresh writes. The
|
|
573
|
+
// LLM's Write tool calls do not invalidate paths.ts caches, so a stale
|
|
574
|
+
// listing taken before the milestone dir or its CONTEXT/ROADMAP files
|
|
575
|
+
// existed would falsely report the artifacts as missing and trigger the
|
|
576
|
+
// 3-strike "ready without files" abort even though the writes succeeded.
|
|
577
|
+
clearPathCache();
|
|
304
578
|
// Gate: artifacts must still be missing — if they exist, the happy path
|
|
305
579
|
// already fired and we have nothing to do.
|
|
306
580
|
const contextFile = resolveMilestoneFile(basePath, milestoneId, "CONTEXT");
|
|
307
581
|
const roadmapFile = resolveMilestoneFile(basePath, milestoneId, "ROADMAP");
|
|
308
582
|
if (contextFile || roadmapFile)
|
|
309
583
|
return false;
|
|
584
|
+
// Diagnostic: when the cached resolver reports both files missing, also probe
|
|
585
|
+
// the canonical paths with uncached existsSync so we can tell whether the
|
|
586
|
+
// recovery is firing on real-missing files or a path-resolution miss
|
|
587
|
+
// (basePath/symlink mismatch, stale cache despite agent-end-recovery flush,
|
|
588
|
+
// legacy descriptor dir not matching, etc.).
|
|
589
|
+
try {
|
|
590
|
+
const mDir = resolveMilestonePath(basePath, milestoneId);
|
|
591
|
+
const canonicalCtx = mDir ? join(mDir, `${milestoneId}-CONTEXT.md`) : null;
|
|
592
|
+
const canonicalRoadmap = mDir ? join(mDir, `${milestoneId}-ROADMAP.md`) : null;
|
|
593
|
+
logWarning("guided", `ready-phrase-reject diagnostic mid=${milestoneId} basePath=${basePath} ` +
|
|
594
|
+
`mDir=${mDir ?? "null"} ` +
|
|
595
|
+
`canonical-ctx=${canonicalCtx ?? "null"} ctx-exists=${canonicalCtx ? existsSync(canonicalCtx) : "n/a"} ` +
|
|
596
|
+
`canonical-roadmap=${canonicalRoadmap ?? "null"} roadmap-exists=${canonicalRoadmap ? existsSync(canonicalRoadmap) : "n/a"}`);
|
|
597
|
+
}
|
|
598
|
+
catch (e) {
|
|
599
|
+
logWarning("guided", `ready-phrase-reject diagnostic failed: ${e.message}`);
|
|
600
|
+
}
|
|
310
601
|
entry.readyRejectCount = (entry.readyRejectCount ?? 0) + 1;
|
|
311
602
|
if (entry.readyRejectCount > MAX_READY_REJECTS) {
|
|
312
603
|
// Give up: clear state and tell the user to re-run /gsd. Avoids an
|
|
@@ -316,10 +607,11 @@ export function maybeHandleReadyPhraseWithoutFiles(event) {
|
|
|
316
607
|
`Stopping auto-nudge. Run /gsd to try again.`, "error");
|
|
317
608
|
return true;
|
|
318
609
|
}
|
|
319
|
-
|
|
610
|
+
const contextRel = relMilestoneFile(basePath, milestoneId, "CONTEXT");
|
|
611
|
+
const roadmapRel = relMilestoneFile(basePath, milestoneId, "ROADMAP");
|
|
612
|
+
ctx.ui.notify(`Milestone ${milestoneId}: "ready" signal rejected — ${contextRel} and ${roadmapRel} are missing. Asking the LLM to complete the writes.`, "warning");
|
|
320
613
|
const nudge = `You emitted "Milestone ${milestoneId} ready." but neither ` +
|
|
321
|
-
|
|
322
|
-
`.gsd/milestones/${milestoneId}/${milestoneId}-ROADMAP.md exists on disk. ` +
|
|
614
|
+
`${contextRel} nor ${roadmapRel} exists on disk. ` +
|
|
323
615
|
`The ready phrase is a POST-WRITE signal and has been rejected. ` +
|
|
324
616
|
`In this turn: (1) write PROJECT.md, REQUIREMENTS.md, and the milestone ` +
|
|
325
617
|
`CONTEXT.md, (2) call gsd_plan_milestone, then (3) emit the ready phrase. ` +
|
|
@@ -357,7 +649,12 @@ const emptyTurnCounterByBase = new Map();
|
|
|
357
649
|
const MAX_EMPTY_TURN_RETRIES = 2;
|
|
358
650
|
// Phrases that indicate the LLM is about to do something but has not yet.
|
|
359
651
|
// Kept tight to avoid flagging legitimate narration like "I'll wait for your answer."
|
|
360
|
-
|
|
652
|
+
//
|
|
653
|
+
// "make" was previously in the verb list but matches conversational meta phrases
|
|
654
|
+
// like "Let me make sure I understand…" which are NOT action announcements —
|
|
655
|
+
// removed to prevent the empty-turn nudge from auto-replying to user questions
|
|
656
|
+
// in discuss flows.
|
|
657
|
+
const COMMIT_INTENT_RE = /\b(?:I['’]ll|I will|Next,? I['’]ll|Now I['’]ll|Let me|I['’]m going to|I am going to)\s+(?:now\s+)?(?:write|create|call|invoke|update|add|run|execute|generate|produce|emit|compose|implement|save|apply|commit)\b/i;
|
|
361
658
|
/**
|
|
362
659
|
* Reset the empty-turn counter for a basePath after a successful tool-use turn.
|
|
363
660
|
* Called from handleAgentEnd when the last message contains tool_use blocks.
|
|
@@ -385,12 +682,14 @@ export function maybeHandleEmptyIntentTurn(event, isAuto) {
|
|
|
385
682
|
// path, handled by maybeHandleReadyPhraseWithoutFiles.
|
|
386
683
|
if (READY_PHRASE_RE.test(text))
|
|
387
684
|
return false;
|
|
388
|
-
// Skip if the LLM is clearly handing back to the user.
|
|
389
|
-
//
|
|
390
|
-
//
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
685
|
+
// Skip if the LLM is clearly handing back to the user. Discuss flows
|
|
686
|
+
// often pose a question and follow it with a conditional intent on the
|
|
687
|
+
// same line ("Did I capture that correctly? If so, I'll write the
|
|
688
|
+
// requirements."). A line-trailing `?` check misses these because the
|
|
689
|
+
// line ends in `.`. Match any sentence-terminating `?` (followed by
|
|
690
|
+
// whitespace or end-of-text) — false negatives here auto-reply to the
|
|
691
|
+
// user, which is a much worse failure mode than a missed nudge.
|
|
692
|
+
if (/\?(?:\s|$)/.test(text))
|
|
394
693
|
return false;
|
|
395
694
|
// Must contain a commit-intent phrase — this is the stall we care about.
|
|
396
695
|
if (!COMMIT_INTENT_RE.test(text))
|
|
@@ -496,7 +795,7 @@ async function dispatchWorkflow(pi, note, customType = "gsd-run", ctx, unitType)
|
|
|
496
795
|
removed: currentTools.length - scopedTools.length,
|
|
497
796
|
});
|
|
498
797
|
}
|
|
499
|
-
const workflowPath = process.env.GSD_WORKFLOW_PATH ?? join(
|
|
798
|
+
const workflowPath = process.env.GSD_WORKFLOW_PATH ?? join(gsdHome(), "agent", "GSD-WORKFLOW.md");
|
|
500
799
|
const workflow = readFileSync(workflowPath, "utf-8");
|
|
501
800
|
pi.sendMessage({
|
|
502
801
|
customType,
|
|
@@ -680,7 +979,7 @@ export async function showHeadlessMilestoneCreation(ctx, pi, basePath, seedConte
|
|
|
680
979
|
// Build and dispatch the headless discuss prompt
|
|
681
980
|
const prompt = buildHeadlessDiscussPrompt(nextId, seedContext, basePath);
|
|
682
981
|
// Set pending auto start (auto-mode triggers on "Milestone X ready." via checkAutoStartAfterDiscuss)
|
|
683
|
-
|
|
982
|
+
setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId: nextId });
|
|
684
983
|
// Dispatch as discuss-milestone. The LLM writes PROJECT.md, REQUIREMENTS.md,
|
|
685
984
|
// and CONTEXT.md, then calls gsd_plan_milestone — this is semantically the
|
|
686
985
|
// discuss path, just non-interactive. Using "plan-milestone" here caused
|
|
@@ -846,13 +1145,13 @@ export async function showDiscuss(ctx, pi, basePath) {
|
|
|
846
1145
|
const seed = draftContent
|
|
847
1146
|
? `${basePrompt}\n\n## Prior Discussion (Draft Seed)\n\n${draftContent}`
|
|
848
1147
|
: basePrompt;
|
|
849
|
-
|
|
1148
|
+
setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId: mid, step: false });
|
|
850
1149
|
await dispatchWorkflow(pi, seed, "gsd-discuss", ctx, "discuss-milestone");
|
|
851
1150
|
}
|
|
852
1151
|
else if (choice === "discuss_fresh") {
|
|
853
1152
|
const discussMilestoneTemplates = inlineTemplate("context", "Context");
|
|
854
1153
|
const structuredQuestionsAvailable = getStructuredQuestionsAvailability(pi, ctx);
|
|
855
|
-
|
|
1154
|
+
setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId: mid, step: false });
|
|
856
1155
|
await dispatchWorkflow(pi, loadPrompt("guided-discuss-milestone", {
|
|
857
1156
|
milestoneId: mid, milestoneTitle, inlinedTemplates: discussMilestoneTemplates, structuredQuestionsAvailable,
|
|
858
1157
|
commitInstruction: buildDocsCommitInstruction(`docs(${mid}): milestone context from discuss`),
|
|
@@ -865,7 +1164,7 @@ export async function showDiscuss(ctx, pi, basePath) {
|
|
|
865
1164
|
const milestoneIds = findMilestoneIds(basePath);
|
|
866
1165
|
const uniqueMilestoneIds = !!loadEffectiveGSDPreferences()?.preferences?.unique_milestone_ids;
|
|
867
1166
|
const nextId = nextMilestoneIdReserved(milestoneIds, uniqueMilestoneIds, basePath);
|
|
868
|
-
|
|
1167
|
+
setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId: nextId, step: false });
|
|
869
1168
|
await dispatchWorkflow(pi, await prepareAndBuildDiscussPrompt(ctx, pi, nextId, `New milestone ${nextId}.`, basePath), "gsd-run", ctx, "discuss-milestone");
|
|
870
1169
|
}
|
|
871
1170
|
return;
|
|
@@ -1119,6 +1418,9 @@ function selfHealRuntimeRecords(basePath, ctx) {
|
|
|
1119
1418
|
for (const record of records) {
|
|
1120
1419
|
const { unitType, unitId, phase } = record;
|
|
1121
1420
|
// Clear records whose expected artifact already exists (completed but not cleaned up)
|
|
1421
|
+
// TODO(C-future): selfHealRuntimeRecords iterates across all unit types (not just milestone
|
|
1422
|
+
// units), so it cannot be converted to resolveExpectedArtifactPathForScope without
|
|
1423
|
+
// first establishing a per-record scope. Migrate once unit runtime records carry scope info.
|
|
1122
1424
|
const artifactPath = resolveExpectedArtifactPath(unitType, unitId, basePath);
|
|
1123
1425
|
if (artifactPath && existsSync(artifactPath)) {
|
|
1124
1426
|
clearUnitRuntimeRecord(basePath, unitType, unitId);
|
|
@@ -1221,7 +1523,7 @@ async function handleMilestoneActions(ctx, pi, basePath, milestoneId, milestoneT
|
|
|
1221
1523
|
const milestoneIds = findMilestoneIds(basePath);
|
|
1222
1524
|
const uniqueMilestoneIds = !!loadEffectiveGSDPreferences()?.preferences?.unique_milestone_ids;
|
|
1223
1525
|
const nextId = nextMilestoneIdReserved(milestoneIds, uniqueMilestoneIds, basePath);
|
|
1224
|
-
|
|
1526
|
+
setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId: nextId, step: stepMode });
|
|
1225
1527
|
await dispatchWorkflow(pi, await prepareAndBuildDiscussPrompt(ctx, pi, nextId, `New milestone ${nextId}.`, basePath), "gsd-run", ctx, "discuss-milestone");
|
|
1226
1528
|
return true;
|
|
1227
1529
|
}
|
|
@@ -1256,6 +1558,7 @@ export async function showSmartEntry(ctx, pi, basePath, options) {
|
|
|
1256
1558
|
// milestones/) must trigger the init wizard, not skip it (#2942).
|
|
1257
1559
|
const gsdPath = gsdRoot(basePath);
|
|
1258
1560
|
const hasBootstrapArtifacts = hasGsdBootstrapArtifacts(gsdPath);
|
|
1561
|
+
let skipGitBootstrap = false;
|
|
1259
1562
|
if (!hasBootstrapArtifacts) {
|
|
1260
1563
|
const detection = detectProjectState(basePath);
|
|
1261
1564
|
// v1 .planning/ detected — offer migration before anything else
|
|
@@ -1274,6 +1577,7 @@ export async function showSmartEntry(ctx, pi, basePath, options) {
|
|
|
1274
1577
|
const result = await showProjectInit(ctx, pi, basePath, detection);
|
|
1275
1578
|
if (!result.completed)
|
|
1276
1579
|
return; // User cancelled
|
|
1580
|
+
skipGitBootstrap = result.gitEnabled === false;
|
|
1277
1581
|
// Init wizard bootstrapped .gsd/ — fall through to the normal flow below
|
|
1278
1582
|
// which will detect "no milestones" and start the discuss prompt
|
|
1279
1583
|
}
|
|
@@ -1281,13 +1585,28 @@ export async function showSmartEntry(ctx, pi, basePath, options) {
|
|
|
1281
1585
|
// Also handle inherited repos: if basePath is a subdirectory of another
|
|
1282
1586
|
// git repo that has no .gsd, create a fresh repo to prevent cross-project
|
|
1283
1587
|
// state leaks (#1639).
|
|
1284
|
-
if (!nativeIsRepo(basePath) || isInheritedRepo(basePath)) {
|
|
1588
|
+
if (!skipGitBootstrap && (!nativeIsRepo(basePath) || isInheritedRepo(basePath))) {
|
|
1285
1589
|
const mainBranch = loadEffectiveGSDPreferences()?.preferences?.git?.main_branch || "main";
|
|
1286
1590
|
nativeInit(basePath, mainBranch);
|
|
1287
1591
|
}
|
|
1288
1592
|
// ── Ensure .gitignore has baseline patterns ──────────────────────────
|
|
1289
|
-
|
|
1290
|
-
|
|
1593
|
+
if (!skipGitBootstrap && nativeIsRepo(basePath)) {
|
|
1594
|
+
ensureGitignore(basePath);
|
|
1595
|
+
untrackRuntimeFiles(basePath);
|
|
1596
|
+
}
|
|
1597
|
+
// Deep setup can pre-create .gsd/PREFERENCES.md before the normal init
|
|
1598
|
+
// wizard path runs. If that path also initialized git, make HEAD reachable
|
|
1599
|
+
// now so later worktree/git-log operations do not run on an unborn branch.
|
|
1600
|
+
if (!skipGitBootstrap && nativeIsRepo(basePath) && !nativeHasCommittedHead(basePath)) {
|
|
1601
|
+
try {
|
|
1602
|
+
nativeAddAll(basePath);
|
|
1603
|
+
nativeCommit(basePath, "chore: init project");
|
|
1604
|
+
}
|
|
1605
|
+
catch (err) {
|
|
1606
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
1607
|
+
logWarning("guided", `initial git commit failed; worktree isolation will remain disabled until HEAD exists: ${message}`);
|
|
1608
|
+
}
|
|
1609
|
+
}
|
|
1291
1610
|
{
|
|
1292
1611
|
const { ensureDbOpen } = await import("./bootstrap/dynamic-tools.js");
|
|
1293
1612
|
await ensureDbOpen(basePath);
|
|
@@ -1343,6 +1662,22 @@ export async function showSmartEntry(ctx, pi, basePath, options) {
|
|
|
1343
1662
|
catch (err) {
|
|
1344
1663
|
logWarning("guided", `STATE.md rebuild failed: ${err.message}`);
|
|
1345
1664
|
}
|
|
1665
|
+
// ── Deep planning mode kickoff ────────────────────────────────────────
|
|
1666
|
+
// When `planning_depth: deep` is set (e.g. via `/gsd new-project --deep`)
|
|
1667
|
+
// and any project-level stage gate is still pending, keep the user-question
|
|
1668
|
+
// stages in the foreground conversation. Auto-mode is resumed only after
|
|
1669
|
+
// the project interview artifacts exist, so questions do not look like
|
|
1670
|
+
// cancelled auto-mode runs.
|
|
1671
|
+
// Light mode and fully-completed deep projects fall through to the
|
|
1672
|
+
// standard wizard below.
|
|
1673
|
+
{
|
|
1674
|
+
const prefs = loadEffectiveGSDPreferences(basePath)?.preferences;
|
|
1675
|
+
const { hasPendingDeepStage } = await import("./auto-dispatch.js");
|
|
1676
|
+
if (hasPendingDeepStage(prefs, basePath)) {
|
|
1677
|
+
await startDeepProjectSetupForeground(ctx, pi, basePath, stepMode);
|
|
1678
|
+
return;
|
|
1679
|
+
}
|
|
1680
|
+
}
|
|
1346
1681
|
const planV2GateDecision = runPlanV2Gate(ctx, basePath, state);
|
|
1347
1682
|
if (planV2GateDecision === "block")
|
|
1348
1683
|
return;
|
|
@@ -1353,12 +1688,12 @@ export async function showSmartEntry(ctx, pi, basePath, options) {
|
|
|
1353
1688
|
// and fires another dispatchWorkflow, resetting the conversation mid-interview.
|
|
1354
1689
|
if (pendingAutoStartMap.has(basePath)) {
|
|
1355
1690
|
// #3274: If /clear interrupted the discussion, the pending entry is stale.
|
|
1356
|
-
// Detect staleness: no manifest, no CONTEXT
|
|
1691
|
+
// Detect staleness: no manifest, no milestone CONTEXT artifact, AND entry is older than
|
|
1357
1692
|
// 30s (avoids race between .set() and LLM writing first artifact).
|
|
1358
1693
|
const entry = pendingAutoStartMap.get(basePath);
|
|
1359
1694
|
const ageMs = Date.now() - (entry.createdAt || 0);
|
|
1360
1695
|
const manifestExists = existsSync(join(gsdRoot(basePath), "DISCUSSION-MANIFEST.json"));
|
|
1361
|
-
const milestoneHasContext =
|
|
1696
|
+
const milestoneHasContext = !!resolveMilestoneFile(basePath, entry.milestoneId, "CONTEXT");
|
|
1362
1697
|
if (!manifestExists && !milestoneHasContext && ageMs > 30_000) {
|
|
1363
1698
|
// Stale entry from an interrupted discussion — clear and continue
|
|
1364
1699
|
pendingAutoStartMap.delete(basePath);
|
|
@@ -1376,7 +1711,7 @@ export async function showSmartEntry(ctx, pi, basePath, options) {
|
|
|
1376
1711
|
const mDir = milestonesDir(basePath);
|
|
1377
1712
|
if (existsSync(mDir)) {
|
|
1378
1713
|
try {
|
|
1379
|
-
const entries = readdirSync(mDir);
|
|
1714
|
+
const entries = clearEmptyLegacyDeepSetupPseudoMilestones(basePath, readdirSync(mDir));
|
|
1380
1715
|
if (entries.length > 0) {
|
|
1381
1716
|
ctx.ui.notify(`Milestone directory has ${entries.length} entries but none were recognized as milestones. ` +
|
|
1382
1717
|
`This may indicate a corrupted state or wrong working directory. Run \`/gsd doctor\` to diagnose.`, "warning");
|
|
@@ -1393,7 +1728,7 @@ export async function showSmartEntry(ctx, pi, basePath, options) {
|
|
|
1393
1728
|
const isFirst = milestoneIds.length === 0;
|
|
1394
1729
|
if (isFirst) {
|
|
1395
1730
|
// First ever — skip wizard, just ask directly
|
|
1396
|
-
|
|
1731
|
+
setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId: nextId, step: stepMode });
|
|
1397
1732
|
await dispatchWorkflow(pi, await prepareAndBuildDiscussPrompt(ctx, pi, nextId, `New project, milestone ${nextId}. Do NOT read or explore .gsd/ — it's empty scaffolding.`, basePath), "gsd-run", ctx, "discuss-milestone");
|
|
1398
1733
|
}
|
|
1399
1734
|
else {
|
|
@@ -1411,7 +1746,7 @@ export async function showSmartEntry(ctx, pi, basePath, options) {
|
|
|
1411
1746
|
notYetMessage: "Run /gsd when ready.",
|
|
1412
1747
|
});
|
|
1413
1748
|
if (choice === "new_milestone") {
|
|
1414
|
-
|
|
1749
|
+
setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId: nextId, step: stepMode });
|
|
1415
1750
|
await dispatchWorkflow(pi, await prepareAndBuildDiscussPrompt(ctx, pi, nextId, `New milestone ${nextId}.`, basePath), "gsd-run", ctx, "discuss-milestone");
|
|
1416
1751
|
}
|
|
1417
1752
|
}
|
|
@@ -1420,7 +1755,7 @@ export async function showSmartEntry(ctx, pi, basePath, options) {
|
|
|
1420
1755
|
const milestoneId = state.activeMilestone.id;
|
|
1421
1756
|
const milestoneTitle = state.activeMilestone.title;
|
|
1422
1757
|
if (planV2GateDecision === "recover-missing-context") {
|
|
1423
|
-
|
|
1758
|
+
setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId, step: stepMode });
|
|
1424
1759
|
await dispatchWorkflow(pi, await buildDiscussMilestonePrompt(milestoneId, milestoneTitle, basePath, getStructuredQuestionsAvailability(pi, ctx)), "gsd-discuss", ctx, "discuss-milestone");
|
|
1425
1760
|
return;
|
|
1426
1761
|
}
|
|
@@ -1448,7 +1783,7 @@ export async function showSmartEntry(ctx, pi, basePath, options) {
|
|
|
1448
1783
|
const milestoneIds = findMilestoneIds(basePath);
|
|
1449
1784
|
const uniqueMilestoneIds = !!loadEffectiveGSDPreferences()?.preferences?.unique_milestone_ids;
|
|
1450
1785
|
const nextId = nextMilestoneIdReserved(milestoneIds, uniqueMilestoneIds, basePath);
|
|
1451
|
-
|
|
1786
|
+
setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId: nextId, step: stepMode });
|
|
1452
1787
|
await dispatchWorkflow(pi, await prepareAndBuildDiscussPrompt(ctx, pi, nextId, `New milestone ${nextId}.`, basePath), "gsd-run", ctx, "discuss-milestone");
|
|
1453
1788
|
}
|
|
1454
1789
|
else if (choice === "status") {
|
|
@@ -1495,13 +1830,13 @@ export async function showSmartEntry(ctx, pi, basePath, options) {
|
|
|
1495
1830
|
const seed = draftContent
|
|
1496
1831
|
? `${basePrompt}\n\n## Prior Discussion (Draft Seed)\n\n${draftContent}`
|
|
1497
1832
|
: basePrompt;
|
|
1498
|
-
|
|
1833
|
+
setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId, step: stepMode });
|
|
1499
1834
|
await dispatchWorkflow(pi, seed, "gsd-discuss", ctx, "discuss-milestone");
|
|
1500
1835
|
}
|
|
1501
1836
|
else if (choice === "discuss_fresh") {
|
|
1502
1837
|
const discussMilestoneTemplates = inlineTemplate("context", "Context");
|
|
1503
1838
|
const structuredQuestionsAvailable = getStructuredQuestionsAvailability(pi, ctx);
|
|
1504
|
-
|
|
1839
|
+
setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId, step: stepMode });
|
|
1505
1840
|
await dispatchWorkflow(pi, loadPrompt("guided-discuss-milestone", {
|
|
1506
1841
|
milestoneId, milestoneTitle, inlinedTemplates: discussMilestoneTemplates, structuredQuestionsAvailable,
|
|
1507
1842
|
commitInstruction: buildDocsCommitInstruction(`docs(${milestoneId}): milestone context from discuss`),
|
|
@@ -1512,7 +1847,7 @@ export async function showSmartEntry(ctx, pi, basePath, options) {
|
|
|
1512
1847
|
const milestoneIds = findMilestoneIds(basePath);
|
|
1513
1848
|
const uniqueMilestoneIds = !!loadEffectiveGSDPreferences()?.preferences?.unique_milestone_ids;
|
|
1514
1849
|
const nextId = nextMilestoneIdReserved(milestoneIds, uniqueMilestoneIds, basePath);
|
|
1515
|
-
|
|
1850
|
+
setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId: nextId, step: stepMode });
|
|
1516
1851
|
await dispatchWorkflow(pi, await prepareAndBuildDiscussPrompt(ctx, pi, nextId, `New milestone ${nextId}.`, basePath), "gsd-run", ctx, "discuss-milestone");
|
|
1517
1852
|
}
|
|
1518
1853
|
return;
|
|
@@ -1568,26 +1903,8 @@ export async function showSmartEntry(ctx, pi, basePath, options) {
|
|
|
1568
1903
|
notYetMessage: "Run /gsd when ready.",
|
|
1569
1904
|
});
|
|
1570
1905
|
if (choice === "plan") {
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
inlineTemplate("roadmap", "Roadmap"),
|
|
1574
|
-
inlineTemplate("plan", "Slice Plan"),
|
|
1575
|
-
inlineTemplate("task-plan", "Task Plan"),
|
|
1576
|
-
inlineTemplate("secrets-manifest", "Secrets Manifest"),
|
|
1577
|
-
].join("\n\n---\n\n");
|
|
1578
|
-
const secretsOutputPath = relMilestoneFile(basePath, milestoneId, "SECRETS");
|
|
1579
|
-
await dispatchWorkflow(pi, loadPrompt("guided-plan-milestone", {
|
|
1580
|
-
milestoneId,
|
|
1581
|
-
milestoneTitle,
|
|
1582
|
-
secretsOutputPath,
|
|
1583
|
-
inlinedTemplates: planMilestoneTemplates,
|
|
1584
|
-
skillActivation: buildSkillActivationBlock({
|
|
1585
|
-
base: basePath,
|
|
1586
|
-
milestoneId,
|
|
1587
|
-
milestoneTitle,
|
|
1588
|
-
extraContext: [planMilestoneTemplates],
|
|
1589
|
-
}),
|
|
1590
|
-
}), "gsd-run", ctx, "plan-milestone");
|
|
1906
|
+
setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId, step: stepMode });
|
|
1907
|
+
await dispatchWorkflow(pi, await buildPlanMilestonePrompt(milestoneId, milestoneTitle, basePath), "gsd-run", ctx, "plan-milestone");
|
|
1591
1908
|
}
|
|
1592
1909
|
else if (choice === "discuss") {
|
|
1593
1910
|
const discussMilestoneTemplates = inlineTemplate("context", "Context");
|
|
@@ -1602,7 +1919,7 @@ export async function showSmartEntry(ctx, pi, basePath, options) {
|
|
|
1602
1919
|
const milestoneIds = findMilestoneIds(basePath);
|
|
1603
1920
|
const uniqueMilestoneIds = !!loadEffectiveGSDPreferences()?.preferences?.unique_milestone_ids;
|
|
1604
1921
|
const nextId = nextMilestoneIdReserved(milestoneIds, uniqueMilestoneIds, basePath);
|
|
1605
|
-
|
|
1922
|
+
setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId: nextId, step: stepMode });
|
|
1606
1923
|
await dispatchWorkflow(pi, await prepareAndBuildDiscussPrompt(ctx, pi, nextId, `New milestone ${nextId}.`, basePath), "gsd-run", ctx, "discuss-milestone");
|
|
1607
1924
|
}
|
|
1608
1925
|
else if (choice === "discard_milestone") {
|
|
@@ -1710,23 +2027,7 @@ export async function showSmartEntry(ctx, pi, basePath, options) {
|
|
|
1710
2027
|
notYetMessage: "Run /gsd when ready.",
|
|
1711
2028
|
});
|
|
1712
2029
|
if (choice === "plan") {
|
|
1713
|
-
|
|
1714
|
-
inlineTemplate("plan", "Slice Plan"),
|
|
1715
|
-
inlineTemplate("task-plan", "Task Plan"),
|
|
1716
|
-
].join("\n\n---\n\n");
|
|
1717
|
-
await dispatchWorkflow(pi, loadPrompt("guided-plan-slice", {
|
|
1718
|
-
milestoneId,
|
|
1719
|
-
sliceId,
|
|
1720
|
-
sliceTitle,
|
|
1721
|
-
inlinedTemplates: planSliceTemplates,
|
|
1722
|
-
skillActivation: buildSkillActivationBlock({
|
|
1723
|
-
base: basePath,
|
|
1724
|
-
milestoneId,
|
|
1725
|
-
sliceId,
|
|
1726
|
-
sliceTitle,
|
|
1727
|
-
extraContext: [planSliceTemplates],
|
|
1728
|
-
}),
|
|
1729
|
-
}), "gsd-run", ctx, "plan-slice");
|
|
2030
|
+
await dispatchWorkflow(pi, await buildPlanSlicePrompt(milestoneId, milestoneTitle, sliceId, sliceTitle, basePath), "gsd-run", ctx, "plan-slice");
|
|
1730
2031
|
}
|
|
1731
2032
|
else if (choice === "discuss") {
|
|
1732
2033
|
const sqAvail = getStructuredQuestionsAvailability(pi, ctx);
|
|
@@ -1785,24 +2086,7 @@ export async function showSmartEntry(ctx, pi, basePath, options) {
|
|
|
1785
2086
|
notYetMessage: "Run /gsd when ready.",
|
|
1786
2087
|
});
|
|
1787
2088
|
if (choice === "complete") {
|
|
1788
|
-
|
|
1789
|
-
inlineTemplate("slice-summary", "Slice Summary"),
|
|
1790
|
-
inlineTemplate("uat", "UAT"),
|
|
1791
|
-
].join("\n\n---\n\n");
|
|
1792
|
-
await dispatchWorkflow(pi, loadPrompt("guided-complete-slice", {
|
|
1793
|
-
workingDirectory: basePath,
|
|
1794
|
-
milestoneId,
|
|
1795
|
-
sliceId,
|
|
1796
|
-
sliceTitle,
|
|
1797
|
-
inlinedTemplates: completeSliceTemplates,
|
|
1798
|
-
skillActivation: buildSkillActivationBlock({
|
|
1799
|
-
base: basePath,
|
|
1800
|
-
milestoneId,
|
|
1801
|
-
sliceId,
|
|
1802
|
-
sliceTitle,
|
|
1803
|
-
extraContext: [completeSliceTemplates],
|
|
1804
|
-
}),
|
|
1805
|
-
}), "gsd-run", ctx, "complete-slice");
|
|
2089
|
+
await dispatchWorkflow(pi, await buildCompleteSlicePrompt(milestoneId, milestoneTitle, sliceId, sliceTitle, basePath), "gsd-run", ctx, "complete-slice");
|
|
1806
2090
|
}
|
|
1807
2091
|
else if (choice === "status") {
|
|
1808
2092
|
const { fireStatusViaCommand } = await import("./commands.js");
|
|
@@ -1876,22 +2160,7 @@ export async function showSmartEntry(ctx, pi, basePath, options) {
|
|
|
1876
2160
|
}), "gsd-run", ctx, "execute-task");
|
|
1877
2161
|
}
|
|
1878
2162
|
else {
|
|
1879
|
-
|
|
1880
|
-
await dispatchWorkflow(pi, loadPrompt("guided-execute-task", {
|
|
1881
|
-
milestoneId,
|
|
1882
|
-
sliceId,
|
|
1883
|
-
taskId,
|
|
1884
|
-
taskTitle,
|
|
1885
|
-
inlinedTemplates: executeTaskTemplates,
|
|
1886
|
-
skillActivation: buildSkillActivationBlock({
|
|
1887
|
-
base: basePath,
|
|
1888
|
-
milestoneId,
|
|
1889
|
-
sliceId,
|
|
1890
|
-
taskId,
|
|
1891
|
-
taskTitle,
|
|
1892
|
-
extraContext: [executeTaskTemplates],
|
|
1893
|
-
}),
|
|
1894
|
-
}), "gsd-run", ctx, "execute-task");
|
|
2163
|
+
await dispatchWorkflow(pi, await buildExecuteTaskPrompt(milestoneId, sliceId, sliceTitle, taskId, taskTitle, basePath), "gsd-run", ctx, "execute-task");
|
|
1895
2164
|
}
|
|
1896
2165
|
}
|
|
1897
2166
|
else if (choice === "status") {
|