gsd-pi 2.62.0 → 2.62.1-dev.1ae2b74

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 (244) hide show
  1. package/dist/resources/extensions/ask-user-questions.js +47 -3
  2. package/dist/resources/extensions/gsd/auto/loop.js +8 -1
  3. package/dist/resources/extensions/gsd/auto/phases.js +10 -3
  4. package/dist/resources/extensions/gsd/auto-post-unit.js +6 -4
  5. package/dist/resources/extensions/gsd/auto-start.js +11 -6
  6. package/dist/resources/extensions/gsd/auto-timers.js +8 -2
  7. package/dist/resources/extensions/gsd/auto-verification.js +14 -3
  8. package/dist/resources/extensions/gsd/auto-worktree.js +19 -0
  9. package/dist/resources/extensions/gsd/auto.js +24 -0
  10. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +4 -0
  11. package/dist/resources/extensions/gsd/bootstrap/tool-call-loop-guard.js +11 -1
  12. package/dist/resources/extensions/gsd/commands-handlers.js +18 -7
  13. package/dist/resources/extensions/gsd/db-writer.js +64 -28
  14. package/dist/resources/extensions/gsd/preferences-models.js +74 -0
  15. package/dist/resources/extensions/gsd/preferences-skills.js +6 -1
  16. package/dist/resources/extensions/gsd/prompts/guided-discuss-milestone.md +1 -1
  17. package/dist/resources/extensions/gsd/prompts/guided-discuss-slice.md +1 -1
  18. package/dist/resources/extensions/gsd/skill-catalog.js +6 -4
  19. package/dist/resources/extensions/gsd/skill-discovery.js +24 -6
  20. package/dist/resources/extensions/gsd/skill-health.js +7 -3
  21. package/dist/resources/extensions/gsd/skill-telemetry.js +5 -2
  22. package/dist/resources/extensions/gsd/state.js +1 -0
  23. package/dist/resources/extensions/gsd/tools/complete-slice.js +3 -3
  24. package/dist/resources/extensions/gsd/workflow-logger.js +13 -8
  25. package/dist/resources/extensions/gsd/workflow-reconcile.js +3 -1
  26. package/dist/web/standalone/.next/BUILD_ID +1 -1
  27. package/dist/web/standalone/.next/app-path-routes-manifest.json +17 -17
  28. package/dist/web/standalone/.next/build-manifest.json +3 -3
  29. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  30. package/dist/web/standalone/.next/required-server-files.json +3 -3
  31. package/dist/web/standalone/.next/server/app/_global-error/page.js +3 -3
  32. package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  33. package/dist/web/standalone/.next/server/app/_global-error.html +2 -2
  34. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  35. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  36. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  37. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  38. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  39. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  40. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  41. package/dist/web/standalone/.next/server/app/_not-found/page.js +2 -2
  42. package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  43. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  44. package/dist/web/standalone/.next/server/app/_not-found.rsc +3 -3
  45. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  46. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  47. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  48. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  49. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  50. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  51. package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
  52. package/dist/web/standalone/.next/server/app/api/boot/route_client-reference-manifest.js +1 -1
  53. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
  54. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route_client-reference-manifest.js +1 -1
  55. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
  56. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route_client-reference-manifest.js +1 -1
  57. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
  58. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route_client-reference-manifest.js +1 -1
  59. package/dist/web/standalone/.next/server/app/api/browse-directories/route.js +1 -1
  60. package/dist/web/standalone/.next/server/app/api/browse-directories/route_client-reference-manifest.js +1 -1
  61. package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
  62. package/dist/web/standalone/.next/server/app/api/captures/route_client-reference-manifest.js +1 -1
  63. package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
  64. package/dist/web/standalone/.next/server/app/api/cleanup/route_client-reference-manifest.js +1 -1
  65. package/dist/web/standalone/.next/server/app/api/dev-mode/route.js +1 -1
  66. package/dist/web/standalone/.next/server/app/api/dev-mode/route_client-reference-manifest.js +1 -1
  67. package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
  68. package/dist/web/standalone/.next/server/app/api/doctor/route_client-reference-manifest.js +1 -1
  69. package/dist/web/standalone/.next/server/app/api/experimental/route.js +2 -2
  70. package/dist/web/standalone/.next/server/app/api/experimental/route_client-reference-manifest.js +1 -1
  71. package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
  72. package/dist/web/standalone/.next/server/app/api/export-data/route_client-reference-manifest.js +1 -1
  73. package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
  74. package/dist/web/standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
  75. package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
  76. package/dist/web/standalone/.next/server/app/api/forensics/route_client-reference-manifest.js +1 -1
  77. package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
  78. package/dist/web/standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  79. package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
  80. package/dist/web/standalone/.next/server/app/api/history/route_client-reference-manifest.js +1 -1
  81. package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
  82. package/dist/web/standalone/.next/server/app/api/hooks/route_client-reference-manifest.js +1 -1
  83. package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
  84. package/dist/web/standalone/.next/server/app/api/inspect/route_client-reference-manifest.js +1 -1
  85. package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
  86. package/dist/web/standalone/.next/server/app/api/knowledge/route_client-reference-manifest.js +1 -1
  87. package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
  88. package/dist/web/standalone/.next/server/app/api/live-state/route_client-reference-manifest.js +1 -1
  89. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  90. package/dist/web/standalone/.next/server/app/api/onboarding/route_client-reference-manifest.js +1 -1
  91. package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
  92. package/dist/web/standalone/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -1
  93. package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
  94. package/dist/web/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  95. package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
  96. package/dist/web/standalone/.next/server/app/api/recovery/route_client-reference-manifest.js +1 -1
  97. package/dist/web/standalone/.next/server/app/api/remote-questions/route.js +2 -2
  98. package/dist/web/standalone/.next/server/app/api/remote-questions/route_client-reference-manifest.js +1 -1
  99. package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
  100. package/dist/web/standalone/.next/server/app/api/session/browser/route_client-reference-manifest.js +1 -1
  101. package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
  102. package/dist/web/standalone/.next/server/app/api/session/command/route_client-reference-manifest.js +1 -1
  103. package/dist/web/standalone/.next/server/app/api/session/events/route.js +2 -2
  104. package/dist/web/standalone/.next/server/app/api/session/events/route_client-reference-manifest.js +1 -1
  105. package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
  106. package/dist/web/standalone/.next/server/app/api/session/manage/route_client-reference-manifest.js +1 -1
  107. package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
  108. package/dist/web/standalone/.next/server/app/api/settings-data/route_client-reference-manifest.js +1 -1
  109. package/dist/web/standalone/.next/server/app/api/shutdown/route.js +1 -1
  110. package/dist/web/standalone/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  111. package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
  112. package/dist/web/standalone/.next/server/app/api/skill-health/route_client-reference-manifest.js +1 -1
  113. package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
  114. package/dist/web/standalone/.next/server/app/api/steer/route_client-reference-manifest.js +1 -1
  115. package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
  116. package/dist/web/standalone/.next/server/app/api/switch-root/route_client-reference-manifest.js +1 -1
  117. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +2 -2
  118. package/dist/web/standalone/.next/server/app/api/terminal/input/route_client-reference-manifest.js +1 -1
  119. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +2 -2
  120. package/dist/web/standalone/.next/server/app/api/terminal/resize/route_client-reference-manifest.js +1 -1
  121. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +2 -2
  122. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route_client-reference-manifest.js +1 -1
  123. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +4 -4
  124. package/dist/web/standalone/.next/server/app/api/terminal/stream/route_client-reference-manifest.js +1 -1
  125. package/dist/web/standalone/.next/server/app/api/terminal/upload/route.js +1 -1
  126. package/dist/web/standalone/.next/server/app/api/terminal/upload/route_client-reference-manifest.js +1 -1
  127. package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
  128. package/dist/web/standalone/.next/server/app/api/undo/route_client-reference-manifest.js +1 -1
  129. package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
  130. package/dist/web/standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  131. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  132. package/dist/web/standalone/.next/server/app/api/visualizer/route_client-reference-manifest.js +1 -1
  133. package/dist/web/standalone/.next/server/app/index.html +1 -1
  134. package/dist/web/standalone/.next/server/app/index.rsc +4 -4
  135. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  136. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
  137. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  138. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
  139. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  140. package/dist/web/standalone/.next/server/app/page.js +2 -2
  141. package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  142. package/dist/web/standalone/.next/server/app-paths-manifest.json +17 -17
  143. package/dist/web/standalone/.next/server/chunks/2229.js +1 -1
  144. package/dist/web/standalone/.next/server/chunks/7471.js +3 -3
  145. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  146. package/dist/web/standalone/.next/server/middleware.js +2 -2
  147. package/dist/web/standalone/.next/server/next-font-manifest.js +1 -1
  148. package/dist/web/standalone/.next/server/next-font-manifest.json +1 -1
  149. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  150. package/dist/web/standalone/.next/server/pages/500.html +2 -2
  151. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  152. package/dist/web/standalone/.next/static/chunks/app/_not-found/{page-2f24283c162b6ab3.js → page-f2a7482d42a5614b.js} +1 -1
  153. package/dist/web/standalone/.next/static/chunks/app/{layout-9ecfd95f343793f0.js → layout-a16c7a7ecdf0c2cf.js} +1 -1
  154. package/dist/web/standalone/.next/static/chunks/app/page-0c485498795110d6.js +1 -0
  155. package/dist/web/standalone/.next/static/chunks/main-app-fdab67f7802d7832.js +1 -0
  156. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-459824ffb8c323dd.js +1 -0
  157. package/dist/web/standalone/node_modules/node-pty/build/Makefile +2 -2
  158. package/dist/web/standalone/node_modules/node-pty/build/Release/pty.node +0 -0
  159. package/dist/web/standalone/node_modules/node-pty/build/pty.target.mk +14 -14
  160. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api.target.mk +14 -14
  161. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_except.target.mk +14 -14
  162. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_maybe.target.mk +14 -14
  163. package/dist/web/standalone/server.js +1 -1
  164. package/package.json +1 -1
  165. package/packages/mcp-server/src/cli.ts +1 -1
  166. package/packages/mcp-server/src/index.ts +15 -1
  167. package/packages/mcp-server/src/readers/captures.ts +119 -0
  168. package/packages/mcp-server/src/readers/doctor-lite.ts +225 -0
  169. package/packages/mcp-server/src/readers/index.ts +16 -0
  170. package/packages/mcp-server/src/readers/knowledge.ts +111 -0
  171. package/packages/mcp-server/src/readers/metrics.ts +118 -0
  172. package/packages/mcp-server/src/readers/paths.ts +217 -0
  173. package/packages/mcp-server/src/readers/readers.test.ts +509 -0
  174. package/packages/mcp-server/src/readers/roadmap.ts +263 -0
  175. package/packages/mcp-server/src/readers/state.ts +223 -0
  176. package/packages/mcp-server/src/server.ts +134 -3
  177. package/packages/pi-ai/dist/utils/repair-tool-json.d.ts +26 -6
  178. package/packages/pi-ai/dist/utils/repair-tool-json.d.ts.map +1 -1
  179. package/packages/pi-ai/dist/utils/repair-tool-json.js +67 -9
  180. package/packages/pi-ai/dist/utils/repair-tool-json.js.map +1 -1
  181. package/packages/pi-ai/dist/utils/tests/repair-tool-json.test.js +73 -1
  182. package/packages/pi-ai/dist/utils/tests/repair-tool-json.test.js.map +1 -1
  183. package/packages/pi-ai/src/utils/repair-tool-json.ts +74 -10
  184. package/packages/pi-ai/src/utils/tests/repair-tool-json.test.ts +94 -1
  185. package/packages/pi-coding-agent/dist/core/agent-session-model-switch.test.d.ts +2 -0
  186. package/packages/pi-coding-agent/dist/core/agent-session-model-switch.test.d.ts.map +1 -0
  187. package/packages/pi-coding-agent/dist/core/agent-session-model-switch.test.js +16 -0
  188. package/packages/pi-coding-agent/dist/core/agent-session-model-switch.test.js.map +1 -0
  189. package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
  190. package/packages/pi-coding-agent/dist/core/agent-session.js +4 -0
  191. package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
  192. package/packages/pi-coding-agent/dist/core/retry-handler.d.ts +3 -0
  193. package/packages/pi-coding-agent/dist/core/retry-handler.d.ts.map +1 -1
  194. package/packages/pi-coding-agent/dist/core/retry-handler.js +48 -16
  195. package/packages/pi-coding-agent/dist/core/retry-handler.js.map +1 -1
  196. package/packages/pi-coding-agent/dist/core/retry-handler.test.js +20 -3
  197. package/packages/pi-coding-agent/dist/core/retry-handler.test.js.map +1 -1
  198. package/packages/pi-coding-agent/package.json +1 -1
  199. package/packages/pi-coding-agent/src/core/agent-session-model-switch.test.ts +21 -0
  200. package/packages/pi-coding-agent/src/core/agent-session.ts +4 -0
  201. package/packages/pi-coding-agent/src/core/retry-handler.test.ts +30 -3
  202. package/packages/pi-coding-agent/src/core/retry-handler.ts +49 -16
  203. package/pkg/package.json +1 -1
  204. package/src/resources/extensions/ask-user-questions.ts +60 -4
  205. package/src/resources/extensions/gsd/auto/loop.ts +8 -1
  206. package/src/resources/extensions/gsd/auto/phases.ts +8 -6
  207. package/src/resources/extensions/gsd/auto-post-unit.ts +6 -3
  208. package/src/resources/extensions/gsd/auto-start.ts +11 -6
  209. package/src/resources/extensions/gsd/auto-timers.ts +8 -2
  210. package/src/resources/extensions/gsd/auto-verification.ts +14 -3
  211. package/src/resources/extensions/gsd/auto-worktree.ts +18 -0
  212. package/src/resources/extensions/gsd/auto.ts +25 -0
  213. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +4 -0
  214. package/src/resources/extensions/gsd/bootstrap/tool-call-loop-guard.ts +13 -1
  215. package/src/resources/extensions/gsd/commands-handlers.ts +20 -7
  216. package/src/resources/extensions/gsd/db-writer.ts +67 -30
  217. package/src/resources/extensions/gsd/preferences-models.ts +78 -0
  218. package/src/resources/extensions/gsd/preferences-skills.ts +6 -1
  219. package/src/resources/extensions/gsd/prompts/guided-discuss-milestone.md +1 -1
  220. package/src/resources/extensions/gsd/prompts/guided-discuss-slice.md +1 -1
  221. package/src/resources/extensions/gsd/skill-catalog.ts +6 -3
  222. package/src/resources/extensions/gsd/skill-discovery.ts +23 -6
  223. package/src/resources/extensions/gsd/skill-health.ts +7 -3
  224. package/src/resources/extensions/gsd/skill-telemetry.ts +5 -2
  225. package/src/resources/extensions/gsd/state.ts +1 -0
  226. package/src/resources/extensions/gsd/tests/ask-user-questions-dedup.test.ts +120 -0
  227. package/src/resources/extensions/gsd/tests/auto-start-model-capture.test.ts +22 -2
  228. package/src/resources/extensions/gsd/tests/auto-wrapup-inflight-guard.test.ts +107 -0
  229. package/src/resources/extensions/gsd/tests/claude-skill-dirs.test.ts +51 -0
  230. package/src/resources/extensions/gsd/tests/db-writer.test.ts +41 -0
  231. package/src/resources/extensions/gsd/tests/model-isolation.test.ts +75 -1
  232. package/src/resources/extensions/gsd/tests/steer-worktree-path.test.ts +108 -0
  233. package/src/resources/extensions/gsd/tests/tool-call-loop-guard.test.ts +17 -4
  234. package/src/resources/extensions/gsd/tests/workflow-logger.test.ts +17 -41
  235. package/src/resources/extensions/gsd/tests/worktree-db-respawn-truncation.test.ts +81 -2
  236. package/src/resources/extensions/gsd/tools/complete-slice.ts +3 -5
  237. package/src/resources/extensions/gsd/workflow-logger.ts +13 -8
  238. package/src/resources/extensions/gsd/workflow-reconcile.ts +3 -1
  239. package/src/resources/extensions/shared/tests/ask-user-freetext.test.ts +6 -1
  240. package/dist/web/standalone/.next/static/chunks/app/page-62be3b5fa91e4c8f.js +0 -1
  241. package/dist/web/standalone/.next/static/chunks/main-app-d3d4c336195465f9.js +0 -1
  242. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-ab5a8926e07ec673.js +0 -1
  243. /package/dist/web/standalone/.next/static/{F4rzqt_3m83A68ZRiU12r → erQZ_8_1lkclnPJLJnCxG}/_buildManifest.js +0 -0
  244. /package/dist/web/standalone/.next/static/{F4rzqt_3m83A68ZRiU12r → erQZ_8_1lkclnPJLJnCxG}/_ssgManifest.js +0 -0
@@ -348,7 +348,9 @@ function _reconcileWorktreeLogsInner(
348
348
  if (conflicts.length > 0) {
349
349
  // D-04: atomic all-or-nothing — block entire merge
350
350
  writeConflictsFile(mainBasePath, conflicts, worktreeBasePath);
351
- logError("reconcile", `${conflicts.length} conflict(s) detected`, { count: String(conflicts.length), path: join(mainBasePath, ".gsd", "CONFLICTS.md") });
351
+ const conflictSummary = conflicts.slice(0, 3).map(c => `${c.entityType}:${c.entityId}`).join(", ");
352
+ const truncated = conflicts.length > 3 ? `... and ${conflicts.length - 3} more` : "";
353
+ logError("reconcile", `${conflicts.length} conflict(s) detected on ${conflictSummary}${truncated}. Details: .gsd/CONFLICTS.md`, { count: String(conflicts.length), path: join(mainBasePath, ".gsd", "CONFLICTS.md") });
352
354
  return { autoMerged: 0, conflicts };
353
355
  }
354
356
 
@@ -10,12 +10,13 @@
10
10
  * triggers a follow-up free-text input prompt via ctx.ui.input().
11
11
  */
12
12
 
13
- import { describe, it } from "node:test";
13
+ import { describe, it, beforeEach } from "node:test";
14
14
  import assert from "node:assert/strict";
15
15
 
16
16
  // The ask-user-questions extension registers a tool via pi.registerTool().
17
17
  // We capture that registration and call execute() directly with a mock context.
18
18
  import AskUserQuestions from "../../ask-user-questions.js";
19
+ import { resetAskUserQuestionsCache } from "../../ask-user-questions.js";
19
20
 
20
21
  interface CapturedTool {
21
22
  name: string;
@@ -73,6 +74,10 @@ function makeMockCtx(opts: {
73
74
  }
74
75
 
75
76
  describe("ask-user-questions RPC fallback free-text", () => {
77
+ beforeEach(() => {
78
+ resetAskUserQuestionsCache();
79
+ });
80
+
76
81
  it("prompts for free-text input when user selects 'None of the above'", async () => {
77
82
  const tool = captureTool();
78
83
  const { ctx, selectCalls, inputCalls } = makeMockCtx({
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{5214:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorage",{enumerable:!0,get:function(){return r.workAsyncStorageInstance}});let r=n(17828)},15726:(e,t,n)=>{Promise.resolve().then(n.bind(n,66919))},17828:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorageInstance",{enumerable:!0,get:function(){return r}});let r=(0,n(64054).createAsyncLocalStorage)()},21957:(e,t,n)=>{"use strict";function r({moduleIds:e}){return null}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return r}}),n(95155),n(47650),n(5214),n(2451),n(53887)},37206:(e,t,n)=>{"use strict";n.d(t,{default:()=>u.a});var r=n(75707),u=n.n(r)},41112:(e,t,n)=>{"use strict";function r({reason:e,children:t}){return t}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return r}}),n(1980)},64054:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={bindSnapshot:function(){return s},createAsyncLocalStorage:function(){return a},createSnapshot:function(){return i}};for(var r in n)Object.defineProperty(t,r,{enumerable:!0,get:n[r]});let u=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class l{disable(){throw u}getStore(){}run(){throw u}exit(){throw u}enterWith(){throw u}static bind(e){return e}}let o="u">typeof globalThis&&globalThis.AsyncLocalStorage;function a(){return o?new o:new l}function s(e){return o?o.bind(e):l.bind(e)}function i(){return o?o.snapshot():function(e,...t){return e(...t)}}},66919:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r=n(95155);let u=(0,n(37206).default)(()=>Promise.all([n.e(1838),n.e(6079),n.e(4986),n.e(2008),n.e(6502)]).then(n.bind(n,46502)).then(e=>e.GSDAppShell),{loadableGenerated:{webpack:()=>[46502]},ssr:!1,loading:()=>(0,r.jsx)("div",{className:"flex h-screen items-center justify-center bg-background text-sm text-muted-foreground",children:"Loading workspace…"})});function l(){return(0,r.jsx)(u,{})}},68635:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return s}});let r=n(95155),u=n(12115),l=n(41112);function o(e){return{default:e&&"default"in e?e.default:e}}n(21957);let a={loader:()=>Promise.resolve(o(()=>null)),loading:null,ssr:!0},s=function(e){let t={...a,...e},n=(0,u.lazy)(()=>t.loader().then(o)),s=t.loading;function i(e){let o=s?(0,r.jsx)(s,{isLoading:!0,pastDelay:!0,error:null}):null,a=!t.ssr||!!t.loading,i=a?u.Suspense:u.Fragment,c=t.ssr?(0,r.jsxs)(r.Fragment,{children:[null,(0,r.jsx)(n,{...e})]}):(0,r.jsx)(l.BailoutToCSR,{reason:"next/dynamic",children:(0,r.jsx)(n,{...e})});return(0,r.jsx)(i,{...a?{fallback:o}:{},children:c})}return i.displayName="LoadableComponent",i}},75707:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return u}});let r=n(73623)._(n(68635));function u(e,t){let n={};"function"==typeof e&&(n.loader=e);let u={...n,...t};return(0,r.default)({...u,modules:u.loadableGenerated?.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}},e=>{e.O(0,[8441,3794,7358],()=>e(e.s=15726)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7358],{2852:(e,s,n)=>{Promise.resolve().then(n.t.bind(n,27123,23)),Promise.resolve().then(n.t.bind(n,61304,23)),Promise.resolve().then(n.t.bind(n,78616,23)),Promise.resolve().then(n.t.bind(n,64777,23)),Promise.resolve().then(n.t.bind(n,57121,23)),Promise.resolve().then(n.t.bind(n,74581,23)),Promise.resolve().then(n.t.bind(n,90484,23)),Promise.resolve().then(n.bind(n,86869))},19393:()=>{}},e=>{var s=s=>e(e.s=s);e.O(0,[8441,3794],()=>(s(83861),s(2852))),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9337],{52560:(e,s,_)=>{Promise.resolve().then(_.t.bind(_,27123,23))}},e=>{e.O(0,[8441,3794,7358],()=>e(e.s=52560)),_N_E=e.O()}]);