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