gsd-pi 2.78.0 → 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.
Files changed (1714) hide show
  1. package/README.md +75 -30
  2. package/dist/bundled-resource-path.d.ts +7 -0
  3. package/dist/bundled-resource-path.js +34 -2
  4. package/dist/claude-cli-check.js +104 -33
  5. package/dist/cli-auto-routing.d.ts +1 -0
  6. package/dist/cli-auto-routing.js +5 -0
  7. package/dist/cli-policy.d.ts +13 -0
  8. package/dist/cli-policy.js +17 -0
  9. package/dist/cli.js +100 -69
  10. package/dist/headless-query.d.ts +22 -0
  11. package/dist/headless-query.js +43 -8
  12. package/dist/headless-recover.d.ts +23 -0
  13. package/dist/headless-recover.js +93 -0
  14. package/dist/headless.d.ts +10 -0
  15. package/dist/headless.js +25 -1
  16. package/dist/help-text.js +1 -0
  17. package/dist/loader.js +24 -16
  18. package/dist/onboarding.d.ts +10 -0
  19. package/dist/onboarding.js +2 -2
  20. package/dist/provider-migrations.d.ts +2 -2
  21. package/dist/provider-migrations.js +5 -2
  22. package/dist/resource-loader.d.ts +5 -2
  23. package/dist/resource-loader.js +56 -30
  24. package/dist/resources/.managed-resources-content-hash +1 -0
  25. package/dist/resources/GSD-WORKFLOW.md +29 -42
  26. package/dist/resources/extensions/async-jobs/job-manager.js +4 -0
  27. package/dist/resources/extensions/bg-shell/bg-shell-lifecycle.js +3 -2
  28. package/dist/resources/extensions/bg-shell/utilities.js +2 -1
  29. package/dist/resources/extensions/browser-tools/tools/intent.js +8 -1
  30. package/dist/resources/extensions/claude-code-cli/readiness.js +128 -32
  31. package/dist/resources/extensions/claude-code-cli/stream-adapter.js +22 -8
  32. package/dist/resources/extensions/github-sync/cli.js +3 -0
  33. package/dist/resources/extensions/github-sync/sync.js +86 -58
  34. package/dist/resources/extensions/google-search/index.js +2 -6
  35. package/dist/resources/extensions/gsd/auto/loop.js +23 -0
  36. package/dist/resources/extensions/gsd/auto/phases.js +90 -34
  37. package/dist/resources/extensions/gsd/auto/run-unit.js +26 -12
  38. package/dist/resources/extensions/gsd/auto/session.js +11 -6
  39. package/dist/resources/extensions/gsd/auto-artifact-paths.js +49 -31
  40. package/dist/resources/extensions/gsd/auto-dashboard.js +14 -2
  41. package/dist/resources/extensions/gsd/auto-direct-dispatch.js +57 -21
  42. package/dist/resources/extensions/gsd/auto-dispatch.js +256 -96
  43. package/dist/resources/extensions/gsd/auto-post-unit.js +108 -46
  44. package/dist/resources/extensions/gsd/auto-prompts.js +145 -8
  45. package/dist/resources/extensions/gsd/auto-recovery.js +112 -19
  46. package/dist/resources/extensions/gsd/auto-runtime-state.js +31 -0
  47. package/dist/resources/extensions/gsd/auto-start.js +55 -65
  48. package/dist/resources/extensions/gsd/auto-timeout-recovery.js +18 -0
  49. package/dist/resources/extensions/gsd/auto-timers.js +24 -4
  50. package/dist/resources/extensions/gsd/auto-tool-tracking.js +2 -2
  51. package/dist/resources/extensions/gsd/auto-worktree.js +371 -218
  52. package/dist/resources/extensions/gsd/auto.js +151 -32
  53. package/dist/resources/extensions/gsd/bootstrap/agent-end-recovery.js +21 -3
  54. package/dist/resources/extensions/gsd/bootstrap/db-tools.js +54 -9
  55. package/dist/resources/extensions/gsd/bootstrap/dynamic-tools.js +9 -77
  56. package/dist/resources/extensions/gsd/bootstrap/exec-tools.js +7 -5
  57. package/dist/resources/extensions/gsd/bootstrap/query-tools.js +2 -2
  58. package/dist/resources/extensions/gsd/bootstrap/register-extension.js +5 -4
  59. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +204 -46
  60. package/dist/resources/extensions/gsd/bootstrap/register-shortcuts.js +11 -6
  61. package/dist/resources/extensions/gsd/bootstrap/subagent-input.js +22 -0
  62. package/dist/resources/extensions/gsd/bootstrap/system-context.js +48 -12
  63. package/dist/resources/extensions/gsd/bootstrap/write-gate.js +263 -66
  64. package/dist/resources/extensions/gsd/branch-patterns.js +3 -3
  65. package/dist/resources/extensions/gsd/commands/catalog.js +81 -9
  66. package/dist/resources/extensions/gsd/commands/context.js +41 -5
  67. package/dist/resources/extensions/gsd/commands/dispatcher.js +11 -5
  68. package/dist/resources/extensions/gsd/commands/handlers/auto.js +2 -1
  69. package/dist/resources/extensions/gsd/commands/handlers/core.js +25 -1
  70. package/dist/resources/extensions/gsd/commands/handlers/ops.js +13 -0
  71. package/dist/resources/extensions/gsd/commands/handlers/workflow.js +24 -2
  72. package/dist/resources/extensions/gsd/commands-bootstrap.js +6 -0
  73. package/dist/resources/extensions/gsd/commands-codebase.js +2 -1
  74. package/dist/resources/extensions/gsd/commands-config.js +3 -2
  75. package/dist/resources/extensions/gsd/commands-debug.js +22 -1
  76. package/dist/resources/extensions/gsd/commands-eval-review.js +534 -0
  77. package/dist/resources/extensions/gsd/commands-extensions.js +50 -7
  78. package/dist/resources/extensions/gsd/commands-handlers.js +8 -7
  79. package/dist/resources/extensions/gsd/commands-logs.js +2 -1
  80. package/dist/resources/extensions/gsd/commands-mcp-status.js +3 -1
  81. package/dist/resources/extensions/gsd/commands-prefs-wizard.js +10 -1
  82. package/dist/resources/extensions/gsd/commands-scan.js +2 -1
  83. package/dist/resources/extensions/gsd/commands-ship.js +67 -1
  84. package/dist/resources/extensions/gsd/commands-workflow-templates.js +5 -4
  85. package/dist/resources/extensions/gsd/commands-worktree.js +309 -0
  86. package/dist/resources/extensions/gsd/context-budget.js +11 -3
  87. package/dist/resources/extensions/gsd/dashboard-overlay.js +1 -1
  88. package/dist/resources/extensions/gsd/db-writer.js +150 -92
  89. package/dist/resources/extensions/gsd/deep-project-setup-policy.js +212 -0
  90. package/dist/resources/extensions/gsd/delegation-policy.js +155 -0
  91. package/dist/resources/extensions/gsd/detection.js +7 -7
  92. package/dist/resources/extensions/gsd/dispatch-guard.js +6 -10
  93. package/dist/resources/extensions/gsd/docs/preferences-reference.md +16 -4
  94. package/dist/resources/extensions/gsd/doctor-engine-checks.js +2 -2
  95. package/dist/resources/extensions/gsd/doctor-providers.js +2 -1
  96. package/dist/resources/extensions/gsd/doctor-runtime-checks.js +93 -1
  97. package/dist/resources/extensions/gsd/error-classifier.js +1 -1
  98. package/dist/resources/extensions/gsd/eval-review-schema.js +208 -0
  99. package/dist/resources/extensions/gsd/forensics.js +17 -9
  100. package/dist/resources/extensions/gsd/git-service.js +86 -9
  101. package/dist/resources/extensions/gsd/gsd-db.js +282 -12
  102. package/dist/resources/extensions/gsd/gsd-home.js +29 -0
  103. package/dist/resources/extensions/gsd/guided-flow-queue.js +1 -1
  104. package/dist/resources/extensions/gsd/guided-flow.js +410 -140
  105. package/dist/resources/extensions/gsd/init-wizard.js +16 -23
  106. package/dist/resources/extensions/gsd/interrupted-session.js +37 -2
  107. package/dist/resources/extensions/gsd/key-manager.js +2 -1
  108. package/dist/resources/extensions/gsd/markdown-renderer.js +59 -66
  109. package/dist/resources/extensions/gsd/memory-store.js +66 -31
  110. package/dist/resources/extensions/gsd/metrics.js +287 -1
  111. package/dist/resources/extensions/gsd/migrate/command.js +3 -2
  112. package/dist/resources/extensions/gsd/milestone-id-reservation.js +36 -0
  113. package/dist/resources/extensions/gsd/milestone-scope-classifier.js +10 -8
  114. package/dist/resources/extensions/gsd/model-router.js +114 -9
  115. package/dist/resources/extensions/gsd/native-git-bridge.js +26 -43
  116. package/dist/resources/extensions/gsd/onboarding-state.js +2 -2
  117. package/dist/resources/extensions/gsd/parallel-merge.js +14 -13
  118. package/dist/resources/extensions/gsd/parallel-monitor-overlay.js +5 -2
  119. package/dist/resources/extensions/gsd/paths.js +151 -9
  120. package/dist/resources/extensions/gsd/planning-depth.js +114 -0
  121. package/dist/resources/extensions/gsd/preferences-models.js +109 -16
  122. package/dist/resources/extensions/gsd/preferences-skills.js +2 -1
  123. package/dist/resources/extensions/gsd/preferences-types.js +6 -0
  124. package/dist/resources/extensions/gsd/preferences-validation.js +41 -0
  125. package/dist/resources/extensions/gsd/preferences.js +25 -7
  126. package/dist/resources/extensions/gsd/project-research-policy.js +182 -0
  127. package/dist/resources/extensions/gsd/prompt-loader.js +25 -15
  128. package/dist/resources/extensions/gsd/prompts/complete-milestone.md +10 -0
  129. package/dist/resources/extensions/gsd/prompts/complete-slice.md +14 -4
  130. package/dist/resources/extensions/gsd/prompts/execute-task.md +3 -3
  131. package/dist/resources/extensions/gsd/prompts/guided-discuss-milestone.md +10 -1
  132. package/dist/resources/extensions/gsd/prompts/guided-discuss-project.md +148 -0
  133. package/dist/resources/extensions/gsd/prompts/guided-discuss-requirements.md +126 -0
  134. package/dist/resources/extensions/gsd/prompts/guided-discuss-slice.md +8 -1
  135. package/dist/resources/extensions/gsd/prompts/guided-research-decision.md +70 -0
  136. package/dist/resources/extensions/gsd/prompts/guided-research-project.md +120 -0
  137. package/dist/resources/extensions/gsd/prompts/guided-workflow-preferences.md +68 -0
  138. package/dist/resources/extensions/gsd/prompts/parallel-research-slices.md +2 -0
  139. package/dist/resources/extensions/gsd/prompts/plan-milestone.md +8 -2
  140. package/dist/resources/extensions/gsd/prompts/plan-slice.md +18 -6
  141. package/dist/resources/extensions/gsd/prompts/refine-slice.md +10 -0
  142. package/dist/resources/extensions/gsd/prompts/rewrite-docs.md +2 -0
  143. package/dist/resources/extensions/gsd/prompts/system.md +4 -4
  144. package/dist/resources/extensions/gsd/queue-order.js +6 -1
  145. package/dist/resources/extensions/gsd/repo-identity.js +20 -9
  146. package/dist/resources/extensions/gsd/rethink.js +2 -1
  147. package/dist/resources/extensions/gsd/safety/git-checkpoint.js +8 -1
  148. package/dist/resources/extensions/gsd/schemas/__fixtures__/valid-project.md +26 -0
  149. package/dist/resources/extensions/gsd/schemas/__fixtures__/valid-requirements.md +57 -0
  150. package/dist/resources/extensions/gsd/schemas/__fixtures__/valid-roadmap.md +19 -0
  151. package/dist/resources/extensions/gsd/schemas/parsers.js +276 -0
  152. package/dist/resources/extensions/gsd/schemas/validate.js +364 -0
  153. package/dist/resources/extensions/gsd/skill-telemetry.js +3 -2
  154. package/dist/resources/extensions/gsd/slice-cadence.js +56 -7
  155. package/dist/resources/extensions/gsd/slice-parallel-orchestrator.js +9 -3
  156. package/dist/resources/extensions/gsd/state.js +133 -372
  157. package/dist/resources/extensions/gsd/templates/PREFERENCES.md +1 -0
  158. package/dist/resources/extensions/gsd/templates/project.md +10 -0
  159. package/dist/resources/extensions/gsd/token-counter.js +1 -0
  160. package/dist/resources/extensions/gsd/tools/complete-milestone.js +6 -5
  161. package/dist/resources/extensions/gsd/tools/complete-slice.js +7 -12
  162. package/dist/resources/extensions/gsd/tools/complete-task.js +19 -31
  163. package/dist/resources/extensions/gsd/tools/memory-tools.js +18 -1
  164. package/dist/resources/extensions/gsd/tools/plan-slice.js +6 -5
  165. package/dist/resources/extensions/gsd/tools/validate-milestone.js +7 -5
  166. package/dist/resources/extensions/gsd/tools/workflow-tool-executors.js +74 -11
  167. package/dist/resources/extensions/gsd/unit-context-manifest.js +125 -5
  168. package/dist/resources/extensions/gsd/unit-runtime.js +88 -24
  169. package/dist/resources/extensions/gsd/uok/plan-v2.js +14 -1
  170. package/dist/resources/extensions/gsd/user-input-boundary.js +157 -0
  171. package/dist/resources/extensions/gsd/visualizer-overlay.js +1 -1
  172. package/dist/resources/extensions/gsd/watch/header-renderer.js +4 -1
  173. package/dist/resources/extensions/gsd/workflow-install.js +2 -3
  174. package/dist/resources/extensions/gsd/workflow-manifest.js +2 -1
  175. package/dist/resources/extensions/gsd/workflow-mcp-auto-prep.js +3 -21
  176. package/dist/resources/extensions/gsd/workflow-mcp.js +41 -5
  177. package/dist/resources/extensions/gsd/workflow-migration.js +4 -3
  178. package/dist/resources/extensions/gsd/workflow-plugins.js +3 -5
  179. package/dist/resources/extensions/gsd/workflow-reconcile.js +3 -3
  180. package/dist/resources/extensions/gsd/workflow-templates.js +2 -3
  181. package/dist/resources/extensions/gsd/workspace.js +59 -0
  182. package/dist/resources/extensions/gsd/worktree-command.js +30 -49
  183. package/dist/resources/extensions/gsd/worktree-manager.js +26 -7
  184. package/dist/resources/extensions/gsd/worktree-resolver.js +47 -19
  185. package/dist/resources/extensions/gsd/worktree-root.js +163 -0
  186. package/dist/resources/extensions/gsd/worktree-session-state.js +33 -0
  187. package/dist/resources/extensions/gsd/worktree.js +4 -115
  188. package/dist/resources/extensions/gsd/write-intercept.js +3 -3
  189. package/dist/resources/extensions/mcp-client/index.js +6 -9
  190. package/dist/resources/extensions/ollama/index.js +15 -2
  191. package/dist/resources/extensions/ollama/model-capabilities.js +31 -0
  192. package/dist/resources/extensions/ollama/ollama-client.js +40 -4
  193. package/dist/resources/extensions/remote-questions/remote-command.js +2 -1
  194. package/dist/resources/extensions/remote-questions/status.js +2 -5
  195. package/dist/resources/extensions/remote-questions/store.js +2 -5
  196. package/dist/resources/extensions/search-the-web/provider.js +9 -8
  197. package/dist/resources/extensions/shared/next-action-ui.js +7 -0
  198. package/dist/resources/extensions/slash-commands/create-extension.js +36 -22
  199. package/dist/resources/extensions/subagent/index.js +341 -190
  200. package/dist/resources/extensions/subagent/isolation.js +2 -2
  201. package/dist/resources/extensions/ttsr/rule-loader.js +2 -3
  202. package/dist/resources/extensions/voice/index.js +3 -2
  203. package/dist/resources/extensions/voice/linux-ready.js +2 -2
  204. package/dist/resources/skills/create-gsd-extension/SKILL.md +9 -5
  205. package/dist/resources/skills/create-gsd-extension/references/custom-commands.md +1 -1
  206. package/dist/resources/skills/create-gsd-extension/references/custom-rendering.md +5 -5
  207. package/dist/resources/skills/create-gsd-extension/references/custom-tools.md +4 -4
  208. package/dist/resources/skills/create-gsd-extension/references/custom-ui.md +6 -6
  209. package/dist/resources/skills/create-gsd-extension/references/events-reference.md +3 -3
  210. package/dist/resources/skills/create-gsd-extension/references/packaging-distribution.md +1 -1
  211. package/dist/resources/skills/create-gsd-extension/references/remote-execution-overrides.md +3 -3
  212. package/dist/resources/skills/create-gsd-extension/workflows/create-extension.md +32 -12
  213. package/dist/resources/skills/lint/SKILL.md +4 -0
  214. package/dist/resources/skills/review/SKILL.md +4 -0
  215. package/dist/resources/skills/test/SKILL.md +3 -0
  216. package/dist/resources/skills/verify-before-complete/SKILL.md +1 -1
  217. package/dist/rtk-shared.d.ts +3 -0
  218. package/dist/rtk-shared.js +17 -0
  219. package/dist/rtk.d.ts +2 -5
  220. package/dist/rtk.js +3 -20
  221. package/dist/runtime-checks.d.ts +27 -0
  222. package/dist/runtime-checks.js +38 -0
  223. package/dist/tool-bootstrap.js +7 -0
  224. package/dist/tsconfig.extensions.tsbuildinfo +1 -1
  225. package/dist/web/standalone/.next/BUILD_ID +1 -1
  226. package/dist/web/standalone/.next/app-path-routes-manifest.json +10 -10
  227. package/dist/web/standalone/.next/build-manifest.json +5 -5
  228. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  229. package/dist/web/standalone/.next/react-loadable-manifest.json +47 -7
  230. package/dist/web/standalone/.next/required-server-files.json +4 -4
  231. package/dist/web/standalone/.next/server/app/_global-error/page.js +3 -3
  232. package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  233. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  234. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  235. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  236. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  237. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  238. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  239. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  240. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  241. package/dist/web/standalone/.next/server/app/_not-found/page.js +2 -2
  242. package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  243. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  244. package/dist/web/standalone/.next/server/app/_not-found.rsc +4 -4
  245. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  246. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  247. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  248. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  249. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  250. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  251. package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
  252. package/dist/web/standalone/.next/server/app/api/boot/route.js.nft.json +1 -1
  253. package/dist/web/standalone/.next/server/app/api/boot/route_client-reference-manifest.js +1 -1
  254. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
  255. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js.nft.json +1 -1
  256. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route_client-reference-manifest.js +1 -1
  257. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
  258. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js.nft.json +1 -1
  259. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route_client-reference-manifest.js +1 -1
  260. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
  261. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js.nft.json +1 -1
  262. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route_client-reference-manifest.js +1 -1
  263. package/dist/web/standalone/.next/server/app/api/browse-directories/route.js +1 -1
  264. package/dist/web/standalone/.next/server/app/api/browse-directories/route_client-reference-manifest.js +1 -1
  265. package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
  266. package/dist/web/standalone/.next/server/app/api/captures/route.js.nft.json +1 -1
  267. package/dist/web/standalone/.next/server/app/api/captures/route_client-reference-manifest.js +1 -1
  268. package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
  269. package/dist/web/standalone/.next/server/app/api/cleanup/route.js.nft.json +1 -1
  270. package/dist/web/standalone/.next/server/app/api/cleanup/route_client-reference-manifest.js +1 -1
  271. package/dist/web/standalone/.next/server/app/api/dev-mode/route.js +1 -1
  272. package/dist/web/standalone/.next/server/app/api/dev-mode/route_client-reference-manifest.js +1 -1
  273. package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
  274. package/dist/web/standalone/.next/server/app/api/doctor/route.js.nft.json +1 -1
  275. package/dist/web/standalone/.next/server/app/api/doctor/route_client-reference-manifest.js +1 -1
  276. package/dist/web/standalone/.next/server/app/api/experimental/route.js +2 -2
  277. package/dist/web/standalone/.next/server/app/api/experimental/route_client-reference-manifest.js +1 -1
  278. package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
  279. package/dist/web/standalone/.next/server/app/api/export-data/route.js.nft.json +1 -1
  280. package/dist/web/standalone/.next/server/app/api/export-data/route_client-reference-manifest.js +1 -1
  281. package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
  282. package/dist/web/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  283. package/dist/web/standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
  284. package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
  285. package/dist/web/standalone/.next/server/app/api/forensics/route.js.nft.json +1 -1
  286. package/dist/web/standalone/.next/server/app/api/forensics/route_client-reference-manifest.js +1 -1
  287. package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
  288. package/dist/web/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
  289. package/dist/web/standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  290. package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
  291. package/dist/web/standalone/.next/server/app/api/history/route.js.nft.json +1 -1
  292. package/dist/web/standalone/.next/server/app/api/history/route_client-reference-manifest.js +1 -1
  293. package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
  294. package/dist/web/standalone/.next/server/app/api/hooks/route.js.nft.json +1 -1
  295. package/dist/web/standalone/.next/server/app/api/hooks/route_client-reference-manifest.js +1 -1
  296. package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
  297. package/dist/web/standalone/.next/server/app/api/inspect/route.js.nft.json +1 -1
  298. package/dist/web/standalone/.next/server/app/api/inspect/route_client-reference-manifest.js +1 -1
  299. package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
  300. package/dist/web/standalone/.next/server/app/api/knowledge/route.js.nft.json +1 -1
  301. package/dist/web/standalone/.next/server/app/api/knowledge/route_client-reference-manifest.js +1 -1
  302. package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
  303. package/dist/web/standalone/.next/server/app/api/live-state/route.js.nft.json +1 -1
  304. package/dist/web/standalone/.next/server/app/api/live-state/route_client-reference-manifest.js +1 -1
  305. package/dist/web/standalone/.next/server/app/api/notifications/route.js +2 -2
  306. package/dist/web/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  307. package/dist/web/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  308. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  309. package/dist/web/standalone/.next/server/app/api/onboarding/route.js.nft.json +1 -1
  310. package/dist/web/standalone/.next/server/app/api/onboarding/route_client-reference-manifest.js +1 -1
  311. package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
  312. package/dist/web/standalone/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -1
  313. package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
  314. package/dist/web/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  315. package/dist/web/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  316. package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
  317. package/dist/web/standalone/.next/server/app/api/recovery/route.js.nft.json +1 -1
  318. package/dist/web/standalone/.next/server/app/api/recovery/route_client-reference-manifest.js +1 -1
  319. package/dist/web/standalone/.next/server/app/api/remote-questions/route.js +2 -2
  320. package/dist/web/standalone/.next/server/app/api/remote-questions/route_client-reference-manifest.js +1 -1
  321. package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
  322. package/dist/web/standalone/.next/server/app/api/session/browser/route.js.nft.json +1 -1
  323. package/dist/web/standalone/.next/server/app/api/session/browser/route_client-reference-manifest.js +1 -1
  324. package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
  325. package/dist/web/standalone/.next/server/app/api/session/command/route.js.nft.json +1 -1
  326. package/dist/web/standalone/.next/server/app/api/session/command/route_client-reference-manifest.js +1 -1
  327. package/dist/web/standalone/.next/server/app/api/session/events/route.js +4 -2
  328. package/dist/web/standalone/.next/server/app/api/session/events/route.js.nft.json +1 -1
  329. package/dist/web/standalone/.next/server/app/api/session/events/route_client-reference-manifest.js +1 -1
  330. package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
  331. package/dist/web/standalone/.next/server/app/api/session/manage/route.js.nft.json +1 -1
  332. package/dist/web/standalone/.next/server/app/api/session/manage/route_client-reference-manifest.js +1 -1
  333. package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
  334. package/dist/web/standalone/.next/server/app/api/settings-data/route.js.nft.json +1 -1
  335. package/dist/web/standalone/.next/server/app/api/settings-data/route_client-reference-manifest.js +1 -1
  336. package/dist/web/standalone/.next/server/app/api/shutdown/route.js +1 -1
  337. package/dist/web/standalone/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  338. package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
  339. package/dist/web/standalone/.next/server/app/api/skill-health/route.js.nft.json +1 -1
  340. package/dist/web/standalone/.next/server/app/api/skill-health/route_client-reference-manifest.js +1 -1
  341. package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
  342. package/dist/web/standalone/.next/server/app/api/steer/route.js.nft.json +1 -1
  343. package/dist/web/standalone/.next/server/app/api/steer/route_client-reference-manifest.js +1 -1
  344. package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
  345. package/dist/web/standalone/.next/server/app/api/switch-root/route.js.nft.json +1 -1
  346. package/dist/web/standalone/.next/server/app/api/switch-root/route_client-reference-manifest.js +1 -1
  347. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +2 -2
  348. package/dist/web/standalone/.next/server/app/api/terminal/input/route_client-reference-manifest.js +1 -1
  349. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +2 -2
  350. package/dist/web/standalone/.next/server/app/api/terminal/resize/route_client-reference-manifest.js +1 -1
  351. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +2 -2
  352. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js.nft.json +1 -1
  353. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route_client-reference-manifest.js +1 -1
  354. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +4 -4
  355. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js.nft.json +1 -1
  356. package/dist/web/standalone/.next/server/app/api/terminal/stream/route_client-reference-manifest.js +1 -1
  357. package/dist/web/standalone/.next/server/app/api/terminal/upload/route.js +1 -1
  358. package/dist/web/standalone/.next/server/app/api/terminal/upload/route_client-reference-manifest.js +1 -1
  359. package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
  360. package/dist/web/standalone/.next/server/app/api/undo/route.js.nft.json +1 -1
  361. package/dist/web/standalone/.next/server/app/api/undo/route_client-reference-manifest.js +1 -1
  362. package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
  363. package/dist/web/standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  364. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  365. package/dist/web/standalone/.next/server/app/api/visualizer/route.js.nft.json +1 -1
  366. package/dist/web/standalone/.next/server/app/api/visualizer/route_client-reference-manifest.js +1 -1
  367. package/dist/web/standalone/.next/server/app/index.html +1 -1
  368. package/dist/web/standalone/.next/server/app/index.rsc +5 -5
  369. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  370. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +5 -5
  371. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  372. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +4 -4
  373. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  374. package/dist/web/standalone/.next/server/app/page.js +2 -2
  375. package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  376. package/dist/web/standalone/.next/server/app-paths-manifest.json +10 -10
  377. package/dist/web/standalone/.next/server/chunks/2331.js +16 -16
  378. package/dist/web/standalone/.next/server/chunks/4741.js +12 -12
  379. package/dist/web/standalone/.next/server/chunks/5822.js +2 -2
  380. package/dist/web/standalone/.next/server/chunks/63.js +8 -8
  381. package/dist/web/standalone/.next/server/chunks/6336.js +1 -0
  382. package/dist/web/standalone/.next/server/chunks/6897.js +3 -3
  383. package/dist/web/standalone/.next/server/functions-config-manifest.json +9 -0
  384. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  385. package/dist/web/standalone/.next/server/middleware-manifest.json +2 -29
  386. package/dist/web/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  387. package/dist/web/standalone/.next/server/middleware.js +12 -4
  388. package/dist/web/standalone/.next/server/next-font-manifest.js +1 -1
  389. package/dist/web/standalone/.next/server/next-font-manifest.json +1 -1
  390. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  391. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  392. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  393. package/dist/web/standalone/.next/server/webpack-runtime.js +1 -1
  394. package/dist/web/standalone/.next/static/chunks/2059.d6f49d697b624f2b.js +20 -0
  395. package/dist/web/standalone/.next/static/chunks/2556.0527fea66e123b7f.js +1 -0
  396. package/dist/web/standalone/.next/static/chunks/2824.461404167557f2cd.js +1 -0
  397. package/dist/web/standalone/.next/static/chunks/3026.3af53b279375f082.js +1 -0
  398. package/dist/web/standalone/.next/static/chunks/315.6f68ae79b67d25cf.js +1 -0
  399. package/dist/web/standalone/.next/static/chunks/3497.4bfc60a3b3dea717.js +1 -0
  400. package/dist/web/standalone/.next/static/chunks/363642f4.c6481b47ee815ba0.js +1 -0
  401. package/dist/web/standalone/.next/static/chunks/{3794-42fdce068d44fa4f.js → 3794-3fb4e6ee851037bb.js} +1 -1
  402. package/dist/web/standalone/.next/static/chunks/{4447.5bad7871be61ca73.js → 4447.fe6f304888d5ac71.js} +2 -2
  403. package/dist/web/standalone/.next/static/chunks/5326.def6842b53fecd26.js +1 -0
  404. package/dist/web/standalone/.next/static/chunks/5516.4a07c872b5c3a663.js +1 -0
  405. package/dist/web/standalone/.next/static/chunks/8336.6f6f30e410419aff.js +10 -0
  406. package/dist/web/standalone/.next/static/chunks/8845.c9702695e8c5a9c5.js +2 -0
  407. package/dist/web/standalone/.next/static/chunks/9441.1081da1125d1764f.js +1 -0
  408. package/dist/web/standalone/.next/static/chunks/app/_not-found/{page-2f24283c162b6ab3.js → page-f2a7482d42a5614b.js} +1 -1
  409. package/dist/web/standalone/.next/static/chunks/app/{layout-9ecfd95f343793f0.js → layout-a16c7a7ecdf0c2cf.js} +1 -1
  410. package/dist/web/standalone/.next/static/chunks/app/page-fab3ebb85b006001.js +1 -0
  411. package/dist/web/standalone/.next/static/chunks/{framework-711ef29bc66f648c.js → framework-34a8c4228d7fd161.js} +1 -1
  412. package/dist/web/standalone/.next/static/chunks/{main-6919d9dd919bd15f.js → main-2b7d1294417bb6bc.js} +1 -1
  413. package/dist/web/standalone/.next/static/chunks/main-app-fdab67f7802d7832.js +1 -0
  414. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-459824ffb8c323dd.js +1 -0
  415. package/dist/web/standalone/.next/static/chunks/webpack-d82dbee6356c1733.js +1 -0
  416. package/dist/web/standalone/.next/static/css/{632cd626b1731d88.css → 54ec2745c1da488b.css} +1 -1
  417. package/dist/web/standalone/node_modules/@next/env/package.json +1 -1
  418. package/dist/web/standalone/node_modules/baseline-browser-mapping/dist/index.cjs +1 -1
  419. package/dist/web/standalone/node_modules/baseline-browser-mapping/package.json +3 -3
  420. package/dist/web/standalone/node_modules/caniuse-lite/data/agents.js +1 -1
  421. package/dist/web/standalone/node_modules/caniuse-lite/data/browserVersions.js +1 -1
  422. package/dist/web/standalone/node_modules/caniuse-lite/data/features/aac.js +1 -1
  423. package/dist/web/standalone/node_modules/caniuse-lite/data/features/abortcontroller.js +1 -1
  424. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ac3-ec3.js +1 -1
  425. package/dist/web/standalone/node_modules/caniuse-lite/data/features/accelerometer.js +1 -1
  426. package/dist/web/standalone/node_modules/caniuse-lite/data/features/addeventlistener.js +1 -1
  427. package/dist/web/standalone/node_modules/caniuse-lite/data/features/alternate-stylesheet.js +1 -1
  428. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ambient-light.js +1 -1
  429. package/dist/web/standalone/node_modules/caniuse-lite/data/features/apng.js +1 -1
  430. package/dist/web/standalone/node_modules/caniuse-lite/data/features/array-find-index.js +1 -1
  431. package/dist/web/standalone/node_modules/caniuse-lite/data/features/array-find.js +1 -1
  432. package/dist/web/standalone/node_modules/caniuse-lite/data/features/array-flat.js +1 -1
  433. package/dist/web/standalone/node_modules/caniuse-lite/data/features/array-includes.js +1 -1
  434. package/dist/web/standalone/node_modules/caniuse-lite/data/features/arrow-functions.js +1 -1
  435. package/dist/web/standalone/node_modules/caniuse-lite/data/features/asmjs.js +1 -1
  436. package/dist/web/standalone/node_modules/caniuse-lite/data/features/async-clipboard.js +1 -1
  437. package/dist/web/standalone/node_modules/caniuse-lite/data/features/async-functions.js +1 -1
  438. package/dist/web/standalone/node_modules/caniuse-lite/data/features/atob-btoa.js +1 -1
  439. package/dist/web/standalone/node_modules/caniuse-lite/data/features/audio-api.js +1 -1
  440. package/dist/web/standalone/node_modules/caniuse-lite/data/features/audio.js +1 -1
  441. package/dist/web/standalone/node_modules/caniuse-lite/data/features/audiotracks.js +1 -1
  442. package/dist/web/standalone/node_modules/caniuse-lite/data/features/autofocus.js +1 -1
  443. package/dist/web/standalone/node_modules/caniuse-lite/data/features/auxclick.js +1 -1
  444. package/dist/web/standalone/node_modules/caniuse-lite/data/features/av1.js +1 -1
  445. package/dist/web/standalone/node_modules/caniuse-lite/data/features/avif.js +1 -1
  446. package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-attachment.js +1 -1
  447. package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-clip-text.js +1 -1
  448. package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-img-opts.js +1 -1
  449. package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-position-x-y.js +1 -1
  450. package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-repeat-round-space.js +1 -1
  451. package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-sync.js +1 -1
  452. package/dist/web/standalone/node_modules/caniuse-lite/data/features/battery-status.js +1 -1
  453. package/dist/web/standalone/node_modules/caniuse-lite/data/features/beacon.js +1 -1
  454. package/dist/web/standalone/node_modules/caniuse-lite/data/features/beforeafterprint.js +1 -1
  455. package/dist/web/standalone/node_modules/caniuse-lite/data/features/bigint.js +1 -1
  456. package/dist/web/standalone/node_modules/caniuse-lite/data/features/blobbuilder.js +1 -1
  457. package/dist/web/standalone/node_modules/caniuse-lite/data/features/bloburls.js +1 -1
  458. package/dist/web/standalone/node_modules/caniuse-lite/data/features/border-image.js +1 -1
  459. package/dist/web/standalone/node_modules/caniuse-lite/data/features/border-radius.js +1 -1
  460. package/dist/web/standalone/node_modules/caniuse-lite/data/features/broadcastchannel.js +1 -1
  461. package/dist/web/standalone/node_modules/caniuse-lite/data/features/brotli.js +1 -1
  462. package/dist/web/standalone/node_modules/caniuse-lite/data/features/calc.js +1 -1
  463. package/dist/web/standalone/node_modules/caniuse-lite/data/features/canvas-blending.js +1 -1
  464. package/dist/web/standalone/node_modules/caniuse-lite/data/features/canvas-text.js +1 -1
  465. package/dist/web/standalone/node_modules/caniuse-lite/data/features/canvas.js +1 -1
  466. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ch-unit.js +1 -1
  467. package/dist/web/standalone/node_modules/caniuse-lite/data/features/chacha20-poly1305.js +1 -1
  468. package/dist/web/standalone/node_modules/caniuse-lite/data/features/channel-messaging.js +1 -1
  469. package/dist/web/standalone/node_modules/caniuse-lite/data/features/childnode-remove.js +1 -1
  470. package/dist/web/standalone/node_modules/caniuse-lite/data/features/classlist.js +1 -1
  471. package/dist/web/standalone/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js +1 -1
  472. package/dist/web/standalone/node_modules/caniuse-lite/data/features/clipboard.js +1 -1
  473. package/dist/web/standalone/node_modules/caniuse-lite/data/features/colr-v1.js +1 -1
  474. package/dist/web/standalone/node_modules/caniuse-lite/data/features/colr.js +1 -1
  475. package/dist/web/standalone/node_modules/caniuse-lite/data/features/comparedocumentposition.js +1 -1
  476. package/dist/web/standalone/node_modules/caniuse-lite/data/features/console-basic.js +1 -1
  477. package/dist/web/standalone/node_modules/caniuse-lite/data/features/console-time.js +1 -1
  478. package/dist/web/standalone/node_modules/caniuse-lite/data/features/const.js +1 -1
  479. package/dist/web/standalone/node_modules/caniuse-lite/data/features/constraint-validation.js +1 -1
  480. package/dist/web/standalone/node_modules/caniuse-lite/data/features/contenteditable.js +1 -1
  481. package/dist/web/standalone/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js +1 -1
  482. package/dist/web/standalone/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js +1 -1
  483. package/dist/web/standalone/node_modules/caniuse-lite/data/features/cookie-store-api.js +1 -1
  484. package/dist/web/standalone/node_modules/caniuse-lite/data/features/cors.js +1 -1
  485. package/dist/web/standalone/node_modules/caniuse-lite/data/features/createimagebitmap.js +1 -1
  486. package/dist/web/standalone/node_modules/caniuse-lite/data/features/credential-management.js +1 -1
  487. package/dist/web/standalone/node_modules/caniuse-lite/data/features/cross-document-view-transitions.js +1 -1
  488. package/dist/web/standalone/node_modules/caniuse-lite/data/features/cryptography.js +1 -1
  489. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-all.js +1 -1
  490. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-anchor-positioning.js +1 -1
  491. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-animation.js +1 -1
  492. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-any-link.js +1 -1
  493. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-appearance.js +1 -1
  494. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-at-counter-style.js +1 -1
  495. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-autofill.js +1 -1
  496. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-backdrop-filter.js +1 -1
  497. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-background-offsets.js +1 -1
  498. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js +1 -1
  499. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js +1 -1
  500. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-boxshadow.js +1 -1
  501. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-canvas.js +1 -1
  502. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-caret-color.js +1 -1
  503. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-cascade-layers.js +1 -1
  504. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-cascade-scope.js +1 -1
  505. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-case-insensitive.js +1 -1
  506. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-clip-path.js +1 -1
  507. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-color-adjust.js +1 -1
  508. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-color-function.js +1 -1
  509. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-conic-gradients.js +1 -1
  510. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-container-queries-style.js +1 -1
  511. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-container-queries.js +1 -1
  512. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-container-query-units.js +1 -1
  513. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-containment.js +1 -1
  514. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-content-visibility.js +1 -1
  515. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-counters.js +1 -1
  516. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-crisp-edges.js +1 -1
  517. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-cross-fade.js +1 -1
  518. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-default-pseudo.js +1 -1
  519. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js +1 -1
  520. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-deviceadaptation.js +1 -1
  521. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-dir-pseudo.js +1 -1
  522. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-display-contents.js +1 -1
  523. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-element-function.js +1 -1
  524. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-env-function.js +1 -1
  525. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-exclusions.js +1 -1
  526. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-featurequeries.js +1 -1
  527. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-file-selector-button.js +1 -1
  528. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-filter-function.js +1 -1
  529. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-filters.js +1 -1
  530. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-first-letter.js +1 -1
  531. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-first-line.js +1 -1
  532. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-fixed.js +1 -1
  533. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-focus-visible.js +1 -1
  534. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-focus-within.js +1 -1
  535. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-font-palette.js +1 -1
  536. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js +1 -1
  537. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-font-stretch.js +1 -1
  538. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-gencontent.js +1 -1
  539. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-gradients.js +1 -1
  540. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-grid-animation.js +1 -1
  541. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-grid-lanes.js +1 -1
  542. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-grid.js +1 -1
  543. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js +1 -1
  544. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-has.js +1 -1
  545. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-hyphens.js +1 -1
  546. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-if.js +1 -1
  547. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-image-orientation.js +1 -1
  548. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-image-set.js +1 -1
  549. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-in-out-of-range.js +1 -1
  550. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js +1 -1
  551. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-initial-letter.js +1 -1
  552. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-initial-value.js +1 -1
  553. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-lch-lab.js +1 -1
  554. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-letter-spacing.js +1 -1
  555. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-line-clamp.js +1 -1
  556. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-logical-props.js +1 -1
  557. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-marker-pseudo.js +1 -1
  558. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-masks.js +1 -1
  559. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-matches-pseudo.js +1 -1
  560. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-math-functions.js +1 -1
  561. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-media-interaction.js +1 -1
  562. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-media-range-syntax.js +1 -1
  563. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-media-resolution.js +1 -1
  564. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-media-scripting.js +1 -1
  565. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-mediaqueries.js +1 -1
  566. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-mixblendmode.js +1 -1
  567. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-module-scripts.js +1 -1
  568. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-motion-paths.js +1 -1
  569. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-namespaces.js +1 -1
  570. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-nesting.js +1 -1
  571. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-not-sel-list.js +1 -1
  572. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-nth-child-of.js +1 -1
  573. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-opacity.js +1 -1
  574. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-optional-pseudo.js +1 -1
  575. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-overflow-anchor.js +1 -1
  576. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-overflow-overlay.js +1 -1
  577. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-overflow.js +1 -1
  578. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js +1 -1
  579. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-page-break.js +1 -1
  580. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-paged-media.js +1 -1
  581. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-paint-api.js +1 -1
  582. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-placeholder-shown.js +1 -1
  583. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-placeholder.js +1 -1
  584. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-print-color-adjust.js +1 -1
  585. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-read-only-write.js +1 -1
  586. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-rebeccapurple.js +1 -1
  587. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-reflections.js +1 -1
  588. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-regions.js +1 -1
  589. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-relative-colors.js +1 -1
  590. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-repeating-gradients.js +1 -1
  591. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-resize.js +1 -1
  592. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-revert-value.js +1 -1
  593. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-rrggbbaa.js +1 -1
  594. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-scroll-behavior.js +1 -1
  595. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-scrollbar.js +1 -1
  596. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-sel2.js +1 -1
  597. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-sel3.js +1 -1
  598. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-selection.js +1 -1
  599. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-shapes.js +1 -1
  600. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-snappoints.js +1 -1
  601. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-sticky.js +1 -1
  602. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-subgrid.js +1 -1
  603. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-supports-api.js +1 -1
  604. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-table.js +1 -1
  605. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-align-last.js +1 -1
  606. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-box-trim.js +1 -1
  607. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-indent.js +1 -1
  608. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-justify.js +1 -1
  609. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-orientation.js +1 -1
  610. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-spacing.js +1 -1
  611. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-wrap-balance.js +1 -1
  612. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-textshadow.js +1 -1
  613. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-touch-action.js +1 -1
  614. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-transitions.js +1 -1
  615. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-unicode-bidi.js +1 -1
  616. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-unset-value.js +1 -1
  617. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-variables.js +1 -1
  618. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-when-else.js +1 -1
  619. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-widows-orphans.js +1 -1
  620. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-width-stretch.js +1 -1
  621. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-writing-mode.js +1 -1
  622. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-zoom.js +1 -1
  623. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-attr.js +1 -1
  624. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-boxsizing.js +1 -1
  625. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-colors.js +1 -1
  626. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-cursors-grab.js +1 -1
  627. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-cursors-newer.js +1 -1
  628. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-cursors.js +1 -1
  629. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-tabsize.js +1 -1
  630. package/dist/web/standalone/node_modules/caniuse-lite/data/features/currentcolor.js +1 -1
  631. package/dist/web/standalone/node_modules/caniuse-lite/data/features/custom-elements.js +1 -1
  632. package/dist/web/standalone/node_modules/caniuse-lite/data/features/custom-elementsv1.js +1 -1
  633. package/dist/web/standalone/node_modules/caniuse-lite/data/features/customevent.js +1 -1
  634. package/dist/web/standalone/node_modules/caniuse-lite/data/features/customizable-select.js +1 -1
  635. package/dist/web/standalone/node_modules/caniuse-lite/data/features/datalist.js +1 -1
  636. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dataset.js +1 -1
  637. package/dist/web/standalone/node_modules/caniuse-lite/data/features/datauri.js +1 -1
  638. package/dist/web/standalone/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js +1 -1
  639. package/dist/web/standalone/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js +1 -1
  640. package/dist/web/standalone/node_modules/caniuse-lite/data/features/decorators.js +1 -1
  641. package/dist/web/standalone/node_modules/caniuse-lite/data/features/details.js +1 -1
  642. package/dist/web/standalone/node_modules/caniuse-lite/data/features/deviceorientation.js +1 -1
  643. package/dist/web/standalone/node_modules/caniuse-lite/data/features/devicepixelratio.js +1 -1
  644. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dialog.js +1 -1
  645. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dispatchevent.js +1 -1
  646. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dnssec.js +1 -1
  647. package/dist/web/standalone/node_modules/caniuse-lite/data/features/do-not-track.js +1 -1
  648. package/dist/web/standalone/node_modules/caniuse-lite/data/features/document-currentscript.js +1 -1
  649. package/dist/web/standalone/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js +1 -1
  650. package/dist/web/standalone/node_modules/caniuse-lite/data/features/document-execcommand.js +1 -1
  651. package/dist/web/standalone/node_modules/caniuse-lite/data/features/document-policy.js +1 -1
  652. package/dist/web/standalone/node_modules/caniuse-lite/data/features/document-scrollingelement.js +1 -1
  653. package/dist/web/standalone/node_modules/caniuse-lite/data/features/documenthead.js +1 -1
  654. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dom-manip-convenience.js +1 -1
  655. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dom-range.js +1 -1
  656. package/dist/web/standalone/node_modules/caniuse-lite/data/features/domcontentloaded.js +1 -1
  657. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dommatrix.js +1 -1
  658. package/dist/web/standalone/node_modules/caniuse-lite/data/features/download.js +1 -1
  659. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dragndrop.js +1 -1
  660. package/dist/web/standalone/node_modules/caniuse-lite/data/features/element-closest.js +1 -1
  661. package/dist/web/standalone/node_modules/caniuse-lite/data/features/element-from-point.js +1 -1
  662. package/dist/web/standalone/node_modules/caniuse-lite/data/features/element-scroll-methods.js +1 -1
  663. package/dist/web/standalone/node_modules/caniuse-lite/data/features/eme.js +1 -1
  664. package/dist/web/standalone/node_modules/caniuse-lite/data/features/eot.js +1 -1
  665. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es5.js +1 -1
  666. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-class.js +1 -1
  667. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-generators.js +1 -1
  668. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js +1 -1
  669. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-module.js +1 -1
  670. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-number.js +1 -1
  671. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-string-includes.js +1 -1
  672. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6.js +1 -1
  673. package/dist/web/standalone/node_modules/caniuse-lite/data/features/eventsource.js +1 -1
  674. package/dist/web/standalone/node_modules/caniuse-lite/data/features/extended-system-fonts.js +1 -1
  675. package/dist/web/standalone/node_modules/caniuse-lite/data/features/feature-policy.js +1 -1
  676. package/dist/web/standalone/node_modules/caniuse-lite/data/features/fetch.js +1 -1
  677. package/dist/web/standalone/node_modules/caniuse-lite/data/features/fieldset-disabled.js +1 -1
  678. package/dist/web/standalone/node_modules/caniuse-lite/data/features/fileapi.js +1 -1
  679. package/dist/web/standalone/node_modules/caniuse-lite/data/features/filereader.js +1 -1
  680. package/dist/web/standalone/node_modules/caniuse-lite/data/features/filereadersync.js +1 -1
  681. package/dist/web/standalone/node_modules/caniuse-lite/data/features/filesystem.js +1 -1
  682. package/dist/web/standalone/node_modules/caniuse-lite/data/features/flac.js +1 -1
  683. package/dist/web/standalone/node_modules/caniuse-lite/data/features/flexbox-gap.js +1 -1
  684. package/dist/web/standalone/node_modules/caniuse-lite/data/features/flexbox.js +1 -1
  685. package/dist/web/standalone/node_modules/caniuse-lite/data/features/flow-root.js +1 -1
  686. package/dist/web/standalone/node_modules/caniuse-lite/data/features/focusin-focusout-events.js +1 -1
  687. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-family-system-ui.js +1 -1
  688. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-feature.js +1 -1
  689. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-kerning.js +1 -1
  690. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-loading.js +1 -1
  691. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-size-adjust.js +1 -1
  692. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-smooth.js +1 -1
  693. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-unicode-range.js +1 -1
  694. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-variant-alternates.js +1 -1
  695. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-variant-numeric.js +1 -1
  696. package/dist/web/standalone/node_modules/caniuse-lite/data/features/fontface.js +1 -1
  697. package/dist/web/standalone/node_modules/caniuse-lite/data/features/form-attribute.js +1 -1
  698. package/dist/web/standalone/node_modules/caniuse-lite/data/features/form-submit-attributes.js +1 -1
  699. package/dist/web/standalone/node_modules/caniuse-lite/data/features/form-validation.js +1 -1
  700. package/dist/web/standalone/node_modules/caniuse-lite/data/features/forms.js +1 -1
  701. package/dist/web/standalone/node_modules/caniuse-lite/data/features/fullscreen.js +1 -1
  702. package/dist/web/standalone/node_modules/caniuse-lite/data/features/gamepad.js +1 -1
  703. package/dist/web/standalone/node_modules/caniuse-lite/data/features/geolocation.js +1 -1
  704. package/dist/web/standalone/node_modules/caniuse-lite/data/features/getboundingclientrect.js +1 -1
  705. package/dist/web/standalone/node_modules/caniuse-lite/data/features/getcomputedstyle.js +1 -1
  706. package/dist/web/standalone/node_modules/caniuse-lite/data/features/getelementsbyclassname.js +1 -1
  707. package/dist/web/standalone/node_modules/caniuse-lite/data/features/getrandomvalues.js +1 -1
  708. package/dist/web/standalone/node_modules/caniuse-lite/data/features/gyroscope.js +1 -1
  709. package/dist/web/standalone/node_modules/caniuse-lite/data/features/hardwareconcurrency.js +1 -1
  710. package/dist/web/standalone/node_modules/caniuse-lite/data/features/hashchange.js +1 -1
  711. package/dist/web/standalone/node_modules/caniuse-lite/data/features/heif.js +1 -1
  712. package/dist/web/standalone/node_modules/caniuse-lite/data/features/hevc.js +1 -1
  713. package/dist/web/standalone/node_modules/caniuse-lite/data/features/hidden.js +1 -1
  714. package/dist/web/standalone/node_modules/caniuse-lite/data/features/high-resolution-time.js +1 -1
  715. package/dist/web/standalone/node_modules/caniuse-lite/data/features/history.js +1 -1
  716. package/dist/web/standalone/node_modules/caniuse-lite/data/features/html-media-capture.js +1 -1
  717. package/dist/web/standalone/node_modules/caniuse-lite/data/features/html5semantic.js +1 -1
  718. package/dist/web/standalone/node_modules/caniuse-lite/data/features/http-live-streaming.js +1 -1
  719. package/dist/web/standalone/node_modules/caniuse-lite/data/features/http2.js +1 -1
  720. package/dist/web/standalone/node_modules/caniuse-lite/data/features/http3.js +1 -1
  721. package/dist/web/standalone/node_modules/caniuse-lite/data/features/iframe-sandbox.js +1 -1
  722. package/dist/web/standalone/node_modules/caniuse-lite/data/features/iframe-seamless.js +1 -1
  723. package/dist/web/standalone/node_modules/caniuse-lite/data/features/iframe-srcdoc.js +1 -1
  724. package/dist/web/standalone/node_modules/caniuse-lite/data/features/imagecapture.js +1 -1
  725. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ime.js +1 -1
  726. package/dist/web/standalone/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js +1 -1
  727. package/dist/web/standalone/node_modules/caniuse-lite/data/features/import-maps.js +1 -1
  728. package/dist/web/standalone/node_modules/caniuse-lite/data/features/imports.js +1 -1
  729. package/dist/web/standalone/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js +1 -1
  730. package/dist/web/standalone/node_modules/caniuse-lite/data/features/indexeddb.js +1 -1
  731. package/dist/web/standalone/node_modules/caniuse-lite/data/features/indexeddb2.js +1 -1
  732. package/dist/web/standalone/node_modules/caniuse-lite/data/features/inline-block.js +1 -1
  733. package/dist/web/standalone/node_modules/caniuse-lite/data/features/innertext.js +1 -1
  734. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js +1 -1
  735. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-color.js +1 -1
  736. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-datetime.js +1 -1
  737. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-email-tel-url.js +1 -1
  738. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-event.js +1 -1
  739. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-file-accept.js +1 -1
  740. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-file-directory.js +1 -1
  741. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-file-multiple.js +1 -1
  742. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-inputmode.js +1 -1
  743. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-minlength.js +1 -1
  744. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-number.js +1 -1
  745. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-pattern.js +1 -1
  746. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-placeholder.js +1 -1
  747. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-range.js +1 -1
  748. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-search.js +1 -1
  749. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-selection.js +1 -1
  750. package/dist/web/standalone/node_modules/caniuse-lite/data/features/insert-adjacent.js +1 -1
  751. package/dist/web/standalone/node_modules/caniuse-lite/data/features/insertadjacenthtml.js +1 -1
  752. package/dist/web/standalone/node_modules/caniuse-lite/data/features/internationalization.js +1 -1
  753. package/dist/web/standalone/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js +1 -1
  754. package/dist/web/standalone/node_modules/caniuse-lite/data/features/intersectionobserver.js +1 -1
  755. package/dist/web/standalone/node_modules/caniuse-lite/data/features/intl-pluralrules.js +1 -1
  756. package/dist/web/standalone/node_modules/caniuse-lite/data/features/intrinsic-width.js +1 -1
  757. package/dist/web/standalone/node_modules/caniuse-lite/data/features/jpeg2000.js +1 -1
  758. package/dist/web/standalone/node_modules/caniuse-lite/data/features/jpegxl.js +1 -1
  759. package/dist/web/standalone/node_modules/caniuse-lite/data/features/jpegxr.js +1 -1
  760. package/dist/web/standalone/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js +1 -1
  761. package/dist/web/standalone/node_modules/caniuse-lite/data/features/json.js +1 -1
  762. package/dist/web/standalone/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js +1 -1
  763. package/dist/web/standalone/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js +1 -1
  764. package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js +1 -1
  765. package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-code.js +1 -1
  766. package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js +1 -1
  767. package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-key.js +1 -1
  768. package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-location.js +1 -1
  769. package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-which.js +1 -1
  770. package/dist/web/standalone/node_modules/caniuse-lite/data/features/lazyload.js +1 -1
  771. package/dist/web/standalone/node_modules/caniuse-lite/data/features/let.js +1 -1
  772. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-icon-png.js +1 -1
  773. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-icon-svg.js +1 -1
  774. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js +1 -1
  775. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js +1 -1
  776. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-preconnect.js +1 -1
  777. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-prefetch.js +1 -1
  778. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-preload.js +1 -1
  779. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-prerender.js +1 -1
  780. package/dist/web/standalone/node_modules/caniuse-lite/data/features/loading-lazy-attr.js +1 -1
  781. package/dist/web/standalone/node_modules/caniuse-lite/data/features/loading-lazy-media.js +1 -1
  782. package/dist/web/standalone/node_modules/caniuse-lite/data/features/localecompare.js +1 -1
  783. package/dist/web/standalone/node_modules/caniuse-lite/data/features/magnetometer.js +1 -1
  784. package/dist/web/standalone/node_modules/caniuse-lite/data/features/matchesselector.js +1 -1
  785. package/dist/web/standalone/node_modules/caniuse-lite/data/features/matchmedia.js +1 -1
  786. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mathml.js +1 -1
  787. package/dist/web/standalone/node_modules/caniuse-lite/data/features/maxlength.js +1 -1
  788. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js +1 -1
  789. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js +1 -1
  790. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js +1 -1
  791. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js +1 -1
  792. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js +1 -1
  793. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js +1 -1
  794. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js +1 -1
  795. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js +1 -1
  796. package/dist/web/standalone/node_modules/caniuse-lite/data/features/media-fragments.js +1 -1
  797. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js +1 -1
  798. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mediarecorder.js +1 -1
  799. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mediasource.js +1 -1
  800. package/dist/web/standalone/node_modules/caniuse-lite/data/features/menu.js +1 -1
  801. package/dist/web/standalone/node_modules/caniuse-lite/data/features/meta-theme-color.js +1 -1
  802. package/dist/web/standalone/node_modules/caniuse-lite/data/features/meter.js +1 -1
  803. package/dist/web/standalone/node_modules/caniuse-lite/data/features/midi.js +1 -1
  804. package/dist/web/standalone/node_modules/caniuse-lite/data/features/minmaxwh.js +1 -1
  805. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mp3.js +1 -1
  806. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mpeg-dash.js +1 -1
  807. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mpeg4.js +1 -1
  808. package/dist/web/standalone/node_modules/caniuse-lite/data/features/multibackgrounds.js +1 -1
  809. package/dist/web/standalone/node_modules/caniuse-lite/data/features/multicolumn.js +1 -1
  810. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mutation-events.js +1 -1
  811. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mutationobserver.js +1 -1
  812. package/dist/web/standalone/node_modules/caniuse-lite/data/features/namevalue-storage.js +1 -1
  813. package/dist/web/standalone/node_modules/caniuse-lite/data/features/native-filesystem-api.js +1 -1
  814. package/dist/web/standalone/node_modules/caniuse-lite/data/features/nav-timing.js +1 -1
  815. package/dist/web/standalone/node_modules/caniuse-lite/data/features/netinfo.js +1 -1
  816. package/dist/web/standalone/node_modules/caniuse-lite/data/features/notifications.js +1 -1
  817. package/dist/web/standalone/node_modules/caniuse-lite/data/features/object-entries.js +1 -1
  818. package/dist/web/standalone/node_modules/caniuse-lite/data/features/object-fit.js +1 -1
  819. package/dist/web/standalone/node_modules/caniuse-lite/data/features/object-observe.js +1 -1
  820. package/dist/web/standalone/node_modules/caniuse-lite/data/features/object-values.js +1 -1
  821. package/dist/web/standalone/node_modules/caniuse-lite/data/features/objectrtc.js +1 -1
  822. package/dist/web/standalone/node_modules/caniuse-lite/data/features/offline-apps.js +1 -1
  823. package/dist/web/standalone/node_modules/caniuse-lite/data/features/offscreencanvas.js +1 -1
  824. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ogg-vorbis.js +1 -1
  825. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ogv.js +1 -1
  826. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ol-reversed.js +1 -1
  827. package/dist/web/standalone/node_modules/caniuse-lite/data/features/once-event-listener.js +1 -1
  828. package/dist/web/standalone/node_modules/caniuse-lite/data/features/online-status.js +1 -1
  829. package/dist/web/standalone/node_modules/caniuse-lite/data/features/opus.js +1 -1
  830. package/dist/web/standalone/node_modules/caniuse-lite/data/features/orientation-sensor.js +1 -1
  831. package/dist/web/standalone/node_modules/caniuse-lite/data/features/outline.js +1 -1
  832. package/dist/web/standalone/node_modules/caniuse-lite/data/features/pad-start-end.js +1 -1
  833. package/dist/web/standalone/node_modules/caniuse-lite/data/features/page-transition-events.js +1 -1
  834. package/dist/web/standalone/node_modules/caniuse-lite/data/features/pagevisibility.js +1 -1
  835. package/dist/web/standalone/node_modules/caniuse-lite/data/features/passive-event-listener.js +1 -1
  836. package/dist/web/standalone/node_modules/caniuse-lite/data/features/passkeys.js +1 -1
  837. package/dist/web/standalone/node_modules/caniuse-lite/data/features/passwordrules.js +1 -1
  838. package/dist/web/standalone/node_modules/caniuse-lite/data/features/path2d.js +1 -1
  839. package/dist/web/standalone/node_modules/caniuse-lite/data/features/payment-request.js +1 -1
  840. package/dist/web/standalone/node_modules/caniuse-lite/data/features/pdf-viewer.js +1 -1
  841. package/dist/web/standalone/node_modules/caniuse-lite/data/features/permissions-api.js +1 -1
  842. package/dist/web/standalone/node_modules/caniuse-lite/data/features/permissions-policy.js +1 -1
  843. package/dist/web/standalone/node_modules/caniuse-lite/data/features/picture-in-picture.js +1 -1
  844. package/dist/web/standalone/node_modules/caniuse-lite/data/features/picture.js +1 -1
  845. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ping.js +1 -1
  846. package/dist/web/standalone/node_modules/caniuse-lite/data/features/png-alpha.js +1 -1
  847. package/dist/web/standalone/node_modules/caniuse-lite/data/features/pointer-events.js +1 -1
  848. package/dist/web/standalone/node_modules/caniuse-lite/data/features/pointer.js +1 -1
  849. package/dist/web/standalone/node_modules/caniuse-lite/data/features/pointerlock.js +1 -1
  850. package/dist/web/standalone/node_modules/caniuse-lite/data/features/portals.js +1 -1
  851. package/dist/web/standalone/node_modules/caniuse-lite/data/features/prefers-color-scheme.js +1 -1
  852. package/dist/web/standalone/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js +1 -1
  853. package/dist/web/standalone/node_modules/caniuse-lite/data/features/progress.js +1 -1
  854. package/dist/web/standalone/node_modules/caniuse-lite/data/features/promise-finally.js +1 -1
  855. package/dist/web/standalone/node_modules/caniuse-lite/data/features/promises.js +1 -1
  856. package/dist/web/standalone/node_modules/caniuse-lite/data/features/proximity.js +1 -1
  857. package/dist/web/standalone/node_modules/caniuse-lite/data/features/proxy.js +1 -1
  858. package/dist/web/standalone/node_modules/caniuse-lite/data/features/publickeypinning.js +1 -1
  859. package/dist/web/standalone/node_modules/caniuse-lite/data/features/push-api.js +1 -1
  860. package/dist/web/standalone/node_modules/caniuse-lite/data/features/queryselector.js +1 -1
  861. package/dist/web/standalone/node_modules/caniuse-lite/data/features/readonly-attr.js +1 -1
  862. package/dist/web/standalone/node_modules/caniuse-lite/data/features/referrer-policy.js +1 -1
  863. package/dist/web/standalone/node_modules/caniuse-lite/data/features/registerprotocolhandler.js +1 -1
  864. package/dist/web/standalone/node_modules/caniuse-lite/data/features/rel-noopener.js +1 -1
  865. package/dist/web/standalone/node_modules/caniuse-lite/data/features/rel-noreferrer.js +1 -1
  866. package/dist/web/standalone/node_modules/caniuse-lite/data/features/rellist.js +1 -1
  867. package/dist/web/standalone/node_modules/caniuse-lite/data/features/rem.js +1 -1
  868. package/dist/web/standalone/node_modules/caniuse-lite/data/features/requestanimationframe.js +1 -1
  869. package/dist/web/standalone/node_modules/caniuse-lite/data/features/requestidlecallback.js +1 -1
  870. package/dist/web/standalone/node_modules/caniuse-lite/data/features/resizeobserver.js +1 -1
  871. package/dist/web/standalone/node_modules/caniuse-lite/data/features/resource-timing.js +1 -1
  872. package/dist/web/standalone/node_modules/caniuse-lite/data/features/rest-parameters.js +1 -1
  873. package/dist/web/standalone/node_modules/caniuse-lite/data/features/rtcpeerconnection.js +1 -1
  874. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ruby.js +1 -1
  875. package/dist/web/standalone/node_modules/caniuse-lite/data/features/run-in.js +1 -1
  876. package/dist/web/standalone/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js +1 -1
  877. package/dist/web/standalone/node_modules/caniuse-lite/data/features/screen-orientation.js +1 -1
  878. package/dist/web/standalone/node_modules/caniuse-lite/data/features/script-async.js +1 -1
  879. package/dist/web/standalone/node_modules/caniuse-lite/data/features/script-defer.js +1 -1
  880. package/dist/web/standalone/node_modules/caniuse-lite/data/features/scrollintoview.js +1 -1
  881. package/dist/web/standalone/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js +1 -1
  882. package/dist/web/standalone/node_modules/caniuse-lite/data/features/sdch.js +1 -1
  883. package/dist/web/standalone/node_modules/caniuse-lite/data/features/selection-api.js +1 -1
  884. package/dist/web/standalone/node_modules/caniuse-lite/data/features/server-timing.js +1 -1
  885. package/dist/web/standalone/node_modules/caniuse-lite/data/features/serviceworkers.js +1 -1
  886. package/dist/web/standalone/node_modules/caniuse-lite/data/features/setimmediate.js +1 -1
  887. package/dist/web/standalone/node_modules/caniuse-lite/data/features/shadowdom.js +1 -1
  888. package/dist/web/standalone/node_modules/caniuse-lite/data/features/shadowdomv1.js +1 -1
  889. package/dist/web/standalone/node_modules/caniuse-lite/data/features/sharedarraybuffer.js +1 -1
  890. package/dist/web/standalone/node_modules/caniuse-lite/data/features/sharedworkers.js +1 -1
  891. package/dist/web/standalone/node_modules/caniuse-lite/data/features/sni.js +1 -1
  892. package/dist/web/standalone/node_modules/caniuse-lite/data/features/spdy.js +1 -1
  893. package/dist/web/standalone/node_modules/caniuse-lite/data/features/speech-recognition.js +1 -1
  894. package/dist/web/standalone/node_modules/caniuse-lite/data/features/speech-synthesis.js +1 -1
  895. package/dist/web/standalone/node_modules/caniuse-lite/data/features/spellcheck-attribute.js +1 -1
  896. package/dist/web/standalone/node_modules/caniuse-lite/data/features/sql-storage.js +1 -1
  897. package/dist/web/standalone/node_modules/caniuse-lite/data/features/srcset.js +1 -1
  898. package/dist/web/standalone/node_modules/caniuse-lite/data/features/stream.js +1 -1
  899. package/dist/web/standalone/node_modules/caniuse-lite/data/features/streams.js +1 -1
  900. package/dist/web/standalone/node_modules/caniuse-lite/data/features/stricttransportsecurity.js +1 -1
  901. package/dist/web/standalone/node_modules/caniuse-lite/data/features/style-scoped.js +1 -1
  902. package/dist/web/standalone/node_modules/caniuse-lite/data/features/subresource-bundling.js +1 -1
  903. package/dist/web/standalone/node_modules/caniuse-lite/data/features/subresource-integrity.js +1 -1
  904. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-css.js +1 -1
  905. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-filters.js +1 -1
  906. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-fonts.js +1 -1
  907. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-fragment.js +1 -1
  908. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-html.js +1 -1
  909. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-html5.js +1 -1
  910. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-img.js +1 -1
  911. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-smil.js +1 -1
  912. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg.js +1 -1
  913. package/dist/web/standalone/node_modules/caniuse-lite/data/features/sxg.js +1 -1
  914. package/dist/web/standalone/node_modules/caniuse-lite/data/features/tabindex-attr.js +1 -1
  915. package/dist/web/standalone/node_modules/caniuse-lite/data/features/template-literals.js +1 -1
  916. package/dist/web/standalone/node_modules/caniuse-lite/data/features/template.js +1 -1
  917. package/dist/web/standalone/node_modules/caniuse-lite/data/features/temporal.js +1 -1
  918. package/dist/web/standalone/node_modules/caniuse-lite/data/features/testfeat.js +1 -1
  919. package/dist/web/standalone/node_modules/caniuse-lite/data/features/text-decoration.js +1 -1
  920. package/dist/web/standalone/node_modules/caniuse-lite/data/features/text-emphasis.js +1 -1
  921. package/dist/web/standalone/node_modules/caniuse-lite/data/features/text-overflow.js +1 -1
  922. package/dist/web/standalone/node_modules/caniuse-lite/data/features/text-size-adjust.js +1 -1
  923. package/dist/web/standalone/node_modules/caniuse-lite/data/features/text-stroke.js +1 -1
  924. package/dist/web/standalone/node_modules/caniuse-lite/data/features/textcontent.js +1 -1
  925. package/dist/web/standalone/node_modules/caniuse-lite/data/features/textencoder.js +1 -1
  926. package/dist/web/standalone/node_modules/caniuse-lite/data/features/tls1-1.js +1 -1
  927. package/dist/web/standalone/node_modules/caniuse-lite/data/features/tls1-2.js +1 -1
  928. package/dist/web/standalone/node_modules/caniuse-lite/data/features/tls1-3.js +1 -1
  929. package/dist/web/standalone/node_modules/caniuse-lite/data/features/touch.js +1 -1
  930. package/dist/web/standalone/node_modules/caniuse-lite/data/features/transforms2d.js +1 -1
  931. package/dist/web/standalone/node_modules/caniuse-lite/data/features/transforms3d.js +1 -1
  932. package/dist/web/standalone/node_modules/caniuse-lite/data/features/trusted-types.js +1 -1
  933. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ttf.js +1 -1
  934. package/dist/web/standalone/node_modules/caniuse-lite/data/features/typedarrays.js +1 -1
  935. package/dist/web/standalone/node_modules/caniuse-lite/data/features/u2f.js +1 -1
  936. package/dist/web/standalone/node_modules/caniuse-lite/data/features/unhandledrejection.js +1 -1
  937. package/dist/web/standalone/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js +1 -1
  938. package/dist/web/standalone/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js +1 -1
  939. package/dist/web/standalone/node_modules/caniuse-lite/data/features/url.js +1 -1
  940. package/dist/web/standalone/node_modules/caniuse-lite/data/features/urlsearchparams.js +1 -1
  941. package/dist/web/standalone/node_modules/caniuse-lite/data/features/use-strict.js +1 -1
  942. package/dist/web/standalone/node_modules/caniuse-lite/data/features/user-select-none.js +1 -1
  943. package/dist/web/standalone/node_modules/caniuse-lite/data/features/user-timing.js +1 -1
  944. package/dist/web/standalone/node_modules/caniuse-lite/data/features/variable-fonts.js +1 -1
  945. package/dist/web/standalone/node_modules/caniuse-lite/data/features/vector-effect.js +1 -1
  946. package/dist/web/standalone/node_modules/caniuse-lite/data/features/vibration.js +1 -1
  947. package/dist/web/standalone/node_modules/caniuse-lite/data/features/video.js +1 -1
  948. package/dist/web/standalone/node_modules/caniuse-lite/data/features/videotracks.js +1 -1
  949. package/dist/web/standalone/node_modules/caniuse-lite/data/features/view-transitions.js +1 -1
  950. package/dist/web/standalone/node_modules/caniuse-lite/data/features/viewport-unit-variants.js +1 -1
  951. package/dist/web/standalone/node_modules/caniuse-lite/data/features/viewport-units.js +1 -1
  952. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wai-aria.js +1 -1
  953. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wake-lock.js +1 -1
  954. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-bigint.js +1 -1
  955. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-bulk-memory.js +1 -1
  956. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-extended-const.js +1 -1
  957. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-gc.js +1 -1
  958. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-multi-memory.js +1 -1
  959. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-multi-value.js +1 -1
  960. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-mutable-globals.js +1 -1
  961. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-nontrapping-fptoint.js +1 -1
  962. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-reference-types.js +1 -1
  963. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-relaxed-simd.js +1 -1
  964. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-signext.js +1 -1
  965. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-simd.js +1 -1
  966. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-tail-calls.js +1 -1
  967. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-threads.js +1 -1
  968. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm.js +1 -1
  969. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wav.js +1 -1
  970. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wbr-element.js +1 -1
  971. package/dist/web/standalone/node_modules/caniuse-lite/data/features/web-animation.js +1 -1
  972. package/dist/web/standalone/node_modules/caniuse-lite/data/features/web-app-manifest.js +1 -1
  973. package/dist/web/standalone/node_modules/caniuse-lite/data/features/web-bluetooth.js +1 -1
  974. package/dist/web/standalone/node_modules/caniuse-lite/data/features/web-serial.js +1 -1
  975. package/dist/web/standalone/node_modules/caniuse-lite/data/features/web-share.js +1 -1
  976. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webauthn.js +1 -1
  977. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webcodecs.js +1 -1
  978. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webgl.js +1 -1
  979. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webgl2.js +1 -1
  980. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webgpu.js +1 -1
  981. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webhid.js +1 -1
  982. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webkit-user-drag.js +1 -1
  983. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webm.js +1 -1
  984. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webnfc.js +1 -1
  985. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webp.js +1 -1
  986. package/dist/web/standalone/node_modules/caniuse-lite/data/features/websockets.js +1 -1
  987. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webtransport.js +1 -1
  988. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webusb.js +1 -1
  989. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webvr.js +1 -1
  990. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webvtt.js +1 -1
  991. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webworkers.js +1 -1
  992. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webxr.js +1 -1
  993. package/dist/web/standalone/node_modules/caniuse-lite/data/features/will-change.js +1 -1
  994. package/dist/web/standalone/node_modules/caniuse-lite/data/features/woff.js +1 -1
  995. package/dist/web/standalone/node_modules/caniuse-lite/data/features/woff2.js +1 -1
  996. package/dist/web/standalone/node_modules/caniuse-lite/data/features/word-break.js +1 -1
  997. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wordwrap.js +1 -1
  998. package/dist/web/standalone/node_modules/caniuse-lite/data/features/x-doc-messaging.js +1 -1
  999. package/dist/web/standalone/node_modules/caniuse-lite/data/features/x-frame-options.js +1 -1
  1000. package/dist/web/standalone/node_modules/caniuse-lite/data/features/xhr2.js +1 -1
  1001. package/dist/web/standalone/node_modules/caniuse-lite/data/features/xhtml.js +1 -1
  1002. package/dist/web/standalone/node_modules/caniuse-lite/data/features/xhtmlsmil.js +1 -1
  1003. package/dist/web/standalone/node_modules/caniuse-lite/data/features/xml-serializer.js +1 -1
  1004. package/dist/web/standalone/node_modules/caniuse-lite/data/features/zstd.js +1 -1
  1005. package/dist/web/standalone/node_modules/caniuse-lite/package.json +7 -7
  1006. package/dist/web/standalone/node_modules/next/dist/build/swc/index.js +1 -1
  1007. package/dist/web/standalone/node_modules/next/dist/build/webpack-config.js +3 -3
  1008. package/dist/web/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +7 -7
  1009. package/dist/web/standalone/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js +6 -6
  1010. package/dist/web/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
  1011. package/dist/web/standalone/node_modules/next/dist/server/config-schema.js +10 -2
  1012. package/dist/web/standalone/node_modules/next/dist/server/config.js +1 -1
  1013. package/dist/web/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
  1014. package/dist/web/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  1015. package/dist/web/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  1016. package/dist/web/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
  1017. package/dist/web/standalone/node_modules/next/dist/server/render.js +27 -20
  1018. package/dist/web/standalone/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +1 -1
  1019. package/dist/web/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  1020. package/dist/web/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  1021. package/dist/web/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
  1022. package/dist/web/standalone/node_modules/next/package.json +15 -15
  1023. package/dist/web/standalone/node_modules/node-pty/build/Makefile +2 -2
  1024. package/dist/web/standalone/node_modules/node-pty/build/Release/pty.node +0 -0
  1025. package/dist/web/standalone/node_modules/node-pty/build/pty.target.mk +14 -14
  1026. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api.target.mk +14 -14
  1027. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_except.target.mk +14 -14
  1028. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_maybe.target.mk +14 -14
  1029. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/container.js +26 -18
  1030. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/css-syntax-error.js +47 -14
  1031. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/input.js +54 -29
  1032. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/lazy-result.js +47 -37
  1033. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/map-generator.js +26 -9
  1034. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/no-work-result.js +57 -55
  1035. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/node.js +99 -31
  1036. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/parser.js +10 -9
  1037. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/previous-map.js +30 -11
  1038. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/processor.js +7 -7
  1039. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/result.js +5 -5
  1040. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/stringifier.js +69 -28
  1041. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/tokenize.js +6 -2
  1042. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/package.json +48 -48
  1043. package/dist/web/standalone/node_modules/react/cjs/react.development.js +1 -1
  1044. package/dist/web/standalone/node_modules/react/cjs/react.production.js +1 -1
  1045. package/dist/web/standalone/node_modules/react/package.json +1 -1
  1046. package/dist/web/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js +1 -1
  1047. package/dist/web/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js +1 -1
  1048. package/dist/web/standalone/node_modules/react-dom/cjs/react-dom-server.browser.production.js +3 -3
  1049. package/dist/web/standalone/node_modules/react-dom/cjs/react-dom-server.edge.production.js +3 -3
  1050. package/dist/web/standalone/node_modules/react-dom/cjs/react-dom-server.node.production.js +3 -3
  1051. package/dist/web/standalone/node_modules/react-dom/cjs/react-dom.production.js +1 -1
  1052. package/dist/web/standalone/node_modules/react-dom/package.json +2 -2
  1053. package/dist/web/standalone/package.json +14 -8
  1054. package/dist/web/standalone/server.js +1 -1
  1055. package/dist/welcome-screen.js +27 -1
  1056. package/dist/worktree-cli.d.ts +6 -4
  1057. package/dist/worktree-cli.js +26 -20
  1058. package/dist/worktree-status-banner.d.ts +1 -0
  1059. package/dist/worktree-status-banner.js +132 -0
  1060. package/package.json +2 -4
  1061. package/packages/daemon/package.json +2 -2
  1062. package/packages/mcp-server/README.md +13 -11
  1063. package/packages/mcp-server/dist/alias-telemetry.d.ts +8 -0
  1064. package/packages/mcp-server/dist/alias-telemetry.d.ts.map +1 -0
  1065. package/packages/mcp-server/dist/alias-telemetry.js +30 -0
  1066. package/packages/mcp-server/dist/alias-telemetry.js.map +1 -0
  1067. package/packages/mcp-server/dist/env-writer.d.ts +5 -1
  1068. package/packages/mcp-server/dist/env-writer.d.ts.map +1 -1
  1069. package/packages/mcp-server/dist/env-writer.js +41 -8
  1070. package/packages/mcp-server/dist/env-writer.js.map +1 -1
  1071. package/packages/mcp-server/dist/readers/graph.d.ts.map +1 -1
  1072. package/packages/mcp-server/dist/readers/graph.js +7 -6
  1073. package/packages/mcp-server/dist/readers/graph.js.map +1 -1
  1074. package/packages/mcp-server/dist/readers/paths.d.ts +2 -0
  1075. package/packages/mcp-server/dist/readers/paths.d.ts.map +1 -1
  1076. package/packages/mcp-server/dist/readers/paths.js +163 -59
  1077. package/packages/mcp-server/dist/readers/paths.js.map +1 -1
  1078. package/packages/mcp-server/dist/remote-questions.d.ts +27 -0
  1079. package/packages/mcp-server/dist/remote-questions.d.ts.map +1 -1
  1080. package/packages/mcp-server/dist/remote-questions.js +47 -2
  1081. package/packages/mcp-server/dist/remote-questions.js.map +1 -1
  1082. package/packages/mcp-server/dist/server.d.ts +39 -1
  1083. package/packages/mcp-server/dist/server.d.ts.map +1 -1
  1084. package/packages/mcp-server/dist/server.js +228 -52
  1085. package/packages/mcp-server/dist/server.js.map +1 -1
  1086. package/packages/mcp-server/dist/session-manager.d.ts +6 -1
  1087. package/packages/mcp-server/dist/session-manager.d.ts.map +1 -1
  1088. package/packages/mcp-server/dist/session-manager.js +35 -13
  1089. package/packages/mcp-server/dist/session-manager.js.map +1 -1
  1090. package/packages/mcp-server/dist/workflow-tools.d.ts +7 -1
  1091. package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
  1092. package/packages/mcp-server/dist/workflow-tools.js +234 -76
  1093. package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
  1094. package/packages/mcp-server/package.json +2 -2
  1095. package/packages/mcp-server/src/alias-telemetry.test.ts +78 -0
  1096. package/packages/mcp-server/src/alias-telemetry.ts +30 -0
  1097. package/packages/mcp-server/src/env-writer.test.ts +76 -1
  1098. package/packages/mcp-server/src/env-writer.ts +48 -9
  1099. package/packages/mcp-server/src/import-candidates.test.ts +9 -4
  1100. package/packages/mcp-server/src/mcp-server.test.ts +422 -2
  1101. package/packages/mcp-server/src/parse-workflow-args.test.ts +80 -0
  1102. package/packages/mcp-server/src/readers/graph.test.ts +5 -2
  1103. package/packages/mcp-server/src/readers/graph.ts +14 -6
  1104. package/packages/mcp-server/src/readers/paths.test.ts +67 -0
  1105. package/packages/mcp-server/src/readers/paths.ts +173 -56
  1106. package/packages/mcp-server/src/remote-questions.test.ts +103 -0
  1107. package/packages/mcp-server/src/remote-questions.ts +53 -2
  1108. package/packages/mcp-server/src/server.ts +284 -59
  1109. package/packages/mcp-server/src/session-manager.ts +33 -12
  1110. package/packages/mcp-server/src/workflow-tools.test.ts +308 -136
  1111. package/packages/mcp-server/src/workflow-tools.ts +265 -92
  1112. package/packages/mcp-server/tsconfig.tsbuildinfo +1 -1
  1113. package/packages/native/dist/stream-process/index.js +207 -6
  1114. package/packages/native/package.json +1 -1
  1115. package/packages/native/src/__tests__/stream-process.test.mjs +51 -18
  1116. package/packages/native/src/stream-process/index.ts +249 -11
  1117. package/packages/native/tsconfig.tsbuildinfo +1 -1
  1118. package/packages/pi-agent-core/package.json +1 -1
  1119. package/packages/pi-agent-core/tsconfig.tsbuildinfo +1 -1
  1120. package/packages/pi-ai/dist/providers/anthropic-bearer-auth.test.js +8 -2
  1121. package/packages/pi-ai/dist/providers/anthropic-bearer-auth.test.js.map +1 -1
  1122. package/packages/pi-ai/dist/providers/anthropic-shared.cache-breakpoint.test.d.ts +2 -0
  1123. package/packages/pi-ai/dist/providers/anthropic-shared.cache-breakpoint.test.d.ts.map +1 -0
  1124. package/packages/pi-ai/dist/providers/anthropic-shared.cache-breakpoint.test.js +231 -0
  1125. package/packages/pi-ai/dist/providers/anthropic-shared.cache-breakpoint.test.js.map +1 -0
  1126. package/packages/pi-ai/dist/providers/anthropic-shared.d.ts.map +1 -1
  1127. package/packages/pi-ai/dist/providers/anthropic-shared.js +48 -19
  1128. package/packages/pi-ai/dist/providers/anthropic-shared.js.map +1 -1
  1129. package/packages/pi-ai/dist/providers/minimax-tool-name.test.js +8 -2
  1130. package/packages/pi-ai/dist/providers/minimax-tool-name.test.js.map +1 -1
  1131. package/packages/pi-ai/dist/types.d.ts +13 -0
  1132. package/packages/pi-ai/dist/types.d.ts.map +1 -1
  1133. package/packages/pi-ai/dist/types.js.map +1 -1
  1134. package/packages/pi-ai/dist/utils/repair-tool-json.d.ts.map +1 -1
  1135. package/packages/pi-ai/dist/utils/repair-tool-json.js +24 -3
  1136. package/packages/pi-ai/dist/utils/repair-tool-json.js.map +1 -1
  1137. package/packages/pi-ai/dist/utils/tests/repair-tool-json.test.js +26 -0
  1138. package/packages/pi-ai/dist/utils/tests/repair-tool-json.test.js.map +1 -1
  1139. package/packages/pi-ai/package.json +1 -1
  1140. package/packages/pi-ai/src/providers/anthropic-bearer-auth.test.ts +8 -2
  1141. package/packages/pi-ai/src/providers/anthropic-shared.cache-breakpoint.test.ts +289 -0
  1142. package/packages/pi-ai/src/providers/anthropic-shared.ts +52 -20
  1143. package/packages/pi-ai/src/providers/minimax-tool-name.test.ts +9 -2
  1144. package/packages/pi-ai/src/types.ts +13 -0
  1145. package/packages/pi-ai/src/utils/repair-tool-json.ts +24 -3
  1146. package/packages/pi-ai/src/utils/tests/repair-tool-json.test.ts +32 -0
  1147. package/packages/pi-ai/tsconfig.tsbuildinfo +1 -1
  1148. package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.js +278 -0
  1149. package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.js.map +1 -1
  1150. package/packages/pi-coding-agent/dist/core/agent-session.d.ts +7 -0
  1151. package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
  1152. package/packages/pi-coding-agent/dist/core/agent-session.js +131 -55
  1153. package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
  1154. package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts +1 -0
  1155. package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts.map +1 -1
  1156. package/packages/pi-coding-agent/dist/core/extensions/runner.js +43 -2
  1157. package/packages/pi-coding-agent/dist/core/extensions/runner.js.map +1 -1
  1158. package/packages/pi-coding-agent/dist/core/extensions/runner.test.js +79 -1
  1159. package/packages/pi-coding-agent/dist/core/extensions/runner.test.js.map +1 -1
  1160. package/packages/pi-coding-agent/dist/core/messages.d.ts.map +1 -1
  1161. package/packages/pi-coding-agent/dist/core/messages.js +4 -0
  1162. package/packages/pi-coding-agent/dist/core/messages.js.map +1 -1
  1163. package/packages/pi-coding-agent/dist/core/model-registry-auth-mode.test.js +19 -2
  1164. package/packages/pi-coding-agent/dist/core/model-registry-auth-mode.test.js.map +1 -1
  1165. package/packages/pi-coding-agent/dist/core/model-registry.d.ts +10 -0
  1166. package/packages/pi-coding-agent/dist/core/model-registry.d.ts.map +1 -1
  1167. package/packages/pi-coding-agent/dist/core/model-registry.js +18 -0
  1168. package/packages/pi-coding-agent/dist/core/model-registry.js.map +1 -1
  1169. package/packages/pi-coding-agent/dist/core/system-prompt.d.ts +13 -0
  1170. package/packages/pi-coding-agent/dist/core/system-prompt.d.ts.map +1 -1
  1171. package/packages/pi-coding-agent/dist/core/system-prompt.js +20 -16
  1172. package/packages/pi-coding-agent/dist/core/system-prompt.js.map +1 -1
  1173. package/packages/pi-coding-agent/dist/core/token-telemetry.d.ts +37 -0
  1174. package/packages/pi-coding-agent/dist/core/token-telemetry.d.ts.map +1 -0
  1175. package/packages/pi-coding-agent/dist/core/token-telemetry.js +49 -0
  1176. package/packages/pi-coding-agent/dist/core/token-telemetry.js.map +1 -0
  1177. package/packages/pi-coding-agent/dist/core/tools/bash-spawn-windows.test.js +24 -6
  1178. package/packages/pi-coding-agent/dist/core/tools/bash-spawn-windows.test.js.map +1 -1
  1179. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-card-cleanup-and-success-runtime.test.d.ts +2 -0
  1180. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-card-cleanup-and-success-runtime.test.d.ts.map +1 -0
  1181. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-card-cleanup-and-success-runtime.test.js +133 -0
  1182. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-card-cleanup-and-success-runtime.test.js.map +1 -0
  1183. package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.js +1 -1
  1184. package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.js.map +1 -1
  1185. package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.test.js +14 -1
  1186. package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.test.js.map +1 -1
  1187. package/packages/pi-coding-agent/dist/tests/system-prompt-cache-stability.test.d.ts +2 -0
  1188. package/packages/pi-coding-agent/dist/tests/system-prompt-cache-stability.test.d.ts.map +1 -0
  1189. package/packages/pi-coding-agent/dist/tests/system-prompt-cache-stability.test.js +78 -0
  1190. package/packages/pi-coding-agent/dist/tests/system-prompt-cache-stability.test.js.map +1 -0
  1191. package/packages/pi-coding-agent/dist/tests/token-telemetry.test.d.ts +2 -0
  1192. package/packages/pi-coding-agent/dist/tests/token-telemetry.test.d.ts.map +1 -0
  1193. package/packages/pi-coding-agent/dist/tests/token-telemetry.test.js +181 -0
  1194. package/packages/pi-coding-agent/dist/tests/token-telemetry.test.js.map +1 -0
  1195. package/packages/pi-coding-agent/package.json +1 -1
  1196. package/packages/pi-coding-agent/src/core/agent-session-abort-order.test.ts +319 -0
  1197. package/packages/pi-coding-agent/src/core/agent-session.ts +135 -59
  1198. package/packages/pi-coding-agent/src/core/extensions/runner.test.ts +89 -1
  1199. package/packages/pi-coding-agent/src/core/extensions/runner.ts +46 -2
  1200. package/packages/pi-coding-agent/src/core/messages.ts +4 -0
  1201. package/packages/pi-coding-agent/src/core/model-registry-auth-mode.test.ts +32 -2
  1202. package/packages/pi-coding-agent/src/core/model-registry.ts +21 -0
  1203. package/packages/pi-coding-agent/src/core/system-prompt.ts +33 -15
  1204. package/packages/pi-coding-agent/src/core/token-telemetry.ts +77 -0
  1205. package/packages/pi-coding-agent/src/core/tools/bash-spawn-windows.test.ts +26 -6
  1206. package/packages/pi-coding-agent/src/modes/interactive/components/tool-card-cleanup-and-success-runtime.test.ts +212 -0
  1207. package/packages/pi-coding-agent/src/modes/interactive/controllers/input-controller.test.ts +17 -1
  1208. package/packages/pi-coding-agent/src/modes/interactive/controllers/input-controller.ts +1 -1
  1209. package/packages/pi-coding-agent/src/tests/system-prompt-cache-stability.test.ts +102 -0
  1210. package/packages/pi-coding-agent/src/tests/token-telemetry.test.ts +200 -0
  1211. package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -1
  1212. package/packages/pi-tui/dist/__tests__/autocomplete.test.js +17 -3
  1213. package/packages/pi-tui/dist/__tests__/autocomplete.test.js.map +1 -1
  1214. package/packages/pi-tui/dist/components/__tests__/leak-fixes-runtime.test.d.ts +2 -0
  1215. package/packages/pi-tui/dist/components/__tests__/leak-fixes-runtime.test.d.ts.map +1 -0
  1216. package/packages/pi-tui/dist/components/__tests__/leak-fixes-runtime.test.js +161 -0
  1217. package/packages/pi-tui/dist/components/__tests__/leak-fixes-runtime.test.js.map +1 -0
  1218. package/packages/pi-tui/package.json +1 -1
  1219. package/packages/pi-tui/src/__tests__/autocomplete.test.ts +20 -3
  1220. package/packages/pi-tui/src/components/__tests__/leak-fixes-runtime.test.ts +219 -0
  1221. package/packages/pi-tui/tsconfig.tsbuildinfo +1 -1
  1222. package/packages/rpc-client/package.json +1 -1
  1223. package/pkg/package.json +1 -1
  1224. package/src/resources/GSD-WORKFLOW.md +29 -42
  1225. package/src/resources/extensions/async-jobs/job-manager.ts +3 -0
  1226. package/src/resources/extensions/bg-shell/bg-shell-lifecycle.ts +3 -2
  1227. package/src/resources/extensions/bg-shell/utilities.ts +2 -1
  1228. package/src/resources/extensions/browser-tools/tools/intent.ts +13 -2
  1229. package/src/resources/extensions/claude-code-cli/readiness.ts +130 -30
  1230. package/src/resources/extensions/claude-code-cli/stream-adapter.ts +21 -8
  1231. package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +34 -13
  1232. package/src/resources/extensions/github-sync/cli.ts +3 -0
  1233. package/src/resources/extensions/github-sync/sync.ts +88 -58
  1234. package/src/resources/extensions/github-sync/tests/sync-source.test.ts +26 -0
  1235. package/src/resources/extensions/google-search/index.ts +2 -9
  1236. package/src/resources/extensions/gsd/auto/loop-deps.ts +1 -1
  1237. package/src/resources/extensions/gsd/auto/loop.ts +24 -2
  1238. package/src/resources/extensions/gsd/auto/phases.ts +104 -40
  1239. package/src/resources/extensions/gsd/auto/run-unit.ts +26 -12
  1240. package/src/resources/extensions/gsd/auto/session.ts +12 -6
  1241. package/src/resources/extensions/gsd/auto/types.ts +1 -0
  1242. package/src/resources/extensions/gsd/auto-artifact-paths.ts +60 -30
  1243. package/src/resources/extensions/gsd/auto-dashboard.ts +13 -2
  1244. package/src/resources/extensions/gsd/auto-direct-dispatch.ts +62 -24
  1245. package/src/resources/extensions/gsd/auto-dispatch.ts +275 -99
  1246. package/src/resources/extensions/gsd/auto-post-unit.ts +131 -45
  1247. package/src/resources/extensions/gsd/auto-prompts.ts +170 -9
  1248. package/src/resources/extensions/gsd/auto-recovery.ts +121 -21
  1249. package/src/resources/extensions/gsd/auto-runtime-state.ts +51 -0
  1250. package/src/resources/extensions/gsd/auto-start.ts +73 -73
  1251. package/src/resources/extensions/gsd/auto-timeout-recovery.ts +22 -0
  1252. package/src/resources/extensions/gsd/auto-timers.ts +37 -5
  1253. package/src/resources/extensions/gsd/auto-tool-tracking.ts +2 -4
  1254. package/src/resources/extensions/gsd/auto-worktree.ts +440 -244
  1255. package/src/resources/extensions/gsd/auto.ts +167 -26
  1256. package/src/resources/extensions/gsd/bootstrap/agent-end-recovery.ts +21 -2
  1257. package/src/resources/extensions/gsd/bootstrap/db-tools.ts +53 -20
  1258. package/src/resources/extensions/gsd/bootstrap/dynamic-tools.ts +9 -84
  1259. package/src/resources/extensions/gsd/bootstrap/exec-tools.ts +8 -7
  1260. package/src/resources/extensions/gsd/bootstrap/query-tools.ts +2 -2
  1261. package/src/resources/extensions/gsd/bootstrap/register-extension.ts +10 -9
  1262. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +217 -47
  1263. package/src/resources/extensions/gsd/bootstrap/register-shortcuts.ts +12 -6
  1264. package/src/resources/extensions/gsd/bootstrap/subagent-input.ts +20 -0
  1265. package/src/resources/extensions/gsd/bootstrap/system-context.ts +53 -12
  1266. package/src/resources/extensions/gsd/bootstrap/tests/write-gate-basepath.test.ts +103 -0
  1267. package/src/resources/extensions/gsd/bootstrap/write-gate.ts +306 -74
  1268. package/src/resources/extensions/gsd/branch-patterns.ts +3 -3
  1269. package/src/resources/extensions/gsd/commands/catalog.ts +87 -9
  1270. package/src/resources/extensions/gsd/commands/context.ts +40 -6
  1271. package/src/resources/extensions/gsd/commands/dispatcher.ts +11 -5
  1272. package/src/resources/extensions/gsd/commands/handlers/auto.ts +2 -1
  1273. package/src/resources/extensions/gsd/commands/handlers/core.ts +25 -1
  1274. package/src/resources/extensions/gsd/commands/handlers/ops.ts +15 -0
  1275. package/src/resources/extensions/gsd/commands/handlers/workflow.ts +23 -2
  1276. package/src/resources/extensions/gsd/commands-bootstrap.ts +7 -0
  1277. package/src/resources/extensions/gsd/commands-codebase.ts +2 -1
  1278. package/src/resources/extensions/gsd/commands-config.ts +3 -2
  1279. package/src/resources/extensions/gsd/commands-debug.ts +27 -1
  1280. package/src/resources/extensions/gsd/commands-eval-review.ts +716 -0
  1281. package/src/resources/extensions/gsd/commands-extensions.ts +47 -7
  1282. package/src/resources/extensions/gsd/commands-handlers.ts +8 -7
  1283. package/src/resources/extensions/gsd/commands-logs.ts +2 -1
  1284. package/src/resources/extensions/gsd/commands-mcp-status.ts +3 -1
  1285. package/src/resources/extensions/gsd/commands-prefs-wizard.ts +15 -1
  1286. package/src/resources/extensions/gsd/commands-scan.ts +2 -1
  1287. package/src/resources/extensions/gsd/commands-ship.ts +101 -1
  1288. package/src/resources/extensions/gsd/commands-workflow-templates.ts +5 -4
  1289. package/src/resources/extensions/gsd/commands-worktree.ts +383 -0
  1290. package/src/resources/extensions/gsd/context-budget.ts +13 -2
  1291. package/src/resources/extensions/gsd/dashboard-overlay.ts +1 -1
  1292. package/src/resources/extensions/gsd/db-writer.ts +169 -89
  1293. package/src/resources/extensions/gsd/deep-project-setup-policy.ts +257 -0
  1294. package/src/resources/extensions/gsd/delegation-policy.ts +197 -0
  1295. package/src/resources/extensions/gsd/detection.ts +7 -7
  1296. package/src/resources/extensions/gsd/dispatch-guard.ts +6 -11
  1297. package/src/resources/extensions/gsd/docs/preferences-reference.md +16 -4
  1298. package/src/resources/extensions/gsd/doctor-engine-checks.ts +2 -2
  1299. package/src/resources/extensions/gsd/doctor-providers.ts +2 -1
  1300. package/src/resources/extensions/gsd/doctor-runtime-checks.ts +92 -1
  1301. package/src/resources/extensions/gsd/doctor-types.ts +4 -1
  1302. package/src/resources/extensions/gsd/error-classifier.ts +1 -1
  1303. package/src/resources/extensions/gsd/eval-review-schema.ts +243 -0
  1304. package/src/resources/extensions/gsd/forensics.ts +19 -8
  1305. package/src/resources/extensions/gsd/git-service.ts +94 -8
  1306. package/src/resources/extensions/gsd/gsd-db.ts +284 -12
  1307. package/src/resources/extensions/gsd/gsd-home.ts +30 -0
  1308. package/src/resources/extensions/gsd/guided-flow-queue.ts +1 -1
  1309. package/src/resources/extensions/gsd/guided-flow.ts +519 -141
  1310. package/src/resources/extensions/gsd/init-wizard.ts +17 -20
  1311. package/src/resources/extensions/gsd/interrupted-session.ts +39 -2
  1312. package/src/resources/extensions/gsd/journal.ts +4 -1
  1313. package/src/resources/extensions/gsd/key-manager.ts +2 -1
  1314. package/src/resources/extensions/gsd/markdown-renderer.ts +58 -79
  1315. package/src/resources/extensions/gsd/memory-store.ts +81 -28
  1316. package/src/resources/extensions/gsd/metrics.ts +321 -1
  1317. package/src/resources/extensions/gsd/migrate/command.ts +3 -2
  1318. package/src/resources/extensions/gsd/milestone-id-reservation.ts +47 -0
  1319. package/src/resources/extensions/gsd/milestone-scope-classifier.ts +15 -8
  1320. package/src/resources/extensions/gsd/model-router.ts +172 -9
  1321. package/src/resources/extensions/gsd/native-git-bridge.ts +26 -42
  1322. package/src/resources/extensions/gsd/onboarding-state.ts +2 -2
  1323. package/src/resources/extensions/gsd/parallel-merge.ts +14 -13
  1324. package/src/resources/extensions/gsd/parallel-monitor-overlay.ts +5 -2
  1325. package/src/resources/extensions/gsd/paths.ts +158 -9
  1326. package/src/resources/extensions/gsd/planning-depth.ts +137 -0
  1327. package/src/resources/extensions/gsd/preferences-models.ts +119 -16
  1328. package/src/resources/extensions/gsd/preferences-skills.ts +2 -1
  1329. package/src/resources/extensions/gsd/preferences-types.ts +17 -0
  1330. package/src/resources/extensions/gsd/preferences-validation.ts +44 -0
  1331. package/src/resources/extensions/gsd/preferences.ts +42 -7
  1332. package/src/resources/extensions/gsd/project-research-policy.ts +259 -0
  1333. package/src/resources/extensions/gsd/prompt-loader.ts +28 -15
  1334. package/src/resources/extensions/gsd/prompts/complete-milestone.md +10 -0
  1335. package/src/resources/extensions/gsd/prompts/complete-slice.md +14 -4
  1336. package/src/resources/extensions/gsd/prompts/execute-task.md +3 -3
  1337. package/src/resources/extensions/gsd/prompts/guided-discuss-milestone.md +10 -1
  1338. package/src/resources/extensions/gsd/prompts/guided-discuss-project.md +148 -0
  1339. package/src/resources/extensions/gsd/prompts/guided-discuss-requirements.md +126 -0
  1340. package/src/resources/extensions/gsd/prompts/guided-discuss-slice.md +8 -1
  1341. package/src/resources/extensions/gsd/prompts/guided-research-decision.md +70 -0
  1342. package/src/resources/extensions/gsd/prompts/guided-research-project.md +120 -0
  1343. package/src/resources/extensions/gsd/prompts/guided-workflow-preferences.md +68 -0
  1344. package/src/resources/extensions/gsd/prompts/parallel-research-slices.md +2 -0
  1345. package/src/resources/extensions/gsd/prompts/plan-milestone.md +8 -2
  1346. package/src/resources/extensions/gsd/prompts/plan-slice.md +18 -6
  1347. package/src/resources/extensions/gsd/prompts/refine-slice.md +10 -0
  1348. package/src/resources/extensions/gsd/prompts/rewrite-docs.md +2 -0
  1349. package/src/resources/extensions/gsd/prompts/system.md +4 -4
  1350. package/src/resources/extensions/gsd/queue-order.ts +6 -1
  1351. package/src/resources/extensions/gsd/repo-identity.ts +15 -9
  1352. package/src/resources/extensions/gsd/rethink.ts +2 -1
  1353. package/src/resources/extensions/gsd/safety/git-checkpoint.ts +10 -1
  1354. package/src/resources/extensions/gsd/schemas/__fixtures__/valid-project.md +26 -0
  1355. package/src/resources/extensions/gsd/schemas/__fixtures__/valid-requirements.md +57 -0
  1356. package/src/resources/extensions/gsd/schemas/__fixtures__/valid-roadmap.md +19 -0
  1357. package/src/resources/extensions/gsd/schemas/parsers.ts +346 -0
  1358. package/src/resources/extensions/gsd/schemas/validate.ts +452 -0
  1359. package/src/resources/extensions/gsd/skill-telemetry.ts +3 -2
  1360. package/src/resources/extensions/gsd/slice-cadence.ts +71 -6
  1361. package/src/resources/extensions/gsd/slice-parallel-orchestrator.ts +9 -3
  1362. package/src/resources/extensions/gsd/state.ts +133 -389
  1363. package/src/resources/extensions/gsd/templates/PREFERENCES.md +1 -0
  1364. package/src/resources/extensions/gsd/templates/project.md +10 -0
  1365. package/src/resources/extensions/gsd/tests/artifact-corruption-2630.test.ts +1 -0
  1366. package/src/resources/extensions/gsd/tests/artifact-validators.test.ts +524 -0
  1367. package/src/resources/extensions/gsd/tests/auto-dashboard.test.ts +20 -0
  1368. package/src/resources/extensions/gsd/tests/auto-discuss-milestone-deadlock-4973.test.ts +42 -17
  1369. package/src/resources/extensions/gsd/tests/auto-loop.test.ts +274 -30
  1370. package/src/resources/extensions/gsd/tests/auto-paused-session-validation.test.ts +6 -0
  1371. package/src/resources/extensions/gsd/tests/auto-recovery.test.ts +58 -0
  1372. package/src/resources/extensions/gsd/tests/auto-remediate-slice-status.test.ts +21 -34
  1373. package/src/resources/extensions/gsd/tests/auto-session-encapsulation.test.ts +24 -5
  1374. package/src/resources/extensions/gsd/tests/auto-session-scope.test.ts +331 -0
  1375. package/src/resources/extensions/gsd/tests/auto-start-clean-runtime-db-gated.test.ts +32 -1
  1376. package/src/resources/extensions/gsd/tests/auto-start-index-lock.test.ts +38 -0
  1377. package/src/resources/extensions/gsd/tests/auto-supervisor.test.mjs +21 -4
  1378. package/src/resources/extensions/gsd/tests/auto-worktree-registry.test.ts +176 -0
  1379. package/src/resources/extensions/gsd/tests/auto-wrapup-inflight-guard.test.ts +56 -0
  1380. package/src/resources/extensions/gsd/tests/bootstrap-derive-state-db-open.test.ts +1 -1
  1381. package/src/resources/extensions/gsd/tests/budget-prediction.test.ts +138 -211
  1382. package/src/resources/extensions/gsd/tests/bundled-skill-triggers.test.ts +50 -27
  1383. package/src/resources/extensions/gsd/tests/commands-eval-review.test.ts +612 -0
  1384. package/src/resources/extensions/gsd/tests/commands-extensions-version-compare.test.ts +58 -0
  1385. package/src/resources/extensions/gsd/tests/commands-ship-eval-warn.test.ts +155 -0
  1386. package/src/resources/extensions/gsd/tests/commands-worktree-clean.test.ts +48 -0
  1387. package/src/resources/extensions/gsd/tests/complete-slice-verification-gate.test.ts +142 -59
  1388. package/src/resources/extensions/gsd/tests/complete-slice.test.ts +7 -4
  1389. package/src/resources/extensions/gsd/tests/complete-task-rollback-evidence.test.ts +6 -7
  1390. package/src/resources/extensions/gsd/tests/complete-task.test.ts +8 -6
  1391. package/src/resources/extensions/gsd/tests/completed-at-reconcile.test.ts +76 -34
  1392. package/src/resources/extensions/gsd/tests/completed-units-metrics-sync.test.ts +18 -5
  1393. package/src/resources/extensions/gsd/tests/context-budget.test.ts +28 -0
  1394. package/src/resources/extensions/gsd/tests/crash-recovery.test.ts +50 -0
  1395. package/src/resources/extensions/gsd/tests/custom-engine-loop-integration.test.ts +42 -23
  1396. package/src/resources/extensions/gsd/tests/db-path-worktree-symlink.test.ts +7 -47
  1397. package/src/resources/extensions/gsd/tests/db-writer-path-containment.test.ts +152 -0
  1398. package/src/resources/extensions/gsd/tests/db-writer-root-artifact.test.ts +221 -0
  1399. package/src/resources/extensions/gsd/tests/db-writer-scope.test.ts +230 -0
  1400. package/src/resources/extensions/gsd/tests/db-writer.test.ts +165 -21
  1401. package/src/resources/extensions/gsd/tests/debug-command-handler.test.ts +37 -0
  1402. package/src/resources/extensions/gsd/tests/debug-logger.test.ts +5 -3
  1403. package/src/resources/extensions/gsd/tests/deep-mode-integration.test.ts +406 -0
  1404. package/src/resources/extensions/gsd/tests/deep-planning-mode-dispatch.test.ts +881 -0
  1405. package/src/resources/extensions/gsd/tests/deep-project-auto-loop.test.ts +1562 -0
  1406. package/src/resources/extensions/gsd/tests/deep-project-setup-policy.test.ts +193 -0
  1407. package/src/resources/extensions/gsd/tests/deferred-milestone-dir-4996.test.ts +116 -0
  1408. package/src/resources/extensions/gsd/tests/delegation-policy.test.ts +151 -0
  1409. package/src/resources/extensions/gsd/tests/derive-state-crossval.test.ts +6 -5
  1410. package/src/resources/extensions/gsd/tests/derive-state-db-disk-reconcile.test.ts +10 -38
  1411. package/src/resources/extensions/gsd/tests/derive-state-db.test.ts +136 -56
  1412. package/src/resources/extensions/gsd/tests/derive-state-draft.test.ts +3 -0
  1413. package/src/resources/extensions/gsd/tests/derive-state-helpers.test.ts +119 -61
  1414. package/src/resources/extensions/gsd/tests/derive-state.test.ts +4 -0
  1415. package/src/resources/extensions/gsd/tests/discuss-empty-db-fallback.test.ts +22 -87
  1416. package/src/resources/extensions/gsd/tests/discuss-queued-milestones.test.ts +7 -118
  1417. package/src/resources/extensions/gsd/tests/discuss-tool-scope-leak.test.ts +18 -60
  1418. package/src/resources/extensions/gsd/tests/dispatch-backgroundable-annotation.test.ts +55 -0
  1419. package/src/resources/extensions/gsd/tests/dispatch-complete-milestone-guard.test.ts +6 -20
  1420. package/src/resources/extensions/gsd/tests/dispatch-guard.test.ts +4 -5
  1421. package/src/resources/extensions/gsd/tests/dispatcher-stuck-planning.test.ts +14 -15
  1422. package/src/resources/extensions/gsd/tests/doctor-orphan-milestone-4996.test.ts +100 -0
  1423. package/src/resources/extensions/gsd/tests/double-merge-guard.test.ts +14 -76
  1424. package/src/resources/extensions/gsd/tests/draft-promotion.test.ts +3 -23
  1425. package/src/resources/extensions/gsd/tests/ensure-db-open.test.ts +11 -16
  1426. package/src/resources/extensions/gsd/tests/ensure-preconditions-guard-4996.test.ts +93 -0
  1427. package/src/resources/extensions/gsd/tests/escalation.test.ts +2 -1
  1428. package/src/resources/extensions/gsd/tests/eval-review-schema.test.ts +282 -0
  1429. package/src/resources/extensions/gsd/tests/false-degraded-mode-warning.test.ts +22 -83
  1430. package/src/resources/extensions/gsd/tests/finalize-timeout-guard.test.ts +1 -63
  1431. package/src/resources/extensions/gsd/tests/find-missing-summaries-closed-runtime.test.ts +47 -0
  1432. package/src/resources/extensions/gsd/tests/forensics-stuck-loops.test.ts +26 -1
  1433. package/src/resources/extensions/gsd/tests/gate-1b-orphan-discrimination.test.ts +193 -0
  1434. package/src/resources/extensions/gsd/tests/gate-1b-recovery-bound-corrections.test.ts +246 -0
  1435. package/src/resources/extensions/gsd/tests/gate-1b-recovery-bound.test.ts +218 -0
  1436. package/src/resources/extensions/gsd/tests/git-checkpoint.test.ts +9 -0
  1437. package/src/resources/extensions/gsd/tests/gitignore-bg-shell-runtime.test.ts +63 -0
  1438. package/src/resources/extensions/gsd/tests/google-search-stub.test.ts +25 -65
  1439. package/src/resources/extensions/gsd/tests/gsd-db-failed-open-restore.test.ts +117 -0
  1440. package/src/resources/extensions/gsd/tests/gsd-db-workspace-scope.test.ts +226 -0
  1441. package/src/resources/extensions/gsd/tests/gsd-db.test.ts +32 -1
  1442. package/src/resources/extensions/gsd/tests/gsd-home.test.ts +43 -0
  1443. package/src/resources/extensions/gsd/tests/gsd-no-project-error-runtime.test.ts +95 -0
  1444. package/src/resources/extensions/gsd/tests/gsd-root-canonical.test.ts +66 -0
  1445. package/src/resources/extensions/gsd/tests/gsd-root-home-guard.test.ts +149 -0
  1446. package/src/resources/extensions/gsd/tests/gsdroot-worktree-detection.test.ts +15 -36
  1447. package/src/resources/extensions/gsd/tests/guided-flow-prompt-consolidation.test.ts +133 -0
  1448. package/src/resources/extensions/gsd/tests/handler-worktree-write-isolation.test.ts +57 -0
  1449. package/src/resources/extensions/gsd/tests/has-pending-deep-stage.test.ts +98 -0
  1450. package/src/resources/extensions/gsd/tests/headless-answers.test.ts +14 -4
  1451. package/src/resources/extensions/gsd/tests/health-widget.test.ts +22 -12
  1452. package/src/resources/extensions/gsd/tests/help-menu-coverage.test.ts +57 -0
  1453. package/src/resources/extensions/gsd/tests/import-done-milestones-runtime.test.ts +145 -0
  1454. package/src/resources/extensions/gsd/tests/init-prefs-routing.test.ts +64 -1
  1455. package/src/resources/extensions/gsd/tests/init-skip-git.test.ts +19 -0
  1456. package/src/resources/extensions/gsd/tests/init-wizard.test.ts +17 -0
  1457. package/src/resources/extensions/gsd/tests/integration/auto-worktree.test.ts +73 -1
  1458. package/src/resources/extensions/gsd/tests/integration/commands-eval-review.integration.test.ts +254 -0
  1459. package/src/resources/extensions/gsd/tests/integration/doctor-runtime.test.ts +40 -0
  1460. package/src/resources/extensions/gsd/tests/integration/git-service.test.ts +42 -0
  1461. package/src/resources/extensions/gsd/tests/integration/parallel-merge.test.ts +15 -15
  1462. package/src/resources/extensions/gsd/tests/integration/state-machine-edge-cases.test.ts +15 -5
  1463. package/src/resources/extensions/gsd/tests/integration/token-savings.test.ts +0 -23
  1464. package/src/resources/extensions/gsd/tests/integration/workspace-collapse-integration.test.ts +371 -0
  1465. package/src/resources/extensions/gsd/tests/journal-integration.test.ts +124 -7
  1466. package/src/resources/extensions/gsd/tests/markdown-renderer.test.ts +84 -9
  1467. package/src/resources/extensions/gsd/tests/md-importer.test.ts +2 -1
  1468. package/src/resources/extensions/gsd/tests/memory-store.test.ts +131 -2
  1469. package/src/resources/extensions/gsd/tests/memory-tools.test.ts +33 -1
  1470. package/src/resources/extensions/gsd/tests/merge-self-branch-guard.test.ts +124 -0
  1471. package/src/resources/extensions/gsd/tests/metrics-atomic-merge.test.ts +222 -0
  1472. package/src/resources/extensions/gsd/tests/metrics-lock-hardening.test.ts +400 -0
  1473. package/src/resources/extensions/gsd/tests/metrics-lock-not-acquired.test.ts +141 -0
  1474. package/src/resources/extensions/gsd/tests/metrics-lock-retry-sleep.test.ts +287 -0
  1475. package/src/resources/extensions/gsd/tests/metrics-prune-cache-invalidation.test.ts +149 -0
  1476. package/src/resources/extensions/gsd/tests/metrics-scope.test.ts +378 -0
  1477. package/src/resources/extensions/gsd/tests/milestone-id-gap-reuse-4996.test.ts +152 -0
  1478. package/src/resources/extensions/gsd/tests/milestone-report-path.test.ts +18 -1
  1479. package/src/resources/extensions/gsd/tests/milestone-scope-classifier.test.ts +19 -0
  1480. package/src/resources/extensions/gsd/tests/model-router.test.ts +169 -8
  1481. package/src/resources/extensions/gsd/tests/model-unittype-mapping.test.ts +19 -0
  1482. package/src/resources/extensions/gsd/tests/native-git-bridge-exec-fallback.test.ts +22 -2
  1483. package/src/resources/extensions/gsd/tests/native-git-infra-errors.test.ts +50 -0
  1484. package/src/resources/extensions/gsd/tests/none-mode-gates.test.ts +51 -3
  1485. package/src/resources/extensions/gsd/tests/originalbase-path-comparison.test.ts +329 -0
  1486. package/src/resources/extensions/gsd/tests/orphaned-worktree-audit.test.ts +8 -0
  1487. package/src/resources/extensions/gsd/tests/parallel-crash-recovery.test.ts +32 -43
  1488. package/src/resources/extensions/gsd/tests/park-milestone.test.ts +2 -0
  1489. package/src/resources/extensions/gsd/tests/path-cache-decoupled.test.ts +209 -0
  1490. package/src/resources/extensions/gsd/tests/path-normalization-unified.test.ts +175 -0
  1491. package/src/resources/extensions/gsd/tests/paths-cache.test.ts +170 -0
  1492. package/src/resources/extensions/gsd/tests/pending-autostart-scope.test.ts +120 -0
  1493. package/src/resources/extensions/gsd/tests/phases-merge-error-stops-auto.test.ts +4 -10
  1494. package/src/resources/extensions/gsd/tests/plan-milestone-artifact-verification.test.ts +40 -0
  1495. package/src/resources/extensions/gsd/tests/plan-slice-prompt.test.ts +0 -43
  1496. package/src/resources/extensions/gsd/tests/plan-slice.test.ts +33 -0
  1497. package/src/resources/extensions/gsd/tests/planning-depth-setter.test.ts +172 -0
  1498. package/src/resources/extensions/gsd/tests/post-unit-git-failure.test.ts +18 -0
  1499. package/src/resources/extensions/gsd/tests/preferences.test.ts +199 -0
  1500. package/src/resources/extensions/gsd/tests/prefs-wizard-coverage.test.ts +1 -0
  1501. package/src/resources/extensions/gsd/tests/progressive-planning.test.ts +25 -16
  1502. package/src/resources/extensions/gsd/tests/project-root-cwd-crash.test.ts +4 -4
  1503. package/src/resources/extensions/gsd/tests/projection-regression.test.ts +1 -0
  1504. package/src/resources/extensions/gsd/tests/prompt-budget-enforcement.test.ts +2 -2
  1505. package/src/resources/extensions/gsd/tests/prompt-contracts.test.ts +232 -28
  1506. package/src/resources/extensions/gsd/tests/prompt-step-ordering.test.ts +16 -0
  1507. package/src/resources/extensions/gsd/tests/provider-errors.test.ts +7 -0
  1508. package/src/resources/extensions/gsd/tests/quality-gates.test.ts +7 -16
  1509. package/src/resources/extensions/gsd/tests/quick-turn-end-cleanup.test.ts +6 -6
  1510. package/src/resources/extensions/gsd/tests/ready-phrase-no-files-4573.test.ts +267 -0
  1511. package/src/resources/extensions/gsd/tests/register-hooks-compaction-checkpoint.test.ts +98 -0
  1512. package/src/resources/extensions/gsd/tests/register-hooks-depth-verification.test.ts +286 -8
  1513. package/src/resources/extensions/gsd/tests/replan-slice.test.ts +3 -0
  1514. package/src/resources/extensions/gsd/tests/resolve-ts.mjs +4 -0
  1515. package/src/resources/extensions/gsd/tests/resume-missing-worktree-warning.test.ts +209 -0
  1516. package/src/resources/extensions/gsd/tests/rogue-file-detection.test.ts +3 -4
  1517. package/src/resources/extensions/gsd/tests/safety-harness-false-positives.test.ts +34 -0
  1518. package/src/resources/extensions/gsd/tests/session-start-footer.test.ts +168 -19
  1519. package/src/resources/extensions/gsd/tests/slice-cadence.test.ts +36 -0
  1520. package/src/resources/extensions/gsd/tests/slice-disk-reconcile.test.ts +10 -56
  1521. package/src/resources/extensions/gsd/tests/slice-parallel-orchestrator.test.ts +7 -1
  1522. package/src/resources/extensions/gsd/tests/smart-entry-complete.test.ts +23 -1
  1523. package/src/resources/extensions/gsd/tests/stale-slice-rows.test.ts +15 -16
  1524. package/src/resources/extensions/gsd/tests/start-auto-detached.test.ts +53 -0
  1525. package/src/resources/extensions/gsd/tests/stash-pop-gsd-conflict.test.ts +8 -2
  1526. package/src/resources/extensions/gsd/tests/stash-queued-context-files.test.ts +12 -6
  1527. package/src/resources/extensions/gsd/tests/state-corruption-2945.test.ts +1 -0
  1528. package/src/resources/extensions/gsd/tests/state-machine-full-walkthrough.test.ts +23 -27
  1529. package/src/resources/extensions/gsd/tests/steer-worktree-path.test.ts +30 -15
  1530. package/src/resources/extensions/gsd/tests/stop-auto-remote.test.ts +4 -3
  1531. package/src/resources/extensions/gsd/tests/sync-layer-scope.test.ts +453 -0
  1532. package/src/resources/extensions/gsd/tests/sync-worktree-skip-current.test.ts +10 -33
  1533. package/src/resources/extensions/gsd/tests/system-context-message-routing.test.ts +101 -0
  1534. package/src/resources/extensions/gsd/tests/teardown-chdir-failure-clears-registry.test.ts +162 -0
  1535. package/src/resources/extensions/gsd/tests/teardown-cleanup-parity.test.ts +102 -0
  1536. package/src/resources/extensions/gsd/tests/teardown-failure-clears-registry.test.ts +186 -0
  1537. package/src/resources/extensions/gsd/tests/token-counter.test.ts +9 -0
  1538. package/src/resources/extensions/gsd/tests/token-profile.test.ts +51 -4
  1539. package/src/resources/extensions/gsd/tests/tool-invocation-error-loop-break.test.ts +1 -1
  1540. package/src/resources/extensions/gsd/tests/tool-param-optionality.test.ts +34 -0
  1541. package/src/resources/extensions/gsd/tests/turn-epoch.test.ts +7 -16
  1542. package/src/resources/extensions/gsd/tests/unit-context-manifest.test.ts +48 -3
  1543. package/src/resources/extensions/gsd/tests/unit-runtime.test.ts +41 -0
  1544. package/src/resources/extensions/gsd/tests/unstructured-continue-context-injection.test.ts +5 -7
  1545. package/src/resources/extensions/gsd/tests/uok-gitops-turn-action.test.ts +15 -1
  1546. package/src/resources/extensions/gsd/tests/uok-plan-v2-wiring.test.ts +48 -0
  1547. package/src/resources/extensions/gsd/tests/validate-milestone-write-order.test.ts +7 -8
  1548. package/src/resources/extensions/gsd/tests/validate-milestone.test.ts +9 -15
  1549. package/src/resources/extensions/gsd/tests/validator-scope-parity.test.ts +239 -0
  1550. package/src/resources/extensions/gsd/tests/verify-artifact-tightened.test.ts +52 -1
  1551. package/src/resources/extensions/gsd/tests/visualizer-overlay.test.ts +6 -6
  1552. package/src/resources/extensions/gsd/tests/workflow-logger-wiring.test.ts +12 -7
  1553. package/src/resources/extensions/gsd/tests/workflow-mcp-auto-prep.test.ts +4 -4
  1554. package/src/resources/extensions/gsd/tests/workflow-mcp.test.ts +83 -4
  1555. package/src/resources/extensions/gsd/tests/workflow-tool-executors.test.ts +241 -4
  1556. package/src/resources/extensions/gsd/tests/workspace.test.ts +196 -0
  1557. package/src/resources/extensions/gsd/tests/worktree-db-same-file.test.ts +13 -0
  1558. package/src/resources/extensions/gsd/tests/worktree-main-branch.test.ts +5 -0
  1559. package/src/resources/extensions/gsd/tests/worktree-path-injection.test.ts +236 -0
  1560. package/src/resources/extensions/gsd/tests/worktree-resolver.test.ts +103 -0
  1561. package/src/resources/extensions/gsd/tests/worktree-root-resolution.test.ts +50 -0
  1562. package/src/resources/extensions/gsd/tests/worktree-root.test.ts +69 -0
  1563. package/src/resources/extensions/gsd/tests/worktree-symlink-removal.test.ts +34 -33
  1564. package/src/resources/extensions/gsd/tests/worktree-sync-milestones.test.ts +65 -71
  1565. package/src/resources/extensions/gsd/tests/worktree-sync-tasks.test.ts +26 -151
  1566. package/src/resources/extensions/gsd/tests/worktree.test.ts +8 -0
  1567. package/src/resources/extensions/gsd/tests/write-gate-planning-unit.test.ts +131 -1
  1568. package/src/resources/extensions/gsd/tests/write-gate-predicates.test.ts +43 -41
  1569. package/src/resources/extensions/gsd/tests/write-gate.test.ts +180 -57
  1570. package/src/resources/extensions/gsd/tests/write-intercept.test.ts +1 -1
  1571. package/src/resources/extensions/gsd/token-counter.ts +2 -1
  1572. package/src/resources/extensions/gsd/tools/complete-milestone.ts +7 -5
  1573. package/src/resources/extensions/gsd/tools/complete-slice.ts +7 -14
  1574. package/src/resources/extensions/gsd/tools/complete-task.ts +19 -34
  1575. package/src/resources/extensions/gsd/tools/memory-tools.ts +17 -1
  1576. package/src/resources/extensions/gsd/tools/plan-slice.ts +10 -9
  1577. package/src/resources/extensions/gsd/tools/validate-milestone.ts +7 -5
  1578. package/src/resources/extensions/gsd/tools/workflow-tool-executors.ts +81 -14
  1579. package/src/resources/extensions/gsd/unit-context-manifest.ts +141 -13
  1580. package/src/resources/extensions/gsd/unit-runtime.ts +76 -24
  1581. package/src/resources/extensions/gsd/uok/plan-v2.ts +19 -1
  1582. package/src/resources/extensions/gsd/user-input-boundary.ts +166 -0
  1583. package/src/resources/extensions/gsd/visualizer-overlay.ts +1 -1
  1584. package/src/resources/extensions/gsd/watch/header-renderer.ts +4 -1
  1585. package/src/resources/extensions/gsd/workflow-install.ts +2 -3
  1586. package/src/resources/extensions/gsd/workflow-logger.ts +1 -0
  1587. package/src/resources/extensions/gsd/workflow-manifest.ts +4 -1
  1588. package/src/resources/extensions/gsd/workflow-mcp-auto-prep.ts +2 -18
  1589. package/src/resources/extensions/gsd/workflow-mcp.ts +43 -6
  1590. package/src/resources/extensions/gsd/workflow-migration.ts +4 -3
  1591. package/src/resources/extensions/gsd/workflow-plugins.ts +4 -5
  1592. package/src/resources/extensions/gsd/workflow-reconcile.ts +3 -3
  1593. package/src/resources/extensions/gsd/workflow-templates.ts +2 -3
  1594. package/src/resources/extensions/gsd/workspace.ts +95 -0
  1595. package/src/resources/extensions/gsd/worktree-command.ts +35 -47
  1596. package/src/resources/extensions/gsd/worktree-manager.ts +46 -7
  1597. package/src/resources/extensions/gsd/worktree-resolver.ts +50 -22
  1598. package/src/resources/extensions/gsd/worktree-root.ts +182 -0
  1599. package/src/resources/extensions/gsd/worktree-session-state.ts +35 -0
  1600. package/src/resources/extensions/gsd/worktree.ts +8 -119
  1601. package/src/resources/extensions/gsd/write-intercept.ts +3 -3
  1602. package/src/resources/extensions/mcp-client/index.ts +6 -10
  1603. package/src/resources/extensions/mcp-client/tests/global-config.test.ts +91 -0
  1604. package/src/resources/extensions/ollama/index.ts +16 -2
  1605. package/src/resources/extensions/ollama/model-capabilities.ts +34 -0
  1606. package/src/resources/extensions/ollama/ollama-client.ts +41 -4
  1607. package/src/resources/extensions/ollama/tests/model-capabilities.test.ts +96 -0
  1608. package/src/resources/extensions/ollama/tests/ollama-client-timeout-env.test.ts +147 -0
  1609. package/src/resources/extensions/remote-questions/remote-command.ts +2 -1
  1610. package/src/resources/extensions/remote-questions/status.ts +2 -6
  1611. package/src/resources/extensions/remote-questions/store.ts +2 -6
  1612. package/src/resources/extensions/search-the-web/provider.ts +9 -8
  1613. package/src/resources/extensions/shared/next-action-ui.ts +8 -0
  1614. package/src/resources/extensions/shared/tests/next-action-ui-hasui.test.ts +112 -0
  1615. package/src/resources/extensions/slash-commands/create-extension.ts +38 -24
  1616. package/src/resources/extensions/subagent/index.ts +187 -16
  1617. package/src/resources/extensions/subagent/isolation.ts +2 -2
  1618. package/src/resources/extensions/subagent/tests/model-override.test.ts +55 -0
  1619. package/src/resources/extensions/ttsr/rule-loader.ts +2 -3
  1620. package/src/resources/extensions/voice/index.ts +3 -2
  1621. package/src/resources/extensions/voice/linux-ready.ts +2 -3
  1622. package/src/resources/skills/create-gsd-extension/SKILL.md +9 -5
  1623. package/src/resources/skills/create-gsd-extension/references/custom-commands.md +1 -1
  1624. package/src/resources/skills/create-gsd-extension/references/custom-rendering.md +5 -5
  1625. package/src/resources/skills/create-gsd-extension/references/custom-tools.md +4 -4
  1626. package/src/resources/skills/create-gsd-extension/references/custom-ui.md +6 -6
  1627. package/src/resources/skills/create-gsd-extension/references/events-reference.md +3 -3
  1628. package/src/resources/skills/create-gsd-extension/references/packaging-distribution.md +1 -1
  1629. package/src/resources/skills/create-gsd-extension/references/remote-execution-overrides.md +3 -3
  1630. package/src/resources/skills/create-gsd-extension/templates/extension-skeleton.ts +2 -2
  1631. package/src/resources/skills/create-gsd-extension/templates/stateful-tool-skeleton.ts +3 -3
  1632. package/src/resources/skills/create-gsd-extension/templates/templates.test.ts +58 -0
  1633. package/src/resources/skills/create-gsd-extension/workflows/create-extension.md +32 -12
  1634. package/src/resources/skills/lint/SKILL.md +4 -0
  1635. package/src/resources/skills/review/SKILL.md +4 -0
  1636. package/src/resources/skills/test/SKILL.md +3 -0
  1637. package/src/resources/skills/verify-before-complete/SKILL.md +1 -1
  1638. package/dist/resources/extensions/browser-tools/tests/browser-tools-integration.test.mjs +0 -601
  1639. package/dist/resources/extensions/browser-tools/tests/browser-tools-unit.test.cjs +0 -651
  1640. package/dist/resources/extensions/browser-tools/tests/capture-sharp-optional.test.cjs +0 -91
  1641. package/dist/resources/extensions/gsd/auto-loop.js +0 -13
  1642. package/dist/resources/extensions/gsd/prompts/guided-complete-slice.md +0 -3
  1643. package/dist/resources/extensions/gsd/prompts/guided-execute-task.md +0 -3
  1644. package/dist/resources/extensions/gsd/prompts/guided-plan-milestone.md +0 -30
  1645. package/dist/resources/extensions/gsd/prompts/guided-plan-slice.md +0 -3
  1646. package/dist/resources/extensions/gsd/tests/auto-supervisor.test.mjs +0 -53
  1647. package/dist/resources/extensions/gsd/tests/dist-redirect.mjs +0 -112
  1648. package/dist/resources/extensions/gsd/tests/resolve-ts-hooks.mjs +0 -23
  1649. package/dist/resources/extensions/gsd/tests/resolve-ts.mjs +0 -5
  1650. package/dist/resources/skills/github-workflows/references/gh/tests/__init__.py +0 -0
  1651. package/dist/resources/skills/github-workflows/references/gh/tests/test_github_project_setup.py +0 -608
  1652. package/dist/web/standalone/.next/server/chunks/1926.js +0 -1
  1653. package/dist/web/standalone/.next/server/edge-runtime-webpack.js +0 -2
  1654. package/dist/web/standalone/.next/static/chunks/2826.e9f5195e91f9cad2.js +0 -11
  1655. package/dist/web/standalone/.next/static/chunks/3621.fc7480022c972438.js +0 -20
  1656. package/dist/web/standalone/.next/static/chunks/363642f4.cf8b455e0d94b478.js +0 -1
  1657. package/dist/web/standalone/.next/static/chunks/5326.adc4bf49a22f4e67.js +0 -1
  1658. package/dist/web/standalone/.next/static/chunks/app/page-151349214571e2b6.js +0 -1
  1659. package/dist/web/standalone/.next/static/chunks/main-app-d3d4c336195465f9.js +0 -1
  1660. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-ab5a8926e07ec673.js +0 -1
  1661. package/dist/web/standalone/.next/static/chunks/webpack-2e68521d7c82f7c2.js +0 -1
  1662. package/dist/web/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +0 -1
  1663. package/dist/web/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  1664. package/dist/web/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +0 -42
  1665. package/dist/web/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +0 -30
  1666. package/dist/web/standalone/node_modules/@img/sharp-linuxmusl-x64/LICENSE +0 -191
  1667. package/dist/web/standalone/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
  1668. package/dist/web/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +0 -46
  1669. package/src/resources/extensions/gsd/auto-loop.ts +0 -16
  1670. package/src/resources/extensions/gsd/prompts/guided-complete-slice.md +0 -3
  1671. package/src/resources/extensions/gsd/prompts/guided-execute-task.md +0 -3
  1672. package/src/resources/extensions/gsd/prompts/guided-plan-milestone.md +0 -30
  1673. package/src/resources/extensions/gsd/prompts/guided-plan-slice.md +0 -3
  1674. package/src/resources/extensions/gsd/tests/copy-planning-artifacts-samepath.test.ts +0 -22
  1675. package/src/resources/extensions/gsd/tests/discuss-slice-structured-questions.test.ts +0 -47
  1676. package/src/resources/extensions/gsd/tests/empty-content-abort-loop.test.ts +0 -75
  1677. package/dist/web/standalone/.next/static/{C1zT2kEfoLhDdbWPWKrXd → X7_3k2EBYa-pIRIFXU3sv}/_buildManifest.js +0 -0
  1678. package/dist/web/standalone/.next/static/{C1zT2kEfoLhDdbWPWKrXd → X7_3k2EBYa-pIRIFXU3sv}/_ssgManifest.js +0 -0
  1679. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/at-rule.js +0 -0
  1680. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/comment.js +0 -0
  1681. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/declaration.js +4 -4
  1682. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/document.js +0 -0
  1683. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/fromJSON.js +3 -3
  1684. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/list.js +0 -0
  1685. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/parse.js +1 -1
  1686. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/postcss.js +12 -12
  1687. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/root.js +0 -0
  1688. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/rule.js +6 -6
  1689. /package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/stringify.js +0 -0
  1690. /package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/symbols.js +0 -0
  1691. /package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/terminal-highlight.js +0 -0
  1692. /package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/warn-once.js +0 -0
  1693. /package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/warning.js +0 -0
  1694. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/classes/comparator.js +0 -0
  1695. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/classes/range.js +0 -0
  1696. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/classes/semver.js +0 -0
  1697. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/cmp.js +0 -0
  1698. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/coerce.js +0 -0
  1699. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/compare.js +0 -0
  1700. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/eq.js +0 -0
  1701. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/gt.js +0 -0
  1702. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/gte.js +0 -0
  1703. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/lt.js +0 -0
  1704. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/lte.js +0 -0
  1705. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/neq.js +0 -0
  1706. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/parse.js +0 -0
  1707. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/satisfies.js +0 -0
  1708. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/constants.js +0 -0
  1709. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/debug.js +0 -0
  1710. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/identifiers.js +0 -0
  1711. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/lrucache.js +0 -0
  1712. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/parse-options.js +0 -0
  1713. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/re.js +0 -0
  1714. /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,
@@ -46,10 +45,16 @@ import {
46
45
  resolveGitHeadPath,
47
46
  nudgeGitBranchCache,
48
47
  } from "./worktree.js";
48
+ import {
49
+ isGsdWorktreePath,
50
+ normalizeWorktreePathForCompare,
51
+ resolveWorktreeProjectRoot,
52
+ } from "./worktree-root.js";
49
53
  import { MergeConflictError, readIntegrationBranch, RUNTIME_EXCLUSION_PATHS } from "./git-service.js";
50
54
  import { debugLog } from "./debug-logger.js";
51
55
  import { logWarning, logError } from "./workflow-logger.js";
52
56
  import { loadEffectiveGSDPreferences } from "./preferences.js";
57
+ import { MILESTONE_ID_RE } from "./milestone-ids.js";
53
58
  import {
54
59
  nativeGetCurrentBranch,
55
60
  nativeDetectMainBranch,
@@ -70,17 +75,24 @@ import {
70
75
  nativeIsAncestor,
71
76
  nativeMergeAbort,
72
77
  } from "./native-git-bridge.js";
78
+ import { gsdHome } from "./gsd-home.js";
79
+ import { type MilestoneScope, type GsdWorkspace, createWorkspace } from "./workspace.js";
73
80
 
74
- const gsdHome = process.env.GSD_HOME || join(homedir(), ".gsd");
75
81
  const PROJECT_PREFERENCES_FILE = "PREFERENCES.md";
76
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
+ ]);
77
90
 
78
91
  // ─── Shared Constants & Helpers ─────────────────────────────────────────────
79
92
 
80
93
  /**
81
- * Root-level .gsd/ state files synced between worktree and project root.
82
- * Single source of truth used by syncGsdStateToWorktree, syncWorktreeStateBack,
83
- * 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.
84
96
  */
85
97
  const ROOT_STATE_FILES = [
86
98
  "DECISIONS.md",
@@ -98,6 +110,11 @@ const ROOT_STATE_FILES = [
98
110
  // because the project root is authoritative for preferences (#2684).
99
111
  ] as const;
100
112
 
113
+ const ROOT_DIAGNOSTIC_FILES = [
114
+ "completed-units.json",
115
+ "metrics.json",
116
+ ] as const;
117
+
101
118
  /**
102
119
  * Pop a stash entry by tracking the unique marker embedded in its message so
103
120
  * concurrent stash operations against the same project root cannot cause us to
@@ -182,7 +199,7 @@ const VERDICT_RE = /verdict:\s*[\w-]+/i;
182
199
  * destination when the source copy contains a `verdict:` field.
183
200
  *
184
201
  * This is the targeted fix for the UAT stuck-loop (#2821): the main
185
- * safeCopyRecursive uses force:false to protect worktree-authoritative
202
+ * safeCopyRecursive uses force:false to protect worktree-local projection
186
203
  * files (#1886), but ASSESSMENT files written by run-uat must be
187
204
  * forward-synced when the project root has a verdict. Without this,
188
205
  * the worktree retains a stale FAIL or missing ASSESSMENT and
@@ -238,8 +255,16 @@ function forceOverwriteAssessmentsWithVerdict(
238
255
 
239
256
  // ─── Module State ──────────────────────────────────────────────────────────
240
257
 
241
- /** Original project root before chdir into auto-worktree. */
242
- let originalBase: string | null = null;
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
+ }
243
268
 
244
269
  function clearProjectRootStateFiles(basePath: string, milestoneId: string): void {
245
270
  const gsdDir = gsdRoot(basePath);
@@ -260,9 +285,9 @@ function clearProjectRootStateFiles(basePath: string, milestoneId: string): void
260
285
  }
261
286
  }
262
287
 
263
- // Clean up entire synced milestone directory and runtime/units.
264
- // syncStateToProjectRoot() copies these into the project root during
265
- // execution. If they remain as untracked files when we attempt
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
266
291
  // `git merge --squash`, git rejects the merge with "local changes would
267
292
  // be overwritten", causing silent data loss (#1738).
268
293
  const syncedDirs = [
@@ -329,6 +354,41 @@ export const isSafeToAutoResolve = (filePath: string): boolean =>
329
354
  * gsd.db in the worktree so it rebuilds from fresh disk state (#853).
330
355
  * Non-fatal — sync failure should never block dispatch.
331
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
+ */
332
392
  export function syncProjectRootToWorktree(
333
393
  projectRoot: string,
334
394
  worktreePath_: string,
@@ -337,8 +397,9 @@ export function syncProjectRootToWorktree(
337
397
  if (!worktreePath_ || !projectRoot || worktreePath_ === projectRoot) return;
338
398
  if (!milestoneId) return;
339
399
 
340
- const prGsd = join(projectRoot, ".gsd");
341
- const wtGsd = join(worktreePath_, ".gsd");
400
+ const contract = resolveGsdPathContract(worktreePath_, projectRoot);
401
+ const prGsd = contract.projectGsd;
402
+ const wtGsd = contract.worktreeGsd ?? join(worktreePath_, ".gsd");
342
403
 
343
404
  // When .gsd is a symlink to the same external directory in both locations,
344
405
  // cpSync rejects the copy because source === destination (ERR_FS_CP_EINVAL).
@@ -347,7 +408,7 @@ export function syncProjectRootToWorktree(
347
408
 
348
409
  // Copy milestone directory from project root to worktree — additive only.
349
410
  // force:false prevents cpSync from overwriting existing worktree files.
350
- // Without this, worktree-authoritative files (e.g. VALIDATION.md written
411
+ // Without this, worktree-local files (e.g. VALIDATION.md written
351
412
  // by validate-milestone) get clobbered by stale project root copies,
352
413
  // causing an infinite re-validation loop (#1886).
353
414
  safeCopyRecursive(
@@ -357,7 +418,7 @@ export function syncProjectRootToWorktree(
357
418
  );
358
419
 
359
420
  // Force-sync ASSESSMENT files that have a verdict from project root (#2821).
360
- // The additive-only copy above preserves worktree-authoritative files, but
421
+ // The additive-only copy above preserves worktree-local files, but
361
422
  // ASSESSMENT files are special: after run-uat writes a verdict and post-unit
362
423
  // syncs it to the project root, the worktree may retain a stale copy (e.g.
363
424
  // verdict:fail while the project root has verdict:pass from a retry). On
@@ -378,11 +439,9 @@ export function syncProjectRootToWorktree(
378
439
  { force: true },
379
440
  );
380
441
 
381
- // Delete worktree gsd.db ONLY if it is empty (0 bytes).
382
- // An empty DB is stale/corrupt and should be rebuilt (#853).
383
- // A non-empty DB was populated by gsd-migrate on respawn and must be
384
- // preserved — deleting it truncates the file to 0 bytes when
385
- // 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.
386
445
  try {
387
446
  const wtDb = join(wtGsd, "gsd.db");
388
447
  let deleteSidecars = false;
@@ -416,10 +475,43 @@ export function syncProjectRootToWorktree(
416
475
  }
417
476
 
418
477
  /**
419
- * Sync dispatch-critical .gsd/ state files from worktree to project root.
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.
420
509
  * Only runs when inside an auto-worktree (worktreePath differs from projectRoot).
421
- * Copies: STATE.md + active milestone directory (roadmap, slice plans, task summaries).
510
+ * DB/project-root state remains authoritative; markdown projections are not
511
+ * copied from the worktree back to the project root.
422
512
  * Non-fatal — sync failure should never block dispatch.
513
+ * @deprecated Use syncStateToProjectRootByScope instead.
514
+ * TODO(C-future): remove once all callers migrated.
423
515
  */
424
516
  export function syncStateToProjectRoot(
425
517
  worktreePath_: string,
@@ -429,31 +521,25 @@ export function syncStateToProjectRoot(
429
521
  if (!worktreePath_ || !projectRoot || worktreePath_ === projectRoot) return;
430
522
  if (!milestoneId) return;
431
523
 
432
- const wtGsd = join(worktreePath_, ".gsd");
433
- const prGsd = join(projectRoot, ".gsd");
524
+ const contract = resolveGsdPathContract(worktreePath_, projectRoot);
525
+ const wtGsd = contract.worktreeGsd ?? join(worktreePath_, ".gsd");
526
+ const prGsd = contract.projectGsd;
434
527
 
435
528
  // When .gsd is a symlink to the same external directory in both locations,
436
529
  // cpSync rejects the copy because source === destination (ERR_FS_CP_EINVAL).
437
530
  // Compare realpaths and skip when they resolve to the same physical path (#2184).
438
531
  if (isSamePath(wtGsd, prGsd)) return;
439
532
 
440
- // 1. STATE.md the quick-glance status used by initial deriveState()
441
- safeCopy(join(wtGsd, "STATE.md"), join(prGsd, "STATE.md"), { force: true });
442
-
443
- // 2. Milestone directory — ROADMAP, slice PLANs, task summaries
444
- // Copy the entire milestone .gsd subtree so deriveState reads current checkboxes
445
- safeCopyRecursive(
446
- join(wtGsd, "milestones", milestoneId),
447
- join(prGsd, "milestones", milestoneId),
448
- { force: true },
449
- );
450
-
451
- // 3. metrics.json — session cost/token tracking (#2313).
533
+ // metrics.jsonsession cost/token tracking (#2313).
452
534
  // Without this, metrics accumulated in the worktree are invisible from the
453
535
  // project root and never appear in the dashboard or skill-health reports.
454
536
  safeCopy(join(wtGsd, "metrics.json"), join(prGsd, "metrics.json"), { force: true });
455
537
 
456
- // 4. Runtime records unit dispatch state used by selfHealRuntimeRecords().
538
+ // completed-units.jsonruntime 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().
457
543
  // Without this, a crash during a unit leaves the runtime record only in the
458
544
  // worktree. If the next session resolves basePath before worktree re-entry,
459
545
  // selfHeal can't find or clear the stale record (#769).
@@ -473,7 +559,7 @@ export function syncStateToProjectRoot(
473
559
  */
474
560
  export function readResourceVersion(): string | null {
475
561
  const agentDir =
476
- process.env.GSD_CODING_AGENT_DIR || join(gsdHome, "agent");
562
+ process.env.GSD_CODING_AGENT_DIR || join(gsdHome(), "agent");
477
563
  const manifestPath = join(agentDir, "managed-resources.json");
478
564
  try {
479
565
  const manifest = JSON.parse(readFileSync(manifestPath, "utf-8"));
@@ -536,9 +622,9 @@ export function escapeStaleWorktree(base: string): string {
536
622
  // the string-slice heuristic matched the wrong /.gsd/ boundary. This happens
537
623
  // when .gsd is a symlink into ~/.gsd/projects/<hash> and process.cwd()
538
624
  // resolved through the symlink. Returning ~ would be catastrophic (#1676).
539
- const candidateGsd = join(projectRoot, ".gsd").replaceAll("\\", "/");
540
- const gsdHomePath = gsdHome.replaceAll("\\", "/");
541
- if (candidateGsd === gsdHomePath || candidateGsd.startsWith(gsdHomePath + "/")) {
625
+ const candidateGsd = normalizeWorktreePathForCompare(join(projectRoot, ".gsd"));
626
+ const gsdHomeNorm = normalizeWorktreePathForCompare(gsdHome());
627
+ if (candidateGsd === gsdHomeNorm || candidateGsd.startsWith(gsdHomeNorm + "/")) {
542
628
  // Don't chdir to home — return base unchanged.
543
629
  // resolveProjectRoot() in worktree.ts has the full git-file-based recovery
544
630
  // and will be called by the caller (startAuto → projectRoot()).
@@ -573,6 +659,27 @@ export function cleanStaleRuntimeUnits(
573
659
  try {
574
660
  for (const file of readdirSync(runtimeUnitsDir)) {
575
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
+ }
576
683
  const midMatch = file.match(/(M\d+(?:-[a-z0-9]{6})?)/);
577
684
  if (!midMatch) continue;
578
685
  if (hasMilestoneSummary(midMatch[1])) {
@@ -594,6 +701,30 @@ export function cleanStaleRuntimeUnits(
594
701
 
595
702
  // ─── Worktree ↔ Main Repo Sync (#1311) ──────────────────────────────────────
596
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
+
597
728
  /**
598
729
  * Sync .gsd/ state from the main repo into the worktree.
599
730
  *
@@ -605,15 +736,19 @@ export function cleanStaleRuntimeUnits(
605
736
  * missing milestones, CONTEXT, ROADMAP, DECISIONS, REQUIREMENTS, and
606
737
  * PROJECT files from the main repo's .gsd/ into the worktree's .gsd/.
607
738
  *
608
- * Only adds missing content — never overwrites existing files in the worktree
609
- * (the worktree's execution state is authoritative for in-progress work).
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.
610
744
  */
611
745
  export function syncGsdStateToWorktree(
612
746
  mainBasePath: string,
613
747
  worktreePath_: string,
614
748
  ): { synced: string[] } {
615
- const mainGsd = gsdRoot(mainBasePath);
616
- const wtGsd = gsdRoot(worktreePath_);
749
+ const contract = resolveGsdPathContract(worktreePath_, mainBasePath);
750
+ const mainGsd = contract.projectGsd;
751
+ const wtGsd = contract.worktreeGsd ?? join(worktreePath_, ".gsd");
617
752
  const synced: string[] = [];
618
753
 
619
754
  // If both resolve to the same directory (symlink), no sync needed
@@ -757,32 +892,26 @@ export function syncGsdStateToWorktree(
757
892
  }
758
893
 
759
894
  /**
760
- * Sync milestone artifacts from worktree back to the main external state directory.
761
- * Called before milestone merge to ensure completion artifacts (SUMMARY, VALIDATION,
762
- * updated ROADMAP) are visible from the project root (#1412).
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.
763
898
  *
764
899
  * Syncs:
765
- * 1. Root-level .gsd/ files (REQUIREMENTS, PROJECT, DECISIONS, KNOWLEDGE,
766
- * OVERRIDES) the worktree's versions overwrite main's because the
767
- * worktree is the authoritative execution context.
768
- * 2. ALL milestone directories found in the worktree — not just the
769
- * current milestoneId. The complete-milestone unit may create artifacts
770
- * for the *next* milestone (CONTEXT, ROADMAP, new requirements) which
771
- * 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.
772
902
  *
773
- * History: Originally only synced milestones/<milestoneId>/ and assumed
774
- * root-level files would be carried by the squash merge. In practice,
775
- * .gsd/ files are often untracked (gitignored or never committed), so the
776
- * squash merge carries nothing. This caused next-milestone artifacts and
777
- * 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.
778
906
  */
779
907
  export function syncWorktreeStateBack(
780
908
  mainBasePath: string,
781
909
  worktreePath: string,
782
910
  milestoneId: string,
783
911
  ): { synced: string[] } {
784
- const mainGsd = gsdRoot(mainBasePath);
785
- const wtGsd = gsdRoot(worktreePath);
912
+ const contract = resolveGsdPathContract(worktreePath, mainBasePath);
913
+ const mainGsd = contract.projectGsd;
914
+ const wtGsd = contract.worktreeGsd ?? join(worktreePath, ".gsd");
786
915
  const synced: string[] = [];
787
916
 
788
917
  // If both resolve to the same directory (symlink), no sync needed
@@ -796,7 +925,7 @@ export function syncWorktreeStateBack(
796
925
  // files. This handles in-flight worktrees that were created before the
797
926
  // upgrade to shared WAL mode.
798
927
  const wtLocalDb = join(wtGsd, "gsd.db");
799
- const mainDb = join(mainGsd, "gsd.db");
928
+ const mainDb = contract.projectDb;
800
929
  if (existsSync(wtLocalDb) && existsSync(mainDb)) {
801
930
  try {
802
931
  reconcileWorktreeDb(mainDb, wtLocalDb);
@@ -807,13 +936,10 @@ export function syncWorktreeStateBack(
807
936
  }
808
937
  }
809
938
 
810
- // ── 1. Sync root-level .gsd/ files back ──────────────────────────────
811
- // The worktree is authoritative — complete-milestone updates REQUIREMENTS,
812
- // PROJECT, etc. These must overwrite main's copies so they survive teardown.
813
- // Also includes QUEUE.md, completed-units.json, and metrics.json which are
814
- // written during milestone closeout and lost on teardown without explicit sync
815
- // (#1787, #2313).
816
- 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) {
817
943
  const src = join(wtGsd, f);
818
944
  const dst = join(mainGsd, f);
819
945
  if (existsSync(src)) {
@@ -827,105 +953,8 @@ export function syncWorktreeStateBack(
827
953
  }
828
954
  }
829
955
 
830
- // ── 2. Sync ALL milestone directories ────────────────────────────────
831
- // The complete-milestone unit may create next-milestone artifacts (e.g.
832
- // M007 setup while closing M006). We must sync every milestone directory
833
- // in the worktree, not just the current one.
834
- const wtMilestonesDir = join(wtGsd, "milestones");
835
- if (!existsSync(wtMilestonesDir)) return { synced };
836
-
837
- try {
838
- const wtMilestones = readdirSync(wtMilestonesDir, { withFileTypes: true })
839
- .filter((d) => d.isDirectory())
840
- .map((d) => d.name);
841
-
842
- for (const mid of wtMilestones) {
843
- // Skip the current milestone being merged — its files are already in the
844
- // milestone branch and would conflict with the squash merge (#3641).
845
- if (mid === milestoneId) continue;
846
- syncMilestoneDir(wtGsd, mainGsd, mid, synced);
847
- }
848
- } catch (err) {
849
- /* non-fatal */
850
- logWarning("worktree", `milestone sync-back failed: ${err instanceof Error ? err.message : String(err)}`);
851
- }
852
-
853
956
  return { synced };
854
957
  }
855
-
856
- /**
857
- * Sync a single milestone directory from worktree to main.
858
- * Copies milestone-level .md files, slice-level files, and task summaries.
859
- */
860
- /** Copy matching files from srcDir to dstDir (non-fatal per file). */
861
- function syncDirFiles(
862
- srcDir: string,
863
- dstDir: string,
864
- filter: (name: string) => boolean,
865
- synced: string[],
866
- prefix: string,
867
- ): void {
868
- try {
869
- for (const entry of readdirSync(srcDir, { withFileTypes: true })) {
870
- if (!entry.isFile() || !filter(entry.name)) continue;
871
- try {
872
- cpSync(join(srcDir, entry.name), join(dstDir, entry.name), { force: true });
873
- synced.push(`${prefix}${entry.name}`);
874
- } catch (err) {
875
- /* non-fatal */
876
- logWarning("worktree", `file copy failed (${prefix}${entry.name}): ${err instanceof Error ? err.message : String(err)}`);
877
- }
878
- }
879
- } catch (err) {
880
- /* non-fatal — srcDir may not be readable */
881
- logWarning("worktree", `directory read failed: ${err instanceof Error ? err.message : String(err)}`);
882
- }
883
- }
884
-
885
- function syncMilestoneDir(
886
- wtGsd: string,
887
- mainGsd: string,
888
- mid: string,
889
- synced: string[],
890
- ): void {
891
- const wtMilestoneDir = join(wtGsd, "milestones", mid);
892
- const mainMilestoneDir = join(mainGsd, "milestones", mid);
893
-
894
- if (!existsSync(wtMilestoneDir)) return;
895
- mkdirSync(mainMilestoneDir, { recursive: true });
896
-
897
- const isMd = (name: string): boolean => name.endsWith(".md");
898
-
899
- // Sync milestone-level files (SUMMARY, VALIDATION, ROADMAP, CONTEXT)
900
- syncDirFiles(wtMilestoneDir, mainMilestoneDir, isMd, synced, `milestones/${mid}/`);
901
-
902
- // Sync slice-level files (summaries, UATs) and task summaries (#1678)
903
- const wtSlicesDir = join(wtMilestoneDir, "slices");
904
- const mainSlicesDir = join(mainMilestoneDir, "slices");
905
- if (!existsSync(wtSlicesDir)) return;
906
-
907
- try {
908
- for (const sliceEntry of readdirSync(wtSlicesDir, { withFileTypes: true })) {
909
- if (!sliceEntry.isDirectory()) continue;
910
- const sid = sliceEntry.name;
911
- const wtSliceDir = join(wtSlicesDir, sid);
912
- const mainSliceDir = join(mainSlicesDir, sid);
913
- mkdirSync(mainSliceDir, { recursive: true });
914
-
915
- syncDirFiles(wtSliceDir, mainSliceDir, isMd, synced, `milestones/${mid}/slices/${sid}/`);
916
-
917
- const wtTasksDir = join(wtSliceDir, "tasks");
918
- const mainTasksDir = join(mainSliceDir, "tasks");
919
- if (existsSync(wtTasksDir)) {
920
- mkdirSync(mainTasksDir, { recursive: true });
921
- syncDirFiles(wtTasksDir, mainTasksDir, isMd, synced, `milestones/${mid}/slices/${sid}/tasks/`);
922
- }
923
- }
924
- } catch (err) {
925
- /* non-fatal */
926
- logWarning("worktree", `milestone slice sync failed (${mid}): ${err instanceof Error ? err.message : String(err)}`);
927
- }
928
- }
929
958
  // ─── Worktree Post-Create Hook (#597) ────────────────────────────────────────
930
959
 
931
960
  /**
@@ -990,6 +1019,12 @@ export function autoWorktreeBranch(milestoneId: string): string {
990
1019
  return `milestone/${milestoneId}`;
991
1020
  }
992
1021
 
1022
+ function normalizeLocalBranchRef(branch: string): string {
1023
+ return branch.startsWith("refs/heads/")
1024
+ ? branch.slice("refs/heads/".length)
1025
+ : branch;
1026
+ }
1027
+
993
1028
  // ─── Branch-mode Entry ─────────────────────────────────────────────────────
994
1029
 
995
1030
  /**
@@ -1105,10 +1140,43 @@ export function enterBranchModeForMilestone(
1105
1140
  * directory at the project root and apply any [x] checkbox states that are
1106
1141
  * ahead of the worktree version (forward-only: never downgrade [x] → [ ]).
1107
1142
  *
1108
- * This is safe because syncStateToProjectRoot() is the authoritative source
1109
- * of post-task state at the project root it writes the same [x] the LLM
1110
- * produced, then the auto-commit follows. If the commit never happened, the
1111
- * filesystem copy is still valid and correct.
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.
1112
1180
  */
1113
1181
  function reconcilePlanCheckboxes(
1114
1182
  projectRoot: string,
@@ -1196,6 +1264,18 @@ export function createAutoWorktree(
1196
1264
  basePath: string,
1197
1265
  milestoneId: string,
1198
1266
  ): string {
1267
+ basePath = resolveWorktreeProjectRoot(basePath);
1268
+
1269
+ // Check if repo has commits — git worktree requires a valid HEAD
1270
+ try {
1271
+ execFileSync("git", ["rev-parse", "--verify", "HEAD"], { cwd: basePath, stdio: "pipe" });
1272
+ } catch {
1273
+ throw new GSDError(
1274
+ GSD_GIT_ERROR,
1275
+ `Cannot create worktree: repository has no commits yet. Worktree isolation requires at least one commit.`,
1276
+ );
1277
+ }
1278
+
1199
1279
  const branch = autoWorktreeBranch(milestoneId);
1200
1280
 
1201
1281
  // Check if the milestone branch already exists — it survives auto-mode
@@ -1222,7 +1302,14 @@ export function createAutoWorktree(
1222
1302
  const integrationBranch =
1223
1303
  readIntegrationBranch(basePath, milestoneId) ?? undefined;
1224
1304
  const gitPrefs = loadEffectiveGSDPreferences()?.preferences?.git;
1225
- const startPoint = integrationBranch ?? gitPrefs?.main_branch ?? undefined;
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;
1226
1313
  info = createWorktree(basePath, milestoneId, {
1227
1314
  branch,
1228
1315
  startPoint,
@@ -1267,10 +1354,10 @@ export function createAutoWorktree(
1267
1354
 
1268
1355
  try {
1269
1356
  process.chdir(info.path);
1270
- originalBase = basePath;
1357
+ setActiveWorkspace(createWorkspace(basePath));
1271
1358
  } catch (err) {
1272
1359
  // If chdir fails, the worktree was created but we couldn't enter it.
1273
- // Don't store originalBase -- caller can retry or clean up.
1360
+ // Don't set activeWorkspace -- caller can retry or clean up.
1274
1361
  throw new GSDError(
1275
1362
  GSD_IO_ERROR,
1276
1363
  `Auto-worktree created at ${info.path} but chdir failed: ${err instanceof Error ? err.message : String(err)}`,
@@ -1345,67 +1432,121 @@ export function teardownAutoWorktree(
1345
1432
  milestoneId: string,
1346
1433
  opts: { preserveBranch?: boolean } = {},
1347
1434
  ): void {
1435
+ originalBasePath = resolveWorktreeProjectRoot(originalBasePath);
1436
+
1348
1437
  const branch = autoWorktreeBranch(milestoneId);
1349
1438
  const { preserveBranch = false } = opts;
1350
1439
  const previousCwd = process.cwd();
1351
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).
1352
1445
  try {
1353
- process.chdir(originalBasePath);
1354
- originalBase = null;
1355
- } catch (err) {
1356
- throw new GSDError(
1357
- GSD_IO_ERROR,
1358
- `Failed to chdir back to ${originalBasePath} during teardown: ${err instanceof Error ? err.message : String(err)}`,
1359
- );
1360
- }
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
+ }
1361
1454
 
1362
- nudgeGitBranchCache(previousCwd);
1363
- removeWorktree(originalBasePath, milestoneId, {
1364
- branch,
1365
- deleteBranch: !preserveBranch,
1366
- });
1455
+ // Mirror cleanup steps from mergeMilestoneToMain abort path:
1367
1456
 
1368
- // Verify cleanup succeeded warn if the worktree directory is still on disk.
1369
- // On Windows, bash-based cleanup can silently fail when paths contain
1370
- // backslashes (#1436), leaving ~1 GB+ orphaned directories.
1371
- const wtDir = worktreePath(originalBasePath, milestoneId);
1372
- if (existsSync(wtDir)) {
1373
- logWarning(
1374
- "reconcile",
1375
- `Worktree directory still exists after teardown: ${wtDir}. ` +
1376
- `This is likely an orphaned directory consuming disk space. ` +
1377
- `Remove it manually with: rm -rf "${wtDir.replaceAll("\\", "/")}"`,
1378
- { worktree: milestoneId },
1379
- );
1380
- // Attempt a direct filesystem removal as a fallback — but ONLY if the
1381
- // path is safely inside .gsd/worktrees/ to prevent #2365 data loss.
1382
- 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()) {
1383
1468
  try {
1384
- rmSync(wtDir, { recursive: true, force: true });
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
+ }
1385
1475
  } catch (err) {
1386
- // Non-fatal — the warning above tells the user how to clean up
1387
- logWarning("worktree", `worktree directory removal failed: ${err instanceof Error ? err.message : String(err)}`);
1476
+ /* non-fatal */
1477
+ logError("worktree", `DB reconciliation failed during teardown: ${err instanceof Error ? err.message : String(err)}`);
1388
1478
  }
1389
- } else {
1390
- console.error(
1391
- `[GSD] REFUSING fallback rmSync — path is outside .gsd/worktrees/: ${wtDir}`,
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 },
1392
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
+ }
1393
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);
1394
1522
  }
1395
1523
  }
1396
1524
 
1397
1525
  /**
1398
1526
  * Detect if the process is currently inside an auto-worktree.
1399
- * Checks both module state and git branch prefix.
1527
+ * Uses the current directory structure plus git branch prefix so detection
1528
+ * still works after process restart when module state has been reset.
1400
1529
  */
1401
1530
  export function isInAutoWorktree(basePath: string): boolean {
1402
- if (!originalBase) return false;
1403
- const cwd = process.cwd();
1404
- const resolvedBase = existsSync(basePath) ? realpathSync(basePath) : basePath;
1405
- const wtDir = join(resolvedBase, ".gsd", "worktrees");
1406
- if (!cwd.startsWith(wtDir)) return false;
1407
- const branch = nativeGetCurrentBranch(cwd);
1408
- return branch.startsWith("milestone/");
1531
+ const targetPath = isGsdWorktreePath(basePath) ? basePath : process.cwd();
1532
+ if (!isGsdWorktreePath(targetPath)) return false;
1533
+
1534
+ const storedBase = getAutoWorktreeOriginalBase();
1535
+ const projectRoot = resolveWorktreeProjectRoot(basePath, storedBase);
1536
+ const targetProjectRoot = resolveWorktreeProjectRoot(targetPath, storedBase);
1537
+ if (
1538
+ normalizeWorktreePathForCompare(projectRoot) !==
1539
+ normalizeWorktreePathForCompare(targetProjectRoot)
1540
+ ) {
1541
+ return false;
1542
+ }
1543
+
1544
+ try {
1545
+ const branch = nativeGetCurrentBranch(targetPath);
1546
+ return branch.startsWith("milestone/");
1547
+ } catch {
1548
+ return false;
1549
+ }
1409
1550
  }
1410
1551
 
1411
1552
  /**
@@ -1420,6 +1561,8 @@ export function getAutoWorktreePath(
1420
1561
  basePath: string,
1421
1562
  milestoneId: string,
1422
1563
  ): string | null {
1564
+ basePath = resolveWorktreeProjectRoot(basePath);
1565
+
1423
1566
  const p = worktreePath(basePath, milestoneId);
1424
1567
  if (!existsSync(p)) return null;
1425
1568
 
@@ -1448,6 +1591,8 @@ export function enterAutoWorktree(
1448
1591
  basePath: string,
1449
1592
  milestoneId: string,
1450
1593
  ): string {
1594
+ basePath = resolveWorktreeProjectRoot(basePath);
1595
+
1451
1596
  const p = worktreePath(basePath, milestoneId);
1452
1597
  if (!existsSync(p)) {
1453
1598
  throw new GSDError(
@@ -1484,7 +1629,7 @@ export function enterAutoWorktree(
1484
1629
 
1485
1630
  try {
1486
1631
  process.chdir(p);
1487
- originalBase = basePath;
1632
+ setActiveWorkspace(createWorkspace(basePath));
1488
1633
  } catch (err) {
1489
1634
  throw new GSDError(
1490
1635
  GSD_IO_ERROR,
@@ -1501,7 +1646,11 @@ export function enterAutoWorktree(
1501
1646
  * Returns null if not currently in an auto-worktree.
1502
1647
  */
1503
1648
  export function getAutoWorktreeOriginalBase(): string | null {
1504
- return originalBase;
1649
+ return getActiveWorkspace()?.projectRoot ?? null;
1650
+ }
1651
+
1652
+ export function _resetAutoWorktreeOriginalBaseForTests(): void {
1653
+ setActiveWorkspace(null);
1505
1654
  }
1506
1655
 
1507
1656
  export function getActiveAutoWorktreeContext(): {
@@ -1509,13 +1658,18 @@ export function getActiveAutoWorktreeContext(): {
1509
1658
  worktreeName: string;
1510
1659
  branch: string;
1511
1660
  } | null {
1512
- if (!originalBase) return null;
1661
+ const ws = getActiveWorkspace();
1662
+ if (!ws) return null;
1663
+ const originalBase = ws.projectRoot;
1513
1664
  const cwd = process.cwd();
1514
- const resolvedBase = existsSync(originalBase)
1515
- ? realpathSync(originalBase)
1516
- : originalBase;
1517
- const wtDir = join(resolvedBase, ".gsd", "worktrees");
1518
- if (!cwd.startsWith(wtDir)) return null;
1665
+ if (!isGsdWorktreePath(cwd)) return null;
1666
+ const cwdProjectRoot = resolveWorktreeProjectRoot(cwd, originalBase);
1667
+ if (
1668
+ normalizeWorktreePathForCompare(cwdProjectRoot) !==
1669
+ normalizeWorktreePathForCompare(originalBase)
1670
+ ) {
1671
+ return null;
1672
+ }
1519
1673
  const worktreeName = detectWorktreeName(cwd);
1520
1674
  if (!worktreeName) return null;
1521
1675
  const branch = nativeGetCurrentBranch(cwd);
@@ -1545,7 +1699,10 @@ function autoCommitDirtyState(cwd: string): boolean {
1545
1699
  return result !== null;
1546
1700
  } catch (e) {
1547
1701
  debugLog("autoCommitDirtyState", { error: String(e) });
1548
- return false;
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
+ );
1549
1706
  }
1550
1707
  }
1551
1708
 
@@ -1584,11 +1741,11 @@ export function mergeMilestoneToMain(
1584
1741
  // integration branch captures dirty files from OTHER milestones under a
1585
1742
  // misleading commit message, contaminating the main branch (#2929).
1586
1743
  //
1587
- // When originalBase is null (branch mode, no worktree), autoCommitDirtyState
1744
+ // When activeWorkspace is null (branch mode, no worktree), autoCommitDirtyState
1588
1745
  // runs unconditionally — the caller is responsible for cwd placement.
1589
1746
  {
1590
1747
  let shouldAutoCommit = true;
1591
- if (originalBase !== null) {
1748
+ if (getActiveWorkspace() !== null) {
1592
1749
  try {
1593
1750
  const currentBranch = nativeGetCurrentBranch(worktreeCwd);
1594
1751
  shouldAutoCommit = currentBranch === milestoneBranch;
@@ -1608,9 +1765,10 @@ export function mergeMilestoneToMain(
1608
1765
  // database (#2823).
1609
1766
  if (isDbAvailable()) {
1610
1767
  try {
1611
- const worktreeDbPath = join(worktreeCwd, ".gsd", "gsd.db");
1612
- const mainDbPath = join(originalBasePath_, ".gsd", "gsd.db");
1613
- if (!isSamePath(worktreeDbPath, mainDbPath)) {
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)) {
1614
1772
  reconcileWorktreeDb(mainDbPath, worktreeDbPath);
1615
1773
  }
1616
1774
  } catch (err) {
@@ -1636,6 +1794,10 @@ export function mergeMilestoneToMain(
1636
1794
  }
1637
1795
 
1638
1796
  // 3. chdir to original base
1797
+ // Note: previousCwd captures the cwd at this point — i.e. the worktree cwd
1798
+ // entering the function. Subsequent throws restore to previousCwd, leaving
1799
+ // the caller in worktree-cwd; callers (worktree-resolver) are responsible
1800
+ // for any further cwd movement on the error path.
1639
1801
  const previousCwd = process.cwd();
1640
1802
  process.chdir(originalBasePath_);
1641
1803
 
@@ -1656,6 +1818,24 @@ export function mergeMilestoneToMain(
1656
1818
  const mainBranch =
1657
1819
  integrationBranch ?? validatedPrefBranch ?? nativeDetectMainBranch(originalBasePath_);
1658
1820
 
1821
+ // Fail closed when the resolved integration branch is the milestone branch
1822
+ // itself (#5024). Stale or corrupt metadata (e.g. integrationBranch recorded
1823
+ // as "milestone/<MID>") would otherwise let the squash merge resolve to a
1824
+ // self-merge: nothing-to-commit + empty self-diff in the post-merge safety
1825
+ // check (#1792) collapse to a false success, and the worktree-resolver
1826
+ // emits worktree-merged for work that never landed on a distinct
1827
+ // integration branch.
1828
+ if (normalizeLocalBranchRef(mainBranch) === milestoneBranch) {
1829
+ process.chdir(previousCwd);
1830
+ throw new GSDError(
1831
+ GSD_GIT_ERROR,
1832
+ `Resolved integration branch "${mainBranch}" is the same ref as milestone branch ` +
1833
+ `"${milestoneBranch}" — refusing to self-merge. Integration branch metadata is invalid; ` +
1834
+ `set a distinct main_branch in GSD preferences or repair the milestone integration record ` +
1835
+ `before retrying milestone completion.`,
1836
+ );
1837
+ }
1838
+
1659
1839
  // Remove transient project-root state files before any branch or merge
1660
1840
  // operation. Untracked milestone metadata can otherwise block squash merges.
1661
1841
  clearProjectRootStateFiles(originalBasePath_, milestoneId);
@@ -2190,7 +2370,7 @@ export function mergeMilestoneToMain(
2190
2370
 
2191
2371
  // 10. Auto-push if enabled
2192
2372
  let pushed = false;
2193
- if (prefs.auto_push === true && !nothingToCommit) {
2373
+ if (prefs.auto_push === true && prefs.auto_pr !== true && !nothingToCommit) {
2194
2374
  const remote = prefs.remote ?? "origin";
2195
2375
  try {
2196
2376
  execFileSync("git", ["push", remote, mainBranch], {
@@ -2241,9 +2421,10 @@ export function mergeMilestoneToMain(
2241
2421
  // through when the code is genuinely already on the integration branch.
2242
2422
 
2243
2423
  // 11a. Pre-teardown safety net (#1853): if the worktree still has uncommitted
2244
- // changes (e.g. nativeHasChanges cache returned stale false, or auto-commit
2245
- // silently failed), force one final commit so code is not destroyed by
2246
- // `git worktree remove --force`.
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.
2247
2428
  //
2248
2429
  // Guard: only run when worktreeCwd is on the milestone branch (#2929).
2249
2430
  // In parallel mode or branch-mode merges, worktreeCwd may be the project
@@ -2262,17 +2443,17 @@ export function mergeMilestoneToMain(
2262
2443
  try {
2263
2444
  const dirtyCheck = nativeWorkingTreeStatus(worktreeCwd);
2264
2445
  if (dirtyCheck) {
2265
- debugLog("mergeMilestoneToMain", {
2266
- phase: "pre-teardown-dirty",
2267
- worktreeCwd,
2268
- status: dirtyCheck.slice(0, 200),
2269
- });
2270
- nativeAddAllWithExclusions(worktreeCwd, RUNTIME_EXCLUSION_PATHS);
2271
- 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
+ );
2272
2452
  }
2273
2453
  } catch (e) {
2454
+ if (e instanceof GSDError) throw e;
2274
2455
  debugLog("mergeMilestoneToMain", {
2275
- phase: "pre-teardown-commit-error",
2456
+ phase: "pre-teardown-dirty-check-error",
2276
2457
  error: String(e),
2277
2458
  });
2278
2459
  }
@@ -2299,8 +2480,23 @@ export function mergeMilestoneToMain(
2299
2480
  }
2300
2481
 
2301
2482
  // 14. Clear module state
2302
- originalBase = null;
2483
+ setActiveWorkspace(null);
2303
2484
  nudgeGitBranchCache(previousCwd);
2304
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
+
2305
2501
  return { commitMessage, pushed, prCreated, codeFilesChanged };
2306
2502
  }