gsd-pi 2.78.1-dev.0fdacd524 → 2.78.1-dev.42ef05fbe

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 (1131) hide show
  1. package/README.md +7 -2
  2. package/dist/cli-auto-routing.d.ts +1 -0
  3. package/dist/cli-auto-routing.js +5 -0
  4. package/dist/cli.js +5 -14
  5. package/dist/loader.js +15 -3
  6. package/dist/resources/.managed-resources-content-hash +1 -1
  7. package/dist/resources/extensions/async-jobs/job-manager.js +4 -0
  8. package/dist/resources/extensions/bg-shell/bg-shell-lifecycle.js +3 -2
  9. package/dist/resources/extensions/bg-shell/utilities.js +2 -1
  10. package/dist/resources/extensions/claude-code-cli/stream-adapter.js +22 -8
  11. package/dist/resources/extensions/gsd/auto/phases.js +76 -21
  12. package/dist/resources/extensions/gsd/auto/session.js +3 -0
  13. package/dist/resources/extensions/gsd/auto-artifact-paths.js +21 -1
  14. package/dist/resources/extensions/gsd/auto-dashboard.js +13 -2
  15. package/dist/resources/extensions/gsd/auto-direct-dispatch.js +2 -0
  16. package/dist/resources/extensions/gsd/auto-dispatch.js +231 -32
  17. package/dist/resources/extensions/gsd/auto-post-unit.js +90 -11
  18. package/dist/resources/extensions/gsd/auto-prompts.js +76 -6
  19. package/dist/resources/extensions/gsd/auto-recovery.js +46 -1
  20. package/dist/resources/extensions/gsd/auto-start.js +41 -22
  21. package/dist/resources/extensions/gsd/auto-timeout-recovery.js +18 -0
  22. package/dist/resources/extensions/gsd/auto-timers.js +24 -4
  23. package/dist/resources/extensions/gsd/auto-worktree.js +51 -6
  24. package/dist/resources/extensions/gsd/auto.js +16 -7
  25. package/dist/resources/extensions/gsd/bootstrap/agent-end-recovery.js +19 -1
  26. package/dist/resources/extensions/gsd/bootstrap/db-tools.js +54 -12
  27. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +79 -8
  28. package/dist/resources/extensions/gsd/bootstrap/system-context.js +3 -4
  29. package/dist/resources/extensions/gsd/bootstrap/write-gate.js +82 -15
  30. package/dist/resources/extensions/gsd/commands/catalog.js +7 -6
  31. package/dist/resources/extensions/gsd/commands/context.js +17 -2
  32. package/dist/resources/extensions/gsd/commands/handlers/core.js +2 -0
  33. package/dist/resources/extensions/gsd/commands/handlers/ops.js +5 -0
  34. package/dist/resources/extensions/gsd/commands/handlers/workflow.js +24 -2
  35. package/dist/resources/extensions/gsd/commands-bootstrap.js +6 -0
  36. package/dist/resources/extensions/gsd/commands-config.js +3 -3
  37. package/dist/resources/extensions/gsd/commands-debug.js +22 -1
  38. package/dist/resources/extensions/gsd/commands-eval-review.js +534 -0
  39. package/dist/resources/extensions/gsd/commands-extensions.js +4 -4
  40. package/dist/resources/extensions/gsd/commands-handlers.js +3 -3
  41. package/dist/resources/extensions/gsd/commands-mcp-status.js +2 -2
  42. package/dist/resources/extensions/gsd/commands-ship.js +65 -0
  43. package/dist/resources/extensions/gsd/context-budget.js +11 -3
  44. package/dist/resources/extensions/gsd/db-writer.js +72 -25
  45. package/dist/resources/extensions/gsd/deep-project-setup-policy.js +180 -0
  46. package/dist/resources/extensions/gsd/detection.js +7 -7
  47. package/dist/resources/extensions/gsd/docs/preferences-reference.md +6 -4
  48. package/dist/resources/extensions/gsd/doctor-providers.js +2 -2
  49. package/dist/resources/extensions/gsd/eval-review-schema.js +208 -0
  50. package/dist/resources/extensions/gsd/forensics.js +10 -4
  51. package/dist/resources/extensions/gsd/gsd-db.js +3 -2
  52. package/dist/resources/extensions/gsd/gsd-home.js +29 -0
  53. package/dist/resources/extensions/gsd/guided-flow.js +231 -12
  54. package/dist/resources/extensions/gsd/interrupted-session.js +37 -2
  55. package/dist/resources/extensions/gsd/key-manager.js +2 -2
  56. package/dist/resources/extensions/gsd/migrate/command.js +3 -3
  57. package/dist/resources/extensions/gsd/milestone-scope-classifier.js +10 -8
  58. package/dist/resources/extensions/gsd/native-git-bridge.js +14 -0
  59. package/dist/resources/extensions/gsd/onboarding-state.js +2 -2
  60. package/dist/resources/extensions/gsd/planning-depth.js +115 -0
  61. package/dist/resources/extensions/gsd/preferences-models.js +18 -1
  62. package/dist/resources/extensions/gsd/preferences-skills.js +2 -1
  63. package/dist/resources/extensions/gsd/preferences-types.js +4 -0
  64. package/dist/resources/extensions/gsd/preferences-validation.js +9 -0
  65. package/dist/resources/extensions/gsd/preferences.js +7 -4
  66. package/dist/resources/extensions/gsd/project-research-policy.js +182 -0
  67. package/dist/resources/extensions/gsd/prompt-loader.js +2 -3
  68. package/dist/resources/extensions/gsd/prompts/guided-discuss-project.md +133 -0
  69. package/dist/resources/extensions/gsd/prompts/guided-discuss-requirements.md +122 -0
  70. package/dist/resources/extensions/gsd/prompts/guided-research-decision.md +70 -0
  71. package/dist/resources/extensions/gsd/prompts/guided-research-project.md +120 -0
  72. package/dist/resources/extensions/gsd/prompts/guided-workflow-preferences.md +68 -0
  73. package/dist/resources/extensions/gsd/prompts/plan-slice.md +1 -1
  74. package/dist/resources/extensions/gsd/prompts/refine-slice.md +1 -1
  75. package/dist/resources/extensions/gsd/prompts/system.md +1 -1
  76. package/dist/resources/extensions/gsd/repo-identity.js +20 -9
  77. package/dist/resources/extensions/gsd/safety/git-checkpoint.js +8 -1
  78. package/dist/resources/extensions/gsd/schemas/__fixtures__/valid-project.md +26 -0
  79. package/dist/resources/extensions/gsd/schemas/__fixtures__/valid-requirements.md +57 -0
  80. package/dist/resources/extensions/gsd/schemas/__fixtures__/valid-roadmap.md +19 -0
  81. package/dist/resources/extensions/gsd/schemas/parsers.js +276 -0
  82. package/dist/resources/extensions/gsd/schemas/validate.js +364 -0
  83. package/dist/resources/extensions/gsd/skill-telemetry.js +3 -2
  84. package/dist/resources/extensions/gsd/token-counter.js +1 -0
  85. package/dist/resources/extensions/gsd/tools/workflow-tool-executors.js +74 -11
  86. package/dist/resources/extensions/gsd/unit-context-manifest.js +96 -1
  87. package/dist/resources/extensions/gsd/uok/plan-v2.js +14 -1
  88. package/dist/resources/extensions/gsd/user-input-boundary.js +157 -0
  89. package/dist/resources/extensions/gsd/watch/header-renderer.js +2 -1
  90. package/dist/resources/extensions/gsd/workflow-install.js +2 -3
  91. package/dist/resources/extensions/gsd/workflow-mcp.js +39 -3
  92. package/dist/resources/extensions/gsd/workflow-plugins.js +3 -5
  93. package/dist/resources/extensions/gsd/workflow-templates.js +2 -3
  94. package/dist/resources/extensions/gsd/worktree-resolver.js +30 -6
  95. package/dist/resources/extensions/gsd/worktree-root.js +34 -5
  96. package/dist/resources/extensions/mcp-client/index.js +2 -2
  97. package/dist/resources/extensions/remote-questions/remote-command.js +2 -1
  98. package/dist/resources/extensions/remote-questions/status.js +2 -5
  99. package/dist/resources/extensions/remote-questions/store.js +2 -5
  100. package/dist/resources/extensions/search-the-web/provider.js +9 -8
  101. package/dist/resources/extensions/subagent/index.js +22 -17
  102. package/dist/resources/extensions/subagent/isolation.js +2 -2
  103. package/dist/resources/extensions/ttsr/rule-loader.js +2 -3
  104. package/dist/resources/extensions/voice/index.js +3 -2
  105. package/dist/resources/extensions/voice/linux-ready.js +2 -2
  106. package/dist/tool-bootstrap.js +7 -0
  107. package/dist/tsconfig.extensions.tsbuildinfo +1 -1
  108. package/dist/web/standalone/.next/BUILD_ID +1 -1
  109. package/dist/web/standalone/.next/app-path-routes-manifest.json +15 -15
  110. package/dist/web/standalone/.next/build-manifest.json +4 -4
  111. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  112. package/dist/web/standalone/.next/react-loadable-manifest.json +7 -7
  113. package/dist/web/standalone/.next/server/app/_global-error/page.js +3 -3
  114. package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  115. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  116. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  117. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  118. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  119. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  120. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  121. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  122. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  123. package/dist/web/standalone/.next/server/app/_not-found/page.js +2 -2
  124. package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  125. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  126. package/dist/web/standalone/.next/server/app/_not-found.rsc +2 -2
  127. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  128. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  129. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  130. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  131. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  132. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  133. package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
  134. package/dist/web/standalone/.next/server/app/api/boot/route.js.nft.json +1 -1
  135. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
  136. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js.nft.json +1 -1
  137. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
  138. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js.nft.json +1 -1
  139. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
  140. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js.nft.json +1 -1
  141. package/dist/web/standalone/.next/server/app/api/browse-directories/route.js +1 -1
  142. package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
  143. package/dist/web/standalone/.next/server/app/api/captures/route.js.nft.json +1 -1
  144. package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
  145. package/dist/web/standalone/.next/server/app/api/cleanup/route.js.nft.json +1 -1
  146. package/dist/web/standalone/.next/server/app/api/dev-mode/route.js +1 -1
  147. package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
  148. package/dist/web/standalone/.next/server/app/api/doctor/route.js.nft.json +1 -1
  149. package/dist/web/standalone/.next/server/app/api/experimental/route.js +2 -2
  150. package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
  151. package/dist/web/standalone/.next/server/app/api/export-data/route.js.nft.json +1 -1
  152. package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
  153. package/dist/web/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  154. package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
  155. package/dist/web/standalone/.next/server/app/api/forensics/route.js.nft.json +1 -1
  156. package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
  157. package/dist/web/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
  158. package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
  159. package/dist/web/standalone/.next/server/app/api/history/route.js.nft.json +1 -1
  160. package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
  161. package/dist/web/standalone/.next/server/app/api/hooks/route.js.nft.json +1 -1
  162. package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
  163. package/dist/web/standalone/.next/server/app/api/inspect/route.js.nft.json +1 -1
  164. package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
  165. package/dist/web/standalone/.next/server/app/api/knowledge/route.js.nft.json +1 -1
  166. package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
  167. package/dist/web/standalone/.next/server/app/api/live-state/route.js.nft.json +1 -1
  168. package/dist/web/standalone/.next/server/app/api/notifications/route.js +2 -2
  169. package/dist/web/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  170. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  171. package/dist/web/standalone/.next/server/app/api/onboarding/route.js.nft.json +1 -1
  172. package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
  173. package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
  174. package/dist/web/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  175. package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
  176. package/dist/web/standalone/.next/server/app/api/recovery/route.js.nft.json +1 -1
  177. package/dist/web/standalone/.next/server/app/api/remote-questions/route.js +2 -2
  178. package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
  179. package/dist/web/standalone/.next/server/app/api/session/browser/route.js.nft.json +1 -1
  180. package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
  181. package/dist/web/standalone/.next/server/app/api/session/command/route.js.nft.json +1 -1
  182. package/dist/web/standalone/.next/server/app/api/session/events/route.js +2 -2
  183. package/dist/web/standalone/.next/server/app/api/session/events/route.js.nft.json +1 -1
  184. package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
  185. package/dist/web/standalone/.next/server/app/api/session/manage/route.js.nft.json +1 -1
  186. package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
  187. package/dist/web/standalone/.next/server/app/api/settings-data/route.js.nft.json +1 -1
  188. package/dist/web/standalone/.next/server/app/api/shutdown/route.js +1 -1
  189. package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
  190. package/dist/web/standalone/.next/server/app/api/skill-health/route.js.nft.json +1 -1
  191. package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
  192. package/dist/web/standalone/.next/server/app/api/steer/route.js.nft.json +1 -1
  193. package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
  194. package/dist/web/standalone/.next/server/app/api/switch-root/route.js.nft.json +1 -1
  195. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +2 -2
  196. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +2 -2
  197. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +2 -2
  198. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js.nft.json +1 -1
  199. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +3 -3
  200. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js.nft.json +1 -1
  201. package/dist/web/standalone/.next/server/app/api/terminal/upload/route.js +1 -1
  202. package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
  203. package/dist/web/standalone/.next/server/app/api/undo/route.js.nft.json +1 -1
  204. package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
  205. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  206. package/dist/web/standalone/.next/server/app/api/visualizer/route.js.nft.json +1 -1
  207. package/dist/web/standalone/.next/server/app/index.html +1 -1
  208. package/dist/web/standalone/.next/server/app/index.rsc +3 -3
  209. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  210. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  211. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  212. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  213. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  214. package/dist/web/standalone/.next/server/app/page.js +2 -2
  215. package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  216. package/dist/web/standalone/.next/server/app-paths-manifest.json +15 -15
  217. package/dist/web/standalone/.next/server/chunks/2331.js +16 -16
  218. package/dist/web/standalone/.next/server/chunks/4741.js +12 -12
  219. package/dist/web/standalone/.next/server/chunks/5822.js +2 -2
  220. package/dist/web/standalone/.next/server/chunks/63.js +8 -8
  221. package/dist/web/standalone/.next/server/chunks/6897.js +3 -3
  222. package/dist/web/standalone/.next/server/chunks/8527.js +1 -0
  223. package/dist/web/standalone/.next/server/functions-config-manifest.json +9 -0
  224. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  225. package/dist/web/standalone/.next/server/middleware-manifest.json +2 -29
  226. package/dist/web/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  227. package/dist/web/standalone/.next/server/middleware.js +12 -4
  228. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  229. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  230. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  231. package/dist/web/standalone/.next/server/webpack-runtime.js +1 -1
  232. package/dist/web/standalone/.next/static/chunks/{9058.01ef3a463bda88f1.js → 2059.d6f49d697b624f2b.js} +2 -2
  233. package/dist/web/standalone/.next/static/chunks/2824.461404167557f2cd.js +1 -0
  234. package/dist/web/standalone/.next/static/chunks/363642f4.c6481b47ee815ba0.js +1 -0
  235. package/dist/web/standalone/.next/static/chunks/{3794-42fdce068d44fa4f.js → 3794-3fb4e6ee851037bb.js} +1 -1
  236. package/dist/web/standalone/.next/static/chunks/{4447.5bad7871be61ca73.js → 4447.fe6f304888d5ac71.js} +2 -2
  237. package/dist/web/standalone/.next/static/chunks/5326.def6842b53fecd26.js +1 -0
  238. package/dist/web/standalone/.next/static/chunks/{8336.31b019697882acfb.js → 8336.6f6f30e410419aff.js} +1 -1
  239. package/dist/web/standalone/.next/static/chunks/app/{page-9bf2e0c50fb2ca05.js → page-fab3ebb85b006001.js} +1 -1
  240. package/dist/web/standalone/.next/static/chunks/{framework-711ef29bc66f648c.js → framework-34a8c4228d7fd161.js} +1 -1
  241. package/dist/web/standalone/.next/static/chunks/{main-6919d9dd919bd15f.js → main-2b7d1294417bb6bc.js} +1 -1
  242. package/dist/web/standalone/.next/static/chunks/webpack-d82dbee6356c1733.js +1 -0
  243. package/dist/web/standalone/.next/static/css/{632cd626b1731d88.css → 54ec2745c1da488b.css} +1 -1
  244. package/dist/web/standalone/node_modules/@next/env/package.json +1 -1
  245. package/dist/web/standalone/node_modules/baseline-browser-mapping/dist/index.cjs +1 -1
  246. package/dist/web/standalone/node_modules/baseline-browser-mapping/package.json +3 -3
  247. package/dist/web/standalone/node_modules/caniuse-lite/data/agents.js +1 -1
  248. package/dist/web/standalone/node_modules/caniuse-lite/data/browserVersions.js +1 -1
  249. package/dist/web/standalone/node_modules/caniuse-lite/data/features/aac.js +1 -1
  250. package/dist/web/standalone/node_modules/caniuse-lite/data/features/abortcontroller.js +1 -1
  251. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ac3-ec3.js +1 -1
  252. package/dist/web/standalone/node_modules/caniuse-lite/data/features/accelerometer.js +1 -1
  253. package/dist/web/standalone/node_modules/caniuse-lite/data/features/addeventlistener.js +1 -1
  254. package/dist/web/standalone/node_modules/caniuse-lite/data/features/alternate-stylesheet.js +1 -1
  255. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ambient-light.js +1 -1
  256. package/dist/web/standalone/node_modules/caniuse-lite/data/features/apng.js +1 -1
  257. package/dist/web/standalone/node_modules/caniuse-lite/data/features/array-find-index.js +1 -1
  258. package/dist/web/standalone/node_modules/caniuse-lite/data/features/array-find.js +1 -1
  259. package/dist/web/standalone/node_modules/caniuse-lite/data/features/array-flat.js +1 -1
  260. package/dist/web/standalone/node_modules/caniuse-lite/data/features/array-includes.js +1 -1
  261. package/dist/web/standalone/node_modules/caniuse-lite/data/features/arrow-functions.js +1 -1
  262. package/dist/web/standalone/node_modules/caniuse-lite/data/features/asmjs.js +1 -1
  263. package/dist/web/standalone/node_modules/caniuse-lite/data/features/async-clipboard.js +1 -1
  264. package/dist/web/standalone/node_modules/caniuse-lite/data/features/async-functions.js +1 -1
  265. package/dist/web/standalone/node_modules/caniuse-lite/data/features/atob-btoa.js +1 -1
  266. package/dist/web/standalone/node_modules/caniuse-lite/data/features/audio-api.js +1 -1
  267. package/dist/web/standalone/node_modules/caniuse-lite/data/features/audio.js +1 -1
  268. package/dist/web/standalone/node_modules/caniuse-lite/data/features/audiotracks.js +1 -1
  269. package/dist/web/standalone/node_modules/caniuse-lite/data/features/autofocus.js +1 -1
  270. package/dist/web/standalone/node_modules/caniuse-lite/data/features/auxclick.js +1 -1
  271. package/dist/web/standalone/node_modules/caniuse-lite/data/features/av1.js +1 -1
  272. package/dist/web/standalone/node_modules/caniuse-lite/data/features/avif.js +1 -1
  273. package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-attachment.js +1 -1
  274. package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-clip-text.js +1 -1
  275. package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-img-opts.js +1 -1
  276. package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-position-x-y.js +1 -1
  277. package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-repeat-round-space.js +1 -1
  278. package/dist/web/standalone/node_modules/caniuse-lite/data/features/background-sync.js +1 -1
  279. package/dist/web/standalone/node_modules/caniuse-lite/data/features/battery-status.js +1 -1
  280. package/dist/web/standalone/node_modules/caniuse-lite/data/features/beacon.js +1 -1
  281. package/dist/web/standalone/node_modules/caniuse-lite/data/features/beforeafterprint.js +1 -1
  282. package/dist/web/standalone/node_modules/caniuse-lite/data/features/bigint.js +1 -1
  283. package/dist/web/standalone/node_modules/caniuse-lite/data/features/blobbuilder.js +1 -1
  284. package/dist/web/standalone/node_modules/caniuse-lite/data/features/bloburls.js +1 -1
  285. package/dist/web/standalone/node_modules/caniuse-lite/data/features/border-image.js +1 -1
  286. package/dist/web/standalone/node_modules/caniuse-lite/data/features/border-radius.js +1 -1
  287. package/dist/web/standalone/node_modules/caniuse-lite/data/features/broadcastchannel.js +1 -1
  288. package/dist/web/standalone/node_modules/caniuse-lite/data/features/brotli.js +1 -1
  289. package/dist/web/standalone/node_modules/caniuse-lite/data/features/calc.js +1 -1
  290. package/dist/web/standalone/node_modules/caniuse-lite/data/features/canvas-blending.js +1 -1
  291. package/dist/web/standalone/node_modules/caniuse-lite/data/features/canvas-text.js +1 -1
  292. package/dist/web/standalone/node_modules/caniuse-lite/data/features/canvas.js +1 -1
  293. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ch-unit.js +1 -1
  294. package/dist/web/standalone/node_modules/caniuse-lite/data/features/chacha20-poly1305.js +1 -1
  295. package/dist/web/standalone/node_modules/caniuse-lite/data/features/channel-messaging.js +1 -1
  296. package/dist/web/standalone/node_modules/caniuse-lite/data/features/childnode-remove.js +1 -1
  297. package/dist/web/standalone/node_modules/caniuse-lite/data/features/classlist.js +1 -1
  298. package/dist/web/standalone/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js +1 -1
  299. package/dist/web/standalone/node_modules/caniuse-lite/data/features/clipboard.js +1 -1
  300. package/dist/web/standalone/node_modules/caniuse-lite/data/features/colr-v1.js +1 -1
  301. package/dist/web/standalone/node_modules/caniuse-lite/data/features/colr.js +1 -1
  302. package/dist/web/standalone/node_modules/caniuse-lite/data/features/comparedocumentposition.js +1 -1
  303. package/dist/web/standalone/node_modules/caniuse-lite/data/features/console-basic.js +1 -1
  304. package/dist/web/standalone/node_modules/caniuse-lite/data/features/console-time.js +1 -1
  305. package/dist/web/standalone/node_modules/caniuse-lite/data/features/const.js +1 -1
  306. package/dist/web/standalone/node_modules/caniuse-lite/data/features/constraint-validation.js +1 -1
  307. package/dist/web/standalone/node_modules/caniuse-lite/data/features/contenteditable.js +1 -1
  308. package/dist/web/standalone/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js +1 -1
  309. package/dist/web/standalone/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js +1 -1
  310. package/dist/web/standalone/node_modules/caniuse-lite/data/features/cookie-store-api.js +1 -1
  311. package/dist/web/standalone/node_modules/caniuse-lite/data/features/cors.js +1 -1
  312. package/dist/web/standalone/node_modules/caniuse-lite/data/features/createimagebitmap.js +1 -1
  313. package/dist/web/standalone/node_modules/caniuse-lite/data/features/credential-management.js +1 -1
  314. package/dist/web/standalone/node_modules/caniuse-lite/data/features/cross-document-view-transitions.js +1 -1
  315. package/dist/web/standalone/node_modules/caniuse-lite/data/features/cryptography.js +1 -1
  316. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-all.js +1 -1
  317. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-anchor-positioning.js +1 -1
  318. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-animation.js +1 -1
  319. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-any-link.js +1 -1
  320. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-appearance.js +1 -1
  321. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-at-counter-style.js +1 -1
  322. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-autofill.js +1 -1
  323. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-backdrop-filter.js +1 -1
  324. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-background-offsets.js +1 -1
  325. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js +1 -1
  326. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js +1 -1
  327. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-boxshadow.js +1 -1
  328. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-canvas.js +1 -1
  329. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-caret-color.js +1 -1
  330. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-cascade-layers.js +1 -1
  331. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-cascade-scope.js +1 -1
  332. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-case-insensitive.js +1 -1
  333. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-clip-path.js +1 -1
  334. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-color-adjust.js +1 -1
  335. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-color-function.js +1 -1
  336. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-conic-gradients.js +1 -1
  337. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-container-queries-style.js +1 -1
  338. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-container-queries.js +1 -1
  339. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-container-query-units.js +1 -1
  340. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-containment.js +1 -1
  341. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-content-visibility.js +1 -1
  342. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-counters.js +1 -1
  343. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-crisp-edges.js +1 -1
  344. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-cross-fade.js +1 -1
  345. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-default-pseudo.js +1 -1
  346. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js +1 -1
  347. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-deviceadaptation.js +1 -1
  348. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-dir-pseudo.js +1 -1
  349. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-display-contents.js +1 -1
  350. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-element-function.js +1 -1
  351. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-env-function.js +1 -1
  352. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-exclusions.js +1 -1
  353. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-featurequeries.js +1 -1
  354. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-file-selector-button.js +1 -1
  355. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-filter-function.js +1 -1
  356. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-filters.js +1 -1
  357. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-first-letter.js +1 -1
  358. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-first-line.js +1 -1
  359. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-fixed.js +1 -1
  360. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-focus-visible.js +1 -1
  361. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-focus-within.js +1 -1
  362. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-font-palette.js +1 -1
  363. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js +1 -1
  364. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-font-stretch.js +1 -1
  365. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-gencontent.js +1 -1
  366. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-gradients.js +1 -1
  367. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-grid-animation.js +1 -1
  368. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-grid-lanes.js +1 -1
  369. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-grid.js +1 -1
  370. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js +1 -1
  371. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-has.js +1 -1
  372. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-hyphens.js +1 -1
  373. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-if.js +1 -1
  374. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-image-orientation.js +1 -1
  375. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-image-set.js +1 -1
  376. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-in-out-of-range.js +1 -1
  377. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js +1 -1
  378. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-initial-letter.js +1 -1
  379. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-initial-value.js +1 -1
  380. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-lch-lab.js +1 -1
  381. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-letter-spacing.js +1 -1
  382. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-line-clamp.js +1 -1
  383. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-logical-props.js +1 -1
  384. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-marker-pseudo.js +1 -1
  385. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-masks.js +1 -1
  386. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-matches-pseudo.js +1 -1
  387. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-math-functions.js +1 -1
  388. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-media-interaction.js +1 -1
  389. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-media-range-syntax.js +1 -1
  390. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-media-resolution.js +1 -1
  391. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-media-scripting.js +1 -1
  392. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-mediaqueries.js +1 -1
  393. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-mixblendmode.js +1 -1
  394. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-module-scripts.js +1 -1
  395. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-motion-paths.js +1 -1
  396. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-namespaces.js +1 -1
  397. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-nesting.js +1 -1
  398. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-not-sel-list.js +1 -1
  399. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-nth-child-of.js +1 -1
  400. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-opacity.js +1 -1
  401. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-optional-pseudo.js +1 -1
  402. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-overflow-anchor.js +1 -1
  403. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-overflow-overlay.js +1 -1
  404. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-overflow.js +1 -1
  405. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js +1 -1
  406. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-page-break.js +1 -1
  407. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-paged-media.js +1 -1
  408. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-paint-api.js +1 -1
  409. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-placeholder-shown.js +1 -1
  410. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-placeholder.js +1 -1
  411. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-print-color-adjust.js +1 -1
  412. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-read-only-write.js +1 -1
  413. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-rebeccapurple.js +1 -1
  414. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-reflections.js +1 -1
  415. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-regions.js +1 -1
  416. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-relative-colors.js +1 -1
  417. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-repeating-gradients.js +1 -1
  418. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-resize.js +1 -1
  419. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-revert-value.js +1 -1
  420. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-rrggbbaa.js +1 -1
  421. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-scroll-behavior.js +1 -1
  422. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-scrollbar.js +1 -1
  423. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-sel2.js +1 -1
  424. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-sel3.js +1 -1
  425. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-selection.js +1 -1
  426. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-shapes.js +1 -1
  427. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-snappoints.js +1 -1
  428. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-sticky.js +1 -1
  429. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-subgrid.js +1 -1
  430. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-supports-api.js +1 -1
  431. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-table.js +1 -1
  432. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-align-last.js +1 -1
  433. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-box-trim.js +1 -1
  434. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-indent.js +1 -1
  435. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-justify.js +1 -1
  436. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-orientation.js +1 -1
  437. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-spacing.js +1 -1
  438. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-text-wrap-balance.js +1 -1
  439. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-textshadow.js +1 -1
  440. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-touch-action.js +1 -1
  441. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-transitions.js +1 -1
  442. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-unicode-bidi.js +1 -1
  443. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-unset-value.js +1 -1
  444. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-variables.js +1 -1
  445. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-when-else.js +1 -1
  446. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-widows-orphans.js +1 -1
  447. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-width-stretch.js +1 -1
  448. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-writing-mode.js +1 -1
  449. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css-zoom.js +1 -1
  450. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-attr.js +1 -1
  451. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-boxsizing.js +1 -1
  452. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-colors.js +1 -1
  453. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-cursors-grab.js +1 -1
  454. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-cursors-newer.js +1 -1
  455. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-cursors.js +1 -1
  456. package/dist/web/standalone/node_modules/caniuse-lite/data/features/css3-tabsize.js +1 -1
  457. package/dist/web/standalone/node_modules/caniuse-lite/data/features/currentcolor.js +1 -1
  458. package/dist/web/standalone/node_modules/caniuse-lite/data/features/custom-elements.js +1 -1
  459. package/dist/web/standalone/node_modules/caniuse-lite/data/features/custom-elementsv1.js +1 -1
  460. package/dist/web/standalone/node_modules/caniuse-lite/data/features/customevent.js +1 -1
  461. package/dist/web/standalone/node_modules/caniuse-lite/data/features/customizable-select.js +1 -1
  462. package/dist/web/standalone/node_modules/caniuse-lite/data/features/datalist.js +1 -1
  463. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dataset.js +1 -1
  464. package/dist/web/standalone/node_modules/caniuse-lite/data/features/datauri.js +1 -1
  465. package/dist/web/standalone/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js +1 -1
  466. package/dist/web/standalone/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js +1 -1
  467. package/dist/web/standalone/node_modules/caniuse-lite/data/features/decorators.js +1 -1
  468. package/dist/web/standalone/node_modules/caniuse-lite/data/features/details.js +1 -1
  469. package/dist/web/standalone/node_modules/caniuse-lite/data/features/deviceorientation.js +1 -1
  470. package/dist/web/standalone/node_modules/caniuse-lite/data/features/devicepixelratio.js +1 -1
  471. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dialog.js +1 -1
  472. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dispatchevent.js +1 -1
  473. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dnssec.js +1 -1
  474. package/dist/web/standalone/node_modules/caniuse-lite/data/features/do-not-track.js +1 -1
  475. package/dist/web/standalone/node_modules/caniuse-lite/data/features/document-currentscript.js +1 -1
  476. package/dist/web/standalone/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js +1 -1
  477. package/dist/web/standalone/node_modules/caniuse-lite/data/features/document-execcommand.js +1 -1
  478. package/dist/web/standalone/node_modules/caniuse-lite/data/features/document-policy.js +1 -1
  479. package/dist/web/standalone/node_modules/caniuse-lite/data/features/document-scrollingelement.js +1 -1
  480. package/dist/web/standalone/node_modules/caniuse-lite/data/features/documenthead.js +1 -1
  481. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dom-manip-convenience.js +1 -1
  482. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dom-range.js +1 -1
  483. package/dist/web/standalone/node_modules/caniuse-lite/data/features/domcontentloaded.js +1 -1
  484. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dommatrix.js +1 -1
  485. package/dist/web/standalone/node_modules/caniuse-lite/data/features/download.js +1 -1
  486. package/dist/web/standalone/node_modules/caniuse-lite/data/features/dragndrop.js +1 -1
  487. package/dist/web/standalone/node_modules/caniuse-lite/data/features/element-closest.js +1 -1
  488. package/dist/web/standalone/node_modules/caniuse-lite/data/features/element-from-point.js +1 -1
  489. package/dist/web/standalone/node_modules/caniuse-lite/data/features/element-scroll-methods.js +1 -1
  490. package/dist/web/standalone/node_modules/caniuse-lite/data/features/eme.js +1 -1
  491. package/dist/web/standalone/node_modules/caniuse-lite/data/features/eot.js +1 -1
  492. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es5.js +1 -1
  493. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-class.js +1 -1
  494. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-generators.js +1 -1
  495. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js +1 -1
  496. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-module.js +1 -1
  497. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-number.js +1 -1
  498. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6-string-includes.js +1 -1
  499. package/dist/web/standalone/node_modules/caniuse-lite/data/features/es6.js +1 -1
  500. package/dist/web/standalone/node_modules/caniuse-lite/data/features/eventsource.js +1 -1
  501. package/dist/web/standalone/node_modules/caniuse-lite/data/features/extended-system-fonts.js +1 -1
  502. package/dist/web/standalone/node_modules/caniuse-lite/data/features/feature-policy.js +1 -1
  503. package/dist/web/standalone/node_modules/caniuse-lite/data/features/fetch.js +1 -1
  504. package/dist/web/standalone/node_modules/caniuse-lite/data/features/fieldset-disabled.js +1 -1
  505. package/dist/web/standalone/node_modules/caniuse-lite/data/features/fileapi.js +1 -1
  506. package/dist/web/standalone/node_modules/caniuse-lite/data/features/filereader.js +1 -1
  507. package/dist/web/standalone/node_modules/caniuse-lite/data/features/filereadersync.js +1 -1
  508. package/dist/web/standalone/node_modules/caniuse-lite/data/features/filesystem.js +1 -1
  509. package/dist/web/standalone/node_modules/caniuse-lite/data/features/flac.js +1 -1
  510. package/dist/web/standalone/node_modules/caniuse-lite/data/features/flexbox-gap.js +1 -1
  511. package/dist/web/standalone/node_modules/caniuse-lite/data/features/flexbox.js +1 -1
  512. package/dist/web/standalone/node_modules/caniuse-lite/data/features/flow-root.js +1 -1
  513. package/dist/web/standalone/node_modules/caniuse-lite/data/features/focusin-focusout-events.js +1 -1
  514. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-family-system-ui.js +1 -1
  515. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-feature.js +1 -1
  516. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-kerning.js +1 -1
  517. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-loading.js +1 -1
  518. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-size-adjust.js +1 -1
  519. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-smooth.js +1 -1
  520. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-unicode-range.js +1 -1
  521. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-variant-alternates.js +1 -1
  522. package/dist/web/standalone/node_modules/caniuse-lite/data/features/font-variant-numeric.js +1 -1
  523. package/dist/web/standalone/node_modules/caniuse-lite/data/features/fontface.js +1 -1
  524. package/dist/web/standalone/node_modules/caniuse-lite/data/features/form-attribute.js +1 -1
  525. package/dist/web/standalone/node_modules/caniuse-lite/data/features/form-submit-attributes.js +1 -1
  526. package/dist/web/standalone/node_modules/caniuse-lite/data/features/form-validation.js +1 -1
  527. package/dist/web/standalone/node_modules/caniuse-lite/data/features/forms.js +1 -1
  528. package/dist/web/standalone/node_modules/caniuse-lite/data/features/fullscreen.js +1 -1
  529. package/dist/web/standalone/node_modules/caniuse-lite/data/features/gamepad.js +1 -1
  530. package/dist/web/standalone/node_modules/caniuse-lite/data/features/geolocation.js +1 -1
  531. package/dist/web/standalone/node_modules/caniuse-lite/data/features/getboundingclientrect.js +1 -1
  532. package/dist/web/standalone/node_modules/caniuse-lite/data/features/getcomputedstyle.js +1 -1
  533. package/dist/web/standalone/node_modules/caniuse-lite/data/features/getelementsbyclassname.js +1 -1
  534. package/dist/web/standalone/node_modules/caniuse-lite/data/features/getrandomvalues.js +1 -1
  535. package/dist/web/standalone/node_modules/caniuse-lite/data/features/gyroscope.js +1 -1
  536. package/dist/web/standalone/node_modules/caniuse-lite/data/features/hardwareconcurrency.js +1 -1
  537. package/dist/web/standalone/node_modules/caniuse-lite/data/features/hashchange.js +1 -1
  538. package/dist/web/standalone/node_modules/caniuse-lite/data/features/heif.js +1 -1
  539. package/dist/web/standalone/node_modules/caniuse-lite/data/features/hevc.js +1 -1
  540. package/dist/web/standalone/node_modules/caniuse-lite/data/features/hidden.js +1 -1
  541. package/dist/web/standalone/node_modules/caniuse-lite/data/features/high-resolution-time.js +1 -1
  542. package/dist/web/standalone/node_modules/caniuse-lite/data/features/history.js +1 -1
  543. package/dist/web/standalone/node_modules/caniuse-lite/data/features/html-media-capture.js +1 -1
  544. package/dist/web/standalone/node_modules/caniuse-lite/data/features/html5semantic.js +1 -1
  545. package/dist/web/standalone/node_modules/caniuse-lite/data/features/http-live-streaming.js +1 -1
  546. package/dist/web/standalone/node_modules/caniuse-lite/data/features/http2.js +1 -1
  547. package/dist/web/standalone/node_modules/caniuse-lite/data/features/http3.js +1 -1
  548. package/dist/web/standalone/node_modules/caniuse-lite/data/features/iframe-sandbox.js +1 -1
  549. package/dist/web/standalone/node_modules/caniuse-lite/data/features/iframe-seamless.js +1 -1
  550. package/dist/web/standalone/node_modules/caniuse-lite/data/features/iframe-srcdoc.js +1 -1
  551. package/dist/web/standalone/node_modules/caniuse-lite/data/features/imagecapture.js +1 -1
  552. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ime.js +1 -1
  553. package/dist/web/standalone/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js +1 -1
  554. package/dist/web/standalone/node_modules/caniuse-lite/data/features/import-maps.js +1 -1
  555. package/dist/web/standalone/node_modules/caniuse-lite/data/features/imports.js +1 -1
  556. package/dist/web/standalone/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js +1 -1
  557. package/dist/web/standalone/node_modules/caniuse-lite/data/features/indexeddb.js +1 -1
  558. package/dist/web/standalone/node_modules/caniuse-lite/data/features/indexeddb2.js +1 -1
  559. package/dist/web/standalone/node_modules/caniuse-lite/data/features/inline-block.js +1 -1
  560. package/dist/web/standalone/node_modules/caniuse-lite/data/features/innertext.js +1 -1
  561. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js +1 -1
  562. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-color.js +1 -1
  563. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-datetime.js +1 -1
  564. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-email-tel-url.js +1 -1
  565. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-event.js +1 -1
  566. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-file-accept.js +1 -1
  567. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-file-directory.js +1 -1
  568. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-file-multiple.js +1 -1
  569. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-inputmode.js +1 -1
  570. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-minlength.js +1 -1
  571. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-number.js +1 -1
  572. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-pattern.js +1 -1
  573. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-placeholder.js +1 -1
  574. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-range.js +1 -1
  575. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-search.js +1 -1
  576. package/dist/web/standalone/node_modules/caniuse-lite/data/features/input-selection.js +1 -1
  577. package/dist/web/standalone/node_modules/caniuse-lite/data/features/insert-adjacent.js +1 -1
  578. package/dist/web/standalone/node_modules/caniuse-lite/data/features/insertadjacenthtml.js +1 -1
  579. package/dist/web/standalone/node_modules/caniuse-lite/data/features/internationalization.js +1 -1
  580. package/dist/web/standalone/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js +1 -1
  581. package/dist/web/standalone/node_modules/caniuse-lite/data/features/intersectionobserver.js +1 -1
  582. package/dist/web/standalone/node_modules/caniuse-lite/data/features/intl-pluralrules.js +1 -1
  583. package/dist/web/standalone/node_modules/caniuse-lite/data/features/intrinsic-width.js +1 -1
  584. package/dist/web/standalone/node_modules/caniuse-lite/data/features/jpeg2000.js +1 -1
  585. package/dist/web/standalone/node_modules/caniuse-lite/data/features/jpegxl.js +1 -1
  586. package/dist/web/standalone/node_modules/caniuse-lite/data/features/jpegxr.js +1 -1
  587. package/dist/web/standalone/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js +1 -1
  588. package/dist/web/standalone/node_modules/caniuse-lite/data/features/json.js +1 -1
  589. package/dist/web/standalone/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js +1 -1
  590. package/dist/web/standalone/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js +1 -1
  591. package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js +1 -1
  592. package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-code.js +1 -1
  593. package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js +1 -1
  594. package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-key.js +1 -1
  595. package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-location.js +1 -1
  596. package/dist/web/standalone/node_modules/caniuse-lite/data/features/keyboardevent-which.js +1 -1
  597. package/dist/web/standalone/node_modules/caniuse-lite/data/features/lazyload.js +1 -1
  598. package/dist/web/standalone/node_modules/caniuse-lite/data/features/let.js +1 -1
  599. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-icon-png.js +1 -1
  600. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-icon-svg.js +1 -1
  601. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js +1 -1
  602. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js +1 -1
  603. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-preconnect.js +1 -1
  604. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-prefetch.js +1 -1
  605. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-preload.js +1 -1
  606. package/dist/web/standalone/node_modules/caniuse-lite/data/features/link-rel-prerender.js +1 -1
  607. package/dist/web/standalone/node_modules/caniuse-lite/data/features/loading-lazy-attr.js +1 -1
  608. package/dist/web/standalone/node_modules/caniuse-lite/data/features/loading-lazy-media.js +1 -1
  609. package/dist/web/standalone/node_modules/caniuse-lite/data/features/localecompare.js +1 -1
  610. package/dist/web/standalone/node_modules/caniuse-lite/data/features/magnetometer.js +1 -1
  611. package/dist/web/standalone/node_modules/caniuse-lite/data/features/matchesselector.js +1 -1
  612. package/dist/web/standalone/node_modules/caniuse-lite/data/features/matchmedia.js +1 -1
  613. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mathml.js +1 -1
  614. package/dist/web/standalone/node_modules/caniuse-lite/data/features/maxlength.js +1 -1
  615. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js +1 -1
  616. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js +1 -1
  617. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js +1 -1
  618. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js +1 -1
  619. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js +1 -1
  620. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js +1 -1
  621. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js +1 -1
  622. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js +1 -1
  623. package/dist/web/standalone/node_modules/caniuse-lite/data/features/media-fragments.js +1 -1
  624. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js +1 -1
  625. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mediarecorder.js +1 -1
  626. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mediasource.js +1 -1
  627. package/dist/web/standalone/node_modules/caniuse-lite/data/features/menu.js +1 -1
  628. package/dist/web/standalone/node_modules/caniuse-lite/data/features/meta-theme-color.js +1 -1
  629. package/dist/web/standalone/node_modules/caniuse-lite/data/features/meter.js +1 -1
  630. package/dist/web/standalone/node_modules/caniuse-lite/data/features/midi.js +1 -1
  631. package/dist/web/standalone/node_modules/caniuse-lite/data/features/minmaxwh.js +1 -1
  632. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mp3.js +1 -1
  633. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mpeg-dash.js +1 -1
  634. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mpeg4.js +1 -1
  635. package/dist/web/standalone/node_modules/caniuse-lite/data/features/multibackgrounds.js +1 -1
  636. package/dist/web/standalone/node_modules/caniuse-lite/data/features/multicolumn.js +1 -1
  637. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mutation-events.js +1 -1
  638. package/dist/web/standalone/node_modules/caniuse-lite/data/features/mutationobserver.js +1 -1
  639. package/dist/web/standalone/node_modules/caniuse-lite/data/features/namevalue-storage.js +1 -1
  640. package/dist/web/standalone/node_modules/caniuse-lite/data/features/native-filesystem-api.js +1 -1
  641. package/dist/web/standalone/node_modules/caniuse-lite/data/features/nav-timing.js +1 -1
  642. package/dist/web/standalone/node_modules/caniuse-lite/data/features/netinfo.js +1 -1
  643. package/dist/web/standalone/node_modules/caniuse-lite/data/features/notifications.js +1 -1
  644. package/dist/web/standalone/node_modules/caniuse-lite/data/features/object-entries.js +1 -1
  645. package/dist/web/standalone/node_modules/caniuse-lite/data/features/object-fit.js +1 -1
  646. package/dist/web/standalone/node_modules/caniuse-lite/data/features/object-observe.js +1 -1
  647. package/dist/web/standalone/node_modules/caniuse-lite/data/features/object-values.js +1 -1
  648. package/dist/web/standalone/node_modules/caniuse-lite/data/features/objectrtc.js +1 -1
  649. package/dist/web/standalone/node_modules/caniuse-lite/data/features/offline-apps.js +1 -1
  650. package/dist/web/standalone/node_modules/caniuse-lite/data/features/offscreencanvas.js +1 -1
  651. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ogg-vorbis.js +1 -1
  652. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ogv.js +1 -1
  653. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ol-reversed.js +1 -1
  654. package/dist/web/standalone/node_modules/caniuse-lite/data/features/once-event-listener.js +1 -1
  655. package/dist/web/standalone/node_modules/caniuse-lite/data/features/online-status.js +1 -1
  656. package/dist/web/standalone/node_modules/caniuse-lite/data/features/opus.js +1 -1
  657. package/dist/web/standalone/node_modules/caniuse-lite/data/features/orientation-sensor.js +1 -1
  658. package/dist/web/standalone/node_modules/caniuse-lite/data/features/outline.js +1 -1
  659. package/dist/web/standalone/node_modules/caniuse-lite/data/features/pad-start-end.js +1 -1
  660. package/dist/web/standalone/node_modules/caniuse-lite/data/features/page-transition-events.js +1 -1
  661. package/dist/web/standalone/node_modules/caniuse-lite/data/features/pagevisibility.js +1 -1
  662. package/dist/web/standalone/node_modules/caniuse-lite/data/features/passive-event-listener.js +1 -1
  663. package/dist/web/standalone/node_modules/caniuse-lite/data/features/passkeys.js +1 -1
  664. package/dist/web/standalone/node_modules/caniuse-lite/data/features/passwordrules.js +1 -1
  665. package/dist/web/standalone/node_modules/caniuse-lite/data/features/path2d.js +1 -1
  666. package/dist/web/standalone/node_modules/caniuse-lite/data/features/payment-request.js +1 -1
  667. package/dist/web/standalone/node_modules/caniuse-lite/data/features/pdf-viewer.js +1 -1
  668. package/dist/web/standalone/node_modules/caniuse-lite/data/features/permissions-api.js +1 -1
  669. package/dist/web/standalone/node_modules/caniuse-lite/data/features/permissions-policy.js +1 -1
  670. package/dist/web/standalone/node_modules/caniuse-lite/data/features/picture-in-picture.js +1 -1
  671. package/dist/web/standalone/node_modules/caniuse-lite/data/features/picture.js +1 -1
  672. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ping.js +1 -1
  673. package/dist/web/standalone/node_modules/caniuse-lite/data/features/png-alpha.js +1 -1
  674. package/dist/web/standalone/node_modules/caniuse-lite/data/features/pointer-events.js +1 -1
  675. package/dist/web/standalone/node_modules/caniuse-lite/data/features/pointer.js +1 -1
  676. package/dist/web/standalone/node_modules/caniuse-lite/data/features/pointerlock.js +1 -1
  677. package/dist/web/standalone/node_modules/caniuse-lite/data/features/portals.js +1 -1
  678. package/dist/web/standalone/node_modules/caniuse-lite/data/features/prefers-color-scheme.js +1 -1
  679. package/dist/web/standalone/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js +1 -1
  680. package/dist/web/standalone/node_modules/caniuse-lite/data/features/progress.js +1 -1
  681. package/dist/web/standalone/node_modules/caniuse-lite/data/features/promise-finally.js +1 -1
  682. package/dist/web/standalone/node_modules/caniuse-lite/data/features/promises.js +1 -1
  683. package/dist/web/standalone/node_modules/caniuse-lite/data/features/proximity.js +1 -1
  684. package/dist/web/standalone/node_modules/caniuse-lite/data/features/proxy.js +1 -1
  685. package/dist/web/standalone/node_modules/caniuse-lite/data/features/publickeypinning.js +1 -1
  686. package/dist/web/standalone/node_modules/caniuse-lite/data/features/push-api.js +1 -1
  687. package/dist/web/standalone/node_modules/caniuse-lite/data/features/queryselector.js +1 -1
  688. package/dist/web/standalone/node_modules/caniuse-lite/data/features/readonly-attr.js +1 -1
  689. package/dist/web/standalone/node_modules/caniuse-lite/data/features/referrer-policy.js +1 -1
  690. package/dist/web/standalone/node_modules/caniuse-lite/data/features/registerprotocolhandler.js +1 -1
  691. package/dist/web/standalone/node_modules/caniuse-lite/data/features/rel-noopener.js +1 -1
  692. package/dist/web/standalone/node_modules/caniuse-lite/data/features/rel-noreferrer.js +1 -1
  693. package/dist/web/standalone/node_modules/caniuse-lite/data/features/rellist.js +1 -1
  694. package/dist/web/standalone/node_modules/caniuse-lite/data/features/rem.js +1 -1
  695. package/dist/web/standalone/node_modules/caniuse-lite/data/features/requestanimationframe.js +1 -1
  696. package/dist/web/standalone/node_modules/caniuse-lite/data/features/requestidlecallback.js +1 -1
  697. package/dist/web/standalone/node_modules/caniuse-lite/data/features/resizeobserver.js +1 -1
  698. package/dist/web/standalone/node_modules/caniuse-lite/data/features/resource-timing.js +1 -1
  699. package/dist/web/standalone/node_modules/caniuse-lite/data/features/rest-parameters.js +1 -1
  700. package/dist/web/standalone/node_modules/caniuse-lite/data/features/rtcpeerconnection.js +1 -1
  701. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ruby.js +1 -1
  702. package/dist/web/standalone/node_modules/caniuse-lite/data/features/run-in.js +1 -1
  703. package/dist/web/standalone/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js +1 -1
  704. package/dist/web/standalone/node_modules/caniuse-lite/data/features/screen-orientation.js +1 -1
  705. package/dist/web/standalone/node_modules/caniuse-lite/data/features/script-async.js +1 -1
  706. package/dist/web/standalone/node_modules/caniuse-lite/data/features/script-defer.js +1 -1
  707. package/dist/web/standalone/node_modules/caniuse-lite/data/features/scrollintoview.js +1 -1
  708. package/dist/web/standalone/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js +1 -1
  709. package/dist/web/standalone/node_modules/caniuse-lite/data/features/sdch.js +1 -1
  710. package/dist/web/standalone/node_modules/caniuse-lite/data/features/selection-api.js +1 -1
  711. package/dist/web/standalone/node_modules/caniuse-lite/data/features/server-timing.js +1 -1
  712. package/dist/web/standalone/node_modules/caniuse-lite/data/features/serviceworkers.js +1 -1
  713. package/dist/web/standalone/node_modules/caniuse-lite/data/features/setimmediate.js +1 -1
  714. package/dist/web/standalone/node_modules/caniuse-lite/data/features/shadowdom.js +1 -1
  715. package/dist/web/standalone/node_modules/caniuse-lite/data/features/shadowdomv1.js +1 -1
  716. package/dist/web/standalone/node_modules/caniuse-lite/data/features/sharedarraybuffer.js +1 -1
  717. package/dist/web/standalone/node_modules/caniuse-lite/data/features/sharedworkers.js +1 -1
  718. package/dist/web/standalone/node_modules/caniuse-lite/data/features/sni.js +1 -1
  719. package/dist/web/standalone/node_modules/caniuse-lite/data/features/spdy.js +1 -1
  720. package/dist/web/standalone/node_modules/caniuse-lite/data/features/speech-recognition.js +1 -1
  721. package/dist/web/standalone/node_modules/caniuse-lite/data/features/speech-synthesis.js +1 -1
  722. package/dist/web/standalone/node_modules/caniuse-lite/data/features/spellcheck-attribute.js +1 -1
  723. package/dist/web/standalone/node_modules/caniuse-lite/data/features/sql-storage.js +1 -1
  724. package/dist/web/standalone/node_modules/caniuse-lite/data/features/srcset.js +1 -1
  725. package/dist/web/standalone/node_modules/caniuse-lite/data/features/stream.js +1 -1
  726. package/dist/web/standalone/node_modules/caniuse-lite/data/features/streams.js +1 -1
  727. package/dist/web/standalone/node_modules/caniuse-lite/data/features/stricttransportsecurity.js +1 -1
  728. package/dist/web/standalone/node_modules/caniuse-lite/data/features/style-scoped.js +1 -1
  729. package/dist/web/standalone/node_modules/caniuse-lite/data/features/subresource-bundling.js +1 -1
  730. package/dist/web/standalone/node_modules/caniuse-lite/data/features/subresource-integrity.js +1 -1
  731. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-css.js +1 -1
  732. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-filters.js +1 -1
  733. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-fonts.js +1 -1
  734. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-fragment.js +1 -1
  735. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-html.js +1 -1
  736. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-html5.js +1 -1
  737. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-img.js +1 -1
  738. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg-smil.js +1 -1
  739. package/dist/web/standalone/node_modules/caniuse-lite/data/features/svg.js +1 -1
  740. package/dist/web/standalone/node_modules/caniuse-lite/data/features/sxg.js +1 -1
  741. package/dist/web/standalone/node_modules/caniuse-lite/data/features/tabindex-attr.js +1 -1
  742. package/dist/web/standalone/node_modules/caniuse-lite/data/features/template-literals.js +1 -1
  743. package/dist/web/standalone/node_modules/caniuse-lite/data/features/template.js +1 -1
  744. package/dist/web/standalone/node_modules/caniuse-lite/data/features/temporal.js +1 -1
  745. package/dist/web/standalone/node_modules/caniuse-lite/data/features/testfeat.js +1 -1
  746. package/dist/web/standalone/node_modules/caniuse-lite/data/features/text-decoration.js +1 -1
  747. package/dist/web/standalone/node_modules/caniuse-lite/data/features/text-emphasis.js +1 -1
  748. package/dist/web/standalone/node_modules/caniuse-lite/data/features/text-overflow.js +1 -1
  749. package/dist/web/standalone/node_modules/caniuse-lite/data/features/text-size-adjust.js +1 -1
  750. package/dist/web/standalone/node_modules/caniuse-lite/data/features/text-stroke.js +1 -1
  751. package/dist/web/standalone/node_modules/caniuse-lite/data/features/textcontent.js +1 -1
  752. package/dist/web/standalone/node_modules/caniuse-lite/data/features/textencoder.js +1 -1
  753. package/dist/web/standalone/node_modules/caniuse-lite/data/features/tls1-1.js +1 -1
  754. package/dist/web/standalone/node_modules/caniuse-lite/data/features/tls1-2.js +1 -1
  755. package/dist/web/standalone/node_modules/caniuse-lite/data/features/tls1-3.js +1 -1
  756. package/dist/web/standalone/node_modules/caniuse-lite/data/features/touch.js +1 -1
  757. package/dist/web/standalone/node_modules/caniuse-lite/data/features/transforms2d.js +1 -1
  758. package/dist/web/standalone/node_modules/caniuse-lite/data/features/transforms3d.js +1 -1
  759. package/dist/web/standalone/node_modules/caniuse-lite/data/features/trusted-types.js +1 -1
  760. package/dist/web/standalone/node_modules/caniuse-lite/data/features/ttf.js +1 -1
  761. package/dist/web/standalone/node_modules/caniuse-lite/data/features/typedarrays.js +1 -1
  762. package/dist/web/standalone/node_modules/caniuse-lite/data/features/u2f.js +1 -1
  763. package/dist/web/standalone/node_modules/caniuse-lite/data/features/unhandledrejection.js +1 -1
  764. package/dist/web/standalone/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js +1 -1
  765. package/dist/web/standalone/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js +1 -1
  766. package/dist/web/standalone/node_modules/caniuse-lite/data/features/url.js +1 -1
  767. package/dist/web/standalone/node_modules/caniuse-lite/data/features/urlsearchparams.js +1 -1
  768. package/dist/web/standalone/node_modules/caniuse-lite/data/features/use-strict.js +1 -1
  769. package/dist/web/standalone/node_modules/caniuse-lite/data/features/user-select-none.js +1 -1
  770. package/dist/web/standalone/node_modules/caniuse-lite/data/features/user-timing.js +1 -1
  771. package/dist/web/standalone/node_modules/caniuse-lite/data/features/variable-fonts.js +1 -1
  772. package/dist/web/standalone/node_modules/caniuse-lite/data/features/vector-effect.js +1 -1
  773. package/dist/web/standalone/node_modules/caniuse-lite/data/features/vibration.js +1 -1
  774. package/dist/web/standalone/node_modules/caniuse-lite/data/features/video.js +1 -1
  775. package/dist/web/standalone/node_modules/caniuse-lite/data/features/videotracks.js +1 -1
  776. package/dist/web/standalone/node_modules/caniuse-lite/data/features/view-transitions.js +1 -1
  777. package/dist/web/standalone/node_modules/caniuse-lite/data/features/viewport-unit-variants.js +1 -1
  778. package/dist/web/standalone/node_modules/caniuse-lite/data/features/viewport-units.js +1 -1
  779. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wai-aria.js +1 -1
  780. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wake-lock.js +1 -1
  781. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-bigint.js +1 -1
  782. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-bulk-memory.js +1 -1
  783. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-extended-const.js +1 -1
  784. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-gc.js +1 -1
  785. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-multi-memory.js +1 -1
  786. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-multi-value.js +1 -1
  787. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-mutable-globals.js +1 -1
  788. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-nontrapping-fptoint.js +1 -1
  789. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-reference-types.js +1 -1
  790. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-relaxed-simd.js +1 -1
  791. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-signext.js +1 -1
  792. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-simd.js +1 -1
  793. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-tail-calls.js +1 -1
  794. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm-threads.js +1 -1
  795. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wasm.js +1 -1
  796. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wav.js +1 -1
  797. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wbr-element.js +1 -1
  798. package/dist/web/standalone/node_modules/caniuse-lite/data/features/web-animation.js +1 -1
  799. package/dist/web/standalone/node_modules/caniuse-lite/data/features/web-app-manifest.js +1 -1
  800. package/dist/web/standalone/node_modules/caniuse-lite/data/features/web-bluetooth.js +1 -1
  801. package/dist/web/standalone/node_modules/caniuse-lite/data/features/web-serial.js +1 -1
  802. package/dist/web/standalone/node_modules/caniuse-lite/data/features/web-share.js +1 -1
  803. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webauthn.js +1 -1
  804. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webcodecs.js +1 -1
  805. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webgl.js +1 -1
  806. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webgl2.js +1 -1
  807. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webgpu.js +1 -1
  808. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webhid.js +1 -1
  809. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webkit-user-drag.js +1 -1
  810. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webm.js +1 -1
  811. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webnfc.js +1 -1
  812. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webp.js +1 -1
  813. package/dist/web/standalone/node_modules/caniuse-lite/data/features/websockets.js +1 -1
  814. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webtransport.js +1 -1
  815. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webusb.js +1 -1
  816. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webvr.js +1 -1
  817. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webvtt.js +1 -1
  818. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webworkers.js +1 -1
  819. package/dist/web/standalone/node_modules/caniuse-lite/data/features/webxr.js +1 -1
  820. package/dist/web/standalone/node_modules/caniuse-lite/data/features/will-change.js +1 -1
  821. package/dist/web/standalone/node_modules/caniuse-lite/data/features/woff.js +1 -1
  822. package/dist/web/standalone/node_modules/caniuse-lite/data/features/woff2.js +1 -1
  823. package/dist/web/standalone/node_modules/caniuse-lite/data/features/word-break.js +1 -1
  824. package/dist/web/standalone/node_modules/caniuse-lite/data/features/wordwrap.js +1 -1
  825. package/dist/web/standalone/node_modules/caniuse-lite/data/features/x-doc-messaging.js +1 -1
  826. package/dist/web/standalone/node_modules/caniuse-lite/data/features/x-frame-options.js +1 -1
  827. package/dist/web/standalone/node_modules/caniuse-lite/data/features/xhr2.js +1 -1
  828. package/dist/web/standalone/node_modules/caniuse-lite/data/features/xhtml.js +1 -1
  829. package/dist/web/standalone/node_modules/caniuse-lite/data/features/xhtmlsmil.js +1 -1
  830. package/dist/web/standalone/node_modules/caniuse-lite/data/features/xml-serializer.js +1 -1
  831. package/dist/web/standalone/node_modules/caniuse-lite/data/features/zstd.js +1 -1
  832. package/dist/web/standalone/node_modules/caniuse-lite/package.json +7 -7
  833. package/dist/web/standalone/node_modules/next/dist/build/swc/index.js +1 -1
  834. package/dist/web/standalone/node_modules/next/dist/build/webpack-config.js +3 -3
  835. package/dist/web/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +7 -7
  836. package/dist/web/standalone/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js +6 -6
  837. package/dist/web/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
  838. package/dist/web/standalone/node_modules/next/dist/server/config-schema.js +10 -2
  839. package/dist/web/standalone/node_modules/next/dist/server/config.js +1 -1
  840. package/dist/web/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
  841. package/dist/web/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  842. package/dist/web/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  843. package/dist/web/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
  844. package/dist/web/standalone/node_modules/next/dist/server/render.js +27 -20
  845. package/dist/web/standalone/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +1 -1
  846. package/dist/web/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  847. package/dist/web/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  848. package/dist/web/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
  849. package/dist/web/standalone/node_modules/next/package.json +15 -15
  850. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/container.js +26 -18
  851. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/css-syntax-error.js +47 -14
  852. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/input.js +54 -29
  853. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/lazy-result.js +47 -37
  854. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/map-generator.js +26 -9
  855. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/no-work-result.js +57 -55
  856. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/node.js +99 -31
  857. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/parser.js +10 -9
  858. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/previous-map.js +30 -11
  859. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/processor.js +7 -7
  860. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/result.js +5 -5
  861. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/stringifier.js +69 -28
  862. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/tokenize.js +6 -2
  863. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/package.json +48 -48
  864. package/dist/web/standalone/node_modules/react/cjs/react.development.js +1 -1
  865. package/dist/web/standalone/node_modules/react/cjs/react.production.js +1 -1
  866. package/dist/web/standalone/node_modules/react/package.json +1 -1
  867. package/dist/web/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js +1 -1
  868. package/dist/web/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js +1 -1
  869. package/dist/web/standalone/node_modules/react-dom/cjs/react-dom-server.browser.production.js +3 -3
  870. package/dist/web/standalone/node_modules/react-dom/cjs/react-dom-server.edge.production.js +3 -3
  871. package/dist/web/standalone/node_modules/react-dom/cjs/react-dom-server.node.production.js +3 -3
  872. package/dist/web/standalone/node_modules/react-dom/cjs/react-dom.production.js +1 -1
  873. package/dist/web/standalone/node_modules/react-dom/package.json +2 -2
  874. package/dist/web/standalone/package.json +12 -7
  875. package/package.json +2 -2
  876. package/packages/mcp-server/README.md +11 -0
  877. package/packages/mcp-server/dist/env-writer.d.ts +5 -1
  878. package/packages/mcp-server/dist/env-writer.d.ts.map +1 -1
  879. package/packages/mcp-server/dist/env-writer.js +41 -8
  880. package/packages/mcp-server/dist/env-writer.js.map +1 -1
  881. package/packages/mcp-server/dist/readers/paths.d.ts +2 -0
  882. package/packages/mcp-server/dist/readers/paths.d.ts.map +1 -1
  883. package/packages/mcp-server/dist/readers/paths.js +163 -59
  884. package/packages/mcp-server/dist/readers/paths.js.map +1 -1
  885. package/packages/mcp-server/dist/remote-questions.d.ts.map +1 -1
  886. package/packages/mcp-server/dist/remote-questions.js +19 -2
  887. package/packages/mcp-server/dist/remote-questions.js.map +1 -1
  888. package/packages/mcp-server/dist/server.d.ts +11 -1
  889. package/packages/mcp-server/dist/server.d.ts.map +1 -1
  890. package/packages/mcp-server/dist/server.js +134 -38
  891. package/packages/mcp-server/dist/server.js.map +1 -1
  892. package/packages/mcp-server/dist/session-manager.d.ts +6 -1
  893. package/packages/mcp-server/dist/session-manager.d.ts.map +1 -1
  894. package/packages/mcp-server/dist/session-manager.js +35 -13
  895. package/packages/mcp-server/dist/session-manager.js.map +1 -1
  896. package/packages/mcp-server/dist/workflow-tools.d.ts +1 -1
  897. package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
  898. package/packages/mcp-server/dist/workflow-tools.js +104 -28
  899. package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
  900. package/packages/mcp-server/src/env-writer.test.ts +76 -1
  901. package/packages/mcp-server/src/env-writer.ts +48 -9
  902. package/packages/mcp-server/src/import-candidates.test.ts +9 -4
  903. package/packages/mcp-server/src/mcp-server.test.ts +196 -2
  904. package/packages/mcp-server/src/readers/graph.test.ts +5 -2
  905. package/packages/mcp-server/src/readers/paths.test.ts +67 -0
  906. package/packages/mcp-server/src/readers/paths.ts +173 -56
  907. package/packages/mcp-server/src/remote-questions.ts +18 -2
  908. package/packages/mcp-server/src/server.ts +155 -43
  909. package/packages/mcp-server/src/session-manager.ts +33 -12
  910. package/packages/mcp-server/src/workflow-tools.test.ts +230 -136
  911. package/packages/mcp-server/src/workflow-tools.ts +110 -31
  912. package/packages/mcp-server/tsconfig.tsbuildinfo +1 -1
  913. package/packages/native/tsconfig.tsbuildinfo +1 -1
  914. package/packages/pi-ai/dist/providers/anthropic-bearer-auth.test.js +8 -2
  915. package/packages/pi-ai/dist/providers/anthropic-bearer-auth.test.js.map +1 -1
  916. package/packages/pi-ai/dist/providers/minimax-tool-name.test.js +8 -2
  917. package/packages/pi-ai/dist/providers/minimax-tool-name.test.js.map +1 -1
  918. package/packages/pi-ai/src/providers/anthropic-bearer-auth.test.ts +8 -2
  919. package/packages/pi-ai/src/providers/minimax-tool-name.test.ts +9 -2
  920. package/packages/pi-ai/tsconfig.tsbuildinfo +1 -1
  921. package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.js +278 -0
  922. package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.js.map +1 -1
  923. package/packages/pi-coding-agent/dist/core/agent-session.d.ts +7 -0
  924. package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
  925. package/packages/pi-coding-agent/dist/core/agent-session.js +125 -55
  926. package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
  927. package/packages/pi-coding-agent/dist/core/tools/bash-spawn-windows.test.js +24 -6
  928. package/packages/pi-coding-agent/dist/core/tools/bash-spawn-windows.test.js.map +1 -1
  929. package/packages/pi-coding-agent/src/core/agent-session-abort-order.test.ts +319 -0
  930. package/packages/pi-coding-agent/src/core/agent-session.ts +128 -59
  931. package/packages/pi-coding-agent/src/core/tools/bash-spawn-windows.test.ts +26 -6
  932. package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -1
  933. package/src/resources/extensions/async-jobs/job-manager.ts +3 -0
  934. package/src/resources/extensions/bg-shell/bg-shell-lifecycle.ts +3 -2
  935. package/src/resources/extensions/bg-shell/utilities.ts +2 -1
  936. package/src/resources/extensions/claude-code-cli/stream-adapter.ts +21 -8
  937. package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +34 -13
  938. package/src/resources/extensions/gsd/auto/loop-deps.ts +1 -1
  939. package/src/resources/extensions/gsd/auto/phases.ts +87 -26
  940. package/src/resources/extensions/gsd/auto/session.ts +3 -0
  941. package/src/resources/extensions/gsd/auto-artifact-paths.ts +21 -0
  942. package/src/resources/extensions/gsd/auto-dashboard.ts +12 -2
  943. package/src/resources/extensions/gsd/auto-direct-dispatch.ts +2 -0
  944. package/src/resources/extensions/gsd/auto-dispatch.ts +243 -31
  945. package/src/resources/extensions/gsd/auto-post-unit.ts +112 -11
  946. package/src/resources/extensions/gsd/auto-prompts.ts +104 -7
  947. package/src/resources/extensions/gsd/auto-recovery.ts +51 -1
  948. package/src/resources/extensions/gsd/auto-start.ts +54 -26
  949. package/src/resources/extensions/gsd/auto-timeout-recovery.ts +22 -0
  950. package/src/resources/extensions/gsd/auto-timers.ts +37 -5
  951. package/src/resources/extensions/gsd/auto-worktree.ts +49 -6
  952. package/src/resources/extensions/gsd/auto.ts +16 -6
  953. package/src/resources/extensions/gsd/bootstrap/agent-end-recovery.ts +19 -0
  954. package/src/resources/extensions/gsd/bootstrap/db-tools.ts +52 -12
  955. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +83 -8
  956. package/src/resources/extensions/gsd/bootstrap/system-context.ts +3 -4
  957. package/src/resources/extensions/gsd/bootstrap/write-gate.ts +92 -15
  958. package/src/resources/extensions/gsd/commands/catalog.ts +7 -6
  959. package/src/resources/extensions/gsd/commands/context.ts +17 -3
  960. package/src/resources/extensions/gsd/commands/handlers/core.ts +2 -0
  961. package/src/resources/extensions/gsd/commands/handlers/ops.ts +5 -0
  962. package/src/resources/extensions/gsd/commands/handlers/workflow.ts +23 -2
  963. package/src/resources/extensions/gsd/commands-bootstrap.ts +7 -0
  964. package/src/resources/extensions/gsd/commands-config.ts +3 -3
  965. package/src/resources/extensions/gsd/commands-debug.ts +27 -1
  966. package/src/resources/extensions/gsd/commands-eval-review.ts +716 -0
  967. package/src/resources/extensions/gsd/commands-extensions.ts +4 -4
  968. package/src/resources/extensions/gsd/commands-handlers.ts +3 -3
  969. package/src/resources/extensions/gsd/commands-mcp-status.ts +2 -2
  970. package/src/resources/extensions/gsd/commands-ship.ts +99 -0
  971. package/src/resources/extensions/gsd/context-budget.ts +13 -2
  972. package/src/resources/extensions/gsd/db-writer.ts +74 -23
  973. package/src/resources/extensions/gsd/deep-project-setup-policy.ts +225 -0
  974. package/src/resources/extensions/gsd/detection.ts +7 -7
  975. package/src/resources/extensions/gsd/docs/preferences-reference.md +6 -4
  976. package/src/resources/extensions/gsd/doctor-providers.ts +2 -2
  977. package/src/resources/extensions/gsd/eval-review-schema.ts +243 -0
  978. package/src/resources/extensions/gsd/forensics.ts +10 -4
  979. package/src/resources/extensions/gsd/gsd-db.ts +3 -2
  980. package/src/resources/extensions/gsd/gsd-home.ts +30 -0
  981. package/src/resources/extensions/gsd/guided-flow.ts +269 -11
  982. package/src/resources/extensions/gsd/interrupted-session.ts +39 -2
  983. package/src/resources/extensions/gsd/key-manager.ts +2 -2
  984. package/src/resources/extensions/gsd/migrate/command.ts +3 -3
  985. package/src/resources/extensions/gsd/milestone-scope-classifier.ts +15 -8
  986. package/src/resources/extensions/gsd/native-git-bridge.ts +14 -0
  987. package/src/resources/extensions/gsd/onboarding-state.ts +2 -2
  988. package/src/resources/extensions/gsd/planning-depth.ts +138 -0
  989. package/src/resources/extensions/gsd/preferences-models.ts +18 -1
  990. package/src/resources/extensions/gsd/preferences-skills.ts +2 -1
  991. package/src/resources/extensions/gsd/preferences-types.ts +11 -0
  992. package/src/resources/extensions/gsd/preferences-validation.ts +9 -0
  993. package/src/resources/extensions/gsd/preferences.ts +7 -5
  994. package/src/resources/extensions/gsd/project-research-policy.ts +259 -0
  995. package/src/resources/extensions/gsd/prompt-loader.ts +2 -3
  996. package/src/resources/extensions/gsd/prompts/guided-discuss-project.md +133 -0
  997. package/src/resources/extensions/gsd/prompts/guided-discuss-requirements.md +122 -0
  998. package/src/resources/extensions/gsd/prompts/guided-research-decision.md +70 -0
  999. package/src/resources/extensions/gsd/prompts/guided-research-project.md +120 -0
  1000. package/src/resources/extensions/gsd/prompts/guided-workflow-preferences.md +68 -0
  1001. package/src/resources/extensions/gsd/prompts/plan-slice.md +1 -1
  1002. package/src/resources/extensions/gsd/prompts/refine-slice.md +1 -1
  1003. package/src/resources/extensions/gsd/prompts/system.md +1 -1
  1004. package/src/resources/extensions/gsd/repo-identity.ts +15 -9
  1005. package/src/resources/extensions/gsd/safety/git-checkpoint.ts +10 -1
  1006. package/src/resources/extensions/gsd/schemas/__fixtures__/valid-project.md +26 -0
  1007. package/src/resources/extensions/gsd/schemas/__fixtures__/valid-requirements.md +57 -0
  1008. package/src/resources/extensions/gsd/schemas/__fixtures__/valid-roadmap.md +19 -0
  1009. package/src/resources/extensions/gsd/schemas/parsers.ts +346 -0
  1010. package/src/resources/extensions/gsd/schemas/validate.ts +452 -0
  1011. package/src/resources/extensions/gsd/skill-telemetry.ts +3 -2
  1012. package/src/resources/extensions/gsd/tests/artifact-validators.test.ts +524 -0
  1013. package/src/resources/extensions/gsd/tests/auto-dashboard.test.ts +20 -0
  1014. package/src/resources/extensions/gsd/tests/auto-discuss-milestone-deadlock-4973.test.ts +29 -4
  1015. package/src/resources/extensions/gsd/tests/auto-loop.test.ts +91 -3
  1016. package/src/resources/extensions/gsd/tests/auto-start-clean-runtime-db-gated.test.ts +32 -1
  1017. package/src/resources/extensions/gsd/tests/auto-wrapup-inflight-guard.test.ts +56 -0
  1018. package/src/resources/extensions/gsd/tests/commands-eval-review.test.ts +612 -0
  1019. package/src/resources/extensions/gsd/tests/commands-ship-eval-warn.test.ts +155 -0
  1020. package/src/resources/extensions/gsd/tests/context-budget.test.ts +28 -0
  1021. package/src/resources/extensions/gsd/tests/crash-recovery.test.ts +50 -0
  1022. package/src/resources/extensions/gsd/tests/db-writer.test.ts +151 -5
  1023. package/src/resources/extensions/gsd/tests/debug-command-handler.test.ts +37 -0
  1024. package/src/resources/extensions/gsd/tests/deep-mode-integration.test.ts +406 -0
  1025. package/src/resources/extensions/gsd/tests/deep-planning-mode-dispatch.test.ts +881 -0
  1026. package/src/resources/extensions/gsd/tests/deep-project-auto-loop.test.ts +1484 -0
  1027. package/src/resources/extensions/gsd/tests/deep-project-setup-policy.test.ts +144 -0
  1028. package/src/resources/extensions/gsd/tests/eval-review-schema.test.ts +282 -0
  1029. package/src/resources/extensions/gsd/tests/git-checkpoint.test.ts +9 -0
  1030. package/src/resources/extensions/gsd/tests/gsd-home.test.ts +43 -0
  1031. package/src/resources/extensions/gsd/tests/has-pending-deep-stage.test.ts +98 -0
  1032. package/src/resources/extensions/gsd/tests/integration/commands-eval-review.integration.test.ts +254 -0
  1033. package/src/resources/extensions/gsd/tests/journal-integration.test.ts +118 -1
  1034. package/src/resources/extensions/gsd/tests/milestone-scope-classifier.test.ts +19 -0
  1035. package/src/resources/extensions/gsd/tests/model-unittype-mapping.test.ts +19 -0
  1036. package/src/resources/extensions/gsd/tests/none-mode-gates.test.ts +51 -3
  1037. package/src/resources/extensions/gsd/tests/planning-depth-setter.test.ts +172 -0
  1038. package/src/resources/extensions/gsd/tests/prefs-wizard-coverage.test.ts +1 -0
  1039. package/src/resources/extensions/gsd/tests/project-root-cwd-crash.test.ts +4 -4
  1040. package/src/resources/extensions/gsd/tests/prompt-budget-enforcement.test.ts +2 -2
  1041. package/src/resources/extensions/gsd/tests/prompt-contracts.test.ts +82 -0
  1042. package/src/resources/extensions/gsd/tests/ready-phrase-no-files-4573.test.ts +61 -0
  1043. package/src/resources/extensions/gsd/tests/register-hooks-depth-verification.test.ts +156 -0
  1044. package/src/resources/extensions/gsd/tests/stash-pop-gsd-conflict.test.ts +8 -2
  1045. package/src/resources/extensions/gsd/tests/stash-queued-context-files.test.ts +12 -6
  1046. package/src/resources/extensions/gsd/tests/token-counter.test.ts +9 -0
  1047. package/src/resources/extensions/gsd/tests/unit-context-manifest.test.ts +10 -0
  1048. package/src/resources/extensions/gsd/tests/uok-plan-v2-wiring.test.ts +48 -0
  1049. package/src/resources/extensions/gsd/tests/workflow-mcp.test.ts +57 -1
  1050. package/src/resources/extensions/gsd/tests/workflow-tool-executors.test.ts +244 -1
  1051. package/src/resources/extensions/gsd/tests/worktree-resolver.test.ts +103 -0
  1052. package/src/resources/extensions/gsd/tests/worktree-root-resolution.test.ts +50 -0
  1053. package/src/resources/extensions/gsd/tests/write-gate-predicates.test.ts +8 -6
  1054. package/src/resources/extensions/gsd/tests/write-gate.test.ts +121 -13
  1055. package/src/resources/extensions/gsd/token-counter.ts +2 -1
  1056. package/src/resources/extensions/gsd/tools/workflow-tool-executors.ts +81 -14
  1057. package/src/resources/extensions/gsd/unit-context-manifest.ts +97 -1
  1058. package/src/resources/extensions/gsd/uok/plan-v2.ts +19 -1
  1059. package/src/resources/extensions/gsd/user-input-boundary.ts +166 -0
  1060. package/src/resources/extensions/gsd/watch/header-renderer.ts +2 -1
  1061. package/src/resources/extensions/gsd/workflow-install.ts +2 -3
  1062. package/src/resources/extensions/gsd/workflow-mcp.ts +41 -4
  1063. package/src/resources/extensions/gsd/workflow-plugins.ts +4 -5
  1064. package/src/resources/extensions/gsd/workflow-templates.ts +2 -3
  1065. package/src/resources/extensions/gsd/worktree-resolver.ts +31 -7
  1066. package/src/resources/extensions/gsd/worktree-root.ts +35 -4
  1067. package/src/resources/extensions/mcp-client/index.ts +2 -2
  1068. package/src/resources/extensions/remote-questions/remote-command.ts +2 -1
  1069. package/src/resources/extensions/remote-questions/status.ts +2 -6
  1070. package/src/resources/extensions/remote-questions/store.ts +2 -6
  1071. package/src/resources/extensions/search-the-web/provider.ts +9 -8
  1072. package/src/resources/extensions/subagent/index.ts +22 -9
  1073. package/src/resources/extensions/subagent/isolation.ts +2 -2
  1074. package/src/resources/extensions/subagent/tests/model-override.test.ts +55 -0
  1075. package/src/resources/extensions/ttsr/rule-loader.ts +2 -3
  1076. package/src/resources/extensions/voice/index.ts +3 -2
  1077. package/src/resources/extensions/voice/linux-ready.ts +2 -3
  1078. package/dist/resources/extensions/gsd/home-dir.js +0 -16
  1079. package/dist/web/standalone/.next/server/chunks/1926.js +0 -1
  1080. package/dist/web/standalone/.next/server/edge-runtime-webpack.js +0 -2
  1081. package/dist/web/standalone/.next/static/chunks/2824.08296bc2f9654698.js +0 -1
  1082. package/dist/web/standalone/.next/static/chunks/363642f4.cf8b455e0d94b478.js +0 -1
  1083. package/dist/web/standalone/.next/static/chunks/5326.adc4bf49a22f4e67.js +0 -1
  1084. package/dist/web/standalone/.next/static/chunks/webpack-f9f0dc45e4f3ac10.js +0 -1
  1085. package/dist/web/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +0 -1
  1086. package/dist/web/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  1087. package/dist/web/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +0 -42
  1088. package/dist/web/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +0 -30
  1089. package/dist/web/standalone/node_modules/@img/sharp-linuxmusl-x64/LICENSE +0 -191
  1090. package/dist/web/standalone/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
  1091. package/dist/web/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +0 -46
  1092. package/src/resources/extensions/gsd/home-dir.ts +0 -19
  1093. package/src/resources/extensions/gsd/tests/home-dir.test.ts +0 -52
  1094. package/dist/web/standalone/.next/static/{4iu6IYeYfxOq8OidlDqp6 → mmDV0zhUmbZTSNG1ufej5}/_buildManifest.js +0 -0
  1095. package/dist/web/standalone/.next/static/{4iu6IYeYfxOq8OidlDqp6 → mmDV0zhUmbZTSNG1ufej5}/_ssgManifest.js +0 -0
  1096. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/at-rule.js +0 -0
  1097. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/comment.js +0 -0
  1098. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/declaration.js +4 -4
  1099. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/document.js +0 -0
  1100. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/fromJSON.js +3 -3
  1101. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/list.js +0 -0
  1102. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/parse.js +1 -1
  1103. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/postcss.js +12 -12
  1104. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/root.js +0 -0
  1105. package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/rule.js +6 -6
  1106. /package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/stringify.js +0 -0
  1107. /package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/symbols.js +0 -0
  1108. /package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/terminal-highlight.js +0 -0
  1109. /package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/warn-once.js +0 -0
  1110. /package/dist/web/standalone/node_modules/{next/node_modules/postcss → postcss}/lib/warning.js +0 -0
  1111. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/classes/comparator.js +0 -0
  1112. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/classes/range.js +0 -0
  1113. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/classes/semver.js +0 -0
  1114. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/cmp.js +0 -0
  1115. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/coerce.js +0 -0
  1116. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/compare.js +0 -0
  1117. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/eq.js +0 -0
  1118. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/gt.js +0 -0
  1119. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/gte.js +0 -0
  1120. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/lt.js +0 -0
  1121. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/lte.js +0 -0
  1122. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/neq.js +0 -0
  1123. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/parse.js +0 -0
  1124. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/functions/satisfies.js +0 -0
  1125. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/constants.js +0 -0
  1126. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/debug.js +0 -0
  1127. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/identifiers.js +0 -0
  1128. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/lrucache.js +0 -0
  1129. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/parse-options.js +0 -0
  1130. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/internal/re.js +0 -0
  1131. /package/dist/web/standalone/node_modules/{semver → sharp/node_modules/semver}/package.json +0 -0
@@ -2,6 +2,7 @@ import { Type } from "@sinclair/typebox";
2
2
  import { Text } from "@gsd/pi-tui";
3
3
  import { loadEffectiveGSDPreferences } from "../preferences.js";
4
4
  import { ensureDbOpen } from "./dynamic-tools.js";
5
+ import { loadWriteGateSnapshot, shouldBlockRootArtifactSaveInSnapshot } from "./write-gate.js";
5
6
  import { StringEnum } from "@gsd/pi-ai";
6
7
  import { logError } from "../workflow-logger.js";
7
8
  async function loadWorkflowExecutors() {
@@ -20,6 +21,16 @@ function registerAlias(pi, toolDef, aliasName, canonicalName) {
20
21
  promptGuidelines: [`Alias for ${canonicalName} — prefer the canonical name.`],
21
22
  });
22
23
  }
24
+ function requirementRootWriteGuard(operation) {
25
+ const guard = shouldBlockRootArtifactSaveInSnapshot(loadWriteGateSnapshot(process.cwd()), "REQUIREMENTS");
26
+ if (!guard.block)
27
+ return null;
28
+ return {
29
+ content: [{ type: "text", text: `Error ${operation} requirement: ${guard.reason ?? "requirements write blocked"}` }],
30
+ details: { operation, error: "root_artifact_write_blocked" },
31
+ isError: true,
32
+ };
33
+ }
23
34
  /**
24
35
  * Read a tool result's structured payload, accommodating MCP's `details` →
25
36
  * `structuredContent` rename (#4472, #4477). In-process executions still
@@ -119,6 +130,9 @@ export function registerDbTools(pi) {
119
130
  registerAlias(pi, decisionSaveTool, "gsd_save_decision", "gsd_decision_save");
120
131
  // ─── gsd_requirement_update (formerly gsd_update_requirement) ───────────
121
132
  const requirementUpdateExecute = async (_toolCallId, params, _signal, _onUpdate, _ctx) => {
133
+ const gateBlock = requirementRootWriteGuard("update_requirement");
134
+ if (gateBlock)
135
+ return gateBlock;
122
136
  const dbAvailable = await ensureDbOpen();
123
137
  if (!dbAvailable) {
124
138
  return {
@@ -201,6 +215,9 @@ export function registerDbTools(pi) {
201
215
  registerAlias(pi, requirementUpdateTool, "gsd_update_requirement", "gsd_requirement_update");
202
216
  // ─── gsd_requirement_save ─────────────────────────────────────────────
203
217
  const requirementSaveExecute = async (_toolCallId, params, _signal, _onUpdate, _ctx) => {
218
+ const gateBlock = requirementRootWriteGuard("save_requirement");
219
+ if (gateBlock)
220
+ return gateBlock;
204
221
  const dbAvailable = await ensureDbOpen();
205
222
  if (!dbAvailable) {
206
223
  return {
@@ -242,13 +259,28 @@ export function registerDbTools(pi) {
242
259
  "Requirement IDs are auto-assigned — never provide an ID manually.",
243
260
  promptSnippet: "Record a new GSD requirement to the database (auto-assigns ID, regenerates REQUIREMENTS.md)",
244
261
  promptGuidelines: [
245
- "Use gsd_requirement_save when recording a new functional, non-functional, or operational requirement.",
262
+ "Use gsd_requirement_save when recording a new capability, quality attribute, constraint, or anti-feature requirement.",
263
+ "Use one of these classes: core-capability, primary-user-loop, launchability, continuity, failure-visibility, integration, quality-attribute, operability, admin/support, compliance/security, differentiator, constraint, anti-feature.",
246
264
  "Requirement IDs are auto-assigned (R001, R002, ...) — never guess or provide an ID.",
247
265
  "class, description, why, and source are required. All other fields are optional.",
248
266
  "The tool writes to the DB and regenerates .gsd/REQUIREMENTS.md automatically.",
249
267
  ],
250
268
  parameters: Type.Object({
251
- class: Type.String({ description: "Requirement class (e.g. 'functional', 'non-functional', 'operational')" }),
269
+ class: StringEnum([
270
+ "core-capability",
271
+ "primary-user-loop",
272
+ "launchability",
273
+ "continuity",
274
+ "failure-visibility",
275
+ "integration",
276
+ "quality-attribute",
277
+ "operability",
278
+ "admin/support",
279
+ "compliance/security",
280
+ "differentiator",
281
+ "constraint",
282
+ "anti-feature",
283
+ ], { description: "Requirement class" }),
252
284
  description: Type.String({ description: "Short description of the requirement" }),
253
285
  why: Type.String({ description: "Why this requirement matters" }),
254
286
  source: Type.String({ description: "Origin of the requirement (e.g. 'user-research', 'design', 'M001')" }),
@@ -291,19 +323,29 @@ export function registerDbTools(pi) {
291
323
  "Computes the file path from milestone/slice/task IDs automatically.",
292
324
  promptSnippet: "Save a GSD artifact (summary/research/context/assessment) to DB and disk",
293
325
  promptGuidelines: [
294
- "Use gsd_summary_save to persist structured artifacts (SUMMARY, RESEARCH, CONTEXT, ASSESSMENT, CONTEXT-DRAFT).",
295
- "milestone_id is required. slice_id and task_id are optional they determine the file path.",
326
+ "Use gsd_summary_save to persist structured artifacts (SUMMARY, RESEARCH, CONTEXT, ASSESSMENT, CONTEXT-DRAFT, PROJECT, PROJECT-DRAFT, REQUIREMENTS, REQUIREMENTS-DRAFT).",
327
+ "milestone_id is required for milestone/slice/task artifacts. Omit milestone_id only for root-level PROJECT/PROJECT-DRAFT/REQUIREMENTS/REQUIREMENTS-DRAFT.",
296
328
  "The tool computes the relative path automatically: milestones/M001/M001-SUMMARY.md, milestones/M001/slices/S01/S01-SUMMARY.md, etc.",
297
- "artifact_type must be one of: SUMMARY, RESEARCH, CONTEXT, ASSESSMENT, CONTEXT-DRAFT.",
329
+ "Root-level artifact paths are PROJECT.md, PROJECT-DRAFT.md, REQUIREMENTS.md, and REQUIREMENTS-DRAFT.md.",
330
+ "artifact_type must be one of: SUMMARY, RESEARCH, CONTEXT, ASSESSMENT, CONTEXT-DRAFT, PROJECT, PROJECT-DRAFT, REQUIREMENTS, REQUIREMENTS-DRAFT.",
298
331
  "Use CONTEXT-DRAFT for incremental draft persistence; use CONTEXT for the final milestone context after depth verification.",
299
332
  ],
300
- parameters: Type.Object({
301
- milestone_id: Type.String({ description: "Milestone ID (e.g. M001)" }),
302
- slice_id: Type.Optional(Type.String({ description: "Slice ID (e.g. S01)" })),
303
- task_id: Type.Optional(Type.String({ description: "Task ID (e.g. T01)" })),
304
- artifact_type: Type.String({ description: "One of: SUMMARY, RESEARCH, CONTEXT, ASSESSMENT, CONTEXT-DRAFT" }),
305
- content: Type.String({ description: "The full markdown content of the artifact" }),
306
- }),
333
+ parameters: Type.Union([
334
+ Type.Object({
335
+ milestone_id: Type.String({ description: "Milestone ID (e.g. M001)" }),
336
+ slice_id: Type.Optional(Type.String({ description: "Slice ID (e.g. S01)" })),
337
+ task_id: Type.Optional(Type.String({ description: "Task ID (e.g. T01)" })),
338
+ artifact_type: StringEnum(["SUMMARY", "RESEARCH", "CONTEXT", "ASSESSMENT", "CONTEXT-DRAFT"], { description: "Milestone-scoped artifact type" }),
339
+ content: Type.String({ description: "The full markdown content of the artifact" }),
340
+ }),
341
+ Type.Object({
342
+ milestone_id: Type.Optional(Type.String({ description: "Omit for root artifacts" })),
343
+ slice_id: Type.Optional(Type.String({ description: "Slice ID (e.g. S01)" })),
344
+ task_id: Type.Optional(Type.String({ description: "Task ID (e.g. T01)" })),
345
+ artifact_type: StringEnum(["PROJECT", "PROJECT-DRAFT", "REQUIREMENTS", "REQUIREMENTS-DRAFT"], { description: "Root artifact type" }),
346
+ content: Type.String({ description: "The full markdown content of the artifact" }),
347
+ }),
348
+ ]),
307
349
  execute: summarySaveExecute,
308
350
  renderCall(args, theme) {
309
351
  let text = theme.fg("toolTitle", theme.bold("summary_save "));
@@ -2,7 +2,7 @@ import { join } from "node:path";
2
2
  import { isToolCallEventType } from "@gsd/pi-coding-agent";
3
3
  import { updateSnapshot } from "../ecosystem/gsd-extension-api.js";
4
4
  import { buildMilestoneFileName, resolveMilestonePath, resolveSliceFile, resolveSlicePath } from "../paths.js";
5
- import { clearDiscussionFlowState, isDepthConfirmationAnswer, isQueuePhaseActive, markDepthVerified, resetWriteGateState, shouldBlockContextWrite, shouldBlockPlanningUnit, shouldBlockQueueExecution, isGateQuestionId, setPendingGate, clearPendingGate, getPendingGate, shouldBlockPendingGate, shouldBlockPendingGateBash, extractDepthVerificationMilestoneId } from "./write-gate.js";
5
+ import { canonicalToolName, clearDiscussionFlowState, isDepthConfirmationAnswer, isQueuePhaseActive, markApprovalGateVerified, markDepthVerified, resetWriteGateState, shouldBlockContextWrite, shouldBlockPlanningUnit, shouldBlockQueueExecution, isGateQuestionId, setPendingGate, clearPendingGate, getPendingGate, shouldBlockPendingGate, shouldBlockPendingGateBash, extractDepthVerificationMilestoneId } from "./write-gate.js";
6
6
  import { resolveManifest } from "../unit-context-manifest.js";
7
7
  import { isBlockedStateFile, isBashWriteToStateFile, BLOCKED_WRITE_ERROR } from "../write-intercept.js";
8
8
  import { loadFile, saveFile, formatContinue } from "../files.js";
@@ -17,9 +17,11 @@ import { installNotifyInterceptor } from "./notify-interceptor.js";
17
17
  import { initNotificationStore } from "../notification-store.js";
18
18
  import { initNotificationWidget } from "../notification-widget.js";
19
19
  import { extractSubagentAgentClasses } from "./subagent-input.js";
20
+ import { approvalGateIdForUnit, isExplicitApprovalResponse, shouldPauseForUserApprovalQuestion } from "../user-input-boundary.js";
20
21
  // Skip the welcome screen on the very first session_start — cli.ts already
21
22
  // printed it before the TUI launched. Only re-print on /clear (subsequent sessions).
22
23
  let isFirstSession = true;
24
+ let approvalQuestionAbortInFlight = false;
23
25
  async function deriveGsdState(basePath) {
24
26
  const { deriveState } = await import("../state.js");
25
27
  return deriveState(basePath);
@@ -60,6 +62,7 @@ export function registerHooks(pi, ecosystemHandlers) {
60
62
  }
61
63
  resetWriteGateState();
62
64
  resetToolCallLoopGuard();
65
+ approvalQuestionAbortInFlight = false;
63
66
  await resetAskUserQuestionsTurnCache();
64
67
  await syncServiceTierStatus(ctx);
65
68
  await applyDisabledModelProviderPolicy(ctx);
@@ -134,6 +137,14 @@ export function registerHooks(pi, ecosystemHandlers) {
134
137
  // Wait for ecosystem loader to finish (no-op after first turn).
135
138
  const { getEcosystemReadyPromise } = await import("../ecosystem/loader.js");
136
139
  await getEcosystemReadyPromise();
140
+ const pendingApprovalGate = getPendingGate();
141
+ if (pendingApprovalGate && isExplicitApprovalResponse(event.prompt, pendingApprovalGate)) {
142
+ markApprovalGateVerified(pendingApprovalGate);
143
+ const milestoneId = extractDepthVerificationMilestoneId(pendingApprovalGate);
144
+ if (milestoneId)
145
+ markDepthVerified(milestoneId);
146
+ clearPendingGate();
147
+ }
137
148
  // GSD's own context injection (existing behavior — unchanged).
138
149
  const { buildBeforeAgentStartResult } = await import("./system-context.js");
139
150
  const gsdResult = await buildBeforeAgentStartResult(event, ctx);
@@ -173,6 +184,7 @@ export function registerHooks(pi, ecosystemHandlers) {
173
184
  };
174
185
  });
175
186
  pi.on("agent_end", async (event, ctx) => {
187
+ approvalQuestionAbortInFlight = false;
176
188
  resetToolCallLoopGuard();
177
189
  await resetAskUserQuestionsTurnCache();
178
190
  const { handleAgentEnd } = await import("./agent-end-recovery.js");
@@ -278,6 +290,44 @@ export function registerHooks(pi, ecosystemHandlers) {
278
290
  safetyLogWarning("context-mode", `failed to write compaction snapshot: ${err instanceof Error ? err.message : String(err)}`);
279
291
  }
280
292
  });
293
+ pi.on("message_update", async (event, ctx) => {
294
+ if (approvalQuestionAbortInFlight)
295
+ return;
296
+ const dash = getAutoRuntimeSnapshot();
297
+ let unitType = dash.currentUnit?.type;
298
+ let unitId = dash.currentUnit?.id;
299
+ if (!unitType) {
300
+ try {
301
+ const { getPendingDeepProjectSetupUnitForContext } = await import("../guided-flow.js");
302
+ const pending = getPendingDeepProjectSetupUnitForContext(ctx, process.cwd());
303
+ unitType = pending?.unitType;
304
+ unitId = pending?.unitId;
305
+ }
306
+ catch {
307
+ // Best-effort foreground detection only.
308
+ }
309
+ }
310
+ if (!unitType) {
311
+ const milestoneId = await getDiscussionMilestoneIdFor(process.cwd());
312
+ if (milestoneId) {
313
+ unitType = "discuss-milestone";
314
+ unitId = milestoneId;
315
+ }
316
+ }
317
+ if (!shouldPauseForUserApprovalQuestion(unitType, [event.message]))
318
+ return;
319
+ const gateId = approvalGateIdForUnit(unitType, unitId);
320
+ if (gateId)
321
+ setPendingGate(gateId);
322
+ approvalQuestionAbortInFlight = true;
323
+ ctx.ui.notify(`${unitType}${unitId ? ` ${unitId}` : ""} is waiting for your approval - pausing before more tool calls run.`, "info");
324
+ // The pending gate set above blocks subsequent non-read-only tool calls
325
+ // via the tool_call hook below, so we do not abort the in-flight stream.
326
+ // Aborting mid-stream eats the model's question text on external CLI
327
+ // providers (Claude Code SDK) because lastTextContent isn't populated
328
+ // from in-flight builder state — the user only ever sees "Claude Code
329
+ // stream aborted by caller" instead of the question.
330
+ });
281
331
  pi.on("session_shutdown", async (_event, ctx) => {
282
332
  const { isParallelActive, shutdownParallel } = await import("../parallel-orchestrator.js");
283
333
  if (isParallelActive()) {
@@ -297,15 +347,16 @@ export function registerHooks(pi, ecosystemHandlers) {
297
347
  });
298
348
  pi.on("tool_call", async (event) => {
299
349
  const discussionBasePath = process.cwd();
350
+ const toolName = canonicalToolName(event.toolName);
300
351
  // ── Loop guard: block repeated identical tool calls ──
301
- const loopCheck = checkToolCallLoop(event.toolName, event.input);
352
+ const loopCheck = checkToolCallLoop(toolName, event.input);
302
353
  if (loopCheck.block) {
303
354
  return { block: true, reason: loopCheck.reason };
304
355
  }
305
356
  // ── Discussion gate enforcement: track pending gate questions ─────────
306
357
  // Only gate-shaped ask_user_questions calls should block execution.
307
358
  // The gate stays pending until the user selects the approval option.
308
- if (event.toolName === "ask_user_questions") {
359
+ if (toolName === "ask_user_questions") {
309
360
  const questions = event.input?.questions ?? [];
310
361
  const questionId = questions.find((question) => typeof question?.id === "string" && isGateQuestionId(question.id))?.id;
311
362
  if (typeof questionId === "string") {
@@ -323,7 +374,7 @@ export function registerHooks(pi, ecosystemHandlers) {
323
374
  return bashGuard;
324
375
  }
325
376
  else {
326
- const gateGuard = shouldBlockPendingGate(event.toolName, milestoneId, isQueuePhaseActive());
377
+ const gateGuard = shouldBlockPendingGate(toolName, milestoneId, isQueuePhaseActive());
327
378
  if (gateGuard.block)
328
379
  return gateGuard;
329
380
  }
@@ -343,7 +394,7 @@ export function registerHooks(pi, ecosystemHandlers) {
343
394
  else if (isToolCallEventType("bash", event)) {
344
395
  queueInput = event.input.command;
345
396
  }
346
- const queueGuard = shouldBlockQueueExecution(event.toolName, queueInput, true);
397
+ const queueGuard = shouldBlockQueueExecution(toolName, queueInput, true);
347
398
  if (queueGuard.block)
348
399
  return queueGuard;
349
400
  }
@@ -447,7 +498,8 @@ export function registerHooks(pi, ecosystemHandlers) {
447
498
  // errors and deterministic policy rejections are handled consistently.
448
499
  recordToolInvocationError(event.toolName, errorText);
449
500
  }
450
- if (event.toolName !== "ask_user_questions")
501
+ const toolName = canonicalToolName(event.toolName);
502
+ if (toolName !== "ask_user_questions")
451
503
  return;
452
504
  const milestoneId = await getDiscussionMilestoneIdFor(process.cwd());
453
505
  const queueActive = isQueuePhaseActive();
@@ -461,14 +513,30 @@ export function registerHooks(pi, ecosystemHandlers) {
461
513
  const currentPendingGate = getPendingGate();
462
514
  if (currentPendingGate) {
463
515
  if (details?.cancelled || !details?.response) {
464
- // Gate stays pending model will be blocked from non-read-only tools
465
- // until it re-asks and gets a valid response
516
+ // Gate stays pending. Return a hard instruction as the tool result so
517
+ // the model cannot reinterpret a cancelled prompt as prior approval.
518
+ return {
519
+ content: [{
520
+ type: "text",
521
+ text: [
522
+ `HARD BLOCK: approval gate "${currentPendingGate}" is still pending.`,
523
+ "No user response was received for the confirmation question.",
524
+ "Do not infer approval from earlier or prior messages.",
525
+ "Do not proceed, write files, save artifacts, or call more tools.",
526
+ "Ask the user to confirm in plain chat, then stop and wait for their next message.",
527
+ ].join(" "),
528
+ }],
529
+ };
466
530
  }
467
531
  else {
468
532
  const pendingQuestion = questions.find((question) => question?.id === currentPendingGate);
469
533
  if (pendingQuestion) {
470
534
  const answer = details.response?.answers?.[currentPendingGate];
471
535
  if (isDepthConfirmationAnswer(answer?.selected, pendingQuestion.options)) {
536
+ markApprovalGateVerified(currentPendingGate);
537
+ const milestoneIdFromGate = extractDepthVerificationMilestoneId(currentPendingGate);
538
+ if (milestoneIdFromGate)
539
+ markDepthVerified(milestoneIdFromGate);
472
540
  clearPendingGate();
473
541
  }
474
542
  }
@@ -483,6 +551,9 @@ export function registerHooks(pi, ecosystemHandlers) {
483
551
  const answer = details.response?.answers?.[question.id];
484
552
  const inferredMilestoneId = extractDepthVerificationMilestoneId(question.id) ?? milestoneId;
485
553
  if (isDepthConfirmationAnswer(answer?.selected, question.options)) {
554
+ if (currentPendingGate && question.id !== currentPendingGate)
555
+ break;
556
+ markApprovalGateVerified(question.id);
486
557
  markDepthVerified(inferredMilestoneId);
487
558
  clearPendingGate();
488
559
  }
@@ -1,5 +1,4 @@
1
1
  import { existsSync, readFileSync, unlinkSync } from "node:fs";
2
- import { homedir } from "node:os";
3
2
  import { join } from "node:path";
4
3
  import { logWarning } from "../workflow-logger.js";
5
4
  import { debugTime } from "../debug-logger.js";
@@ -17,7 +16,7 @@ import { deriveState } from "../state.js";
17
16
  import { formatOverridesSection, formatShortcut, loadActiveOverrides, loadFile, parseContinue, parseSummary } from "../files.js";
18
17
  import { toPosixPath } from "../../shared/mod.js";
19
18
  import { autoEnableCmuxPreferences } from "../commands-cmux.js";
20
- const gsdHome = process.env.GSD_HOME || join(homedir(), ".gsd");
19
+ import { gsdHome } from "../gsd-home.js";
21
20
  /**
22
21
  * Bundled skill triggers — resolved dynamically at runtime instead of
23
22
  * hardcoding absolute paths in the system prompt template. Only skills
@@ -75,7 +74,7 @@ function buildBundledSkillsTable() {
75
74
  }
76
75
  function warnDeprecatedAgentInstructions() {
77
76
  const paths = [
78
- join(gsdHome, "agent-instructions.md"),
77
+ join(gsdHome(), "agent-instructions.md"),
79
78
  join(process.cwd(), ".gsd", "agent-instructions.md"),
80
79
  ];
81
80
  for (const path of paths) {
@@ -119,7 +118,7 @@ export async function buildBeforeAgentStartResult(event, ctx) {
119
118
  ctx.ui.notify(`GSD skill preferences: ${report.warnings.length} unresolved skill${report.warnings.length === 1 ? "" : "s"}: ${report.warnings.join(", ")}`, "warning");
120
119
  }
121
120
  }
122
- const { block: knowledgeBlock, globalSizeKb } = loadKnowledgeBlock(gsdHome, process.cwd());
121
+ const { block: knowledgeBlock, globalSizeKb } = loadKnowledgeBlock(gsdHome(), process.cwd());
123
122
  if (globalSizeKb > 4) {
124
123
  ctx.ui.notify(`GSD: ~/.gsd/agent/KNOWLEDGE.md is ${globalSizeKb.toFixed(1)}KB — consider trimming to keep system prompt lean.`, "warning");
125
124
  }
@@ -56,6 +56,7 @@ const QUEUE_SAFE_TOOLS = new Set([
56
56
  */
57
57
  const BASH_READ_ONLY_RE = /^\s*(cat|head|tail|less|more|wc|file|stat|du|df|which|type|echo|printf|ls|find|grep|rg|awk|sed\b(?!.*-i)|sort|uniq|diff|comm|tr|cut|tee\s+-a\s+\/dev\/null|git\s+(log|show|diff|status|branch|tag|remote|rev-parse|ls-files|blame|shortlog|describe|stash\s+list|config\s+--get|cat-file)|gh\s+(issue|pr|api|repo|release)\s+(view|list|diff|status|checks)|mkdir\s+-p\s+\.gsd|rtk\s|npm\s+run\s+(test|test:\w+|lint|lint:\w+|typecheck|type-check|type-check:\w+|check|verify|audit|outdated|format:check|ci|validate)\b|npm\s+(ls|list|info|view|show|outdated|audit|explain|doctor|ping|--version|-v)\b|npx\s|tsx\s|node\s+(--print|--version|-v\b)|python[23]?\s+(-c\s+'[^']*'|--version|-V\b|-m\s+(pip\s+show|pip\s+list|site))|pip[23]?\s+(show|list|freeze|check|index\s+versions)\b|jq\s|yq\s|curl\s+(-s\b|--silent\b)(?!\s+[^|>]*\s-[oO]\b)(?!\s+[^|>]*\s--output\b)[^|>]*$|openssl\s+(version|x509|s_client)|env\b|printenv\b|true\b|false\b)/;
58
58
  const verifiedDepthMilestones = new Set();
59
+ const verifiedApprovalGates = new Set();
59
60
  let activeQueuePhase = false;
60
61
  /**
61
62
  * Discussion gate enforcement state.
@@ -76,14 +77,18 @@ const GATE_QUESTION_PATTERNS = [
76
77
  ];
77
78
  /**
78
79
  * Tools that are safe to call while a gate is pending.
79
- * Includes read-only tools and ask_user_questions itself (so the model can re-ask).
80
+ * Only ask_user_questions may run: once the assistant asks for confirmation,
81
+ * further reads/searches bury the actual question in tool output.
80
82
  */
81
83
  const GATE_SAFE_TOOLS = new Set([
82
84
  "ask_user_questions",
83
- "read", "grep", "find", "ls", "glob",
84
- "search-the-web", "resolve_library", "get_library_docs", "fetch_page",
85
- "search_and_read",
86
85
  ]);
86
+ export function canonicalToolName(toolName) {
87
+ if (!toolName.startsWith("mcp__"))
88
+ return toolName;
89
+ const toolSeparator = toolName.indexOf("__", "mcp__".length);
90
+ return toolSeparator >= 0 ? toolName.slice(toolSeparator + 2) : toolName;
91
+ }
87
92
  /**
88
93
  * Persistence is ON by default (opt-out).
89
94
  * Set GSD_PERSIST_WRITE_GATE_STATE="0" or GSD_PERSIST_WRITE_GATE_STATE="false"
@@ -100,6 +105,7 @@ function writeGateSnapshotPath(basePath = process.cwd()) {
100
105
  function currentWriteGateSnapshot() {
101
106
  return {
102
107
  verifiedDepthMilestones: [...verifiedDepthMilestones].sort(),
108
+ verifiedApprovalGates: [...verifiedApprovalGates].sort(),
103
109
  activeQueuePhase,
104
110
  pendingGateId,
105
111
  };
@@ -142,14 +148,19 @@ function normalizeWriteGateSnapshot(value) {
142
148
  const verified = Array.isArray(record.verifiedDepthMilestones)
143
149
  ? record.verifiedDepthMilestones.filter((item) => typeof item === "string")
144
150
  : [];
151
+ const verifiedGates = Array.isArray(record.verifiedApprovalGates)
152
+ ? record.verifiedApprovalGates.filter((item) => typeof item === "string")
153
+ : [];
145
154
  return {
146
155
  verifiedDepthMilestones: [...new Set(verified)].sort(),
156
+ verifiedApprovalGates: [...new Set(verifiedGates)].sort(),
147
157
  activeQueuePhase: record.activeQueuePhase === true,
148
158
  pendingGateId: typeof record.pendingGateId === "string" ? record.pendingGateId : null,
149
159
  };
150
160
  }
151
161
  const EMPTY_SNAPSHOT = {
152
162
  verifiedDepthMilestones: [],
163
+ verifiedApprovalGates: [],
153
164
  activeQueuePhase: false,
154
165
  pendingGateId: null,
155
166
  };
@@ -195,11 +206,13 @@ export function setQueuePhaseActive(active) {
195
206
  }
196
207
  export function resetWriteGateState() {
197
208
  verifiedDepthMilestones.clear();
209
+ verifiedApprovalGates.clear();
198
210
  pendingGateId = null;
199
211
  persistWriteGateSnapshot();
200
212
  }
201
213
  export function clearDiscussionFlowState() {
202
214
  verifiedDepthMilestones.clear();
215
+ verifiedApprovalGates.clear();
203
216
  activeQueuePhase = false;
204
217
  pendingGateId = null;
205
218
  clearPersistedWriteGateSnapshot();
@@ -210,6 +223,17 @@ export function markDepthVerified(milestoneId, basePath = process.cwd()) {
210
223
  verifiedDepthMilestones.add(milestoneId);
211
224
  persistWriteGateSnapshot(basePath);
212
225
  }
226
+ export function markApprovalGateVerified(gateId, basePath = process.cwd()) {
227
+ if (!gateId)
228
+ return;
229
+ verifiedApprovalGates.add(gateId);
230
+ persistWriteGateSnapshot(basePath);
231
+ }
232
+ export function isApprovalGateVerifiedInSnapshot(snapshot, gateId) {
233
+ if (!gateId)
234
+ return false;
235
+ return (snapshot.verifiedApprovalGates ?? []).includes(gateId);
236
+ }
213
237
  /**
214
238
  * Check whether a question ID matches a recognized gate pattern.
215
239
  */
@@ -236,6 +260,10 @@ function extractContextMilestoneId(inputPath) {
236
260
  */
237
261
  export function setPendingGate(gateId) {
238
262
  pendingGateId = gateId;
263
+ verifiedApprovalGates.delete(gateId);
264
+ const milestoneId = extractDepthVerificationMilestoneId(gateId);
265
+ if (milestoneId)
266
+ verifiedDepthMilestones.delete(milestoneId);
239
267
  persistWriteGateSnapshot();
240
268
  }
241
269
  /**
@@ -256,7 +284,7 @@ export function getPendingGate() {
256
284
  * is pending (ask_user_questions was called but not confirmed).
257
285
  *
258
286
  * Returns { block: true, reason } if the tool should be blocked.
259
- * Read-only tools and ask_user_questions itself are always allowed.
287
+ * ask_user_questions itself is allowed so the model can re-ask the gate.
260
288
  */
261
289
  export function shouldBlockPendingGate(toolName, milestoneId, queuePhaseActive) {
262
290
  return shouldBlockPendingGateInSnapshot(currentWriteGateSnapshot(), toolName, milestoneId, queuePhaseActive);
@@ -264,16 +292,14 @@ export function shouldBlockPendingGate(toolName, milestoneId, queuePhaseActive)
264
292
  export function shouldBlockPendingGateInSnapshot(snapshot, toolName, _milestoneId, _queuePhaseActive) {
265
293
  if (!snapshot.pendingGateId)
266
294
  return { block: false };
267
- if (GATE_SAFE_TOOLS.has(toolName))
295
+ if (GATE_SAFE_TOOLS.has(canonicalToolName(toolName)))
268
296
  return { block: false };
269
- // Bash read-only commands are also safe
270
- if (toolName === "bash")
271
- return { block: false }; // bash is checked separately below
272
297
  return {
273
298
  block: true,
274
299
  reason: [
275
300
  `HARD BLOCK: Discussion gate "${snapshot.pendingGateId}" has not been confirmed by the user.`,
276
- `You MUST re-call ask_user_questions with the gate question before making any other tool calls.`,
301
+ `The assistant already asked for user confirmation, so do not call more tools.`,
302
+ `Wait for the user's answer, or re-call ask_user_questions with the gate question if the question was not delivered.`,
277
303
  `If the previous ask_user_questions call failed, errored, was cancelled, or the user's response`,
278
304
  `did not match a provided option, you MUST re-ask — never rationalize past the block.`,
279
305
  `Do NOT proceed, do NOT use alternative approaches, do NOT skip the gate.`,
@@ -282,7 +308,7 @@ export function shouldBlockPendingGateInSnapshot(snapshot, toolName, _milestoneI
282
308
  }
283
309
  /**
284
310
  * Check whether a bash command should be blocked because a discussion gate is pending.
285
- * Read-only bash commands are allowed; mutating commands are blocked.
311
+ * All bash is blocked while waiting for confirmation so the question stays visible.
286
312
  */
287
313
  export function shouldBlockPendingGateBash(command, milestoneId, queuePhaseActive) {
288
314
  return shouldBlockPendingGateBashInSnapshot(currentWriteGateSnapshot(), command, milestoneId, queuePhaseActive);
@@ -290,14 +316,12 @@ export function shouldBlockPendingGateBash(command, milestoneId, queuePhaseActiv
290
316
  export function shouldBlockPendingGateBashInSnapshot(snapshot, command, _milestoneId, _queuePhaseActive) {
291
317
  if (!snapshot.pendingGateId)
292
318
  return { block: false };
293
- // Allow read-only bash commands
294
- if (BASH_READ_ONLY_RE.test(command))
295
- return { block: false };
296
319
  return {
297
320
  block: true,
298
321
  reason: [
299
322
  `HARD BLOCK: Discussion gate "${snapshot.pendingGateId}" has not been confirmed by the user.`,
300
- `You MUST re-call ask_user_questions with the gate question before running mutating commands.`,
323
+ `The assistant already asked for user confirmation, so do not run bash commands.`,
324
+ `Wait for the user's answer, or re-call ask_user_questions with the gate question if the question was not delivered.`,
301
325
  `If the previous ask_user_questions call failed, errored, was cancelled, or the user's response`,
302
326
  `did not match a provided option, you MUST re-ask — never rationalize past the block.`,
303
327
  ].join(" "),
@@ -390,6 +414,49 @@ export function shouldBlockContextArtifactSaveInSnapshot(snapshot, artifactType,
390
414
  ].join(" "),
391
415
  };
392
416
  }
417
+ const FINAL_ROOT_ARTIFACTS = new Set(["PROJECT", "REQUIREMENTS"]);
418
+ function requiredRootApprovalGateForArtifact(artifactType) {
419
+ if (artifactType === "PROJECT")
420
+ return "depth_verification_project_confirm";
421
+ if (artifactType === "REQUIREMENTS")
422
+ return "depth_verification_requirements_confirm";
423
+ return null;
424
+ }
425
+ /**
426
+ * Final root project artifacts are the output of the project/requirements
427
+ * approval gates. Drafts remain writable so the agent can prepare previews,
428
+ * but PROJECT.md and REQUIREMENTS.md must wait for explicit approval. Deep
429
+ * mode can additionally require a positive verified gate, not just no pending
430
+ * gate, so missed detectors fail closed.
431
+ */
432
+ export function shouldBlockRootArtifactSaveInSnapshot(snapshot, artifactType, opts = {}) {
433
+ if (!FINAL_ROOT_ARTIFACTS.has(artifactType))
434
+ return { block: false };
435
+ if (snapshot.pendingGateId) {
436
+ return {
437
+ block: true,
438
+ reason: [
439
+ `HARD BLOCK: Cannot save ${artifactType}.md because discussion gate "${snapshot.pendingGateId}" has not been confirmed by the user.`,
440
+ `This is a mechanical gate — wait for explicit user approval before writing final project setup artifacts.`,
441
+ `If approval was requested in plain text, the user must reply with explicit approval before this write is allowed.`,
442
+ ].join(" "),
443
+ };
444
+ }
445
+ if (opts.requireVerifiedApproval) {
446
+ const requiredGate = requiredRootApprovalGateForArtifact(artifactType);
447
+ if (requiredGate && !isApprovalGateVerifiedInSnapshot(snapshot, requiredGate)) {
448
+ return {
449
+ block: true,
450
+ reason: [
451
+ `HARD BLOCK: Cannot save ${artifactType}.md before explicit approval gate "${requiredGate}" is verified.`,
452
+ `Deep planning root artifacts are fail-closed: absence of a pending gate is not approval.`,
453
+ `Ask the user to confirm the ${artifactType}.md preview and wait for an explicit approval response.`,
454
+ ].join(" "),
455
+ };
456
+ }
457
+ }
458
+ return { block: false };
459
+ }
393
460
  /**
394
461
  * Queue-mode execution guard (#2545).
395
462
  *
@@ -1,9 +1,8 @@
1
1
  import { existsSync, readFileSync, readdirSync } from "node:fs";
2
- import { homedir } from "node:os";
3
2
  import { join, resolve } from "node:path";
4
3
  import { loadRegistry } from "../workflow-templates.js";
5
- const gsdHome = process.env.GSD_HOME || join(homedir(), ".gsd");
6
- export const GSD_COMMAND_DESCRIPTION = "GSD — Get Shit Done: /gsd help|start|templates|next|auto|stop|pause|status|widget|visualize|queue|quick|discuss|capture|triage|dispatch|history|undo|undo-task|reset-slice|rate|skip|export|cleanup|model|mode|prefs|config|keys|hooks|run-hook|skill-health|doctor|debug|logs|forensics|changelog|migrate|remote|steer|knowledge|new-milestone|parallel|cmux|park|unpark|init|setup|onboarding|inspect|extensions|update|fast|mcp|rethink|workflow|codebase|notifications|ship|do|session-report|backlog|pr-branch|add-tests|scan|language|worktree";
4
+ import { gsdHome } from "../gsd-home.js";
5
+ export const GSD_COMMAND_DESCRIPTION = "GSD — Get Shit Done: /gsd help|start|templates|next|auto|stop|pause|status|widget|visualize|queue|quick|discuss|capture|triage|dispatch|history|undo|undo-task|reset-slice|rate|skip|export|cleanup|model|mode|prefs|config|keys|hooks|run-hook|skill-health|doctor|debug|logs|forensics|changelog|migrate|remote|steer|knowledge|new-milestone|new-project|parallel|cmux|park|unpark|init|setup|onboarding|inspect|extensions|update|fast|mcp|rethink|workflow|codebase|notifications|ship|do|session-report|backlog|pr-branch|add-tests|scan|language|worktree|eval-review";
7
6
  export const TOP_LEVEL_SUBCOMMANDS = [
8
7
  { cmd: "help", desc: "Categorized command reference with descriptions" },
9
8
  { cmd: "next", desc: "Explicit step mode (same as /gsd)" },
@@ -50,6 +49,7 @@ export const TOP_LEVEL_SUBCOMMANDS = [
50
49
  { cmd: "inspect", desc: "Show SQLite DB diagnostics" },
51
50
  { cmd: "knowledge", desc: "Add persistent project knowledge (rule, pattern, or lesson)" },
52
51
  { cmd: "new-milestone", desc: "Create a milestone from a specification document (headless)" },
52
+ { cmd: "new-project", desc: "Bootstrap a new project (use --deep for staged project-level discovery)" },
53
53
  { cmd: "parallel", desc: "Parallel milestone orchestration (start, status, stop, merge, watch)" },
54
54
  { cmd: "cmux", desc: "Manage cmux integration (status, sidebar, notifications, splits)" },
55
55
  { cmd: "park", desc: "Park a milestone — skip without deleting" },
@@ -72,6 +72,7 @@ export const TOP_LEVEL_SUBCOMMANDS = [
72
72
  { cmd: "scan", desc: "Rapid codebase assessment — lightweight alternative to full map (--focus tech|arch|quality|concerns|tech+arch)" },
73
73
  { cmd: "language", desc: "Set or clear the global response language (e.g. /gsd language Chinese)" },
74
74
  { cmd: "worktree", desc: "Manage worktrees from the TUI (list, merge, clean, remove)" },
75
+ { cmd: "eval-review", desc: "Audit a slice's AI evaluation strategy and write a scored EVAL-REVIEW.md (--force, --show)" },
75
76
  ];
76
77
  const NESTED_COMPLETIONS = {
77
78
  auto: [
@@ -306,7 +307,7 @@ function filterOptions(partial, options, prefix = "") {
306
307
  }
307
308
  function getExtensionCompletions(prefix, action) {
308
309
  try {
309
- const extDir = join(gsdHome, "agent", "extensions");
310
+ const extDir = join(gsdHome(), "agent", "extensions");
310
311
  const ids = [];
311
312
  for (const entry of readdirSync(extDir, { withFileTypes: true })) {
312
313
  if (!entry.isDirectory())
@@ -394,7 +395,7 @@ function resolveProjectRootForCompletion(basePath) {
394
395
  const gsdMarker = `${separator}.gsd${separator}`;
395
396
  const gsdIdx = basePath.indexOf(gsdMarker);
396
397
  const candidate = gsdIdx !== -1 ? basePath.slice(0, gsdIdx) : basePath.slice(0, segment.gsdIdx);
397
- const normalizedGsdHome = normalizePathForCompare(gsdHome);
398
+ const normalizedGsdHome = normalizePathForCompare(gsdHome());
398
399
  const candidateGsdPath = normalizePathForCompare(join(candidate, ".gsd"));
399
400
  if (candidateGsdPath === normalizedGsdHome || candidateGsdPath.startsWith(`${normalizedGsdHome}/`)) {
400
401
  return resolveProjectRootFromGitFile(basePath) ?? basePath;
@@ -500,7 +501,7 @@ export function getGsdArgumentCompletions(prefix) {
500
501
  const base = resolveProjectRootForCompletion(process.cwd());
501
502
  scanDir(join(base, ".gsd", "workflows"), "project");
502
503
  scanDir(join(base, ".gsd", "workflow-defs"), "project-legacy");
503
- scanDir(join(gsdHome, "workflows"), "global");
504
+ scanDir(join(gsdHome(), "workflows"), "global");
504
505
  }
505
506
  catch { /* ignore */ }
506
507
  // Also include bundled template names.
@@ -3,6 +3,7 @@ import { validateDirectory } from "../validate-directory.js";
3
3
  import { resolveProjectRoot } from "../worktree.js";
4
4
  import { showNextAction } from "../../shared/tui.js";
5
5
  import { handleStatus } from "./handlers/core.js";
6
+ import { homedir } from "node:os";
6
7
  /**
7
8
  * Typed error for when GSD is run outside a valid project directory.
8
9
  * Command handlers catch this to show a friendly message instead of a raw exception.
@@ -19,8 +20,8 @@ export function projectRoot() {
19
20
  cwd = process.cwd();
20
21
  }
21
22
  catch {
22
- // cwd directory was deleted (e.g. worktree teardown) — fall back to HOME (#3598)
23
- cwd = process.env.HOME ?? "/";
23
+ // cwd directory was deleted (e.g. worktree teardown) — fall back to home (#3598)
24
+ cwd = homedir();
24
25
  }
25
26
  const root = resolveProjectRoot(cwd);
26
27
  const pathToCheck = root !== cwd ? cwd : root;
@@ -30,6 +31,20 @@ export function projectRoot() {
30
31
  }
31
32
  return root;
32
33
  }
34
+ export function currentDirectoryRoot() {
35
+ let cwd;
36
+ try {
37
+ cwd = process.cwd();
38
+ }
39
+ catch {
40
+ cwd = process.env.HOME ?? "/";
41
+ }
42
+ const result = validateDirectory(cwd);
43
+ if (result.severity === "blocked") {
44
+ throw new GSDNoProjectError(result.reason ?? "GSD must be run inside a project directory.");
45
+ }
46
+ return cwd;
47
+ }
33
48
  export async function guardRemoteSession(ctx, pi) {
34
49
  if (isAutoActive() || isAutoPaused())
35
50
  return true;