gsd-pi 2.78.0 → 2.78.1-dev.2d3fd6e71

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