gsd-pi 2.78.1-dev.0fdacd524 → 2.78.1-dev.2d3fd6e71

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