gsd-pi 2.78.1 → 2.79.0

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