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
|
@@ -19,7 +19,6 @@ import {
|
|
|
19
19
|
lstatSync as lstatSyncFn,
|
|
20
20
|
} from "node:fs";
|
|
21
21
|
import { isAbsolute, join, sep as pathSep } from "node:path";
|
|
22
|
-
import { homedir } from "node:os";
|
|
23
22
|
import { GSDError, GSD_IO_ERROR, GSD_GIT_ERROR } from "./errors.js";
|
|
24
23
|
import {
|
|
25
24
|
reconcileWorktreeDb,
|
|
@@ -33,7 +32,7 @@ import {
|
|
|
33
32
|
import { atomicWriteSync } from "./atomic-write.js";
|
|
34
33
|
import { execFileSync } from "node:child_process";
|
|
35
34
|
import { safeCopy, safeCopyRecursive } from "./safe-fs.js";
|
|
36
|
-
import { gsdRoot } from "./paths.js";
|
|
35
|
+
import { gsdRoot, resolveGsdPathContract } from "./paths.js";
|
|
37
36
|
import {
|
|
38
37
|
createWorktree,
|
|
39
38
|
removeWorktree,
|
|
@@ -55,6 +54,7 @@ import { MergeConflictError, readIntegrationBranch, RUNTIME_EXCLUSION_PATHS } fr
|
|
|
55
54
|
import { debugLog } from "./debug-logger.js";
|
|
56
55
|
import { logWarning, logError } from "./workflow-logger.js";
|
|
57
56
|
import { loadEffectiveGSDPreferences } from "./preferences.js";
|
|
57
|
+
import { MILESTONE_ID_RE } from "./milestone-ids.js";
|
|
58
58
|
import {
|
|
59
59
|
nativeGetCurrentBranch,
|
|
60
60
|
nativeDetectMainBranch,
|
|
@@ -75,17 +75,24 @@ import {
|
|
|
75
75
|
nativeIsAncestor,
|
|
76
76
|
nativeMergeAbort,
|
|
77
77
|
} from "./native-git-bridge.js";
|
|
78
|
+
import { gsdHome } from "./gsd-home.js";
|
|
79
|
+
import { type MilestoneScope, type GsdWorkspace, createWorkspace } from "./workspace.js";
|
|
78
80
|
|
|
79
|
-
const gsdHome = process.env.GSD_HOME || join(homedir(), ".gsd");
|
|
80
81
|
const PROJECT_PREFERENCES_FILE = "PREFERENCES.md";
|
|
81
82
|
const LEGACY_PROJECT_PREFERENCES_FILE = "preferences.md";
|
|
83
|
+
const LEGACY_DEEP_SETUP_RUNTIME_UNIT_FILES = new Set([
|
|
84
|
+
"workflow-preferences-WORKFLOW-PREFS.json",
|
|
85
|
+
"discuss-project-PROJECT.json",
|
|
86
|
+
"discuss-requirements-REQUIREMENTS.json",
|
|
87
|
+
"research-decision-RESEARCH-DECISION.json",
|
|
88
|
+
"research-project-RESEARCH-PROJECT.json",
|
|
89
|
+
]);
|
|
82
90
|
|
|
83
91
|
// ─── Shared Constants & Helpers ─────────────────────────────────────────────
|
|
84
92
|
|
|
85
93
|
/**
|
|
86
|
-
* Root-level .gsd/
|
|
87
|
-
*
|
|
88
|
-
* and the dispatch-level sync functions.
|
|
94
|
+
* Root-level .gsd/ projections copied from project root into worktrees for
|
|
95
|
+
* compatibility. Project root remains the canonical state/projection root.
|
|
89
96
|
*/
|
|
90
97
|
const ROOT_STATE_FILES = [
|
|
91
98
|
"DECISIONS.md",
|
|
@@ -103,6 +110,11 @@ const ROOT_STATE_FILES = [
|
|
|
103
110
|
// because the project root is authoritative for preferences (#2684).
|
|
104
111
|
] as const;
|
|
105
112
|
|
|
113
|
+
const ROOT_DIAGNOSTIC_FILES = [
|
|
114
|
+
"completed-units.json",
|
|
115
|
+
"metrics.json",
|
|
116
|
+
] as const;
|
|
117
|
+
|
|
106
118
|
/**
|
|
107
119
|
* Pop a stash entry by tracking the unique marker embedded in its message so
|
|
108
120
|
* concurrent stash operations against the same project root cannot cause us to
|
|
@@ -187,7 +199,7 @@ const VERDICT_RE = /verdict:\s*[\w-]+/i;
|
|
|
187
199
|
* destination when the source copy contains a `verdict:` field.
|
|
188
200
|
*
|
|
189
201
|
* This is the targeted fix for the UAT stuck-loop (#2821): the main
|
|
190
|
-
* safeCopyRecursive uses force:false to protect worktree-
|
|
202
|
+
* safeCopyRecursive uses force:false to protect worktree-local projection
|
|
191
203
|
* files (#1886), but ASSESSMENT files written by run-uat must be
|
|
192
204
|
* forward-synced when the project root has a verdict. Without this,
|
|
193
205
|
* the worktree retains a stale FAIL or missing ASSESSMENT and
|
|
@@ -243,8 +255,16 @@ function forceOverwriteAssessmentsWithVerdict(
|
|
|
243
255
|
|
|
244
256
|
// ─── Module State ──────────────────────────────────────────────────────────
|
|
245
257
|
|
|
246
|
-
/**
|
|
247
|
-
let
|
|
258
|
+
/** Active workspace registry — replaces the legacy `originalBase` singleton. */
|
|
259
|
+
let activeWorkspace: GsdWorkspace | null = null;
|
|
260
|
+
|
|
261
|
+
function setActiveWorkspace(ws: GsdWorkspace | null): void {
|
|
262
|
+
activeWorkspace = ws;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
function getActiveWorkspace(): GsdWorkspace | null {
|
|
266
|
+
return activeWorkspace;
|
|
267
|
+
}
|
|
248
268
|
|
|
249
269
|
function clearProjectRootStateFiles(basePath: string, milestoneId: string): void {
|
|
250
270
|
const gsdDir = gsdRoot(basePath);
|
|
@@ -265,9 +285,9 @@ function clearProjectRootStateFiles(basePath: string, milestoneId: string): void
|
|
|
265
285
|
}
|
|
266
286
|
}
|
|
267
287
|
|
|
268
|
-
// Clean up
|
|
269
|
-
//
|
|
270
|
-
//
|
|
288
|
+
// Clean up legacy synced milestone directories and runtime/units.
|
|
289
|
+
// Older versions copied these into the project root during execution.
|
|
290
|
+
// If they remain as untracked files when we attempt
|
|
271
291
|
// `git merge --squash`, git rejects the merge with "local changes would
|
|
272
292
|
// be overwritten", causing silent data loss (#1738).
|
|
273
293
|
const syncedDirs = [
|
|
@@ -334,6 +354,41 @@ export const isSafeToAutoResolve = (filePath: string): boolean =>
|
|
|
334
354
|
* gsd.db in the worktree so it rebuilds from fresh disk state (#853).
|
|
335
355
|
* Non-fatal — sync failure should never block dispatch.
|
|
336
356
|
*/
|
|
357
|
+
/**
|
|
358
|
+
* Scope-typed variant of syncProjectRootToWorktree.
|
|
359
|
+
*
|
|
360
|
+
* Takes an explicit (rootScope, worktreeScope) pair where rootScope is the
|
|
361
|
+
* project root and worktreeScope is the auto-worktree. Direction is encoded
|
|
362
|
+
* in argument order. Asserts both scopes belong to the same workspace identity
|
|
363
|
+
* to prevent silent mismatch bugs.
|
|
364
|
+
*/
|
|
365
|
+
export function syncProjectRootToWorktreeByScope(
|
|
366
|
+
rootScope: MilestoneScope,
|
|
367
|
+
worktreeScope: MilestoneScope,
|
|
368
|
+
): void {
|
|
369
|
+
if (rootScope.workspace.identityKey !== worktreeScope.workspace.identityKey) {
|
|
370
|
+
throw new Error(
|
|
371
|
+
`syncProjectRootToWorktreeByScope: scope identity mismatch — ` +
|
|
372
|
+
`rootScope.identityKey="${rootScope.workspace.identityKey}" ` +
|
|
373
|
+
`worktreeScope.identityKey="${worktreeScope.workspace.identityKey}"`,
|
|
374
|
+
);
|
|
375
|
+
}
|
|
376
|
+
if (rootScope.milestoneId !== worktreeScope.milestoneId) {
|
|
377
|
+
throw new Error(
|
|
378
|
+
`syncProjectRootToWorktreeByScope: milestoneId mismatch — ` +
|
|
379
|
+
`rootScope.milestoneId="${rootScope.milestoneId}" worktreeScope.milestoneId="${worktreeScope.milestoneId}"`,
|
|
380
|
+
);
|
|
381
|
+
}
|
|
382
|
+
const projectRoot = rootScope.workspace.projectRoot;
|
|
383
|
+
const worktreePath_ = worktreeScope.workspace.worktreeRoot ?? worktreeScope.workspace.projectRoot;
|
|
384
|
+
const milestoneId = rootScope.milestoneId;
|
|
385
|
+
syncProjectRootToWorktree(projectRoot, worktreePath_, milestoneId);
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
/**
|
|
389
|
+
* @deprecated Use syncProjectRootToWorktreeByScope instead.
|
|
390
|
+
* TODO(C-future): remove once all callers migrated.
|
|
391
|
+
*/
|
|
337
392
|
export function syncProjectRootToWorktree(
|
|
338
393
|
projectRoot: string,
|
|
339
394
|
worktreePath_: string,
|
|
@@ -342,8 +397,9 @@ export function syncProjectRootToWorktree(
|
|
|
342
397
|
if (!worktreePath_ || !projectRoot || worktreePath_ === projectRoot) return;
|
|
343
398
|
if (!milestoneId) return;
|
|
344
399
|
|
|
345
|
-
const
|
|
346
|
-
const
|
|
400
|
+
const contract = resolveGsdPathContract(worktreePath_, projectRoot);
|
|
401
|
+
const prGsd = contract.projectGsd;
|
|
402
|
+
const wtGsd = contract.worktreeGsd ?? join(worktreePath_, ".gsd");
|
|
347
403
|
|
|
348
404
|
// When .gsd is a symlink to the same external directory in both locations,
|
|
349
405
|
// cpSync rejects the copy because source === destination (ERR_FS_CP_EINVAL).
|
|
@@ -352,7 +408,7 @@ export function syncProjectRootToWorktree(
|
|
|
352
408
|
|
|
353
409
|
// Copy milestone directory from project root to worktree — additive only.
|
|
354
410
|
// force:false prevents cpSync from overwriting existing worktree files.
|
|
355
|
-
// Without this, worktree-
|
|
411
|
+
// Without this, worktree-local files (e.g. VALIDATION.md written
|
|
356
412
|
// by validate-milestone) get clobbered by stale project root copies,
|
|
357
413
|
// causing an infinite re-validation loop (#1886).
|
|
358
414
|
safeCopyRecursive(
|
|
@@ -362,7 +418,7 @@ export function syncProjectRootToWorktree(
|
|
|
362
418
|
);
|
|
363
419
|
|
|
364
420
|
// Force-sync ASSESSMENT files that have a verdict from project root (#2821).
|
|
365
|
-
// The additive-only copy above preserves worktree-
|
|
421
|
+
// The additive-only copy above preserves worktree-local files, but
|
|
366
422
|
// ASSESSMENT files are special: after run-uat writes a verdict and post-unit
|
|
367
423
|
// syncs it to the project root, the worktree may retain a stale copy (e.g.
|
|
368
424
|
// verdict:fail while the project root has verdict:pass from a retry). On
|
|
@@ -383,11 +439,9 @@ export function syncProjectRootToWorktree(
|
|
|
383
439
|
{ force: true },
|
|
384
440
|
);
|
|
385
441
|
|
|
386
|
-
// Delete worktree gsd.db ONLY if it is empty (0 bytes).
|
|
387
|
-
//
|
|
388
|
-
//
|
|
389
|
-
// preserved — deleting it truncates the file to 0 bytes when
|
|
390
|
-
// openDatabase re-creates it, causing "no such table" failures (#2815).
|
|
442
|
+
// Delete a legacy worktree-local gsd.db ONLY if it is empty (0 bytes).
|
|
443
|
+
// Runtime opens contract.projectDb; this cleanup only removes corrupt
|
|
444
|
+
// pre-upgrade local DB projections.
|
|
391
445
|
try {
|
|
392
446
|
const wtDb = join(wtGsd, "gsd.db");
|
|
393
447
|
let deleteSidecars = false;
|
|
@@ -421,10 +475,43 @@ export function syncProjectRootToWorktree(
|
|
|
421
475
|
}
|
|
422
476
|
|
|
423
477
|
/**
|
|
424
|
-
*
|
|
478
|
+
* Scope-typed variant of syncStateToProjectRoot.
|
|
479
|
+
*
|
|
480
|
+
* Takes an explicit (worktreeScope, rootScope) pair. Direction is encoded in
|
|
481
|
+
* argument order (worktree → root). Asserts both scopes belong to the same
|
|
482
|
+
* workspace identity to prevent silent mismatch bugs.
|
|
483
|
+
*/
|
|
484
|
+
export function syncStateToProjectRootByScope(
|
|
485
|
+
worktreeScope: MilestoneScope,
|
|
486
|
+
rootScope: MilestoneScope,
|
|
487
|
+
): void {
|
|
488
|
+
if (worktreeScope.workspace.identityKey !== rootScope.workspace.identityKey) {
|
|
489
|
+
throw new Error(
|
|
490
|
+
`syncStateToProjectRootByScope: scope identity mismatch — ` +
|
|
491
|
+
`worktreeScope.identityKey="${worktreeScope.workspace.identityKey}" ` +
|
|
492
|
+
`rootScope.identityKey="${rootScope.workspace.identityKey}"`,
|
|
493
|
+
);
|
|
494
|
+
}
|
|
495
|
+
if (worktreeScope.milestoneId !== rootScope.milestoneId) {
|
|
496
|
+
throw new Error(
|
|
497
|
+
`syncStateToProjectRootByScope: milestoneId mismatch — ` +
|
|
498
|
+
`worktreeScope.milestoneId="${worktreeScope.milestoneId}" rootScope.milestoneId="${rootScope.milestoneId}"`,
|
|
499
|
+
);
|
|
500
|
+
}
|
|
501
|
+
const worktreePath_ = worktreeScope.workspace.worktreeRoot ?? worktreeScope.workspace.projectRoot;
|
|
502
|
+
const projectRoot = rootScope.workspace.projectRoot;
|
|
503
|
+
const milestoneId = worktreeScope.milestoneId;
|
|
504
|
+
syncStateToProjectRoot(worktreePath_, projectRoot, milestoneId);
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
/**
|
|
508
|
+
* Sync worktree diagnostics from worktree to project root.
|
|
425
509
|
* Only runs when inside an auto-worktree (worktreePath differs from projectRoot).
|
|
426
|
-
*
|
|
510
|
+
* DB/project-root state remains authoritative; markdown projections are not
|
|
511
|
+
* copied from the worktree back to the project root.
|
|
427
512
|
* Non-fatal — sync failure should never block dispatch.
|
|
513
|
+
* @deprecated Use syncStateToProjectRootByScope instead.
|
|
514
|
+
* TODO(C-future): remove once all callers migrated.
|
|
428
515
|
*/
|
|
429
516
|
export function syncStateToProjectRoot(
|
|
430
517
|
worktreePath_: string,
|
|
@@ -434,31 +521,25 @@ export function syncStateToProjectRoot(
|
|
|
434
521
|
if (!worktreePath_ || !projectRoot || worktreePath_ === projectRoot) return;
|
|
435
522
|
if (!milestoneId) return;
|
|
436
523
|
|
|
437
|
-
const
|
|
438
|
-
const
|
|
524
|
+
const contract = resolveGsdPathContract(worktreePath_, projectRoot);
|
|
525
|
+
const wtGsd = contract.worktreeGsd ?? join(worktreePath_, ".gsd");
|
|
526
|
+
const prGsd = contract.projectGsd;
|
|
439
527
|
|
|
440
528
|
// When .gsd is a symlink to the same external directory in both locations,
|
|
441
529
|
// cpSync rejects the copy because source === destination (ERR_FS_CP_EINVAL).
|
|
442
530
|
// Compare realpaths and skip when they resolve to the same physical path (#2184).
|
|
443
531
|
if (isSamePath(wtGsd, prGsd)) return;
|
|
444
532
|
|
|
445
|
-
//
|
|
446
|
-
safeCopy(join(wtGsd, "STATE.md"), join(prGsd, "STATE.md"), { force: true });
|
|
447
|
-
|
|
448
|
-
// 2. Milestone directory — ROADMAP, slice PLANs, task summaries
|
|
449
|
-
// Copy the entire milestone .gsd subtree so deriveState reads current checkboxes
|
|
450
|
-
safeCopyRecursive(
|
|
451
|
-
join(wtGsd, "milestones", milestoneId),
|
|
452
|
-
join(prGsd, "milestones", milestoneId),
|
|
453
|
-
{ force: true },
|
|
454
|
-
);
|
|
455
|
-
|
|
456
|
-
// 3. metrics.json — session cost/token tracking (#2313).
|
|
533
|
+
// metrics.json — session cost/token tracking (#2313).
|
|
457
534
|
// Without this, metrics accumulated in the worktree are invisible from the
|
|
458
535
|
// project root and never appear in the dashboard or skill-health reports.
|
|
459
536
|
safeCopy(join(wtGsd, "metrics.json"), join(prGsd, "metrics.json"), { force: true });
|
|
460
537
|
|
|
461
|
-
//
|
|
538
|
+
// completed-units.json — runtime completion diagnostics used to avoid
|
|
539
|
+
// re-dispatching work already completed in an isolated worktree.
|
|
540
|
+
safeCopy(join(wtGsd, "completed-units.json"), join(prGsd, "completed-units.json"), { force: true });
|
|
541
|
+
|
|
542
|
+
// Runtime records — unit dispatch diagnostics used by selfHealRuntimeRecords().
|
|
462
543
|
// Without this, a crash during a unit leaves the runtime record only in the
|
|
463
544
|
// worktree. If the next session resolves basePath before worktree re-entry,
|
|
464
545
|
// selfHeal can't find or clear the stale record (#769).
|
|
@@ -478,7 +559,7 @@ export function syncStateToProjectRoot(
|
|
|
478
559
|
*/
|
|
479
560
|
export function readResourceVersion(): string | null {
|
|
480
561
|
const agentDir =
|
|
481
|
-
process.env.GSD_CODING_AGENT_DIR || join(gsdHome, "agent");
|
|
562
|
+
process.env.GSD_CODING_AGENT_DIR || join(gsdHome(), "agent");
|
|
482
563
|
const manifestPath = join(agentDir, "managed-resources.json");
|
|
483
564
|
try {
|
|
484
565
|
const manifest = JSON.parse(readFileSync(manifestPath, "utf-8"));
|
|
@@ -541,9 +622,9 @@ export function escapeStaleWorktree(base: string): string {
|
|
|
541
622
|
// the string-slice heuristic matched the wrong /.gsd/ boundary. This happens
|
|
542
623
|
// when .gsd is a symlink into ~/.gsd/projects/<hash> and process.cwd()
|
|
543
624
|
// resolved through the symlink. Returning ~ would be catastrophic (#1676).
|
|
544
|
-
const candidateGsd = join(projectRoot, ".gsd")
|
|
545
|
-
const
|
|
546
|
-
if (candidateGsd ===
|
|
625
|
+
const candidateGsd = normalizeWorktreePathForCompare(join(projectRoot, ".gsd"));
|
|
626
|
+
const gsdHomeNorm = normalizeWorktreePathForCompare(gsdHome());
|
|
627
|
+
if (candidateGsd === gsdHomeNorm || candidateGsd.startsWith(gsdHomeNorm + "/")) {
|
|
547
628
|
// Don't chdir to home — return base unchanged.
|
|
548
629
|
// resolveProjectRoot() in worktree.ts has the full git-file-based recovery
|
|
549
630
|
// and will be called by the caller (startAuto → projectRoot()).
|
|
@@ -578,6 +659,27 @@ export function cleanStaleRuntimeUnits(
|
|
|
578
659
|
try {
|
|
579
660
|
for (const file of readdirSync(runtimeUnitsDir)) {
|
|
580
661
|
if (!file.endsWith(".json")) continue;
|
|
662
|
+
if (LEGACY_DEEP_SETUP_RUNTIME_UNIT_FILES.has(file)) {
|
|
663
|
+
try {
|
|
664
|
+
unlinkSync(join(runtimeUnitsDir, file));
|
|
665
|
+
cleaned++;
|
|
666
|
+
} catch (err) {
|
|
667
|
+
/* non-fatal */
|
|
668
|
+
logWarning("worktree", `stale runtime unit unlink failed (${file}): ${err instanceof Error ? err.message : String(err)}`);
|
|
669
|
+
}
|
|
670
|
+
continue;
|
|
671
|
+
}
|
|
672
|
+
const staleDiscussMatch = file.match(/^discuss-milestone-(.+)\.json$/);
|
|
673
|
+
if (staleDiscussMatch && !MILESTONE_ID_RE.test(staleDiscussMatch[1])) {
|
|
674
|
+
try {
|
|
675
|
+
unlinkSync(join(runtimeUnitsDir, file));
|
|
676
|
+
cleaned++;
|
|
677
|
+
} catch (err) {
|
|
678
|
+
/* non-fatal */
|
|
679
|
+
logWarning("worktree", `stale runtime unit unlink failed (${file}): ${err instanceof Error ? err.message : String(err)}`);
|
|
680
|
+
}
|
|
681
|
+
continue;
|
|
682
|
+
}
|
|
581
683
|
const midMatch = file.match(/(M\d+(?:-[a-z0-9]{6})?)/);
|
|
582
684
|
if (!midMatch) continue;
|
|
583
685
|
if (hasMilestoneSummary(midMatch[1])) {
|
|
@@ -599,6 +701,30 @@ export function cleanStaleRuntimeUnits(
|
|
|
599
701
|
|
|
600
702
|
// ─── Worktree ↔ Main Repo Sync (#1311) ──────────────────────────────────────
|
|
601
703
|
|
|
704
|
+
/**
|
|
705
|
+
* Scope-typed variant of syncGsdStateToWorktree.
|
|
706
|
+
*
|
|
707
|
+
* Takes an explicit (rootScope, worktreeScope) pair. Note: milestoneId is not
|
|
708
|
+
* used by syncGsdStateToWorktree — this variant only requires workspace
|
|
709
|
+
* identity. Asserts both scopes belong to the same workspace identity to
|
|
710
|
+
* prevent silent mismatch bugs.
|
|
711
|
+
*/
|
|
712
|
+
export function syncGsdStateToWorktreeByScope(
|
|
713
|
+
rootScope: MilestoneScope,
|
|
714
|
+
worktreeScope: MilestoneScope,
|
|
715
|
+
): { synced: string[] } {
|
|
716
|
+
if (rootScope.workspace.identityKey !== worktreeScope.workspace.identityKey) {
|
|
717
|
+
throw new Error(
|
|
718
|
+
`syncGsdStateToWorktreeByScope: scope identity mismatch — ` +
|
|
719
|
+
`rootScope.identityKey="${rootScope.workspace.identityKey}" ` +
|
|
720
|
+
`worktreeScope.identityKey="${worktreeScope.workspace.identityKey}"`,
|
|
721
|
+
);
|
|
722
|
+
}
|
|
723
|
+
const mainBasePath = rootScope.workspace.projectRoot;
|
|
724
|
+
const worktreePath_ = worktreeScope.workspace.worktreeRoot ?? worktreeScope.workspace.projectRoot;
|
|
725
|
+
return syncGsdStateToWorktree(mainBasePath, worktreePath_);
|
|
726
|
+
}
|
|
727
|
+
|
|
602
728
|
/**
|
|
603
729
|
* Sync .gsd/ state from the main repo into the worktree.
|
|
604
730
|
*
|
|
@@ -610,15 +736,19 @@ export function cleanStaleRuntimeUnits(
|
|
|
610
736
|
* missing milestones, CONTEXT, ROADMAP, DECISIONS, REQUIREMENTS, and
|
|
611
737
|
* PROJECT files from the main repo's .gsd/ into the worktree's .gsd/.
|
|
612
738
|
*
|
|
613
|
-
* Only adds missing content — never overwrites existing files in the worktree
|
|
614
|
-
*
|
|
739
|
+
* Only adds missing content — never overwrites existing files in the worktree.
|
|
740
|
+
* Worktree files are compatibility projections; DB/project root remains
|
|
741
|
+
* authoritative for runtime state.
|
|
742
|
+
* @deprecated Use syncGsdStateToWorktreeByScope instead.
|
|
743
|
+
* TODO(C-future): remove once all callers migrated.
|
|
615
744
|
*/
|
|
616
745
|
export function syncGsdStateToWorktree(
|
|
617
746
|
mainBasePath: string,
|
|
618
747
|
worktreePath_: string,
|
|
619
748
|
): { synced: string[] } {
|
|
620
|
-
const
|
|
621
|
-
const
|
|
749
|
+
const contract = resolveGsdPathContract(worktreePath_, mainBasePath);
|
|
750
|
+
const mainGsd = contract.projectGsd;
|
|
751
|
+
const wtGsd = contract.worktreeGsd ?? join(worktreePath_, ".gsd");
|
|
622
752
|
const synced: string[] = [];
|
|
623
753
|
|
|
624
754
|
// If both resolve to the same directory (symlink), no sync needed
|
|
@@ -762,32 +892,26 @@ export function syncGsdStateToWorktree(
|
|
|
762
892
|
}
|
|
763
893
|
|
|
764
894
|
/**
|
|
765
|
-
* Sync
|
|
766
|
-
*
|
|
767
|
-
*
|
|
895
|
+
* Sync compatibility artifacts from worktree back to the main external state
|
|
896
|
+
* directory. Canonical workflow state lives in the project DB; worktree .gsd
|
|
897
|
+
* content is legacy projection/diagnostic data only.
|
|
768
898
|
*
|
|
769
899
|
* Syncs:
|
|
770
|
-
* 1.
|
|
771
|
-
*
|
|
772
|
-
* worktree is the authoritative execution context.
|
|
773
|
-
* 2. ALL milestone directories found in the worktree — not just the
|
|
774
|
-
* current milestoneId. The complete-milestone unit may create artifacts
|
|
775
|
-
* for the *next* milestone (CONTEXT, ROADMAP, new requirements) which
|
|
776
|
-
* must survive worktree teardown.
|
|
900
|
+
* 1. Legacy worktree DBs are reconciled into the canonical project DB.
|
|
901
|
+
* 2. Runtime diagnostic files may be copied for operator visibility.
|
|
777
902
|
*
|
|
778
|
-
*
|
|
779
|
-
*
|
|
780
|
-
*
|
|
781
|
-
* squash merge carries nothing. This caused next-milestone artifacts and
|
|
782
|
-
* updated REQUIREMENTS/PROJECT to be silently lost on teardown.
|
|
903
|
+
* Markdown milestone directories are projections and are not copied from
|
|
904
|
+
* worktrees into the project root. Current workflow state must arrive through
|
|
905
|
+
* the shared project DB or the pre-upgrade DB reconciliation path above.
|
|
783
906
|
*/
|
|
784
907
|
export function syncWorktreeStateBack(
|
|
785
908
|
mainBasePath: string,
|
|
786
909
|
worktreePath: string,
|
|
787
910
|
milestoneId: string,
|
|
788
911
|
): { synced: string[] } {
|
|
789
|
-
const
|
|
790
|
-
const
|
|
912
|
+
const contract = resolveGsdPathContract(worktreePath, mainBasePath);
|
|
913
|
+
const mainGsd = contract.projectGsd;
|
|
914
|
+
const wtGsd = contract.worktreeGsd ?? join(worktreePath, ".gsd");
|
|
791
915
|
const synced: string[] = [];
|
|
792
916
|
|
|
793
917
|
// If both resolve to the same directory (symlink), no sync needed
|
|
@@ -801,7 +925,7 @@ export function syncWorktreeStateBack(
|
|
|
801
925
|
// files. This handles in-flight worktrees that were created before the
|
|
802
926
|
// upgrade to shared WAL mode.
|
|
803
927
|
const wtLocalDb = join(wtGsd, "gsd.db");
|
|
804
|
-
const mainDb =
|
|
928
|
+
const mainDb = contract.projectDb;
|
|
805
929
|
if (existsSync(wtLocalDb) && existsSync(mainDb)) {
|
|
806
930
|
try {
|
|
807
931
|
reconcileWorktreeDb(mainDb, wtLocalDb);
|
|
@@ -812,13 +936,10 @@ export function syncWorktreeStateBack(
|
|
|
812
936
|
}
|
|
813
937
|
}
|
|
814
938
|
|
|
815
|
-
// ── 1. Sync root-level
|
|
816
|
-
//
|
|
817
|
-
//
|
|
818
|
-
|
|
819
|
-
// written during milestone closeout and lost on teardown without explicit sync
|
|
820
|
-
// (#1787, #2313).
|
|
821
|
-
for (const f of ROOT_STATE_FILES) {
|
|
939
|
+
// ── 1. Sync root-level diagnostic files back ─────────────────────────
|
|
940
|
+
// Markdown/JSON state projections remain project-root/DB authoritative.
|
|
941
|
+
// These diagnostic files are copied for observability only.
|
|
942
|
+
for (const f of ROOT_DIAGNOSTIC_FILES) {
|
|
822
943
|
const src = join(wtGsd, f);
|
|
823
944
|
const dst = join(mainGsd, f);
|
|
824
945
|
if (existsSync(src)) {
|
|
@@ -832,105 +953,8 @@ export function syncWorktreeStateBack(
|
|
|
832
953
|
}
|
|
833
954
|
}
|
|
834
955
|
|
|
835
|
-
// ── 2. Sync ALL milestone directories ────────────────────────────────
|
|
836
|
-
// The complete-milestone unit may create next-milestone artifacts (e.g.
|
|
837
|
-
// M007 setup while closing M006). We must sync every milestone directory
|
|
838
|
-
// in the worktree, not just the current one.
|
|
839
|
-
const wtMilestonesDir = join(wtGsd, "milestones");
|
|
840
|
-
if (!existsSync(wtMilestonesDir)) return { synced };
|
|
841
|
-
|
|
842
|
-
try {
|
|
843
|
-
const wtMilestones = readdirSync(wtMilestonesDir, { withFileTypes: true })
|
|
844
|
-
.filter((d) => d.isDirectory())
|
|
845
|
-
.map((d) => d.name);
|
|
846
|
-
|
|
847
|
-
for (const mid of wtMilestones) {
|
|
848
|
-
// Skip the current milestone being merged — its files are already in the
|
|
849
|
-
// milestone branch and would conflict with the squash merge (#3641).
|
|
850
|
-
if (mid === milestoneId) continue;
|
|
851
|
-
syncMilestoneDir(wtGsd, mainGsd, mid, synced);
|
|
852
|
-
}
|
|
853
|
-
} catch (err) {
|
|
854
|
-
/* non-fatal */
|
|
855
|
-
logWarning("worktree", `milestone sync-back failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
856
|
-
}
|
|
857
|
-
|
|
858
956
|
return { synced };
|
|
859
957
|
}
|
|
860
|
-
|
|
861
|
-
/**
|
|
862
|
-
* Sync a single milestone directory from worktree to main.
|
|
863
|
-
* Copies milestone-level .md files, slice-level files, and task summaries.
|
|
864
|
-
*/
|
|
865
|
-
/** Copy matching files from srcDir to dstDir (non-fatal per file). */
|
|
866
|
-
function syncDirFiles(
|
|
867
|
-
srcDir: string,
|
|
868
|
-
dstDir: string,
|
|
869
|
-
filter: (name: string) => boolean,
|
|
870
|
-
synced: string[],
|
|
871
|
-
prefix: string,
|
|
872
|
-
): void {
|
|
873
|
-
try {
|
|
874
|
-
for (const entry of readdirSync(srcDir, { withFileTypes: true })) {
|
|
875
|
-
if (!entry.isFile() || !filter(entry.name)) continue;
|
|
876
|
-
try {
|
|
877
|
-
cpSync(join(srcDir, entry.name), join(dstDir, entry.name), { force: true });
|
|
878
|
-
synced.push(`${prefix}${entry.name}`);
|
|
879
|
-
} catch (err) {
|
|
880
|
-
/* non-fatal */
|
|
881
|
-
logWarning("worktree", `file copy failed (${prefix}${entry.name}): ${err instanceof Error ? err.message : String(err)}`);
|
|
882
|
-
}
|
|
883
|
-
}
|
|
884
|
-
} catch (err) {
|
|
885
|
-
/* non-fatal — srcDir may not be readable */
|
|
886
|
-
logWarning("worktree", `directory read failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
887
|
-
}
|
|
888
|
-
}
|
|
889
|
-
|
|
890
|
-
function syncMilestoneDir(
|
|
891
|
-
wtGsd: string,
|
|
892
|
-
mainGsd: string,
|
|
893
|
-
mid: string,
|
|
894
|
-
synced: string[],
|
|
895
|
-
): void {
|
|
896
|
-
const wtMilestoneDir = join(wtGsd, "milestones", mid);
|
|
897
|
-
const mainMilestoneDir = join(mainGsd, "milestones", mid);
|
|
898
|
-
|
|
899
|
-
if (!existsSync(wtMilestoneDir)) return;
|
|
900
|
-
mkdirSync(mainMilestoneDir, { recursive: true });
|
|
901
|
-
|
|
902
|
-
const isMd = (name: string): boolean => name.endsWith(".md");
|
|
903
|
-
|
|
904
|
-
// Sync milestone-level files (SUMMARY, VALIDATION, ROADMAP, CONTEXT)
|
|
905
|
-
syncDirFiles(wtMilestoneDir, mainMilestoneDir, isMd, synced, `milestones/${mid}/`);
|
|
906
|
-
|
|
907
|
-
// Sync slice-level files (summaries, UATs) and task summaries (#1678)
|
|
908
|
-
const wtSlicesDir = join(wtMilestoneDir, "slices");
|
|
909
|
-
const mainSlicesDir = join(mainMilestoneDir, "slices");
|
|
910
|
-
if (!existsSync(wtSlicesDir)) return;
|
|
911
|
-
|
|
912
|
-
try {
|
|
913
|
-
for (const sliceEntry of readdirSync(wtSlicesDir, { withFileTypes: true })) {
|
|
914
|
-
if (!sliceEntry.isDirectory()) continue;
|
|
915
|
-
const sid = sliceEntry.name;
|
|
916
|
-
const wtSliceDir = join(wtSlicesDir, sid);
|
|
917
|
-
const mainSliceDir = join(mainSlicesDir, sid);
|
|
918
|
-
mkdirSync(mainSliceDir, { recursive: true });
|
|
919
|
-
|
|
920
|
-
syncDirFiles(wtSliceDir, mainSliceDir, isMd, synced, `milestones/${mid}/slices/${sid}/`);
|
|
921
|
-
|
|
922
|
-
const wtTasksDir = join(wtSliceDir, "tasks");
|
|
923
|
-
const mainTasksDir = join(mainSliceDir, "tasks");
|
|
924
|
-
if (existsSync(wtTasksDir)) {
|
|
925
|
-
mkdirSync(mainTasksDir, { recursive: true });
|
|
926
|
-
syncDirFiles(wtTasksDir, mainTasksDir, isMd, synced, `milestones/${mid}/slices/${sid}/tasks/`);
|
|
927
|
-
}
|
|
928
|
-
}
|
|
929
|
-
} catch (err) {
|
|
930
|
-
/* non-fatal */
|
|
931
|
-
logWarning("worktree", `milestone slice sync failed (${mid}): ${err instanceof Error ? err.message : String(err)}`);
|
|
932
|
-
}
|
|
933
|
-
}
|
|
934
958
|
// ─── Worktree Post-Create Hook (#597) ────────────────────────────────────────
|
|
935
959
|
|
|
936
960
|
/**
|
|
@@ -1116,10 +1140,43 @@ export function enterBranchModeForMilestone(
|
|
|
1116
1140
|
* directory at the project root and apply any [x] checkbox states that are
|
|
1117
1141
|
* ahead of the worktree version (forward-only: never downgrade [x] → [ ]).
|
|
1118
1142
|
*
|
|
1119
|
-
* This is
|
|
1120
|
-
*
|
|
1121
|
-
*
|
|
1122
|
-
|
|
1143
|
+
* This is forward-only compatibility for legacy projection copies. The DB
|
|
1144
|
+
* remains authoritative; this never downgrades checked boxes in a local
|
|
1145
|
+
* worktree projection.
|
|
1146
|
+
*/
|
|
1147
|
+
/**
|
|
1148
|
+
* Scope-typed variant of reconcilePlanCheckboxes.
|
|
1149
|
+
*
|
|
1150
|
+
* Takes an explicit (rootScope, worktreeScope) pair. milestoneId is taken
|
|
1151
|
+
* from rootScope. Asserts both scopes belong to the same workspace identity
|
|
1152
|
+
* to prevent silent mismatch bugs.
|
|
1153
|
+
*/
|
|
1154
|
+
export function reconcilePlanCheckboxesByScope(
|
|
1155
|
+
rootScope: MilestoneScope,
|
|
1156
|
+
worktreeScope: MilestoneScope,
|
|
1157
|
+
): void {
|
|
1158
|
+
if (rootScope.workspace.identityKey !== worktreeScope.workspace.identityKey) {
|
|
1159
|
+
throw new Error(
|
|
1160
|
+
`reconcilePlanCheckboxesByScope: scope identity mismatch — ` +
|
|
1161
|
+
`rootScope.identityKey="${rootScope.workspace.identityKey}" ` +
|
|
1162
|
+
`worktreeScope.identityKey="${worktreeScope.workspace.identityKey}"`,
|
|
1163
|
+
);
|
|
1164
|
+
}
|
|
1165
|
+
if (rootScope.milestoneId !== worktreeScope.milestoneId) {
|
|
1166
|
+
throw new Error(
|
|
1167
|
+
`reconcilePlanCheckboxesByScope: milestoneId mismatch — ` +
|
|
1168
|
+
`rootScope.milestoneId="${rootScope.milestoneId}" worktreeScope.milestoneId="${worktreeScope.milestoneId}"`,
|
|
1169
|
+
);
|
|
1170
|
+
}
|
|
1171
|
+
const projectRoot = rootScope.workspace.projectRoot;
|
|
1172
|
+
const wtPath = worktreeScope.workspace.worktreeRoot ?? worktreeScope.workspace.projectRoot;
|
|
1173
|
+
const milestoneId = rootScope.milestoneId;
|
|
1174
|
+
reconcilePlanCheckboxes(projectRoot, wtPath, milestoneId);
|
|
1175
|
+
}
|
|
1176
|
+
|
|
1177
|
+
/**
|
|
1178
|
+
* @deprecated Use reconcilePlanCheckboxesByScope instead.
|
|
1179
|
+
* TODO(C-future): remove once all callers migrated.
|
|
1123
1180
|
*/
|
|
1124
1181
|
function reconcilePlanCheckboxes(
|
|
1125
1182
|
projectRoot: string,
|
|
@@ -1245,7 +1302,14 @@ export function createAutoWorktree(
|
|
|
1245
1302
|
const integrationBranch =
|
|
1246
1303
|
readIntegrationBranch(basePath, milestoneId) ?? undefined;
|
|
1247
1304
|
const gitPrefs = loadEffectiveGSDPreferences()?.preferences?.git;
|
|
1248
|
-
const
|
|
1305
|
+
const validatedPrefBranch =
|
|
1306
|
+
gitPrefs?.main_branch &&
|
|
1307
|
+
typeof gitPrefs.main_branch === "string" &&
|
|
1308
|
+
gitPrefs.main_branch.length > 0 &&
|
|
1309
|
+
nativeBranchExists(basePath, gitPrefs.main_branch)
|
|
1310
|
+
? gitPrefs.main_branch
|
|
1311
|
+
: undefined;
|
|
1312
|
+
const startPoint = integrationBranch ?? validatedPrefBranch ?? undefined;
|
|
1249
1313
|
info = createWorktree(basePath, milestoneId, {
|
|
1250
1314
|
branch,
|
|
1251
1315
|
startPoint,
|
|
@@ -1290,10 +1354,10 @@ export function createAutoWorktree(
|
|
|
1290
1354
|
|
|
1291
1355
|
try {
|
|
1292
1356
|
process.chdir(info.path);
|
|
1293
|
-
|
|
1357
|
+
setActiveWorkspace(createWorkspace(basePath));
|
|
1294
1358
|
} catch (err) {
|
|
1295
1359
|
// If chdir fails, the worktree was created but we couldn't enter it.
|
|
1296
|
-
// Don't
|
|
1360
|
+
// Don't set activeWorkspace -- caller can retry or clean up.
|
|
1297
1361
|
throw new GSDError(
|
|
1298
1362
|
GSD_IO_ERROR,
|
|
1299
1363
|
`Auto-worktree created at ${info.path} but chdir failed: ${err instanceof Error ? err.message : String(err)}`,
|
|
@@ -1374,48 +1438,87 @@ export function teardownAutoWorktree(
|
|
|
1374
1438
|
const { preserveBranch = false } = opts;
|
|
1375
1439
|
const previousCwd = process.cwd();
|
|
1376
1440
|
|
|
1441
|
+
// Wrap the entire teardown body in a single try/finally so activeWorkspace
|
|
1442
|
+
// is ALWAYS cleared — even if process.chdir throws (e.g. originalBasePath
|
|
1443
|
+
// was deleted before teardown ran). Previously the finally only covered
|
|
1444
|
+
// removeWorktree, leaving the registry stale on a chdir failure (H3 fix).
|
|
1377
1445
|
try {
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1446
|
+
try {
|
|
1447
|
+
process.chdir(originalBasePath);
|
|
1448
|
+
} catch (err) {
|
|
1449
|
+
throw new GSDError(
|
|
1450
|
+
GSD_IO_ERROR,
|
|
1451
|
+
`Failed to chdir back to ${originalBasePath} during teardown: ${err instanceof Error ? err.message : String(err)}`,
|
|
1452
|
+
);
|
|
1453
|
+
}
|
|
1386
1454
|
|
|
1387
|
-
|
|
1388
|
-
removeWorktree(originalBasePath, milestoneId, {
|
|
1389
|
-
branch,
|
|
1390
|
-
deleteBranch: !preserveBranch,
|
|
1391
|
-
});
|
|
1455
|
+
// Mirror cleanup steps from mergeMilestoneToMain abort path:
|
|
1392
1456
|
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
);
|
|
1405
|
-
// Attempt a direct filesystem removal as a fallback — but ONLY if the
|
|
1406
|
-
// path is safely inside .gsd/worktrees/ to prevent #2365 data loss.
|
|
1407
|
-
if (isInsideWorktreesDir(originalBasePath, wtDir)) {
|
|
1457
|
+
// 1. Remove transient state files (STATE.md, auto.lock, {MID}-META.json).
|
|
1458
|
+
// Non-fatal — must not block teardown.
|
|
1459
|
+
try {
|
|
1460
|
+
clearProjectRootStateFiles(originalBasePath, milestoneId);
|
|
1461
|
+
} catch (err) {
|
|
1462
|
+
logWarning("worktree", `clearProjectRootStateFiles failed during teardown: ${err instanceof Error ? err.message : String(err)}`);
|
|
1463
|
+
}
|
|
1464
|
+
|
|
1465
|
+
// 2. Reconcile worktree-local gsd.db into project root DB if both exist.
|
|
1466
|
+
// Non-fatal — handles legacy worktrees that have a local copy.
|
|
1467
|
+
if (isDbAvailable()) {
|
|
1408
1468
|
try {
|
|
1409
|
-
|
|
1469
|
+
const contract = resolveGsdPathContract(previousCwd, originalBasePath);
|
|
1470
|
+
const worktreeDbPath = join(contract.worktreeGsd ?? join(previousCwd, ".gsd"), "gsd.db");
|
|
1471
|
+
const mainDbPath = contract.projectDb;
|
|
1472
|
+
if (existsSync(worktreeDbPath) && !isSamePath(worktreeDbPath, mainDbPath)) {
|
|
1473
|
+
reconcileWorktreeDb(mainDbPath, worktreeDbPath);
|
|
1474
|
+
}
|
|
1410
1475
|
} catch (err) {
|
|
1411
|
-
|
|
1412
|
-
|
|
1476
|
+
/* non-fatal */
|
|
1477
|
+
logError("worktree", `DB reconciliation failed during teardown: ${err instanceof Error ? err.message : String(err)}`);
|
|
1413
1478
|
}
|
|
1414
|
-
}
|
|
1415
|
-
|
|
1416
|
-
|
|
1479
|
+
}
|
|
1480
|
+
|
|
1481
|
+
nudgeGitBranchCache(previousCwd);
|
|
1482
|
+
|
|
1483
|
+
// 3. Remove the worktree. Errors propagate naturally — the outer finally
|
|
1484
|
+
// ensures activeWorkspace is cleared regardless.
|
|
1485
|
+
removeWorktree(originalBasePath, milestoneId, {
|
|
1486
|
+
branch,
|
|
1487
|
+
deleteBranch: !preserveBranch,
|
|
1488
|
+
});
|
|
1489
|
+
|
|
1490
|
+
// Verify cleanup succeeded — warn if the worktree directory is still on disk.
|
|
1491
|
+
// On Windows, bash-based cleanup can silently fail when paths contain
|
|
1492
|
+
// backslashes (#1436), leaving ~1 GB+ orphaned directories.
|
|
1493
|
+
const wtDir = worktreePath(originalBasePath, milestoneId);
|
|
1494
|
+
if (existsSync(wtDir)) {
|
|
1495
|
+
logWarning(
|
|
1496
|
+
"reconcile",
|
|
1497
|
+
`Worktree directory still exists after teardown: ${wtDir}. ` +
|
|
1498
|
+
`This is likely an orphaned directory consuming disk space. ` +
|
|
1499
|
+
`Remove it manually with: rm -rf "${wtDir.replaceAll("\\", "/")}"`,
|
|
1500
|
+
{ worktree: milestoneId },
|
|
1417
1501
|
);
|
|
1502
|
+
// Attempt a direct filesystem removal as a fallback — but ONLY if the
|
|
1503
|
+
// path is safely inside .gsd/worktrees/ to prevent #2365 data loss.
|
|
1504
|
+
if (isInsideWorktreesDir(originalBasePath, wtDir)) {
|
|
1505
|
+
try {
|
|
1506
|
+
rmSync(wtDir, { recursive: true, force: true });
|
|
1507
|
+
} catch (err) {
|
|
1508
|
+
// Non-fatal — the warning above tells the user how to clean up
|
|
1509
|
+
logWarning("worktree", `worktree directory removal failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
1510
|
+
}
|
|
1511
|
+
} else {
|
|
1512
|
+
console.error(
|
|
1513
|
+
`[GSD] REFUSING fallback rmSync — path is outside .gsd/worktrees/: ${wtDir}`,
|
|
1514
|
+
);
|
|
1515
|
+
}
|
|
1418
1516
|
}
|
|
1517
|
+
} finally {
|
|
1518
|
+
// Clear module state unconditionally — regardless of which step above
|
|
1519
|
+
// failed. A stale activeWorkspace causes getActiveAutoWorktreeContext()
|
|
1520
|
+
// to return wrong data for subsequent operations.
|
|
1521
|
+
setActiveWorkspace(null);
|
|
1419
1522
|
}
|
|
1420
1523
|
}
|
|
1421
1524
|
|
|
@@ -1425,20 +1528,21 @@ export function teardownAutoWorktree(
|
|
|
1425
1528
|
* still works after process restart when module state has been reset.
|
|
1426
1529
|
*/
|
|
1427
1530
|
export function isInAutoWorktree(basePath: string): boolean {
|
|
1428
|
-
const
|
|
1429
|
-
if (!isGsdWorktreePath(
|
|
1531
|
+
const targetPath = isGsdWorktreePath(basePath) ? basePath : process.cwd();
|
|
1532
|
+
if (!isGsdWorktreePath(targetPath)) return false;
|
|
1430
1533
|
|
|
1431
|
-
const
|
|
1432
|
-
const
|
|
1534
|
+
const storedBase = getAutoWorktreeOriginalBase();
|
|
1535
|
+
const projectRoot = resolveWorktreeProjectRoot(basePath, storedBase);
|
|
1536
|
+
const targetProjectRoot = resolveWorktreeProjectRoot(targetPath, storedBase);
|
|
1433
1537
|
if (
|
|
1434
1538
|
normalizeWorktreePathForCompare(projectRoot) !==
|
|
1435
|
-
normalizeWorktreePathForCompare(
|
|
1539
|
+
normalizeWorktreePathForCompare(targetProjectRoot)
|
|
1436
1540
|
) {
|
|
1437
1541
|
return false;
|
|
1438
1542
|
}
|
|
1439
1543
|
|
|
1440
1544
|
try {
|
|
1441
|
-
const branch = nativeGetCurrentBranch(
|
|
1545
|
+
const branch = nativeGetCurrentBranch(targetPath);
|
|
1442
1546
|
return branch.startsWith("milestone/");
|
|
1443
1547
|
} catch {
|
|
1444
1548
|
return false;
|
|
@@ -1525,7 +1629,7 @@ export function enterAutoWorktree(
|
|
|
1525
1629
|
|
|
1526
1630
|
try {
|
|
1527
1631
|
process.chdir(p);
|
|
1528
|
-
|
|
1632
|
+
setActiveWorkspace(createWorkspace(basePath));
|
|
1529
1633
|
} catch (err) {
|
|
1530
1634
|
throw new GSDError(
|
|
1531
1635
|
GSD_IO_ERROR,
|
|
@@ -1542,11 +1646,11 @@ export function enterAutoWorktree(
|
|
|
1542
1646
|
* Returns null if not currently in an auto-worktree.
|
|
1543
1647
|
*/
|
|
1544
1648
|
export function getAutoWorktreeOriginalBase(): string | null {
|
|
1545
|
-
return
|
|
1649
|
+
return getActiveWorkspace()?.projectRoot ?? null;
|
|
1546
1650
|
}
|
|
1547
1651
|
|
|
1548
1652
|
export function _resetAutoWorktreeOriginalBaseForTests(): void {
|
|
1549
|
-
|
|
1653
|
+
setActiveWorkspace(null);
|
|
1550
1654
|
}
|
|
1551
1655
|
|
|
1552
1656
|
export function getActiveAutoWorktreeContext(): {
|
|
@@ -1554,7 +1658,9 @@ export function getActiveAutoWorktreeContext(): {
|
|
|
1554
1658
|
worktreeName: string;
|
|
1555
1659
|
branch: string;
|
|
1556
1660
|
} | null {
|
|
1557
|
-
|
|
1661
|
+
const ws = getActiveWorkspace();
|
|
1662
|
+
if (!ws) return null;
|
|
1663
|
+
const originalBase = ws.projectRoot;
|
|
1558
1664
|
const cwd = process.cwd();
|
|
1559
1665
|
if (!isGsdWorktreePath(cwd)) return null;
|
|
1560
1666
|
const cwdProjectRoot = resolveWorktreeProjectRoot(cwd, originalBase);
|
|
@@ -1593,7 +1699,10 @@ function autoCommitDirtyState(cwd: string): boolean {
|
|
|
1593
1699
|
return result !== null;
|
|
1594
1700
|
} catch (e) {
|
|
1595
1701
|
debugLog("autoCommitDirtyState", { error: String(e) });
|
|
1596
|
-
|
|
1702
|
+
throw new GSDError(
|
|
1703
|
+
GSD_GIT_ERROR,
|
|
1704
|
+
`Failed to auto-commit dirty worktree state before milestone merge: ${e instanceof Error ? e.message : String(e)}`,
|
|
1705
|
+
);
|
|
1597
1706
|
}
|
|
1598
1707
|
}
|
|
1599
1708
|
|
|
@@ -1632,11 +1741,11 @@ export function mergeMilestoneToMain(
|
|
|
1632
1741
|
// integration branch captures dirty files from OTHER milestones under a
|
|
1633
1742
|
// misleading commit message, contaminating the main branch (#2929).
|
|
1634
1743
|
//
|
|
1635
|
-
// When
|
|
1744
|
+
// When activeWorkspace is null (branch mode, no worktree), autoCommitDirtyState
|
|
1636
1745
|
// runs unconditionally — the caller is responsible for cwd placement.
|
|
1637
1746
|
{
|
|
1638
1747
|
let shouldAutoCommit = true;
|
|
1639
|
-
if (
|
|
1748
|
+
if (getActiveWorkspace() !== null) {
|
|
1640
1749
|
try {
|
|
1641
1750
|
const currentBranch = nativeGetCurrentBranch(worktreeCwd);
|
|
1642
1751
|
shouldAutoCommit = currentBranch === milestoneBranch;
|
|
@@ -1656,9 +1765,10 @@ export function mergeMilestoneToMain(
|
|
|
1656
1765
|
// database (#2823).
|
|
1657
1766
|
if (isDbAvailable()) {
|
|
1658
1767
|
try {
|
|
1659
|
-
const
|
|
1660
|
-
const
|
|
1661
|
-
|
|
1768
|
+
const contract = resolveGsdPathContract(worktreeCwd, originalBasePath_);
|
|
1769
|
+
const worktreeDbPath = join(contract.worktreeGsd ?? join(worktreeCwd, ".gsd"), "gsd.db");
|
|
1770
|
+
const mainDbPath = contract.projectDb;
|
|
1771
|
+
if (existsSync(worktreeDbPath) && !isSamePath(worktreeDbPath, mainDbPath)) {
|
|
1662
1772
|
reconcileWorktreeDb(mainDbPath, worktreeDbPath);
|
|
1663
1773
|
}
|
|
1664
1774
|
} catch (err) {
|
|
@@ -2260,7 +2370,7 @@ export function mergeMilestoneToMain(
|
|
|
2260
2370
|
|
|
2261
2371
|
// 10. Auto-push if enabled
|
|
2262
2372
|
let pushed = false;
|
|
2263
|
-
if (prefs.auto_push === true && !nothingToCommit) {
|
|
2373
|
+
if (prefs.auto_push === true && prefs.auto_pr !== true && !nothingToCommit) {
|
|
2264
2374
|
const remote = prefs.remote ?? "origin";
|
|
2265
2375
|
try {
|
|
2266
2376
|
execFileSync("git", ["push", remote, mainBranch], {
|
|
@@ -2311,9 +2421,10 @@ export function mergeMilestoneToMain(
|
|
|
2311
2421
|
// through when the code is genuinely already on the integration branch.
|
|
2312
2422
|
|
|
2313
2423
|
// 11a. Pre-teardown safety net (#1853): if the worktree still has uncommitted
|
|
2314
|
-
// changes (e.g. nativeHasChanges cache returned stale false,
|
|
2315
|
-
//
|
|
2316
|
-
//
|
|
2424
|
+
// changes (e.g. nativeHasChanges cache returned stale false), abort teardown.
|
|
2425
|
+
// Committing here would be too late: the squash merge to the integration
|
|
2426
|
+
// branch already happened, so a new milestone-branch commit would not be
|
|
2427
|
+
// included and branch deletion could drop the only ref to that work.
|
|
2317
2428
|
//
|
|
2318
2429
|
// Guard: only run when worktreeCwd is on the milestone branch (#2929).
|
|
2319
2430
|
// In parallel mode or branch-mode merges, worktreeCwd may be the project
|
|
@@ -2332,17 +2443,17 @@ export function mergeMilestoneToMain(
|
|
|
2332
2443
|
try {
|
|
2333
2444
|
const dirtyCheck = nativeWorkingTreeStatus(worktreeCwd);
|
|
2334
2445
|
if (dirtyCheck) {
|
|
2335
|
-
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
nativeCommit(worktreeCwd, "chore: pre-teardown auto-commit of uncommitted worktree changes");
|
|
2446
|
+
process.chdir(previousCwd);
|
|
2447
|
+
throw new GSDError(
|
|
2448
|
+
GSD_GIT_ERROR,
|
|
2449
|
+
`Milestone worktree still has uncommitted changes after squash merge. ` +
|
|
2450
|
+
`Aborting teardown to preserve ${milestoneBranch}. Status:\n${dirtyCheck}`,
|
|
2451
|
+
);
|
|
2342
2452
|
}
|
|
2343
2453
|
} catch (e) {
|
|
2454
|
+
if (e instanceof GSDError) throw e;
|
|
2344
2455
|
debugLog("mergeMilestoneToMain", {
|
|
2345
|
-
phase: "pre-teardown-
|
|
2456
|
+
phase: "pre-teardown-dirty-check-error",
|
|
2346
2457
|
error: String(e),
|
|
2347
2458
|
});
|
|
2348
2459
|
}
|
|
@@ -2369,8 +2480,23 @@ export function mergeMilestoneToMain(
|
|
|
2369
2480
|
}
|
|
2370
2481
|
|
|
2371
2482
|
// 14. Clear module state
|
|
2372
|
-
|
|
2483
|
+
setActiveWorkspace(null);
|
|
2373
2484
|
nudgeGitBranchCache(previousCwd);
|
|
2374
2485
|
|
|
2486
|
+
// 15. Anchor cwd at the project root on success-return. Step 12 removed
|
|
2487
|
+
// the worktree dir; if cwd was inside it, every subsequent process.cwd()
|
|
2488
|
+
// would throw ENOENT and trip auto/run-unit.ts:50's session-failed cancel
|
|
2489
|
+
// path (the de73fb43d regression that closes headless gsd auto). Step 3
|
|
2490
|
+
// already chdir'd here, but defending the success-return contract makes
|
|
2491
|
+
// future maintainers safe against intervening chdir's between step 3 and
|
|
2492
|
+
// here.
|
|
2493
|
+
try {
|
|
2494
|
+
// process.cwd() can throw ENOENT when cwd was removed, so attempt
|
|
2495
|
+
// recovery directly.
|
|
2496
|
+
process.chdir(originalBasePath_);
|
|
2497
|
+
} catch (err) {
|
|
2498
|
+
logWarning("worktree", `chdir to project root after merge failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
2499
|
+
}
|
|
2500
|
+
|
|
2375
2501
|
return { commitMessage, pushed, prCreated, codeFilesChanged };
|
|
2376
2502
|
}
|