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,13 +7,12 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { existsSync, cpSync, readFileSync, readdirSync, mkdirSync, realpathSync, rmSync, unlinkSync, statSync, lstatSync as lstatSyncFn, } from "node:fs";
|
|
9
9
|
import { isAbsolute, join, sep as pathSep } from "node:path";
|
|
10
|
-
import { homedir } from "node:os";
|
|
11
10
|
import { GSDError, GSD_IO_ERROR, GSD_GIT_ERROR } from "./errors.js";
|
|
12
11
|
import { reconcileWorktreeDb, isDbAvailable, getMilestone, getMilestoneSlices, closeDatabase, openDatabase, getDbPath, } from "./gsd-db.js";
|
|
13
12
|
import { atomicWriteSync } from "./atomic-write.js";
|
|
14
13
|
import { execFileSync } from "node:child_process";
|
|
15
14
|
import { safeCopy, safeCopyRecursive } from "./safe-fs.js";
|
|
16
|
-
import { gsdRoot } from "./paths.js";
|
|
15
|
+
import { gsdRoot, resolveGsdPathContract } from "./paths.js";
|
|
17
16
|
import { createWorktree, removeWorktree, resolveGitDir, worktreePath, isInsideWorktreesDir, } from "./worktree-manager.js";
|
|
18
17
|
import { detectWorktreeName, nudgeGitBranchCache, } from "./worktree.js";
|
|
19
18
|
import { isGsdWorktreePath, normalizeWorktreePathForCompare, resolveWorktreeProjectRoot, } from "./worktree-root.js";
|
|
@@ -21,15 +20,23 @@ import { MergeConflictError, readIntegrationBranch, RUNTIME_EXCLUSION_PATHS } fr
|
|
|
21
20
|
import { debugLog } from "./debug-logger.js";
|
|
22
21
|
import { logWarning, logError } from "./workflow-logger.js";
|
|
23
22
|
import { loadEffectiveGSDPreferences } from "./preferences.js";
|
|
23
|
+
import { MILESTONE_ID_RE } from "./milestone-ids.js";
|
|
24
24
|
import { nativeGetCurrentBranch, nativeDetectMainBranch, nativeWorkingTreeStatus, nativeAddAllWithExclusions, nativeCommit, nativeCheckoutBranch, nativeMergeSquash, nativeConflictFiles, nativeCheckoutTheirs, nativeAddPaths, nativeRmForce, nativeBranchDelete, nativeBranchForceReset, nativeBranchExists, nativeDiffNumstat, nativeUpdateRef, nativeIsAncestor, nativeMergeAbort, } from "./native-git-bridge.js";
|
|
25
|
-
|
|
25
|
+
import { gsdHome } from "./gsd-home.js";
|
|
26
|
+
import { createWorkspace } from "./workspace.js";
|
|
26
27
|
const PROJECT_PREFERENCES_FILE = "PREFERENCES.md";
|
|
27
28
|
const LEGACY_PROJECT_PREFERENCES_FILE = "preferences.md";
|
|
29
|
+
const LEGACY_DEEP_SETUP_RUNTIME_UNIT_FILES = new Set([
|
|
30
|
+
"workflow-preferences-WORKFLOW-PREFS.json",
|
|
31
|
+
"discuss-project-PROJECT.json",
|
|
32
|
+
"discuss-requirements-REQUIREMENTS.json",
|
|
33
|
+
"research-decision-RESEARCH-DECISION.json",
|
|
34
|
+
"research-project-RESEARCH-PROJECT.json",
|
|
35
|
+
]);
|
|
28
36
|
// ─── Shared Constants & Helpers ─────────────────────────────────────────────
|
|
29
37
|
/**
|
|
30
|
-
* Root-level .gsd/
|
|
31
|
-
*
|
|
32
|
-
* and the dispatch-level sync functions.
|
|
38
|
+
* Root-level .gsd/ projections copied from project root into worktrees for
|
|
39
|
+
* compatibility. Project root remains the canonical state/projection root.
|
|
33
40
|
*/
|
|
34
41
|
const ROOT_STATE_FILES = [
|
|
35
42
|
"DECISIONS.md",
|
|
@@ -46,6 +53,10 @@ const ROOT_STATE_FILES = [
|
|
|
46
53
|
// Back-sync (worktree → main) must NEVER overwrite the project root's copy
|
|
47
54
|
// because the project root is authoritative for preferences (#2684).
|
|
48
55
|
];
|
|
56
|
+
const ROOT_DIAGNOSTIC_FILES = [
|
|
57
|
+
"completed-units.json",
|
|
58
|
+
"metrics.json",
|
|
59
|
+
];
|
|
49
60
|
/**
|
|
50
61
|
* Pop a stash entry by tracking the unique marker embedded in its message so
|
|
51
62
|
* concurrent stash operations against the same project root cannot cause us to
|
|
@@ -130,7 +141,7 @@ const VERDICT_RE = /verdict:\s*[\w-]+/i;
|
|
|
130
141
|
* destination when the source copy contains a `verdict:` field.
|
|
131
142
|
*
|
|
132
143
|
* This is the targeted fix for the UAT stuck-loop (#2821): the main
|
|
133
|
-
* safeCopyRecursive uses force:false to protect worktree-
|
|
144
|
+
* safeCopyRecursive uses force:false to protect worktree-local projection
|
|
134
145
|
* files (#1886), but ASSESSMENT files written by run-uat must be
|
|
135
146
|
* forward-synced when the project root has a verdict. Without this,
|
|
136
147
|
* the worktree retains a stale FAIL or missing ASSESSMENT and
|
|
@@ -185,8 +196,14 @@ function forceOverwriteAssessmentsWithVerdict(srcMilestoneDir, dstMilestoneDir)
|
|
|
185
196
|
}
|
|
186
197
|
}
|
|
187
198
|
// ─── Module State ──────────────────────────────────────────────────────────
|
|
188
|
-
/**
|
|
189
|
-
let
|
|
199
|
+
/** Active workspace registry — replaces the legacy `originalBase` singleton. */
|
|
200
|
+
let activeWorkspace = null;
|
|
201
|
+
function setActiveWorkspace(ws) {
|
|
202
|
+
activeWorkspace = ws;
|
|
203
|
+
}
|
|
204
|
+
function getActiveWorkspace() {
|
|
205
|
+
return activeWorkspace;
|
|
206
|
+
}
|
|
190
207
|
function clearProjectRootStateFiles(basePath, milestoneId) {
|
|
191
208
|
const gsdDir = gsdRoot(basePath);
|
|
192
209
|
const transientFiles = [
|
|
@@ -205,9 +222,9 @@ function clearProjectRootStateFiles(basePath, milestoneId) {
|
|
|
205
222
|
}
|
|
206
223
|
}
|
|
207
224
|
}
|
|
208
|
-
// Clean up
|
|
209
|
-
//
|
|
210
|
-
//
|
|
225
|
+
// Clean up legacy synced milestone directories and runtime/units.
|
|
226
|
+
// Older versions copied these into the project root during execution.
|
|
227
|
+
// If they remain as untracked files when we attempt
|
|
211
228
|
// `git merge --squash`, git rejects the merge with "local changes would
|
|
212
229
|
// be overwritten", causing silent data loss (#1738).
|
|
213
230
|
const syncedDirs = [
|
|
@@ -265,13 +282,41 @@ export const isSafeToAutoResolve = (filePath) => filePath.startsWith(".gsd/") ||
|
|
|
265
282
|
* gsd.db in the worktree so it rebuilds from fresh disk state (#853).
|
|
266
283
|
* Non-fatal — sync failure should never block dispatch.
|
|
267
284
|
*/
|
|
285
|
+
/**
|
|
286
|
+
* Scope-typed variant of syncProjectRootToWorktree.
|
|
287
|
+
*
|
|
288
|
+
* Takes an explicit (rootScope, worktreeScope) pair where rootScope is the
|
|
289
|
+
* project root and worktreeScope is the auto-worktree. Direction is encoded
|
|
290
|
+
* in argument order. Asserts both scopes belong to the same workspace identity
|
|
291
|
+
* to prevent silent mismatch bugs.
|
|
292
|
+
*/
|
|
293
|
+
export function syncProjectRootToWorktreeByScope(rootScope, worktreeScope) {
|
|
294
|
+
if (rootScope.workspace.identityKey !== worktreeScope.workspace.identityKey) {
|
|
295
|
+
throw new Error(`syncProjectRootToWorktreeByScope: scope identity mismatch — ` +
|
|
296
|
+
`rootScope.identityKey="${rootScope.workspace.identityKey}" ` +
|
|
297
|
+
`worktreeScope.identityKey="${worktreeScope.workspace.identityKey}"`);
|
|
298
|
+
}
|
|
299
|
+
if (rootScope.milestoneId !== worktreeScope.milestoneId) {
|
|
300
|
+
throw new Error(`syncProjectRootToWorktreeByScope: milestoneId mismatch — ` +
|
|
301
|
+
`rootScope.milestoneId="${rootScope.milestoneId}" worktreeScope.milestoneId="${worktreeScope.milestoneId}"`);
|
|
302
|
+
}
|
|
303
|
+
const projectRoot = rootScope.workspace.projectRoot;
|
|
304
|
+
const worktreePath_ = worktreeScope.workspace.worktreeRoot ?? worktreeScope.workspace.projectRoot;
|
|
305
|
+
const milestoneId = rootScope.milestoneId;
|
|
306
|
+
syncProjectRootToWorktree(projectRoot, worktreePath_, milestoneId);
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* @deprecated Use syncProjectRootToWorktreeByScope instead.
|
|
310
|
+
* TODO(C-future): remove once all callers migrated.
|
|
311
|
+
*/
|
|
268
312
|
export function syncProjectRootToWorktree(projectRoot, worktreePath_, milestoneId) {
|
|
269
313
|
if (!worktreePath_ || !projectRoot || worktreePath_ === projectRoot)
|
|
270
314
|
return;
|
|
271
315
|
if (!milestoneId)
|
|
272
316
|
return;
|
|
273
|
-
const
|
|
274
|
-
const
|
|
317
|
+
const contract = resolveGsdPathContract(worktreePath_, projectRoot);
|
|
318
|
+
const prGsd = contract.projectGsd;
|
|
319
|
+
const wtGsd = contract.worktreeGsd ?? join(worktreePath_, ".gsd");
|
|
275
320
|
// When .gsd is a symlink to the same external directory in both locations,
|
|
276
321
|
// cpSync rejects the copy because source === destination (ERR_FS_CP_EINVAL).
|
|
277
322
|
// Compare realpaths and skip when they resolve to the same physical path (#2184).
|
|
@@ -279,12 +324,12 @@ export function syncProjectRootToWorktree(projectRoot, worktreePath_, milestoneI
|
|
|
279
324
|
return;
|
|
280
325
|
// Copy milestone directory from project root to worktree — additive only.
|
|
281
326
|
// force:false prevents cpSync from overwriting existing worktree files.
|
|
282
|
-
// Without this, worktree-
|
|
327
|
+
// Without this, worktree-local files (e.g. VALIDATION.md written
|
|
283
328
|
// by validate-milestone) get clobbered by stale project root copies,
|
|
284
329
|
// causing an infinite re-validation loop (#1886).
|
|
285
330
|
safeCopyRecursive(join(prGsd, "milestones", milestoneId), join(wtGsd, "milestones", milestoneId), { force: false });
|
|
286
331
|
// Force-sync ASSESSMENT files that have a verdict from project root (#2821).
|
|
287
|
-
// The additive-only copy above preserves worktree-
|
|
332
|
+
// The additive-only copy above preserves worktree-local files, but
|
|
288
333
|
// ASSESSMENT files are special: after run-uat writes a verdict and post-unit
|
|
289
334
|
// syncs it to the project root, the worktree may retain a stale copy (e.g.
|
|
290
335
|
// verdict:fail while the project root has verdict:pass from a retry). On
|
|
@@ -296,11 +341,9 @@ export function syncProjectRootToWorktree(projectRoot, worktreePath_, milestoneI
|
|
|
296
341
|
// Project root is authoritative for completion state after crash recovery;
|
|
297
342
|
// without this, the worktree re-dispatches already-completed units (#1886).
|
|
298
343
|
safeCopy(join(prGsd, "completed-units.json"), join(wtGsd, "completed-units.json"), { force: true });
|
|
299
|
-
// Delete worktree gsd.db ONLY if it is empty (0 bytes).
|
|
300
|
-
//
|
|
301
|
-
//
|
|
302
|
-
// preserved — deleting it truncates the file to 0 bytes when
|
|
303
|
-
// openDatabase re-creates it, causing "no such table" failures (#2815).
|
|
344
|
+
// Delete a legacy worktree-local gsd.db ONLY if it is empty (0 bytes).
|
|
345
|
+
// Runtime opens contract.projectDb; this cleanup only removes corrupt
|
|
346
|
+
// pre-upgrade local DB projections.
|
|
304
347
|
try {
|
|
305
348
|
const wtDb = join(wtGsd, "gsd.db");
|
|
306
349
|
let deleteSidecars = false;
|
|
@@ -335,33 +378,57 @@ export function syncProjectRootToWorktree(projectRoot, worktreePath_, milestoneI
|
|
|
335
378
|
}
|
|
336
379
|
}
|
|
337
380
|
/**
|
|
338
|
-
*
|
|
381
|
+
* Scope-typed variant of syncStateToProjectRoot.
|
|
382
|
+
*
|
|
383
|
+
* Takes an explicit (worktreeScope, rootScope) pair. Direction is encoded in
|
|
384
|
+
* argument order (worktree → root). Asserts both scopes belong to the same
|
|
385
|
+
* workspace identity to prevent silent mismatch bugs.
|
|
386
|
+
*/
|
|
387
|
+
export function syncStateToProjectRootByScope(worktreeScope, rootScope) {
|
|
388
|
+
if (worktreeScope.workspace.identityKey !== rootScope.workspace.identityKey) {
|
|
389
|
+
throw new Error(`syncStateToProjectRootByScope: scope identity mismatch — ` +
|
|
390
|
+
`worktreeScope.identityKey="${worktreeScope.workspace.identityKey}" ` +
|
|
391
|
+
`rootScope.identityKey="${rootScope.workspace.identityKey}"`);
|
|
392
|
+
}
|
|
393
|
+
if (worktreeScope.milestoneId !== rootScope.milestoneId) {
|
|
394
|
+
throw new Error(`syncStateToProjectRootByScope: milestoneId mismatch — ` +
|
|
395
|
+
`worktreeScope.milestoneId="${worktreeScope.milestoneId}" rootScope.milestoneId="${rootScope.milestoneId}"`);
|
|
396
|
+
}
|
|
397
|
+
const worktreePath_ = worktreeScope.workspace.worktreeRoot ?? worktreeScope.workspace.projectRoot;
|
|
398
|
+
const projectRoot = rootScope.workspace.projectRoot;
|
|
399
|
+
const milestoneId = worktreeScope.milestoneId;
|
|
400
|
+
syncStateToProjectRoot(worktreePath_, projectRoot, milestoneId);
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* Sync worktree diagnostics from worktree to project root.
|
|
339
404
|
* Only runs when inside an auto-worktree (worktreePath differs from projectRoot).
|
|
340
|
-
*
|
|
405
|
+
* DB/project-root state remains authoritative; markdown projections are not
|
|
406
|
+
* copied from the worktree back to the project root.
|
|
341
407
|
* Non-fatal — sync failure should never block dispatch.
|
|
408
|
+
* @deprecated Use syncStateToProjectRootByScope instead.
|
|
409
|
+
* TODO(C-future): remove once all callers migrated.
|
|
342
410
|
*/
|
|
343
411
|
export function syncStateToProjectRoot(worktreePath_, projectRoot, milestoneId) {
|
|
344
412
|
if (!worktreePath_ || !projectRoot || worktreePath_ === projectRoot)
|
|
345
413
|
return;
|
|
346
414
|
if (!milestoneId)
|
|
347
415
|
return;
|
|
348
|
-
const
|
|
349
|
-
const
|
|
416
|
+
const contract = resolveGsdPathContract(worktreePath_, projectRoot);
|
|
417
|
+
const wtGsd = contract.worktreeGsd ?? join(worktreePath_, ".gsd");
|
|
418
|
+
const prGsd = contract.projectGsd;
|
|
350
419
|
// When .gsd is a symlink to the same external directory in both locations,
|
|
351
420
|
// cpSync rejects the copy because source === destination (ERR_FS_CP_EINVAL).
|
|
352
421
|
// Compare realpaths and skip when they resolve to the same physical path (#2184).
|
|
353
422
|
if (isSamePath(wtGsd, prGsd))
|
|
354
423
|
return;
|
|
355
|
-
//
|
|
356
|
-
safeCopy(join(wtGsd, "STATE.md"), join(prGsd, "STATE.md"), { force: true });
|
|
357
|
-
// 2. Milestone directory — ROADMAP, slice PLANs, task summaries
|
|
358
|
-
// Copy the entire milestone .gsd subtree so deriveState reads current checkboxes
|
|
359
|
-
safeCopyRecursive(join(wtGsd, "milestones", milestoneId), join(prGsd, "milestones", milestoneId), { force: true });
|
|
360
|
-
// 3. metrics.json — session cost/token tracking (#2313).
|
|
424
|
+
// metrics.json — session cost/token tracking (#2313).
|
|
361
425
|
// Without this, metrics accumulated in the worktree are invisible from the
|
|
362
426
|
// project root and never appear in the dashboard or skill-health reports.
|
|
363
427
|
safeCopy(join(wtGsd, "metrics.json"), join(prGsd, "metrics.json"), { force: true });
|
|
364
|
-
//
|
|
428
|
+
// completed-units.json — runtime completion diagnostics used to avoid
|
|
429
|
+
// re-dispatching work already completed in an isolated worktree.
|
|
430
|
+
safeCopy(join(wtGsd, "completed-units.json"), join(prGsd, "completed-units.json"), { force: true });
|
|
431
|
+
// Runtime records — unit dispatch diagnostics used by selfHealRuntimeRecords().
|
|
365
432
|
// Without this, a crash during a unit leaves the runtime record only in the
|
|
366
433
|
// worktree. If the next session resolves basePath before worktree re-entry,
|
|
367
434
|
// selfHeal can't find or clear the stale record (#769).
|
|
@@ -374,7 +441,7 @@ export function syncStateToProjectRoot(worktreePath_, projectRoot, milestoneId)
|
|
|
374
441
|
* doesn't falsely trigger staleness (#804).
|
|
375
442
|
*/
|
|
376
443
|
export function readResourceVersion() {
|
|
377
|
-
const agentDir = process.env.GSD_CODING_AGENT_DIR || join(gsdHome, "agent");
|
|
444
|
+
const agentDir = process.env.GSD_CODING_AGENT_DIR || join(gsdHome(), "agent");
|
|
378
445
|
const manifestPath = join(agentDir, "managed-resources.json");
|
|
379
446
|
try {
|
|
380
447
|
const manifest = JSON.parse(readFileSync(manifestPath, "utf-8"));
|
|
@@ -432,9 +499,9 @@ export function escapeStaleWorktree(base) {
|
|
|
432
499
|
// the string-slice heuristic matched the wrong /.gsd/ boundary. This happens
|
|
433
500
|
// when .gsd is a symlink into ~/.gsd/projects/<hash> and process.cwd()
|
|
434
501
|
// resolved through the symlink. Returning ~ would be catastrophic (#1676).
|
|
435
|
-
const candidateGsd = join(projectRoot, ".gsd")
|
|
436
|
-
const
|
|
437
|
-
if (candidateGsd ===
|
|
502
|
+
const candidateGsd = normalizeWorktreePathForCompare(join(projectRoot, ".gsd"));
|
|
503
|
+
const gsdHomeNorm = normalizeWorktreePathForCompare(gsdHome());
|
|
504
|
+
if (candidateGsd === gsdHomeNorm || candidateGsd.startsWith(gsdHomeNorm + "/")) {
|
|
438
505
|
// Don't chdir to home — return base unchanged.
|
|
439
506
|
// resolveProjectRoot() in worktree.ts has the full git-file-based recovery
|
|
440
507
|
// and will be called by the caller (startAuto → projectRoot()).
|
|
@@ -466,6 +533,29 @@ export function cleanStaleRuntimeUnits(gsdRootPath, hasMilestoneSummary) {
|
|
|
466
533
|
for (const file of readdirSync(runtimeUnitsDir)) {
|
|
467
534
|
if (!file.endsWith(".json"))
|
|
468
535
|
continue;
|
|
536
|
+
if (LEGACY_DEEP_SETUP_RUNTIME_UNIT_FILES.has(file)) {
|
|
537
|
+
try {
|
|
538
|
+
unlinkSync(join(runtimeUnitsDir, file));
|
|
539
|
+
cleaned++;
|
|
540
|
+
}
|
|
541
|
+
catch (err) {
|
|
542
|
+
/* non-fatal */
|
|
543
|
+
logWarning("worktree", `stale runtime unit unlink failed (${file}): ${err instanceof Error ? err.message : String(err)}`);
|
|
544
|
+
}
|
|
545
|
+
continue;
|
|
546
|
+
}
|
|
547
|
+
const staleDiscussMatch = file.match(/^discuss-milestone-(.+)\.json$/);
|
|
548
|
+
if (staleDiscussMatch && !MILESTONE_ID_RE.test(staleDiscussMatch[1])) {
|
|
549
|
+
try {
|
|
550
|
+
unlinkSync(join(runtimeUnitsDir, file));
|
|
551
|
+
cleaned++;
|
|
552
|
+
}
|
|
553
|
+
catch (err) {
|
|
554
|
+
/* non-fatal */
|
|
555
|
+
logWarning("worktree", `stale runtime unit unlink failed (${file}): ${err instanceof Error ? err.message : String(err)}`);
|
|
556
|
+
}
|
|
557
|
+
continue;
|
|
558
|
+
}
|
|
469
559
|
const midMatch = file.match(/(M\d+(?:-[a-z0-9]{6})?)/);
|
|
470
560
|
if (!midMatch)
|
|
471
561
|
continue;
|
|
@@ -488,6 +578,24 @@ export function cleanStaleRuntimeUnits(gsdRootPath, hasMilestoneSummary) {
|
|
|
488
578
|
return cleaned;
|
|
489
579
|
}
|
|
490
580
|
// ─── Worktree ↔ Main Repo Sync (#1311) ──────────────────────────────────────
|
|
581
|
+
/**
|
|
582
|
+
* Scope-typed variant of syncGsdStateToWorktree.
|
|
583
|
+
*
|
|
584
|
+
* Takes an explicit (rootScope, worktreeScope) pair. Note: milestoneId is not
|
|
585
|
+
* used by syncGsdStateToWorktree — this variant only requires workspace
|
|
586
|
+
* identity. Asserts both scopes belong to the same workspace identity to
|
|
587
|
+
* prevent silent mismatch bugs.
|
|
588
|
+
*/
|
|
589
|
+
export function syncGsdStateToWorktreeByScope(rootScope, worktreeScope) {
|
|
590
|
+
if (rootScope.workspace.identityKey !== worktreeScope.workspace.identityKey) {
|
|
591
|
+
throw new Error(`syncGsdStateToWorktreeByScope: scope identity mismatch — ` +
|
|
592
|
+
`rootScope.identityKey="${rootScope.workspace.identityKey}" ` +
|
|
593
|
+
`worktreeScope.identityKey="${worktreeScope.workspace.identityKey}"`);
|
|
594
|
+
}
|
|
595
|
+
const mainBasePath = rootScope.workspace.projectRoot;
|
|
596
|
+
const worktreePath_ = worktreeScope.workspace.worktreeRoot ?? worktreeScope.workspace.projectRoot;
|
|
597
|
+
return syncGsdStateToWorktree(mainBasePath, worktreePath_);
|
|
598
|
+
}
|
|
491
599
|
/**
|
|
492
600
|
* Sync .gsd/ state from the main repo into the worktree.
|
|
493
601
|
*
|
|
@@ -499,12 +607,16 @@ export function cleanStaleRuntimeUnits(gsdRootPath, hasMilestoneSummary) {
|
|
|
499
607
|
* missing milestones, CONTEXT, ROADMAP, DECISIONS, REQUIREMENTS, and
|
|
500
608
|
* PROJECT files from the main repo's .gsd/ into the worktree's .gsd/.
|
|
501
609
|
*
|
|
502
|
-
* Only adds missing content — never overwrites existing files in the worktree
|
|
503
|
-
*
|
|
610
|
+
* Only adds missing content — never overwrites existing files in the worktree.
|
|
611
|
+
* Worktree files are compatibility projections; DB/project root remains
|
|
612
|
+
* authoritative for runtime state.
|
|
613
|
+
* @deprecated Use syncGsdStateToWorktreeByScope instead.
|
|
614
|
+
* TODO(C-future): remove once all callers migrated.
|
|
504
615
|
*/
|
|
505
616
|
export function syncGsdStateToWorktree(mainBasePath, worktreePath_) {
|
|
506
|
-
const
|
|
507
|
-
const
|
|
617
|
+
const contract = resolveGsdPathContract(worktreePath_, mainBasePath);
|
|
618
|
+
const mainGsd = contract.projectGsd;
|
|
619
|
+
const wtGsd = contract.worktreeGsd ?? join(worktreePath_, ".gsd");
|
|
508
620
|
const synced = [];
|
|
509
621
|
// If both resolve to the same directory (symlink), no sync needed
|
|
510
622
|
if (isSamePath(mainGsd, wtGsd))
|
|
@@ -648,28 +760,22 @@ export function syncGsdStateToWorktree(mainBasePath, worktreePath_) {
|
|
|
648
760
|
return { synced };
|
|
649
761
|
}
|
|
650
762
|
/**
|
|
651
|
-
* Sync
|
|
652
|
-
*
|
|
653
|
-
*
|
|
763
|
+
* Sync compatibility artifacts from worktree back to the main external state
|
|
764
|
+
* directory. Canonical workflow state lives in the project DB; worktree .gsd
|
|
765
|
+
* content is legacy projection/diagnostic data only.
|
|
654
766
|
*
|
|
655
767
|
* Syncs:
|
|
656
|
-
* 1.
|
|
657
|
-
*
|
|
658
|
-
* worktree is the authoritative execution context.
|
|
659
|
-
* 2. ALL milestone directories found in the worktree — not just the
|
|
660
|
-
* current milestoneId. The complete-milestone unit may create artifacts
|
|
661
|
-
* for the *next* milestone (CONTEXT, ROADMAP, new requirements) which
|
|
662
|
-
* must survive worktree teardown.
|
|
768
|
+
* 1. Legacy worktree DBs are reconciled into the canonical project DB.
|
|
769
|
+
* 2. Runtime diagnostic files may be copied for operator visibility.
|
|
663
770
|
*
|
|
664
|
-
*
|
|
665
|
-
*
|
|
666
|
-
*
|
|
667
|
-
* squash merge carries nothing. This caused next-milestone artifacts and
|
|
668
|
-
* updated REQUIREMENTS/PROJECT to be silently lost on teardown.
|
|
771
|
+
* Markdown milestone directories are projections and are not copied from
|
|
772
|
+
* worktrees into the project root. Current workflow state must arrive through
|
|
773
|
+
* the shared project DB or the pre-upgrade DB reconciliation path above.
|
|
669
774
|
*/
|
|
670
775
|
export function syncWorktreeStateBack(mainBasePath, worktreePath, milestoneId) {
|
|
671
|
-
const
|
|
672
|
-
const
|
|
776
|
+
const contract = resolveGsdPathContract(worktreePath, mainBasePath);
|
|
777
|
+
const mainGsd = contract.projectGsd;
|
|
778
|
+
const wtGsd = contract.worktreeGsd ?? join(worktreePath, ".gsd");
|
|
673
779
|
const synced = [];
|
|
674
780
|
// If both resolve to the same directory (symlink), no sync needed
|
|
675
781
|
if (isSamePath(mainGsd, wtGsd))
|
|
@@ -682,7 +788,7 @@ export function syncWorktreeStateBack(mainBasePath, worktreePath, milestoneId) {
|
|
|
682
788
|
// files. This handles in-flight worktrees that were created before the
|
|
683
789
|
// upgrade to shared WAL mode.
|
|
684
790
|
const wtLocalDb = join(wtGsd, "gsd.db");
|
|
685
|
-
const mainDb =
|
|
791
|
+
const mainDb = contract.projectDb;
|
|
686
792
|
if (existsSync(wtLocalDb) && existsSync(mainDb)) {
|
|
687
793
|
try {
|
|
688
794
|
reconcileWorktreeDb(mainDb, wtLocalDb);
|
|
@@ -693,13 +799,10 @@ export function syncWorktreeStateBack(mainBasePath, worktreePath, milestoneId) {
|
|
|
693
799
|
logError("worktree", `DB reconciliation failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
694
800
|
}
|
|
695
801
|
}
|
|
696
|
-
// ── 1. Sync root-level
|
|
697
|
-
//
|
|
698
|
-
//
|
|
699
|
-
|
|
700
|
-
// written during milestone closeout and lost on teardown without explicit sync
|
|
701
|
-
// (#1787, #2313).
|
|
702
|
-
for (const f of ROOT_STATE_FILES) {
|
|
802
|
+
// ── 1. Sync root-level diagnostic files back ─────────────────────────
|
|
803
|
+
// Markdown/JSON state projections remain project-root/DB authoritative.
|
|
804
|
+
// These diagnostic files are copied for observability only.
|
|
805
|
+
for (const f of ROOT_DIAGNOSTIC_FILES) {
|
|
703
806
|
const src = join(wtGsd, f);
|
|
704
807
|
const dst = join(mainGsd, f);
|
|
705
808
|
if (existsSync(src)) {
|
|
@@ -713,92 +816,8 @@ export function syncWorktreeStateBack(mainBasePath, worktreePath, milestoneId) {
|
|
|
713
816
|
}
|
|
714
817
|
}
|
|
715
818
|
}
|
|
716
|
-
// ── 2. Sync ALL milestone directories ────────────────────────────────
|
|
717
|
-
// The complete-milestone unit may create next-milestone artifacts (e.g.
|
|
718
|
-
// M007 setup while closing M006). We must sync every milestone directory
|
|
719
|
-
// in the worktree, not just the current one.
|
|
720
|
-
const wtMilestonesDir = join(wtGsd, "milestones");
|
|
721
|
-
if (!existsSync(wtMilestonesDir))
|
|
722
|
-
return { synced };
|
|
723
|
-
try {
|
|
724
|
-
const wtMilestones = readdirSync(wtMilestonesDir, { withFileTypes: true })
|
|
725
|
-
.filter((d) => d.isDirectory())
|
|
726
|
-
.map((d) => d.name);
|
|
727
|
-
for (const mid of wtMilestones) {
|
|
728
|
-
// Skip the current milestone being merged — its files are already in the
|
|
729
|
-
// milestone branch and would conflict with the squash merge (#3641).
|
|
730
|
-
if (mid === milestoneId)
|
|
731
|
-
continue;
|
|
732
|
-
syncMilestoneDir(wtGsd, mainGsd, mid, synced);
|
|
733
|
-
}
|
|
734
|
-
}
|
|
735
|
-
catch (err) {
|
|
736
|
-
/* non-fatal */
|
|
737
|
-
logWarning("worktree", `milestone sync-back failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
738
|
-
}
|
|
739
819
|
return { synced };
|
|
740
820
|
}
|
|
741
|
-
/**
|
|
742
|
-
* Sync a single milestone directory from worktree to main.
|
|
743
|
-
* Copies milestone-level .md files, slice-level files, and task summaries.
|
|
744
|
-
*/
|
|
745
|
-
/** Copy matching files from srcDir to dstDir (non-fatal per file). */
|
|
746
|
-
function syncDirFiles(srcDir, dstDir, filter, synced, prefix) {
|
|
747
|
-
try {
|
|
748
|
-
for (const entry of readdirSync(srcDir, { withFileTypes: true })) {
|
|
749
|
-
if (!entry.isFile() || !filter(entry.name))
|
|
750
|
-
continue;
|
|
751
|
-
try {
|
|
752
|
-
cpSync(join(srcDir, entry.name), join(dstDir, entry.name), { force: true });
|
|
753
|
-
synced.push(`${prefix}${entry.name}`);
|
|
754
|
-
}
|
|
755
|
-
catch (err) {
|
|
756
|
-
/* non-fatal */
|
|
757
|
-
logWarning("worktree", `file copy failed (${prefix}${entry.name}): ${err instanceof Error ? err.message : String(err)}`);
|
|
758
|
-
}
|
|
759
|
-
}
|
|
760
|
-
}
|
|
761
|
-
catch (err) {
|
|
762
|
-
/* non-fatal — srcDir may not be readable */
|
|
763
|
-
logWarning("worktree", `directory read failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
764
|
-
}
|
|
765
|
-
}
|
|
766
|
-
function syncMilestoneDir(wtGsd, mainGsd, mid, synced) {
|
|
767
|
-
const wtMilestoneDir = join(wtGsd, "milestones", mid);
|
|
768
|
-
const mainMilestoneDir = join(mainGsd, "milestones", mid);
|
|
769
|
-
if (!existsSync(wtMilestoneDir))
|
|
770
|
-
return;
|
|
771
|
-
mkdirSync(mainMilestoneDir, { recursive: true });
|
|
772
|
-
const isMd = (name) => name.endsWith(".md");
|
|
773
|
-
// Sync milestone-level files (SUMMARY, VALIDATION, ROADMAP, CONTEXT)
|
|
774
|
-
syncDirFiles(wtMilestoneDir, mainMilestoneDir, isMd, synced, `milestones/${mid}/`);
|
|
775
|
-
// Sync slice-level files (summaries, UATs) and task summaries (#1678)
|
|
776
|
-
const wtSlicesDir = join(wtMilestoneDir, "slices");
|
|
777
|
-
const mainSlicesDir = join(mainMilestoneDir, "slices");
|
|
778
|
-
if (!existsSync(wtSlicesDir))
|
|
779
|
-
return;
|
|
780
|
-
try {
|
|
781
|
-
for (const sliceEntry of readdirSync(wtSlicesDir, { withFileTypes: true })) {
|
|
782
|
-
if (!sliceEntry.isDirectory())
|
|
783
|
-
continue;
|
|
784
|
-
const sid = sliceEntry.name;
|
|
785
|
-
const wtSliceDir = join(wtSlicesDir, sid);
|
|
786
|
-
const mainSliceDir = join(mainSlicesDir, sid);
|
|
787
|
-
mkdirSync(mainSliceDir, { recursive: true });
|
|
788
|
-
syncDirFiles(wtSliceDir, mainSliceDir, isMd, synced, `milestones/${mid}/slices/${sid}/`);
|
|
789
|
-
const wtTasksDir = join(wtSliceDir, "tasks");
|
|
790
|
-
const mainTasksDir = join(mainSliceDir, "tasks");
|
|
791
|
-
if (existsSync(wtTasksDir)) {
|
|
792
|
-
mkdirSync(mainTasksDir, { recursive: true });
|
|
793
|
-
syncDirFiles(wtTasksDir, mainTasksDir, isMd, synced, `milestones/${mid}/slices/${sid}/tasks/`);
|
|
794
|
-
}
|
|
795
|
-
}
|
|
796
|
-
}
|
|
797
|
-
catch (err) {
|
|
798
|
-
/* non-fatal */
|
|
799
|
-
logWarning("worktree", `milestone slice sync failed (${mid}): ${err instanceof Error ? err.message : String(err)}`);
|
|
800
|
-
}
|
|
801
|
-
}
|
|
802
821
|
// ─── Worktree Post-Create Hook (#597) ────────────────────────────────────────
|
|
803
822
|
/**
|
|
804
823
|
* Run the user-configured post-create hook script after worktree creation.
|
|
@@ -961,10 +980,35 @@ export function enterBranchModeForMilestone(basePath, milestoneId) {
|
|
|
961
980
|
* directory at the project root and apply any [x] checkbox states that are
|
|
962
981
|
* ahead of the worktree version (forward-only: never downgrade [x] → [ ]).
|
|
963
982
|
*
|
|
964
|
-
* This is
|
|
965
|
-
*
|
|
966
|
-
*
|
|
967
|
-
|
|
983
|
+
* This is forward-only compatibility for legacy projection copies. The DB
|
|
984
|
+
* remains authoritative; this never downgrades checked boxes in a local
|
|
985
|
+
* worktree projection.
|
|
986
|
+
*/
|
|
987
|
+
/**
|
|
988
|
+
* Scope-typed variant of reconcilePlanCheckboxes.
|
|
989
|
+
*
|
|
990
|
+
* Takes an explicit (rootScope, worktreeScope) pair. milestoneId is taken
|
|
991
|
+
* from rootScope. Asserts both scopes belong to the same workspace identity
|
|
992
|
+
* to prevent silent mismatch bugs.
|
|
993
|
+
*/
|
|
994
|
+
export function reconcilePlanCheckboxesByScope(rootScope, worktreeScope) {
|
|
995
|
+
if (rootScope.workspace.identityKey !== worktreeScope.workspace.identityKey) {
|
|
996
|
+
throw new Error(`reconcilePlanCheckboxesByScope: scope identity mismatch — ` +
|
|
997
|
+
`rootScope.identityKey="${rootScope.workspace.identityKey}" ` +
|
|
998
|
+
`worktreeScope.identityKey="${worktreeScope.workspace.identityKey}"`);
|
|
999
|
+
}
|
|
1000
|
+
if (rootScope.milestoneId !== worktreeScope.milestoneId) {
|
|
1001
|
+
throw new Error(`reconcilePlanCheckboxesByScope: milestoneId mismatch — ` +
|
|
1002
|
+
`rootScope.milestoneId="${rootScope.milestoneId}" worktreeScope.milestoneId="${worktreeScope.milestoneId}"`);
|
|
1003
|
+
}
|
|
1004
|
+
const projectRoot = rootScope.workspace.projectRoot;
|
|
1005
|
+
const wtPath = worktreeScope.workspace.worktreeRoot ?? worktreeScope.workspace.projectRoot;
|
|
1006
|
+
const milestoneId = rootScope.milestoneId;
|
|
1007
|
+
reconcilePlanCheckboxes(projectRoot, wtPath, milestoneId);
|
|
1008
|
+
}
|
|
1009
|
+
/**
|
|
1010
|
+
* @deprecated Use reconcilePlanCheckboxesByScope instead.
|
|
1011
|
+
* TODO(C-future): remove once all callers migrated.
|
|
968
1012
|
*/
|
|
969
1013
|
function reconcilePlanCheckboxes(projectRoot, wtPath, milestoneId) {
|
|
970
1014
|
const srcMilestone = join(projectRoot, ".gsd", "milestones", milestoneId);
|
|
@@ -1071,7 +1115,13 @@ export function createAutoWorktree(basePath, milestoneId) {
|
|
|
1071
1115
|
// would fork worktrees from the wrong (stale) branch.
|
|
1072
1116
|
const integrationBranch = readIntegrationBranch(basePath, milestoneId) ?? undefined;
|
|
1073
1117
|
const gitPrefs = loadEffectiveGSDPreferences()?.preferences?.git;
|
|
1074
|
-
const
|
|
1118
|
+
const validatedPrefBranch = gitPrefs?.main_branch &&
|
|
1119
|
+
typeof gitPrefs.main_branch === "string" &&
|
|
1120
|
+
gitPrefs.main_branch.length > 0 &&
|
|
1121
|
+
nativeBranchExists(basePath, gitPrefs.main_branch)
|
|
1122
|
+
? gitPrefs.main_branch
|
|
1123
|
+
: undefined;
|
|
1124
|
+
const startPoint = integrationBranch ?? validatedPrefBranch ?? undefined;
|
|
1075
1125
|
info = createWorktree(basePath, milestoneId, {
|
|
1076
1126
|
branch,
|
|
1077
1127
|
startPoint,
|
|
@@ -1113,11 +1163,11 @@ export function createAutoWorktree(basePath, milestoneId) {
|
|
|
1113
1163
|
const previousCwd = process.cwd();
|
|
1114
1164
|
try {
|
|
1115
1165
|
process.chdir(info.path);
|
|
1116
|
-
|
|
1166
|
+
setActiveWorkspace(createWorkspace(basePath));
|
|
1117
1167
|
}
|
|
1118
1168
|
catch (err) {
|
|
1119
1169
|
// If chdir fails, the worktree was created but we couldn't enter it.
|
|
1120
|
-
// Don't
|
|
1170
|
+
// Don't set activeWorkspace -- caller can retry or clean up.
|
|
1121
1171
|
throw new GSDError(GSD_IO_ERROR, `Auto-worktree created at ${info.path} but chdir failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
1122
1172
|
}
|
|
1123
1173
|
nudgeGitBranchCache(previousCwd);
|
|
@@ -1177,41 +1227,79 @@ export function teardownAutoWorktree(originalBasePath, milestoneId, opts = {}) {
|
|
|
1177
1227
|
const branch = autoWorktreeBranch(milestoneId);
|
|
1178
1228
|
const { preserveBranch = false } = opts;
|
|
1179
1229
|
const previousCwd = process.cwd();
|
|
1230
|
+
// Wrap the entire teardown body in a single try/finally so activeWorkspace
|
|
1231
|
+
// is ALWAYS cleared — even if process.chdir throws (e.g. originalBasePath
|
|
1232
|
+
// was deleted before teardown ran). Previously the finally only covered
|
|
1233
|
+
// removeWorktree, leaving the registry stale on a chdir failure (H3 fix).
|
|
1180
1234
|
try {
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
`Remove it manually with: rm -rf "${wtDir.replaceAll("\\", "/")}"`, { worktree: milestoneId });
|
|
1200
|
-
// Attempt a direct filesystem removal as a fallback — but ONLY if the
|
|
1201
|
-
// path is safely inside .gsd/worktrees/ to prevent #2365 data loss.
|
|
1202
|
-
if (isInsideWorktreesDir(originalBasePath, wtDir)) {
|
|
1235
|
+
try {
|
|
1236
|
+
process.chdir(originalBasePath);
|
|
1237
|
+
}
|
|
1238
|
+
catch (err) {
|
|
1239
|
+
throw new GSDError(GSD_IO_ERROR, `Failed to chdir back to ${originalBasePath} during teardown: ${err instanceof Error ? err.message : String(err)}`);
|
|
1240
|
+
}
|
|
1241
|
+
// Mirror cleanup steps from mergeMilestoneToMain abort path:
|
|
1242
|
+
// 1. Remove transient state files (STATE.md, auto.lock, {MID}-META.json).
|
|
1243
|
+
// Non-fatal — must not block teardown.
|
|
1244
|
+
try {
|
|
1245
|
+
clearProjectRootStateFiles(originalBasePath, milestoneId);
|
|
1246
|
+
}
|
|
1247
|
+
catch (err) {
|
|
1248
|
+
logWarning("worktree", `clearProjectRootStateFiles failed during teardown: ${err instanceof Error ? err.message : String(err)}`);
|
|
1249
|
+
}
|
|
1250
|
+
// 2. Reconcile worktree-local gsd.db into project root DB if both exist.
|
|
1251
|
+
// Non-fatal — handles legacy worktrees that have a local copy.
|
|
1252
|
+
if (isDbAvailable()) {
|
|
1203
1253
|
try {
|
|
1204
|
-
|
|
1254
|
+
const contract = resolveGsdPathContract(previousCwd, originalBasePath);
|
|
1255
|
+
const worktreeDbPath = join(contract.worktreeGsd ?? join(previousCwd, ".gsd"), "gsd.db");
|
|
1256
|
+
const mainDbPath = contract.projectDb;
|
|
1257
|
+
if (existsSync(worktreeDbPath) && !isSamePath(worktreeDbPath, mainDbPath)) {
|
|
1258
|
+
reconcileWorktreeDb(mainDbPath, worktreeDbPath);
|
|
1259
|
+
}
|
|
1205
1260
|
}
|
|
1206
1261
|
catch (err) {
|
|
1207
|
-
|
|
1208
|
-
|
|
1262
|
+
/* non-fatal */
|
|
1263
|
+
logError("worktree", `DB reconciliation failed during teardown: ${err instanceof Error ? err.message : String(err)}`);
|
|
1209
1264
|
}
|
|
1210
1265
|
}
|
|
1211
|
-
|
|
1212
|
-
|
|
1266
|
+
nudgeGitBranchCache(previousCwd);
|
|
1267
|
+
// 3. Remove the worktree. Errors propagate naturally — the outer finally
|
|
1268
|
+
// ensures activeWorkspace is cleared regardless.
|
|
1269
|
+
removeWorktree(originalBasePath, milestoneId, {
|
|
1270
|
+
branch,
|
|
1271
|
+
deleteBranch: !preserveBranch,
|
|
1272
|
+
});
|
|
1273
|
+
// Verify cleanup succeeded — warn if the worktree directory is still on disk.
|
|
1274
|
+
// On Windows, bash-based cleanup can silently fail when paths contain
|
|
1275
|
+
// backslashes (#1436), leaving ~1 GB+ orphaned directories.
|
|
1276
|
+
const wtDir = worktreePath(originalBasePath, milestoneId);
|
|
1277
|
+
if (existsSync(wtDir)) {
|
|
1278
|
+
logWarning("reconcile", `Worktree directory still exists after teardown: ${wtDir}. ` +
|
|
1279
|
+
`This is likely an orphaned directory consuming disk space. ` +
|
|
1280
|
+
`Remove it manually with: rm -rf "${wtDir.replaceAll("\\", "/")}"`, { worktree: milestoneId });
|
|
1281
|
+
// Attempt a direct filesystem removal as a fallback — but ONLY if the
|
|
1282
|
+
// path is safely inside .gsd/worktrees/ to prevent #2365 data loss.
|
|
1283
|
+
if (isInsideWorktreesDir(originalBasePath, wtDir)) {
|
|
1284
|
+
try {
|
|
1285
|
+
rmSync(wtDir, { recursive: true, force: true });
|
|
1286
|
+
}
|
|
1287
|
+
catch (err) {
|
|
1288
|
+
// Non-fatal — the warning above tells the user how to clean up
|
|
1289
|
+
logWarning("worktree", `worktree directory removal failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
1290
|
+
}
|
|
1291
|
+
}
|
|
1292
|
+
else {
|
|
1293
|
+
console.error(`[GSD] REFUSING fallback rmSync — path is outside .gsd/worktrees/: ${wtDir}`);
|
|
1294
|
+
}
|
|
1213
1295
|
}
|
|
1214
1296
|
}
|
|
1297
|
+
finally {
|
|
1298
|
+
// Clear module state unconditionally — regardless of which step above
|
|
1299
|
+
// failed. A stale activeWorkspace causes getActiveAutoWorktreeContext()
|
|
1300
|
+
// to return wrong data for subsequent operations.
|
|
1301
|
+
setActiveWorkspace(null);
|
|
1302
|
+
}
|
|
1215
1303
|
}
|
|
1216
1304
|
/**
|
|
1217
1305
|
* Detect if the process is currently inside an auto-worktree.
|
|
@@ -1219,17 +1307,18 @@ export function teardownAutoWorktree(originalBasePath, milestoneId, opts = {}) {
|
|
|
1219
1307
|
* still works after process restart when module state has been reset.
|
|
1220
1308
|
*/
|
|
1221
1309
|
export function isInAutoWorktree(basePath) {
|
|
1222
|
-
const
|
|
1223
|
-
if (!isGsdWorktreePath(
|
|
1310
|
+
const targetPath = isGsdWorktreePath(basePath) ? basePath : process.cwd();
|
|
1311
|
+
if (!isGsdWorktreePath(targetPath))
|
|
1224
1312
|
return false;
|
|
1225
|
-
const
|
|
1226
|
-
const
|
|
1313
|
+
const storedBase = getAutoWorktreeOriginalBase();
|
|
1314
|
+
const projectRoot = resolveWorktreeProjectRoot(basePath, storedBase);
|
|
1315
|
+
const targetProjectRoot = resolveWorktreeProjectRoot(targetPath, storedBase);
|
|
1227
1316
|
if (normalizeWorktreePathForCompare(projectRoot) !==
|
|
1228
|
-
normalizeWorktreePathForCompare(
|
|
1317
|
+
normalizeWorktreePathForCompare(targetProjectRoot)) {
|
|
1229
1318
|
return false;
|
|
1230
1319
|
}
|
|
1231
1320
|
try {
|
|
1232
|
-
const branch = nativeGetCurrentBranch(
|
|
1321
|
+
const branch = nativeGetCurrentBranch(targetPath);
|
|
1233
1322
|
return branch.startsWith("milestone/");
|
|
1234
1323
|
}
|
|
1235
1324
|
catch {
|
|
@@ -1296,7 +1385,7 @@ export function enterAutoWorktree(basePath, milestoneId) {
|
|
|
1296
1385
|
const previousCwd = process.cwd();
|
|
1297
1386
|
try {
|
|
1298
1387
|
process.chdir(p);
|
|
1299
|
-
|
|
1388
|
+
setActiveWorkspace(createWorkspace(basePath));
|
|
1300
1389
|
}
|
|
1301
1390
|
catch (err) {
|
|
1302
1391
|
throw new GSDError(GSD_IO_ERROR, `Failed to enter auto-worktree at ${p}: ${err instanceof Error ? err.message : String(err)}`);
|
|
@@ -1309,14 +1398,16 @@ export function enterAutoWorktree(basePath, milestoneId) {
|
|
|
1309
1398
|
* Returns null if not currently in an auto-worktree.
|
|
1310
1399
|
*/
|
|
1311
1400
|
export function getAutoWorktreeOriginalBase() {
|
|
1312
|
-
return
|
|
1401
|
+
return getActiveWorkspace()?.projectRoot ?? null;
|
|
1313
1402
|
}
|
|
1314
1403
|
export function _resetAutoWorktreeOriginalBaseForTests() {
|
|
1315
|
-
|
|
1404
|
+
setActiveWorkspace(null);
|
|
1316
1405
|
}
|
|
1317
1406
|
export function getActiveAutoWorktreeContext() {
|
|
1318
|
-
|
|
1407
|
+
const ws = getActiveWorkspace();
|
|
1408
|
+
if (!ws)
|
|
1319
1409
|
return null;
|
|
1410
|
+
const originalBase = ws.projectRoot;
|
|
1320
1411
|
const cwd = process.cwd();
|
|
1321
1412
|
if (!isGsdWorktreePath(cwd))
|
|
1322
1413
|
return null;
|
|
@@ -1353,7 +1444,7 @@ function autoCommitDirtyState(cwd) {
|
|
|
1353
1444
|
}
|
|
1354
1445
|
catch (e) {
|
|
1355
1446
|
debugLog("autoCommitDirtyState", { error: String(e) });
|
|
1356
|
-
|
|
1447
|
+
throw new GSDError(GSD_GIT_ERROR, `Failed to auto-commit dirty worktree state before milestone merge: ${e instanceof Error ? e.message : String(e)}`);
|
|
1357
1448
|
}
|
|
1358
1449
|
}
|
|
1359
1450
|
/**
|
|
@@ -1386,11 +1477,11 @@ export function mergeMilestoneToMain(originalBasePath_, milestoneId, roadmapCont
|
|
|
1386
1477
|
// integration branch captures dirty files from OTHER milestones under a
|
|
1387
1478
|
// misleading commit message, contaminating the main branch (#2929).
|
|
1388
1479
|
//
|
|
1389
|
-
// When
|
|
1480
|
+
// When activeWorkspace is null (branch mode, no worktree), autoCommitDirtyState
|
|
1390
1481
|
// runs unconditionally — the caller is responsible for cwd placement.
|
|
1391
1482
|
{
|
|
1392
1483
|
let shouldAutoCommit = true;
|
|
1393
|
-
if (
|
|
1484
|
+
if (getActiveWorkspace() !== null) {
|
|
1394
1485
|
try {
|
|
1395
1486
|
const currentBranch = nativeGetCurrentBranch(worktreeCwd);
|
|
1396
1487
|
shouldAutoCommit = currentBranch === milestoneBranch;
|
|
@@ -1410,9 +1501,10 @@ export function mergeMilestoneToMain(originalBasePath_, milestoneId, roadmapCont
|
|
|
1410
1501
|
// database (#2823).
|
|
1411
1502
|
if (isDbAvailable()) {
|
|
1412
1503
|
try {
|
|
1413
|
-
const
|
|
1414
|
-
const
|
|
1415
|
-
|
|
1504
|
+
const contract = resolveGsdPathContract(worktreeCwd, originalBasePath_);
|
|
1505
|
+
const worktreeDbPath = join(contract.worktreeGsd ?? join(worktreeCwd, ".gsd"), "gsd.db");
|
|
1506
|
+
const mainDbPath = contract.projectDb;
|
|
1507
|
+
if (existsSync(worktreeDbPath) && !isSamePath(worktreeDbPath, mainDbPath)) {
|
|
1416
1508
|
reconcileWorktreeDb(mainDbPath, worktreeDbPath);
|
|
1417
1509
|
}
|
|
1418
1510
|
}
|
|
@@ -1966,7 +2058,7 @@ export function mergeMilestoneToMain(originalBasePath_, milestoneId, roadmapCont
|
|
|
1966
2058
|
}
|
|
1967
2059
|
// 10. Auto-push if enabled
|
|
1968
2060
|
let pushed = false;
|
|
1969
|
-
if (prefs.auto_push === true && !nothingToCommit) {
|
|
2061
|
+
if (prefs.auto_push === true && prefs.auto_pr !== true && !nothingToCommit) {
|
|
1970
2062
|
const remote = prefs.remote ?? "origin";
|
|
1971
2063
|
try {
|
|
1972
2064
|
execFileSync("git", ["push", remote, mainBranch], {
|
|
@@ -2016,9 +2108,10 @@ export function mergeMilestoneToMain(originalBasePath_, milestoneId, roadmapCont
|
|
|
2016
2108
|
// throws only when the milestone has unanchored code changes, passes
|
|
2017
2109
|
// through when the code is genuinely already on the integration branch.
|
|
2018
2110
|
// 11a. Pre-teardown safety net (#1853): if the worktree still has uncommitted
|
|
2019
|
-
// changes (e.g. nativeHasChanges cache returned stale false,
|
|
2020
|
-
//
|
|
2021
|
-
//
|
|
2111
|
+
// changes (e.g. nativeHasChanges cache returned stale false), abort teardown.
|
|
2112
|
+
// Committing here would be too late: the squash merge to the integration
|
|
2113
|
+
// branch already happened, so a new milestone-branch commit would not be
|
|
2114
|
+
// included and branch deletion could drop the only ref to that work.
|
|
2022
2115
|
//
|
|
2023
2116
|
// Guard: only run when worktreeCwd is on the milestone branch (#2929).
|
|
2024
2117
|
// In parallel mode or branch-mode merges, worktreeCwd may be the project
|
|
@@ -2037,18 +2130,16 @@ export function mergeMilestoneToMain(originalBasePath_, milestoneId, roadmapCont
|
|
|
2037
2130
|
try {
|
|
2038
2131
|
const dirtyCheck = nativeWorkingTreeStatus(worktreeCwd);
|
|
2039
2132
|
if (dirtyCheck) {
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
status: dirtyCheck.slice(0, 200),
|
|
2044
|
-
});
|
|
2045
|
-
nativeAddAllWithExclusions(worktreeCwd, RUNTIME_EXCLUSION_PATHS);
|
|
2046
|
-
nativeCommit(worktreeCwd, "chore: pre-teardown auto-commit of uncommitted worktree changes");
|
|
2133
|
+
process.chdir(previousCwd);
|
|
2134
|
+
throw new GSDError(GSD_GIT_ERROR, `Milestone worktree still has uncommitted changes after squash merge. ` +
|
|
2135
|
+
`Aborting teardown to preserve ${milestoneBranch}. Status:\n${dirtyCheck}`);
|
|
2047
2136
|
}
|
|
2048
2137
|
}
|
|
2049
2138
|
catch (e) {
|
|
2139
|
+
if (e instanceof GSDError)
|
|
2140
|
+
throw e;
|
|
2050
2141
|
debugLog("mergeMilestoneToMain", {
|
|
2051
|
-
phase: "pre-teardown-
|
|
2142
|
+
phase: "pre-teardown-dirty-check-error",
|
|
2052
2143
|
error: String(e),
|
|
2053
2144
|
});
|
|
2054
2145
|
}
|
|
@@ -2074,7 +2165,22 @@ export function mergeMilestoneToMain(originalBasePath_, milestoneId, roadmapCont
|
|
|
2074
2165
|
logWarning("worktree", `git branch-delete failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
2075
2166
|
}
|
|
2076
2167
|
// 14. Clear module state
|
|
2077
|
-
|
|
2168
|
+
setActiveWorkspace(null);
|
|
2078
2169
|
nudgeGitBranchCache(previousCwd);
|
|
2170
|
+
// 15. Anchor cwd at the project root on success-return. Step 12 removed
|
|
2171
|
+
// the worktree dir; if cwd was inside it, every subsequent process.cwd()
|
|
2172
|
+
// would throw ENOENT and trip auto/run-unit.ts:50's session-failed cancel
|
|
2173
|
+
// path (the de73fb43d regression that closes headless gsd auto). Step 3
|
|
2174
|
+
// already chdir'd here, but defending the success-return contract makes
|
|
2175
|
+
// future maintainers safe against intervening chdir's between step 3 and
|
|
2176
|
+
// here.
|
|
2177
|
+
try {
|
|
2178
|
+
// process.cwd() can throw ENOENT when cwd was removed, so attempt
|
|
2179
|
+
// recovery directly.
|
|
2180
|
+
process.chdir(originalBasePath_);
|
|
2181
|
+
}
|
|
2182
|
+
catch (err) {
|
|
2183
|
+
logWarning("worktree", `chdir to project root after merge failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
2184
|
+
}
|
|
2079
2185
|
return { commitMessage, pushed, prCreated, codeFilesChanged };
|
|
2080
2186
|
}
|