gsd-pi 2.78.0 → 2.78.1-dev.2d3fd6e71

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