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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1380) hide show
  1. package/README.md +15 -7
  2. package/dist/cli-auto-routing.d.ts +1 -0
  3. package/dist/cli-auto-routing.js +5 -0
  4. package/dist/cli.js +5 -14
  5. package/dist/headless-recover.d.ts +23 -0
  6. package/dist/headless-recover.js +93 -0
  7. package/dist/headless.js +9 -0
  8. package/dist/help-text.js +1 -0
  9. package/dist/loader.js +15 -3
  10. package/dist/resource-loader.js +26 -17
  11. package/dist/resources/.managed-resources-content-hash +1 -1
  12. package/dist/resources/GSD-WORKFLOW.md +29 -42
  13. package/dist/resources/extensions/async-jobs/job-manager.js +4 -0
  14. package/dist/resources/extensions/bg-shell/bg-shell-lifecycle.js +3 -2
  15. package/dist/resources/extensions/bg-shell/utilities.js +2 -1
  16. package/dist/resources/extensions/browser-tools/tools/intent.js +8 -1
  17. package/dist/resources/extensions/claude-code-cli/stream-adapter.js +22 -8
  18. package/dist/resources/extensions/github-sync/cli.js +3 -0
  19. package/dist/resources/extensions/github-sync/sync.js +86 -58
  20. package/dist/resources/extensions/gsd/auto/phases.js +87 -23
  21. package/dist/resources/extensions/gsd/auto/session.js +6 -0
  22. package/dist/resources/extensions/gsd/auto-artifact-paths.js +49 -31
  23. package/dist/resources/extensions/gsd/auto-dashboard.js +13 -2
  24. package/dist/resources/extensions/gsd/auto-direct-dispatch.js +2 -0
  25. package/dist/resources/extensions/gsd/auto-dispatch.js +238 -90
  26. package/dist/resources/extensions/gsd/auto-post-unit.js +108 -46
  27. package/dist/resources/extensions/gsd/auto-prompts.js +76 -6
  28. package/dist/resources/extensions/gsd/auto-recovery.js +69 -15
  29. package/dist/resources/extensions/gsd/auto-start.js +54 -64
  30. package/dist/resources/extensions/gsd/auto-timeout-recovery.js +18 -0
  31. package/dist/resources/extensions/gsd/auto-timers.js +24 -4
  32. package/dist/resources/extensions/gsd/auto-worktree.js +318 -212
  33. package/dist/resources/extensions/gsd/auto.js +112 -18
  34. package/dist/resources/extensions/gsd/bootstrap/agent-end-recovery.js +21 -3
  35. package/dist/resources/extensions/gsd/bootstrap/db-tools.js +40 -7
  36. package/dist/resources/extensions/gsd/bootstrap/dynamic-tools.js +9 -77
  37. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +94 -17
  38. package/dist/resources/extensions/gsd/bootstrap/system-context.js +3 -4
  39. package/dist/resources/extensions/gsd/bootstrap/write-gate.js +142 -63
  40. package/dist/resources/extensions/gsd/branch-patterns.js +3 -3
  41. package/dist/resources/extensions/gsd/commands/catalog.js +7 -6
  42. package/dist/resources/extensions/gsd/commands/context.js +41 -5
  43. package/dist/resources/extensions/gsd/commands/dispatcher.js +11 -5
  44. package/dist/resources/extensions/gsd/commands/handlers/auto.js +2 -1
  45. package/dist/resources/extensions/gsd/commands/handlers/core.js +2 -0
  46. package/dist/resources/extensions/gsd/commands/handlers/ops.js +5 -0
  47. package/dist/resources/extensions/gsd/commands/handlers/workflow.js +24 -2
  48. package/dist/resources/extensions/gsd/commands-bootstrap.js +6 -0
  49. package/dist/resources/extensions/gsd/commands-codebase.js +2 -1
  50. package/dist/resources/extensions/gsd/commands-config.js +3 -3
  51. package/dist/resources/extensions/gsd/commands-debug.js +22 -1
  52. package/dist/resources/extensions/gsd/commands-eval-review.js +534 -0
  53. package/dist/resources/extensions/gsd/commands-extensions.js +4 -4
  54. package/dist/resources/extensions/gsd/commands-handlers.js +8 -8
  55. package/dist/resources/extensions/gsd/commands-logs.js +2 -1
  56. package/dist/resources/extensions/gsd/commands-mcp-status.js +2 -2
  57. package/dist/resources/extensions/gsd/commands-scan.js +2 -1
  58. package/dist/resources/extensions/gsd/commands-ship.js +67 -1
  59. package/dist/resources/extensions/gsd/commands-workflow-templates.js +5 -4
  60. package/dist/resources/extensions/gsd/context-budget.js +11 -3
  61. package/dist/resources/extensions/gsd/db-writer.js +150 -92
  62. package/dist/resources/extensions/gsd/deep-project-setup-policy.js +212 -0
  63. package/dist/resources/extensions/gsd/delegation-policy.js +155 -0
  64. package/dist/resources/extensions/gsd/detection.js +7 -7
  65. package/dist/resources/extensions/gsd/dispatch-guard.js +6 -10
  66. package/dist/resources/extensions/gsd/docs/preferences-reference.md +6 -4
  67. package/dist/resources/extensions/gsd/doctor-engine-checks.js +2 -2
  68. package/dist/resources/extensions/gsd/doctor-providers.js +2 -2
  69. package/dist/resources/extensions/gsd/doctor-runtime-checks.js +54 -0
  70. package/dist/resources/extensions/gsd/eval-review-schema.js +208 -0
  71. package/dist/resources/extensions/gsd/forensics.js +10 -4
  72. package/dist/resources/extensions/gsd/git-service.js +74 -4
  73. package/dist/resources/extensions/gsd/gsd-db.js +271 -10
  74. package/dist/resources/extensions/gsd/gsd-home.js +29 -0
  75. package/dist/resources/extensions/gsd/guided-flow-queue.js +1 -1
  76. package/dist/resources/extensions/gsd/guided-flow.js +390 -121
  77. package/dist/resources/extensions/gsd/init-wizard.js +16 -23
  78. package/dist/resources/extensions/gsd/interrupted-session.js +37 -2
  79. package/dist/resources/extensions/gsd/key-manager.js +2 -2
  80. package/dist/resources/extensions/gsd/markdown-renderer.js +59 -66
  81. package/dist/resources/extensions/gsd/metrics.js +287 -1
  82. package/dist/resources/extensions/gsd/migrate/command.js +3 -3
  83. package/dist/resources/extensions/gsd/milestone-scope-classifier.js +10 -8
  84. package/dist/resources/extensions/gsd/native-git-bridge.js +19 -42
  85. package/dist/resources/extensions/gsd/onboarding-state.js +2 -2
  86. package/dist/resources/extensions/gsd/parallel-merge.js +14 -13
  87. package/dist/resources/extensions/gsd/parallel-monitor-overlay.js +5 -2
  88. package/dist/resources/extensions/gsd/paths.js +151 -9
  89. package/dist/resources/extensions/gsd/planning-depth.js +114 -0
  90. package/dist/resources/extensions/gsd/preferences-models.js +18 -1
  91. package/dist/resources/extensions/gsd/preferences-skills.js +2 -1
  92. package/dist/resources/extensions/gsd/preferences-types.js +4 -0
  93. package/dist/resources/extensions/gsd/preferences-validation.js +9 -0
  94. package/dist/resources/extensions/gsd/preferences.js +20 -4
  95. package/dist/resources/extensions/gsd/project-research-policy.js +182 -0
  96. package/dist/resources/extensions/gsd/prompt-loader.js +2 -3
  97. package/dist/resources/extensions/gsd/prompts/complete-slice.md +5 -5
  98. package/dist/resources/extensions/gsd/prompts/execute-task.md +3 -3
  99. package/dist/resources/extensions/gsd/prompts/guided-discuss-milestone.md +8 -1
  100. package/dist/resources/extensions/gsd/prompts/guided-discuss-project.md +148 -0
  101. package/dist/resources/extensions/gsd/prompts/guided-discuss-requirements.md +126 -0
  102. package/dist/resources/extensions/gsd/prompts/guided-discuss-slice.md +8 -1
  103. package/dist/resources/extensions/gsd/prompts/guided-research-decision.md +70 -0
  104. package/dist/resources/extensions/gsd/prompts/guided-research-project.md +120 -0
  105. package/dist/resources/extensions/gsd/prompts/guided-workflow-preferences.md +68 -0
  106. package/dist/resources/extensions/gsd/prompts/plan-milestone.md +8 -2
  107. package/dist/resources/extensions/gsd/prompts/plan-slice.md +9 -7
  108. package/dist/resources/extensions/gsd/prompts/refine-slice.md +1 -1
  109. package/dist/resources/extensions/gsd/prompts/system.md +4 -4
  110. package/dist/resources/extensions/gsd/queue-order.js +6 -1
  111. package/dist/resources/extensions/gsd/repo-identity.js +20 -9
  112. package/dist/resources/extensions/gsd/rethink.js +2 -1
  113. package/dist/resources/extensions/gsd/safety/git-checkpoint.js +8 -1
  114. package/dist/resources/extensions/gsd/schemas/__fixtures__/valid-project.md +26 -0
  115. package/dist/resources/extensions/gsd/schemas/__fixtures__/valid-requirements.md +57 -0
  116. package/dist/resources/extensions/gsd/schemas/__fixtures__/valid-roadmap.md +19 -0
  117. package/dist/resources/extensions/gsd/schemas/parsers.js +276 -0
  118. package/dist/resources/extensions/gsd/schemas/validate.js +364 -0
  119. package/dist/resources/extensions/gsd/skill-telemetry.js +3 -2
  120. package/dist/resources/extensions/gsd/slice-cadence.js +56 -7
  121. package/dist/resources/extensions/gsd/state.js +91 -372
  122. package/dist/resources/extensions/gsd/templates/project.md +10 -0
  123. package/dist/resources/extensions/gsd/token-counter.js +1 -0
  124. package/dist/resources/extensions/gsd/tools/complete-milestone.js +6 -5
  125. package/dist/resources/extensions/gsd/tools/complete-slice.js +7 -12
  126. package/dist/resources/extensions/gsd/tools/complete-task.js +19 -31
  127. package/dist/resources/extensions/gsd/tools/plan-slice.js +6 -5
  128. package/dist/resources/extensions/gsd/tools/validate-milestone.js +7 -5
  129. package/dist/resources/extensions/gsd/tools/workflow-tool-executors.js +74 -11
  130. package/dist/resources/extensions/gsd/unit-context-manifest.js +96 -1
  131. package/dist/resources/extensions/gsd/unit-runtime.js +88 -24
  132. package/dist/resources/extensions/gsd/uok/plan-v2.js +14 -1
  133. package/dist/resources/extensions/gsd/user-input-boundary.js +157 -0
  134. package/dist/resources/extensions/gsd/watch/header-renderer.js +2 -1
  135. package/dist/resources/extensions/gsd/workflow-install.js +2 -3
  136. package/dist/resources/extensions/gsd/workflow-manifest.js +2 -1
  137. package/dist/resources/extensions/gsd/workflow-mcp-auto-prep.js +3 -21
  138. package/dist/resources/extensions/gsd/workflow-mcp.js +41 -5
  139. package/dist/resources/extensions/gsd/workflow-migration.js +4 -3
  140. package/dist/resources/extensions/gsd/workflow-plugins.js +3 -5
  141. package/dist/resources/extensions/gsd/workflow-reconcile.js +3 -3
  142. package/dist/resources/extensions/gsd/workflow-templates.js +2 -3
  143. package/dist/resources/extensions/gsd/workspace.js +59 -0
  144. package/dist/resources/extensions/gsd/worktree-command.js +4 -3
  145. package/dist/resources/extensions/gsd/worktree-manager.js +6 -6
  146. package/dist/resources/extensions/gsd/worktree-resolver.js +45 -8
  147. package/dist/resources/extensions/gsd/worktree-root.js +48 -9
  148. package/dist/resources/extensions/gsd/write-intercept.js +3 -3
  149. package/dist/resources/extensions/mcp-client/index.js +2 -2
  150. package/dist/resources/extensions/remote-questions/remote-command.js +2 -1
  151. package/dist/resources/extensions/remote-questions/status.js +2 -5
  152. package/dist/resources/extensions/remote-questions/store.js +2 -5
  153. package/dist/resources/extensions/search-the-web/provider.js +9 -8
  154. package/dist/resources/extensions/shared/next-action-ui.js +7 -0
  155. package/dist/resources/extensions/subagent/index.js +22 -17
  156. package/dist/resources/extensions/subagent/isolation.js +2 -2
  157. package/dist/resources/extensions/ttsr/rule-loader.js +2 -3
  158. package/dist/resources/extensions/voice/index.js +3 -2
  159. package/dist/resources/extensions/voice/linux-ready.js +2 -2
  160. package/dist/resources/skills/verify-before-complete/SKILL.md +1 -1
  161. package/dist/tool-bootstrap.js +7 -0
  162. package/dist/tsconfig.extensions.tsbuildinfo +1 -1
  163. package/dist/web/standalone/.next/BUILD_ID +1 -1
  164. package/dist/web/standalone/.next/app-path-routes-manifest.json +16 -16
  165. package/dist/web/standalone/.next/build-manifest.json +4 -4
  166. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  167. package/dist/web/standalone/.next/react-loadable-manifest.json +7 -7
  168. package/dist/web/standalone/.next/required-server-files.json +1 -1
  169. package/dist/web/standalone/.next/server/app/_global-error/page.js +3 -3
  170. package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  171. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  172. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  173. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  174. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  175. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  176. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  177. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  178. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  179. package/dist/web/standalone/.next/server/app/_not-found/page.js +2 -2
  180. package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  181. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  182. package/dist/web/standalone/.next/server/app/_not-found.rsc +2 -2
  183. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  184. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  185. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  186. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  187. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  188. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  189. package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
  190. package/dist/web/standalone/.next/server/app/api/boot/route.js.nft.json +1 -1
  191. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
  192. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js.nft.json +1 -1
  193. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
  194. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js.nft.json +1 -1
  195. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
  196. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js.nft.json +1 -1
  197. package/dist/web/standalone/.next/server/app/api/browse-directories/route.js +1 -1
  198. package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
  199. package/dist/web/standalone/.next/server/app/api/captures/route.js.nft.json +1 -1
  200. package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
  201. package/dist/web/standalone/.next/server/app/api/cleanup/route.js.nft.json +1 -1
  202. package/dist/web/standalone/.next/server/app/api/dev-mode/route.js +1 -1
  203. package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
  204. package/dist/web/standalone/.next/server/app/api/doctor/route.js.nft.json +1 -1
  205. package/dist/web/standalone/.next/server/app/api/experimental/route.js +2 -2
  206. package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
  207. package/dist/web/standalone/.next/server/app/api/export-data/route.js.nft.json +1 -1
  208. package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
  209. package/dist/web/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  210. package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
  211. package/dist/web/standalone/.next/server/app/api/forensics/route.js.nft.json +1 -1
  212. package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
  213. package/dist/web/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
  214. package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
  215. package/dist/web/standalone/.next/server/app/api/history/route.js.nft.json +1 -1
  216. package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
  217. package/dist/web/standalone/.next/server/app/api/hooks/route.js.nft.json +1 -1
  218. package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
  219. package/dist/web/standalone/.next/server/app/api/inspect/route.js.nft.json +1 -1
  220. package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
  221. package/dist/web/standalone/.next/server/app/api/knowledge/route.js.nft.json +1 -1
  222. package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
  223. package/dist/web/standalone/.next/server/app/api/live-state/route.js.nft.json +1 -1
  224. package/dist/web/standalone/.next/server/app/api/notifications/route.js +2 -2
  225. package/dist/web/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  226. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  227. package/dist/web/standalone/.next/server/app/api/onboarding/route.js.nft.json +1 -1
  228. package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
  229. package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
  230. package/dist/web/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  231. package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
  232. package/dist/web/standalone/.next/server/app/api/recovery/route.js.nft.json +1 -1
  233. package/dist/web/standalone/.next/server/app/api/remote-questions/route.js +2 -2
  234. package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
  235. package/dist/web/standalone/.next/server/app/api/session/browser/route.js.nft.json +1 -1
  236. package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
  237. package/dist/web/standalone/.next/server/app/api/session/command/route.js.nft.json +1 -1
  238. package/dist/web/standalone/.next/server/app/api/session/events/route.js +2 -2
  239. package/dist/web/standalone/.next/server/app/api/session/events/route.js.nft.json +1 -1
  240. package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
  241. package/dist/web/standalone/.next/server/app/api/session/manage/route.js.nft.json +1 -1
  242. package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
  243. package/dist/web/standalone/.next/server/app/api/settings-data/route.js.nft.json +1 -1
  244. package/dist/web/standalone/.next/server/app/api/shutdown/route.js +1 -1
  245. package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
  246. package/dist/web/standalone/.next/server/app/api/skill-health/route.js.nft.json +1 -1
  247. package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
  248. package/dist/web/standalone/.next/server/app/api/steer/route.js.nft.json +1 -1
  249. package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
  250. package/dist/web/standalone/.next/server/app/api/switch-root/route.js.nft.json +1 -1
  251. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +2 -2
  252. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +2 -2
  253. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +2 -2
  254. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js.nft.json +1 -1
  255. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +3 -3
  256. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js.nft.json +1 -1
  257. package/dist/web/standalone/.next/server/app/api/terminal/upload/route.js +1 -1
  258. package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
  259. package/dist/web/standalone/.next/server/app/api/undo/route.js.nft.json +1 -1
  260. package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
  261. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  262. package/dist/web/standalone/.next/server/app/api/visualizer/route.js.nft.json +1 -1
  263. package/dist/web/standalone/.next/server/app/index.html +1 -1
  264. package/dist/web/standalone/.next/server/app/index.rsc +3 -3
  265. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  266. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  267. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  268. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  269. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  270. package/dist/web/standalone/.next/server/app/page.js +2 -2
  271. package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  272. package/dist/web/standalone/.next/server/app-paths-manifest.json +16 -16
  273. package/dist/web/standalone/.next/server/chunks/2331.js +16 -16
  274. package/dist/web/standalone/.next/server/chunks/4741.js +12 -12
  275. package/dist/web/standalone/.next/server/chunks/5822.js +2 -2
  276. package/dist/web/standalone/.next/server/chunks/63.js +8 -8
  277. package/dist/web/standalone/.next/server/chunks/6336.js +1 -0
  278. package/dist/web/standalone/.next/server/chunks/6897.js +3 -3
  279. package/dist/web/standalone/.next/server/functions-config-manifest.json +9 -0
  280. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  281. package/dist/web/standalone/.next/server/middleware-manifest.json +2 -29
  282. package/dist/web/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  283. package/dist/web/standalone/.next/server/middleware.js +12 -4
  284. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  285. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  286. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  287. package/dist/web/standalone/.next/server/webpack-runtime.js +1 -1
  288. package/dist/web/standalone/.next/static/chunks/{9058.01ef3a463bda88f1.js → 2059.d6f49d697b624f2b.js} +2 -2
  289. package/dist/web/standalone/.next/static/chunks/2824.461404167557f2cd.js +1 -0
  290. package/dist/web/standalone/.next/static/chunks/363642f4.c6481b47ee815ba0.js +1 -0
  291. package/dist/web/standalone/.next/static/chunks/{3794-42fdce068d44fa4f.js → 3794-3fb4e6ee851037bb.js} +1 -1
  292. package/dist/web/standalone/.next/static/chunks/{4447.5bad7871be61ca73.js → 4447.fe6f304888d5ac71.js} +2 -2
  293. package/dist/web/standalone/.next/static/chunks/5326.def6842b53fecd26.js +1 -0
  294. package/dist/web/standalone/.next/static/chunks/{8336.31b019697882acfb.js → 8336.6f6f30e410419aff.js} +1 -1
  295. package/dist/web/standalone/.next/static/chunks/app/{page-9bf2e0c50fb2ca05.js → page-fab3ebb85b006001.js} +1 -1
  296. package/dist/web/standalone/.next/static/chunks/{framework-711ef29bc66f648c.js → framework-34a8c4228d7fd161.js} +1 -1
  297. package/dist/web/standalone/.next/static/chunks/{main-6919d9dd919bd15f.js → main-2b7d1294417bb6bc.js} +1 -1
  298. package/dist/web/standalone/.next/static/chunks/webpack-d82dbee6356c1733.js +1 -0
  299. package/dist/web/standalone/.next/static/css/{632cd626b1731d88.css → 54ec2745c1da488b.css} +1 -1
  300. package/dist/web/standalone/node_modules/@next/env/package.json +1 -1
  301. package/dist/web/standalone/node_modules/baseline-browser-mapping/dist/index.cjs +1 -1
  302. package/dist/web/standalone/node_modules/baseline-browser-mapping/package.json +3 -3
  303. package/dist/web/standalone/node_modules/caniuse-lite/data/agents.js +1 -1
  304. package/dist/web/standalone/node_modules/caniuse-lite/data/browserVersions.js +1 -1
  305. package/dist/web/standalone/node_modules/caniuse-lite/data/features/aac.js +1 -1
  306. package/dist/web/standalone/node_modules/caniuse-lite/data/features/abortcontroller.js +1 -1
  307. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ac3-ec3.js +1 -1
  308. package/dist/web/standalone/node_modules/caniuse-lite/data/features/accelerometer.js +1 -1
  309. package/dist/web/standalone/node_modules/caniuse-lite/data/features/addeventlistener.js +1 -1
  310. package/dist/web/standalone/node_modules/caniuse-lite/data/features/alternate-stylesheet.js +1 -1
  311. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ambient-light.js +1 -1
  312. package/dist/web/standalone/node_modules/caniuse-lite/data/features/apng.js +1 -1
  313. package/dist/web/standalone/node_modules/caniuse-lite/data/features/array-find-index.js +1 -1
  314. package/dist/web/standalone/node_modules/caniuse-lite/data/features/array-find.js +1 -1
  315. package/dist/web/standalone/node_modules/caniuse-lite/data/features/array-flat.js +1 -1
  316. package/dist/web/standalone/node_modules/caniuse-lite/data/features/array-includes.js +1 -1
  317. package/dist/web/standalone/node_modules/caniuse-lite/data/features/arrow-functions.js +1 -1
  318. package/dist/web/standalone/node_modules/caniuse-lite/data/features/asmjs.js +1 -1
  319. package/dist/web/standalone/node_modules/caniuse-lite/data/features/async-clipboard.js +1 -1
  320. package/dist/web/standalone/node_modules/caniuse-lite/data/features/async-functions.js +1 -1
  321. package/dist/web/standalone/node_modules/caniuse-lite/data/features/atob-btoa.js +1 -1
  322. package/dist/web/standalone/node_modules/caniuse-lite/data/features/audio-api.js +1 -1
  323. package/dist/web/standalone/node_modules/caniuse-lite/data/features/audio.js +1 -1
  324. package/dist/web/standalone/node_modules/caniuse-lite/data/features/audiotracks.js +1 -1
  325. package/dist/web/standalone/node_modules/caniuse-lite/data/features/autofocus.js +1 -1
  326. package/dist/web/standalone/node_modules/caniuse-lite/data/features/auxclick.js +1 -1
  327. package/dist/web/standalone/node_modules/caniuse-lite/data/features/av1.js +1 -1
  328. package/dist/web/standalone/node_modules/caniuse-lite/data/features/avif.js +1 -1
  329. package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-attachment.js +1 -1
  330. package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-clip-text.js +1 -1
  331. package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-img-opts.js +1 -1
  332. package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-position-x-y.js +1 -1
  333. package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-repeat-round-space.js +1 -1
  334. package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-sync.js +1 -1
  335. package/dist/web/standalone/node_modules/caniuse-lite/data/features/battery-status.js +1 -1
  336. package/dist/web/standalone/node_modules/caniuse-lite/data/features/beacon.js +1 -1
  337. package/dist/web/standalone/node_modules/caniuse-lite/data/features/beforeafterprint.js +1 -1
  338. package/dist/web/standalone/node_modules/caniuse-lite/data/features/bigint.js +1 -1
  339. package/dist/web/standalone/node_modules/caniuse-lite/data/features/blobbuilder.js +1 -1
  340. package/dist/web/standalone/node_modules/caniuse-lite/data/features/bloburls.js +1 -1
  341. package/dist/web/standalone/node_modules/caniuse-lite/data/features/border-image.js +1 -1
  342. package/dist/web/standalone/node_modules/caniuse-lite/data/features/border-radius.js +1 -1
  343. package/dist/web/standalone/node_modules/caniuse-lite/data/features/broadcastchannel.js +1 -1
  344. package/dist/web/standalone/node_modules/caniuse-lite/data/features/brotli.js +1 -1
  345. package/dist/web/standalone/node_modules/caniuse-lite/data/features/calc.js +1 -1
  346. package/dist/web/standalone/node_modules/caniuse-lite/data/features/canvas-blending.js +1 -1
  347. package/dist/web/standalone/node_modules/caniuse-lite/data/features/canvas-text.js +1 -1
  348. package/dist/web/standalone/node_modules/caniuse-lite/data/features/canvas.js +1 -1
  349. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ch-unit.js +1 -1
  350. package/dist/web/standalone/node_modules/caniuse-lite/data/features/chacha20-poly1305.js +1 -1
  351. package/dist/web/standalone/node_modules/caniuse-lite/data/features/channel-messaging.js +1 -1
  352. package/dist/web/standalone/node_modules/caniuse-lite/data/features/childnode-remove.js +1 -1
  353. package/dist/web/standalone/node_modules/caniuse-lite/data/features/classlist.js +1 -1
  354. package/dist/web/standalone/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js +1 -1
  355. package/dist/web/standalone/node_modules/caniuse-lite/data/features/clipboard.js +1 -1
  356. package/dist/web/standalone/node_modules/caniuse-lite/data/features/colr-v1.js +1 -1
  357. package/dist/web/standalone/node_modules/caniuse-lite/data/features/colr.js +1 -1
  358. package/dist/web/standalone/node_modules/caniuse-lite/data/features/comparedocumentposition.js +1 -1
  359. package/dist/web/standalone/node_modules/caniuse-lite/data/features/console-basic.js +1 -1
  360. package/dist/web/standalone/node_modules/caniuse-lite/data/features/console-time.js +1 -1
  361. package/dist/web/standalone/node_modules/caniuse-lite/data/features/const.js +1 -1
  362. package/dist/web/standalone/node_modules/caniuse-lite/data/features/constraint-validation.js +1 -1
  363. package/dist/web/standalone/node_modules/caniuse-lite/data/features/contenteditable.js +1 -1
  364. package/dist/web/standalone/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js +1 -1
  365. package/dist/web/standalone/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js +1 -1
  366. package/dist/web/standalone/node_modules/caniuse-lite/data/features/cookie-store-api.js +1 -1
  367. package/dist/web/standalone/node_modules/caniuse-lite/data/features/cors.js +1 -1
  368. package/dist/web/standalone/node_modules/caniuse-lite/data/features/createimagebitmap.js +1 -1
  369. package/dist/web/standalone/node_modules/caniuse-lite/data/features/credential-management.js +1 -1
  370. package/dist/web/standalone/node_modules/caniuse-lite/data/features/cross-document-view-transitions.js +1 -1
  371. package/dist/web/standalone/node_modules/caniuse-lite/data/features/cryptography.js +1 -1
  372. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-all.js +1 -1
  373. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-anchor-positioning.js +1 -1
  374. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-animation.js +1 -1
  375. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-any-link.js +1 -1
  376. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-appearance.js +1 -1
  377. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-at-counter-style.js +1 -1
  378. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-autofill.js +1 -1
  379. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-backdrop-filter.js +1 -1
  380. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-background-offsets.js +1 -1
  381. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js +1 -1
  382. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js +1 -1
  383. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-boxshadow.js +1 -1
  384. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-canvas.js +1 -1
  385. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-caret-color.js +1 -1
  386. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-cascade-layers.js +1 -1
  387. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-cascade-scope.js +1 -1
  388. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-case-insensitive.js +1 -1
  389. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-clip-path.js +1 -1
  390. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-color-adjust.js +1 -1
  391. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-color-function.js +1 -1
  392. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-conic-gradients.js +1 -1
  393. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-container-queries-style.js +1 -1
  394. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-container-queries.js +1 -1
  395. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-container-query-units.js +1 -1
  396. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-containment.js +1 -1
  397. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-content-visibility.js +1 -1
  398. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-counters.js +1 -1
  399. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-crisp-edges.js +1 -1
  400. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-cross-fade.js +1 -1
  401. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-default-pseudo.js +1 -1
  402. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js +1 -1
  403. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-deviceadaptation.js +1 -1
  404. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-dir-pseudo.js +1 -1
  405. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-display-contents.js +1 -1
  406. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-element-function.js +1 -1
  407. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-env-function.js +1 -1
  408. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-exclusions.js +1 -1
  409. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-featurequeries.js +1 -1
  410. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-file-selector-button.js +1 -1
  411. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-filter-function.js +1 -1
  412. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-filters.js +1 -1
  413. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-first-letter.js +1 -1
  414. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-first-line.js +1 -1
  415. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-fixed.js +1 -1
  416. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-focus-visible.js +1 -1
  417. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-focus-within.js +1 -1
  418. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-font-palette.js +1 -1
  419. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js +1 -1
  420. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-font-stretch.js +1 -1
  421. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-gencontent.js +1 -1
  422. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-gradients.js +1 -1
  423. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-grid-animation.js +1 -1
  424. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-grid-lanes.js +1 -1
  425. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-grid.js +1 -1
  426. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js +1 -1
  427. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-has.js +1 -1
  428. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-hyphens.js +1 -1
  429. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-if.js +1 -1
  430. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-image-orientation.js +1 -1
  431. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-image-set.js +1 -1
  432. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-in-out-of-range.js +1 -1
  433. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js +1 -1
  434. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-initial-letter.js +1 -1
  435. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-initial-value.js +1 -1
  436. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-lch-lab.js +1 -1
  437. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-letter-spacing.js +1 -1
  438. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-line-clamp.js +1 -1
  439. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-logical-props.js +1 -1
  440. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-marker-pseudo.js +1 -1
  441. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-masks.js +1 -1
  442. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-matches-pseudo.js +1 -1
  443. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-math-functions.js +1 -1
  444. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-media-interaction.js +1 -1
  445. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-media-range-syntax.js +1 -1
  446. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-media-resolution.js +1 -1
  447. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-media-scripting.js +1 -1
  448. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-mediaqueries.js +1 -1
  449. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-mixblendmode.js +1 -1
  450. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-module-scripts.js +1 -1
  451. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-motion-paths.js +1 -1
  452. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-namespaces.js +1 -1
  453. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-nesting.js +1 -1
  454. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-not-sel-list.js +1 -1
  455. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-nth-child-of.js +1 -1
  456. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-opacity.js +1 -1
  457. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-optional-pseudo.js +1 -1
  458. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-overflow-anchor.js +1 -1
  459. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-overflow-overlay.js +1 -1
  460. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-overflow.js +1 -1
  461. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js +1 -1
  462. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-page-break.js +1 -1
  463. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-paged-media.js +1 -1
  464. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-paint-api.js +1 -1
  465. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-placeholder-shown.js +1 -1
  466. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-placeholder.js +1 -1
  467. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-print-color-adjust.js +1 -1
  468. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-read-only-write.js +1 -1
  469. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-rebeccapurple.js +1 -1
  470. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-reflections.js +1 -1
  471. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-regions.js +1 -1
  472. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-relative-colors.js +1 -1
  473. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-repeating-gradients.js +1 -1
  474. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-resize.js +1 -1
  475. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-revert-value.js +1 -1
  476. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-rrggbbaa.js +1 -1
  477. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-scroll-behavior.js +1 -1
  478. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-scrollbar.js +1 -1
  479. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-sel2.js +1 -1
  480. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-sel3.js +1 -1
  481. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-selection.js +1 -1
  482. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-shapes.js +1 -1
  483. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-snappoints.js +1 -1
  484. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-sticky.js +1 -1
  485. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-subgrid.js +1 -1
  486. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-supports-api.js +1 -1
  487. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-table.js +1 -1
  488. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-align-last.js +1 -1
  489. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-box-trim.js +1 -1
  490. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-indent.js +1 -1
  491. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-justify.js +1 -1
  492. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-orientation.js +1 -1
  493. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-spacing.js +1 -1
  494. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-wrap-balance.js +1 -1
  495. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-textshadow.js +1 -1
  496. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-touch-action.js +1 -1
  497. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-transitions.js +1 -1
  498. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-unicode-bidi.js +1 -1
  499. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-unset-value.js +1 -1
  500. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-variables.js +1 -1
  501. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-when-else.js +1 -1
  502. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-widows-orphans.js +1 -1
  503. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-width-stretch.js +1 -1
  504. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-writing-mode.js +1 -1
  505. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-zoom.js +1 -1
  506. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-attr.js +1 -1
  507. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-boxsizing.js +1 -1
  508. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-colors.js +1 -1
  509. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-cursors-grab.js +1 -1
  510. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-cursors-newer.js +1 -1
  511. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-cursors.js +1 -1
  512. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-tabsize.js +1 -1
  513. package/dist/web/standalone/node_modules/caniuse-lite/data/features/currentcolor.js +1 -1
  514. package/dist/web/standalone/node_modules/caniuse-lite/data/features/custom-elements.js +1 -1
  515. package/dist/web/standalone/node_modules/caniuse-lite/data/features/custom-elementsv1.js +1 -1
  516. package/dist/web/standalone/node_modules/caniuse-lite/data/features/customevent.js +1 -1
  517. package/dist/web/standalone/node_modules/caniuse-lite/data/features/customizable-select.js +1 -1
  518. package/dist/web/standalone/node_modules/caniuse-lite/data/features/datalist.js +1 -1
  519. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dataset.js +1 -1
  520. package/dist/web/standalone/node_modules/caniuse-lite/data/features/datauri.js +1 -1
  521. package/dist/web/standalone/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js +1 -1
  522. package/dist/web/standalone/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js +1 -1
  523. package/dist/web/standalone/node_modules/caniuse-lite/data/features/decorators.js +1 -1
  524. package/dist/web/standalone/node_modules/caniuse-lite/data/features/details.js +1 -1
  525. package/dist/web/standalone/node_modules/caniuse-lite/data/features/deviceorientation.js +1 -1
  526. package/dist/web/standalone/node_modules/caniuse-lite/data/features/devicepixelratio.js +1 -1
  527. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dialog.js +1 -1
  528. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dispatchevent.js +1 -1
  529. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dnssec.js +1 -1
  530. package/dist/web/standalone/node_modules/caniuse-lite/data/features/do-not-track.js +1 -1
  531. package/dist/web/standalone/node_modules/caniuse-lite/data/features/document-currentscript.js +1 -1
  532. package/dist/web/standalone/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js +1 -1
  533. package/dist/web/standalone/node_modules/caniuse-lite/data/features/document-execcommand.js +1 -1
  534. package/dist/web/standalone/node_modules/caniuse-lite/data/features/document-policy.js +1 -1
  535. package/dist/web/standalone/node_modules/caniuse-lite/data/features/document-scrollingelement.js +1 -1
  536. package/dist/web/standalone/node_modules/caniuse-lite/data/features/documenthead.js +1 -1
  537. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dom-manip-convenience.js +1 -1
  538. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dom-range.js +1 -1
  539. package/dist/web/standalone/node_modules/caniuse-lite/data/features/domcontentloaded.js +1 -1
  540. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dommatrix.js +1 -1
  541. package/dist/web/standalone/node_modules/caniuse-lite/data/features/download.js +1 -1
  542. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dragndrop.js +1 -1
  543. package/dist/web/standalone/node_modules/caniuse-lite/data/features/element-closest.js +1 -1
  544. package/dist/web/standalone/node_modules/caniuse-lite/data/features/element-from-point.js +1 -1
  545. package/dist/web/standalone/node_modules/caniuse-lite/data/features/element-scroll-methods.js +1 -1
  546. package/dist/web/standalone/node_modules/caniuse-lite/data/features/eme.js +1 -1
  547. package/dist/web/standalone/node_modules/caniuse-lite/data/features/eot.js +1 -1
  548. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es5.js +1 -1
  549. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-class.js +1 -1
  550. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-generators.js +1 -1
  551. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js +1 -1
  552. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-module.js +1 -1
  553. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-number.js +1 -1
  554. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-string-includes.js +1 -1
  555. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6.js +1 -1
  556. package/dist/web/standalone/node_modules/caniuse-lite/data/features/eventsource.js +1 -1
  557. package/dist/web/standalone/node_modules/caniuse-lite/data/features/extended-system-fonts.js +1 -1
  558. package/dist/web/standalone/node_modules/caniuse-lite/data/features/feature-policy.js +1 -1
  559. package/dist/web/standalone/node_modules/caniuse-lite/data/features/fetch.js +1 -1
  560. package/dist/web/standalone/node_modules/caniuse-lite/data/features/fieldset-disabled.js +1 -1
  561. package/dist/web/standalone/node_modules/caniuse-lite/data/features/fileapi.js +1 -1
  562. package/dist/web/standalone/node_modules/caniuse-lite/data/features/filereader.js +1 -1
  563. package/dist/web/standalone/node_modules/caniuse-lite/data/features/filereadersync.js +1 -1
  564. package/dist/web/standalone/node_modules/caniuse-lite/data/features/filesystem.js +1 -1
  565. package/dist/web/standalone/node_modules/caniuse-lite/data/features/flac.js +1 -1
  566. package/dist/web/standalone/node_modules/caniuse-lite/data/features/flexbox-gap.js +1 -1
  567. package/dist/web/standalone/node_modules/caniuse-lite/data/features/flexbox.js +1 -1
  568. package/dist/web/standalone/node_modules/caniuse-lite/data/features/flow-root.js +1 -1
  569. package/dist/web/standalone/node_modules/caniuse-lite/data/features/focusin-focusout-events.js +1 -1
  570. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-family-system-ui.js +1 -1
  571. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-feature.js +1 -1
  572. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-kerning.js +1 -1
  573. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-loading.js +1 -1
  574. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-size-adjust.js +1 -1
  575. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-smooth.js +1 -1
  576. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-unicode-range.js +1 -1
  577. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-variant-alternates.js +1 -1
  578. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-variant-numeric.js +1 -1
  579. package/dist/web/standalone/node_modules/caniuse-lite/data/features/fontface.js +1 -1
  580. package/dist/web/standalone/node_modules/caniuse-lite/data/features/form-attribute.js +1 -1
  581. package/dist/web/standalone/node_modules/caniuse-lite/data/features/form-submit-attributes.js +1 -1
  582. package/dist/web/standalone/node_modules/caniuse-lite/data/features/form-validation.js +1 -1
  583. package/dist/web/standalone/node_modules/caniuse-lite/data/features/forms.js +1 -1
  584. package/dist/web/standalone/node_modules/caniuse-lite/data/features/fullscreen.js +1 -1
  585. package/dist/web/standalone/node_modules/caniuse-lite/data/features/gamepad.js +1 -1
  586. package/dist/web/standalone/node_modules/caniuse-lite/data/features/geolocation.js +1 -1
  587. package/dist/web/standalone/node_modules/caniuse-lite/data/features/getboundingclientrect.js +1 -1
  588. package/dist/web/standalone/node_modules/caniuse-lite/data/features/getcomputedstyle.js +1 -1
  589. package/dist/web/standalone/node_modules/caniuse-lite/data/features/getelementsbyclassname.js +1 -1
  590. package/dist/web/standalone/node_modules/caniuse-lite/data/features/getrandomvalues.js +1 -1
  591. package/dist/web/standalone/node_modules/caniuse-lite/data/features/gyroscope.js +1 -1
  592. package/dist/web/standalone/node_modules/caniuse-lite/data/features/hardwareconcurrency.js +1 -1
  593. package/dist/web/standalone/node_modules/caniuse-lite/data/features/hashchange.js +1 -1
  594. package/dist/web/standalone/node_modules/caniuse-lite/data/features/heif.js +1 -1
  595. package/dist/web/standalone/node_modules/caniuse-lite/data/features/hevc.js +1 -1
  596. package/dist/web/standalone/node_modules/caniuse-lite/data/features/hidden.js +1 -1
  597. package/dist/web/standalone/node_modules/caniuse-lite/data/features/high-resolution-time.js +1 -1
  598. package/dist/web/standalone/node_modules/caniuse-lite/data/features/history.js +1 -1
  599. package/dist/web/standalone/node_modules/caniuse-lite/data/features/html-media-capture.js +1 -1
  600. package/dist/web/standalone/node_modules/caniuse-lite/data/features/html5semantic.js +1 -1
  601. package/dist/web/standalone/node_modules/caniuse-lite/data/features/http-live-streaming.js +1 -1
  602. package/dist/web/standalone/node_modules/caniuse-lite/data/features/http2.js +1 -1
  603. package/dist/web/standalone/node_modules/caniuse-lite/data/features/http3.js +1 -1
  604. package/dist/web/standalone/node_modules/caniuse-lite/data/features/iframe-sandbox.js +1 -1
  605. package/dist/web/standalone/node_modules/caniuse-lite/data/features/iframe-seamless.js +1 -1
  606. package/dist/web/standalone/node_modules/caniuse-lite/data/features/iframe-srcdoc.js +1 -1
  607. package/dist/web/standalone/node_modules/caniuse-lite/data/features/imagecapture.js +1 -1
  608. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ime.js +1 -1
  609. package/dist/web/standalone/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js +1 -1
  610. package/dist/web/standalone/node_modules/caniuse-lite/data/features/import-maps.js +1 -1
  611. package/dist/web/standalone/node_modules/caniuse-lite/data/features/imports.js +1 -1
  612. package/dist/web/standalone/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js +1 -1
  613. package/dist/web/standalone/node_modules/caniuse-lite/data/features/indexeddb.js +1 -1
  614. package/dist/web/standalone/node_modules/caniuse-lite/data/features/indexeddb2.js +1 -1
  615. package/dist/web/standalone/node_modules/caniuse-lite/data/features/inline-block.js +1 -1
  616. package/dist/web/standalone/node_modules/caniuse-lite/data/features/innertext.js +1 -1
  617. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js +1 -1
  618. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-color.js +1 -1
  619. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-datetime.js +1 -1
  620. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-email-tel-url.js +1 -1
  621. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-event.js +1 -1
  622. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-file-accept.js +1 -1
  623. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-file-directory.js +1 -1
  624. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-file-multiple.js +1 -1
  625. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-inputmode.js +1 -1
  626. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-minlength.js +1 -1
  627. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-number.js +1 -1
  628. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-pattern.js +1 -1
  629. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-placeholder.js +1 -1
  630. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-range.js +1 -1
  631. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-search.js +1 -1
  632. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-selection.js +1 -1
  633. package/dist/web/standalone/node_modules/caniuse-lite/data/features/insert-adjacent.js +1 -1
  634. package/dist/web/standalone/node_modules/caniuse-lite/data/features/insertadjacenthtml.js +1 -1
  635. package/dist/web/standalone/node_modules/caniuse-lite/data/features/internationalization.js +1 -1
  636. package/dist/web/standalone/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js +1 -1
  637. package/dist/web/standalone/node_modules/caniuse-lite/data/features/intersectionobserver.js +1 -1
  638. package/dist/web/standalone/node_modules/caniuse-lite/data/features/intl-pluralrules.js +1 -1
  639. package/dist/web/standalone/node_modules/caniuse-lite/data/features/intrinsic-width.js +1 -1
  640. package/dist/web/standalone/node_modules/caniuse-lite/data/features/jpeg2000.js +1 -1
  641. package/dist/web/standalone/node_modules/caniuse-lite/data/features/jpegxl.js +1 -1
  642. package/dist/web/standalone/node_modules/caniuse-lite/data/features/jpegxr.js +1 -1
  643. package/dist/web/standalone/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js +1 -1
  644. package/dist/web/standalone/node_modules/caniuse-lite/data/features/json.js +1 -1
  645. package/dist/web/standalone/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js +1 -1
  646. package/dist/web/standalone/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js +1 -1
  647. package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js +1 -1
  648. package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-code.js +1 -1
  649. package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js +1 -1
  650. package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-key.js +1 -1
  651. package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-location.js +1 -1
  652. package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-which.js +1 -1
  653. package/dist/web/standalone/node_modules/caniuse-lite/data/features/lazyload.js +1 -1
  654. package/dist/web/standalone/node_modules/caniuse-lite/data/features/let.js +1 -1
  655. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-icon-png.js +1 -1
  656. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-icon-svg.js +1 -1
  657. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js +1 -1
  658. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js +1 -1
  659. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-preconnect.js +1 -1
  660. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-prefetch.js +1 -1
  661. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-preload.js +1 -1
  662. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-prerender.js +1 -1
  663. package/dist/web/standalone/node_modules/caniuse-lite/data/features/loading-lazy-attr.js +1 -1
  664. package/dist/web/standalone/node_modules/caniuse-lite/data/features/loading-lazy-media.js +1 -1
  665. package/dist/web/standalone/node_modules/caniuse-lite/data/features/localecompare.js +1 -1
  666. package/dist/web/standalone/node_modules/caniuse-lite/data/features/magnetometer.js +1 -1
  667. package/dist/web/standalone/node_modules/caniuse-lite/data/features/matchesselector.js +1 -1
  668. package/dist/web/standalone/node_modules/caniuse-lite/data/features/matchmedia.js +1 -1
  669. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mathml.js +1 -1
  670. package/dist/web/standalone/node_modules/caniuse-lite/data/features/maxlength.js +1 -1
  671. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js +1 -1
  672. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js +1 -1
  673. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js +1 -1
  674. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js +1 -1
  675. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js +1 -1
  676. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js +1 -1
  677. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js +1 -1
  678. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js +1 -1
  679. package/dist/web/standalone/node_modules/caniuse-lite/data/features/media-fragments.js +1 -1
  680. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js +1 -1
  681. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mediarecorder.js +1 -1
  682. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mediasource.js +1 -1
  683. package/dist/web/standalone/node_modules/caniuse-lite/data/features/menu.js +1 -1
  684. package/dist/web/standalone/node_modules/caniuse-lite/data/features/meta-theme-color.js +1 -1
  685. package/dist/web/standalone/node_modules/caniuse-lite/data/features/meter.js +1 -1
  686. package/dist/web/standalone/node_modules/caniuse-lite/data/features/midi.js +1 -1
  687. package/dist/web/standalone/node_modules/caniuse-lite/data/features/minmaxwh.js +1 -1
  688. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mp3.js +1 -1
  689. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mpeg-dash.js +1 -1
  690. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mpeg4.js +1 -1
  691. package/dist/web/standalone/node_modules/caniuse-lite/data/features/multibackgrounds.js +1 -1
  692. package/dist/web/standalone/node_modules/caniuse-lite/data/features/multicolumn.js +1 -1
  693. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mutation-events.js +1 -1
  694. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mutationobserver.js +1 -1
  695. package/dist/web/standalone/node_modules/caniuse-lite/data/features/namevalue-storage.js +1 -1
  696. package/dist/web/standalone/node_modules/caniuse-lite/data/features/native-filesystem-api.js +1 -1
  697. package/dist/web/standalone/node_modules/caniuse-lite/data/features/nav-timing.js +1 -1
  698. package/dist/web/standalone/node_modules/caniuse-lite/data/features/netinfo.js +1 -1
  699. package/dist/web/standalone/node_modules/caniuse-lite/data/features/notifications.js +1 -1
  700. package/dist/web/standalone/node_modules/caniuse-lite/data/features/object-entries.js +1 -1
  701. package/dist/web/standalone/node_modules/caniuse-lite/data/features/object-fit.js +1 -1
  702. package/dist/web/standalone/node_modules/caniuse-lite/data/features/object-observe.js +1 -1
  703. package/dist/web/standalone/node_modules/caniuse-lite/data/features/object-values.js +1 -1
  704. package/dist/web/standalone/node_modules/caniuse-lite/data/features/objectrtc.js +1 -1
  705. package/dist/web/standalone/node_modules/caniuse-lite/data/features/offline-apps.js +1 -1
  706. package/dist/web/standalone/node_modules/caniuse-lite/data/features/offscreencanvas.js +1 -1
  707. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ogg-vorbis.js +1 -1
  708. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ogv.js +1 -1
  709. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ol-reversed.js +1 -1
  710. package/dist/web/standalone/node_modules/caniuse-lite/data/features/once-event-listener.js +1 -1
  711. package/dist/web/standalone/node_modules/caniuse-lite/data/features/online-status.js +1 -1
  712. package/dist/web/standalone/node_modules/caniuse-lite/data/features/opus.js +1 -1
  713. package/dist/web/standalone/node_modules/caniuse-lite/data/features/orientation-sensor.js +1 -1
  714. package/dist/web/standalone/node_modules/caniuse-lite/data/features/outline.js +1 -1
  715. package/dist/web/standalone/node_modules/caniuse-lite/data/features/pad-start-end.js +1 -1
  716. package/dist/web/standalone/node_modules/caniuse-lite/data/features/page-transition-events.js +1 -1
  717. package/dist/web/standalone/node_modules/caniuse-lite/data/features/pagevisibility.js +1 -1
  718. package/dist/web/standalone/node_modules/caniuse-lite/data/features/passive-event-listener.js +1 -1
  719. package/dist/web/standalone/node_modules/caniuse-lite/data/features/passkeys.js +1 -1
  720. package/dist/web/standalone/node_modules/caniuse-lite/data/features/passwordrules.js +1 -1
  721. package/dist/web/standalone/node_modules/caniuse-lite/data/features/path2d.js +1 -1
  722. package/dist/web/standalone/node_modules/caniuse-lite/data/features/payment-request.js +1 -1
  723. package/dist/web/standalone/node_modules/caniuse-lite/data/features/pdf-viewer.js +1 -1
  724. package/dist/web/standalone/node_modules/caniuse-lite/data/features/permissions-api.js +1 -1
  725. package/dist/web/standalone/node_modules/caniuse-lite/data/features/permissions-policy.js +1 -1
  726. package/dist/web/standalone/node_modules/caniuse-lite/data/features/picture-in-picture.js +1 -1
  727. package/dist/web/standalone/node_modules/caniuse-lite/data/features/picture.js +1 -1
  728. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ping.js +1 -1
  729. package/dist/web/standalone/node_modules/caniuse-lite/data/features/png-alpha.js +1 -1
  730. package/dist/web/standalone/node_modules/caniuse-lite/data/features/pointer-events.js +1 -1
  731. package/dist/web/standalone/node_modules/caniuse-lite/data/features/pointer.js +1 -1
  732. package/dist/web/standalone/node_modules/caniuse-lite/data/features/pointerlock.js +1 -1
  733. package/dist/web/standalone/node_modules/caniuse-lite/data/features/portals.js +1 -1
  734. package/dist/web/standalone/node_modules/caniuse-lite/data/features/prefers-color-scheme.js +1 -1
  735. package/dist/web/standalone/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js +1 -1
  736. package/dist/web/standalone/node_modules/caniuse-lite/data/features/progress.js +1 -1
  737. package/dist/web/standalone/node_modules/caniuse-lite/data/features/promise-finally.js +1 -1
  738. package/dist/web/standalone/node_modules/caniuse-lite/data/features/promises.js +1 -1
  739. package/dist/web/standalone/node_modules/caniuse-lite/data/features/proximity.js +1 -1
  740. package/dist/web/standalone/node_modules/caniuse-lite/data/features/proxy.js +1 -1
  741. package/dist/web/standalone/node_modules/caniuse-lite/data/features/publickeypinning.js +1 -1
  742. package/dist/web/standalone/node_modules/caniuse-lite/data/features/push-api.js +1 -1
  743. package/dist/web/standalone/node_modules/caniuse-lite/data/features/queryselector.js +1 -1
  744. package/dist/web/standalone/node_modules/caniuse-lite/data/features/readonly-attr.js +1 -1
  745. package/dist/web/standalone/node_modules/caniuse-lite/data/features/referrer-policy.js +1 -1
  746. package/dist/web/standalone/node_modules/caniuse-lite/data/features/registerprotocolhandler.js +1 -1
  747. package/dist/web/standalone/node_modules/caniuse-lite/data/features/rel-noopener.js +1 -1
  748. package/dist/web/standalone/node_modules/caniuse-lite/data/features/rel-noreferrer.js +1 -1
  749. package/dist/web/standalone/node_modules/caniuse-lite/data/features/rellist.js +1 -1
  750. package/dist/web/standalone/node_modules/caniuse-lite/data/features/rem.js +1 -1
  751. package/dist/web/standalone/node_modules/caniuse-lite/data/features/requestanimationframe.js +1 -1
  752. package/dist/web/standalone/node_modules/caniuse-lite/data/features/requestidlecallback.js +1 -1
  753. package/dist/web/standalone/node_modules/caniuse-lite/data/features/resizeobserver.js +1 -1
  754. package/dist/web/standalone/node_modules/caniuse-lite/data/features/resource-timing.js +1 -1
  755. package/dist/web/standalone/node_modules/caniuse-lite/data/features/rest-parameters.js +1 -1
  756. package/dist/web/standalone/node_modules/caniuse-lite/data/features/rtcpeerconnection.js +1 -1
  757. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ruby.js +1 -1
  758. package/dist/web/standalone/node_modules/caniuse-lite/data/features/run-in.js +1 -1
  759. package/dist/web/standalone/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js +1 -1
  760. package/dist/web/standalone/node_modules/caniuse-lite/data/features/screen-orientation.js +1 -1
  761. package/dist/web/standalone/node_modules/caniuse-lite/data/features/script-async.js +1 -1
  762. package/dist/web/standalone/node_modules/caniuse-lite/data/features/script-defer.js +1 -1
  763. package/dist/web/standalone/node_modules/caniuse-lite/data/features/scrollintoview.js +1 -1
  764. package/dist/web/standalone/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js +1 -1
  765. package/dist/web/standalone/node_modules/caniuse-lite/data/features/sdch.js +1 -1
  766. package/dist/web/standalone/node_modules/caniuse-lite/data/features/selection-api.js +1 -1
  767. package/dist/web/standalone/node_modules/caniuse-lite/data/features/server-timing.js +1 -1
  768. package/dist/web/standalone/node_modules/caniuse-lite/data/features/serviceworkers.js +1 -1
  769. package/dist/web/standalone/node_modules/caniuse-lite/data/features/setimmediate.js +1 -1
  770. package/dist/web/standalone/node_modules/caniuse-lite/data/features/shadowdom.js +1 -1
  771. package/dist/web/standalone/node_modules/caniuse-lite/data/features/shadowdomv1.js +1 -1
  772. package/dist/web/standalone/node_modules/caniuse-lite/data/features/sharedarraybuffer.js +1 -1
  773. package/dist/web/standalone/node_modules/caniuse-lite/data/features/sharedworkers.js +1 -1
  774. package/dist/web/standalone/node_modules/caniuse-lite/data/features/sni.js +1 -1
  775. package/dist/web/standalone/node_modules/caniuse-lite/data/features/spdy.js +1 -1
  776. package/dist/web/standalone/node_modules/caniuse-lite/data/features/speech-recognition.js +1 -1
  777. package/dist/web/standalone/node_modules/caniuse-lite/data/features/speech-synthesis.js +1 -1
  778. package/dist/web/standalone/node_modules/caniuse-lite/data/features/spellcheck-attribute.js +1 -1
  779. package/dist/web/standalone/node_modules/caniuse-lite/data/features/sql-storage.js +1 -1
  780. package/dist/web/standalone/node_modules/caniuse-lite/data/features/srcset.js +1 -1
  781. package/dist/web/standalone/node_modules/caniuse-lite/data/features/stream.js +1 -1
  782. package/dist/web/standalone/node_modules/caniuse-lite/data/features/streams.js +1 -1
  783. package/dist/web/standalone/node_modules/caniuse-lite/data/features/stricttransportsecurity.js +1 -1
  784. package/dist/web/standalone/node_modules/caniuse-lite/data/features/style-scoped.js +1 -1
  785. package/dist/web/standalone/node_modules/caniuse-lite/data/features/subresource-bundling.js +1 -1
  786. package/dist/web/standalone/node_modules/caniuse-lite/data/features/subresource-integrity.js +1 -1
  787. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-css.js +1 -1
  788. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-filters.js +1 -1
  789. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-fonts.js +1 -1
  790. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-fragment.js +1 -1
  791. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-html.js +1 -1
  792. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-html5.js +1 -1
  793. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-img.js +1 -1
  794. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-smil.js +1 -1
  795. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg.js +1 -1
  796. package/dist/web/standalone/node_modules/caniuse-lite/data/features/sxg.js +1 -1
  797. package/dist/web/standalone/node_modules/caniuse-lite/data/features/tabindex-attr.js +1 -1
  798. package/dist/web/standalone/node_modules/caniuse-lite/data/features/template-literals.js +1 -1
  799. package/dist/web/standalone/node_modules/caniuse-lite/data/features/template.js +1 -1
  800. package/dist/web/standalone/node_modules/caniuse-lite/data/features/temporal.js +1 -1
  801. package/dist/web/standalone/node_modules/caniuse-lite/data/features/testfeat.js +1 -1
  802. package/dist/web/standalone/node_modules/caniuse-lite/data/features/text-decoration.js +1 -1
  803. package/dist/web/standalone/node_modules/caniuse-lite/data/features/text-emphasis.js +1 -1
  804. package/dist/web/standalone/node_modules/caniuse-lite/data/features/text-overflow.js +1 -1
  805. package/dist/web/standalone/node_modules/caniuse-lite/data/features/text-size-adjust.js +1 -1
  806. package/dist/web/standalone/node_modules/caniuse-lite/data/features/text-stroke.js +1 -1
  807. package/dist/web/standalone/node_modules/caniuse-lite/data/features/textcontent.js +1 -1
  808. package/dist/web/standalone/node_modules/caniuse-lite/data/features/textencoder.js +1 -1
  809. package/dist/web/standalone/node_modules/caniuse-lite/data/features/tls1-1.js +1 -1
  810. package/dist/web/standalone/node_modules/caniuse-lite/data/features/tls1-2.js +1 -1
  811. package/dist/web/standalone/node_modules/caniuse-lite/data/features/tls1-3.js +1 -1
  812. package/dist/web/standalone/node_modules/caniuse-lite/data/features/touch.js +1 -1
  813. package/dist/web/standalone/node_modules/caniuse-lite/data/features/transforms2d.js +1 -1
  814. package/dist/web/standalone/node_modules/caniuse-lite/data/features/transforms3d.js +1 -1
  815. package/dist/web/standalone/node_modules/caniuse-lite/data/features/trusted-types.js +1 -1
  816. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ttf.js +1 -1
  817. package/dist/web/standalone/node_modules/caniuse-lite/data/features/typedarrays.js +1 -1
  818. package/dist/web/standalone/node_modules/caniuse-lite/data/features/u2f.js +1 -1
  819. package/dist/web/standalone/node_modules/caniuse-lite/data/features/unhandledrejection.js +1 -1
  820. package/dist/web/standalone/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js +1 -1
  821. package/dist/web/standalone/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js +1 -1
  822. package/dist/web/standalone/node_modules/caniuse-lite/data/features/url.js +1 -1
  823. package/dist/web/standalone/node_modules/caniuse-lite/data/features/urlsearchparams.js +1 -1
  824. package/dist/web/standalone/node_modules/caniuse-lite/data/features/use-strict.js +1 -1
  825. package/dist/web/standalone/node_modules/caniuse-lite/data/features/user-select-none.js +1 -1
  826. package/dist/web/standalone/node_modules/caniuse-lite/data/features/user-timing.js +1 -1
  827. package/dist/web/standalone/node_modules/caniuse-lite/data/features/variable-fonts.js +1 -1
  828. package/dist/web/standalone/node_modules/caniuse-lite/data/features/vector-effect.js +1 -1
  829. package/dist/web/standalone/node_modules/caniuse-lite/data/features/vibration.js +1 -1
  830. package/dist/web/standalone/node_modules/caniuse-lite/data/features/video.js +1 -1
  831. package/dist/web/standalone/node_modules/caniuse-lite/data/features/videotracks.js +1 -1
  832. package/dist/web/standalone/node_modules/caniuse-lite/data/features/view-transitions.js +1 -1
  833. package/dist/web/standalone/node_modules/caniuse-lite/data/features/viewport-unit-variants.js +1 -1
  834. package/dist/web/standalone/node_modules/caniuse-lite/data/features/viewport-units.js +1 -1
  835. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wai-aria.js +1 -1
  836. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wake-lock.js +1 -1
  837. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-bigint.js +1 -1
  838. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-bulk-memory.js +1 -1
  839. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-extended-const.js +1 -1
  840. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-gc.js +1 -1
  841. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-multi-memory.js +1 -1
  842. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-multi-value.js +1 -1
  843. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-mutable-globals.js +1 -1
  844. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-nontrapping-fptoint.js +1 -1
  845. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-reference-types.js +1 -1
  846. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-relaxed-simd.js +1 -1
  847. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-signext.js +1 -1
  848. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-simd.js +1 -1
  849. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-tail-calls.js +1 -1
  850. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-threads.js +1 -1
  851. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm.js +1 -1
  852. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wav.js +1 -1
  853. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wbr-element.js +1 -1
  854. package/dist/web/standalone/node_modules/caniuse-lite/data/features/web-animation.js +1 -1
  855. package/dist/web/standalone/node_modules/caniuse-lite/data/features/web-app-manifest.js +1 -1
  856. package/dist/web/standalone/node_modules/caniuse-lite/data/features/web-bluetooth.js +1 -1
  857. package/dist/web/standalone/node_modules/caniuse-lite/data/features/web-serial.js +1 -1
  858. package/dist/web/standalone/node_modules/caniuse-lite/data/features/web-share.js +1 -1
  859. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webauthn.js +1 -1
  860. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webcodecs.js +1 -1
  861. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webgl.js +1 -1
  862. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webgl2.js +1 -1
  863. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webgpu.js +1 -1
  864. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webhid.js +1 -1
  865. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webkit-user-drag.js +1 -1
  866. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webm.js +1 -1
  867. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webnfc.js +1 -1
  868. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webp.js +1 -1
  869. package/dist/web/standalone/node_modules/caniuse-lite/data/features/websockets.js +1 -1
  870. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webtransport.js +1 -1
  871. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webusb.js +1 -1
  872. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webvr.js +1 -1
  873. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webvtt.js +1 -1
  874. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webworkers.js +1 -1
  875. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webxr.js +1 -1
  876. package/dist/web/standalone/node_modules/caniuse-lite/data/features/will-change.js +1 -1
  877. package/dist/web/standalone/node_modules/caniuse-lite/data/features/woff.js +1 -1
  878. package/dist/web/standalone/node_modules/caniuse-lite/data/features/woff2.js +1 -1
  879. package/dist/web/standalone/node_modules/caniuse-lite/data/features/word-break.js +1 -1
  880. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wordwrap.js +1 -1
  881. package/dist/web/standalone/node_modules/caniuse-lite/data/features/x-doc-messaging.js +1 -1
  882. package/dist/web/standalone/node_modules/caniuse-lite/data/features/x-frame-options.js +1 -1
  883. package/dist/web/standalone/node_modules/caniuse-lite/data/features/xhr2.js +1 -1
  884. package/dist/web/standalone/node_modules/caniuse-lite/data/features/xhtml.js +1 -1
  885. package/dist/web/standalone/node_modules/caniuse-lite/data/features/xhtmlsmil.js +1 -1
  886. package/dist/web/standalone/node_modules/caniuse-lite/data/features/xml-serializer.js +1 -1
  887. package/dist/web/standalone/node_modules/caniuse-lite/data/features/zstd.js +1 -1
  888. package/dist/web/standalone/node_modules/caniuse-lite/package.json +7 -7
  889. package/dist/web/standalone/node_modules/next/dist/build/swc/index.js +1 -1
  890. package/dist/web/standalone/node_modules/next/dist/build/webpack-config.js +3 -3
  891. package/dist/web/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +7 -7
  892. package/dist/web/standalone/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js +6 -6
  893. package/dist/web/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
  894. package/dist/web/standalone/node_modules/next/dist/server/config-schema.js +10 -2
  895. package/dist/web/standalone/node_modules/next/dist/server/config.js +1 -1
  896. package/dist/web/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
  897. package/dist/web/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  898. package/dist/web/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  899. package/dist/web/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
  900. package/dist/web/standalone/node_modules/next/dist/server/render.js +27 -20
  901. package/dist/web/standalone/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +1 -1
  902. package/dist/web/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  903. package/dist/web/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  904. package/dist/web/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
  905. package/dist/web/standalone/node_modules/next/package.json +15 -15
  906. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/container.js +26 -18
  907. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/css-syntax-error.js +47 -14
  908. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/input.js +54 -29
  909. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/lazy-result.js +47 -37
  910. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/map-generator.js +26 -9
  911. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/no-work-result.js +57 -55
  912. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/node.js +99 -31
  913. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/parser.js +10 -9
  914. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/previous-map.js +30 -11
  915. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/processor.js +7 -7
  916. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/result.js +5 -5
  917. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/stringifier.js +69 -28
  918. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/tokenize.js +6 -2
  919. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/package.json +48 -48
  920. package/dist/web/standalone/node_modules/react/cjs/react.development.js +1 -1
  921. package/dist/web/standalone/node_modules/react/cjs/react.production.js +1 -1
  922. package/dist/web/standalone/node_modules/react/package.json +1 -1
  923. package/dist/web/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js +1 -1
  924. package/dist/web/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js +1 -1
  925. package/dist/web/standalone/node_modules/react-dom/cjs/react-dom-server.browser.production.js +3 -3
  926. package/dist/web/standalone/node_modules/react-dom/cjs/react-dom-server.edge.production.js +3 -3
  927. package/dist/web/standalone/node_modules/react-dom/cjs/react-dom-server.node.production.js +3 -3
  928. package/dist/web/standalone/node_modules/react-dom/cjs/react-dom.production.js +1 -1
  929. package/dist/web/standalone/node_modules/react-dom/package.json +2 -2
  930. package/dist/web/standalone/package.json +12 -7
  931. package/dist/web/standalone/server.js +1 -1
  932. package/dist/worktree-cli.d.ts +5 -4
  933. package/dist/worktree-cli.js +17 -17
  934. package/package.json +2 -2
  935. package/packages/mcp-server/README.md +13 -11
  936. package/packages/mcp-server/dist/env-writer.d.ts +5 -1
  937. package/packages/mcp-server/dist/env-writer.d.ts.map +1 -1
  938. package/packages/mcp-server/dist/env-writer.js +41 -8
  939. package/packages/mcp-server/dist/env-writer.js.map +1 -1
  940. package/packages/mcp-server/dist/readers/graph.d.ts.map +1 -1
  941. package/packages/mcp-server/dist/readers/graph.js +7 -6
  942. package/packages/mcp-server/dist/readers/graph.js.map +1 -1
  943. package/packages/mcp-server/dist/readers/paths.d.ts +2 -0
  944. package/packages/mcp-server/dist/readers/paths.d.ts.map +1 -1
  945. package/packages/mcp-server/dist/readers/paths.js +163 -59
  946. package/packages/mcp-server/dist/readers/paths.js.map +1 -1
  947. package/packages/mcp-server/dist/remote-questions.d.ts +27 -0
  948. package/packages/mcp-server/dist/remote-questions.d.ts.map +1 -1
  949. package/packages/mcp-server/dist/remote-questions.js +47 -2
  950. package/packages/mcp-server/dist/remote-questions.js.map +1 -1
  951. package/packages/mcp-server/dist/server.d.ts +39 -1
  952. package/packages/mcp-server/dist/server.d.ts.map +1 -1
  953. package/packages/mcp-server/dist/server.js +228 -52
  954. package/packages/mcp-server/dist/server.js.map +1 -1
  955. package/packages/mcp-server/dist/session-manager.d.ts +6 -1
  956. package/packages/mcp-server/dist/session-manager.d.ts.map +1 -1
  957. package/packages/mcp-server/dist/session-manager.js +35 -13
  958. package/packages/mcp-server/dist/session-manager.js.map +1 -1
  959. package/packages/mcp-server/dist/workflow-tools.d.ts +7 -1
  960. package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
  961. package/packages/mcp-server/dist/workflow-tools.js +160 -30
  962. package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
  963. package/packages/mcp-server/src/env-writer.test.ts +76 -1
  964. package/packages/mcp-server/src/env-writer.ts +48 -9
  965. package/packages/mcp-server/src/import-candidates.test.ts +9 -4
  966. package/packages/mcp-server/src/mcp-server.test.ts +422 -2
  967. package/packages/mcp-server/src/parse-workflow-args.test.ts +80 -0
  968. package/packages/mcp-server/src/readers/graph.test.ts +5 -2
  969. package/packages/mcp-server/src/readers/graph.ts +14 -6
  970. package/packages/mcp-server/src/readers/paths.test.ts +67 -0
  971. package/packages/mcp-server/src/readers/paths.ts +173 -56
  972. package/packages/mcp-server/src/remote-questions.test.ts +103 -0
  973. package/packages/mcp-server/src/remote-questions.ts +53 -2
  974. package/packages/mcp-server/src/server.ts +284 -59
  975. package/packages/mcp-server/src/session-manager.ts +33 -12
  976. package/packages/mcp-server/src/workflow-tools.test.ts +230 -136
  977. package/packages/mcp-server/src/workflow-tools.ts +172 -34
  978. package/packages/mcp-server/tsconfig.tsbuildinfo +1 -1
  979. package/packages/native/dist/stream-process/index.js +207 -6
  980. package/packages/native/src/__tests__/stream-process.test.mjs +51 -18
  981. package/packages/native/src/stream-process/index.ts +249 -11
  982. package/packages/native/tsconfig.tsbuildinfo +1 -1
  983. package/packages/pi-ai/dist/providers/anthropic-bearer-auth.test.js +8 -2
  984. package/packages/pi-ai/dist/providers/anthropic-bearer-auth.test.js.map +1 -1
  985. package/packages/pi-ai/dist/providers/minimax-tool-name.test.js +8 -2
  986. package/packages/pi-ai/dist/providers/minimax-tool-name.test.js.map +1 -1
  987. package/packages/pi-ai/src/providers/anthropic-bearer-auth.test.ts +8 -2
  988. package/packages/pi-ai/src/providers/minimax-tool-name.test.ts +9 -2
  989. package/packages/pi-ai/tsconfig.tsbuildinfo +1 -1
  990. package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.js +278 -0
  991. package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.js.map +1 -1
  992. package/packages/pi-coding-agent/dist/core/agent-session.d.ts +7 -0
  993. package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
  994. package/packages/pi-coding-agent/dist/core/agent-session.js +125 -55
  995. package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
  996. package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts +1 -0
  997. package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts.map +1 -1
  998. package/packages/pi-coding-agent/dist/core/extensions/runner.js +43 -2
  999. package/packages/pi-coding-agent/dist/core/extensions/runner.js.map +1 -1
  1000. package/packages/pi-coding-agent/dist/core/extensions/runner.test.js +79 -1
  1001. package/packages/pi-coding-agent/dist/core/extensions/runner.test.js.map +1 -1
  1002. package/packages/pi-coding-agent/dist/core/tools/bash-spawn-windows.test.js +24 -6
  1003. package/packages/pi-coding-agent/dist/core/tools/bash-spawn-windows.test.js.map +1 -1
  1004. package/packages/pi-coding-agent/src/core/agent-session-abort-order.test.ts +319 -0
  1005. package/packages/pi-coding-agent/src/core/agent-session.ts +128 -59
  1006. package/packages/pi-coding-agent/src/core/extensions/runner.test.ts +89 -1
  1007. package/packages/pi-coding-agent/src/core/extensions/runner.ts +46 -2
  1008. package/packages/pi-coding-agent/src/core/tools/bash-spawn-windows.test.ts +26 -6
  1009. package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -1
  1010. package/src/resources/GSD-WORKFLOW.md +29 -42
  1011. package/src/resources/extensions/async-jobs/job-manager.ts +3 -0
  1012. package/src/resources/extensions/bg-shell/bg-shell-lifecycle.ts +3 -2
  1013. package/src/resources/extensions/bg-shell/utilities.ts +2 -1
  1014. package/src/resources/extensions/browser-tools/tools/intent.ts +13 -2
  1015. package/src/resources/extensions/claude-code-cli/stream-adapter.ts +21 -8
  1016. package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +34 -13
  1017. package/src/resources/extensions/github-sync/cli.ts +3 -0
  1018. package/src/resources/extensions/github-sync/sync.ts +88 -58
  1019. package/src/resources/extensions/github-sync/tests/sync-source.test.ts +26 -0
  1020. package/src/resources/extensions/gsd/auto/loop-deps.ts +1 -1
  1021. package/src/resources/extensions/gsd/auto/phases.ts +100 -28
  1022. package/src/resources/extensions/gsd/auto/session.ts +7 -0
  1023. package/src/resources/extensions/gsd/auto-artifact-paths.ts +60 -30
  1024. package/src/resources/extensions/gsd/auto-dashboard.ts +12 -2
  1025. package/src/resources/extensions/gsd/auto-direct-dispatch.ts +2 -0
  1026. package/src/resources/extensions/gsd/auto-dispatch.ts +257 -93
  1027. package/src/resources/extensions/gsd/auto-post-unit.ts +131 -45
  1028. package/src/resources/extensions/gsd/auto-prompts.ts +104 -7
  1029. package/src/resources/extensions/gsd/auto-recovery.ts +75 -13
  1030. package/src/resources/extensions/gsd/auto-start.ts +72 -72
  1031. package/src/resources/extensions/gsd/auto-timeout-recovery.ts +22 -0
  1032. package/src/resources/extensions/gsd/auto-timers.ts +37 -5
  1033. package/src/resources/extensions/gsd/auto-worktree.ts +364 -238
  1034. package/src/resources/extensions/gsd/auto.ts +130 -16
  1035. package/src/resources/extensions/gsd/bootstrap/agent-end-recovery.ts +21 -2
  1036. package/src/resources/extensions/gsd/bootstrap/db-tools.ts +38 -7
  1037. package/src/resources/extensions/gsd/bootstrap/dynamic-tools.ts +9 -84
  1038. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +98 -18
  1039. package/src/resources/extensions/gsd/bootstrap/system-context.ts +3 -4
  1040. package/src/resources/extensions/gsd/bootstrap/tests/write-gate-basepath.test.ts +103 -0
  1041. package/src/resources/extensions/gsd/bootstrap/write-gate.ts +165 -63
  1042. package/src/resources/extensions/gsd/branch-patterns.ts +3 -3
  1043. package/src/resources/extensions/gsd/commands/catalog.ts +7 -6
  1044. package/src/resources/extensions/gsd/commands/context.ts +40 -6
  1045. package/src/resources/extensions/gsd/commands/dispatcher.ts +11 -5
  1046. package/src/resources/extensions/gsd/commands/handlers/auto.ts +2 -1
  1047. package/src/resources/extensions/gsd/commands/handlers/core.ts +2 -0
  1048. package/src/resources/extensions/gsd/commands/handlers/ops.ts +5 -0
  1049. package/src/resources/extensions/gsd/commands/handlers/workflow.ts +23 -2
  1050. package/src/resources/extensions/gsd/commands-bootstrap.ts +7 -0
  1051. package/src/resources/extensions/gsd/commands-codebase.ts +2 -1
  1052. package/src/resources/extensions/gsd/commands-config.ts +3 -3
  1053. package/src/resources/extensions/gsd/commands-debug.ts +27 -1
  1054. package/src/resources/extensions/gsd/commands-eval-review.ts +716 -0
  1055. package/src/resources/extensions/gsd/commands-extensions.ts +4 -4
  1056. package/src/resources/extensions/gsd/commands-handlers.ts +8 -8
  1057. package/src/resources/extensions/gsd/commands-logs.ts +2 -1
  1058. package/src/resources/extensions/gsd/commands-mcp-status.ts +2 -2
  1059. package/src/resources/extensions/gsd/commands-scan.ts +2 -1
  1060. package/src/resources/extensions/gsd/commands-ship.ts +101 -1
  1061. package/src/resources/extensions/gsd/commands-workflow-templates.ts +5 -4
  1062. package/src/resources/extensions/gsd/context-budget.ts +13 -2
  1063. package/src/resources/extensions/gsd/db-writer.ts +169 -89
  1064. package/src/resources/extensions/gsd/deep-project-setup-policy.ts +257 -0
  1065. package/src/resources/extensions/gsd/delegation-policy.ts +197 -0
  1066. package/src/resources/extensions/gsd/detection.ts +7 -7
  1067. package/src/resources/extensions/gsd/dispatch-guard.ts +6 -11
  1068. package/src/resources/extensions/gsd/docs/preferences-reference.md +6 -4
  1069. package/src/resources/extensions/gsd/doctor-engine-checks.ts +2 -2
  1070. package/src/resources/extensions/gsd/doctor-providers.ts +2 -2
  1071. package/src/resources/extensions/gsd/doctor-runtime-checks.ts +53 -0
  1072. package/src/resources/extensions/gsd/doctor-types.ts +1 -0
  1073. package/src/resources/extensions/gsd/eval-review-schema.ts +243 -0
  1074. package/src/resources/extensions/gsd/forensics.ts +10 -4
  1075. package/src/resources/extensions/gsd/git-service.ts +81 -3
  1076. package/src/resources/extensions/gsd/gsd-db.ts +272 -10
  1077. package/src/resources/extensions/gsd/gsd-home.ts +30 -0
  1078. package/src/resources/extensions/gsd/guided-flow-queue.ts +1 -1
  1079. package/src/resources/extensions/gsd/guided-flow.ts +499 -122
  1080. package/src/resources/extensions/gsd/init-wizard.ts +17 -20
  1081. package/src/resources/extensions/gsd/interrupted-session.ts +39 -2
  1082. package/src/resources/extensions/gsd/key-manager.ts +2 -2
  1083. package/src/resources/extensions/gsd/markdown-renderer.ts +58 -79
  1084. package/src/resources/extensions/gsd/metrics.ts +321 -1
  1085. package/src/resources/extensions/gsd/migrate/command.ts +3 -3
  1086. package/src/resources/extensions/gsd/milestone-scope-classifier.ts +15 -8
  1087. package/src/resources/extensions/gsd/native-git-bridge.ts +19 -41
  1088. package/src/resources/extensions/gsd/onboarding-state.ts +2 -2
  1089. package/src/resources/extensions/gsd/parallel-merge.ts +14 -13
  1090. package/src/resources/extensions/gsd/parallel-monitor-overlay.ts +5 -2
  1091. package/src/resources/extensions/gsd/paths.ts +158 -9
  1092. package/src/resources/extensions/gsd/planning-depth.ts +137 -0
  1093. package/src/resources/extensions/gsd/preferences-models.ts +18 -1
  1094. package/src/resources/extensions/gsd/preferences-skills.ts +2 -1
  1095. package/src/resources/extensions/gsd/preferences-types.ts +11 -0
  1096. package/src/resources/extensions/gsd/preferences-validation.ts +9 -0
  1097. package/src/resources/extensions/gsd/preferences.ts +26 -5
  1098. package/src/resources/extensions/gsd/project-research-policy.ts +259 -0
  1099. package/src/resources/extensions/gsd/prompt-loader.ts +2 -3
  1100. package/src/resources/extensions/gsd/prompts/complete-slice.md +5 -5
  1101. package/src/resources/extensions/gsd/prompts/execute-task.md +3 -3
  1102. package/src/resources/extensions/gsd/prompts/guided-discuss-milestone.md +8 -1
  1103. package/src/resources/extensions/gsd/prompts/guided-discuss-project.md +148 -0
  1104. package/src/resources/extensions/gsd/prompts/guided-discuss-requirements.md +126 -0
  1105. package/src/resources/extensions/gsd/prompts/guided-discuss-slice.md +8 -1
  1106. package/src/resources/extensions/gsd/prompts/guided-research-decision.md +70 -0
  1107. package/src/resources/extensions/gsd/prompts/guided-research-project.md +120 -0
  1108. package/src/resources/extensions/gsd/prompts/guided-workflow-preferences.md +68 -0
  1109. package/src/resources/extensions/gsd/prompts/plan-milestone.md +8 -2
  1110. package/src/resources/extensions/gsd/prompts/plan-slice.md +9 -7
  1111. package/src/resources/extensions/gsd/prompts/refine-slice.md +1 -1
  1112. package/src/resources/extensions/gsd/prompts/system.md +4 -4
  1113. package/src/resources/extensions/gsd/queue-order.ts +6 -1
  1114. package/src/resources/extensions/gsd/repo-identity.ts +15 -9
  1115. package/src/resources/extensions/gsd/rethink.ts +2 -1
  1116. package/src/resources/extensions/gsd/safety/git-checkpoint.ts +10 -1
  1117. package/src/resources/extensions/gsd/schemas/__fixtures__/valid-project.md +26 -0
  1118. package/src/resources/extensions/gsd/schemas/__fixtures__/valid-requirements.md +57 -0
  1119. package/src/resources/extensions/gsd/schemas/__fixtures__/valid-roadmap.md +19 -0
  1120. package/src/resources/extensions/gsd/schemas/parsers.ts +346 -0
  1121. package/src/resources/extensions/gsd/schemas/validate.ts +452 -0
  1122. package/src/resources/extensions/gsd/skill-telemetry.ts +3 -2
  1123. package/src/resources/extensions/gsd/slice-cadence.ts +71 -6
  1124. package/src/resources/extensions/gsd/state.ts +91 -389
  1125. package/src/resources/extensions/gsd/templates/project.md +10 -0
  1126. package/src/resources/extensions/gsd/tests/artifact-corruption-2630.test.ts +1 -0
  1127. package/src/resources/extensions/gsd/tests/artifact-validators.test.ts +524 -0
  1128. package/src/resources/extensions/gsd/tests/auto-dashboard.test.ts +20 -0
  1129. package/src/resources/extensions/gsd/tests/auto-discuss-milestone-deadlock-4973.test.ts +42 -17
  1130. package/src/resources/extensions/gsd/tests/auto-loop.test.ts +97 -31
  1131. package/src/resources/extensions/gsd/tests/auto-paused-session-validation.test.ts +6 -0
  1132. package/src/resources/extensions/gsd/tests/auto-remediate-slice-status.test.ts +21 -34
  1133. package/src/resources/extensions/gsd/tests/auto-session-scope.test.ts +331 -0
  1134. package/src/resources/extensions/gsd/tests/auto-start-clean-runtime-db-gated.test.ts +32 -1
  1135. package/src/resources/extensions/gsd/tests/auto-start-index-lock.test.ts +38 -0
  1136. package/src/resources/extensions/gsd/tests/auto-worktree-registry.test.ts +176 -0
  1137. package/src/resources/extensions/gsd/tests/auto-wrapup-inflight-guard.test.ts +56 -0
  1138. package/src/resources/extensions/gsd/tests/commands-eval-review.test.ts +612 -0
  1139. package/src/resources/extensions/gsd/tests/commands-ship-eval-warn.test.ts +155 -0
  1140. package/src/resources/extensions/gsd/tests/complete-task-rollback-evidence.test.ts +6 -7
  1141. package/src/resources/extensions/gsd/tests/complete-task.test.ts +8 -6
  1142. package/src/resources/extensions/gsd/tests/completed-at-reconcile.test.ts +12 -27
  1143. package/src/resources/extensions/gsd/tests/completed-units-metrics-sync.test.ts +18 -5
  1144. package/src/resources/extensions/gsd/tests/context-budget.test.ts +28 -0
  1145. package/src/resources/extensions/gsd/tests/crash-recovery.test.ts +50 -0
  1146. package/src/resources/extensions/gsd/tests/custom-engine-loop-integration.test.ts +2 -1
  1147. package/src/resources/extensions/gsd/tests/db-path-worktree-symlink.test.ts +4 -4
  1148. package/src/resources/extensions/gsd/tests/db-writer-path-containment.test.ts +152 -0
  1149. package/src/resources/extensions/gsd/tests/db-writer-root-artifact.test.ts +221 -0
  1150. package/src/resources/extensions/gsd/tests/db-writer-scope.test.ts +230 -0
  1151. package/src/resources/extensions/gsd/tests/db-writer.test.ts +165 -21
  1152. package/src/resources/extensions/gsd/tests/debug-command-handler.test.ts +37 -0
  1153. package/src/resources/extensions/gsd/tests/deep-mode-integration.test.ts +406 -0
  1154. package/src/resources/extensions/gsd/tests/deep-planning-mode-dispatch.test.ts +881 -0
  1155. package/src/resources/extensions/gsd/tests/deep-project-auto-loop.test.ts +1562 -0
  1156. package/src/resources/extensions/gsd/tests/deep-project-setup-policy.test.ts +193 -0
  1157. package/src/resources/extensions/gsd/tests/delegation-policy.test.ts +151 -0
  1158. package/src/resources/extensions/gsd/tests/derive-state-crossval.test.ts +6 -5
  1159. package/src/resources/extensions/gsd/tests/derive-state-db-disk-reconcile.test.ts +10 -38
  1160. package/src/resources/extensions/gsd/tests/derive-state-db.test.ts +136 -56
  1161. package/src/resources/extensions/gsd/tests/derive-state-draft.test.ts +3 -0
  1162. package/src/resources/extensions/gsd/tests/derive-state-helpers.test.ts +119 -61
  1163. package/src/resources/extensions/gsd/tests/derive-state.test.ts +4 -0
  1164. package/src/resources/extensions/gsd/tests/dispatch-backgroundable-annotation.test.ts +55 -0
  1165. package/src/resources/extensions/gsd/tests/dispatch-complete-milestone-guard.test.ts +6 -20
  1166. package/src/resources/extensions/gsd/tests/dispatch-guard.test.ts +4 -5
  1167. package/src/resources/extensions/gsd/tests/dispatcher-stuck-planning.test.ts +14 -15
  1168. package/src/resources/extensions/gsd/tests/draft-promotion.test.ts +3 -23
  1169. package/src/resources/extensions/gsd/tests/ensure-db-open.test.ts +11 -16
  1170. package/src/resources/extensions/gsd/tests/escalation.test.ts +2 -1
  1171. package/src/resources/extensions/gsd/tests/eval-review-schema.test.ts +282 -0
  1172. package/src/resources/extensions/gsd/tests/gate-1b-orphan-discrimination.test.ts +193 -0
  1173. package/src/resources/extensions/gsd/tests/gate-1b-recovery-bound-corrections.test.ts +246 -0
  1174. package/src/resources/extensions/gsd/tests/gate-1b-recovery-bound.test.ts +218 -0
  1175. package/src/resources/extensions/gsd/tests/git-checkpoint.test.ts +9 -0
  1176. package/src/resources/extensions/gsd/tests/gsd-db-failed-open-restore.test.ts +117 -0
  1177. package/src/resources/extensions/gsd/tests/gsd-db-workspace-scope.test.ts +226 -0
  1178. package/src/resources/extensions/gsd/tests/gsd-db.test.ts +2 -1
  1179. package/src/resources/extensions/gsd/tests/gsd-home.test.ts +43 -0
  1180. package/src/resources/extensions/gsd/tests/gsd-no-project-error-runtime.test.ts +15 -1
  1181. package/src/resources/extensions/gsd/tests/gsd-root-canonical.test.ts +66 -0
  1182. package/src/resources/extensions/gsd/tests/gsd-root-home-guard.test.ts +149 -0
  1183. package/src/resources/extensions/gsd/tests/gsdroot-worktree-detection.test.ts +15 -36
  1184. package/src/resources/extensions/gsd/tests/guided-flow-prompt-consolidation.test.ts +133 -0
  1185. package/src/resources/extensions/gsd/tests/handler-worktree-write-isolation.test.ts +57 -0
  1186. package/src/resources/extensions/gsd/tests/has-pending-deep-stage.test.ts +98 -0
  1187. package/src/resources/extensions/gsd/tests/init-skip-git.test.ts +19 -0
  1188. package/src/resources/extensions/gsd/tests/init-wizard.test.ts +17 -0
  1189. package/src/resources/extensions/gsd/tests/integration/auto-worktree.test.ts +1 -0
  1190. package/src/resources/extensions/gsd/tests/integration/commands-eval-review.integration.test.ts +254 -0
  1191. package/src/resources/extensions/gsd/tests/integration/doctor-runtime.test.ts +40 -0
  1192. package/src/resources/extensions/gsd/tests/integration/git-service.test.ts +42 -0
  1193. package/src/resources/extensions/gsd/tests/integration/parallel-merge.test.ts +15 -15
  1194. package/src/resources/extensions/gsd/tests/integration/state-machine-edge-cases.test.ts +15 -5
  1195. package/src/resources/extensions/gsd/tests/integration/workspace-collapse-integration.test.ts +371 -0
  1196. package/src/resources/extensions/gsd/tests/journal-integration.test.ts +124 -7
  1197. package/src/resources/extensions/gsd/tests/markdown-renderer.test.ts +84 -9
  1198. package/src/resources/extensions/gsd/tests/md-importer.test.ts +2 -1
  1199. package/src/resources/extensions/gsd/tests/memory-store.test.ts +3 -2
  1200. package/src/resources/extensions/gsd/tests/metrics-atomic-merge.test.ts +222 -0
  1201. package/src/resources/extensions/gsd/tests/metrics-lock-hardening.test.ts +400 -0
  1202. package/src/resources/extensions/gsd/tests/metrics-lock-not-acquired.test.ts +141 -0
  1203. package/src/resources/extensions/gsd/tests/metrics-lock-retry-sleep.test.ts +287 -0
  1204. package/src/resources/extensions/gsd/tests/metrics-prune-cache-invalidation.test.ts +149 -0
  1205. package/src/resources/extensions/gsd/tests/metrics-scope.test.ts +378 -0
  1206. package/src/resources/extensions/gsd/tests/milestone-scope-classifier.test.ts +19 -0
  1207. package/src/resources/extensions/gsd/tests/model-unittype-mapping.test.ts +19 -0
  1208. package/src/resources/extensions/gsd/tests/native-git-bridge-exec-fallback.test.ts +22 -2
  1209. package/src/resources/extensions/gsd/tests/none-mode-gates.test.ts +51 -3
  1210. package/src/resources/extensions/gsd/tests/originalbase-path-comparison.test.ts +329 -0
  1211. package/src/resources/extensions/gsd/tests/park-milestone.test.ts +2 -0
  1212. package/src/resources/extensions/gsd/tests/path-cache-decoupled.test.ts +209 -0
  1213. package/src/resources/extensions/gsd/tests/path-normalization-unified.test.ts +175 -0
  1214. package/src/resources/extensions/gsd/tests/paths-cache.test.ts +170 -0
  1215. package/src/resources/extensions/gsd/tests/pending-autostart-scope.test.ts +120 -0
  1216. package/src/resources/extensions/gsd/tests/plan-milestone-artifact-verification.test.ts +40 -0
  1217. package/src/resources/extensions/gsd/tests/plan-slice-prompt.test.ts +0 -43
  1218. package/src/resources/extensions/gsd/tests/plan-slice.test.ts +33 -0
  1219. package/src/resources/extensions/gsd/tests/planning-depth-setter.test.ts +172 -0
  1220. package/src/resources/extensions/gsd/tests/post-unit-git-failure.test.ts +18 -0
  1221. package/src/resources/extensions/gsd/tests/preferences.test.ts +72 -0
  1222. package/src/resources/extensions/gsd/tests/prefs-wizard-coverage.test.ts +1 -0
  1223. package/src/resources/extensions/gsd/tests/progressive-planning.test.ts +25 -16
  1224. package/src/resources/extensions/gsd/tests/project-root-cwd-crash.test.ts +4 -4
  1225. package/src/resources/extensions/gsd/tests/projection-regression.test.ts +1 -0
  1226. package/src/resources/extensions/gsd/tests/prompt-budget-enforcement.test.ts +2 -2
  1227. package/src/resources/extensions/gsd/tests/prompt-contracts.test.ts +232 -28
  1228. package/src/resources/extensions/gsd/tests/quality-gates.test.ts +7 -16
  1229. package/src/resources/extensions/gsd/tests/ready-phrase-no-files-4573.test.ts +267 -0
  1230. package/src/resources/extensions/gsd/tests/register-hooks-compaction-checkpoint.test.ts +6 -1
  1231. package/src/resources/extensions/gsd/tests/register-hooks-depth-verification.test.ts +286 -8
  1232. package/src/resources/extensions/gsd/tests/replan-slice.test.ts +3 -0
  1233. package/src/resources/extensions/gsd/tests/resolve-ts.mjs +4 -0
  1234. package/src/resources/extensions/gsd/tests/resume-missing-worktree-warning.test.ts +209 -0
  1235. package/src/resources/extensions/gsd/tests/rogue-file-detection.test.ts +3 -4
  1236. package/src/resources/extensions/gsd/tests/slice-cadence.test.ts +36 -0
  1237. package/src/resources/extensions/gsd/tests/slice-disk-reconcile.test.ts +10 -56
  1238. package/src/resources/extensions/gsd/tests/stale-slice-rows.test.ts +15 -16
  1239. package/src/resources/extensions/gsd/tests/start-auto-detached.test.ts +53 -0
  1240. package/src/resources/extensions/gsd/tests/stash-pop-gsd-conflict.test.ts +8 -2
  1241. package/src/resources/extensions/gsd/tests/stash-queued-context-files.test.ts +12 -6
  1242. package/src/resources/extensions/gsd/tests/state-corruption-2945.test.ts +1 -0
  1243. package/src/resources/extensions/gsd/tests/state-machine-full-walkthrough.test.ts +23 -27
  1244. package/src/resources/extensions/gsd/tests/steer-worktree-path.test.ts +13 -14
  1245. package/src/resources/extensions/gsd/tests/stop-auto-remote.test.ts +4 -3
  1246. package/src/resources/extensions/gsd/tests/sync-layer-scope.test.ts +453 -0
  1247. package/src/resources/extensions/gsd/tests/sync-worktree-skip-current.test.ts +10 -33
  1248. package/src/resources/extensions/gsd/tests/teardown-chdir-failure-clears-registry.test.ts +162 -0
  1249. package/src/resources/extensions/gsd/tests/teardown-cleanup-parity.test.ts +102 -0
  1250. package/src/resources/extensions/gsd/tests/teardown-failure-clears-registry.test.ts +186 -0
  1251. package/src/resources/extensions/gsd/tests/token-counter.test.ts +9 -0
  1252. package/src/resources/extensions/gsd/tests/tool-invocation-error-loop-break.test.ts +1 -1
  1253. package/src/resources/extensions/gsd/tests/tool-param-optionality.test.ts +34 -0
  1254. package/src/resources/extensions/gsd/tests/unit-context-manifest.test.ts +10 -0
  1255. package/src/resources/extensions/gsd/tests/unit-runtime.test.ts +41 -0
  1256. package/src/resources/extensions/gsd/tests/uok-plan-v2-wiring.test.ts +48 -0
  1257. package/src/resources/extensions/gsd/tests/validate-milestone-write-order.test.ts +7 -8
  1258. package/src/resources/extensions/gsd/tests/validate-milestone.test.ts +9 -15
  1259. package/src/resources/extensions/gsd/tests/validator-scope-parity.test.ts +239 -0
  1260. package/src/resources/extensions/gsd/tests/verify-artifact-tightened.test.ts +52 -1
  1261. package/src/resources/extensions/gsd/tests/workflow-logger-wiring.test.ts +12 -7
  1262. package/src/resources/extensions/gsd/tests/workflow-mcp-auto-prep.test.ts +4 -4
  1263. package/src/resources/extensions/gsd/tests/workflow-mcp.test.ts +83 -4
  1264. package/src/resources/extensions/gsd/tests/workflow-tool-executors.test.ts +241 -4
  1265. package/src/resources/extensions/gsd/tests/workspace.test.ts +196 -0
  1266. package/src/resources/extensions/gsd/tests/worktree-db-same-file.test.ts +13 -0
  1267. package/src/resources/extensions/gsd/tests/worktree-main-branch.test.ts +5 -0
  1268. package/src/resources/extensions/gsd/tests/worktree-path-injection.test.ts +2 -1
  1269. package/src/resources/extensions/gsd/tests/worktree-resolver.test.ts +103 -0
  1270. package/src/resources/extensions/gsd/tests/worktree-root-resolution.test.ts +50 -0
  1271. package/src/resources/extensions/gsd/tests/worktree-root.test.ts +69 -0
  1272. package/src/resources/extensions/gsd/tests/worktree-sync-milestones.test.ts +65 -71
  1273. package/src/resources/extensions/gsd/tests/worktree-sync-tasks.test.ts +26 -151
  1274. package/src/resources/extensions/gsd/tests/write-gate-predicates.test.ts +43 -41
  1275. package/src/resources/extensions/gsd/tests/write-gate.test.ts +180 -57
  1276. package/src/resources/extensions/gsd/tests/write-intercept.test.ts +1 -1
  1277. package/src/resources/extensions/gsd/token-counter.ts +2 -1
  1278. package/src/resources/extensions/gsd/tools/complete-milestone.ts +7 -5
  1279. package/src/resources/extensions/gsd/tools/complete-slice.ts +7 -14
  1280. package/src/resources/extensions/gsd/tools/complete-task.ts +19 -34
  1281. package/src/resources/extensions/gsd/tools/plan-slice.ts +10 -9
  1282. package/src/resources/extensions/gsd/tools/validate-milestone.ts +7 -5
  1283. package/src/resources/extensions/gsd/tools/workflow-tool-executors.ts +81 -14
  1284. package/src/resources/extensions/gsd/unit-context-manifest.ts +97 -1
  1285. package/src/resources/extensions/gsd/unit-runtime.ts +76 -24
  1286. package/src/resources/extensions/gsd/uok/plan-v2.ts +19 -1
  1287. package/src/resources/extensions/gsd/user-input-boundary.ts +166 -0
  1288. package/src/resources/extensions/gsd/watch/header-renderer.ts +2 -1
  1289. package/src/resources/extensions/gsd/workflow-install.ts +2 -3
  1290. package/src/resources/extensions/gsd/workflow-manifest.ts +4 -1
  1291. package/src/resources/extensions/gsd/workflow-mcp-auto-prep.ts +2 -18
  1292. package/src/resources/extensions/gsd/workflow-mcp.ts +43 -6
  1293. package/src/resources/extensions/gsd/workflow-migration.ts +4 -3
  1294. package/src/resources/extensions/gsd/workflow-plugins.ts +4 -5
  1295. package/src/resources/extensions/gsd/workflow-reconcile.ts +3 -3
  1296. package/src/resources/extensions/gsd/workflow-templates.ts +2 -3
  1297. package/src/resources/extensions/gsd/workspace.ts +95 -0
  1298. package/src/resources/extensions/gsd/worktree-command.ts +4 -3
  1299. package/src/resources/extensions/gsd/worktree-manager.ts +6 -6
  1300. package/src/resources/extensions/gsd/worktree-resolver.ts +47 -9
  1301. package/src/resources/extensions/gsd/worktree-root.ts +47 -9
  1302. package/src/resources/extensions/gsd/write-intercept.ts +3 -3
  1303. package/src/resources/extensions/mcp-client/index.ts +2 -2
  1304. package/src/resources/extensions/remote-questions/remote-command.ts +2 -1
  1305. package/src/resources/extensions/remote-questions/status.ts +2 -6
  1306. package/src/resources/extensions/remote-questions/store.ts +2 -6
  1307. package/src/resources/extensions/search-the-web/provider.ts +9 -8
  1308. package/src/resources/extensions/shared/next-action-ui.ts +8 -0
  1309. package/src/resources/extensions/shared/tests/next-action-ui-hasui.test.ts +112 -0
  1310. package/src/resources/extensions/subagent/index.ts +22 -9
  1311. package/src/resources/extensions/subagent/isolation.ts +2 -2
  1312. package/src/resources/extensions/subagent/tests/model-override.test.ts +55 -0
  1313. package/src/resources/extensions/ttsr/rule-loader.ts +2 -3
  1314. package/src/resources/extensions/voice/index.ts +3 -2
  1315. package/src/resources/extensions/voice/linux-ready.ts +2 -3
  1316. package/src/resources/skills/verify-before-complete/SKILL.md +1 -1
  1317. package/dist/resources/extensions/gsd/auto-loop.js +0 -13
  1318. package/dist/resources/extensions/gsd/home-dir.js +0 -16
  1319. package/dist/resources/extensions/gsd/prompts/guided-complete-slice.md +0 -3
  1320. package/dist/resources/extensions/gsd/prompts/guided-execute-task.md +0 -3
  1321. package/dist/resources/extensions/gsd/prompts/guided-plan-milestone.md +0 -30
  1322. package/dist/resources/extensions/gsd/prompts/guided-plan-slice.md +0 -3
  1323. package/dist/web/standalone/.next/server/chunks/1926.js +0 -1
  1324. package/dist/web/standalone/.next/server/edge-runtime-webpack.js +0 -2
  1325. package/dist/web/standalone/.next/static/chunks/2824.08296bc2f9654698.js +0 -1
  1326. package/dist/web/standalone/.next/static/chunks/363642f4.cf8b455e0d94b478.js +0 -1
  1327. package/dist/web/standalone/.next/static/chunks/5326.adc4bf49a22f4e67.js +0 -1
  1328. package/dist/web/standalone/.next/static/chunks/webpack-f9f0dc45e4f3ac10.js +0 -1
  1329. package/dist/web/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +0 -1
  1330. package/dist/web/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  1331. package/dist/web/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +0 -42
  1332. package/dist/web/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +0 -30
  1333. package/dist/web/standalone/node_modules/@img/sharp-linuxmusl-x64/LICENSE +0 -191
  1334. package/dist/web/standalone/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
  1335. package/dist/web/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +0 -46
  1336. package/src/resources/extensions/gsd/auto-loop.ts +0 -16
  1337. package/src/resources/extensions/gsd/home-dir.ts +0 -19
  1338. package/src/resources/extensions/gsd/prompts/guided-complete-slice.md +0 -3
  1339. package/src/resources/extensions/gsd/prompts/guided-execute-task.md +0 -3
  1340. package/src/resources/extensions/gsd/prompts/guided-plan-milestone.md +0 -30
  1341. package/src/resources/extensions/gsd/prompts/guided-plan-slice.md +0 -3
  1342. package/src/resources/extensions/gsd/tests/home-dir.test.ts +0 -52
  1343. package/dist/web/standalone/.next/static/{4iu6IYeYfxOq8OidlDqp6 → X7_3k2EBYa-pIRIFXU3sv}/_buildManifest.js +0 -0
  1344. package/dist/web/standalone/.next/static/{4iu6IYeYfxOq8OidlDqp6 → X7_3k2EBYa-pIRIFXU3sv}/_ssgManifest.js +0 -0
  1345. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/at-rule.js +0 -0
  1346. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/comment.js +0 -0
  1347. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/declaration.js +4 -4
  1348. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/document.js +0 -0
  1349. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/fromJSON.js +3 -3
  1350. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/list.js +0 -0
  1351. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/parse.js +1 -1
  1352. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/postcss.js +12 -12
  1353. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/root.js +0 -0
  1354. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/rule.js +6 -6
  1355. /package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/stringify.js +0 -0
  1356. /package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/symbols.js +0 -0
  1357. /package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/terminal-highlight.js +0 -0
  1358. /package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/warn-once.js +0 -0
  1359. /package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/warning.js +0 -0
  1360. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/classes/comparator.js +0 -0
  1361. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/classes/range.js +0 -0
  1362. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/classes/semver.js +0 -0
  1363. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/cmp.js +0 -0
  1364. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/coerce.js +0 -0
  1365. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/compare.js +0 -0
  1366. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/eq.js +0 -0
  1367. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/gt.js +0 -0
  1368. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/gte.js +0 -0
  1369. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/lt.js +0 -0
  1370. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/lte.js +0 -0
  1371. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/neq.js +0 -0
  1372. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/parse.js +0 -0
  1373. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/satisfies.js +0 -0
  1374. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/constants.js +0 -0
  1375. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/debug.js +0 -0
  1376. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/identifiers.js +0 -0
  1377. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/lrucache.js +0 -0
  1378. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/parse-options.js +0 -0
  1379. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/re.js +0 -0
  1380. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/package.json +0 -0
@@ -10,11 +10,18 @@ import type { ExtensionAPI, ExtensionContext, ExtensionCommandContext } from "@g
10
10
  import type { GSDState } from "./types.js";
11
11
  import { showNextAction } from "../shared/tui.js";
12
12
  import { loadFile, saveFile } from "./files.js";
13
- import { isDbAvailable, getMilestoneSlices } from "./gsd-db.js";
13
+ import { isDbAvailable, getMilestone, getMilestoneSlices } from "./gsd-db.js";
14
14
  import { parseRoadmapSlices } from "./roadmap-slices.js";
15
15
  import { loadPrompt, inlineTemplate } from "./prompt-loader.js";
16
- import { buildDiscussMilestonePrompt, buildSkillActivationBlock } from "./auto-prompts.js";
17
- import { deriveState } from "./state.js";
16
+ import {
17
+ buildCompleteSlicePrompt,
18
+ buildDiscussMilestonePrompt,
19
+ buildExecuteTaskPrompt,
20
+ buildPlanMilestonePrompt,
21
+ buildPlanSlicePrompt,
22
+ buildSkillActivationBlock,
23
+ } from "./auto-prompts.js";
24
+ import { deriveState, isGhostMilestone } from "./state.js";
18
25
  import { invalidateAllCaches } from "./cache.js";
19
26
  import { startAutoDetached } from "./auto.js";
20
27
  import { clearLock } from "./crash-recovery.js";
@@ -25,16 +32,16 @@ import {
25
32
  } from "./interrupted-session.js";
26
33
  import { listUnitRuntimeRecords, clearUnitRuntimeRecord } from "./unit-runtime.js";
27
34
  import { resolveExpectedArtifactPath } from "./auto.js";
28
- import { getHomeDir } from "./home-dir.js";
35
+ import { gsdHome } from "./gsd-home.js";
29
36
  import {
30
37
  gsdRoot, milestonesDir, resolveMilestoneFile, resolveMilestonePath,
31
38
  resolveSliceFile, resolveSlicePath, resolveGsdRootFile, relGsdRootFile,
32
- relMilestoneFile, relSliceFile,
39
+ relMilestoneFile, relSliceFile, clearPathCache,
33
40
  } from "./paths.js";
34
41
  import { join } from "node:path";
35
42
  import { readFileSync, existsSync, mkdirSync, readdirSync, rmSync, unlinkSync } from "node:fs";
36
43
  import { readSessionLockData, isSessionLockProcessAlive } from "./session-lock.js";
37
- import { nativeIsRepo, nativeInit } from "./native-git-bridge.js";
44
+ import { nativeAddAll, nativeCommit, nativeHasCommittedHead, nativeIsRepo, nativeInit } from "./native-git-bridge.js";
38
45
  import { isInheritedRepo } from "./repo-identity.js";
39
46
  import { ensureGitignore, ensurePreferences, untrackRuntimeFiles } from "./gitignore.js";
40
47
  import { loadEffectiveGSDPreferences } from "./preferences.js";
@@ -61,6 +68,8 @@ import {
61
68
  formatCodebaseBrief,
62
69
  formatPriorContextBrief,
63
70
  } from "./preparation.js";
71
+ import { verifyExpectedArtifact } from "./auto-recovery.js";
72
+ import { createWorkspace, scopeMilestone, type MilestoneScope } from "./workspace.js";
64
73
 
65
74
  // ─── Re-exports (preserve public API for existing importers) ────────────────
66
75
  export {
@@ -75,6 +84,46 @@ export {
75
84
  } from "./guided-flow-queue.js";
76
85
  import { logWarning } from "./workflow-logger.js";
77
86
 
87
+ // ─── Scope-based validator wrappers ──────────────────────────────────────────
88
+ // These thin wrappers accept a MilestoneScope so callers that already hold a
89
+ // pinned scope never have to re-derive (basePath, milestoneId) separately.
90
+ // The underlying implementations in auto-recovery.ts / auto-artifact-paths.ts /
91
+ // state.ts are unchanged — only the call surface in guided-flow.ts is migrated.
92
+
93
+ /**
94
+ * Scope-based overload of verifyExpectedArtifact.
95
+ * Uses scope.workspace.projectRoot as the authoritative base path, making
96
+ * the check immune to cwd-drift and worktree-path divergence.
97
+ */
98
+ export function verifyExpectedArtifactForScope(
99
+ scope: MilestoneScope,
100
+ unitType: string,
101
+ unitId: string,
102
+ ): boolean {
103
+ return verifyExpectedArtifact(unitType, unitId, scope.workspace.projectRoot);
104
+ }
105
+
106
+ /**
107
+ * Scope-based overload of resolveExpectedArtifactPath.
108
+ * Returns the canonical absolute path (or null) using the scope's projectRoot.
109
+ */
110
+ export function resolveExpectedArtifactPathForScope(
111
+ scope: MilestoneScope,
112
+ unitType: string,
113
+ unitId: string,
114
+ ): string | null {
115
+ return resolveExpectedArtifactPath(unitType, unitId, scope.workspace.projectRoot);
116
+ }
117
+
118
+ /**
119
+ * Scope-based overload of isGhostMilestone.
120
+ * Binds basePath and milestoneId from the scope, ensuring path resolution
121
+ * uses the canonical project root regardless of the cwd at call time.
122
+ */
123
+ export function isGhostMilestoneByScope(scope: MilestoneScope): boolean {
124
+ return isGhostMilestone(scope.workspace.projectRoot, scope.milestoneId);
125
+ }
126
+
78
127
  function needsPlanV2Gate(state: GSDState): boolean {
79
128
  return state.phase === "executing"
80
129
  || state.phase === "summarizing"
@@ -89,7 +138,7 @@ function runPlanV2Gate(
89
138
  basePath: string,
90
139
  state: GSDState,
91
140
  ): PlanV2GateDecision {
92
- const prefs = loadEffectiveGSDPreferences()?.preferences;
141
+ const prefs = loadEffectiveGSDPreferences(basePath)?.preferences;
93
142
  const uokFlags = resolveUokFlags(prefs);
94
143
  if (!uokFlags.planV2 || !needsPlanV2Gate(state)) return "pass";
95
144
  const compiled = ensurePlanV2Graph(basePath, state);
@@ -127,36 +176,119 @@ interface PendingAutoStartEntry {
127
176
  // #4573: counter for how many times the LLM emitted the ready phrase
128
177
  // without writing the required artifacts. Cleared on entry delete/recreate.
129
178
  readyRejectCount?: number;
179
+ // C1: scope is pinned at reservation time so path resolution is immune to
180
+ // cwd-drift between discuss and checkAutoStartAfterDiscuss.
181
+ // TODO(C3): basePath becomes redundant once all consumers migrate to scope.
182
+ scope: MilestoneScope;
183
+ // H1: retry counter for Gate 1b plan-blocked recovery. Capped at
184
+ // MAX_PLAN_BLOCKED_RECOVERIES to prevent infinite recovery loops (#5012).
185
+ planBlockedRecoveryCount: number;
186
+ }
187
+
188
+ interface PendingDeepProjectSetupEntry {
189
+ ctx: ExtensionCommandContext;
190
+ pi: ExtensionAPI;
191
+ basePath: string;
192
+ step?: boolean;
193
+ createdAt: number;
194
+ sessionId?: string;
195
+ currentUnitType?: string;
196
+ currentUnitId?: string;
130
197
  }
131
198
 
132
199
  // #4573: cap for how many times we nudge the LLM after a premature ready
133
200
  // phrase before giving up and asking the user to re-run /gsd.
134
201
  const MAX_READY_REJECTS = 2;
135
202
 
203
+ // H1 (#5012): cap for Gate 1b plan-blocked recovery hints. After this many
204
+ // consecutive recovery attempts the loop is stopped and the user is directed
205
+ // to investigate manually.
206
+ const MAX_PLAN_BLOCKED_RECOVERIES = 3;
207
+
136
208
  // #4573: matches the canonical ready phrase the discuss prompt asks the LLM
137
209
  // to emit. Accepts any M-prefixed milestone ID (three digits + optional
138
210
  // suffix) with optional trailing punctuation.
139
211
  const READY_PHRASE_RE = /\bMilestone\s+M\d{3}[A-Z0-9-]*\s+ready\.?/i;
140
212
 
141
213
  const pendingAutoStartMap = new Map<string, PendingAutoStartEntry>();
214
+ const pendingDeepProjectSetupMap = new Map<string, PendingDeepProjectSetupEntry>();
215
+ const USER_DRIVEN_DEEP_SETUP_UNITS = new Set([
216
+ "discuss-project",
217
+ "discuss-requirements",
218
+ "research-decision",
219
+ ]);
220
+ const FOREGROUND_DEEP_SETUP_RULE_NAMES = new Set([
221
+ "deep: pre-planning (no workflow prefs) → workflow-preferences",
222
+ "deep: pre-planning (no PROJECT) → discuss-project",
223
+ "deep: pre-planning (no REQUIREMENTS) → discuss-requirements",
224
+ "deep: pre-planning (no research decision) → research-decision",
225
+ ]);
226
+ const LEGACY_DEEP_SETUP_PSEUDO_MILESTONE_DIRS = new Set([
227
+ "PROJECT",
228
+ "REQUIREMENTS",
229
+ "RESEARCH-DECISION",
230
+ "RESEARCH-PROJECT",
231
+ "WORKFLOW-PREFS",
232
+ ]);
233
+ const FOREGROUND_DEEP_SETUP_QUESTION_POLICY = `## Foreground Deep Setup Question Policy
234
+
235
+ This stage is running inside the foreground \`/gsd new-project --deep\` interview. Ask user questions in plain chat only.
236
+
237
+ - Do NOT call \`ask_user_questions\`, \`AskUserQuestion\`, or ToolSearch to discover user-input tools.
238
+ - Ask one focused round, then stop and wait for the user's normal chat response.`;
142
239
 
143
240
  /**
144
241
  * Backward-compat bridge: returns a mutable reference to the entry matching
145
242
  * basePath, or the sole entry when only one session exists.
146
- * Internal use onlyexternal code should use the Map directly.
243
+ * Exported for testinginternal use only in production code.
147
244
  */
148
- function _getPendingAutoStart(basePath?: string): PendingAutoStartEntry | null {
245
+ export function _getPendingAutoStart(basePath?: string): PendingAutoStartEntry | null {
149
246
  if (basePath) return pendingAutoStartMap.get(basePath) ?? null;
150
247
  if (pendingAutoStartMap.size === 1) return pendingAutoStartMap.values().next().value!;
151
248
  return null;
152
249
  }
153
250
 
251
+ function hasNestedFileOrSymlink(dir: string): boolean {
252
+ for (const entry of readdirSync(dir, { withFileTypes: true })) {
253
+ if (entry.isFile() || entry.isSymbolicLink()) return true;
254
+ if (entry.isDirectory() && hasNestedFileOrSymlink(join(dir, entry.name))) return true;
255
+ }
256
+ return false;
257
+ }
258
+
259
+ function clearEmptyLegacyDeepSetupPseudoMilestones(basePath: string, entries: string[]): string[] {
260
+ const mDir = milestonesDir(basePath);
261
+ const remaining: string[] = [];
262
+ for (const entry of entries) {
263
+ if (!LEGACY_DEEP_SETUP_PSEUDO_MILESTONE_DIRS.has(entry)) {
264
+ remaining.push(entry);
265
+ continue;
266
+ }
267
+
268
+ const entryPath = join(mDir, entry);
269
+ try {
270
+ if (hasNestedFileOrSymlink(entryPath)) {
271
+ remaining.push(entry);
272
+ continue;
273
+ }
274
+ rmSync(entryPath, { recursive: true, force: true });
275
+ logWarning("guided", `Self-heal: removed empty legacy deep setup pseudo-milestone directory ${entry}`);
276
+ } catch (err) {
277
+ remaining.push(entry);
278
+ logWarning("guided", `legacy deep setup pseudo-milestone cleanup failed for ${entry}: ${(err as Error).message}`);
279
+ }
280
+ }
281
+ return remaining;
282
+ }
283
+
154
284
  /**
155
285
  * Store pending auto-start state for a project.
156
286
  * Exported for testing (#2985).
157
287
  */
158
288
  export function setPendingAutoStart(basePath: string, entry: { basePath: string; milestoneId: string; ctx?: ExtensionCommandContext; pi?: ExtensionAPI; step?: boolean; createdAt?: number }): void {
159
- pendingAutoStartMap.set(basePath, { createdAt: Date.now(), ...entry } as PendingAutoStartEntry);
289
+ const ws = createWorkspace(entry.basePath);
290
+ const scope = scopeMilestone(ws, entry.milestoneId);
291
+ pendingAutoStartMap.set(basePath, { createdAt: Date.now(), planBlockedRecoveryCount: 0, ...entry, scope } as PendingAutoStartEntry);
160
292
  }
161
293
 
162
294
  /**
@@ -172,6 +304,14 @@ export function clearPendingAutoStart(basePath?: string): void {
172
304
  }
173
305
  }
174
306
 
307
+ export function clearPendingDeepProjectSetup(basePath?: string): void {
308
+ if (basePath) {
309
+ pendingDeepProjectSetupMap.delete(basePath);
310
+ } else {
311
+ pendingDeepProjectSetupMap.clear();
312
+ }
313
+ }
314
+
175
315
  /**
176
316
  * Returns the milestoneId being discussed for the given project.
177
317
  * When basePath is omitted and only one session is active, returns that
@@ -189,6 +329,153 @@ export function getDiscussionMilestoneId(basePath?: string): string | null {
189
329
  return null;
190
330
  }
191
331
 
332
+ function _getPendingDeepProjectSetup(basePath?: string): PendingDeepProjectSetupEntry | null {
333
+ if (basePath) return pendingDeepProjectSetupMap.get(basePath) ?? null;
334
+ if (pendingDeepProjectSetupMap.size === 1) return pendingDeepProjectSetupMap.values().next().value!;
335
+ return null;
336
+ }
337
+
338
+ function getDeepSetupSessionId(ctx: ExtensionContext | undefined): string | undefined {
339
+ return ctx?.sessionManager?.getSessionId?.();
340
+ }
341
+
342
+ function _getPendingDeepProjectSetupForContext(
343
+ ctx: ExtensionContext | undefined,
344
+ basePath?: string,
345
+ ): PendingDeepProjectSetupEntry | null {
346
+ if (basePath) {
347
+ const direct = pendingDeepProjectSetupMap.get(basePath);
348
+ if (direct) return direct;
349
+ }
350
+ if (!ctx) return _getPendingDeepProjectSetup();
351
+
352
+ const sessionId = getDeepSetupSessionId(ctx);
353
+ if (sessionId) {
354
+ const matches = [...pendingDeepProjectSetupMap.values()].filter(entry => entry.sessionId === sessionId);
355
+ if (matches.length === 1) return matches[0]!;
356
+ }
357
+
358
+ const matches = [...pendingDeepProjectSetupMap.values()].filter(entry => entry.ctx === ctx);
359
+ return matches.length === 1 ? matches[0]! : null;
360
+ }
361
+
362
+ export function getPendingDeepProjectSetupUnitForContext(
363
+ ctx: ExtensionContext | undefined,
364
+ basePath?: string,
365
+ ): { unitType: string; unitId: string } | null {
366
+ const entry = _getPendingDeepProjectSetupForContext(ctx, basePath);
367
+ if (!entry?.currentUnitType || !entry.currentUnitId) return null;
368
+ return {
369
+ unitType: entry.currentUnitType,
370
+ unitId: entry.currentUnitId,
371
+ };
372
+ }
373
+
374
+ export async function startDeepProjectSetupForeground(
375
+ ctx: ExtensionCommandContext,
376
+ pi: ExtensionAPI,
377
+ basePath: string,
378
+ step?: boolean,
379
+ ): Promise<void> {
380
+ const entry: PendingDeepProjectSetupEntry = {
381
+ ctx,
382
+ pi,
383
+ basePath,
384
+ step,
385
+ createdAt: Date.now(),
386
+ sessionId: getDeepSetupSessionId(ctx),
387
+ };
388
+ pendingDeepProjectSetupMap.set(basePath, entry);
389
+ await dispatchNextDeepProjectSetupStage(entry);
390
+ }
391
+
392
+ export async function checkDeepProjectSetupAfterTurn(
393
+ _event: { messages: any[] },
394
+ ctx?: ExtensionContext,
395
+ basePath?: string,
396
+ ): Promise<boolean> {
397
+ const entry = _getPendingDeepProjectSetupForContext(ctx, basePath);
398
+ if (!entry) return false;
399
+
400
+ if (entry.currentUnitType && entry.currentUnitId) {
401
+ // TODO(C-future): PendingDeepProjectSetupEntry does not carry a MilestoneScope
402
+ // because deep-project-setup units span non-milestone unit types (discuss-project,
403
+ // discuss-requirements, etc.). Migrate to verifyExpectedArtifactForScope once
404
+ // PendingDeepProjectSetupEntry is extended with a scope field.
405
+ const artifactReady = verifyExpectedArtifact(entry.currentUnitType, entry.currentUnitId, entry.basePath);
406
+ if (!artifactReady) {
407
+ return false;
408
+ }
409
+ }
410
+
411
+ return dispatchNextDeepProjectSetupStage(entry);
412
+ }
413
+
414
+ async function dispatchNextDeepProjectSetupStage(entry: PendingDeepProjectSetupEntry): Promise<boolean> {
415
+ invalidateAllCaches();
416
+ const prefs = loadEffectiveGSDPreferences(entry.basePath)?.preferences;
417
+ const { DISPATCH_RULES, hasPendingDeepStage } = await import("./auto-dispatch.js");
418
+
419
+ if (!hasPendingDeepStage(prefs, entry.basePath)) {
420
+ pendingDeepProjectSetupMap.delete(entry.basePath);
421
+ startAutoDetached(entry.ctx, entry.pi, entry.basePath, false, { step: entry.step });
422
+ return true;
423
+ }
424
+
425
+ const state = await deriveState(entry.basePath);
426
+ const dispatchCtx = {
427
+ basePath: entry.basePath,
428
+ mid: "PROJECT",
429
+ midTitle: "Project setup",
430
+ state,
431
+ prefs,
432
+ // Claude Code currently surfaces workflow-MCP question calls as tool-request
433
+ // UI that can be cancelled outside the normal chat flow. During the
434
+ // foreground deep project setup interview, keep user input in plain chat so
435
+ // `/gsd new-project --deep` cannot bounce through cancelled tool requests.
436
+ structuredQuestionsAvailable: "false" as const,
437
+ };
438
+ let result: Awaited<ReturnType<(typeof DISPATCH_RULES)[number]["match"]>> = null;
439
+ for (const rule of DISPATCH_RULES) {
440
+ // Only evaluate foreground setup gates here. Later deep rules such as
441
+ // research-project have dispatch-time side effects (e.g. claiming an
442
+ // inflight marker) and must be left to auto-mode once the interview is
443
+ // complete.
444
+ if (!FOREGROUND_DEEP_SETUP_RULE_NAMES.has(rule.name)) continue;
445
+ result = await rule.match(dispatchCtx);
446
+ if (result) break;
447
+ }
448
+
449
+ if (!result || result.action !== "dispatch") {
450
+ if (result?.action === "stop") {
451
+ entry.ctx.ui.notify(result.reason, result.level);
452
+ } else if (hasPendingDeepStage(prefs, entry.basePath)) {
453
+ pendingDeepProjectSetupMap.delete(entry.basePath);
454
+ startAutoDetached(entry.ctx, entry.pi, entry.basePath, false, { step: entry.step });
455
+ return true;
456
+ }
457
+ return false;
458
+ }
459
+
460
+ if (!USER_DRIVEN_DEEP_SETUP_UNITS.has(result.unitType)) {
461
+ pendingDeepProjectSetupMap.delete(entry.basePath);
462
+ startAutoDetached(entry.ctx, entry.pi, entry.basePath, false, { step: entry.step });
463
+ return true;
464
+ }
465
+
466
+ entry.currentUnitType = result.unitType;
467
+ entry.currentUnitId = result.unitId;
468
+ entry.createdAt = Date.now();
469
+ await dispatchWorkflow(
470
+ entry.pi,
471
+ `${result.prompt}\n\n${FOREGROUND_DEEP_SETUP_QUESTION_POLICY}`,
472
+ "gsd-run",
473
+ entry.ctx,
474
+ result.unitType,
475
+ );
476
+ return true;
477
+ }
478
+
192
479
  /** Called from agent_end to check if auto-mode should start after discuss */
193
480
  export function checkAutoStartAfterDiscuss(): boolean {
194
481
  const entry = _getPendingAutoStart();
@@ -198,17 +485,77 @@ export function checkAutoStartAfterDiscuss(): boolean {
198
485
 
199
486
  // Gate 1: Primary milestone must have CONTEXT.md or ROADMAP.md
200
487
  // The "discuss" path creates CONTEXT.md; the "plan" path creates ROADMAP.md.
201
- const contextFile = resolveMilestoneFile(basePath, milestoneId, "CONTEXT");
202
- const roadmapFile = resolveMilestoneFile(basePath, milestoneId, "ROADMAP");
488
+ // Use pinned scope (immune to cwd-drift) for existence checks.
489
+ const contextFilePath = entry.scope.contextFile();
490
+ const roadmapFilePath = entry.scope.roadmapFile();
491
+ const contextFile = existsSync(contextFilePath) ? contextFilePath : null;
492
+ const roadmapFile = existsSync(roadmapFilePath) ? roadmapFilePath : null;
203
493
  if (!contextFile && !roadmapFile) return false; // neither artifact yet — keep waiting
204
494
 
495
+ // Gate 1b: Discriminate plan-blocked from discuss-incomplete when the DB row is queued.
496
+ // If the DB is available and the row is still "queued" but CONTEXT.md already exists on
497
+ // disk, the discuss phase completed but gsd_plan_milestone was hard-blocked by the
498
+ // depth-verification gate. Emit a recovery hint so the next agent turn can retry
499
+ // gsd_plan_milestone, then return false (keep blocking auto-start).
500
+ // If CONTEXT.md does not exist (discuss-incomplete), Gate 1 already blocked above.
501
+ if (isDbAvailable()) {
502
+ const dbRow = getMilestone(milestoneId);
503
+ if (dbRow?.status === "queued" && contextFile) {
504
+ if (entry.planBlockedRecoveryCount >= MAX_PLAN_BLOCKED_RECOVERIES) {
505
+ // H1: recovery loop cap reached — stop triggering new turns, escalate to user.
506
+ logWarning(
507
+ "guided",
508
+ `Gate 1b: milestone ${milestoneId} plan-blocked recovery limit reached ` +
509
+ `(${entry.planBlockedRecoveryCount}/${MAX_PLAN_BLOCKED_RECOVERIES}); escalating to user`,
510
+ );
511
+ ctx.ui.notify(
512
+ `Milestone ${milestoneId} plan_milestone has been blocked ${entry.planBlockedRecoveryCount} times. ` +
513
+ `Re-run /gsd to reset the recovery counter, or run /gsd-debug to diagnose without resetting.`,
514
+ "error",
515
+ );
516
+ return false;
517
+ }
518
+ logWarning(
519
+ "guided",
520
+ `Gate 1b: milestone ${milestoneId} queued with CONTEXT.md present — ` +
521
+ `plan_milestone was blocked; emitting recovery hint ` +
522
+ `(attempt ${entry.planBlockedRecoveryCount + 1}/${MAX_PLAN_BLOCKED_RECOVERIES})`,
523
+ );
524
+ ctx.ui.notify(
525
+ `Milestone ${milestoneId}: context file exists but milestone is still queued. ` +
526
+ `Retrying gsd_plan_milestone to complete the blocked planning step.`,
527
+ "warning",
528
+ );
529
+ try {
530
+ pi.sendMessage(
531
+ {
532
+ customType: "gsd-plan-milestone-blocked-recovery",
533
+ content:
534
+ `Milestone ${milestoneId} has ${contextFile} on disk but its DB row is still ` +
535
+ `"queued". The gsd_plan_milestone tool was previously blocked by the ` +
536
+ `depth-verification gate. Call gsd_plan_milestone now to complete the ` +
537
+ `planning phase.`,
538
+ display: false,
539
+ },
540
+ { triggerTurn: true },
541
+ );
542
+ // Increment only after a successful dispatch so transient sendMessage
543
+ // failures do not consume recovery budget.
544
+ entry.planBlockedRecoveryCount += 1;
545
+ } catch (e) {
546
+ logWarning("guided", `Gate 1b recovery sendMessage failed: ${(e as Error).message}`);
547
+ }
548
+ return false;
549
+ }
550
+ }
551
+
205
552
  // Gate 2: STATE.md must exist — written as the last step in the discuss
206
553
  // output phase. This prevents auto-start from firing during Phase 3
207
554
  // (sequential readiness gates for remaining milestones) in multi-milestone
208
555
  // discussions, where M001-CONTEXT.md exists but M002/M003 haven't been
209
556
  // processed yet.
210
- const stateFile = resolveGsdRootFile(basePath, "STATE");
211
- if (!stateFile) return false; // discussion not finalized yet
557
+ const stateFilePath = entry.scope.stateFile();
558
+ if (!existsSync(stateFilePath)) return false; // discussion not finalized yet
212
559
 
213
560
  // Gate 3: Multi-milestone completeness warning
214
561
  // Parse PROJECT.md for milestone sequence, warn if any are missing context.
@@ -241,7 +588,7 @@ export function checkAutoStartAfterDiscuss(): boolean {
241
588
  // The LLM writes DISCUSSION-MANIFEST.json after each Phase 3 gate decision.
242
589
  // When it exists, validate it before auto-starting. Project history alone is
243
590
  // not a reliable signal for the current discussion mode.
244
- const manifestPath = join(gsdRoot(basePath), "DISCUSSION-MANIFEST.json");
591
+ const manifestPath = join(entry.scope.workspace.contract.projectGsd, "DISCUSSION-MANIFEST.json");
245
592
  if (existsSync(manifestPath)) {
246
593
  try {
247
594
  const manifest = JSON.parse(readFileSync(manifestPath, "utf-8"));
@@ -332,13 +679,15 @@ function hasToolUse(msg: any): boolean {
332
679
  /**
333
680
  * #4573 — Detect and recover from the "ready phrase without files" failure mode.
334
681
  *
335
- * When the LLM emits "Milestone {{id}} ready." but has not written CONTEXT.md
336
- * or ROADMAP.md, `checkAutoStartAfterDiscuss()` silently returns false and the
337
- * next /gsd invocation loops into the "All milestones complete" warning.
682
+ * When the LLM emits "Milestone {{id}} ready." but has not written the
683
+ * milestone CONTEXT/ROADMAP artifacts, `checkAutoStartAfterDiscuss()` silently
684
+ * returns false and the next /gsd invocation loops into the "All milestones
685
+ * complete" warning.
338
686
  *
339
687
  * This function, called from `handleAgentEnd` after `checkAutoStartAfterDiscuss`
340
688
  * returns false, pattern-matches the ready phrase on the last assistant message.
341
- * If it fired AND neither CONTEXT.md nor ROADMAP.md exists, it:
689
+ * If it fired AND neither the canonical M###-CONTEXT.md/M###-ROADMAP.md nor
690
+ * legacy CONTEXT.md/ROADMAP.md files exist, it:
342
691
  * 1. Notifies the user that the signal was rejected.
343
692
  * 2. Injects a system message via `pi.sendMessage(..., {triggerTurn:true})`
344
693
  * telling the LLM the signal was premature and to emit the writes now.
@@ -358,12 +707,39 @@ export function maybeHandleReadyPhraseWithoutFiles(event: { messages: any[] }):
358
707
  const text = extractAssistantText(lastMsg);
359
708
  if (!READY_PHRASE_RE.test(text)) return false;
360
709
 
710
+ // Bust paths.ts cached dir listings before checking for fresh writes. The
711
+ // LLM's Write tool calls do not invalidate paths.ts caches, so a stale
712
+ // listing taken before the milestone dir or its CONTEXT/ROADMAP files
713
+ // existed would falsely report the artifacts as missing and trigger the
714
+ // 3-strike "ready without files" abort even though the writes succeeded.
715
+ clearPathCache();
716
+
361
717
  // Gate: artifacts must still be missing — if they exist, the happy path
362
718
  // already fired and we have nothing to do.
363
719
  const contextFile = resolveMilestoneFile(basePath, milestoneId, "CONTEXT");
364
720
  const roadmapFile = resolveMilestoneFile(basePath, milestoneId, "ROADMAP");
365
721
  if (contextFile || roadmapFile) return false;
366
722
 
723
+ // Diagnostic: when the cached resolver reports both files missing, also probe
724
+ // the canonical paths with uncached existsSync so we can tell whether the
725
+ // recovery is firing on real-missing files or a path-resolution miss
726
+ // (basePath/symlink mismatch, stale cache despite agent-end-recovery flush,
727
+ // legacy descriptor dir not matching, etc.).
728
+ try {
729
+ const mDir = resolveMilestonePath(basePath, milestoneId);
730
+ const canonicalCtx = mDir ? join(mDir, `${milestoneId}-CONTEXT.md`) : null;
731
+ const canonicalRoadmap = mDir ? join(mDir, `${milestoneId}-ROADMAP.md`) : null;
732
+ logWarning(
733
+ "guided",
734
+ `ready-phrase-reject diagnostic mid=${milestoneId} basePath=${basePath} ` +
735
+ `mDir=${mDir ?? "null"} ` +
736
+ `canonical-ctx=${canonicalCtx ?? "null"} ctx-exists=${canonicalCtx ? existsSync(canonicalCtx) : "n/a"} ` +
737
+ `canonical-roadmap=${canonicalRoadmap ?? "null"} roadmap-exists=${canonicalRoadmap ? existsSync(canonicalRoadmap) : "n/a"}`,
738
+ );
739
+ } catch (e) {
740
+ logWarning("guided", `ready-phrase-reject diagnostic failed: ${(e as Error).message}`);
741
+ }
742
+
367
743
  entry.readyRejectCount = (entry.readyRejectCount ?? 0) + 1;
368
744
 
369
745
  if (entry.readyRejectCount > MAX_READY_REJECTS) {
@@ -378,15 +754,16 @@ export function maybeHandleReadyPhraseWithoutFiles(event: { messages: any[] }):
378
754
  return true;
379
755
  }
380
756
 
757
+ const contextRel = relMilestoneFile(basePath, milestoneId, "CONTEXT");
758
+ const roadmapRel = relMilestoneFile(basePath, milestoneId, "ROADMAP");
381
759
  ctx.ui.notify(
382
- `Milestone ${milestoneId}: "ready" signal rejected — CONTEXT.md and ROADMAP.md are missing. Asking the LLM to complete the writes.`,
760
+ `Milestone ${milestoneId}: "ready" signal rejected — ${contextRel} and ${roadmapRel} are missing. Asking the LLM to complete the writes.`,
383
761
  "warning",
384
762
  );
385
763
 
386
764
  const nudge =
387
765
  `You emitted "Milestone ${milestoneId} ready." but neither ` +
388
- `.gsd/milestones/${milestoneId}/${milestoneId}-CONTEXT.md nor ` +
389
- `.gsd/milestones/${milestoneId}/${milestoneId}-ROADMAP.md exists on disk. ` +
766
+ `${contextRel} nor ${roadmapRel} exists on disk. ` +
390
767
  `The ready phrase is a POST-WRITE signal and has been rejected. ` +
391
768
  `In this turn: (1) write PROJECT.md, REQUIREMENTS.md, and the milestone ` +
392
769
  `CONTEXT.md, (2) call gsd_plan_milestone, then (3) emit the ready phrase. ` +
@@ -429,8 +806,13 @@ const MAX_EMPTY_TURN_RETRIES = 2;
429
806
 
430
807
  // Phrases that indicate the LLM is about to do something but has not yet.
431
808
  // Kept tight to avoid flagging legitimate narration like "I'll wait for your answer."
809
+ //
810
+ // "make" was previously in the verb list but matches conversational meta phrases
811
+ // like "Let me make sure I understand…" which are NOT action announcements —
812
+ // removed to prevent the empty-turn nudge from auto-replying to user questions
813
+ // in discuss flows.
432
814
  const COMMIT_INTENT_RE =
433
- /\b(?:I['’]ll|I will|Next,? I['’]ll|Now I['’]ll|Let me|I['’]m going to|I am going to)\s+(?:now\s+)?(?:write|create|call|invoke|update|add|make|run|execute|generate|produce|emit|compose|implement|save|apply|commit)\b/i;
815
+ /\b(?:I['’]ll|I will|Next,? I['’]ll|Now I['’]ll|Let me|I['’]m going to|I am going to)\s+(?:now\s+)?(?:write|create|call|invoke|update|add|run|execute|generate|produce|emit|compose|implement|save|apply|commit)\b/i;
434
816
 
435
817
  /**
436
818
  * Reset the empty-turn counter for a basePath after a successful tool-use turn.
@@ -460,12 +842,14 @@ export function maybeHandleEmptyIntentTurn(
460
842
  // path, handled by maybeHandleReadyPhraseWithoutFiles.
461
843
  if (READY_PHRASE_RE.test(text)) return false;
462
844
 
463
- // Skip if the LLM is clearly handing back to the user. Keep the heuristic
464
- // tight: a trailing question mark on the last non-empty line is the common
465
- // signal for "I asked the user a question and stopped."
466
- const lines = text.split(/\r?\n/).map((l) => l.trim()).filter(Boolean);
467
- const lastLine = lines[lines.length - 1] ?? "";
468
- if (lastLine.endsWith("?")) return false;
845
+ // Skip if the LLM is clearly handing back to the user. Discuss flows
846
+ // often pose a question and follow it with a conditional intent on the
847
+ // same line ("Did I capture that correctly? If so, I'll write the
848
+ // requirements."). A line-trailing `?` check misses these because the
849
+ // line ends in `.`. Match any sentence-terminating `?` (followed by
850
+ // whitespace or end-of-text) false negatives here auto-reply to the
851
+ // user, which is a much worse failure mode than a missed nudge.
852
+ if (/\?(?:\s|$)/.test(text)) return false;
469
853
 
470
854
  // Must contain a commit-intent phrase — this is the stall we care about.
471
855
  if (!COMMIT_INTENT_RE.test(text)) return false;
@@ -608,7 +992,7 @@ async function dispatchWorkflow(
608
992
  });
609
993
  }
610
994
 
611
- const workflowPath = process.env.GSD_WORKFLOW_PATH ?? join(getHomeDir(), ".gsd", "agent", "GSD-WORKFLOW.md");
995
+ const workflowPath = process.env.GSD_WORKFLOW_PATH ?? join(gsdHome(), "agent", "GSD-WORKFLOW.md");
612
996
  const workflow = readFileSync(workflowPath, "utf-8");
613
997
 
614
998
  pi.sendMessage(
@@ -839,7 +1223,7 @@ export async function showHeadlessMilestoneCreation(
839
1223
  const prompt = buildHeadlessDiscussPrompt(nextId, seedContext, basePath);
840
1224
 
841
1225
  // Set pending auto start (auto-mode triggers on "Milestone X ready." via checkAutoStartAfterDiscuss)
842
- pendingAutoStartMap.set(basePath, { ctx, pi, basePath, milestoneId: nextId, createdAt: Date.now() });
1226
+ setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId: nextId });
843
1227
 
844
1228
  // Dispatch as discuss-milestone. The LLM writes PROJECT.md, REQUIREMENTS.md,
845
1229
  // and CONTEXT.md, then calls gsd_plan_milestone — this is semantically the
@@ -1036,12 +1420,12 @@ export async function showDiscuss(
1036
1420
  const seed = draftContent
1037
1421
  ? `${basePrompt}\n\n## Prior Discussion (Draft Seed)\n\n${draftContent}`
1038
1422
  : basePrompt;
1039
- pendingAutoStartMap.set(basePath, { ctx, pi, basePath, milestoneId: mid, step: false, createdAt: Date.now() });
1423
+ setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId: mid, step: false });
1040
1424
  await dispatchWorkflow(pi, seed, "gsd-discuss", ctx, "discuss-milestone");
1041
1425
  } else if (choice === "discuss_fresh") {
1042
1426
  const discussMilestoneTemplates = inlineTemplate("context", "Context");
1043
1427
  const structuredQuestionsAvailable = getStructuredQuestionsAvailability(pi, ctx);
1044
- pendingAutoStartMap.set(basePath, { ctx, pi, basePath, milestoneId: mid, step: false, createdAt: Date.now() });
1428
+ setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId: mid, step: false });
1045
1429
  await dispatchWorkflow(pi, loadPrompt("guided-discuss-milestone", {
1046
1430
  milestoneId: mid, milestoneTitle, inlinedTemplates: discussMilestoneTemplates, structuredQuestionsAvailable,
1047
1431
  commitInstruction: buildDocsCommitInstruction(`docs(${mid}): milestone context from discuss`),
@@ -1053,7 +1437,7 @@ export async function showDiscuss(
1053
1437
  const milestoneIds = findMilestoneIds(basePath);
1054
1438
  const uniqueMilestoneIds = !!loadEffectiveGSDPreferences()?.preferences?.unique_milestone_ids;
1055
1439
  const nextId = nextMilestoneIdReserved(milestoneIds, uniqueMilestoneIds, basePath);
1056
- pendingAutoStartMap.set(basePath, { ctx, pi, basePath, milestoneId: nextId, step: false, createdAt: Date.now() });
1440
+ setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId: nextId, step: false });
1057
1441
  await dispatchWorkflow(pi, await prepareAndBuildDiscussPrompt(ctx, pi, nextId, `New milestone ${nextId}.`, basePath), "gsd-run", ctx, "discuss-milestone");
1058
1442
  }
1059
1443
  return;
@@ -1344,6 +1728,9 @@ function selfHealRuntimeRecords(basePath: string, ctx: ExtensionContext): { clea
1344
1728
  for (const record of records) {
1345
1729
  const { unitType, unitId, phase } = record;
1346
1730
  // Clear records whose expected artifact already exists (completed but not cleaned up)
1731
+ // TODO(C-future): selfHealRuntimeRecords iterates across all unit types (not just milestone
1732
+ // units), so it cannot be converted to resolveExpectedArtifactPathForScope without
1733
+ // first establishing a per-record scope. Migrate once unit runtime records carry scope info.
1347
1734
  const artifactPath = resolveExpectedArtifactPath(unitType, unitId, basePath);
1348
1735
  if (artifactPath && existsSync(artifactPath)) {
1349
1736
  clearUnitRuntimeRecord(basePath, unitType, unitId);
@@ -1458,7 +1845,7 @@ async function handleMilestoneActions(
1458
1845
  const milestoneIds = findMilestoneIds(basePath);
1459
1846
  const uniqueMilestoneIds = !!loadEffectiveGSDPreferences()?.preferences?.unique_milestone_ids;
1460
1847
  const nextId = nextMilestoneIdReserved(milestoneIds, uniqueMilestoneIds, basePath);
1461
- pendingAutoStartMap.set(basePath, { ctx, pi, basePath, milestoneId: nextId, step: stepMode, createdAt: Date.now() });
1848
+ setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId: nextId, step: stepMode });
1462
1849
  await dispatchWorkflow(pi, await prepareAndBuildDiscussPrompt(ctx, pi, nextId,
1463
1850
  `New milestone ${nextId}.`,
1464
1851
  basePath
@@ -1505,6 +1892,7 @@ export async function showSmartEntry(
1505
1892
  // milestones/) must trigger the init wizard, not skip it (#2942).
1506
1893
  const gsdPath = gsdRoot(basePath);
1507
1894
  const hasBootstrapArtifacts = hasGsdBootstrapArtifacts(gsdPath);
1895
+ let skipGitBootstrap = false;
1508
1896
 
1509
1897
  if (!hasBootstrapArtifacts) {
1510
1898
  const detection = detectProjectState(basePath);
@@ -1524,6 +1912,7 @@ export async function showSmartEntry(
1524
1912
  // No .gsd/ or zombie .gsd/ — run the project init wizard
1525
1913
  const result = await showProjectInit(ctx, pi, basePath, detection);
1526
1914
  if (!result.completed) return; // User cancelled
1915
+ skipGitBootstrap = result.gitEnabled === false;
1527
1916
 
1528
1917
  // Init wizard bootstrapped .gsd/ — fall through to the normal flow below
1529
1918
  // which will detect "no milestones" and start the discuss prompt
@@ -1533,14 +1922,29 @@ export async function showSmartEntry(
1533
1922
  // Also handle inherited repos: if basePath is a subdirectory of another
1534
1923
  // git repo that has no .gsd, create a fresh repo to prevent cross-project
1535
1924
  // state leaks (#1639).
1536
- if (!nativeIsRepo(basePath) || isInheritedRepo(basePath)) {
1925
+ if (!skipGitBootstrap && (!nativeIsRepo(basePath) || isInheritedRepo(basePath))) {
1537
1926
  const mainBranch = loadEffectiveGSDPreferences()?.preferences?.git?.main_branch || "main";
1538
1927
  nativeInit(basePath, mainBranch);
1539
1928
  }
1540
1929
 
1541
1930
  // ── Ensure .gitignore has baseline patterns ──────────────────────────
1542
- ensureGitignore(basePath);
1543
- untrackRuntimeFiles(basePath);
1931
+ if (!skipGitBootstrap && nativeIsRepo(basePath)) {
1932
+ ensureGitignore(basePath);
1933
+ untrackRuntimeFiles(basePath);
1934
+ }
1935
+
1936
+ // Deep setup can pre-create .gsd/PREFERENCES.md before the normal init
1937
+ // wizard path runs. If that path also initialized git, make HEAD reachable
1938
+ // now so later worktree/git-log operations do not run on an unborn branch.
1939
+ if (!skipGitBootstrap && nativeIsRepo(basePath) && !nativeHasCommittedHead(basePath)) {
1940
+ try {
1941
+ nativeAddAll(basePath);
1942
+ nativeCommit(basePath, "chore: init project");
1943
+ } catch (err) {
1944
+ const message = err instanceof Error ? err.message : String(err);
1945
+ logWarning("guided", `initial git commit failed; worktree isolation will remain disabled until HEAD exists: ${message}`);
1946
+ }
1947
+ }
1544
1948
 
1545
1949
  {
1546
1950
  const { ensureDbOpen } = await import("./bootstrap/dynamic-tools.js");
@@ -1599,6 +2003,23 @@ export async function showSmartEntry(
1599
2003
  logWarning("guided", `STATE.md rebuild failed: ${(err as Error).message}`);
1600
2004
  }
1601
2005
 
2006
+ // ── Deep planning mode kickoff ────────────────────────────────────────
2007
+ // When `planning_depth: deep` is set (e.g. via `/gsd new-project --deep`)
2008
+ // and any project-level stage gate is still pending, keep the user-question
2009
+ // stages in the foreground conversation. Auto-mode is resumed only after
2010
+ // the project interview artifacts exist, so questions do not look like
2011
+ // cancelled auto-mode runs.
2012
+ // Light mode and fully-completed deep projects fall through to the
2013
+ // standard wizard below.
2014
+ {
2015
+ const prefs = loadEffectiveGSDPreferences(basePath)?.preferences;
2016
+ const { hasPendingDeepStage } = await import("./auto-dispatch.js");
2017
+ if (hasPendingDeepStage(prefs, basePath)) {
2018
+ await startDeepProjectSetupForeground(ctx, pi, basePath, stepMode);
2019
+ return;
2020
+ }
2021
+ }
2022
+
1602
2023
  const planV2GateDecision = runPlanV2Gate(ctx, basePath, state);
1603
2024
  if (planV2GateDecision === "block") return;
1604
2025
 
@@ -1609,14 +2030,12 @@ export async function showSmartEntry(
1609
2030
  // and fires another dispatchWorkflow, resetting the conversation mid-interview.
1610
2031
  if (pendingAutoStartMap.has(basePath)) {
1611
2032
  // #3274: If /clear interrupted the discussion, the pending entry is stale.
1612
- // Detect staleness: no manifest, no CONTEXT.md, AND entry is older than
2033
+ // Detect staleness: no manifest, no milestone CONTEXT artifact, AND entry is older than
1613
2034
  // 30s (avoids race between .set() and LLM writing first artifact).
1614
2035
  const entry = pendingAutoStartMap.get(basePath)!;
1615
2036
  const ageMs = Date.now() - (entry.createdAt || 0);
1616
2037
  const manifestExists = existsSync(join(gsdRoot(basePath), "DISCUSSION-MANIFEST.json"));
1617
- const milestoneHasContext = existsSync(
1618
- join(gsdRoot(basePath), "milestones", entry.milestoneId, `${entry.milestoneId}-CONTEXT.md`),
1619
- );
2038
+ const milestoneHasContext = !!resolveMilestoneFile(basePath, entry.milestoneId, "CONTEXT");
1620
2039
  if (!manifestExists && !milestoneHasContext && ageMs > 30_000) {
1621
2040
  // Stale entry from an interrupted discussion — clear and continue
1622
2041
  pendingAutoStartMap.delete(basePath);
@@ -1635,7 +2054,7 @@ export async function showSmartEntry(
1635
2054
  const mDir = milestonesDir(basePath);
1636
2055
  if (existsSync(mDir)) {
1637
2056
  try {
1638
- const entries = readdirSync(mDir);
2057
+ const entries = clearEmptyLegacyDeepSetupPseudoMilestones(basePath, readdirSync(mDir));
1639
2058
  if (entries.length > 0) {
1640
2059
  ctx.ui.notify(
1641
2060
  `Milestone directory has ${entries.length} entries but none were recognized as milestones. ` +
@@ -1654,7 +2073,7 @@ export async function showSmartEntry(
1654
2073
 
1655
2074
  if (isFirst) {
1656
2075
  // First ever — skip wizard, just ask directly
1657
- pendingAutoStartMap.set(basePath, { ctx, pi, basePath, milestoneId: nextId, step: stepMode, createdAt: Date.now() });
2076
+ setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId: nextId, step: stepMode });
1658
2077
  await dispatchWorkflow(pi, await prepareAndBuildDiscussPrompt(ctx, pi, nextId,
1659
2078
  `New project, milestone ${nextId}. Do NOT read or explore .gsd/ — it's empty scaffolding.`,
1660
2079
  basePath
@@ -1675,7 +2094,7 @@ export async function showSmartEntry(
1675
2094
  });
1676
2095
 
1677
2096
  if (choice === "new_milestone") {
1678
- pendingAutoStartMap.set(basePath, { ctx, pi, basePath, milestoneId: nextId, step: stepMode, createdAt: Date.now() });
2097
+ setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId: nextId, step: stepMode });
1679
2098
  await dispatchWorkflow(pi, await prepareAndBuildDiscussPrompt(ctx, pi, nextId,
1680
2099
  `New milestone ${nextId}.`,
1681
2100
  basePath
@@ -1689,7 +2108,7 @@ export async function showSmartEntry(
1689
2108
  const milestoneTitle = state.activeMilestone.title;
1690
2109
 
1691
2110
  if (planV2GateDecision === "recover-missing-context") {
1692
- pendingAutoStartMap.set(basePath, { ctx, pi, basePath, milestoneId, step: stepMode, createdAt: Date.now() });
2111
+ setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId, step: stepMode });
1693
2112
  await dispatchWorkflow(
1694
2113
  pi,
1695
2114
  await buildDiscussMilestonePrompt(
@@ -1731,7 +2150,7 @@ export async function showSmartEntry(
1731
2150
  const uniqueMilestoneIds = !!loadEffectiveGSDPreferences()?.preferences?.unique_milestone_ids;
1732
2151
  const nextId = nextMilestoneIdReserved(milestoneIds, uniqueMilestoneIds, basePath);
1733
2152
 
1734
- pendingAutoStartMap.set(basePath, { ctx, pi, basePath, milestoneId: nextId, step: stepMode, createdAt: Date.now() });
2153
+ setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId: nextId, step: stepMode });
1735
2154
  await dispatchWorkflow(pi, await prepareAndBuildDiscussPrompt(ctx, pi, nextId,
1736
2155
  `New milestone ${nextId}.`,
1737
2156
  basePath
@@ -1783,12 +2202,12 @@ export async function showSmartEntry(
1783
2202
  const seed = draftContent
1784
2203
  ? `${basePrompt}\n\n## Prior Discussion (Draft Seed)\n\n${draftContent}`
1785
2204
  : basePrompt;
1786
- pendingAutoStartMap.set(basePath, { ctx, pi, basePath, milestoneId, step: stepMode, createdAt: Date.now() });
2205
+ setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId, step: stepMode });
1787
2206
  await dispatchWorkflow(pi, seed, "gsd-discuss", ctx, "discuss-milestone");
1788
2207
  } else if (choice === "discuss_fresh") {
1789
2208
  const discussMilestoneTemplates = inlineTemplate("context", "Context");
1790
2209
  const structuredQuestionsAvailable = getStructuredQuestionsAvailability(pi, ctx);
1791
- pendingAutoStartMap.set(basePath, { ctx, pi, basePath, milestoneId, step: stepMode, createdAt: Date.now() });
2210
+ setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId, step: stepMode });
1792
2211
  await dispatchWorkflow(pi, loadPrompt("guided-discuss-milestone", {
1793
2212
  milestoneId, milestoneTitle, inlinedTemplates: discussMilestoneTemplates, structuredQuestionsAvailable,
1794
2213
  commitInstruction: buildDocsCommitInstruction(`docs(${milestoneId}): milestone context from discuss`),
@@ -1798,7 +2217,7 @@ export async function showSmartEntry(
1798
2217
  const milestoneIds = findMilestoneIds(basePath);
1799
2218
  const uniqueMilestoneIds = !!loadEffectiveGSDPreferences()?.preferences?.unique_milestone_ids;
1800
2219
  const nextId = nextMilestoneIdReserved(milestoneIds, uniqueMilestoneIds, basePath);
1801
- pendingAutoStartMap.set(basePath, { ctx, pi, basePath, milestoneId: nextId, step: stepMode, createdAt: Date.now() });
2220
+ setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId: nextId, step: stepMode });
1802
2221
  await dispatchWorkflow(pi, await prepareAndBuildDiscussPrompt(ctx, pi, nextId,
1803
2222
  `New milestone ${nextId}.`,
1804
2223
  basePath
@@ -1863,26 +2282,14 @@ export async function showSmartEntry(
1863
2282
  });
1864
2283
 
1865
2284
  if (choice === "plan") {
1866
- pendingAutoStartMap.set(basePath, { ctx, pi, basePath, milestoneId, step: stepMode, createdAt: Date.now() });
1867
- const planMilestoneTemplates = [
1868
- inlineTemplate("roadmap", "Roadmap"),
1869
- inlineTemplate("plan", "Slice Plan"),
1870
- inlineTemplate("task-plan", "Task Plan"),
1871
- inlineTemplate("secrets-manifest", "Secrets Manifest"),
1872
- ].join("\n\n---\n\n");
1873
- const secretsOutputPath = relMilestoneFile(basePath, milestoneId, "SECRETS");
1874
- await dispatchWorkflow(pi, loadPrompt("guided-plan-milestone", {
1875
- milestoneId,
1876
- milestoneTitle,
1877
- secretsOutputPath,
1878
- inlinedTemplates: planMilestoneTemplates,
1879
- skillActivation: buildSkillActivationBlock({
1880
- base: basePath,
1881
- milestoneId,
1882
- milestoneTitle,
1883
- extraContext: [planMilestoneTemplates],
1884
- }),
1885
- }), "gsd-run", ctx, "plan-milestone");
2285
+ setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId, step: stepMode });
2286
+ await dispatchWorkflow(
2287
+ pi,
2288
+ await buildPlanMilestonePrompt(milestoneId, milestoneTitle, basePath),
2289
+ "gsd-run",
2290
+ ctx,
2291
+ "plan-milestone",
2292
+ );
1886
2293
  } else if (choice === "discuss") {
1887
2294
  const discussMilestoneTemplates = inlineTemplate("context", "Context");
1888
2295
  const structuredQuestionsAvailable = getStructuredQuestionsAvailability(pi, ctx);
@@ -1895,7 +2302,7 @@ export async function showSmartEntry(
1895
2302
  const milestoneIds = findMilestoneIds(basePath);
1896
2303
  const uniqueMilestoneIds = !!loadEffectiveGSDPreferences()?.preferences?.unique_milestone_ids;
1897
2304
  const nextId = nextMilestoneIdReserved(milestoneIds, uniqueMilestoneIds, basePath);
1898
- pendingAutoStartMap.set(basePath, { ctx, pi, basePath, milestoneId: nextId, step: stepMode, createdAt: Date.now() });
2305
+ setPendingAutoStart(basePath, { ctx, pi, basePath, milestoneId: nextId, step: stepMode });
1899
2306
  await dispatchWorkflow(pi, await prepareAndBuildDiscussPrompt(ctx, pi, nextId,
1900
2307
  `New milestone ${nextId}.`,
1901
2308
  basePath
@@ -2007,23 +2414,13 @@ export async function showSmartEntry(
2007
2414
  });
2008
2415
 
2009
2416
  if (choice === "plan") {
2010
- const planSliceTemplates = [
2011
- inlineTemplate("plan", "Slice Plan"),
2012
- inlineTemplate("task-plan", "Task Plan"),
2013
- ].join("\n\n---\n\n");
2014
- await dispatchWorkflow(pi, loadPrompt("guided-plan-slice", {
2015
- milestoneId,
2016
- sliceId,
2017
- sliceTitle,
2018
- inlinedTemplates: planSliceTemplates,
2019
- skillActivation: buildSkillActivationBlock({
2020
- base: basePath,
2021
- milestoneId,
2022
- sliceId,
2023
- sliceTitle,
2024
- extraContext: [planSliceTemplates],
2025
- }),
2026
- }), "gsd-run", ctx, "plan-slice");
2417
+ await dispatchWorkflow(
2418
+ pi,
2419
+ await buildPlanSlicePrompt(milestoneId, milestoneTitle, sliceId, sliceTitle, basePath),
2420
+ "gsd-run",
2421
+ ctx,
2422
+ "plan-slice",
2423
+ );
2027
2424
  } else if (choice === "discuss") {
2028
2425
  const sqAvail = getStructuredQuestionsAvailability(pi, ctx);
2029
2426
  await dispatchWorkflow(pi, await buildDiscussSlicePrompt(milestoneId, sliceId, sliceTitle, basePath, { rediscuss: hasContext, structuredQuestionsAvailable: sqAvail }), "gsd-run", ctx, "discuss-slice");
@@ -2079,24 +2476,13 @@ export async function showSmartEntry(
2079
2476
  });
2080
2477
 
2081
2478
  if (choice === "complete") {
2082
- const completeSliceTemplates = [
2083
- inlineTemplate("slice-summary", "Slice Summary"),
2084
- inlineTemplate("uat", "UAT"),
2085
- ].join("\n\n---\n\n");
2086
- await dispatchWorkflow(pi, loadPrompt("guided-complete-slice", {
2087
- workingDirectory: basePath,
2088
- milestoneId,
2089
- sliceId,
2090
- sliceTitle,
2091
- inlinedTemplates: completeSliceTemplates,
2092
- skillActivation: buildSkillActivationBlock({
2093
- base: basePath,
2094
- milestoneId,
2095
- sliceId,
2096
- sliceTitle,
2097
- extraContext: [completeSliceTemplates],
2098
- }),
2099
- }), "gsd-run", ctx, "complete-slice");
2479
+ await dispatchWorkflow(
2480
+ pi,
2481
+ await buildCompleteSlicePrompt(milestoneId, milestoneTitle, sliceId, sliceTitle, basePath),
2482
+ "gsd-run",
2483
+ ctx,
2484
+ "complete-slice",
2485
+ );
2100
2486
  } else if (choice === "status") {
2101
2487
  const { fireStatusViaCommand } = await import("./commands.js");
2102
2488
  await fireStatusViaCommand(ctx);
@@ -2171,22 +2557,13 @@ export async function showSmartEntry(
2171
2557
  }),
2172
2558
  }), "gsd-run", ctx, "execute-task");
2173
2559
  } else {
2174
- const executeTaskTemplates = inlineTemplate("task-summary", "Task Summary");
2175
- await dispatchWorkflow(pi, loadPrompt("guided-execute-task", {
2176
- milestoneId,
2177
- sliceId,
2178
- taskId,
2179
- taskTitle,
2180
- inlinedTemplates: executeTaskTemplates,
2181
- skillActivation: buildSkillActivationBlock({
2182
- base: basePath,
2183
- milestoneId,
2184
- sliceId,
2185
- taskId,
2186
- taskTitle,
2187
- extraContext: [executeTaskTemplates],
2188
- }),
2189
- }), "gsd-run", ctx, "execute-task");
2560
+ await dispatchWorkflow(
2561
+ pi,
2562
+ await buildExecuteTaskPrompt(milestoneId, sliceId, sliceTitle, taskId, taskTitle, basePath),
2563
+ "gsd-run",
2564
+ ctx,
2565
+ "execute-task",
2566
+ );
2190
2567
  }
2191
2568
  } else if (choice === "status") {
2192
2569
  const { fireStatusViaCommand } = await import("./commands.js");