gsd-pi 2.78.0 → 2.78.1-dev.8a893322c

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 (559) hide show
  1. package/README.md +60 -23
  2. package/dist/bundled-resource-path.d.ts +7 -0
  3. package/dist/bundled-resource-path.js +34 -2
  4. package/dist/claude-cli-check.js +104 -33
  5. package/dist/cli-policy.d.ts +13 -0
  6. package/dist/cli-policy.js +17 -0
  7. package/dist/cli.js +95 -55
  8. package/dist/headless-query.d.ts +22 -0
  9. package/dist/headless-query.js +43 -8
  10. package/dist/headless.d.ts +10 -0
  11. package/dist/headless.js +16 -1
  12. package/dist/loader.js +9 -13
  13. package/dist/onboarding.d.ts +10 -0
  14. package/dist/onboarding.js +2 -2
  15. package/dist/provider-migrations.d.ts +2 -2
  16. package/dist/provider-migrations.js +5 -2
  17. package/dist/resource-loader.d.ts +5 -2
  18. package/dist/resource-loader.js +30 -13
  19. package/dist/resources/.managed-resources-content-hash +1 -0
  20. package/dist/resources/extensions/claude-code-cli/readiness.js +128 -32
  21. package/dist/resources/extensions/google-search/index.js +2 -6
  22. package/dist/resources/extensions/gsd/auto/loop.js +23 -0
  23. package/dist/resources/extensions/gsd/auto/phases.js +5 -13
  24. package/dist/resources/extensions/gsd/auto/run-unit.js +3 -1
  25. package/dist/resources/extensions/gsd/auto/session.js +5 -6
  26. package/dist/resources/extensions/gsd/auto-dashboard.js +3 -2
  27. package/dist/resources/extensions/gsd/auto-dispatch.js +18 -6
  28. package/dist/resources/extensions/gsd/auto-prompts.js +63 -2
  29. package/dist/resources/extensions/gsd/auto-recovery.js +43 -4
  30. package/dist/resources/extensions/gsd/auto-runtime-state.js +31 -0
  31. package/dist/resources/extensions/gsd/auto-start.js +1 -1
  32. package/dist/resources/extensions/gsd/auto-tool-tracking.js +2 -2
  33. package/dist/resources/extensions/gsd/auto-worktree.js +60 -13
  34. package/dist/resources/extensions/gsd/auto.js +14 -5
  35. package/dist/resources/extensions/gsd/bootstrap/db-tools.js +14 -2
  36. package/dist/resources/extensions/gsd/bootstrap/exec-tools.js +7 -5
  37. package/dist/resources/extensions/gsd/bootstrap/query-tools.js +2 -2
  38. package/dist/resources/extensions/gsd/bootstrap/register-extension.js +5 -4
  39. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +112 -31
  40. package/dist/resources/extensions/gsd/bootstrap/register-shortcuts.js +11 -6
  41. package/dist/resources/extensions/gsd/bootstrap/subagent-input.js +22 -0
  42. package/dist/resources/extensions/gsd/bootstrap/system-context.js +45 -8
  43. package/dist/resources/extensions/gsd/bootstrap/write-gate.js +121 -3
  44. package/dist/resources/extensions/gsd/commands/catalog.js +76 -5
  45. package/dist/resources/extensions/gsd/commands/handlers/core.js +23 -1
  46. package/dist/resources/extensions/gsd/commands/handlers/ops.js +8 -0
  47. package/dist/resources/extensions/gsd/commands-config.js +3 -2
  48. package/dist/resources/extensions/gsd/commands-extensions.js +46 -3
  49. package/dist/resources/extensions/gsd/commands-handlers.js +3 -2
  50. package/dist/resources/extensions/gsd/commands-mcp-status.js +3 -1
  51. package/dist/resources/extensions/gsd/commands-prefs-wizard.js +10 -1
  52. package/dist/resources/extensions/gsd/commands-worktree.js +309 -0
  53. package/dist/resources/extensions/gsd/dashboard-overlay.js +1 -1
  54. package/dist/resources/extensions/gsd/docs/preferences-reference.md +10 -0
  55. package/dist/resources/extensions/gsd/doctor-providers.js +2 -1
  56. package/dist/resources/extensions/gsd/doctor-runtime-checks.js +39 -1
  57. package/dist/resources/extensions/gsd/error-classifier.js +1 -1
  58. package/dist/resources/extensions/gsd/forensics.js +10 -8
  59. package/dist/resources/extensions/gsd/git-service.js +12 -5
  60. package/dist/resources/extensions/gsd/gsd-db.js +11 -2
  61. package/dist/resources/extensions/gsd/guided-flow.js +25 -24
  62. package/dist/resources/extensions/gsd/home-dir.js +16 -0
  63. package/dist/resources/extensions/gsd/key-manager.js +2 -1
  64. package/dist/resources/extensions/gsd/memory-store.js +66 -31
  65. package/dist/resources/extensions/gsd/migrate/command.js +3 -2
  66. package/dist/resources/extensions/gsd/milestone-id-reservation.js +36 -0
  67. package/dist/resources/extensions/gsd/model-router.js +114 -9
  68. package/dist/resources/extensions/gsd/native-git-bridge.js +7 -1
  69. package/dist/resources/extensions/gsd/preferences-models.js +91 -15
  70. package/dist/resources/extensions/gsd/preferences-types.js +2 -0
  71. package/dist/resources/extensions/gsd/preferences-validation.js +32 -0
  72. package/dist/resources/extensions/gsd/preferences.js +5 -3
  73. package/dist/resources/extensions/gsd/prompt-loader.js +23 -12
  74. package/dist/resources/extensions/gsd/prompts/complete-milestone.md +10 -0
  75. package/dist/resources/extensions/gsd/prompts/complete-slice.md +10 -0
  76. package/dist/resources/extensions/gsd/prompts/plan-slice.md +10 -0
  77. package/dist/resources/extensions/gsd/prompts/refine-slice.md +10 -0
  78. package/dist/resources/extensions/gsd/slice-parallel-orchestrator.js +9 -3
  79. package/dist/resources/extensions/gsd/state.js +42 -0
  80. package/dist/resources/extensions/gsd/templates/PREFERENCES.md +1 -0
  81. package/dist/resources/extensions/gsd/tools/memory-tools.js +18 -1
  82. package/dist/resources/extensions/gsd/unit-context-manifest.js +29 -4
  83. package/dist/resources/extensions/gsd/visualizer-overlay.js +1 -1
  84. package/dist/resources/extensions/gsd/watch/header-renderer.js +3 -1
  85. package/dist/resources/extensions/gsd/worktree-command.js +26 -46
  86. package/dist/resources/extensions/gsd/worktree-manager.js +20 -1
  87. package/dist/resources/extensions/gsd/worktree-resolver.js +4 -13
  88. package/dist/resources/extensions/gsd/worktree-root.js +124 -0
  89. package/dist/resources/extensions/gsd/worktree-session-state.js +33 -0
  90. package/dist/resources/extensions/gsd/worktree.js +4 -115
  91. package/dist/resources/extensions/mcp-client/index.js +6 -9
  92. package/dist/resources/extensions/ollama/index.js +15 -2
  93. package/dist/resources/extensions/ollama/model-capabilities.js +31 -0
  94. package/dist/resources/extensions/ollama/ollama-client.js +40 -4
  95. package/dist/resources/extensions/slash-commands/create-extension.js +36 -22
  96. package/dist/resources/extensions/subagent/index.js +324 -178
  97. package/dist/resources/skills/create-gsd-extension/SKILL.md +9 -5
  98. package/dist/resources/skills/create-gsd-extension/references/custom-commands.md +1 -1
  99. package/dist/resources/skills/create-gsd-extension/references/custom-rendering.md +5 -5
  100. package/dist/resources/skills/create-gsd-extension/references/custom-tools.md +4 -4
  101. package/dist/resources/skills/create-gsd-extension/references/custom-ui.md +6 -6
  102. package/dist/resources/skills/create-gsd-extension/references/events-reference.md +3 -3
  103. package/dist/resources/skills/create-gsd-extension/references/packaging-distribution.md +1 -1
  104. package/dist/resources/skills/create-gsd-extension/references/remote-execution-overrides.md +3 -3
  105. package/dist/resources/skills/create-gsd-extension/workflows/create-extension.md +32 -12
  106. package/dist/rtk-shared.d.ts +3 -0
  107. package/dist/rtk-shared.js +17 -0
  108. package/dist/rtk.d.ts +2 -5
  109. package/dist/rtk.js +3 -20
  110. package/dist/runtime-checks.d.ts +27 -0
  111. package/dist/runtime-checks.js +38 -0
  112. package/dist/tsconfig.extensions.tsbuildinfo +1 -1
  113. package/dist/web/standalone/.next/BUILD_ID +1 -1
  114. package/dist/web/standalone/.next/app-path-routes-manifest.json +15 -15
  115. package/dist/web/standalone/.next/build-manifest.json +4 -4
  116. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  117. package/dist/web/standalone/.next/react-loadable-manifest.json +44 -4
  118. package/dist/web/standalone/.next/required-server-files.json +3 -3
  119. package/dist/web/standalone/.next/server/app/_global-error/page.js +3 -3
  120. package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  121. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  122. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  123. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  124. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  125. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  126. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  127. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  128. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  129. package/dist/web/standalone/.next/server/app/_not-found/page.js +2 -2
  130. package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  131. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  132. package/dist/web/standalone/.next/server/app/_not-found.rsc +3 -3
  133. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  134. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  135. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  136. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  137. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  138. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  139. package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
  140. package/dist/web/standalone/.next/server/app/api/boot/route_client-reference-manifest.js +1 -1
  141. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
  142. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route_client-reference-manifest.js +1 -1
  143. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
  144. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route_client-reference-manifest.js +1 -1
  145. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
  146. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route_client-reference-manifest.js +1 -1
  147. package/dist/web/standalone/.next/server/app/api/browse-directories/route.js +1 -1
  148. package/dist/web/standalone/.next/server/app/api/browse-directories/route_client-reference-manifest.js +1 -1
  149. package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
  150. package/dist/web/standalone/.next/server/app/api/captures/route_client-reference-manifest.js +1 -1
  151. package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
  152. package/dist/web/standalone/.next/server/app/api/cleanup/route_client-reference-manifest.js +1 -1
  153. package/dist/web/standalone/.next/server/app/api/dev-mode/route.js +1 -1
  154. package/dist/web/standalone/.next/server/app/api/dev-mode/route_client-reference-manifest.js +1 -1
  155. package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
  156. package/dist/web/standalone/.next/server/app/api/doctor/route_client-reference-manifest.js +1 -1
  157. package/dist/web/standalone/.next/server/app/api/experimental/route.js +2 -2
  158. package/dist/web/standalone/.next/server/app/api/experimental/route_client-reference-manifest.js +1 -1
  159. package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
  160. package/dist/web/standalone/.next/server/app/api/export-data/route_client-reference-manifest.js +1 -1
  161. package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
  162. package/dist/web/standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
  163. package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
  164. package/dist/web/standalone/.next/server/app/api/forensics/route_client-reference-manifest.js +1 -1
  165. package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
  166. package/dist/web/standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  167. package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
  168. package/dist/web/standalone/.next/server/app/api/history/route_client-reference-manifest.js +1 -1
  169. package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
  170. package/dist/web/standalone/.next/server/app/api/hooks/route_client-reference-manifest.js +1 -1
  171. package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
  172. package/dist/web/standalone/.next/server/app/api/inspect/route_client-reference-manifest.js +1 -1
  173. package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
  174. package/dist/web/standalone/.next/server/app/api/knowledge/route_client-reference-manifest.js +1 -1
  175. package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
  176. package/dist/web/standalone/.next/server/app/api/live-state/route_client-reference-manifest.js +1 -1
  177. package/dist/web/standalone/.next/server/app/api/notifications/route.js +2 -2
  178. package/dist/web/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  179. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  180. package/dist/web/standalone/.next/server/app/api/onboarding/route_client-reference-manifest.js +1 -1
  181. package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
  182. package/dist/web/standalone/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -1
  183. package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
  184. package/dist/web/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  185. package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
  186. package/dist/web/standalone/.next/server/app/api/recovery/route_client-reference-manifest.js +1 -1
  187. package/dist/web/standalone/.next/server/app/api/remote-questions/route.js +2 -2
  188. package/dist/web/standalone/.next/server/app/api/remote-questions/route_client-reference-manifest.js +1 -1
  189. package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
  190. package/dist/web/standalone/.next/server/app/api/session/browser/route_client-reference-manifest.js +1 -1
  191. package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
  192. package/dist/web/standalone/.next/server/app/api/session/command/route_client-reference-manifest.js +1 -1
  193. package/dist/web/standalone/.next/server/app/api/session/events/route.js +4 -2
  194. package/dist/web/standalone/.next/server/app/api/session/events/route_client-reference-manifest.js +1 -1
  195. package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
  196. package/dist/web/standalone/.next/server/app/api/session/manage/route_client-reference-manifest.js +1 -1
  197. package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
  198. package/dist/web/standalone/.next/server/app/api/settings-data/route_client-reference-manifest.js +1 -1
  199. package/dist/web/standalone/.next/server/app/api/shutdown/route.js +1 -1
  200. package/dist/web/standalone/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  201. package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
  202. package/dist/web/standalone/.next/server/app/api/skill-health/route_client-reference-manifest.js +1 -1
  203. package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
  204. package/dist/web/standalone/.next/server/app/api/steer/route_client-reference-manifest.js +1 -1
  205. package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
  206. package/dist/web/standalone/.next/server/app/api/switch-root/route_client-reference-manifest.js +1 -1
  207. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +2 -2
  208. package/dist/web/standalone/.next/server/app/api/terminal/input/route_client-reference-manifest.js +1 -1
  209. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +2 -2
  210. package/dist/web/standalone/.next/server/app/api/terminal/resize/route_client-reference-manifest.js +1 -1
  211. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +2 -2
  212. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route_client-reference-manifest.js +1 -1
  213. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +4 -4
  214. package/dist/web/standalone/.next/server/app/api/terminal/stream/route_client-reference-manifest.js +1 -1
  215. package/dist/web/standalone/.next/server/app/api/terminal/upload/route.js +1 -1
  216. package/dist/web/standalone/.next/server/app/api/terminal/upload/route_client-reference-manifest.js +1 -1
  217. package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
  218. package/dist/web/standalone/.next/server/app/api/undo/route_client-reference-manifest.js +1 -1
  219. package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
  220. package/dist/web/standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  221. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  222. package/dist/web/standalone/.next/server/app/api/visualizer/route_client-reference-manifest.js +1 -1
  223. package/dist/web/standalone/.next/server/app/index.html +1 -1
  224. package/dist/web/standalone/.next/server/app/index.rsc +4 -4
  225. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  226. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
  227. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  228. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
  229. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  230. package/dist/web/standalone/.next/server/app/page.js +2 -2
  231. package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  232. package/dist/web/standalone/.next/server/app-paths-manifest.json +15 -15
  233. package/dist/web/standalone/.next/server/chunks/63.js +3 -3
  234. package/dist/web/standalone/.next/server/chunks/6897.js +1 -1
  235. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  236. package/dist/web/standalone/.next/server/middleware-manifest.json +5 -5
  237. package/dist/web/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  238. package/dist/web/standalone/.next/server/middleware.js +2 -2
  239. package/dist/web/standalone/.next/server/next-font-manifest.js +1 -1
  240. package/dist/web/standalone/.next/server/next-font-manifest.json +1 -1
  241. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  242. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  243. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  244. package/dist/web/standalone/.next/server/webpack-runtime.js +1 -1
  245. package/dist/web/standalone/.next/static/chunks/2556.0527fea66e123b7f.js +1 -0
  246. package/dist/web/standalone/.next/static/chunks/2824.08296bc2f9654698.js +1 -0
  247. package/dist/web/standalone/.next/static/chunks/3026.3af53b279375f082.js +1 -0
  248. package/dist/web/standalone/.next/static/chunks/315.6f68ae79b67d25cf.js +1 -0
  249. package/dist/web/standalone/.next/static/chunks/3497.4bfc60a3b3dea717.js +1 -0
  250. package/dist/web/standalone/.next/static/chunks/5516.4a07c872b5c3a663.js +1 -0
  251. package/dist/web/standalone/.next/static/chunks/8336.31b019697882acfb.js +10 -0
  252. package/dist/web/standalone/.next/static/chunks/8845.c9702695e8c5a9c5.js +2 -0
  253. package/dist/web/standalone/.next/static/chunks/9058.01ef3a463bda88f1.js +20 -0
  254. package/dist/web/standalone/.next/static/chunks/9441.1081da1125d1764f.js +1 -0
  255. package/dist/web/standalone/.next/static/chunks/app/_not-found/{page-2f24283c162b6ab3.js → page-f2a7482d42a5614b.js} +1 -1
  256. package/dist/web/standalone/.next/static/chunks/app/{layout-9ecfd95f343793f0.js → layout-a16c7a7ecdf0c2cf.js} +1 -1
  257. package/dist/web/standalone/.next/static/chunks/app/page-9bf2e0c50fb2ca05.js +1 -0
  258. package/dist/web/standalone/.next/static/chunks/main-app-fdab67f7802d7832.js +1 -0
  259. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-459824ffb8c323dd.js +1 -0
  260. package/dist/web/standalone/.next/static/chunks/webpack-f9f0dc45e4f3ac10.js +1 -0
  261. package/dist/web/standalone/node_modules/node-pty/build/Makefile +2 -2
  262. package/dist/web/standalone/node_modules/node-pty/build/Release/pty.node +0 -0
  263. package/dist/web/standalone/node_modules/node-pty/build/pty.target.mk +14 -14
  264. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api.target.mk +14 -14
  265. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_except.target.mk +14 -14
  266. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_maybe.target.mk +14 -14
  267. package/dist/web/standalone/package.json +2 -1
  268. package/dist/web/standalone/server.js +1 -1
  269. package/dist/welcome-screen.js +27 -1
  270. package/dist/worktree-cli.d.ts +1 -0
  271. package/dist/worktree-cli.js +9 -3
  272. package/dist/worktree-status-banner.d.ts +1 -0
  273. package/dist/worktree-status-banner.js +132 -0
  274. package/package.json +1 -3
  275. package/packages/daemon/package.json +2 -2
  276. package/packages/mcp-server/dist/alias-telemetry.d.ts +8 -0
  277. package/packages/mcp-server/dist/alias-telemetry.d.ts.map +1 -0
  278. package/packages/mcp-server/dist/alias-telemetry.js +30 -0
  279. package/packages/mcp-server/dist/alias-telemetry.js.map +1 -0
  280. package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
  281. package/packages/mcp-server/dist/workflow-tools.js +74 -46
  282. package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
  283. package/packages/mcp-server/package.json +2 -2
  284. package/packages/mcp-server/src/alias-telemetry.test.ts +78 -0
  285. package/packages/mcp-server/src/alias-telemetry.ts +30 -0
  286. package/packages/mcp-server/src/workflow-tools.test.ts +78 -0
  287. package/packages/mcp-server/src/workflow-tools.ts +93 -58
  288. package/packages/mcp-server/tsconfig.tsbuildinfo +1 -1
  289. package/packages/native/package.json +1 -1
  290. package/packages/native/tsconfig.tsbuildinfo +1 -1
  291. package/packages/pi-agent-core/package.json +1 -1
  292. package/packages/pi-agent-core/tsconfig.tsbuildinfo +1 -1
  293. package/packages/pi-ai/dist/providers/anthropic-shared.cache-breakpoint.test.d.ts +2 -0
  294. package/packages/pi-ai/dist/providers/anthropic-shared.cache-breakpoint.test.d.ts.map +1 -0
  295. package/packages/pi-ai/dist/providers/anthropic-shared.cache-breakpoint.test.js +231 -0
  296. package/packages/pi-ai/dist/providers/anthropic-shared.cache-breakpoint.test.js.map +1 -0
  297. package/packages/pi-ai/dist/providers/anthropic-shared.d.ts.map +1 -1
  298. package/packages/pi-ai/dist/providers/anthropic-shared.js +48 -19
  299. package/packages/pi-ai/dist/providers/anthropic-shared.js.map +1 -1
  300. package/packages/pi-ai/dist/types.d.ts +13 -0
  301. package/packages/pi-ai/dist/types.d.ts.map +1 -1
  302. package/packages/pi-ai/dist/types.js.map +1 -1
  303. package/packages/pi-ai/dist/utils/repair-tool-json.d.ts.map +1 -1
  304. package/packages/pi-ai/dist/utils/repair-tool-json.js +24 -3
  305. package/packages/pi-ai/dist/utils/repair-tool-json.js.map +1 -1
  306. package/packages/pi-ai/dist/utils/tests/repair-tool-json.test.js +26 -0
  307. package/packages/pi-ai/dist/utils/tests/repair-tool-json.test.js.map +1 -1
  308. package/packages/pi-ai/package.json +1 -1
  309. package/packages/pi-ai/src/providers/anthropic-shared.cache-breakpoint.test.ts +289 -0
  310. package/packages/pi-ai/src/providers/anthropic-shared.ts +52 -20
  311. package/packages/pi-ai/src/types.ts +13 -0
  312. package/packages/pi-ai/src/utils/repair-tool-json.ts +24 -3
  313. package/packages/pi-ai/src/utils/tests/repair-tool-json.test.ts +32 -0
  314. package/packages/pi-ai/tsconfig.tsbuildinfo +1 -1
  315. package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
  316. package/packages/pi-coding-agent/dist/core/agent-session.js +6 -0
  317. package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
  318. package/packages/pi-coding-agent/dist/core/messages.d.ts.map +1 -1
  319. package/packages/pi-coding-agent/dist/core/messages.js +4 -0
  320. package/packages/pi-coding-agent/dist/core/messages.js.map +1 -1
  321. package/packages/pi-coding-agent/dist/core/model-registry-auth-mode.test.js +19 -2
  322. package/packages/pi-coding-agent/dist/core/model-registry-auth-mode.test.js.map +1 -1
  323. package/packages/pi-coding-agent/dist/core/model-registry.d.ts +10 -0
  324. package/packages/pi-coding-agent/dist/core/model-registry.d.ts.map +1 -1
  325. package/packages/pi-coding-agent/dist/core/model-registry.js +18 -0
  326. package/packages/pi-coding-agent/dist/core/model-registry.js.map +1 -1
  327. package/packages/pi-coding-agent/dist/core/system-prompt.d.ts +13 -0
  328. package/packages/pi-coding-agent/dist/core/system-prompt.d.ts.map +1 -1
  329. package/packages/pi-coding-agent/dist/core/system-prompt.js +20 -16
  330. package/packages/pi-coding-agent/dist/core/system-prompt.js.map +1 -1
  331. package/packages/pi-coding-agent/dist/core/token-telemetry.d.ts +37 -0
  332. package/packages/pi-coding-agent/dist/core/token-telemetry.d.ts.map +1 -0
  333. package/packages/pi-coding-agent/dist/core/token-telemetry.js +49 -0
  334. package/packages/pi-coding-agent/dist/core/token-telemetry.js.map +1 -0
  335. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-card-cleanup-and-success-runtime.test.d.ts +2 -0
  336. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-card-cleanup-and-success-runtime.test.d.ts.map +1 -0
  337. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-card-cleanup-and-success-runtime.test.js +133 -0
  338. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-card-cleanup-and-success-runtime.test.js.map +1 -0
  339. package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.js +1 -1
  340. package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.js.map +1 -1
  341. package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.test.js +14 -1
  342. package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.test.js.map +1 -1
  343. package/packages/pi-coding-agent/dist/tests/system-prompt-cache-stability.test.d.ts +2 -0
  344. package/packages/pi-coding-agent/dist/tests/system-prompt-cache-stability.test.d.ts.map +1 -0
  345. package/packages/pi-coding-agent/dist/tests/system-prompt-cache-stability.test.js +78 -0
  346. package/packages/pi-coding-agent/dist/tests/system-prompt-cache-stability.test.js.map +1 -0
  347. package/packages/pi-coding-agent/dist/tests/token-telemetry.test.d.ts +2 -0
  348. package/packages/pi-coding-agent/dist/tests/token-telemetry.test.d.ts.map +1 -0
  349. package/packages/pi-coding-agent/dist/tests/token-telemetry.test.js +181 -0
  350. package/packages/pi-coding-agent/dist/tests/token-telemetry.test.js.map +1 -0
  351. package/packages/pi-coding-agent/package.json +1 -1
  352. package/packages/pi-coding-agent/src/core/agent-session.ts +7 -0
  353. package/packages/pi-coding-agent/src/core/messages.ts +4 -0
  354. package/packages/pi-coding-agent/src/core/model-registry-auth-mode.test.ts +32 -2
  355. package/packages/pi-coding-agent/src/core/model-registry.ts +21 -0
  356. package/packages/pi-coding-agent/src/core/system-prompt.ts +33 -15
  357. package/packages/pi-coding-agent/src/core/token-telemetry.ts +77 -0
  358. package/packages/pi-coding-agent/src/modes/interactive/components/tool-card-cleanup-and-success-runtime.test.ts +212 -0
  359. package/packages/pi-coding-agent/src/modes/interactive/controllers/input-controller.test.ts +17 -1
  360. package/packages/pi-coding-agent/src/modes/interactive/controllers/input-controller.ts +1 -1
  361. package/packages/pi-coding-agent/src/tests/system-prompt-cache-stability.test.ts +102 -0
  362. package/packages/pi-coding-agent/src/tests/token-telemetry.test.ts +200 -0
  363. package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -1
  364. package/packages/pi-tui/dist/__tests__/autocomplete.test.js +17 -3
  365. package/packages/pi-tui/dist/__tests__/autocomplete.test.js.map +1 -1
  366. package/packages/pi-tui/dist/components/__tests__/leak-fixes-runtime.test.d.ts +2 -0
  367. package/packages/pi-tui/dist/components/__tests__/leak-fixes-runtime.test.d.ts.map +1 -0
  368. package/packages/pi-tui/dist/components/__tests__/leak-fixes-runtime.test.js +161 -0
  369. package/packages/pi-tui/dist/components/__tests__/leak-fixes-runtime.test.js.map +1 -0
  370. package/packages/pi-tui/package.json +1 -1
  371. package/packages/pi-tui/src/__tests__/autocomplete.test.ts +20 -3
  372. package/packages/pi-tui/src/components/__tests__/leak-fixes-runtime.test.ts +219 -0
  373. package/packages/pi-tui/tsconfig.tsbuildinfo +1 -1
  374. package/packages/rpc-client/package.json +1 -1
  375. package/pkg/package.json +1 -1
  376. package/src/resources/extensions/claude-code-cli/readiness.ts +130 -30
  377. package/src/resources/extensions/google-search/index.ts +2 -9
  378. package/src/resources/extensions/gsd/auto/loop.ts +24 -2
  379. package/src/resources/extensions/gsd/auto/phases.ts +6 -14
  380. package/src/resources/extensions/gsd/auto/run-unit.ts +3 -1
  381. package/src/resources/extensions/gsd/auto/session.ts +5 -6
  382. package/src/resources/extensions/gsd/auto/types.ts +1 -0
  383. package/src/resources/extensions/gsd/auto-dashboard.ts +3 -2
  384. package/src/resources/extensions/gsd/auto-dispatch.ts +18 -6
  385. package/src/resources/extensions/gsd/auto-prompts.ts +60 -2
  386. package/src/resources/extensions/gsd/auto-recovery.ts +46 -8
  387. package/src/resources/extensions/gsd/auto-runtime-state.ts +51 -0
  388. package/src/resources/extensions/gsd/auto-start.ts +1 -1
  389. package/src/resources/extensions/gsd/auto-tool-tracking.ts +2 -4
  390. package/src/resources/extensions/gsd/auto-worktree.ts +82 -12
  391. package/src/resources/extensions/gsd/auto.ts +14 -4
  392. package/src/resources/extensions/gsd/bootstrap/db-tools.ts +15 -13
  393. package/src/resources/extensions/gsd/bootstrap/exec-tools.ts +8 -7
  394. package/src/resources/extensions/gsd/bootstrap/query-tools.ts +2 -2
  395. package/src/resources/extensions/gsd/bootstrap/register-extension.ts +10 -9
  396. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +121 -31
  397. package/src/resources/extensions/gsd/bootstrap/register-shortcuts.ts +12 -6
  398. package/src/resources/extensions/gsd/bootstrap/subagent-input.ts +20 -0
  399. package/src/resources/extensions/gsd/bootstrap/system-context.ts +50 -8
  400. package/src/resources/extensions/gsd/bootstrap/write-gate.ts +141 -11
  401. package/src/resources/extensions/gsd/commands/catalog.ts +82 -5
  402. package/src/resources/extensions/gsd/commands/handlers/core.ts +23 -1
  403. package/src/resources/extensions/gsd/commands/handlers/ops.ts +10 -0
  404. package/src/resources/extensions/gsd/commands-config.ts +3 -2
  405. package/src/resources/extensions/gsd/commands-extensions.ts +43 -3
  406. package/src/resources/extensions/gsd/commands-handlers.ts +3 -2
  407. package/src/resources/extensions/gsd/commands-mcp-status.ts +3 -1
  408. package/src/resources/extensions/gsd/commands-prefs-wizard.ts +15 -1
  409. package/src/resources/extensions/gsd/commands-worktree.ts +383 -0
  410. package/src/resources/extensions/gsd/dashboard-overlay.ts +1 -1
  411. package/src/resources/extensions/gsd/docs/preferences-reference.md +10 -0
  412. package/src/resources/extensions/gsd/doctor-providers.ts +2 -1
  413. package/src/resources/extensions/gsd/doctor-runtime-checks.ts +39 -1
  414. package/src/resources/extensions/gsd/doctor-types.ts +3 -1
  415. package/src/resources/extensions/gsd/error-classifier.ts +1 -1
  416. package/src/resources/extensions/gsd/forensics.ts +12 -7
  417. package/src/resources/extensions/gsd/git-service.ts +13 -5
  418. package/src/resources/extensions/gsd/gsd-db.ts +12 -2
  419. package/src/resources/extensions/gsd/guided-flow.ts +27 -26
  420. package/src/resources/extensions/gsd/home-dir.ts +19 -0
  421. package/src/resources/extensions/gsd/journal.ts +4 -1
  422. package/src/resources/extensions/gsd/key-manager.ts +2 -1
  423. package/src/resources/extensions/gsd/memory-store.ts +81 -28
  424. package/src/resources/extensions/gsd/migrate/command.ts +3 -2
  425. package/src/resources/extensions/gsd/milestone-id-reservation.ts +47 -0
  426. package/src/resources/extensions/gsd/model-router.ts +172 -9
  427. package/src/resources/extensions/gsd/native-git-bridge.ts +7 -1
  428. package/src/resources/extensions/gsd/preferences-models.ts +101 -15
  429. package/src/resources/extensions/gsd/preferences-types.ts +6 -0
  430. package/src/resources/extensions/gsd/preferences-validation.ts +35 -0
  431. package/src/resources/extensions/gsd/preferences.ts +16 -2
  432. package/src/resources/extensions/gsd/prompt-loader.ts +26 -12
  433. package/src/resources/extensions/gsd/prompts/complete-milestone.md +10 -0
  434. package/src/resources/extensions/gsd/prompts/complete-slice.md +10 -0
  435. package/src/resources/extensions/gsd/prompts/plan-slice.md +10 -0
  436. package/src/resources/extensions/gsd/prompts/refine-slice.md +10 -0
  437. package/src/resources/extensions/gsd/slice-parallel-orchestrator.ts +9 -3
  438. package/src/resources/extensions/gsd/state.ts +42 -0
  439. package/src/resources/extensions/gsd/templates/PREFERENCES.md +1 -0
  440. package/src/resources/extensions/gsd/tests/auto-loop.test.ts +178 -1
  441. package/src/resources/extensions/gsd/tests/auto-recovery.test.ts +58 -0
  442. package/src/resources/extensions/gsd/tests/auto-session-encapsulation.test.ts +24 -5
  443. package/src/resources/extensions/gsd/tests/auto-supervisor.test.mjs +21 -4
  444. package/src/resources/extensions/gsd/tests/bootstrap-derive-state-db-open.test.ts +1 -1
  445. package/src/resources/extensions/gsd/tests/budget-prediction.test.ts +138 -211
  446. package/src/resources/extensions/gsd/tests/bundled-skill-triggers.test.ts +50 -27
  447. package/src/resources/extensions/gsd/tests/commands-extensions-version-compare.test.ts +58 -0
  448. package/src/resources/extensions/gsd/tests/commands-worktree-clean.test.ts +48 -0
  449. package/src/resources/extensions/gsd/tests/complete-slice-verification-gate.test.ts +142 -59
  450. package/src/resources/extensions/gsd/tests/complete-slice.test.ts +7 -4
  451. package/src/resources/extensions/gsd/tests/completed-at-reconcile.test.ts +89 -32
  452. package/src/resources/extensions/gsd/tests/custom-engine-loop-integration.test.ts +41 -23
  453. package/src/resources/extensions/gsd/tests/db-path-worktree-symlink.test.ts +3 -43
  454. package/src/resources/extensions/gsd/tests/debug-logger.test.ts +5 -3
  455. package/src/resources/extensions/gsd/tests/deferred-milestone-dir-4996.test.ts +116 -0
  456. package/src/resources/extensions/gsd/tests/discuss-empty-db-fallback.test.ts +22 -87
  457. package/src/resources/extensions/gsd/tests/discuss-queued-milestones.test.ts +7 -118
  458. package/src/resources/extensions/gsd/tests/discuss-tool-scope-leak.test.ts +18 -60
  459. package/src/resources/extensions/gsd/tests/doctor-orphan-milestone-4996.test.ts +100 -0
  460. package/src/resources/extensions/gsd/tests/double-merge-guard.test.ts +14 -76
  461. package/src/resources/extensions/gsd/tests/ensure-preconditions-guard-4996.test.ts +93 -0
  462. package/src/resources/extensions/gsd/tests/false-degraded-mode-warning.test.ts +22 -83
  463. package/src/resources/extensions/gsd/tests/finalize-timeout-guard.test.ts +1 -63
  464. package/src/resources/extensions/gsd/tests/find-missing-summaries-closed-runtime.test.ts +47 -0
  465. package/src/resources/extensions/gsd/tests/forensics-stuck-loops.test.ts +26 -1
  466. package/src/resources/extensions/gsd/tests/gitignore-bg-shell-runtime.test.ts +63 -0
  467. package/src/resources/extensions/gsd/tests/google-search-stub.test.ts +25 -65
  468. package/src/resources/extensions/gsd/tests/gsd-db.test.ts +30 -0
  469. package/src/resources/extensions/gsd/tests/gsd-no-project-error-runtime.test.ts +81 -0
  470. package/src/resources/extensions/gsd/tests/headless-answers.test.ts +14 -4
  471. package/src/resources/extensions/gsd/tests/health-widget.test.ts +22 -12
  472. package/src/resources/extensions/gsd/tests/help-menu-coverage.test.ts +57 -0
  473. package/src/resources/extensions/gsd/tests/home-dir.test.ts +52 -0
  474. package/src/resources/extensions/gsd/tests/import-done-milestones-runtime.test.ts +145 -0
  475. package/src/resources/extensions/gsd/tests/init-prefs-routing.test.ts +64 -1
  476. package/src/resources/extensions/gsd/tests/integration/auto-worktree.test.ts +72 -1
  477. package/src/resources/extensions/gsd/tests/integration/token-savings.test.ts +0 -23
  478. package/src/resources/extensions/gsd/tests/memory-store.test.ts +128 -0
  479. package/src/resources/extensions/gsd/tests/memory-tools.test.ts +33 -1
  480. package/src/resources/extensions/gsd/tests/merge-self-branch-guard.test.ts +124 -0
  481. package/src/resources/extensions/gsd/tests/milestone-id-gap-reuse-4996.test.ts +152 -0
  482. package/src/resources/extensions/gsd/tests/milestone-report-path.test.ts +18 -1
  483. package/src/resources/extensions/gsd/tests/model-router.test.ts +169 -8
  484. package/src/resources/extensions/gsd/tests/native-git-infra-errors.test.ts +50 -0
  485. package/src/resources/extensions/gsd/tests/orphaned-worktree-audit.test.ts +8 -0
  486. package/src/resources/extensions/gsd/tests/parallel-crash-recovery.test.ts +32 -43
  487. package/src/resources/extensions/gsd/tests/phases-merge-error-stops-auto.test.ts +4 -10
  488. package/src/resources/extensions/gsd/tests/preferences.test.ts +127 -0
  489. package/src/resources/extensions/gsd/tests/prompt-step-ordering.test.ts +16 -0
  490. package/src/resources/extensions/gsd/tests/provider-errors.test.ts +7 -0
  491. package/src/resources/extensions/gsd/tests/quick-turn-end-cleanup.test.ts +6 -6
  492. package/src/resources/extensions/gsd/tests/register-hooks-compaction-checkpoint.test.ts +93 -0
  493. package/src/resources/extensions/gsd/tests/safety-harness-false-positives.test.ts +34 -0
  494. package/src/resources/extensions/gsd/tests/session-start-footer.test.ts +168 -19
  495. package/src/resources/extensions/gsd/tests/slice-parallel-orchestrator.test.ts +7 -1
  496. package/src/resources/extensions/gsd/tests/smart-entry-complete.test.ts +23 -1
  497. package/src/resources/extensions/gsd/tests/steer-worktree-path.test.ts +17 -1
  498. package/src/resources/extensions/gsd/tests/system-context-message-routing.test.ts +101 -0
  499. package/src/resources/extensions/gsd/tests/token-profile.test.ts +51 -4
  500. package/src/resources/extensions/gsd/tests/turn-epoch.test.ts +7 -16
  501. package/src/resources/extensions/gsd/tests/unit-context-manifest.test.ts +38 -3
  502. package/src/resources/extensions/gsd/tests/unstructured-continue-context-injection.test.ts +5 -7
  503. package/src/resources/extensions/gsd/tests/uok-gitops-turn-action.test.ts +15 -1
  504. package/src/resources/extensions/gsd/tests/visualizer-overlay.test.ts +6 -6
  505. package/src/resources/extensions/gsd/tests/worktree-symlink-removal.test.ts +34 -33
  506. package/src/resources/extensions/gsd/tests/worktree.test.ts +8 -0
  507. package/src/resources/extensions/gsd/tests/write-gate-planning-unit.test.ts +131 -1
  508. package/src/resources/extensions/gsd/tools/memory-tools.ts +17 -1
  509. package/src/resources/extensions/gsd/unit-context-manifest.ts +44 -12
  510. package/src/resources/extensions/gsd/visualizer-overlay.ts +1 -1
  511. package/src/resources/extensions/gsd/watch/header-renderer.ts +3 -1
  512. package/src/resources/extensions/gsd/workflow-logger.ts +1 -0
  513. package/src/resources/extensions/gsd/worktree-command.ts +31 -44
  514. package/src/resources/extensions/gsd/worktree-manager.ts +40 -1
  515. package/src/resources/extensions/gsd/worktree-resolver.ts +4 -14
  516. package/src/resources/extensions/gsd/worktree-root.ts +144 -0
  517. package/src/resources/extensions/gsd/worktree-session-state.ts +35 -0
  518. package/src/resources/extensions/gsd/worktree.ts +8 -119
  519. package/src/resources/extensions/mcp-client/index.ts +6 -10
  520. package/src/resources/extensions/mcp-client/tests/global-config.test.ts +91 -0
  521. package/src/resources/extensions/ollama/index.ts +16 -2
  522. package/src/resources/extensions/ollama/model-capabilities.ts +34 -0
  523. package/src/resources/extensions/ollama/ollama-client.ts +41 -4
  524. package/src/resources/extensions/ollama/tests/model-capabilities.test.ts +96 -0
  525. package/src/resources/extensions/ollama/tests/ollama-client-timeout-env.test.ts +147 -0
  526. package/src/resources/extensions/slash-commands/create-extension.ts +38 -24
  527. package/src/resources/extensions/subagent/index.ts +165 -7
  528. package/src/resources/skills/create-gsd-extension/SKILL.md +9 -5
  529. package/src/resources/skills/create-gsd-extension/references/custom-commands.md +1 -1
  530. package/src/resources/skills/create-gsd-extension/references/custom-rendering.md +5 -5
  531. package/src/resources/skills/create-gsd-extension/references/custom-tools.md +4 -4
  532. package/src/resources/skills/create-gsd-extension/references/custom-ui.md +6 -6
  533. package/src/resources/skills/create-gsd-extension/references/events-reference.md +3 -3
  534. package/src/resources/skills/create-gsd-extension/references/packaging-distribution.md +1 -1
  535. package/src/resources/skills/create-gsd-extension/references/remote-execution-overrides.md +3 -3
  536. package/src/resources/skills/create-gsd-extension/templates/extension-skeleton.ts +2 -2
  537. package/src/resources/skills/create-gsd-extension/templates/stateful-tool-skeleton.ts +3 -3
  538. package/src/resources/skills/create-gsd-extension/templates/templates.test.ts +58 -0
  539. package/src/resources/skills/create-gsd-extension/workflows/create-extension.md +32 -12
  540. package/dist/resources/extensions/browser-tools/tests/browser-tools-integration.test.mjs +0 -601
  541. package/dist/resources/extensions/browser-tools/tests/browser-tools-unit.test.cjs +0 -651
  542. package/dist/resources/extensions/browser-tools/tests/capture-sharp-optional.test.cjs +0 -91
  543. package/dist/resources/extensions/gsd/tests/auto-supervisor.test.mjs +0 -53
  544. package/dist/resources/extensions/gsd/tests/dist-redirect.mjs +0 -112
  545. package/dist/resources/extensions/gsd/tests/resolve-ts-hooks.mjs +0 -23
  546. package/dist/resources/extensions/gsd/tests/resolve-ts.mjs +0 -5
  547. package/dist/resources/skills/github-workflows/references/gh/tests/__init__.py +0 -0
  548. package/dist/resources/skills/github-workflows/references/gh/tests/test_github_project_setup.py +0 -608
  549. package/dist/web/standalone/.next/static/chunks/2826.e9f5195e91f9cad2.js +0 -11
  550. package/dist/web/standalone/.next/static/chunks/3621.fc7480022c972438.js +0 -20
  551. package/dist/web/standalone/.next/static/chunks/app/page-151349214571e2b6.js +0 -1
  552. package/dist/web/standalone/.next/static/chunks/main-app-d3d4c336195465f9.js +0 -1
  553. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-ab5a8926e07ec673.js +0 -1
  554. package/dist/web/standalone/.next/static/chunks/webpack-2e68521d7c82f7c2.js +0 -1
  555. package/src/resources/extensions/gsd/tests/copy-planning-artifacts-samepath.test.ts +0 -22
  556. package/src/resources/extensions/gsd/tests/discuss-slice-structured-questions.test.ts +0 -47
  557. package/src/resources/extensions/gsd/tests/empty-content-abort-loop.test.ts +0 -75
  558. /package/dist/web/standalone/.next/static/{C1zT2kEfoLhDdbWPWKrXd → QK8fABiGPmonfTgboN0Y9}/_buildManifest.js +0 -0
  559. /package/dist/web/standalone/.next/static/{C1zT2kEfoLhDdbWPWKrXd → QK8fABiGPmonfTgboN0Y9}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=4117,a.ids=[4117],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},564:a=>{a.exports=require("@gsd/native")},846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1421:a=>{a.exports=require("node:child_process")},1820:a=>{a.exports=require("os")},3024:a=>{a.exports=require("node:fs")},3033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3136:a=>{a.exports=require("node:url")},3873:a=>{a.exports=require("path")},4870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},5896:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>I,patchFetch:()=>H,routeModule:()=>D,serverHooks:()=>G,workAsyncStorage:()=>E,workUnitAsyncStorage:()=>F});var d={};c.r(d),c.d(d,{GET:()=>B,POST:()=>C,dynamic:()=>y,runtime:()=>x});var e=c(9225),f=c(4006),g=c(8317),h=c(9373),i=c(4775),j=c(4235),k=c(261),l=c(4365),m=c(771),n=c(3461),o=c(7798),p=c(2280),q=c(2018),r=c(5696),s=c(7929),t=c(6439),u=c(7527),v=c(3576),w=c(7712);let x="nodejs",y="force-dynamic";function z(){return{"Cache-Control":"no-store"}}function A(a,b,c){return Response.json({error:b instanceof Error?b.message:String(b),...c?{onboarding:c}:{}},{status:a,headers:z()})}async function B(a){return(0,w.jL)(a),Response.json({onboarding:await (0,v.hm)().getState()},{headers:z()})}async function C(a){var b;let c;(0,w.jL)(a);try{c=await a.json()}catch(a){return A(400,a)}if("object"!=typeof(b=c)||null===b||"string"!=typeof b.action)return A(400,"Request body must be a JSON object with an action field");let d=(0,v.hm)();try{switch(c.action){case"discover_providers":case"recheck":return Response.json({onboarding:await d.getState()},{headers:z()});case"save_api_key":{let a=await d.validateAndSaveApiKey(c.providerId,c.apiKey);return Response.json({onboarding:a},{status:a.lastValidation?.status==="failed"?422:"bridge_refresh_failed"===a.lockReason?503:"bridge_refresh_pending"===a.lockReason?202:200,headers:z()})}case"start_provider_flow":{let a=await d.startProviderFlow(c.providerId);return Response.json({onboarding:a},{status:202,headers:z()})}case"continue_provider_flow":{let a=await d.submitProviderFlowInput(c.flowId,c.input);return Response.json({onboarding:a},{status:202,headers:z()})}case"cancel_provider_flow":{let a=await d.cancelProviderFlow(c.flowId);return Response.json({onboarding:a},{headers:z()})}case"logout_provider":{let a=await d.logoutProvider(c.providerId);return Response.json({onboarding:a},{status:"bridge_refresh_failed"===a.lockReason?503:"bridge_refresh_pending"===a.lockReason?202:200,headers:z()})}default:return A(400,`Unsupported onboarding action: ${c.action}`)}}catch(a){return A(400,a,await d.getState())}}let D=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/onboarding/route",pathname:"/api/onboarding",filename:"route",bundlePath:"app/api/onboarding/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/_work/gsd-2/gsd-2/web/app/api/onboarding/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:E,workUnitAsyncStorage:F,serverHooks:G}=D;function H(){return(0,g.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:F})}async function I(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),D.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/onboarding/route";"/index"===d&&(d="/");let e=await D.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: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||D.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===D.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 D.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)=>D.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=>D.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 D.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await D.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 D.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}}},6193:a=>{a.exports=require("node:string_decoder")},6439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6698:a=>{a.exports=require("node:async_hooks")},6760:a=>{a.exports=require("node:path")},7067:a=>{a.exports=require("node:http")},7598:a=>{a.exports=require("node:crypto")},8161:a=>{a.exports=require("node:os")},9294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},9868:a=>{a.exports=require("node:sqlite")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=5896));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=4117,a.ids=[4117],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},564:a=>{a.exports=require("@gsd/native")},846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},988:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>I,patchFetch:()=>H,routeModule:()=>D,serverHooks:()=>G,workAsyncStorage:()=>E,workUnitAsyncStorage:()=>F});var d={};c.r(d),c.d(d,{GET:()=>B,POST:()=>C,dynamic:()=>y,runtime:()=>x});var e=c(9225),f=c(4006),g=c(8317),h=c(9373),i=c(4775),j=c(4235),k=c(261),l=c(4365),m=c(771),n=c(3461),o=c(7798),p=c(2280),q=c(2018),r=c(5696),s=c(7929),t=c(6439),u=c(7527),v=c(3576),w=c(7712);let x="nodejs",y="force-dynamic";function z(){return{"Cache-Control":"no-store"}}function A(a,b,c){return Response.json({error:b instanceof Error?b.message:String(b),...c?{onboarding:c}:{}},{status:a,headers:z()})}async function B(a){return(0,w.jL)(a),Response.json({onboarding:await (0,v.hm)().getState()},{headers:z()})}async function C(a){var b;let c;(0,w.jL)(a);try{c=await a.json()}catch(a){return A(400,a)}if("object"!=typeof(b=c)||null===b||"string"!=typeof b.action)return A(400,"Request body must be a JSON object with an action field");let d=(0,v.hm)();try{switch(c.action){case"discover_providers":case"recheck":return Response.json({onboarding:await d.getState()},{headers:z()});case"save_api_key":{let a=await d.validateAndSaveApiKey(c.providerId,c.apiKey);return Response.json({onboarding:a},{status:a.lastValidation?.status==="failed"?422:"bridge_refresh_failed"===a.lockReason?503:"bridge_refresh_pending"===a.lockReason?202:200,headers:z()})}case"start_provider_flow":{let a=await d.startProviderFlow(c.providerId);return Response.json({onboarding:a},{status:202,headers:z()})}case"continue_provider_flow":{let a=await d.submitProviderFlowInput(c.flowId,c.input);return Response.json({onboarding:a},{status:202,headers:z()})}case"cancel_provider_flow":{let a=await d.cancelProviderFlow(c.flowId);return Response.json({onboarding:a},{headers:z()})}case"logout_provider":{let a=await d.logoutProvider(c.providerId);return Response.json({onboarding:a},{status:"bridge_refresh_failed"===a.lockReason?503:"bridge_refresh_pending"===a.lockReason?202:200,headers:z()})}default:return A(400,`Unsupported onboarding action: ${c.action}`)}}catch(a){return A(400,a,await d.getState())}}let D=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/onboarding/route",pathname:"/api/onboarding",filename:"route",bundlePath:"app/api/onboarding/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/__w/gsd-2/gsd-2/web/app/api/onboarding/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:E,workUnitAsyncStorage:F,serverHooks:G}=D;function H(){return(0,g.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:F})}async function I(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),D.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/onboarding/route";"/index"===d&&(d="/");let e=await D.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: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||D.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===D.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 D.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)=>D.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=>D.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 D.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await D.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 D.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}}},1421:a=>{a.exports=require("node:child_process")},1820:a=>{a.exports=require("os")},3024:a=>{a.exports=require("node:fs")},3033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3136:a=>{a.exports=require("node:url")},3873:a=>{a.exports=require("path")},4870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6193:a=>{a.exports=require("node:string_decoder")},6439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6698:a=>{a.exports=require("node:async_hooks")},6760:a=>{a.exports=require("node:path")},7067:a=>{a.exports=require("node:http")},7598:a=>{a.exports=require("node:crypto")},8161:a=>{a.exports=require("node:os")},9294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},9868:a=>{a.exports=require("node:sqlite")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=988));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/onboarding/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/_work/gsd-2/gsd-2/web/app/api/onboarding/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/onboarding/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/__w/gsd-2/gsd-2/web/app/api/onboarding/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1 +1 @@
1
- (()=>{var a={};a.id=9560,a.ids=[9560],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1820:a=>{"use strict";a.exports=require("os")},2280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(8208),e=c(7617),f=c(2018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},3024:a=>{"use strict";a.exports=require("node:fs")},3033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3873:a=>{"use strict";a.exports=require("path")},4759:(a,b,c)=>{"use strict";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,{GET:()=>A,PUT:()=>B,dynamic:()=>z,runtime:()=>y});var e=c(9225),f=c(4006),g=c(8317),h=c(9373),i=c(4775),j=c(4235),k=c(261),l=c(4365),m=c(771),n=c(3461),o=c(7798),p=c(2280),q=c(2018),r=c(5696),s=c(7929),t=c(6439),u=c(7527),v=c(3024),w=c(6760),x=c(7849);let y="nodejs",z="force-dynamic";async function A(){try{if(!(0,v.existsSync)(x.Ic))return Response.json({});let a=(0,v.readFileSync)(x.Ic,"utf-8"),b=JSON.parse(a);return Response.json(b)}catch{return Response.json({})}}async function B(a){try{let b=await a.json(),c={};try{(0,v.existsSync)(x.Ic)&&(c=JSON.parse((0,v.readFileSync)(x.Ic,"utf-8")))}catch{}let d={...c};"string"==typeof b.devRoot&&(d.devRoot=b.devRoot),"string"==typeof b.lastActiveProject&&(d.lastActiveProject=b.lastActiveProject);let e=(0,w.dirname)(x.Ic);return(0,v.existsSync)(e)||(0,v.mkdirSync)(e,{recursive:!0}),(0,v.writeFileSync)(x.Ic,JSON.stringify(d,null,2),"utf-8"),Response.json(d)}catch(a){return Response.json({error:`Failed to write preferences: ${a instanceof Error?a.message:String(a)}`},{status:500})}}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/preferences/route",pathname:"/api/preferences",filename:"route",bundlePath:"app/api/preferences/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/_work/gsd-2/gsd-2/web/app/api/preferences/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/preferences/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}}},4870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6487:()=>{},6760:a=>{"use strict";a.exports=require("node:path")},7849:(a,b,c)=>{"use strict";c.d(b,{Ic:()=>j,_y:()=>f,sI:()=>i,vo:()=>h});var d=c(1820),e=c(3873);let f=process.env.GSD_HOME||(0,e.join)((0,d.homedir)(),".gsd"),g=(0,e.join)(f,"agent"),h=(0,e.join)(f,"sessions"),i=(0,e.join)(g,"auth.json");(0,e.join)(f,"web-server.pid");let j=(0,e.join)(f,"web-preferences.json")},8335:()=>{},9225:(a,b,c)=>{"use strict";a.exports=c(4870)},9294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741],()=>b(b.s=4759));module.exports=c})();
1
+ (()=>{var a={};a.id=9560,a.ids=[9560],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1516:(a,b,c)=>{"use strict";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,{GET:()=>A,PUT:()=>B,dynamic:()=>z,runtime:()=>y});var e=c(9225),f=c(4006),g=c(8317),h=c(9373),i=c(4775),j=c(4235),k=c(261),l=c(4365),m=c(771),n=c(3461),o=c(7798),p=c(2280),q=c(2018),r=c(5696),s=c(7929),t=c(6439),u=c(7527),v=c(3024),w=c(6760),x=c(7849);let y="nodejs",z="force-dynamic";async function A(){try{if(!(0,v.existsSync)(x.Ic))return Response.json({});let a=(0,v.readFileSync)(x.Ic,"utf-8"),b=JSON.parse(a);return Response.json(b)}catch{return Response.json({})}}async function B(a){try{let b=await a.json(),c={};try{(0,v.existsSync)(x.Ic)&&(c=JSON.parse((0,v.readFileSync)(x.Ic,"utf-8")))}catch{}let d={...c};"string"==typeof b.devRoot&&(d.devRoot=b.devRoot),"string"==typeof b.lastActiveProject&&(d.lastActiveProject=b.lastActiveProject);let e=(0,w.dirname)(x.Ic);return(0,v.existsSync)(e)||(0,v.mkdirSync)(e,{recursive:!0}),(0,v.writeFileSync)(x.Ic,JSON.stringify(d,null,2),"utf-8"),Response.json(d)}catch(a){return Response.json({error:`Failed to write preferences: ${a instanceof Error?a.message:String(a)}`},{status:500})}}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/preferences/route",pathname:"/api/preferences",filename:"route",bundlePath:"app/api/preferences/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/__w/gsd-2/gsd-2/web/app/api/preferences/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/preferences/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}}},1820:a=>{"use strict";a.exports=require("os")},2280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(8208),e=c(7617),f=c(2018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},3024:a=>{"use strict";a.exports=require("node:fs")},3033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3873:a=>{"use strict";a.exports=require("path")},4870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6487:()=>{},6760:a=>{"use strict";a.exports=require("node:path")},7849:(a,b,c)=>{"use strict";c.d(b,{Ic:()=>j,_y:()=>f,sI:()=>i,vo:()=>h});var d=c(1820),e=c(3873);let f=process.env.GSD_HOME||(0,e.join)((0,d.homedir)(),".gsd"),g=(0,e.join)(f,"agent"),h=(0,e.join)(f,"sessions"),i=(0,e.join)(g,"auth.json");(0,e.join)(f,"web-server.pid");let j=(0,e.join)(f,"web-preferences.json")},8335:()=>{},9225:(a,b,c)=>{"use strict";a.exports=c(4870)},9294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741],()=>b(b.s=1516));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/preferences/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/_work/gsd-2/gsd-2/web/app/api/preferences/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/preferences/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/__w/gsd-2/gsd-2/web/app/api/preferences/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -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")},564:a=>{a.exports=require("@gsd/native")},846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1421:a=>{a.exports=require("node:child_process")},1820:a=>{a.exports=require("os")},3024:a=>{a.exports=require("node:fs")},3033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3136:a=>{a.exports=require("node:url")},3873:a=>{a.exports=require("path")},4870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6193:a=>{a.exports=require("node:string_decoder")},6246:(a,b,c)=>{c.d(b,{q:()=>i});var d=c(3024),e=c(6760),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[]}}},6283:(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(9225),f=c(4006),g=c(8317),h=c(9373),i=c(4775),j=c(4235),k=c(261),l=c(4365),m=c(771),n=c(3461),o=c(7798),p=c(2280),q=c(2018),r=c(5696),s=c(7929),t=c(6439),u=c(7527),v=c(3024),w=c(8161),x=c(6760),y=c(1421),z=c(6246),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}}},6439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6698:a=>{a.exports=require("node:async_hooks")},6760:a=>{a.exports=require("node:path")},7067:a=>{a.exports=require("node:http")},7598:a=>{a.exports=require("node:crypto")},8161:a=>{a.exports=require("node:os")},9294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},9868:a=>{a.exports=require("node:sqlite")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=6283));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")},564:a=>{a.exports=require("@gsd/native")},846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1421:a=>{a.exports=require("node:child_process")},1820:a=>{a.exports=require("os")},3024:a=>{a.exports=require("node:fs")},3033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3136:a=>{a.exports=require("node:url")},3873:a=>{a.exports=require("path")},4870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6193:a=>{a.exports=require("node:string_decoder")},6246:(a,b,c)=>{c.d(b,{q:()=>i});var d=c(3024),e=c(6760),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[]}}},6439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6698:a=>{a.exports=require("node:async_hooks")},6760:a=>{a.exports=require("node:path")},6931:(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(9225),f=c(4006),g=c(8317),h=c(9373),i=c(4775),j=c(4235),k=c(261),l=c(4365),m=c(771),n=c(3461),o=c(7798),p=c(2280),q=c(2018),r=c(5696),s=c(7929),t=c(6439),u=c(7527),v=c(3024),w=c(8161),x=c(6760),y=c(1421),z=c(6246),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}}},7067:a=>{a.exports=require("node:http")},7598:a=>{a.exports=require("node:crypto")},8161:a=>{a.exports=require("node:os")},9294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},9868:a=>{a.exports=require("node:sqlite")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=6931));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")},564:a=>{a.exports=require("@gsd/native")},846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1421:a=>{a.exports=require("node:child_process")},1820:a=>{a.exports=require("os")},3024:a=>{a.exports=require("node:fs")},3033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3136:a=>{a.exports=require("node:url")},3873:a=>{a.exports=require("path")},4870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6193:a=>{a.exports=require("node:string_decoder")},6310:(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(9225),f=c(4006),g=c(8317),h=c(9373),i=c(4775),j=c(4235),k=c(261),l=c(4365),m=c(771),n=c(3461),o=c(7798),p=c(2280),q=c(2018),r=c(5696),s=c(7929),t=c(6439),u=c(7527),v=c(1421),w=c(3024),x=c(6760),y=c(3136),z=c(7712),A=c(4431);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}}},6439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6698:a=>{a.exports=require("node:async_hooks")},6760:a=>{a.exports=require("node:path")},7067:a=>{a.exports=require("node:http")},7598:a=>{a.exports=require("node:crypto")},8161:a=>{a.exports=require("node:os")},9294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},9868:a=>{a.exports=require("node:sqlite")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=6310));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")},564:a=>{a.exports=require("@gsd/native")},846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1421:a=>{a.exports=require("node:child_process")},1820:a=>{a.exports=require("os")},3024:a=>{a.exports=require("node:fs")},3033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3136:a=>{a.exports=require("node:url")},3873:a=>{a.exports=require("path")},4870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6193:a=>{a.exports=require("node:string_decoder")},6439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6698:a=>{a.exports=require("node:async_hooks")},6760:a=>{a.exports=require("node:path")},7067:a=>{a.exports=require("node:http")},7598:a=>{a.exports=require("node:crypto")},8161:a=>{a.exports=require("node:os")},8864:(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(9225),f=c(4006),g=c(8317),h=c(9373),i=c(4775),j=c(4235),k=c(261),l=c(4365),m=c(771),n=c(3461),o=c(7798),p=c(2280),q=c(2018),r=c(5696),s=c(7929),t=c(6439),u=c(7527),v=c(1421),w=c(3024),x=c(6760),y=c(3136),z=c(7712),A=c(4431);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}}},9294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},9868:a=>{a.exports=require("node:sqlite")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=8864));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={83:(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(9225),f=c(4006),g=c(8317),h=c(9373),i=c(4775),j=c(4235),k=c(261),l=c(4365),m=c(771),n=c(3461),o=c(7798),p=c(2280),q=c(2018),r=c(5696),s=c(7929),t=c(6439),u=c(7527),v=c(8161),w=c(3024),x=c(6760),y=c(9784);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")},846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},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(9225),f=c(4006),g=c(8317),h=c(9373),i=c(4775),j=c(4235),k=c(261),l=c(4365),m=c(771),n=c(3461),o=c(7798),p=c(2280),q=c(2018),r=c(5696),s=c(7929),t=c(6439),u=c(7527),v=c(8161),w=c(3024),x=c(6760),y=c(9784);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}}},261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},3024:a=>{"use strict";a.exports=require("node:fs")},3033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},4870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6487:()=>{},6760:a=>{"use strict";a.exports=require("node:path")},8161:a=>{"use strict";a.exports=require("node:os")},8335:()=>{},9294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},9428:a=>{"use strict";a.exports=require("buffer")},9771:a=>{"use strict";a.exports=require("process")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,2331],()=>b(b.s=83));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}}},3024:a=>{"use strict";a.exports=require("node:fs")},3033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},4870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6487:()=>{},6760:a=>{"use strict";a.exports=require("node:path")},8161:a=>{"use strict";a.exports=require("node:os")},8335:()=>{},9294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},9428:a=>{"use strict";a.exports=require("buffer")},9771:a=>{"use strict";a.exports=require("process")}};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")},564:a=>{a.exports=require("@gsd/native")},846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1421:a=>{a.exports=require("node:child_process")},1820:a=>{a.exports=require("os")},2840:(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(9225),f=c(4006),g=c(8317),h=c(9373),i=c(4775),j=c(4235),k=c(261),l=c(4365),m=c(771),n=c(3461),o=c(7798),p=c(2280),q=c(2018),r=c(5696),s=c(7929),t=c(6439),u=c(7527),v=c(7712),w=c(6460);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}}},3024:a=>{a.exports=require("node:fs")},3033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3136:a=>{a.exports=require("node:url")},3873:a=>{a.exports=require("path")},4870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6193:a=>{a.exports=require("node:string_decoder")},6439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6698:a=>{a.exports=require("node:async_hooks")},6760:a=>{a.exports=require("node:path")},7067:a=>{a.exports=require("node:http")},7598:a=>{a.exports=require("node:crypto")},8161:a=>{a.exports=require("node:os")},9294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},9868:a=>{a.exports=require("node:sqlite")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=2840));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")},564:a=>{a.exports=require("@gsd/native")},846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1421:a=>{a.exports=require("node:child_process")},1820:a=>{a.exports=require("os")},3024:a=>{a.exports=require("node:fs")},3033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3136:a=>{a.exports=require("node:url")},3873:a=>{a.exports=require("path")},4870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},5361:(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(9225),f=c(4006),g=c(8317),h=c(9373),i=c(4775),j=c(4235),k=c(261),l=c(4365),m=c(771),n=c(3461),o=c(7798),p=c(2280),q=c(2018),r=c(5696),s=c(7929),t=c(6439),u=c(7527),v=c(7712),w=c(6460);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}}},6193:a=>{a.exports=require("node:string_decoder")},6439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6698:a=>{a.exports=require("node:async_hooks")},6760:a=>{a.exports=require("node:path")},7067:a=>{a.exports=require("node:http")},7598:a=>{a.exports=require("node:crypto")},8161:a=>{a.exports=require("node:os")},9294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},9868:a=>{a.exports=require("node:sqlite")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=5361));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")},564:a=>{a.exports=require("@gsd/native")},846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1421:a=>{a.exports=require("node:child_process")},1820:a=>{a.exports=require("os")},1916:(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(9225),f=c(4006),g=c(8317),h=c(9373),i=c(4775),j=c(4235),k=c(261),l=c(4365),m=c(771),n=c(3461),o=c(7798),p=c(2280),q=c(2018),r=c(5696),s=c(7929),t=c(6439),u=c(7527),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}}},3024:a=>{a.exports=require("node:fs")},3033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3136:a=>{a.exports=require("node:url")},3873:a=>{a.exports=require("path")},4870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6193:a=>{a.exports=require("node:string_decoder")},6439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6698:a=>{a.exports=require("node:async_hooks")},6760:a=>{a.exports=require("node:path")},7067:a=>{a.exports=require("node:http")},7598:a=>{a.exports=require("node:crypto")},8161:a=>{a.exports=require("node:os")},9294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},9868:a=>{a.exports=require("node:sqlite")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=1916));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")},564:a=>{a.exports=require("@gsd/native")},846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1421:a=>{a.exports=require("node:child_process")},1820:a=>{a.exports=require("os")},3024:a=>{a.exports=require("node:fs")},3033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3136:a=>{a.exports=require("node:url")},3873:a=>{a.exports=require("path")},4870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},5747:(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(9225),f=c(4006),g=c(8317),h=c(9373),i=c(4775),j=c(4235),k=c(261),l=c(4365),m=c(771),n=c(3461),o=c(7798),p=c(2280),q=c(2018),r=c(5696),s=c(7929),t=c(6439),u=c(7527),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}}},6193:a=>{a.exports=require("node:string_decoder")},6439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6698:a=>{a.exports=require("node:async_hooks")},6760:a=>{a.exports=require("node:path")},7067:a=>{a.exports=require("node:http")},7598:a=>{a.exports=require("node:crypto")},8161:a=>{a.exports=require("node:os")},9294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},9868:a=>{a.exports=require("node:sqlite")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=5747));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,5 @@
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")},564:a=>{a.exports=require("@gsd/native")},846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1421:a=>{a.exports=require("node:child_process")},1820:a=>{a.exports=require("os")},3024:a=>{a.exports=require("node:fs")},3033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3136:a=>{a.exports=require("node:url")},3873:a=>{a.exports=require("path")},4870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},5058:(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(9225),f=c(4006),g=c(8317),h=c(9373),i=c(4775),j=c(4235),k=c(261),l=c(4365),m=c(771),n=c(3461),o=c(7798),p=c(2280),q=c(2018),r=c(5696),s=c(7929),t=c(6439),u=c(7527),v=c(7712),w=c(8714);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")},564:a=>{a.exports=require("@gsd/native")},846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1421:a=>{a.exports=require("node:child_process")},1820:a=>{a.exports=require("os")},3024:a=>{a.exports=require("node:fs")},3033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3136:a=>{a.exports=require("node:url")},3873:a=>{a.exports=require("path")},4870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6193:a=>{a.exports=require("node:string_decoder")},6439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6698:a=>{a.exports=require("node:async_hooks")},6760:a=>{a.exports=require("node:path")},7067:a=>{a.exports=require("node:http")},7598:a=>{a.exports=require("node:crypto")},8086:(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(9225),f=c(4006),g=c(8317),h=c(9373),i=c(4775),j=c(4235),k=c(261),l=c(4365),m=c(771),n=c(3461),o=c(7798),p=c(2280),q=c(2018),r=c(5696),s=c(7929),t=c(6439),u=c(7527),v=c(7712),w=c(8714);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,f=null,g=a=>{e||(e=!0,d?.(),d=null,f?.(),f=null,a.close())};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}}},6193:a=>{a.exports=require("node:string_decoder")},6439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6698:a=>{a.exports=require("node:async_hooks")},6760:a=>{a.exports=require("node:path")},7067:a=>{a.exports=require("node:http")},7598:a=>{a.exports=require("node:crypto")},8161:a=>{a.exports=require("node:os")},8714:(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)}},9294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},9868:a=>{a.exports=require("node:sqlite")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=5058));module.exports=c})();
3
+ `))}),f=(0,w.iT)(()=>{if(!e){try{b.enqueue(z.encode(`data: ${JSON.stringify({type:"shutdown"})}
4
+
5
+ `))}catch{}g(b)}}),a.signal.addEventListener("abort",()=>g(b),{once:!0})},cancel(){e||(e=!0,d?.(),d=null,f?.(),f=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}}},8161:a=>{a.exports=require("node:os")},8714:(a,b,c)=>{c.d(b,{UU:()=>j,iT:()=>h,tO:()=>k,w9:()=>i}),a=c.hmd(a),globalThis.__gsdShutdownGate||(globalThis.__gsdShutdownGate={shutdownTimer:null,activeStreams:new Set,lastBootAt:0,handlersRegistered:!1});let d=globalThis.__gsdShutdownGate;function e(){for(let a of d.activeStreams)try{a()}catch{}d.activeStreams.clear()}function f(){e()}d.handlersRegistered??=!1;let g=a.hot;function h(a){return d.activeStreams.add(a),function(){d.activeStreams.delete(a)}}function i(){d.lastBootAt=Date.now()}function j(){"1"!==process.env.GSD_WEB_DAEMON_MODE&&(null!==d.shutdownTimer&&clearTimeout(d.shutdownTimer),d.shutdownTimer=setTimeout(()=>{d.shutdownTimer=null,Date.now()-d.lastBootAt<3e3||(e(),process.exit(0))},3e3))}function k(){null!==d.shutdownTimer&&(clearTimeout(d.shutdownTimer),d.shutdownTimer=null)}d.handlersRegistered||(process.on("SIGTERM",f),process.on("beforeExit",f),d.handlersRegistered=!0,g?.dispose(()=>{process.off("SIGTERM",f),process.off("beforeExit",f),d.handlersRegistered=!1}))},9294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},9868:a=>{a.exports=require("node:sqlite")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,6897],()=>b(b.s=8086));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":{}};