gsd-pi 2.71.0 → 2.72.0-dev.de4c4b3

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 (459) hide show
  1. package/README.md +57 -17
  2. package/dist/cli.js +29 -3
  3. package/dist/headless-events.d.ts +2 -0
  4. package/dist/headless-events.js +7 -0
  5. package/dist/headless.js +16 -3
  6. package/dist/mcp-server.js +40 -17
  7. package/dist/provider-migrations.d.ts +10 -0
  8. package/dist/provider-migrations.js +12 -0
  9. package/dist/resource-loader.js +139 -13
  10. package/dist/resources/GSD-WORKFLOW.md +1 -1
  11. package/dist/resources/agents/debugger.md +58 -0
  12. package/dist/resources/agents/doc-writer.md +43 -0
  13. package/dist/resources/agents/git-ops.md +56 -0
  14. package/dist/resources/agents/javascript-pro.md +46 -271
  15. package/dist/resources/agents/planner.md +55 -0
  16. package/dist/resources/agents/refactorer.md +47 -0
  17. package/dist/resources/agents/reviewer.md +48 -0
  18. package/dist/resources/agents/security.md +59 -0
  19. package/dist/resources/agents/tester.md +50 -0
  20. package/dist/resources/agents/typescript-pro.md +41 -235
  21. package/dist/resources/extensions/claude-code-cli/stream-adapter.js +113 -10
  22. package/dist/resources/extensions/gsd/auto/infra-errors.js +34 -0
  23. package/dist/resources/extensions/gsd/auto/loop.js +32 -1
  24. package/dist/resources/extensions/gsd/auto/phases.js +5 -1
  25. package/dist/resources/extensions/gsd/auto/session.js +11 -0
  26. package/dist/resources/extensions/gsd/auto-dashboard.js +22 -16
  27. package/dist/resources/extensions/gsd/auto-model-selection.js +10 -2
  28. package/dist/resources/extensions/gsd/auto-prompts.js +88 -33
  29. package/dist/resources/extensions/gsd/auto-start.js +34 -7
  30. package/dist/resources/extensions/gsd/auto-tool-tracking.js +1 -1
  31. package/dist/resources/extensions/gsd/auto-worktree.js +1 -1
  32. package/dist/resources/extensions/gsd/auto.js +56 -0
  33. package/dist/resources/extensions/gsd/bootstrap/db-tools.js +3 -3
  34. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +2 -0
  35. package/dist/resources/extensions/gsd/bootstrap/register-shortcuts.js +63 -51
  36. package/dist/resources/extensions/gsd/bootstrap/system-context.js +6 -0
  37. package/dist/resources/extensions/gsd/commands/context.js +15 -6
  38. package/dist/resources/extensions/gsd/commands/dispatcher.js +12 -2
  39. package/dist/resources/extensions/gsd/commands/handlers/auto.js +10 -33
  40. package/dist/resources/extensions/gsd/commands/handlers/core.js +56 -11
  41. package/dist/resources/extensions/gsd/commands/handlers/notifications-handler.js +15 -6
  42. package/dist/resources/extensions/gsd/commands/handlers/workflow.js +4 -10
  43. package/dist/resources/extensions/gsd/dashboard-overlay.js +8 -3
  44. package/dist/resources/extensions/gsd/dispatch-guard.js +18 -1
  45. package/dist/resources/extensions/gsd/doctor-providers.js +23 -0
  46. package/dist/resources/extensions/gsd/error-classifier.js +5 -2
  47. package/dist/resources/extensions/gsd/forensics.js +19 -6
  48. package/dist/resources/extensions/gsd/gate-registry.js +208 -0
  49. package/dist/resources/extensions/gsd/gsd-db.js +41 -0
  50. package/dist/resources/extensions/gsd/guided-flow.js +5 -10
  51. package/dist/resources/extensions/gsd/metrics.js +1 -0
  52. package/dist/resources/extensions/gsd/milestone-actions.js +10 -4
  53. package/dist/resources/extensions/gsd/milestone-validation-gates.js +11 -12
  54. package/dist/resources/extensions/gsd/notification-overlay.js +42 -13
  55. package/dist/resources/extensions/gsd/notification-store.js +56 -5
  56. package/dist/resources/extensions/gsd/notification-widget.js +5 -13
  57. package/dist/resources/extensions/gsd/parallel-monitor-overlay.js +8 -3
  58. package/dist/resources/extensions/gsd/pre-execution-checks.js +35 -2
  59. package/dist/resources/extensions/gsd/prompt-validation.js +126 -0
  60. package/dist/resources/extensions/gsd/prompts/complete-slice.md +5 -3
  61. package/dist/resources/extensions/gsd/prompts/discuss.md +2 -0
  62. package/dist/resources/extensions/gsd/prompts/execute-task.md +22 -19
  63. package/dist/resources/extensions/gsd/prompts/guided-discuss-milestone.md +2 -0
  64. package/dist/resources/extensions/gsd/prompts/guided-discuss-slice.md +2 -0
  65. package/dist/resources/extensions/gsd/prompts/guided-resume-task.md +1 -1
  66. package/dist/resources/extensions/gsd/prompts/queue.md +3 -2
  67. package/dist/resources/extensions/gsd/prompts/system.md +1 -0
  68. package/dist/resources/extensions/gsd/prompts/validate-milestone.md +4 -1
  69. package/dist/resources/extensions/gsd/session-model-override.js +25 -0
  70. package/dist/resources/extensions/gsd/shortcut-defs.js +40 -0
  71. package/dist/resources/extensions/gsd/state.js +9 -2
  72. package/dist/resources/extensions/gsd/tools/complete-slice.js +52 -1
  73. package/dist/resources/extensions/gsd/tools/complete-task.js +51 -1
  74. package/dist/resources/extensions/gsd/tools/workflow-tool-executors.js +4 -1
  75. package/dist/resources/extensions/ollama/index.js +13 -5
  76. package/dist/resources/extensions/shared/gsd-phase-state.js +35 -0
  77. package/dist/resources/extensions/subagent/agents.js +8 -0
  78. package/dist/resources/extensions/subagent/index.js +17 -0
  79. package/dist/resources/skills/create-skill/SKILL.md +2 -0
  80. package/dist/startup-model-validation.d.ts +0 -1
  81. package/dist/startup-model-validation.js +6 -2
  82. package/dist/web/standalone/.next/BUILD_ID +1 -1
  83. package/dist/web/standalone/.next/app-path-routes-manifest.json +10 -10
  84. package/dist/web/standalone/.next/build-manifest.json +3 -3
  85. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  86. package/dist/web/standalone/.next/required-server-files.json +3 -3
  87. package/dist/web/standalone/.next/server/app/_global-error/page.js +3 -3
  88. package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  89. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  90. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  91. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  92. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  93. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  94. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  95. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  96. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  97. package/dist/web/standalone/.next/server/app/_not-found/page.js +2 -2
  98. package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  99. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  100. package/dist/web/standalone/.next/server/app/_not-found.rsc +3 -3
  101. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  102. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  103. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  104. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  105. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  106. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  107. package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
  108. package/dist/web/standalone/.next/server/app/api/boot/route_client-reference-manifest.js +1 -1
  109. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
  110. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route_client-reference-manifest.js +1 -1
  111. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
  112. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route_client-reference-manifest.js +1 -1
  113. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
  114. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route_client-reference-manifest.js +1 -1
  115. package/dist/web/standalone/.next/server/app/api/browse-directories/route.js +1 -1
  116. package/dist/web/standalone/.next/server/app/api/browse-directories/route_client-reference-manifest.js +1 -1
  117. package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
  118. package/dist/web/standalone/.next/server/app/api/captures/route_client-reference-manifest.js +1 -1
  119. package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
  120. package/dist/web/standalone/.next/server/app/api/cleanup/route_client-reference-manifest.js +1 -1
  121. package/dist/web/standalone/.next/server/app/api/dev-mode/route.js +1 -1
  122. package/dist/web/standalone/.next/server/app/api/dev-mode/route_client-reference-manifest.js +1 -1
  123. package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
  124. package/dist/web/standalone/.next/server/app/api/doctor/route_client-reference-manifest.js +1 -1
  125. package/dist/web/standalone/.next/server/app/api/experimental/route.js +2 -2
  126. package/dist/web/standalone/.next/server/app/api/experimental/route_client-reference-manifest.js +1 -1
  127. package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
  128. package/dist/web/standalone/.next/server/app/api/export-data/route_client-reference-manifest.js +1 -1
  129. package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
  130. package/dist/web/standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
  131. package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
  132. package/dist/web/standalone/.next/server/app/api/forensics/route_client-reference-manifest.js +1 -1
  133. package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
  134. package/dist/web/standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  135. package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
  136. package/dist/web/standalone/.next/server/app/api/history/route_client-reference-manifest.js +1 -1
  137. package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
  138. package/dist/web/standalone/.next/server/app/api/hooks/route_client-reference-manifest.js +1 -1
  139. package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
  140. package/dist/web/standalone/.next/server/app/api/inspect/route_client-reference-manifest.js +1 -1
  141. package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
  142. package/dist/web/standalone/.next/server/app/api/knowledge/route_client-reference-manifest.js +1 -1
  143. package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
  144. package/dist/web/standalone/.next/server/app/api/live-state/route_client-reference-manifest.js +1 -1
  145. package/dist/web/standalone/.next/server/app/api/notifications/route.js +2 -2
  146. package/dist/web/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  147. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  148. package/dist/web/standalone/.next/server/app/api/onboarding/route_client-reference-manifest.js +1 -1
  149. package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
  150. package/dist/web/standalone/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -1
  151. package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
  152. package/dist/web/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  153. package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
  154. package/dist/web/standalone/.next/server/app/api/recovery/route_client-reference-manifest.js +1 -1
  155. package/dist/web/standalone/.next/server/app/api/remote-questions/route.js +2 -2
  156. package/dist/web/standalone/.next/server/app/api/remote-questions/route_client-reference-manifest.js +1 -1
  157. package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
  158. package/dist/web/standalone/.next/server/app/api/session/browser/route_client-reference-manifest.js +1 -1
  159. package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
  160. package/dist/web/standalone/.next/server/app/api/session/command/route_client-reference-manifest.js +1 -1
  161. package/dist/web/standalone/.next/server/app/api/session/events/route.js +2 -2
  162. package/dist/web/standalone/.next/server/app/api/session/events/route_client-reference-manifest.js +1 -1
  163. package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
  164. package/dist/web/standalone/.next/server/app/api/session/manage/route_client-reference-manifest.js +1 -1
  165. package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
  166. package/dist/web/standalone/.next/server/app/api/settings-data/route_client-reference-manifest.js +1 -1
  167. package/dist/web/standalone/.next/server/app/api/shutdown/route.js +1 -1
  168. package/dist/web/standalone/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  169. package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
  170. package/dist/web/standalone/.next/server/app/api/skill-health/route_client-reference-manifest.js +1 -1
  171. package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
  172. package/dist/web/standalone/.next/server/app/api/steer/route_client-reference-manifest.js +1 -1
  173. package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
  174. package/dist/web/standalone/.next/server/app/api/switch-root/route_client-reference-manifest.js +1 -1
  175. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +1 -1
  176. package/dist/web/standalone/.next/server/app/api/terminal/input/route_client-reference-manifest.js +1 -1
  177. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +2 -2
  178. package/dist/web/standalone/.next/server/app/api/terminal/resize/route_client-reference-manifest.js +1 -1
  179. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +1 -1
  180. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route_client-reference-manifest.js +1 -1
  181. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +2 -2
  182. package/dist/web/standalone/.next/server/app/api/terminal/stream/route_client-reference-manifest.js +1 -1
  183. package/dist/web/standalone/.next/server/app/api/terminal/upload/route.js +1 -1
  184. package/dist/web/standalone/.next/server/app/api/terminal/upload/route_client-reference-manifest.js +1 -1
  185. package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
  186. package/dist/web/standalone/.next/server/app/api/undo/route_client-reference-manifest.js +1 -1
  187. package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
  188. package/dist/web/standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  189. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  190. package/dist/web/standalone/.next/server/app/api/visualizer/route_client-reference-manifest.js +1 -1
  191. package/dist/web/standalone/.next/server/app/index.html +1 -1
  192. package/dist/web/standalone/.next/server/app/index.rsc +4 -4
  193. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  194. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
  195. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  196. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
  197. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  198. package/dist/web/standalone/.next/server/app/page.js +2 -2
  199. package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  200. package/dist/web/standalone/.next/server/app-paths-manifest.json +10 -10
  201. package/dist/web/standalone/.next/server/chunks/63.js +3 -3
  202. package/dist/web/standalone/.next/server/chunks/6897.js +1 -1
  203. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  204. package/dist/web/standalone/.next/server/middleware.js +2 -2
  205. package/dist/web/standalone/.next/server/next-font-manifest.js +1 -1
  206. package/dist/web/standalone/.next/server/next-font-manifest.json +1 -1
  207. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  208. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  209. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  210. package/dist/web/standalone/.next/static/chunks/app/_not-found/{page-2f24283c162b6ab3.js → page-f2a7482d42a5614b.js} +1 -1
  211. package/dist/web/standalone/.next/static/chunks/app/{layout-9ecfd95f343793f0.js → layout-a16c7a7ecdf0c2cf.js} +1 -1
  212. package/dist/web/standalone/.next/static/chunks/app/page-f1e30ab6bb269149.js +1 -0
  213. package/dist/web/standalone/.next/static/chunks/main-app-fdab67f7802d7832.js +1 -0
  214. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-459824ffb8c323dd.js +1 -0
  215. package/dist/web/standalone/node_modules/node-pty/build/Makefile +2 -2
  216. package/dist/web/standalone/node_modules/node-pty/build/Release/pty.node +0 -0
  217. package/dist/web/standalone/node_modules/node-pty/build/pty.target.mk +14 -14
  218. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api.target.mk +14 -14
  219. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_except.target.mk +14 -14
  220. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_maybe.target.mk +14 -14
  221. package/dist/web/standalone/server.js +1 -1
  222. package/package.json +1 -1
  223. package/packages/mcp-server/dist/server.d.ts +12 -1
  224. package/packages/mcp-server/dist/server.d.ts.map +1 -1
  225. package/packages/mcp-server/dist/server.js +90 -42
  226. package/packages/mcp-server/dist/server.js.map +1 -1
  227. package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
  228. package/packages/mcp-server/dist/workflow-tools.js +22 -12
  229. package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
  230. package/packages/mcp-server/src/server.ts +110 -38
  231. package/packages/mcp-server/src/workflow-tools.test.ts +110 -0
  232. package/packages/mcp-server/src/workflow-tools.ts +32 -12
  233. package/packages/pi-ai/dist/providers/amazon-bedrock.js +11 -2
  234. package/packages/pi-ai/dist/providers/amazon-bedrock.js.map +1 -1
  235. package/packages/pi-ai/dist/providers/anthropic-auth.test.d.ts +2 -0
  236. package/packages/pi-ai/dist/providers/anthropic-auth.test.d.ts.map +1 -0
  237. package/packages/pi-ai/dist/providers/anthropic-auth.test.js +20 -0
  238. package/packages/pi-ai/dist/providers/anthropic-auth.test.js.map +1 -0
  239. package/packages/pi-ai/dist/providers/anthropic-shared.d.ts +4 -1
  240. package/packages/pi-ai/dist/providers/anthropic-shared.d.ts.map +1 -1
  241. package/packages/pi-ai/dist/providers/anthropic-shared.js +8 -3
  242. package/packages/pi-ai/dist/providers/anthropic-shared.js.map +1 -1
  243. package/packages/pi-ai/dist/providers/anthropic-shared.test.js +44 -1
  244. package/packages/pi-ai/dist/providers/anthropic-shared.test.js.map +1 -1
  245. package/packages/pi-ai/dist/providers/anthropic.d.ts +2 -1
  246. package/packages/pi-ai/dist/providers/anthropic.d.ts.map +1 -1
  247. package/packages/pi-ai/dist/providers/anthropic.js +7 -4
  248. package/packages/pi-ai/dist/providers/anthropic.js.map +1 -1
  249. package/packages/pi-ai/dist/providers/openai-completions.d.ts.map +1 -1
  250. package/packages/pi-ai/dist/providers/openai-completions.js +11 -0
  251. package/packages/pi-ai/dist/providers/openai-completions.js.map +1 -1
  252. package/packages/pi-ai/src/providers/amazon-bedrock.ts +13 -1
  253. package/packages/pi-ai/src/providers/anthropic-auth.test.ts +32 -0
  254. package/packages/pi-ai/src/providers/anthropic-shared.test.ts +55 -1
  255. package/packages/pi-ai/src/providers/anthropic-shared.ts +14 -3
  256. package/packages/pi-ai/src/providers/anthropic.ts +8 -4
  257. package/packages/pi-ai/src/providers/openai-completions.ts +14 -0
  258. package/packages/pi-coding-agent/dist/core/agent-session-renderable-tools.test.d.ts +2 -0
  259. package/packages/pi-coding-agent/dist/core/agent-session-renderable-tools.test.d.ts.map +1 -0
  260. package/packages/pi-coding-agent/dist/core/agent-session-renderable-tools.test.js +61 -0
  261. package/packages/pi-coding-agent/dist/core/agent-session-renderable-tools.test.js.map +1 -0
  262. package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
  263. package/packages/pi-coding-agent/dist/core/agent-session.js +2 -1
  264. package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
  265. package/packages/pi-coding-agent/dist/core/auth-storage.d.ts +10 -0
  266. package/packages/pi-coding-agent/dist/core/auth-storage.d.ts.map +1 -1
  267. package/packages/pi-coding-agent/dist/core/auth-storage.js +27 -0
  268. package/packages/pi-coding-agent/dist/core/auth-storage.js.map +1 -1
  269. package/packages/pi-coding-agent/dist/core/auth-storage.test.js +85 -0
  270. package/packages/pi-coding-agent/dist/core/auth-storage.test.js.map +1 -1
  271. package/packages/pi-coding-agent/dist/core/model-resolver-initial-model-auth.test.d.ts +2 -0
  272. package/packages/pi-coding-agent/dist/core/model-resolver-initial-model-auth.test.d.ts.map +1 -0
  273. package/packages/pi-coding-agent/dist/core/model-resolver-initial-model-auth.test.js +64 -0
  274. package/packages/pi-coding-agent/dist/core/model-resolver-initial-model-auth.test.js.map +1 -0
  275. package/packages/pi-coding-agent/dist/core/model-resolver.d.ts.map +1 -1
  276. package/packages/pi-coding-agent/dist/core/model-resolver.js +22 -18
  277. package/packages/pi-coding-agent/dist/core/model-resolver.js.map +1 -1
  278. package/packages/pi-coding-agent/dist/core/model-resolver.test.d.ts +8 -0
  279. package/packages/pi-coding-agent/dist/core/model-resolver.test.d.ts.map +1 -0
  280. package/packages/pi-coding-agent/dist/core/model-resolver.test.js +75 -0
  281. package/packages/pi-coding-agent/dist/core/model-resolver.test.js.map +1 -0
  282. package/packages/pi-coding-agent/dist/core/retry-handler.d.ts +5 -0
  283. package/packages/pi-coding-agent/dist/core/retry-handler.d.ts.map +1 -1
  284. package/packages/pi-coding-agent/dist/core/retry-handler.js +55 -1
  285. package/packages/pi-coding-agent/dist/core/retry-handler.js.map +1 -1
  286. package/packages/pi-coding-agent/dist/core/retry-handler.test.js +57 -0
  287. package/packages/pi-coding-agent/dist/core/retry-handler.test.js.map +1 -1
  288. package/packages/pi-coding-agent/dist/core/sdk.d.ts +11 -0
  289. package/packages/pi-coding-agent/dist/core/sdk.d.ts.map +1 -1
  290. package/packages/pi-coding-agent/dist/core/sdk.js +38 -5
  291. package/packages/pi-coding-agent/dist/core/sdk.js.map +1 -1
  292. package/packages/pi-coding-agent/dist/core/sdk.test.d.ts +2 -0
  293. package/packages/pi-coding-agent/dist/core/sdk.test.d.ts.map +1 -0
  294. package/packages/pi-coding-agent/dist/core/sdk.test.js +71 -0
  295. package/packages/pi-coding-agent/dist/core/sdk.test.js.map +1 -0
  296. package/packages/pi-coding-agent/dist/index.d.ts +1 -1
  297. package/packages/pi-coding-agent/dist/index.d.ts.map +1 -1
  298. package/packages/pi-coding-agent/dist/index.js +1 -1
  299. package/packages/pi-coding-agent/dist/index.js.map +1 -1
  300. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/login-dialog.test.d.ts +2 -0
  301. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/login-dialog.test.d.ts.map +1 -0
  302. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/login-dialog.test.js +13 -0
  303. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/login-dialog.test.js.map +1 -0
  304. package/packages/pi-coding-agent/dist/modes/interactive/components/login-dialog.d.ts +4 -0
  305. package/packages/pi-coding-agent/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  306. package/packages/pi-coding-agent/dist/modes/interactive/components/login-dialog.js +24 -2
  307. package/packages/pi-coding-agent/dist/modes/interactive/components/login-dialog.js.map +1 -1
  308. package/packages/pi-coding-agent/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  309. package/packages/pi-coding-agent/dist/modes/interactive/components/model-selector.js +9 -2
  310. package/packages/pi-coding-agent/dist/modes/interactive/components/model-selector.js.map +1 -1
  311. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts +4 -0
  312. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  313. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +43 -0
  314. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
  315. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
  316. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +7 -2
  317. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
  318. package/packages/pi-coding-agent/dist/modes/interactive/controllers/model-controller.d.ts.map +1 -1
  319. package/packages/pi-coding-agent/dist/modes/interactive/controllers/model-controller.js +6 -1
  320. package/packages/pi-coding-agent/dist/modes/interactive/controllers/model-controller.js.map +1 -1
  321. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  322. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +4 -3
  323. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  324. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.js +4 -2
  325. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.js.map +1 -1
  326. package/packages/pi-coding-agent/package.json +1 -1
  327. package/packages/pi-coding-agent/src/core/agent-session-renderable-tools.test.ts +70 -0
  328. package/packages/pi-coding-agent/src/core/agent-session.ts +2 -1
  329. package/packages/pi-coding-agent/src/core/auth-storage.test.ts +108 -0
  330. package/packages/pi-coding-agent/src/core/auth-storage.ts +30 -0
  331. package/packages/pi-coding-agent/src/core/model-resolver-initial-model-auth.test.ts +78 -0
  332. package/packages/pi-coding-agent/src/core/model-resolver.test.ts +85 -0
  333. package/packages/pi-coding-agent/src/core/model-resolver.ts +22 -18
  334. package/packages/pi-coding-agent/src/core/retry-handler.test.ts +83 -0
  335. package/packages/pi-coding-agent/src/core/retry-handler.ts +60 -1
  336. package/packages/pi-coding-agent/src/core/sdk.test.ts +89 -0
  337. package/packages/pi-coding-agent/src/core/sdk.ts +45 -9
  338. package/packages/pi-coding-agent/src/index.ts +1 -0
  339. package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/login-dialog.test.ts +24 -0
  340. package/packages/pi-coding-agent/src/modes/interactive/components/login-dialog.ts +30 -2
  341. package/packages/pi-coding-agent/src/modes/interactive/components/model-selector.ts +15 -6
  342. package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +47 -0
  343. package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +7 -2
  344. package/packages/pi-coding-agent/src/modes/interactive/controllers/model-controller.ts +6 -1
  345. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +4 -3
  346. package/packages/pi-coding-agent/src/modes/interactive/slash-command-handlers.ts +4 -2
  347. package/pkg/package.json +1 -1
  348. package/src/resources/GSD-WORKFLOW.md +1 -1
  349. package/src/resources/agents/debugger.md +58 -0
  350. package/src/resources/agents/doc-writer.md +43 -0
  351. package/src/resources/agents/git-ops.md +56 -0
  352. package/src/resources/agents/javascript-pro.md +46 -271
  353. package/src/resources/agents/planner.md +55 -0
  354. package/src/resources/agents/refactorer.md +47 -0
  355. package/src/resources/agents/reviewer.md +48 -0
  356. package/src/resources/agents/security.md +59 -0
  357. package/src/resources/agents/tester.md +50 -0
  358. package/src/resources/agents/typescript-pro.md +41 -235
  359. package/src/resources/extensions/claude-code-cli/stream-adapter.ts +122 -8
  360. package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +189 -6
  361. package/src/resources/extensions/gsd/auto/infra-errors.ts +38 -0
  362. package/src/resources/extensions/gsd/auto/loop-deps.ts +2 -0
  363. package/src/resources/extensions/gsd/auto/loop.ts +45 -1
  364. package/src/resources/extensions/gsd/auto/phases.ts +6 -0
  365. package/src/resources/extensions/gsd/auto/session.ts +11 -0
  366. package/src/resources/extensions/gsd/auto-dashboard.ts +29 -18
  367. package/src/resources/extensions/gsd/auto-model-selection.ts +9 -1
  368. package/src/resources/extensions/gsd/auto-prompts.ts +111 -33
  369. package/src/resources/extensions/gsd/auto-start.ts +41 -7
  370. package/src/resources/extensions/gsd/auto-tool-tracking.ts +1 -1
  371. package/src/resources/extensions/gsd/auto-worktree.ts +1 -1
  372. package/src/resources/extensions/gsd/auto.ts +72 -0
  373. package/src/resources/extensions/gsd/bootstrap/db-tools.ts +3 -3
  374. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +2 -0
  375. package/src/resources/extensions/gsd/bootstrap/register-shortcuts.ts +79 -60
  376. package/src/resources/extensions/gsd/bootstrap/system-context.ts +7 -0
  377. package/src/resources/extensions/gsd/commands/context.ts +16 -5
  378. package/src/resources/extensions/gsd/commands/dispatcher.ts +14 -2
  379. package/src/resources/extensions/gsd/commands/handlers/auto.ts +10 -36
  380. package/src/resources/extensions/gsd/commands/handlers/core.ts +58 -11
  381. package/src/resources/extensions/gsd/commands/handlers/notifications-handler.ts +17 -7
  382. package/src/resources/extensions/gsd/commands/handlers/workflow.ts +4 -10
  383. package/src/resources/extensions/gsd/dashboard-overlay.ts +10 -3
  384. package/src/resources/extensions/gsd/dispatch-guard.ts +18 -1
  385. package/src/resources/extensions/gsd/doctor-providers.ts +24 -0
  386. package/src/resources/extensions/gsd/error-classifier.ts +5 -2
  387. package/src/resources/extensions/gsd/forensics.ts +23 -7
  388. package/src/resources/extensions/gsd/gate-registry.ts +251 -0
  389. package/src/resources/extensions/gsd/gsd-db.ts +51 -0
  390. package/src/resources/extensions/gsd/guided-flow.ts +5 -10
  391. package/src/resources/extensions/gsd/interrupted-session.ts +1 -0
  392. package/src/resources/extensions/gsd/metrics.ts +12 -1
  393. package/src/resources/extensions/gsd/milestone-actions.ts +10 -3
  394. package/src/resources/extensions/gsd/milestone-validation-gates.ts +11 -13
  395. package/src/resources/extensions/gsd/notification-overlay.ts +47 -14
  396. package/src/resources/extensions/gsd/notification-store.ts +54 -5
  397. package/src/resources/extensions/gsd/notification-widget.ts +5 -14
  398. package/src/resources/extensions/gsd/parallel-monitor-overlay.ts +10 -3
  399. package/src/resources/extensions/gsd/pre-execution-checks.ts +39 -2
  400. package/src/resources/extensions/gsd/prompt-validation.ts +157 -0
  401. package/src/resources/extensions/gsd/prompts/complete-slice.md +5 -3
  402. package/src/resources/extensions/gsd/prompts/discuss.md +2 -0
  403. package/src/resources/extensions/gsd/prompts/execute-task.md +22 -19
  404. package/src/resources/extensions/gsd/prompts/guided-discuss-milestone.md +2 -0
  405. package/src/resources/extensions/gsd/prompts/guided-discuss-slice.md +2 -0
  406. package/src/resources/extensions/gsd/prompts/guided-resume-task.md +1 -1
  407. package/src/resources/extensions/gsd/prompts/queue.md +3 -2
  408. package/src/resources/extensions/gsd/prompts/system.md +1 -0
  409. package/src/resources/extensions/gsd/prompts/validate-milestone.md +4 -1
  410. package/src/resources/extensions/gsd/session-model-override.ts +36 -0
  411. package/src/resources/extensions/gsd/shortcut-defs.ts +56 -0
  412. package/src/resources/extensions/gsd/state.ts +13 -2
  413. package/src/resources/extensions/gsd/tests/auto-start-model-capture.test.ts +25 -9
  414. package/src/resources/extensions/gsd/tests/auto-start-worktree-db-path.test.ts +28 -0
  415. package/src/resources/extensions/gsd/tests/bootstrap-derive-state-db-open.test.ts +39 -0
  416. package/src/resources/extensions/gsd/tests/complete-slice-gate-closure.test.ts +167 -0
  417. package/src/resources/extensions/gsd/tests/complete-slice-prompt-task-summary-layout.test.ts +18 -0
  418. package/src/resources/extensions/gsd/tests/dispatch-guard.test.ts +27 -0
  419. package/src/resources/extensions/gsd/tests/doctor-providers.test.ts +36 -0
  420. package/src/resources/extensions/gsd/tests/execute-task-prompt-existing-artifact-guard.test.ts +33 -0
  421. package/src/resources/extensions/gsd/tests/forensics-stuck-loops.test.ts +62 -0
  422. package/src/resources/extensions/gsd/tests/format-shortcut.test.ts +31 -0
  423. package/src/resources/extensions/gsd/tests/gate-dispatch.test.ts +27 -0
  424. package/src/resources/extensions/gsd/tests/gate-registry.test.ts +140 -0
  425. package/src/resources/extensions/gsd/tests/gsd-no-project-error.test.ts +73 -0
  426. package/src/resources/extensions/gsd/tests/infra-errors-cooldown.test.ts +180 -0
  427. package/src/resources/extensions/gsd/tests/integration/auto-worktree-milestone-merge.test.ts +66 -1
  428. package/src/resources/extensions/gsd/tests/model-isolation.test.ts +36 -51
  429. package/src/resources/extensions/gsd/tests/notification-store.test.ts +35 -0
  430. package/src/resources/extensions/gsd/tests/notification-widget.test.ts +26 -0
  431. package/src/resources/extensions/gsd/tests/notifications-handler.test.ts +90 -0
  432. package/src/resources/extensions/gsd/tests/parallel-monitor-overlay.test.ts +1 -0
  433. package/src/resources/extensions/gsd/tests/park-db-sync.test.ts +18 -0
  434. package/src/resources/extensions/gsd/tests/pre-execution-checks.test.ts +49 -0
  435. package/src/resources/extensions/gsd/tests/prompt-contracts.test.ts +19 -0
  436. package/src/resources/extensions/gsd/tests/prompt-system-gate-coverage.test.ts +208 -0
  437. package/src/resources/extensions/gsd/tests/provider-errors.test.ts +16 -0
  438. package/src/resources/extensions/gsd/tests/register-shortcuts.test.ts +63 -5
  439. package/src/resources/extensions/gsd/tests/session-model-override.test.ts +35 -0
  440. package/src/resources/extensions/gsd/tests/start-auto-detached.test.ts +90 -0
  441. package/src/resources/extensions/gsd/tests/tool-invocation-error-loop-break.test.ts +7 -0
  442. package/src/resources/extensions/gsd/tests/validate-milestone-prompt-verification-classes.test.ts +18 -0
  443. package/src/resources/extensions/gsd/tools/complete-slice.ts +63 -0
  444. package/src/resources/extensions/gsd/tools/complete-task.ts +63 -0
  445. package/src/resources/extensions/gsd/tools/workflow-tool-executors.ts +4 -1
  446. package/src/resources/extensions/gsd/types.ts +26 -0
  447. package/src/resources/extensions/ollama/index.ts +13 -3
  448. package/src/resources/extensions/ollama/ollama-status-indicator.test.ts +28 -0
  449. package/src/resources/extensions/shared/gsd-phase-state.ts +42 -0
  450. package/src/resources/extensions/shared/tests/gsd-phase-state.test.ts +48 -0
  451. package/src/resources/extensions/subagent/agents.ts +10 -0
  452. package/src/resources/extensions/subagent/index.ts +18 -0
  453. package/src/resources/extensions/subagent/tests/agents-conflicts.test.ts +33 -0
  454. package/src/resources/skills/create-skill/SKILL.md +2 -0
  455. package/dist/web/standalone/.next/static/chunks/app/page-7115e62689b5fd84.js +0 -1
  456. package/dist/web/standalone/.next/static/chunks/main-app-d3d4c336195465f9.js +0 -1
  457. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-ab5a8926e07ec673.js +0 -1
  458. /package/dist/web/standalone/.next/static/{nPky_WQC28aBD77eZsRAB → f-Gremw0nLxxFUySaHRPw}/_buildManifest.js +0 -0
  459. /package/dist/web/standalone/.next/static/{nPky_WQC28aBD77eZsRAB → f-Gremw0nLxxFUySaHRPw}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=64,a.ids=[64],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{a.exports=require("os")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46193:a=>{a.exports=require("node:string_decoder")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66246:(a,b,c)=>{c.d(b,{q:()=>i});var d=c(73024),e=c(76760),f=c(7712);let g=new Set(["node_modules",".git"]);function h(a){try{let b=(0,d.readFileSync)((0,e.join)(a,".gsd","STATE.md"),"utf-8").split("\n"),c=null,f=null,g=null,h=0,i=0;for(let a of b){let b=a.trim();b.startsWith("**Active Milestone:**")?c=b.replace("**Active Milestone:**","").trim()||null:b.startsWith("**Active Slice:**")?f=b.replace("**Active Slice:**","").trim()||null:b.startsWith("**Phase:**")?g=b.replace("**Phase:**","").trim()||null:b.startsWith("- ✅")?(h++,i++):b.startsWith("- \uD83D\uDD04")&&i++}return{activeMilestone:c,activeSlice:f,phase:g,milestonesCompleted:h,milestonesTotal:i}}catch{return null}}function i(a,b){try{let c=(0,f.pA)(a);if(c.signals.isMonorepo){let f=(0,d.statSync)(a);return[{name:(0,e.basename)(a),path:a,kind:c.kind,signals:c.signals,lastModified:f.mtimeMs,...b?{progress:h(a)}:{}}]}let i=(0,d.readdirSync)(a,{withFileTypes:!0}),j=[];for(let c of i){if(!c.isDirectory()||c.name.startsWith(".")||g.has(c.name))continue;let i=(0,e.join)(a,c.name),{kind:k,signals:l}=(0,f.pA)(i),m=(0,d.statSync)(i);j.push({name:c.name,path:i,kind:k,signals:l,lastModified:m.mtimeMs,...b?{progress:h(i)}:{}})}return j.sort((a,b)=>a.name.localeCompare(b.name)),j}catch{return[]}}},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},86283:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>L,patchFetch:()=>K,routeModule:()=>G,serverHooks:()=>J,workAsyncStorage:()=>H,workUnitAsyncStorage:()=>I});var d={};c.r(d),c.d(d,{GET:()=>E,POST:()=>F,dynamic:()=>C,runtime:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(73024),w=c(48161),x=c(76760),y=c(31421),z=c(66246),A=c(7712);let B="nodejs",C="force-dynamic";function D(a){return"~"===a?(0,w.homedir)():a.startsWith("~/")?(0,x.join)((0,w.homedir)(),a.slice(2)):a}async function E(a){let b=new URL(a.url),c=b.searchParams.get("root");if(!c)return Response.json({error:"Missing ?root= parameter"},{status:400});let d="true"===b.searchParams.get("detail"),e=(0,z.q)(D(c),d);return Response.json(e,{headers:{"Cache-Control":"no-store"}})}async function F(a){try{let b=await a.json(),c="string"==typeof b.devRoot?b.devRoot.trim():"",d="string"==typeof b.name?b.name.trim():"";if(!c)return Response.json({error:"Missing devRoot"},{status:400});let e=D(c);if(!d)return Response.json({error:"Missing project name"},{status:400});if(!/^[a-zA-Z0-9][a-zA-Z0-9._-]*$/.test(d))return Response.json({error:"Invalid name. Use letters, numbers, hyphens, underscores, and dots. Must start with a letter or number."},{status:400});if(!(0,v.existsSync)(e))return Response.json({error:`Dev root does not exist: ${e}`},{status:400});let f=(0,x.join)(e,d);if((0,v.existsSync)(f))return Response.json({error:`Directory already exists: ${d}`},{status:409});(0,v.mkdirSync)(f,{recursive:!0}),(0,y.execSync)("git init",{cwd:f,stdio:"ignore"});let{kind:g,signals:h}=(0,A.pA)(f);return Response.json({name:d,path:f,kind:g,signals:h,lastModified:Date.now()},{status:201})}catch(a){return Response.json({error:`Failed to create project: ${a instanceof Error?a.message:String(a)}`},{status:500})}}let G=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/projects/route",pathname:"/api/projects",filename:"route",bundlePath:"app/api/projects/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/_work/gsd-2/gsd-2/web/app/api/projects/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:H,workUnitAsyncStorage:I,serverHooks:J}=G;function K(){return(0,g.patchFetch)({workAsyncStorage:H,workUnitAsyncStorage:I})}async function L(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),G.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/projects/route";"/index"===d&&(d="/");let e=await G.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D,clientReferenceManifest:E,serverActionsManifest:F}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[D]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||G.isDev||y||(K="/index"===(K=D)?"/":K);let L=!0===G.isDev||!I,M=I&&!L;F&&E&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:E,serverActionsManifest:F});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await G.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>G.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>G.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await G.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await G.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await G.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=86283));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=64,a.ids=[64],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16931:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>L,patchFetch:()=>K,routeModule:()=>G,serverHooks:()=>J,workAsyncStorage:()=>H,workUnitAsyncStorage:()=>I});var d={};c.r(d),c.d(d,{GET:()=>E,POST:()=>F,dynamic:()=>C,runtime:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(73024),w=c(48161),x=c(76760),y=c(31421),z=c(66246),A=c(7712);let B="nodejs",C="force-dynamic";function D(a){return"~"===a?(0,w.homedir)():a.startsWith("~/")?(0,x.join)((0,w.homedir)(),a.slice(2)):a}async function E(a){let b=new URL(a.url),c=b.searchParams.get("root");if(!c)return Response.json({error:"Missing ?root= parameter"},{status:400});let d="true"===b.searchParams.get("detail"),e=(0,z.q)(D(c),d);return Response.json(e,{headers:{"Cache-Control":"no-store"}})}async function F(a){try{let b=await a.json(),c="string"==typeof b.devRoot?b.devRoot.trim():"",d="string"==typeof b.name?b.name.trim():"";if(!c)return Response.json({error:"Missing devRoot"},{status:400});let e=D(c);if(!d)return Response.json({error:"Missing project name"},{status:400});if(!/^[a-zA-Z0-9][a-zA-Z0-9._-]*$/.test(d))return Response.json({error:"Invalid name. Use letters, numbers, hyphens, underscores, and dots. Must start with a letter or number."},{status:400});if(!(0,v.existsSync)(e))return Response.json({error:`Dev root does not exist: ${e}`},{status:400});let f=(0,x.join)(e,d);if((0,v.existsSync)(f))return Response.json({error:`Directory already exists: ${d}`},{status:409});(0,v.mkdirSync)(f,{recursive:!0}),(0,y.execSync)("git init",{cwd:f,stdio:"ignore"});let{kind:g,signals:h}=(0,A.pA)(f);return Response.json({name:d,path:f,kind:g,signals:h,lastModified:Date.now()},{status:201})}catch(a){return Response.json({error:`Failed to create project: ${a instanceof Error?a.message:String(a)}`},{status:500})}}let G=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/projects/route",pathname:"/api/projects",filename:"route",bundlePath:"app/api/projects/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/__w/gsd-2/gsd-2/web/app/api/projects/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:H,workUnitAsyncStorage:I,serverHooks:J}=G;function K(){return(0,g.patchFetch)({workAsyncStorage:H,workUnitAsyncStorage:I})}async function L(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),G.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/projects/route";"/index"===d&&(d="/");let e=await G.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D,clientReferenceManifest:E,serverActionsManifest:F}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[D]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||G.isDev||y||(K="/index"===(K=D)?"/":K);let L=!0===G.isDev||!I,M=I&&!L;F&&E&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:E,serverActionsManifest:F});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await G.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>G.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>G.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await G.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await G.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await G.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},21820:a=>{a.exports=require("os")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46193:a=>{a.exports=require("node:string_decoder")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66246:(a,b,c)=>{c.d(b,{q:()=>i});var d=c(73024),e=c(76760),f=c(7712);let g=new Set(["node_modules",".git"]);function h(a){try{let b=(0,d.readFileSync)((0,e.join)(a,".gsd","STATE.md"),"utf-8").split("\n"),c=null,f=null,g=null,h=0,i=0;for(let a of b){let b=a.trim();b.startsWith("**Active Milestone:**")?c=b.replace("**Active Milestone:**","").trim()||null:b.startsWith("**Active Slice:**")?f=b.replace("**Active Slice:**","").trim()||null:b.startsWith("**Phase:**")?g=b.replace("**Phase:**","").trim()||null:b.startsWith("- ✅")?(h++,i++):b.startsWith("- \uD83D\uDD04")&&i++}return{activeMilestone:c,activeSlice:f,phase:g,milestonesCompleted:h,milestonesTotal:i}}catch{return null}}function i(a,b){try{let c=(0,f.pA)(a);if(c.signals.isMonorepo){let f=(0,d.statSync)(a);return[{name:(0,e.basename)(a),path:a,kind:c.kind,signals:c.signals,lastModified:f.mtimeMs,...b?{progress:h(a)}:{}}]}let i=(0,d.readdirSync)(a,{withFileTypes:!0}),j=[];for(let c of i){if(!c.isDirectory()||c.name.startsWith(".")||g.has(c.name))continue;let i=(0,e.join)(a,c.name),{kind:k,signals:l}=(0,f.pA)(i),m=(0,d.statSync)(i);j.push({name:c.name,path:i,kind:k,signals:l,lastModified:m.mtimeMs,...b?{progress:h(i)}:{}})}return j.sort((a,b)=>a.name.localeCompare(b.name)),j}catch{return[]}}},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=16931));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/projects/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/_work/gsd-2/gsd-2/web/app/api/projects/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/projects/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/__w/gsd-2/gsd-2/web/app/api/projects/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=6851,a.ids=[6851],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{a.exports=require("os")},26310:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>O,patchFetch:()=>N,routeModule:()=>J,serverHooks:()=>M,workAsyncStorage:()=>K,workUnitAsyncStorage:()=>L});var d={};c.r(d),c.d(d,{GET:()=>I,dynamic:()=>H,runtime:()=>G});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(31421),w=c(73024),x=c(76760),y=c(73136),z=c(7712),A=c(34431);function B(a){return(a instanceof Error?a.message:String(a??"")).replace(/sk-[A-Za-z0-9_-]{6,}/g,"[redacted]").replace(/xox[baprs]-[A-Za-z0-9-]+/g,"[redacted]").replace(/Bearer\s+[^\s]+/gi,"Bearer [redacted]").replace(/([A-Z0-9_]*(?:API[_-]?KEY|TOKEN|SECRET)["'=:\s]+)([^\s,;"']+)/gi,"$1[redacted]").replace(/\s+/g," ").trim()}function C(a){return a?.active.milestoneId?a.active.taskId&&a.active.sliceId?`${a.active.milestoneId}/${a.active.sliceId}/${a.active.taskId}`:a.active.sliceId?`${a.active.milestoneId}/${a.active.sliceId}`:a.active.milestoneId:null}function D(a){return{code:a.code,severity:a.severity,scope:a.scope,message:B(a.message),file:a.file,suggestion:a.suggestion?B(a.suggestion):void 0,unitId:a.unitId}}async function E(a,b,c,d,e,f){let g=f.env??process.env,h=f.existsSync??w.existsSync,i=(0,x.join)(a,"src","resources","extensions","gsd","tests","resolve-ts.mjs"),j=(0,A.KW)(a,"resources/extensions/gsd/doctor.ts",h),k=(0,A.KW)(a,"resources/extensions/gsd/session-forensics.ts",h),l=j.modulePath,m=k.modulePath;if(!j.useCompiledJs&&(!h(i)||!h(l)||!h(m)))throw Error(`recovery diagnostics providers not found; checked=${i},${l},${m}`);if(j.useCompiledJs&&(!h(l)||!h(m)))throw Error(`recovery diagnostics providers not found; checked=${l},${m}`);let n=(0,A.vB)(a,j,(0,y.pathToFileURL)(i).href);return await new Promise((h,i)=>{(0,v.execFile)(f.execPath??process.execPath,[...n,"--eval",'const { pathToFileURL } = await import("node:url"); const doctor = await import(pathToFileURL(process.env.GSD_RECOVERY_DOCTOR_MODULE).href); const forensics = await import(pathToFileURL(process.env.GSD_RECOVERY_FORENSICS_MODULE).href); const basePath = process.env.GSD_RECOVERY_BASE; const scope = process.env.GSD_RECOVERY_SCOPE || undefined; const unitType = process.env.GSD_RECOVERY_UNIT_TYPE || "execute-project"; const unitId = process.env.GSD_RECOVERY_UNIT_ID || "project"; const sessionFile = process.env.GSD_RECOVERY_SESSION_FILE || undefined; const activityDir = process.env.GSD_RECOVERY_ACTIVITY_DIR || undefined; const report = await doctor.runGSDDoctor(basePath, { fix: false, scope, fixLevel: "task" }); const summary = doctor.summarizeDoctorIssues(report.issues); const briefing = forensics.synthesizeCrashRecovery(basePath, unitType, unitId, sessionFile, activityDir); const trace = briefing?.trace; const available = Boolean(sessionFile || trace?.toolCallCount || briefing?.gitChanges); const detected = Boolean((trace?.toolCallCount ?? 0) > 0 || (trace?.errors?.length ?? 0) > 0 || (trace?.commandsRun?.length ?? 0) > 0 || (trace?.filesWritten?.length ?? 0) > 0 || briefing?.gitChanges); const interruptedRun = available ? detected ? { available: true, detected: true, label: "Interrupted-run recovery available", detail: "Recent session forensics captured unfinished work or errors that may need resume or retry follow-up.", unit: { type: briefing?.unitType ?? unitType, id: briefing?.unitId ?? unitId }, counts: { toolCalls: trace?.toolCallCount ?? 0, filesWritten: trace?.filesWritten?.length ?? 0, commandsRun: trace?.commandsRun?.length ?? 0, errors: trace?.errors?.length ?? 0, }, gitChangesDetected: Boolean(briefing?.gitChanges), lastError: trace?.errors?.at(-1) ?? null, } : { available: true, detected: false, label: "Session forensics available", detail: "A current-project session was inspected, but it did not show unfinished tool or error activity.", unit: { type: briefing?.unitType ?? unitType, id: briefing?.unitId ?? unitId }, counts: { toolCalls: trace?.toolCallCount ?? 0, filesWritten: trace?.filesWritten?.length ?? 0, commandsRun: trace?.commandsRun?.length ?? 0, errors: trace?.errors?.length ?? 0, }, gitChangesDetected: Boolean(briefing?.gitChanges), lastError: trace?.errors?.at(-1) ?? null, } : { available: false, detected: false, label: "No interrupted-run evidence", detail: "No current-project session or activity log is available for interrupted-run forensics yet.", unit: null, counts: { toolCalls: 0, filesWritten: 0, commandsRun: 0, errors: 0 }, gitChangesDetected: false, lastError: null, }; process.stdout.write(JSON.stringify({ doctor: { scope: scope ?? null, total: summary.total, errors: summary.errors, warnings: summary.warnings, infos: summary.infos, fixable: summary.fixable, codes: summary.byCode, topIssues: report.issues.slice(0, 6).map((issue) => ({ code: issue.code, severity: issue.severity, scope: issue.scope, message: issue.message, file: issue.file, unitId: issue.unitId, })), }, interruptedRun, }));'],{cwd:a,env:{...g,GSD_RECOVERY_BASE:b,GSD_RECOVERY_SCOPE:c??"",GSD_RECOVERY_UNIT_TYPE:d?.type??"execute-project",GSD_RECOVERY_UNIT_ID:d?.id??"project",GSD_RECOVERY_SESSION_FILE:e??"",GSD_RECOVERY_ACTIVITY_DIR:(0,x.join)(b,".gsd","activity"),GSD_RECOVERY_DOCTOR_MODULE:l,GSD_RECOVERY_FORENSICS_MODULE:m},maxBuffer:1048576,windowsHide:!0},(a,b,c)=>{if(a)return void i(Error(`recovery diagnostics subprocess failed: ${c||a.message}`));try{h(JSON.parse(b))}catch(a){i(Error(`recovery diagnostics subprocess returned invalid JSON: ${a instanceof Error?a.message:String(a)}`))}})})}async function F(a={},b){var c,d,e,f;let g,h,i,j,k;a.env??process.env;let l=(0,z.eG)(a.env,b),[{bridge:m,workspace:n,resumableSessions:o},p]=await Promise.all([(0,z.yd)(["workspace","resumable_sessions"],b),(0,z.tL)(b)]),q=o??[],r=C(n),s=(g=C(n))?n?.active.taskId?{type:"execute-task",id:g}:n?.active.sliceId?{type:"execute-slice",id:g}:{type:"execute-milestone",id:g}:null,t=function(a,b){if(!a)return b[0]?.path??null;let c=(0,x.resolve)(a),d=b.find(a=>(0,x.resolve)(a.path)===c);return d?d.path:b[0]?.path??a}(m.activeSessionFile,q),u=function(a,b,c){if(!b)return a??null;let d=(0,x.resolve)(b);return c.find(a=>(0,x.resolve)(a.path)===d)?.id??a??null}(m.activeSessionId,t,q),v=await E(l.packageRoot,l.projectCwd,r,s,t,a),w=(n?.validationIssues??[]).map(a=>({code:a.ruleId??"unknown_validation_issue",severity:a.severity??"warning",scope:a.scope??"workspace",message:B(a.message??"Validation issue"),file:a.file,suggestion:a.suggestion?B(a.suggestion):void 0})),y=w.reduce((a,b)=>({errors:a.errors+Number("error"===b.severity),warnings:a.warnings+Number("warning"===b.severity),infos:a.infos+Number("info"===b.severity)}),{errors:0,warnings:0,infos:0}),A=function(a){let b=new Map,c={info:0,warning:1,error:2};for(let d of a){let a=b.get(d.code);if(!a){b.set(d.code,{count:1,severity:d.severity});continue}b.set(d.code,{count:a.count+1,severity:c[d.severity]>c[a.severity]?d.severity:a.severity})}return[...b.entries()].map(([a,b])=>({code:a,count:b.count,label:a.replace(/[_-]+/g," ").replace(/\b\w/g,a=>a.toUpperCase()),severity:b.severity})).sort((a,b)=>b.count-a.count||a.code.localeCompare(b.code))}(w),G=v.doctor.topIssues.map(D),H={...v.interruptedRun,label:B(v.interruptedRun.label),detail:B(v.interruptedRun.detail),lastError:v.interruptedRun.lastError?B(v.interruptedRun.lastError):null},I=m.lastError?{message:B(m.lastError.message),phase:m.lastError.phase,at:m.lastError.at,commandType:m.lastError.commandType??null,afterSessionAttachment:m.lastError.afterSessionAttachment}:null,J=p.bridgeAuthRefresh.phase,K=p.bridgeAuthRefresh.error?B(p.bridgeAuthRefresh.error):null,L=I||"failed"===J||w.length>0||v.doctor.total>0||H.available||q.length>0||m.sessionState?.retryInProgress||m.sessionState?.isCompacting?"ready":"unavailable",M=s?.id??r,N=(c={status:L,validationCount:w.length,validationErrors:y.errors,doctorTotal:v.doctor.total,doctorErrors:v.doctor.errors,retryAttempt:m.sessionState?.retryAttempt??0,retryInProgress:!!m.sessionState?.retryInProgress,compactionActive:!!m.sessionState?.isCompacting,currentUnitId:M??null,lastFailurePhase:"failed"===J?"bridge_auth_refresh":I?.phase??null,bridgeFailureMessage:I?.message??null,authFailureMessage:"failed"===J?K:null,interruptedRunDetected:H.detected,interruptedRunDetail:H.detail}).authFailureMessage?{tone:"danger",label:"Bridge auth refresh failed",detail:c.authFailureMessage}:c.bridgeFailureMessage?{tone:"danger",label:c.lastFailurePhase?`Bridge recovery failed during ${c.lastFailurePhase}`:"Bridge recovery failed",detail:c.bridgeFailureMessage}:c.doctorErrors>0||c.validationErrors>0?{tone:"danger",label:`Recovery blockers detected (${c.doctorErrors+c.validationErrors})`,detail:`Doctor and validation surfaced blocking issues for ${c.currentUnitId??"the current project"}.`}:c.retryInProgress?{tone:"warning",label:`Retry attempt ${Math.max(1,c.retryAttempt)} is active`,detail:"The bridge is retrying work right now; inspect retry controls before issuing more recovery actions."}:c.compactionActive?{tone:"warning",label:"Compaction is active",detail:"The live session is compacting context before work continues."}:c.validationCount>0||c.doctorTotal>0?{tone:"warning",label:`Recovery diagnostics found ${c.validationCount+c.doctorTotal} actionable issue${c.validationCount+c.doctorTotal===1?"":"s"}`,detail:`Review the doctor and validation sections below before resuming work on ${c.currentUnitId??"the current project"}.`}:c.interruptedRunDetected?{tone:"warning",label:"Interrupted-run evidence is available",detail:c.interruptedRunDetail}:"unavailable"===c.status?{tone:"healthy",label:"Recovery diagnostics unavailable",detail:"No current-project recovery evidence has been captured yet. Start or resume a session to populate diagnostics."}:{tone:"healthy",label:"Recovery diagnostics healthy",detail:"No bridge, validation, doctor, or interrupted-run recovery issues are currently active."};return{status:L,loadedAt:new Date().toISOString(),project:{cwd:l.projectCwd,activeScope:r,activeSessionPath:t,activeSessionId:u},summary:{tone:N.tone,label:N.label,detail:N.detail,validationCount:w.length,doctorIssueCount:v.doctor.total,lastFailurePhase:"failed"===J?"bridge_auth_refresh":I?.phase??null,currentUnitId:M??null,retryAttempt:m.sessionState?.retryAttempt??0,retryInProgress:!!m.sessionState?.retryInProgress,compactionActive:!!m.sessionState?.isCompacting},bridge:{phase:m.phase,retry:{enabled:!!m.sessionState?.autoRetryEnabled,inProgress:!!m.sessionState?.retryInProgress,attempt:m.sessionState?.retryAttempt??0,label:m.sessionState?.retryInProgress?`Attempt ${Math.max(1,m.sessionState?.retryAttempt??0)}`:m.sessionState?.autoRetryEnabled?"Enabled":"Disabled"},compaction:{active:!!m.sessionState?.isCompacting,label:m.sessionState?.isCompacting?"Compaction active":"Compaction idle"},lastFailure:I,authRefresh:{phase:J,error:K,label:"failed"===J?"Bridge auth refresh failed":"pending"===J?"Bridge auth refresh pending":"succeeded"===J?"Bridge auth refresh succeeded":"Bridge auth refresh idle"}},validation:{total:w.length,bySeverity:y,codes:A,topIssues:w.slice(0,6)},doctor:{scope:v.doctor.scope,total:v.doctor.total,errors:v.doctor.errors,warnings:v.doctor.warnings,infos:v.doctor.infos,fixable:v.doctor.fixable,codes:v.doctor.codes,topIssues:G},interruptedRun:H,actions:{browser:(d={hasSessions:q.length>0,retryActive:!!m.sessionState?.retryInProgress,autoRetryEnabled:!!m.sessionState?.autoRetryEnabled,bridgeFailure:!!I,compactionActive:!!m.sessionState?.isCompacting,authAttentionNeeded:p.locked||"failed"===J||p.lastValidation?.status==="failed"},h=new Map,(i=a=>{h.set(a.id,a)})({id:"refresh_diagnostics",label:"Refresh diagnostics",detail:"Reload the on-demand recovery route without refreshing the entire workspace.",emphasis:"primary"}),i({id:"refresh_workspace",label:"Refresh workspace",detail:"Run one soft workspace refresh so the browser re-syncs boot, bridge, and onboarding state."}),(d.retryActive||d.autoRetryEnabled||d.bridgeFailure||d.compactionActive)&&i({id:"open_retry_controls",label:"Open retry controls",detail:"Inspect or change live retry and compaction controls on the authoritative browser surface."}),d.hasSessions&&i({id:"open_resume_controls",label:"Open resume controls",detail:"Switch to another current-project session if recovery should continue elsewhere."}),d.authAttentionNeeded&&i({id:"open_auth_controls",label:"Open auth controls",detail:"Inspect provider setup and bridge auth refresh failures from the shared browser surface.",emphasis:"danger"}),[...h.values()]),commands:(e=n?.active.phase,f=w.length,j=new Map,k=(a,b)=>{j.has(a)||j.set(a,{command:a,label:b})},"planning"===e&&k("/gsd","Open GSD planning"),("executing"===e||"summarizing"===e)&&k("/gsd auto","Resume GSD auto mode"),r&&k(`/gsd doctor ${r}`,"Inspect scoped doctor report"),r&&k(`/gsd doctor fix ${r}`,"Apply scoped doctor fixes"),f>0&&r&&k(`/gsd doctor audit ${r}`,"Audit validation diagnostics"),k("/gsd status","Check current-project status"),[...j.values()])}}}let G="nodejs",H="force-dynamic";async function I(a){try{let b=(0,z.jL)(a),c=await F(void 0,b);return Response.json(c,{headers:{"Cache-Control":"no-store"}})}catch(b){let a=b instanceof Error?b.message:String(b);return Response.json({error:a},{status:500,headers:{"Cache-Control":"no-store"}})}}let J=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/recovery/route",pathname:"/api/recovery",filename:"route",bundlePath:"app/api/recovery/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/_work/gsd-2/gsd-2/web/app/api/recovery/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:K,workUnitAsyncStorage:L,serverHooks:M}=J;function N(){return(0,g.patchFetch)({workAsyncStorage:K,workUnitAsyncStorage:L})}async function O(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),J.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/recovery/route";"/index"===d&&(d="/");let e=await J.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D,clientReferenceManifest:E,serverActionsManifest:F}=e,G=(0,k.normalizeAppPath)(d),H=!!(z.dynamicRoutes[G]||z.routes[D]),I=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(H&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[G];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await I();throw new t.NoFallbackError}}let K=null;!H||J.isDev||y||(K="/index"===(K=D)?"/":K);let L=!0===J.isDev||!H,M=H&&!L;F&&E&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:E,serverActionsManifest:F});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await J.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>J.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>J.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!H)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await J.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await J.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!H)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&H||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await J.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),H)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46193:a=>{a.exports=require("node:string_decoder")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=26310));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=6851,a.ids=[6851],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{a.exports=require("os")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46193:a=>{a.exports=require("node:string_decoder")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},88864:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>O,patchFetch:()=>N,routeModule:()=>J,serverHooks:()=>M,workAsyncStorage:()=>K,workUnitAsyncStorage:()=>L});var d={};c.r(d),c.d(d,{GET:()=>I,dynamic:()=>H,runtime:()=>G});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(31421),w=c(73024),x=c(76760),y=c(73136),z=c(7712),A=c(34431);function B(a){return(a instanceof Error?a.message:String(a??"")).replace(/sk-[A-Za-z0-9_-]{6,}/g,"[redacted]").replace(/xox[baprs]-[A-Za-z0-9-]+/g,"[redacted]").replace(/Bearer\s+[^\s]+/gi,"Bearer [redacted]").replace(/([A-Z0-9_]*(?:API[_-]?KEY|TOKEN|SECRET)["'=:\s]+)([^\s,;"']+)/gi,"$1[redacted]").replace(/\s+/g," ").trim()}function C(a){return a?.active.milestoneId?a.active.taskId&&a.active.sliceId?`${a.active.milestoneId}/${a.active.sliceId}/${a.active.taskId}`:a.active.sliceId?`${a.active.milestoneId}/${a.active.sliceId}`:a.active.milestoneId:null}function D(a){return{code:a.code,severity:a.severity,scope:a.scope,message:B(a.message),file:a.file,suggestion:a.suggestion?B(a.suggestion):void 0,unitId:a.unitId}}async function E(a,b,c,d,e,f){let g=f.env??process.env,h=f.existsSync??w.existsSync,i=(0,x.join)(a,"src","resources","extensions","gsd","tests","resolve-ts.mjs"),j=(0,A.KW)(a,"resources/extensions/gsd/doctor.ts",h),k=(0,A.KW)(a,"resources/extensions/gsd/session-forensics.ts",h),l=j.modulePath,m=k.modulePath;if(!j.useCompiledJs&&(!h(i)||!h(l)||!h(m)))throw Error(`recovery diagnostics providers not found; checked=${i},${l},${m}`);if(j.useCompiledJs&&(!h(l)||!h(m)))throw Error(`recovery diagnostics providers not found; checked=${l},${m}`);let n=(0,A.vB)(a,j,(0,y.pathToFileURL)(i).href);return await new Promise((h,i)=>{(0,v.execFile)(f.execPath??process.execPath,[...n,"--eval",'const { pathToFileURL } = await import("node:url"); const doctor = await import(pathToFileURL(process.env.GSD_RECOVERY_DOCTOR_MODULE).href); const forensics = await import(pathToFileURL(process.env.GSD_RECOVERY_FORENSICS_MODULE).href); const basePath = process.env.GSD_RECOVERY_BASE; const scope = process.env.GSD_RECOVERY_SCOPE || undefined; const unitType = process.env.GSD_RECOVERY_UNIT_TYPE || "execute-project"; const unitId = process.env.GSD_RECOVERY_UNIT_ID || "project"; const sessionFile = process.env.GSD_RECOVERY_SESSION_FILE || undefined; const activityDir = process.env.GSD_RECOVERY_ACTIVITY_DIR || undefined; const report = await doctor.runGSDDoctor(basePath, { fix: false, scope, fixLevel: "task" }); const summary = doctor.summarizeDoctorIssues(report.issues); const briefing = forensics.synthesizeCrashRecovery(basePath, unitType, unitId, sessionFile, activityDir); const trace = briefing?.trace; const available = Boolean(sessionFile || trace?.toolCallCount || briefing?.gitChanges); const detected = Boolean((trace?.toolCallCount ?? 0) > 0 || (trace?.errors?.length ?? 0) > 0 || (trace?.commandsRun?.length ?? 0) > 0 || (trace?.filesWritten?.length ?? 0) > 0 || briefing?.gitChanges); const interruptedRun = available ? detected ? { available: true, detected: true, label: "Interrupted-run recovery available", detail: "Recent session forensics captured unfinished work or errors that may need resume or retry follow-up.", unit: { type: briefing?.unitType ?? unitType, id: briefing?.unitId ?? unitId }, counts: { toolCalls: trace?.toolCallCount ?? 0, filesWritten: trace?.filesWritten?.length ?? 0, commandsRun: trace?.commandsRun?.length ?? 0, errors: trace?.errors?.length ?? 0, }, gitChangesDetected: Boolean(briefing?.gitChanges), lastError: trace?.errors?.at(-1) ?? null, } : { available: true, detected: false, label: "Session forensics available", detail: "A current-project session was inspected, but it did not show unfinished tool or error activity.", unit: { type: briefing?.unitType ?? unitType, id: briefing?.unitId ?? unitId }, counts: { toolCalls: trace?.toolCallCount ?? 0, filesWritten: trace?.filesWritten?.length ?? 0, commandsRun: trace?.commandsRun?.length ?? 0, errors: trace?.errors?.length ?? 0, }, gitChangesDetected: Boolean(briefing?.gitChanges), lastError: trace?.errors?.at(-1) ?? null, } : { available: false, detected: false, label: "No interrupted-run evidence", detail: "No current-project session or activity log is available for interrupted-run forensics yet.", unit: null, counts: { toolCalls: 0, filesWritten: 0, commandsRun: 0, errors: 0 }, gitChangesDetected: false, lastError: null, }; process.stdout.write(JSON.stringify({ doctor: { scope: scope ?? null, total: summary.total, errors: summary.errors, warnings: summary.warnings, infos: summary.infos, fixable: summary.fixable, codes: summary.byCode, topIssues: report.issues.slice(0, 6).map((issue) => ({ code: issue.code, severity: issue.severity, scope: issue.scope, message: issue.message, file: issue.file, unitId: issue.unitId, })), }, interruptedRun, }));'],{cwd:a,env:{...g,GSD_RECOVERY_BASE:b,GSD_RECOVERY_SCOPE:c??"",GSD_RECOVERY_UNIT_TYPE:d?.type??"execute-project",GSD_RECOVERY_UNIT_ID:d?.id??"project",GSD_RECOVERY_SESSION_FILE:e??"",GSD_RECOVERY_ACTIVITY_DIR:(0,x.join)(b,".gsd","activity"),GSD_RECOVERY_DOCTOR_MODULE:l,GSD_RECOVERY_FORENSICS_MODULE:m},maxBuffer:1048576,windowsHide:!0},(a,b,c)=>{if(a)return void i(Error(`recovery diagnostics subprocess failed: ${c||a.message}`));try{h(JSON.parse(b))}catch(a){i(Error(`recovery diagnostics subprocess returned invalid JSON: ${a instanceof Error?a.message:String(a)}`))}})})}async function F(a={},b){var c,d,e,f;let g,h,i,j,k;a.env??process.env;let l=(0,z.eG)(a.env,b),[{bridge:m,workspace:n,resumableSessions:o},p]=await Promise.all([(0,z.yd)(["workspace","resumable_sessions"],b),(0,z.tL)(b)]),q=o??[],r=C(n),s=(g=C(n))?n?.active.taskId?{type:"execute-task",id:g}:n?.active.sliceId?{type:"execute-slice",id:g}:{type:"execute-milestone",id:g}:null,t=function(a,b){if(!a)return b[0]?.path??null;let c=(0,x.resolve)(a),d=b.find(a=>(0,x.resolve)(a.path)===c);return d?d.path:b[0]?.path??a}(m.activeSessionFile,q),u=function(a,b,c){if(!b)return a??null;let d=(0,x.resolve)(b);return c.find(a=>(0,x.resolve)(a.path)===d)?.id??a??null}(m.activeSessionId,t,q),v=await E(l.packageRoot,l.projectCwd,r,s,t,a),w=(n?.validationIssues??[]).map(a=>({code:a.ruleId??"unknown_validation_issue",severity:a.severity??"warning",scope:a.scope??"workspace",message:B(a.message??"Validation issue"),file:a.file,suggestion:a.suggestion?B(a.suggestion):void 0})),y=w.reduce((a,b)=>({errors:a.errors+Number("error"===b.severity),warnings:a.warnings+Number("warning"===b.severity),infos:a.infos+Number("info"===b.severity)}),{errors:0,warnings:0,infos:0}),A=function(a){let b=new Map,c={info:0,warning:1,error:2};for(let d of a){let a=b.get(d.code);if(!a){b.set(d.code,{count:1,severity:d.severity});continue}b.set(d.code,{count:a.count+1,severity:c[d.severity]>c[a.severity]?d.severity:a.severity})}return[...b.entries()].map(([a,b])=>({code:a,count:b.count,label:a.replace(/[_-]+/g," ").replace(/\b\w/g,a=>a.toUpperCase()),severity:b.severity})).sort((a,b)=>b.count-a.count||a.code.localeCompare(b.code))}(w),G=v.doctor.topIssues.map(D),H={...v.interruptedRun,label:B(v.interruptedRun.label),detail:B(v.interruptedRun.detail),lastError:v.interruptedRun.lastError?B(v.interruptedRun.lastError):null},I=m.lastError?{message:B(m.lastError.message),phase:m.lastError.phase,at:m.lastError.at,commandType:m.lastError.commandType??null,afterSessionAttachment:m.lastError.afterSessionAttachment}:null,J=p.bridgeAuthRefresh.phase,K=p.bridgeAuthRefresh.error?B(p.bridgeAuthRefresh.error):null,L=I||"failed"===J||w.length>0||v.doctor.total>0||H.available||q.length>0||m.sessionState?.retryInProgress||m.sessionState?.isCompacting?"ready":"unavailable",M=s?.id??r,N=(c={status:L,validationCount:w.length,validationErrors:y.errors,doctorTotal:v.doctor.total,doctorErrors:v.doctor.errors,retryAttempt:m.sessionState?.retryAttempt??0,retryInProgress:!!m.sessionState?.retryInProgress,compactionActive:!!m.sessionState?.isCompacting,currentUnitId:M??null,lastFailurePhase:"failed"===J?"bridge_auth_refresh":I?.phase??null,bridgeFailureMessage:I?.message??null,authFailureMessage:"failed"===J?K:null,interruptedRunDetected:H.detected,interruptedRunDetail:H.detail}).authFailureMessage?{tone:"danger",label:"Bridge auth refresh failed",detail:c.authFailureMessage}:c.bridgeFailureMessage?{tone:"danger",label:c.lastFailurePhase?`Bridge recovery failed during ${c.lastFailurePhase}`:"Bridge recovery failed",detail:c.bridgeFailureMessage}:c.doctorErrors>0||c.validationErrors>0?{tone:"danger",label:`Recovery blockers detected (${c.doctorErrors+c.validationErrors})`,detail:`Doctor and validation surfaced blocking issues for ${c.currentUnitId??"the current project"}.`}:c.retryInProgress?{tone:"warning",label:`Retry attempt ${Math.max(1,c.retryAttempt)} is active`,detail:"The bridge is retrying work right now; inspect retry controls before issuing more recovery actions."}:c.compactionActive?{tone:"warning",label:"Compaction is active",detail:"The live session is compacting context before work continues."}:c.validationCount>0||c.doctorTotal>0?{tone:"warning",label:`Recovery diagnostics found ${c.validationCount+c.doctorTotal} actionable issue${c.validationCount+c.doctorTotal===1?"":"s"}`,detail:`Review the doctor and validation sections below before resuming work on ${c.currentUnitId??"the current project"}.`}:c.interruptedRunDetected?{tone:"warning",label:"Interrupted-run evidence is available",detail:c.interruptedRunDetail}:"unavailable"===c.status?{tone:"healthy",label:"Recovery diagnostics unavailable",detail:"No current-project recovery evidence has been captured yet. Start or resume a session to populate diagnostics."}:{tone:"healthy",label:"Recovery diagnostics healthy",detail:"No bridge, validation, doctor, or interrupted-run recovery issues are currently active."};return{status:L,loadedAt:new Date().toISOString(),project:{cwd:l.projectCwd,activeScope:r,activeSessionPath:t,activeSessionId:u},summary:{tone:N.tone,label:N.label,detail:N.detail,validationCount:w.length,doctorIssueCount:v.doctor.total,lastFailurePhase:"failed"===J?"bridge_auth_refresh":I?.phase??null,currentUnitId:M??null,retryAttempt:m.sessionState?.retryAttempt??0,retryInProgress:!!m.sessionState?.retryInProgress,compactionActive:!!m.sessionState?.isCompacting},bridge:{phase:m.phase,retry:{enabled:!!m.sessionState?.autoRetryEnabled,inProgress:!!m.sessionState?.retryInProgress,attempt:m.sessionState?.retryAttempt??0,label:m.sessionState?.retryInProgress?`Attempt ${Math.max(1,m.sessionState?.retryAttempt??0)}`:m.sessionState?.autoRetryEnabled?"Enabled":"Disabled"},compaction:{active:!!m.sessionState?.isCompacting,label:m.sessionState?.isCompacting?"Compaction active":"Compaction idle"},lastFailure:I,authRefresh:{phase:J,error:K,label:"failed"===J?"Bridge auth refresh failed":"pending"===J?"Bridge auth refresh pending":"succeeded"===J?"Bridge auth refresh succeeded":"Bridge auth refresh idle"}},validation:{total:w.length,bySeverity:y,codes:A,topIssues:w.slice(0,6)},doctor:{scope:v.doctor.scope,total:v.doctor.total,errors:v.doctor.errors,warnings:v.doctor.warnings,infos:v.doctor.infos,fixable:v.doctor.fixable,codes:v.doctor.codes,topIssues:G},interruptedRun:H,actions:{browser:(d={hasSessions:q.length>0,retryActive:!!m.sessionState?.retryInProgress,autoRetryEnabled:!!m.sessionState?.autoRetryEnabled,bridgeFailure:!!I,compactionActive:!!m.sessionState?.isCompacting,authAttentionNeeded:p.locked||"failed"===J||p.lastValidation?.status==="failed"},h=new Map,(i=a=>{h.set(a.id,a)})({id:"refresh_diagnostics",label:"Refresh diagnostics",detail:"Reload the on-demand recovery route without refreshing the entire workspace.",emphasis:"primary"}),i({id:"refresh_workspace",label:"Refresh workspace",detail:"Run one soft workspace refresh so the browser re-syncs boot, bridge, and onboarding state."}),(d.retryActive||d.autoRetryEnabled||d.bridgeFailure||d.compactionActive)&&i({id:"open_retry_controls",label:"Open retry controls",detail:"Inspect or change live retry and compaction controls on the authoritative browser surface."}),d.hasSessions&&i({id:"open_resume_controls",label:"Open resume controls",detail:"Switch to another current-project session if recovery should continue elsewhere."}),d.authAttentionNeeded&&i({id:"open_auth_controls",label:"Open auth controls",detail:"Inspect provider setup and bridge auth refresh failures from the shared browser surface.",emphasis:"danger"}),[...h.values()]),commands:(e=n?.active.phase,f=w.length,j=new Map,k=(a,b)=>{j.has(a)||j.set(a,{command:a,label:b})},"planning"===e&&k("/gsd","Open GSD planning"),("executing"===e||"summarizing"===e)&&k("/gsd auto","Resume GSD auto mode"),r&&k(`/gsd doctor ${r}`,"Inspect scoped doctor report"),r&&k(`/gsd doctor fix ${r}`,"Apply scoped doctor fixes"),f>0&&r&&k(`/gsd doctor audit ${r}`,"Audit validation diagnostics"),k("/gsd status","Check current-project status"),[...j.values()])}}}let G="nodejs",H="force-dynamic";async function I(a){try{let b=(0,z.jL)(a),c=await F(void 0,b);return Response.json(c,{headers:{"Cache-Control":"no-store"}})}catch(b){let a=b instanceof Error?b.message:String(b);return Response.json({error:a},{status:500,headers:{"Cache-Control":"no-store"}})}}let J=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/recovery/route",pathname:"/api/recovery",filename:"route",bundlePath:"app/api/recovery/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/__w/gsd-2/gsd-2/web/app/api/recovery/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:K,workUnitAsyncStorage:L,serverHooks:M}=J;function N(){return(0,g.patchFetch)({workAsyncStorage:K,workUnitAsyncStorage:L})}async function O(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),J.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/recovery/route";"/index"===d&&(d="/");let e=await J.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D,clientReferenceManifest:E,serverActionsManifest:F}=e,G=(0,k.normalizeAppPath)(d),H=!!(z.dynamicRoutes[G]||z.routes[D]),I=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(H&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[G];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await I();throw new t.NoFallbackError}}let K=null;!H||J.isDev||y||(K="/index"===(K=D)?"/":K);let L=!0===J.isDev||!H,M=H&&!L;F&&E&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:E,serverActionsManifest:F});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await J.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>J.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>J.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!H)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await J.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await J.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!H)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&H||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await J.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),H)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=88864));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/recovery/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/_work/gsd-2/gsd-2/web/app/api/recovery/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/recovery/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/__w/gsd-2/gsd-2/web/app/api/recovery/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1,3 +1,3 @@
1
- (()=>{var a={};a.id=3788,a.ids=[3788],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19771:a=>{"use strict";a.exports=require("process")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70083:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>V,patchFetch:()=>U,routeModule:()=>Q,serverHooks:()=>T,workAsyncStorage:()=>R,workUnitAsyncStorage:()=>S});var d={};c.r(d),c.d(d,{DELETE:()=>O,GET:()=>M,PATCH:()=>P,POST:()=>N,dynamic:()=>A,runtime:()=>z});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(48161),w=c(73024),x=c(76760),y=c(69784);let z="nodejs",A="force-dynamic",B={slack:/^[A-Z0-9]{9,12}$/,discord:/^\d{17,20}$/,telegram:/^-?\d{5,20}$/},C={slack:"SLACK_BOT_TOKEN",discord:"DISCORD_BOT_TOKEN",telegram:"TELEGRAM_BOT_TOKEN"},D=["slack","discord","telegram"],E={slack:"slack_bot",discord:"discord_bot",telegram:"telegram_bot"};function F(){return(0,x.join)((0,v.homedir)(),".gsd","agent","auth.json")}function G(){let a=F();if(!(0,w.existsSync)(a))return{};try{let b=(0,w.readFileSync)(a,"utf-8"),c=JSON.parse(b);return"object"==typeof c&&null!==c?c:{}}catch{return{}}}function H(){return(0,x.join)((0,v.homedir)(),".gsd","PREFERENCES.md")}function I(a,b,c,d){return Math.max(c,Math.min(d,"number"==typeof a&&Number.isFinite(a)?a:b))}function J(a){return"string"==typeof a&&D.includes(a)}function K(a){let b=a.startsWith("---\r\n")?"---\r\n":"---\n";if(!a.startsWith(b))return{data:{},body:a,hasFrontmatter:!1};let c=b.length,d=a.indexOf("\n---",c);if(-1===d)return{data:{},body:a,hasFrontmatter:!1};let e=a.slice(c,d),f=a.slice(d+4);try{let a=(0,y.qg)(e.replace(/\r/g,""));return{data:"object"==typeof a&&null!==a?a:{},body:f,hasFrontmatter:!0}}catch{return{data:{},body:a,hasFrontmatter:!1}}}function L(a,b){let c=(0,y.As)(a,{lineWidth:0}).trimEnd();return`---
1
+ (()=>{var a={};a.id=3788,a.ids=[3788],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},2991:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>V,patchFetch:()=>U,routeModule:()=>Q,serverHooks:()=>T,workAsyncStorage:()=>R,workUnitAsyncStorage:()=>S});var d={};c.r(d),c.d(d,{DELETE:()=>O,GET:()=>M,PATCH:()=>P,POST:()=>N,dynamic:()=>A,runtime:()=>z});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(48161),w=c(73024),x=c(76760),y=c(69784);let z="nodejs",A="force-dynamic",B={slack:/^[A-Z0-9]{9,12}$/,discord:/^\d{17,20}$/,telegram:/^-?\d{5,20}$/},C={slack:"SLACK_BOT_TOKEN",discord:"DISCORD_BOT_TOKEN",telegram:"TELEGRAM_BOT_TOKEN"},D=["slack","discord","telegram"],E={slack:"slack_bot",discord:"discord_bot",telegram:"telegram_bot"};function F(){return(0,x.join)((0,v.homedir)(),".gsd","agent","auth.json")}function G(){let a=F();if(!(0,w.existsSync)(a))return{};try{let b=(0,w.readFileSync)(a,"utf-8"),c=JSON.parse(b);return"object"==typeof c&&null!==c?c:{}}catch{return{}}}function H(){return(0,x.join)((0,v.homedir)(),".gsd","PREFERENCES.md")}function I(a,b,c,d){return Math.max(c,Math.min(d,"number"==typeof a&&Number.isFinite(a)?a:b))}function J(a){return"string"==typeof a&&D.includes(a)}function K(a){let b=a.startsWith("---\r\n")?"---\r\n":"---\n";if(!a.startsWith(b))return{data:{},body:a,hasFrontmatter:!1};let c=b.length,d=a.indexOf("\n---",c);if(-1===d)return{data:{},body:a,hasFrontmatter:!1};let e=a.slice(c,d),f=a.slice(d+4);try{let a=(0,y.qg)(e.replace(/\r/g,""));return{data:"object"==typeof a&&null!==a?a:{},body:f,hasFrontmatter:!0}}catch{return{data:{},body:a,hasFrontmatter:!1}}}function L(a,b){let c=(0,y.As)(a,{lineWidth:0}).trimEnd();return`---
2
2
  ${c}
3
- ---${b}`}async function M(){try{let a,b=H();if(!(0,w.existsSync)(b))return Response.json({config:null,envVarSet:!1,tokenSet:!1,envVarName:null,status:"not_configured"},{headers:{"Cache-Control":"no-store"}});let c=(0,w.readFileSync)(b,"utf-8"),{data:d}=K(c),e=d.remote_questions;if(!e||"object"!=typeof e||!e.channel)return Response.json({config:null,envVarSet:!1,tokenSet:!1,envVarName:null,status:"not_configured"},{headers:{"Cache-Control":"no-store"}});let f=e.channel;if(!J(f))return Response.json({config:null,envVarSet:!1,tokenSet:!1,envVarName:null,status:"invalid_channel"},{headers:{"Cache-Control":"no-store"}});let g=null!=e.channel_id?String(e.channel_id):"",h=I(e.timeout_minutes,5,1,30),i=I(e.poll_interval_seconds,5,2,30),j=C[f],k=!!process.env[j],l=!!(a=G()[E[f]])&&(Array.isArray(a)?a:[a]).some(a=>"object"==typeof a&&null!==a&&"api_key"===a.type&&"string"==typeof a.key&&a.key.length>0)||k;return Response.json({config:{channel:f,channelId:g,timeoutMinutes:h,pollIntervalSeconds:i},envVarSet:k,tokenSet:l,envVarName:j,status:"configured"},{headers:{"Cache-Control":"no-store"}})}catch(b){let a=b instanceof Error?b.message:String(b);return Response.json({error:`Failed to read remote questions config: ${a}`},{status:500,headers:{"Cache-Control":"no-store"}})}}async function N(a){try{let{channel:b,channelId:c,timeoutMinutes:d,pollIntervalSeconds:e}=await a.json();if(!J(b))return Response.json({error:`Invalid channel type: must be one of ${D.join(", ")}`},{status:400,headers:{"Cache-Control":"no-store"}});if("string"!=typeof c||!c)return Response.json({error:"channelId is required and must be a non-empty string"},{status:400,headers:{"Cache-Control":"no-store"}});if(!B[b].test(c))return Response.json({error:`Invalid channel ID format for ${b}. Expected pattern: ${B[b].source}`},{status:400,headers:{"Cache-Control":"no-store"}});let f=I(d,5,1,30),g=I(e,5,2,30),h=H(),i={},j="";if((0,w.existsSync)(h)){let a=(0,w.readFileSync)(h,"utf-8"),b=K(a);i=b.data,j=b.body}i.remote_questions={channel:b,channel_id:c,timeout_minutes:f,poll_interval_seconds:g};let k=(0,x.dirname)(h);return(0,w.existsSync)(k)||(0,w.mkdirSync)(k,{recursive:!0}),(0,w.writeFileSync)(h,L(i,j),"utf-8"),Response.json({success:!0,config:{channel:b,channelId:c,timeoutMinutes:f,pollIntervalSeconds:g}},{headers:{"Cache-Control":"no-store"}})}catch(b){let a=b instanceof Error?b.message:String(b);return Response.json({error:`Failed to save remote questions config: ${a}`},{status:500,headers:{"Cache-Control":"no-store"}})}}async function O(){try{let a=H();if(!(0,w.existsSync)(a))return Response.json({success:!0},{headers:{"Cache-Control":"no-store"}});let b=(0,w.readFileSync)(a,"utf-8"),{data:c,body:d,hasFrontmatter:e}=K(b);if(!e||!c.remote_questions)return Response.json({success:!0},{headers:{"Cache-Control":"no-store"}});return delete c.remote_questions,(0,w.writeFileSync)(a,L(c,d),"utf-8"),Response.json({success:!0},{headers:{"Cache-Control":"no-store"}})}catch(b){let a=b instanceof Error?b.message:String(b);return Response.json({error:`Failed to remove remote questions config: ${a}`},{status:500,headers:{"Cache-Control":"no-store"}})}}async function P(a){try{let b,c,{channel:d,token:e}=await a.json();if(!J(d))return Response.json({error:`Invalid channel type: must be one of ${D.join(", ")}`},{status:400,headers:{"Cache-Control":"no-store"}});if("string"!=typeof e||!e.trim())return Response.json({error:"token is required and must be a non-empty string"},{status:400,headers:{"Cache-Control":"no-store"}});let f=e.trim(),g=E[d],h=G(),i=h[g],j=[...(i?Array.isArray(i)?i:[i]:[]).filter(a=>"object"==typeof a&&null!==a&&"oauth"===a.type),{type:"api_key",key:f}];h[g]=1===j.length?j[0]:j,b=F(),c=(0,x.dirname)(b),(0,w.existsSync)(c)||(0,w.mkdirSync)(c,{recursive:!0,mode:448}),(0,w.writeFileSync)(b,JSON.stringify(h,null,2),"utf-8"),(0,w.chmodSync)(b,384);let k=C[d];return process.env[k]=f,Response.json({success:!0,masked:f.length<=8?f.slice(0,2)+"***"+f.slice(-2):f.slice(0,4)+"***"+f.slice(-4)},{headers:{"Cache-Control":"no-store"}})}catch(b){let a=b instanceof Error?b.message:String(b);return Response.json({error:`Failed to save bot token: ${a}`},{status:500,headers:{"Cache-Control":"no-store"}})}}let Q=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/remote-questions/route",pathname:"/api/remote-questions",filename:"route",bundlePath:"app/api/remote-questions/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/_work/gsd-2/gsd-2/web/app/api/remote-questions/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:R,workUnitAsyncStorage:S,serverHooks:T}=Q;function U(){return(0,g.patchFetch)({workAsyncStorage:R,workUnitAsyncStorage:S})}async function V(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),Q.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/remote-questions/route";"/index"===d&&(d="/");let e=await Q.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D,clientReferenceManifest:E,serverActionsManifest:F}=e,G=(0,k.normalizeAppPath)(d),H=!!(z.dynamicRoutes[G]||z.routes[D]),I=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(H&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[G];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await I();throw new t.NoFallbackError}}let J=null;!H||Q.isDev||y||(J="/index"===(J=D)?"/":J);let K=!0===Q.isDev||!H,L=H&&!K;F&&E&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:E,serverActionsManifest:F});let M=a.method||"GET",N=(0,i.getTracer)(),O=N.getActiveScopeSpan(),P=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await Q.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:K,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>Q.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>Q.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=N.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${M} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${M} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!H)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await Q.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:L,isOnDemandRevalidate:B})},!1,A),b}},k=await Q.handleResponse({req:a,nextConfig:w,cacheKey:J,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!H)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&H||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};P&&O?await h(O):(e=N.getActiveScopeSpan(),await N.withPropagatedContext(a.headers,()=>N.trace(n.BaseServerSpan.handleRequest,{spanName:`${M} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":M,"http.target":a.url}},h),void 0,!P))}catch(b){if(b instanceof t.NoFallbackError||await Q.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:L,isOnDemandRevalidate:B})},!1,A),H)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},73024:a=>{"use strict";a.exports=require("node:fs")},76760:a=>{"use strict";a.exports=require("node:path")},78335:()=>{},79428:a=>{"use strict";a.exports=require("buffer")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,2331],()=>b(b.s=70083));module.exports=c})();
3
+ ---${b}`}async function M(){try{let a,b=H();if(!(0,w.existsSync)(b))return Response.json({config:null,envVarSet:!1,tokenSet:!1,envVarName:null,status:"not_configured"},{headers:{"Cache-Control":"no-store"}});let c=(0,w.readFileSync)(b,"utf-8"),{data:d}=K(c),e=d.remote_questions;if(!e||"object"!=typeof e||!e.channel)return Response.json({config:null,envVarSet:!1,tokenSet:!1,envVarName:null,status:"not_configured"},{headers:{"Cache-Control":"no-store"}});let f=e.channel;if(!J(f))return Response.json({config:null,envVarSet:!1,tokenSet:!1,envVarName:null,status:"invalid_channel"},{headers:{"Cache-Control":"no-store"}});let g=null!=e.channel_id?String(e.channel_id):"",h=I(e.timeout_minutes,5,1,30),i=I(e.poll_interval_seconds,5,2,30),j=C[f],k=!!process.env[j],l=!!(a=G()[E[f]])&&(Array.isArray(a)?a:[a]).some(a=>"object"==typeof a&&null!==a&&"api_key"===a.type&&"string"==typeof a.key&&a.key.length>0)||k;return Response.json({config:{channel:f,channelId:g,timeoutMinutes:h,pollIntervalSeconds:i},envVarSet:k,tokenSet:l,envVarName:j,status:"configured"},{headers:{"Cache-Control":"no-store"}})}catch(b){let a=b instanceof Error?b.message:String(b);return Response.json({error:`Failed to read remote questions config: ${a}`},{status:500,headers:{"Cache-Control":"no-store"}})}}async function N(a){try{let{channel:b,channelId:c,timeoutMinutes:d,pollIntervalSeconds:e}=await a.json();if(!J(b))return Response.json({error:`Invalid channel type: must be one of ${D.join(", ")}`},{status:400,headers:{"Cache-Control":"no-store"}});if("string"!=typeof c||!c)return Response.json({error:"channelId is required and must be a non-empty string"},{status:400,headers:{"Cache-Control":"no-store"}});if(!B[b].test(c))return Response.json({error:`Invalid channel ID format for ${b}. Expected pattern: ${B[b].source}`},{status:400,headers:{"Cache-Control":"no-store"}});let f=I(d,5,1,30),g=I(e,5,2,30),h=H(),i={},j="";if((0,w.existsSync)(h)){let a=(0,w.readFileSync)(h,"utf-8"),b=K(a);i=b.data,j=b.body}i.remote_questions={channel:b,channel_id:c,timeout_minutes:f,poll_interval_seconds:g};let k=(0,x.dirname)(h);return(0,w.existsSync)(k)||(0,w.mkdirSync)(k,{recursive:!0}),(0,w.writeFileSync)(h,L(i,j),"utf-8"),Response.json({success:!0,config:{channel:b,channelId:c,timeoutMinutes:f,pollIntervalSeconds:g}},{headers:{"Cache-Control":"no-store"}})}catch(b){let a=b instanceof Error?b.message:String(b);return Response.json({error:`Failed to save remote questions config: ${a}`},{status:500,headers:{"Cache-Control":"no-store"}})}}async function O(){try{let a=H();if(!(0,w.existsSync)(a))return Response.json({success:!0},{headers:{"Cache-Control":"no-store"}});let b=(0,w.readFileSync)(a,"utf-8"),{data:c,body:d,hasFrontmatter:e}=K(b);if(!e||!c.remote_questions)return Response.json({success:!0},{headers:{"Cache-Control":"no-store"}});return delete c.remote_questions,(0,w.writeFileSync)(a,L(c,d),"utf-8"),Response.json({success:!0},{headers:{"Cache-Control":"no-store"}})}catch(b){let a=b instanceof Error?b.message:String(b);return Response.json({error:`Failed to remove remote questions config: ${a}`},{status:500,headers:{"Cache-Control":"no-store"}})}}async function P(a){try{let b,c,{channel:d,token:e}=await a.json();if(!J(d))return Response.json({error:`Invalid channel type: must be one of ${D.join(", ")}`},{status:400,headers:{"Cache-Control":"no-store"}});if("string"!=typeof e||!e.trim())return Response.json({error:"token is required and must be a non-empty string"},{status:400,headers:{"Cache-Control":"no-store"}});let f=e.trim(),g=E[d],h=G(),i=h[g],j=[...(i?Array.isArray(i)?i:[i]:[]).filter(a=>"object"==typeof a&&null!==a&&"oauth"===a.type),{type:"api_key",key:f}];h[g]=1===j.length?j[0]:j,b=F(),c=(0,x.dirname)(b),(0,w.existsSync)(c)||(0,w.mkdirSync)(c,{recursive:!0,mode:448}),(0,w.writeFileSync)(b,JSON.stringify(h,null,2),"utf-8"),(0,w.chmodSync)(b,384);let k=C[d];return process.env[k]=f,Response.json({success:!0,masked:f.length<=8?f.slice(0,2)+"***"+f.slice(-2):f.slice(0,4)+"***"+f.slice(-4)},{headers:{"Cache-Control":"no-store"}})}catch(b){let a=b instanceof Error?b.message:String(b);return Response.json({error:`Failed to save bot token: ${a}`},{status:500,headers:{"Cache-Control":"no-store"}})}}let Q=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/remote-questions/route",pathname:"/api/remote-questions",filename:"route",bundlePath:"app/api/remote-questions/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/__w/gsd-2/gsd-2/web/app/api/remote-questions/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:R,workUnitAsyncStorage:S,serverHooks:T}=Q;function U(){return(0,g.patchFetch)({workAsyncStorage:R,workUnitAsyncStorage:S})}async function V(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),Q.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/remote-questions/route";"/index"===d&&(d="/");let e=await Q.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D,clientReferenceManifest:E,serverActionsManifest:F}=e,G=(0,k.normalizeAppPath)(d),H=!!(z.dynamicRoutes[G]||z.routes[D]),I=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(H&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[G];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await I();throw new t.NoFallbackError}}let J=null;!H||Q.isDev||y||(J="/index"===(J=D)?"/":J);let K=!0===Q.isDev||!H,L=H&&!K;F&&E&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:E,serverActionsManifest:F});let M=a.method||"GET",N=(0,i.getTracer)(),O=N.getActiveScopeSpan(),P=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await Q.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:K,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>Q.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>Q.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=N.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${M} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${M} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!H)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await Q.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:L,isOnDemandRevalidate:B})},!1,A),b}},k=await Q.handleResponse({req:a,nextConfig:w,cacheKey:J,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!H)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&H||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};P&&O?await h(O):(e=N.getActiveScopeSpan(),await N.withPropagatedContext(a.headers,()=>N.trace(n.BaseServerSpan.handleRequest,{spanName:`${M} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":M,"http.target":a.url}},h),void 0,!P))}catch(b){if(b instanceof t.NoFallbackError||await Q.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:L,isOnDemandRevalidate:B})},!1,A),H)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19771:a=>{"use strict";a.exports=require("process")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{"use strict";a.exports=require("node:fs")},76760:a=>{"use strict";a.exports=require("node:path")},78335:()=>{},79428:a=>{"use strict";a.exports=require("buffer")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,2331],()=>b(b.s=2991));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/remote-questions/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/_work/gsd-2/gsd-2/web/app/api/remote-questions/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/remote-questions/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/__w/gsd-2/gsd-2/web/app/api/remote-questions/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=975,a.ids=[975],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{a.exports=require("os")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46193:a=>{a.exports=require("node:string_decoder")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},72840:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{GET:()=>A,dynamic:()=>y,runtime:()=>x});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(7712),w=c(36460);let x="nodejs",y="force-dynamic";function z(a){return Response.json({error:a},{status:400,headers:{"Cache-Control":"no-store"}})}async function A(a){let{searchParams:b}=new URL(a.url),c=b.get("sortMode"),d=b.get("nameFilter");if(null!==c&&!(0,w.ql)(c))return z(`Invalid sortMode: ${c}`);if(null!==d&&!(0,w.AL)(d))return z(`Invalid nameFilter: ${d}`);let e=(0,v.jL)(a),f=await (0,v.tS)({query:b.get("query")??void 0,sortMode:c??void 0,nameFilter:d??void 0},e);return Response.json(f,{headers:{"Cache-Control":"no-store"}})}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/session/browser/route",pathname:"/api/session/browser",filename:"route",bundlePath:"app/api/session/browser/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/_work/gsd-2/gsd-2/web/app/api/session/browser/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/session/browser/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||B.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===B.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),b}},k=await B.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=72840));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=975,a.ids=[975],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{a.exports=require("os")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46193:a=>{a.exports=require("node:string_decoder")},48161:a=>{a.exports=require("node:os")},55361:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{GET:()=>A,dynamic:()=>y,runtime:()=>x});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(7712),w=c(36460);let x="nodejs",y="force-dynamic";function z(a){return Response.json({error:a},{status:400,headers:{"Cache-Control":"no-store"}})}async function A(a){let{searchParams:b}=new URL(a.url),c=b.get("sortMode"),d=b.get("nameFilter");if(null!==c&&!(0,w.ql)(c))return z(`Invalid sortMode: ${c}`);if(null!==d&&!(0,w.AL)(d))return z(`Invalid nameFilter: ${d}`);let e=(0,v.jL)(a),f=await (0,v.tS)({query:b.get("query")??void 0,sortMode:c??void 0,nameFilter:d??void 0},e);return Response.json(f,{headers:{"Cache-Control":"no-store"}})}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/session/browser/route",pathname:"/api/session/browser",filename:"route",bundlePath:"app/api/session/browser/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/__w/gsd-2/gsd-2/web/app/api/session/browser/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/session/browser/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||B.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===B.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),b}},k=await B.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=55361));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/session/browser/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/_work/gsd-2/gsd-2/web/app/api/session/browser/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/session/browser/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/__w/gsd-2/gsd-2/web/app/api/session/browser/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=5676,a.ids=[5676],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11916:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{POST:()=>y,dynamic:()=>x,runtime:()=>w});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(7712);let w="nodejs",x="force-dynamic";async function y(a){var b;let c;try{c=await a.json()}catch(a){return Response.json((0,v.xD)("parse",a),{status:400})}if("object"!=typeof(b=c)||null===b||"string"!=typeof b.type)return Response.json((0,v.xD)("parse","Request body must be a JSON object with a type field"),{status:400});try{let b=(0,v.jL)(a),d=await (0,v.sM)(c,b);if(null===d)return Response.json({ok:!0},{status:202});return Response.json(d,{status:d.success?200:"onboarding_locked"===d.code?423:502,headers:{"Cache-Control":"no-store"}})}catch(a){return Response.json((0,v.xD)(c.type,a),{status:503})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/session/command/route",pathname:"/api/session/command",filename:"route",bundlePath:"app/api/session/command/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/_work/gsd-2/gsd-2/web/app/api/session/command/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/session/command/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},21820:a=>{a.exports=require("os")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46193:a=>{a.exports=require("node:string_decoder")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=11916));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=5676,a.ids=[5676],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{a.exports=require("os")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46193:a=>{a.exports=require("node:string_decoder")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},85747:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{POST:()=>y,dynamic:()=>x,runtime:()=>w});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(7712);let w="nodejs",x="force-dynamic";async function y(a){var b;let c;try{c=await a.json()}catch(a){return Response.json((0,v.xD)("parse",a),{status:400})}if("object"!=typeof(b=c)||null===b||"string"!=typeof b.type)return Response.json((0,v.xD)("parse","Request body must be a JSON object with a type field"),{status:400});try{let b=(0,v.jL)(a),d=await (0,v.sM)(c,b);if(null===d)return Response.json({ok:!0},{status:202});return Response.json(d,{status:d.success?200:"onboarding_locked"===d.code?423:502,headers:{"Cache-Control":"no-store"}})}catch(a){return Response.json((0,v.xD)(c.type,a),{status:503})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/session/command/route",pathname:"/api/session/command",filename:"route",bundlePath:"app/api/session/command/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/__w/gsd-2/gsd-2/web/app/api/session/command/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/session/command/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=85747));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/session/command/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/_work/gsd-2/gsd-2/web/app/api/session/command/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/session/command/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/__w/gsd-2/gsd-2/web/app/api/session/command/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1,3 +1,3 @@
1
- "use strict";(()=>{var a={};a.id=6366,a.ids=[6366],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},18714:(a,b,c)=>{c.d(b,{UU:()=>e,tO:()=>f});let d=null;function e(){"1"!==process.env.GSD_WEB_DAEMON_MODE&&(null!==d&&clearTimeout(d),d=setTimeout(()=>{d=null,process.exit(0)},3e3))}function f(){null!==d&&(clearTimeout(d),d=null)}},21820:a=>{a.exports=require("os")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46193:a=>{a.exports=require("node:string_decoder")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},95058:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{GET:()=>A,dynamic:()=>y,runtime:()=>x});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(7712),w=c(18714);let x="nodejs",y="force-dynamic",z=new TextEncoder;async function A(a){(0,w.tO)();let b=(0,v.jL)(a),c=(0,v.tl)(b);if((await (0,v.tL)(b)).locked)return new Response(null,{status:204,headers:{"Cache-Control":"no-store"}});try{await c.ensureStarted()}catch{}let d=null,e=!1;return new Response(new ReadableStream({start(b){d=c.subscribe(a=>{!e&&b.enqueue(z.encode(`data: ${JSON.stringify(a)}
1
+ "use strict";(()=>{var a={};a.id=6366,a.ids=[6366],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},18086:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{GET:()=>A,dynamic:()=>y,runtime:()=>x});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(7712),w=c(18714);let x="nodejs",y="force-dynamic",z=new TextEncoder;async function A(a){(0,w.tO)();let b=(0,v.jL)(a),c=(0,v.tl)(b);if((await (0,v.tL)(b)).locked)return new Response(null,{status:204,headers:{"Cache-Control":"no-store"}});try{await c.ensureStarted()}catch{}let d=null,e=!1;return new Response(new ReadableStream({start(b){d=c.subscribe(a=>{!e&&b.enqueue(z.encode(`data: ${JSON.stringify(a)}
2
2
 
3
- `))}),a.signal.addEventListener("abort",()=>{!e&&(e=!0,d?.(),d=null,b.close())},{once:!0})},cancel(){e||(e=!0,d?.(),d=null)}}),{headers:{"Content-Type":"text/event-stream; charset=utf-8","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}})}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/session/events/route",pathname:"/api/session/events",filename:"route",bundlePath:"app/api/session/events/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/_work/gsd-2/gsd-2/web/app/api/session/events/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/session/events/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||B.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===B.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),b}},k=await B.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=95058));module.exports=c})();
3
+ `))}),a.signal.addEventListener("abort",()=>{!e&&(e=!0,d?.(),d=null,b.close())},{once:!0})},cancel(){e||(e=!0,d?.(),d=null)}}),{headers:{"Content-Type":"text/event-stream; charset=utf-8","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}})}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/session/events/route",pathname:"/api/session/events",filename:"route",bundlePath:"app/api/session/events/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/__w/gsd-2/gsd-2/web/app/api/session/events/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/session/events/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||B.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===B.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),b}},k=await B.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},18714:(a,b,c)=>{c.d(b,{UU:()=>e,tO:()=>f});let d=null;function e(){"1"!==process.env.GSD_WEB_DAEMON_MODE&&(null!==d&&clearTimeout(d),d=setTimeout(()=>{d=null,process.exit(0)},3e3))}function f(){null!==d&&(clearTimeout(d),d=null)}},21820:a=>{a.exports=require("os")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46193:a=>{a.exports=require("node:string_decoder")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=18086));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/session/events/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/_work/gsd-2/gsd-2/web/app/api/session/events/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/session/events/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/__w/gsd-2/gsd-2/web/app/api/session/events/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=7584,a.ids=[7584],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{a.exports=require("os")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46193:a=>{a.exports=require("node:string_decoder")},46454:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>H,patchFetch:()=>G,routeModule:()=>C,serverHooks:()=>F,workAsyncStorage:()=>D,workUnitAsyncStorage:()=>E});var d={};c.r(d),c.d(d,{POST:()=>B,dynamic:()=>y,runtime:()=>x});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(7712),w=c(36460);let x="nodejs",y="force-dynamic";function z(a){return{success:!1,action:"rename",scope:w.PO,code:"invalid_request",error:a}}function A(a){if(a.success)return 200;switch(a.code){case"invalid_request":return 400;case"not_found":return 404;case"onboarding_locked":return 423;default:return 502}}async function B(a){var b;let c;try{c=await a.json()}catch(b){let a=z(b instanceof Error?b.message:String(b));return Response.json(a,{status:A(a),headers:{"Cache-Control":"no-store"}})}if(!("object"==typeof(b=c)&&null!==b&&(0,w._B)(b.action)&&"string"==typeof b.sessionPath&&"string"==typeof b.name)){let a=z("Request body must be a rename action with sessionPath and name");return Response.json(a,{status:A(a),headers:{"Cache-Control":"no-store"}})}let d=(0,v.jL)(a),e=await (0,v.Os)(c,d);return Response.json(e,{status:A(e),headers:{"Cache-Control":"no-store"}})}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/session/manage/route",pathname:"/api/session/manage",filename:"route",bundlePath:"app/api/session/manage/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/_work/gsd-2/gsd-2/web/app/api/session/manage/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:D,workUnitAsyncStorage:E,serverHooks:F}=C;function G(){return(0,g.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:E})}async function H(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),C.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/session/manage/route";"/index"===d&&(d="/");let e=await C.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||C.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===C.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await C.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>C.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>C.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await C.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await C.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await C.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=46454));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=7584,a.ids=[7584],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{a.exports=require("os")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46193:a=>{a.exports=require("node:string_decoder")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96541:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>H,patchFetch:()=>G,routeModule:()=>C,serverHooks:()=>F,workAsyncStorage:()=>D,workUnitAsyncStorage:()=>E});var d={};c.r(d),c.d(d,{POST:()=>B,dynamic:()=>y,runtime:()=>x});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(7712),w=c(36460);let x="nodejs",y="force-dynamic";function z(a){return{success:!1,action:"rename",scope:w.PO,code:"invalid_request",error:a}}function A(a){if(a.success)return 200;switch(a.code){case"invalid_request":return 400;case"not_found":return 404;case"onboarding_locked":return 423;default:return 502}}async function B(a){var b;let c;try{c=await a.json()}catch(b){let a=z(b instanceof Error?b.message:String(b));return Response.json(a,{status:A(a),headers:{"Cache-Control":"no-store"}})}if(!("object"==typeof(b=c)&&null!==b&&(0,w._B)(b.action)&&"string"==typeof b.sessionPath&&"string"==typeof b.name)){let a=z("Request body must be a rename action with sessionPath and name");return Response.json(a,{status:A(a),headers:{"Cache-Control":"no-store"}})}let d=(0,v.jL)(a),e=await (0,v.Os)(c,d);return Response.json(e,{status:A(e),headers:{"Cache-Control":"no-store"}})}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/session/manage/route",pathname:"/api/session/manage",filename:"route",bundlePath:"app/api/session/manage/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/__w/gsd-2/gsd-2/web/app/api/session/manage/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:D,workUnitAsyncStorage:E,serverHooks:F}=C;function G(){return(0,g.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:E})}async function H(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),C.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/session/manage/route";"/index"===d&&(d="/");let e=await C.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||C.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===C.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await C.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>C.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>C.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await C.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await C.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await C.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=96541));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/session/manage/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/_work/gsd-2/gsd-2/web/app/api/session/manage/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/session/manage/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/__w/gsd-2/gsd-2/web/app/api/session/manage/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=8966,a.ids=[8966],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{a.exports=require("os")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46193:a=>{a.exports=require("node:string_decoder")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},95195:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>K,patchFetch:()=>J,routeModule:()=>F,serverHooks:()=>I,workAsyncStorage:()=>G,workUnitAsyncStorage:()=>H});var d={};c.r(d),c.d(d,{GET:()=>E,dynamic:()=>D,runtime:()=>C});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(31421),w=c(73024),x=c(76760),y=c(73136),z=c(7712),A=c(34431);async function B(a){let{packageRoot:b,projectCwd:c}=(0,z.eG)(void 0,a),d=(0,x.join)(b,"src","resources","extensions","gsd","tests","resolve-ts.mjs"),e=(0,A.KW)(b,"resources/extensions/gsd/preferences.ts"),f=(0,A.KW)(b,"resources/extensions/gsd/model-router.ts"),g=(0,A.KW)(b,"resources/extensions/gsd/context-budget.ts"),h=(0,A.KW)(b,"resources/extensions/gsd/routing-history.ts"),i=(0,A.KW)(b,"resources/extensions/gsd/metrics.ts"),j=e.modulePath,k=f.modulePath,l=g.modulePath,m=h.modulePath,n=i.modulePath;if(e.useCompiledJs){for(let a of[j,k,l,m,n])if(!(0,w.existsSync)(a))throw Error(`settings data provider not found; missing=${a}`)}else for(let a of[d,j,k,l,m,n])if(!(0,w.existsSync)(a))throw Error(`settings data provider not found; missing=${a}`);let o=(0,A.vB)(b,e,(0,y.pathToFileURL)(d).href);return await new Promise((a,d)=>{(0,v.execFile)(process.execPath,[...o,"--eval",'const { pathToFileURL } = await import("node:url"); const prefsMod = await import(pathToFileURL(process.env.GSD_SETTINGS_PREFS_MODULE).href); const routerMod = await import(pathToFileURL(process.env.GSD_SETTINGS_ROUTER_MODULE).href); const budgetMod = await import(pathToFileURL(process.env.GSD_SETTINGS_BUDGET_MODULE).href); const historyMod = await import(pathToFileURL(process.env.GSD_SETTINGS_HISTORY_MODULE).href); const metricsMod = await import(pathToFileURL(process.env.GSD_SETTINGS_METRICS_MODULE).href); const loaded = prefsMod.loadEffectiveGSDPreferences(); let preferences = null; if (loaded) { const p = loaded.preferences; const models = {}; if (p.models && typeof p.models === "object") { for (const [phase, value] of Object.entries(p.models)) { if (typeof value === "string") { models[phase] = value; continue; } if (value && typeof value === "object" && typeof value.model === "string") { models[phase] = typeof value.provider === "string" && value.provider && !value.model.includes("/") ? `${value.provider}/${value.model}` : value.model; } } } preferences = { mode: p.mode, models: Object.keys(models).length > 0 ? models : undefined, budgetCeiling: p.budget_ceiling, budgetEnforcement: p.budget_enforcement, tokenProfile: p.token_profile, dynamicRouting: p.dynamic_routing, customInstructions: p.custom_instructions, alwaysUseSkills: p.always_use_skills, preferSkills: p.prefer_skills, avoidSkills: p.avoid_skills, autoSupervisor: p.auto_supervisor ? { enabled: true, softTimeoutMinutes: p.auto_supervisor.soft_timeout_minutes, } : undefined, uatDispatch: p.uat_dispatch, autoVisualize: p.auto_visualize, remoteQuestions: p.remote_questions ? { channel: p.remote_questions.channel, channelId: String(p.remote_questions.channel_id), timeoutMinutes: p.remote_questions.timeout_minutes, pollIntervalSeconds: p.remote_questions.poll_interval_seconds, } : undefined, scope: loaded.scope, path: loaded.path, warnings: loaded.warnings, experimental: p.experimental ? { rtk: p.experimental.rtk } : undefined, }; } const routingConfig = prefsMod.resolveDynamicRoutingConfig(); const budgetAllocation = budgetMod.computeBudgets(200000); historyMod.initRoutingHistory(process.env.GSD_SETTINGS_BASE); const routingHistory = historyMod.getRoutingHistory(); const ledger = metricsMod.loadLedgerFromDisk(process.env.GSD_SETTINGS_BASE); const projectTotals = ledger ? metricsMod.getProjectTotals(ledger.units) : null; process.stdout.write(JSON.stringify({ preferences, routingConfig, budgetAllocation, routingHistory, projectTotals }));'],{cwd:b,env:{...process.env,GSD_SETTINGS_PREFS_MODULE:j,GSD_SETTINGS_ROUTER_MODULE:k,GSD_SETTINGS_BUDGET_MODULE:l,GSD_SETTINGS_HISTORY_MODULE:m,GSD_SETTINGS_METRICS_MODULE:n,GSD_SETTINGS_BASE:c},maxBuffer:2097152,windowsHide:!0},(b,c,e)=>{if(b)return void d(Error(`settings data subprocess failed: ${e||b.message}`));try{a(JSON.parse(c))}catch(a){d(Error(`settings data subprocess returned invalid JSON: ${a instanceof Error?a.message:String(a)}`))}})})}let C="nodejs",D="force-dynamic";async function E(a){try{let b=(0,z.jL)(a),c=await B(b);return Response.json(c,{headers:{"Cache-Control":"no-store"}})}catch(b){let a=b instanceof Error?b.message:String(b);return Response.json({error:a},{status:500,headers:{"Cache-Control":"no-store"}})}}let F=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/settings-data/route",pathname:"/api/settings-data",filename:"route",bundlePath:"app/api/settings-data/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/_work/gsd-2/gsd-2/web/app/api/settings-data/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:G,workUnitAsyncStorage:H,serverHooks:I}=F;function J(){return(0,g.patchFetch)({workAsyncStorage:G,workUnitAsyncStorage:H})}async function K(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),F.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/settings-data/route";"/index"===d&&(d="/");let e=await F.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D,clientReferenceManifest:E,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[D]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||F.isDev||y||(K="/index"===(K=D)?"/":K);let L=!0===F.isDev||!I,M=I&&!L;G&&E&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:E,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await F.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>F.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>F.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await F.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await F.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await F.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=95195));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=8966,a.ids=[8966],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{a.exports=require("os")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},31642:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>K,patchFetch:()=>J,routeModule:()=>F,serverHooks:()=>I,workAsyncStorage:()=>G,workUnitAsyncStorage:()=>H});var d={};c.r(d),c.d(d,{GET:()=>E,dynamic:()=>D,runtime:()=>C});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(31421),w=c(73024),x=c(76760),y=c(73136),z=c(7712),A=c(34431);async function B(a){let{packageRoot:b,projectCwd:c}=(0,z.eG)(void 0,a),d=(0,x.join)(b,"src","resources","extensions","gsd","tests","resolve-ts.mjs"),e=(0,A.KW)(b,"resources/extensions/gsd/preferences.ts"),f=(0,A.KW)(b,"resources/extensions/gsd/model-router.ts"),g=(0,A.KW)(b,"resources/extensions/gsd/context-budget.ts"),h=(0,A.KW)(b,"resources/extensions/gsd/routing-history.ts"),i=(0,A.KW)(b,"resources/extensions/gsd/metrics.ts"),j=e.modulePath,k=f.modulePath,l=g.modulePath,m=h.modulePath,n=i.modulePath;if(e.useCompiledJs){for(let a of[j,k,l,m,n])if(!(0,w.existsSync)(a))throw Error(`settings data provider not found; missing=${a}`)}else for(let a of[d,j,k,l,m,n])if(!(0,w.existsSync)(a))throw Error(`settings data provider not found; missing=${a}`);let o=(0,A.vB)(b,e,(0,y.pathToFileURL)(d).href);return await new Promise((a,d)=>{(0,v.execFile)(process.execPath,[...o,"--eval",'const { pathToFileURL } = await import("node:url"); const prefsMod = await import(pathToFileURL(process.env.GSD_SETTINGS_PREFS_MODULE).href); const routerMod = await import(pathToFileURL(process.env.GSD_SETTINGS_ROUTER_MODULE).href); const budgetMod = await import(pathToFileURL(process.env.GSD_SETTINGS_BUDGET_MODULE).href); const historyMod = await import(pathToFileURL(process.env.GSD_SETTINGS_HISTORY_MODULE).href); const metricsMod = await import(pathToFileURL(process.env.GSD_SETTINGS_METRICS_MODULE).href); const loaded = prefsMod.loadEffectiveGSDPreferences(); let preferences = null; if (loaded) { const p = loaded.preferences; const models = {}; if (p.models && typeof p.models === "object") { for (const [phase, value] of Object.entries(p.models)) { if (typeof value === "string") { models[phase] = value; continue; } if (value && typeof value === "object" && typeof value.model === "string") { models[phase] = typeof value.provider === "string" && value.provider && !value.model.includes("/") ? `${value.provider}/${value.model}` : value.model; } } } preferences = { mode: p.mode, models: Object.keys(models).length > 0 ? models : undefined, budgetCeiling: p.budget_ceiling, budgetEnforcement: p.budget_enforcement, tokenProfile: p.token_profile, dynamicRouting: p.dynamic_routing, customInstructions: p.custom_instructions, alwaysUseSkills: p.always_use_skills, preferSkills: p.prefer_skills, avoidSkills: p.avoid_skills, autoSupervisor: p.auto_supervisor ? { enabled: true, softTimeoutMinutes: p.auto_supervisor.soft_timeout_minutes, } : undefined, uatDispatch: p.uat_dispatch, autoVisualize: p.auto_visualize, remoteQuestions: p.remote_questions ? { channel: p.remote_questions.channel, channelId: String(p.remote_questions.channel_id), timeoutMinutes: p.remote_questions.timeout_minutes, pollIntervalSeconds: p.remote_questions.poll_interval_seconds, } : undefined, scope: loaded.scope, path: loaded.path, warnings: loaded.warnings, experimental: p.experimental ? { rtk: p.experimental.rtk } : undefined, }; } const routingConfig = prefsMod.resolveDynamicRoutingConfig(); const budgetAllocation = budgetMod.computeBudgets(200000); historyMod.initRoutingHistory(process.env.GSD_SETTINGS_BASE); const routingHistory = historyMod.getRoutingHistory(); const ledger = metricsMod.loadLedgerFromDisk(process.env.GSD_SETTINGS_BASE); const projectTotals = ledger ? metricsMod.getProjectTotals(ledger.units) : null; process.stdout.write(JSON.stringify({ preferences, routingConfig, budgetAllocation, routingHistory, projectTotals }));'],{cwd:b,env:{...process.env,GSD_SETTINGS_PREFS_MODULE:j,GSD_SETTINGS_ROUTER_MODULE:k,GSD_SETTINGS_BUDGET_MODULE:l,GSD_SETTINGS_HISTORY_MODULE:m,GSD_SETTINGS_METRICS_MODULE:n,GSD_SETTINGS_BASE:c},maxBuffer:2097152,windowsHide:!0},(b,c,e)=>{if(b)return void d(Error(`settings data subprocess failed: ${e||b.message}`));try{a(JSON.parse(c))}catch(a){d(Error(`settings data subprocess returned invalid JSON: ${a instanceof Error?a.message:String(a)}`))}})})}let C="nodejs",D="force-dynamic";async function E(a){try{let b=(0,z.jL)(a),c=await B(b);return Response.json(c,{headers:{"Cache-Control":"no-store"}})}catch(b){let a=b instanceof Error?b.message:String(b);return Response.json({error:a},{status:500,headers:{"Cache-Control":"no-store"}})}}let F=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/settings-data/route",pathname:"/api/settings-data",filename:"route",bundlePath:"app/api/settings-data/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/__w/gsd-2/gsd-2/web/app/api/settings-data/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:G,workUnitAsyncStorage:H,serverHooks:I}=F;function J(){return(0,g.patchFetch)({workAsyncStorage:G,workUnitAsyncStorage:H})}async function K(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),F.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/settings-data/route";"/index"===d&&(d="/");let e=await F.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D,clientReferenceManifest:E,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[D]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||F.isDev||y||(K="/index"===(K=D)?"/":K);let L=!0===F.isDev||!I,M=I&&!L;G&&E&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:E,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await F.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>F.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>F.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await F.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await F.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await F.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46193:a=>{a.exports=require("node:string_decoder")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=31642));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/settings-data/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/_work/gsd-2/gsd-2/web/app/api/settings-data/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/settings-data/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/__w/gsd-2/gsd-2/web/app/api/settings-data/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};