gsd-pi 2.69.0 → 2.70.0-dev.8f4d92b

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 (233) hide show
  1. package/dist/loader.js +4 -0
  2. package/dist/resources/extensions/claude-code-cli/stream-adapter.js +150 -2
  3. package/dist/resources/extensions/gsd/auto-prompts.js +7 -3
  4. package/dist/resources/extensions/gsd/auto.js +12 -8
  5. package/dist/resources/extensions/gsd/bootstrap/system-context.js +6 -2
  6. package/dist/resources/extensions/gsd/commands-cmux.js +30 -1
  7. package/dist/resources/extensions/gsd/commands-handlers.js +22 -8
  8. package/dist/resources/extensions/gsd/doctor-engine-checks.js +12 -0
  9. package/dist/resources/extensions/gsd/doctor-format.js +2 -0
  10. package/dist/resources/extensions/gsd/guided-flow.js +19 -9
  11. package/dist/resources/extensions/gsd/pre-execution-checks.js +2 -2
  12. package/dist/resources/extensions/gsd/workflow-mcp.js +64 -6
  13. package/dist/update-check.d.ts +1 -0
  14. package/dist/update-check.js +30 -27
  15. package/dist/update-cmd.js +3 -11
  16. package/dist/web/standalone/.next/BUILD_ID +1 -1
  17. package/dist/web/standalone/.next/app-path-routes-manifest.json +12 -12
  18. package/dist/web/standalone/.next/build-manifest.json +3 -3
  19. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  20. package/dist/web/standalone/.next/required-server-files.json +4 -4
  21. package/dist/web/standalone/.next/server/app/_global-error/page.js +3 -3
  22. package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  23. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  24. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  25. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  26. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  27. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  28. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  29. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  30. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  31. package/dist/web/standalone/.next/server/app/_not-found/page.js +2 -2
  32. package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  33. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  34. package/dist/web/standalone/.next/server/app/_not-found.rsc +3 -3
  35. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  36. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  37. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  38. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  39. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  40. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  41. package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
  42. package/dist/web/standalone/.next/server/app/api/boot/route_client-reference-manifest.js +1 -1
  43. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
  44. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route_client-reference-manifest.js +1 -1
  45. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
  46. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route_client-reference-manifest.js +1 -1
  47. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
  48. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route_client-reference-manifest.js +1 -1
  49. package/dist/web/standalone/.next/server/app/api/browse-directories/route.js +1 -1
  50. package/dist/web/standalone/.next/server/app/api/browse-directories/route_client-reference-manifest.js +1 -1
  51. package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
  52. package/dist/web/standalone/.next/server/app/api/captures/route_client-reference-manifest.js +1 -1
  53. package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
  54. package/dist/web/standalone/.next/server/app/api/cleanup/route_client-reference-manifest.js +1 -1
  55. package/dist/web/standalone/.next/server/app/api/dev-mode/route.js +1 -1
  56. package/dist/web/standalone/.next/server/app/api/dev-mode/route_client-reference-manifest.js +1 -1
  57. package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
  58. package/dist/web/standalone/.next/server/app/api/doctor/route_client-reference-manifest.js +1 -1
  59. package/dist/web/standalone/.next/server/app/api/experimental/route.js +2 -2
  60. package/dist/web/standalone/.next/server/app/api/experimental/route_client-reference-manifest.js +1 -1
  61. package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
  62. package/dist/web/standalone/.next/server/app/api/export-data/route_client-reference-manifest.js +1 -1
  63. package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
  64. package/dist/web/standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
  65. package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
  66. package/dist/web/standalone/.next/server/app/api/forensics/route_client-reference-manifest.js +1 -1
  67. package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
  68. package/dist/web/standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  69. package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
  70. package/dist/web/standalone/.next/server/app/api/history/route_client-reference-manifest.js +1 -1
  71. package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
  72. package/dist/web/standalone/.next/server/app/api/hooks/route_client-reference-manifest.js +1 -1
  73. package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
  74. package/dist/web/standalone/.next/server/app/api/inspect/route_client-reference-manifest.js +1 -1
  75. package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
  76. package/dist/web/standalone/.next/server/app/api/knowledge/route_client-reference-manifest.js +1 -1
  77. package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
  78. package/dist/web/standalone/.next/server/app/api/live-state/route_client-reference-manifest.js +1 -1
  79. package/dist/web/standalone/.next/server/app/api/notifications/route.js +2 -2
  80. package/dist/web/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  81. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  82. package/dist/web/standalone/.next/server/app/api/onboarding/route_client-reference-manifest.js +1 -1
  83. package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
  84. package/dist/web/standalone/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -1
  85. package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
  86. package/dist/web/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  87. package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
  88. package/dist/web/standalone/.next/server/app/api/recovery/route_client-reference-manifest.js +1 -1
  89. package/dist/web/standalone/.next/server/app/api/remote-questions/route.js +2 -2
  90. package/dist/web/standalone/.next/server/app/api/remote-questions/route_client-reference-manifest.js +1 -1
  91. package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
  92. package/dist/web/standalone/.next/server/app/api/session/browser/route_client-reference-manifest.js +1 -1
  93. package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
  94. package/dist/web/standalone/.next/server/app/api/session/command/route_client-reference-manifest.js +1 -1
  95. package/dist/web/standalone/.next/server/app/api/session/events/route.js +2 -2
  96. package/dist/web/standalone/.next/server/app/api/session/events/route_client-reference-manifest.js +1 -1
  97. package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
  98. package/dist/web/standalone/.next/server/app/api/session/manage/route_client-reference-manifest.js +1 -1
  99. package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
  100. package/dist/web/standalone/.next/server/app/api/settings-data/route_client-reference-manifest.js +1 -1
  101. package/dist/web/standalone/.next/server/app/api/shutdown/route.js +1 -1
  102. package/dist/web/standalone/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  103. package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
  104. package/dist/web/standalone/.next/server/app/api/skill-health/route_client-reference-manifest.js +1 -1
  105. package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
  106. package/dist/web/standalone/.next/server/app/api/steer/route_client-reference-manifest.js +1 -1
  107. package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
  108. package/dist/web/standalone/.next/server/app/api/switch-root/route_client-reference-manifest.js +1 -1
  109. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +1 -1
  110. package/dist/web/standalone/.next/server/app/api/terminal/input/route_client-reference-manifest.js +1 -1
  111. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +2 -2
  112. package/dist/web/standalone/.next/server/app/api/terminal/resize/route_client-reference-manifest.js +1 -1
  113. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +1 -1
  114. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route_client-reference-manifest.js +1 -1
  115. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +2 -2
  116. package/dist/web/standalone/.next/server/app/api/terminal/stream/route_client-reference-manifest.js +1 -1
  117. package/dist/web/standalone/.next/server/app/api/terminal/upload/route.js +1 -1
  118. package/dist/web/standalone/.next/server/app/api/terminal/upload/route_client-reference-manifest.js +1 -1
  119. package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
  120. package/dist/web/standalone/.next/server/app/api/undo/route_client-reference-manifest.js +1 -1
  121. package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
  122. package/dist/web/standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  123. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  124. package/dist/web/standalone/.next/server/app/api/visualizer/route_client-reference-manifest.js +1 -1
  125. package/dist/web/standalone/.next/server/app/index.html +1 -1
  126. package/dist/web/standalone/.next/server/app/index.rsc +4 -4
  127. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  128. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
  129. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  130. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
  131. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  132. package/dist/web/standalone/.next/server/app/page.js +2 -2
  133. package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  134. package/dist/web/standalone/.next/server/app-paths-manifest.json +12 -12
  135. package/dist/web/standalone/.next/server/chunks/63.js +3 -3
  136. package/dist/web/standalone/.next/server/chunks/6897.js +3 -3
  137. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  138. package/dist/web/standalone/.next/server/middleware.js +2 -2
  139. package/dist/web/standalone/.next/server/next-font-manifest.js +1 -1
  140. package/dist/web/standalone/.next/server/next-font-manifest.json +1 -1
  141. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  142. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  143. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  144. package/dist/web/standalone/.next/static/chunks/app/_not-found/{page-2f24283c162b6ab3.js → page-f2a7482d42a5614b.js} +1 -1
  145. package/dist/web/standalone/.next/static/chunks/app/{layout-9ecfd95f343793f0.js → layout-a16c7a7ecdf0c2cf.js} +1 -1
  146. package/dist/web/standalone/.next/static/chunks/app/page-f1e30ab6bb269149.js +1 -0
  147. package/dist/web/standalone/.next/static/chunks/main-app-fdab67f7802d7832.js +1 -0
  148. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-459824ffb8c323dd.js +1 -0
  149. package/dist/web/standalone/node_modules/node-pty/build/Makefile +2 -2
  150. package/dist/web/standalone/node_modules/node-pty/build/Release/pty.node +0 -0
  151. package/dist/web/standalone/node_modules/node-pty/build/pty.target.mk +14 -14
  152. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api.target.mk +14 -14
  153. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_except.target.mk +14 -14
  154. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_maybe.target.mk +14 -14
  155. package/dist/web/standalone/server.js +1 -1
  156. package/package.json +1 -1
  157. package/packages/daemon/src/orchestrator.ts +9 -84
  158. package/packages/mcp-server/README.md +25 -3
  159. package/packages/mcp-server/dist/cli.d.ts +0 -1
  160. package/packages/mcp-server/dist/cli.d.ts.map +1 -1
  161. package/packages/mcp-server/dist/cli.js +4 -2
  162. package/packages/mcp-server/dist/cli.js.map +1 -1
  163. package/packages/mcp-server/dist/server.d.ts +32 -1
  164. package/packages/mcp-server/dist/server.d.ts.map +1 -1
  165. package/packages/mcp-server/dist/server.js +118 -1
  166. package/packages/mcp-server/dist/server.js.map +1 -1
  167. package/packages/mcp-server/dist/tool-credentials.d.ts +6 -0
  168. package/packages/mcp-server/dist/tool-credentials.d.ts.map +1 -0
  169. package/packages/mcp-server/dist/tool-credentials.js +90 -0
  170. package/packages/mcp-server/dist/tool-credentials.js.map +1 -0
  171. package/packages/mcp-server/dist/workflow-tools.d.ts +3 -0
  172. package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
  173. package/packages/mcp-server/dist/workflow-tools.js +308 -4
  174. package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
  175. package/packages/mcp-server/src/cli.ts +5 -3
  176. package/packages/mcp-server/src/import-candidates.test.ts +48 -0
  177. package/packages/mcp-server/src/mcp-server.test.ts +85 -1
  178. package/packages/mcp-server/src/server.ts +188 -1
  179. package/packages/mcp-server/src/tool-credentials.test.ts +95 -0
  180. package/packages/mcp-server/src/tool-credentials.ts +97 -0
  181. package/packages/mcp-server/src/workflow-tools.test.ts +32 -25
  182. package/packages/mcp-server/src/workflow-tools.ts +398 -2
  183. package/packages/pi-agent-core/dist/agent.d.ts +8 -0
  184. package/packages/pi-agent-core/dist/agent.d.ts.map +1 -1
  185. package/packages/pi-agent-core/dist/agent.js +3 -0
  186. package/packages/pi-agent-core/dist/agent.js.map +1 -1
  187. package/packages/pi-agent-core/src/agent.test.ts +82 -0
  188. package/packages/pi-agent-core/src/agent.ts +12 -0
  189. package/packages/pi-ai/dist/providers/anthropic.d.ts.map +1 -1
  190. package/packages/pi-ai/dist/providers/anthropic.js +1 -23
  191. package/packages/pi-ai/dist/providers/anthropic.js.map +1 -1
  192. package/packages/pi-ai/dist/utils/oauth/index.d.ts +3 -2
  193. package/packages/pi-ai/dist/utils/oauth/index.d.ts.map +1 -1
  194. package/packages/pi-ai/dist/utils/oauth/index.js +3 -5
  195. package/packages/pi-ai/dist/utils/oauth/index.js.map +1 -1
  196. package/packages/pi-ai/src/providers/anthropic.ts +1 -31
  197. package/packages/pi-ai/src/utils/oauth/index.ts +3 -5
  198. package/packages/pi-coding-agent/dist/core/sdk.d.ts.map +1 -1
  199. package/packages/pi-coding-agent/dist/core/sdk.js +10 -0
  200. package/packages/pi-coding-agent/dist/core/sdk.js.map +1 -1
  201. package/packages/pi-coding-agent/package.json +1 -1
  202. package/packages/pi-coding-agent/src/core/sdk.ts +8 -0
  203. package/pkg/package.json +1 -1
  204. package/src/resources/extensions/claude-code-cli/stream-adapter.ts +227 -2
  205. package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +172 -0
  206. package/src/resources/extensions/gsd/auto-prompts.ts +7 -3
  207. package/src/resources/extensions/gsd/auto.ts +12 -8
  208. package/src/resources/extensions/gsd/bootstrap/system-context.ts +9 -5
  209. package/src/resources/extensions/gsd/commands-cmux.ts +32 -1
  210. package/src/resources/extensions/gsd/commands-handlers.ts +22 -7
  211. package/src/resources/extensions/gsd/doctor-engine-checks.ts +14 -0
  212. package/src/resources/extensions/gsd/doctor-format.ts +1 -0
  213. package/src/resources/extensions/gsd/doctor-types.ts +1 -0
  214. package/src/resources/extensions/gsd/guided-flow.ts +23 -8
  215. package/src/resources/extensions/gsd/pre-execution-checks.ts +2 -2
  216. package/src/resources/extensions/gsd/tests/cmux.test.ts +67 -1
  217. package/src/resources/extensions/gsd/tests/doctor-scope-db-unavailable.test.ts +43 -0
  218. package/src/resources/extensions/gsd/tests/mcp-project-config.test.ts +6 -2
  219. package/src/resources/extensions/gsd/tests/pre-exec-backtick-strip.test.ts +48 -1
  220. package/src/resources/extensions/gsd/tests/resource-loader-import-path.test.ts +8 -7
  221. package/src/resources/extensions/gsd/tests/validate-milestone.test.ts +87 -1
  222. package/src/resources/extensions/gsd/tests/workflow-mcp.test.ts +48 -7
  223. package/src/resources/extensions/gsd/workflow-mcp.ts +74 -5
  224. package/dist/web/standalone/.next/static/chunks/app/page-7115e62689b5fd84.js +0 -1
  225. package/dist/web/standalone/.next/static/chunks/main-app-d3d4c336195465f9.js +0 -1
  226. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-ab5a8926e07ec673.js +0 -1
  227. package/packages/pi-ai/dist/utils/oauth/anthropic.d.ts +0 -17
  228. package/packages/pi-ai/dist/utils/oauth/anthropic.d.ts.map +0 -1
  229. package/packages/pi-ai/dist/utils/oauth/anthropic.js +0 -106
  230. package/packages/pi-ai/dist/utils/oauth/anthropic.js.map +0 -1
  231. package/packages/pi-ai/src/utils/oauth/anthropic.ts +0 -140
  232. /package/dist/web/standalone/.next/static/{DrWdzskk28E5Qz-Wjw1mj → j_Ae_qOKzzIlA6oFOxVx4}/_buildManifest.js +0 -0
  233. /package/dist/web/standalone/.next/static/{DrWdzskk28E5Qz-Wjw1mj → j_Ae_qOKzzIlA6oFOxVx4}/_ssgManifest.js +0 -0
@@ -1,24 +1,37 @@
1
1
  import { execSync } from "node:child_process";
2
2
  import { existsSync } from "node:fs";
3
3
  import { dirname, resolve } from "node:path";
4
- import { fileURLToPath } from "node:url";
4
+ import { fileURLToPath, pathToFileURL } from "node:url";
5
5
  const MCP_WORKFLOW_TOOL_SURFACE = new Set([
6
+ "ask_user_questions",
7
+ "gsd_decision_save",
6
8
  "gsd_complete_milestone",
7
9
  "gsd_complete_task",
8
10
  "gsd_complete_slice",
11
+ "gsd_generate_milestone_id",
12
+ "gsd_journal_query",
9
13
  "gsd_milestone_complete",
14
+ "gsd_milestone_generate_id",
10
15
  "gsd_milestone_status",
11
16
  "gsd_milestone_validate",
17
+ "gsd_plan_task",
12
18
  "gsd_plan_milestone",
13
19
  "gsd_plan_slice",
14
20
  "gsd_replan_slice",
15
21
  "gsd_reassess_roadmap",
22
+ "gsd_requirement_save",
23
+ "gsd_requirement_update",
16
24
  "gsd_roadmap_reassess",
25
+ "gsd_save_decision",
17
26
  "gsd_save_gate_result",
27
+ "gsd_save_requirement",
28
+ "gsd_skip_slice",
18
29
  "gsd_slice_replan",
19
30
  "gsd_slice_complete",
20
31
  "gsd_summary_save",
32
+ "gsd_task_plan",
21
33
  "gsd_task_complete",
34
+ "gsd_update_requirement",
22
35
  "gsd_validate_milestone",
23
36
  ]);
24
37
  function parseLookupOutput(output) {
@@ -73,6 +86,8 @@ function getBundledWorkflowMcpCliPath(env) {
73
86
  return candidate;
74
87
  }
75
88
  const candidates = [
89
+ resolve(fileURLToPath(new URL("../../../../packages/mcp-server/src/cli.ts", import.meta.url))),
90
+ resolve(fileURLToPath(new URL("../../../../../packages/mcp-server/src/cli.ts", import.meta.url))),
76
91
  resolve(fileURLToPath(new URL("../../../../packages/mcp-server/dist/cli.js", import.meta.url))),
77
92
  resolve(fileURLToPath(new URL("../../../../../packages/mcp-server/dist/cli.js", import.meta.url))),
78
93
  ];
@@ -84,9 +99,9 @@ function getBundledWorkflowMcpCliPath(env) {
84
99
  }
85
100
  function getBundledWorkflowExecutorModulePath() {
86
101
  const candidates = [
87
- resolve(fileURLToPath(new URL("../../../../dist/resources/extensions/gsd/tools/workflow-tool-executors.js", import.meta.url))),
88
102
  resolve(fileURLToPath(new URL("./tools/workflow-tool-executors.js", import.meta.url))),
89
103
  resolve(fileURLToPath(new URL("./tools/workflow-tool-executors.ts", import.meta.url))),
104
+ resolve(fileURLToPath(new URL("../../../../dist/resources/extensions/gsd/tools/workflow-tool-executors.js", import.meta.url))),
90
105
  ];
91
106
  for (const candidate of candidates) {
92
107
  if (existsSync(candidate))
@@ -96,9 +111,9 @@ function getBundledWorkflowExecutorModulePath() {
96
111
  }
97
112
  function getBundledWorkflowWriteGateModulePath() {
98
113
  const candidates = [
99
- resolve(fileURLToPath(new URL("../../../../dist/resources/extensions/gsd/bootstrap/write-gate.js", import.meta.url))),
100
114
  resolve(fileURLToPath(new URL("./bootstrap/write-gate.js", import.meta.url))),
101
115
  resolve(fileURLToPath(new URL("./bootstrap/write-gate.ts", import.meta.url))),
116
+ resolve(fileURLToPath(new URL("../../../../dist/resources/extensions/gsd/bootstrap/write-gate.js", import.meta.url))),
102
117
  ];
103
118
  for (const candidate of candidates) {
104
119
  if (existsSync(candidate))
@@ -106,14 +121,46 @@ function getBundledWorkflowWriteGateModulePath() {
106
121
  }
107
122
  return null;
108
123
  }
109
- function buildWorkflowLaunchEnv(projectRoot, gsdCliPath, explicitEnv) {
124
+ function getResolveTsHookPath() {
125
+ const candidates = [
126
+ resolve(fileURLToPath(new URL("./tests/resolve-ts.mjs", import.meta.url))),
127
+ resolve(fileURLToPath(new URL("../../../../src/resources/extensions/gsd/tests/resolve-ts.mjs", import.meta.url))),
128
+ ];
129
+ for (const candidate of candidates) {
130
+ if (existsSync(candidate))
131
+ return candidate;
132
+ }
133
+ return null;
134
+ }
135
+ function mergeNodeOptions(existing, additions) {
136
+ const tokens = (existing ?? "").split(/\s+/).map((value) => value.trim()).filter(Boolean);
137
+ for (const addition of additions) {
138
+ if (!tokens.includes(addition)) {
139
+ tokens.push(addition);
140
+ }
141
+ }
142
+ return tokens.length > 0 ? tokens.join(" ") : undefined;
143
+ }
144
+ function buildWorkflowLaunchEnv(projectRoot, gsdCliPath, explicitEnv, workflowCliPath) {
110
145
  const executorModulePath = getBundledWorkflowExecutorModulePath();
111
146
  const writeGateModulePath = getBundledWorkflowWriteGateModulePath();
147
+ const resolveTsHookPath = getResolveTsHookPath();
148
+ const wantsSourceTs = Boolean(resolveTsHookPath) &&
149
+ ((workflowCliPath?.endsWith(".ts") ?? false) ||
150
+ (executorModulePath?.endsWith(".ts") ?? false) ||
151
+ (writeGateModulePath?.endsWith(".ts") ?? false));
152
+ const nodeOptions = wantsSourceTs
153
+ ? mergeNodeOptions(explicitEnv?.NODE_OPTIONS, [
154
+ "--experimental-strip-types",
155
+ `--import=${pathToFileURL(resolveTsHookPath).href}`,
156
+ ])
157
+ : explicitEnv?.NODE_OPTIONS;
112
158
  return {
113
159
  ...(explicitEnv ?? {}),
114
160
  ...(gsdCliPath ? { GSD_CLI_PATH: gsdCliPath } : {}),
115
161
  ...(executorModulePath ? { GSD_WORKFLOW_EXECUTORS_MODULE: executorModulePath } : {}),
116
162
  ...(writeGateModulePath ? { GSD_WORKFLOW_WRITE_GATE_MODULE: writeGateModulePath } : {}),
163
+ ...(nodeOptions ? { NODE_OPTIONS: nodeOptions } : {}),
117
164
  GSD_PERSIST_WRITE_GATE_STATE: "1",
118
165
  GSD_WORKFLOW_PROJECT_ROOT: projectRoot,
119
166
  };
@@ -148,7 +195,7 @@ export function detectWorkflowMcpLaunchConfig(projectRoot = process.cwd(), env =
148
195
  command: process.execPath,
149
196
  args: [distCli],
150
197
  cwd: resolvedWorkflowProjectRoot,
151
- env: buildWorkflowLaunchEnv(resolvedWorkflowProjectRoot, gsdCliPath),
198
+ env: buildWorkflowLaunchEnv(resolvedWorkflowProjectRoot, gsdCliPath, undefined, distCli),
152
199
  };
153
200
  }
154
201
  const bundledCli = getBundledWorkflowMcpCliPath(env);
@@ -158,7 +205,7 @@ export function detectWorkflowMcpLaunchConfig(projectRoot = process.cwd(), env =
158
205
  command: process.execPath,
159
206
  args: [bundledCli],
160
207
  cwd: resolvedWorkflowProjectRoot,
161
- env: buildWorkflowLaunchEnv(resolvedWorkflowProjectRoot, gsdCliPath),
208
+ env: buildWorkflowLaunchEnv(resolvedWorkflowProjectRoot, gsdCliPath, undefined, bundledCli),
162
209
  };
163
210
  }
164
211
  const binPath = lookupCommand("gsd-mcp-server");
@@ -240,6 +287,17 @@ export function getRequiredWorkflowToolsForAutoUnit(unitType) {
240
287
  export function usesWorkflowMcpTransport(authMode, baseUrl) {
241
288
  return authMode === "externalCli" && typeof baseUrl === "string" && baseUrl.startsWith("local://");
242
289
  }
290
+ export function supportsStructuredQuestions(activeTools, options = {}) {
291
+ if (!activeTools.includes("ask_user_questions"))
292
+ return false;
293
+ // Workflow MCP currently exposes ask_user_questions via MCP form elicitation.
294
+ // Local external CLI transports such as Claude Code can invoke the tool, but
295
+ // do not reliably complete that elicitation round-trip yet, so guided discuss
296
+ // prompts must fall back to plain-text questioning.
297
+ if (usesWorkflowMcpTransport(options.authMode, options.baseUrl))
298
+ return false;
299
+ return true;
300
+ }
243
301
  export function getWorkflowTransportSupportError(provider, requiredTools, options = {}) {
244
302
  if (!provider || requiredTools.length === 0)
245
303
  return null;
@@ -8,6 +8,7 @@ interface UpdateCheckCache {
8
8
  export declare function compareSemver(a: string, b: string): number;
9
9
  export declare function readUpdateCache(cachePath?: string): UpdateCheckCache | null;
10
10
  export declare function writeUpdateCache(cache: UpdateCheckCache, cachePath?: string): void;
11
+ export declare function fetchLatestVersionFromRegistry(registryUrl?: string, fetchTimeoutMs?: number): Promise<string | null>;
11
12
  export interface UpdateCheckOptions {
12
13
  currentVersion?: string;
13
14
  cachePath?: string;
@@ -7,6 +7,7 @@ const CACHE_FILE = join(appRoot, '.update-check');
7
7
  const NPM_PACKAGE_NAME = 'gsd-pi';
8
8
  const CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000; // 24 hours
9
9
  const FETCH_TIMEOUT_MS = 5000;
10
+ const DEFAULT_REGISTRY_URL = `https://registry.npmjs.org/${NPM_PACKAGE_NAME}/latest`;
10
11
  /**
11
12
  * Compares two semver strings. Returns 1 if a > b, -1 if a < b, 0 if equal.
12
13
  */
@@ -42,6 +43,29 @@ export function writeUpdateCache(cache, cachePath = CACHE_FILE) {
42
43
  // Non-fatal — don't block startup if cache write fails
43
44
  }
44
45
  }
46
+ function normalizeLatestVersion(version) {
47
+ if (typeof version !== 'string')
48
+ return null;
49
+ const trimmed = version.trim().replace(/^v/, '');
50
+ return trimmed.length > 0 ? trimmed : null;
51
+ }
52
+ export async function fetchLatestVersionFromRegistry(registryUrl = DEFAULT_REGISTRY_URL, fetchTimeoutMs = FETCH_TIMEOUT_MS) {
53
+ const controller = new AbortController();
54
+ const timeout = setTimeout(() => controller.abort(), fetchTimeoutMs);
55
+ try {
56
+ const res = await fetch(registryUrl, { signal: controller.signal });
57
+ if (!res.ok)
58
+ return null;
59
+ const data = (await res.json());
60
+ return normalizeLatestVersion(data.version);
61
+ }
62
+ catch {
63
+ return null;
64
+ }
65
+ finally {
66
+ clearTimeout(timeout);
67
+ }
68
+ }
45
69
  function printUpdateBanner(current, latest) {
46
70
  process.stderr.write(` ${chalk.yellow('Update available:')} ${chalk.dim(`v${current}`)} → ${chalk.bold(`v${latest}`)}\n` +
47
71
  ` ${chalk.dim('Run')} npm update -g gsd-pi ${chalk.dim('or')} /gsd update ${chalk.dim('to upgrade')}\n\n`);
@@ -53,7 +77,7 @@ function printUpdateBanner(current, latest) {
53
77
  export async function checkForUpdates(options = {}) {
54
78
  const currentVersion = options.currentVersion || process.env.GSD_VERSION || '0.0.0';
55
79
  const cachePath = options.cachePath || CACHE_FILE;
56
- const registryUrl = options.registryUrl || `https://registry.npmjs.org/${NPM_PACKAGE_NAME}/latest`;
80
+ const registryUrl = options.registryUrl || DEFAULT_REGISTRY_URL;
57
81
  const checkIntervalMs = options.checkIntervalMs ?? CHECK_INTERVAL_MS;
58
82
  const fetchTimeoutMs = options.fetchTimeoutMs ?? FETCH_TIMEOUT_MS;
59
83
  const onUpdate = options.onUpdate || printUpdateBanner;
@@ -65,16 +89,8 @@ export async function checkForUpdates(options = {}) {
65
89
  }
66
90
  return;
67
91
  }
68
- // Fetch latest version from npm registry
69
- const controller = new AbortController();
70
- const timeout = setTimeout(() => controller.abort(), fetchTimeoutMs);
71
92
  try {
72
- const res = await fetch(registryUrl, { signal: controller.signal });
73
- clearTimeout(timeout);
74
- if (!res.ok)
75
- return;
76
- const data = (await res.json());
77
- const latestVersion = data.version;
93
+ const latestVersion = await fetchLatestVersionFromRegistry(registryUrl, fetchTimeoutMs);
78
94
  if (!latestVersion)
79
95
  return;
80
96
  writeUpdateCache({ lastCheck: Date.now(), latestVersion }, cachePath);
@@ -85,9 +101,6 @@ export async function checkForUpdates(options = {}) {
85
101
  catch {
86
102
  // Network error or timeout — silently ignore, don't block startup
87
103
  }
88
- finally {
89
- clearTimeout(timeout);
90
- }
91
104
  }
92
105
  const PROMPT_TIMEOUT_MS = 30_000;
93
106
  /**
@@ -101,7 +114,7 @@ const PROMPT_TIMEOUT_MS = 30_000;
101
114
  export async function checkAndPromptForUpdates(options = {}) {
102
115
  const currentVersion = options.currentVersion || process.env.GSD_VERSION || '0.0.0';
103
116
  const cachePath = options.cachePath || CACHE_FILE;
104
- const registryUrl = options.registryUrl || `https://registry.npmjs.org/${NPM_PACKAGE_NAME}/latest`;
117
+ const registryUrl = options.registryUrl || DEFAULT_REGISTRY_URL;
105
118
  const checkIntervalMs = options.checkIntervalMs ?? CHECK_INTERVAL_MS;
106
119
  const fetchTimeoutMs = options.fetchTimeoutMs ?? FETCH_TIMEOUT_MS;
107
120
  // Determine latest version (from cache or network)
@@ -111,25 +124,15 @@ export async function checkAndPromptForUpdates(options = {}) {
111
124
  latestVersion = cache.latestVersion;
112
125
  }
113
126
  else {
114
- const controller = new AbortController();
115
- const timeout = setTimeout(() => controller.abort(), fetchTimeoutMs);
116
127
  try {
117
- const res = await fetch(registryUrl, { signal: controller.signal });
118
- clearTimeout(timeout);
119
- if (res.ok) {
120
- const data = (await res.json());
121
- if (data.version) {
122
- latestVersion = data.version;
123
- writeUpdateCache({ lastCheck: Date.now(), latestVersion }, cachePath);
124
- }
128
+ latestVersion = await fetchLatestVersionFromRegistry(registryUrl, fetchTimeoutMs);
129
+ if (latestVersion) {
130
+ writeUpdateCache({ lastCheck: Date.now(), latestVersion }, cachePath);
125
131
  }
126
132
  }
127
133
  catch {
128
134
  // Network unavailable — silently skip
129
135
  }
130
- finally {
131
- clearTimeout(timeout);
132
- }
133
136
  }
134
137
  if (!latestVersion || compareSemver(latestVersion, currentVersion) <= 0) {
135
138
  return false;
@@ -1,5 +1,5 @@
1
1
  import { execSync } from 'node:child_process';
2
- import { compareSemver } from './update-check.js';
2
+ import { compareSemver, fetchLatestVersionFromRegistry } from './update-check.js';
3
3
  const NPM_PACKAGE = 'gsd-pi';
4
4
  export async function runUpdate() {
5
5
  const current = process.env.GSD_VERSION || '0.0.0';
@@ -10,16 +10,8 @@ export async function runUpdate() {
10
10
  const reset = '\x1b[0m';
11
11
  process.stdout.write(`${dim}Current version:${reset} v${current}\n`);
12
12
  process.stdout.write(`${dim}Checking npm registry...${reset}\n`);
13
- // Fetch latest version bypass npm client cache to avoid stale results (#3445)
14
- let latest;
15
- try {
16
- latest = execSync(`npm view ${NPM_PACKAGE} version --fetch-retry-mintimeout=3000`, {
17
- encoding: 'utf-8',
18
- stdio: ['ignore', 'pipe', 'ignore'],
19
- env: { ...process.env, npm_config_cache: '' },
20
- }).trim();
21
- }
22
- catch {
13
+ const latest = await fetchLatestVersionFromRegistry();
14
+ if (!latest) {
23
15
  process.stderr.write(`${yellow}Failed to reach npm registry.${reset}\n`);
24
16
  process.exit(1);
25
17
  }
@@ -1 +1 @@
1
- DrWdzskk28E5Qz-Wjw1mj
1
+ j_Ae_qOKzzIlA6oFOxVx4
@@ -1,47 +1,47 @@
1
1
  {
2
2
  "/_not-found/page": "/_not-found",
3
3
  "/_global-error/page": "/_global-error",
4
+ "/api/boot/route": "/api/boot",
4
5
  "/api/bridge-terminal/input/route": "/api/bridge-terminal/input",
5
6
  "/api/bridge-terminal/resize/route": "/api/bridge-terminal/resize",
6
- "/api/boot/route": "/api/boot",
7
- "/api/bridge-terminal/stream/route": "/api/bridge-terminal/stream",
7
+ "/api/browse-directories/route": "/api/browse-directories",
8
8
  "/api/dev-mode/route": "/api/dev-mode",
9
+ "/api/bridge-terminal/stream/route": "/api/bridge-terminal/stream",
9
10
  "/api/cleanup/route": "/api/cleanup",
10
11
  "/api/doctor/route": "/api/doctor",
11
12
  "/api/export-data/route": "/api/export-data",
12
13
  "/api/captures/route": "/api/captures",
13
- "/api/browse-directories/route": "/api/browse-directories",
14
14
  "/api/forensics/route": "/api/forensics",
15
15
  "/api/git/route": "/api/git",
16
16
  "/api/history/route": "/api/history",
17
17
  "/api/hooks/route": "/api/hooks",
18
18
  "/api/inspect/route": "/api/inspect",
19
19
  "/api/knowledge/route": "/api/knowledge",
20
- "/api/experimental/route": "/api/experimental",
21
- "/api/live-state/route": "/api/live-state",
22
20
  "/api/notifications/route": "/api/notifications",
21
+ "/api/live-state/route": "/api/live-state",
22
+ "/api/experimental/route": "/api/experimental",
23
23
  "/api/preferences/route": "/api/preferences",
24
+ "/api/files/route": "/api/files",
24
25
  "/api/recovery/route": "/api/recovery",
25
- "/api/onboarding/route": "/api/onboarding",
26
26
  "/api/projects/route": "/api/projects",
27
27
  "/api/session/browser/route": "/api/session/browser",
28
+ "/api/onboarding/route": "/api/onboarding",
28
29
  "/api/session/command/route": "/api/session/command",
29
- "/api/session/events/route": "/api/session/events",
30
30
  "/api/settings-data/route": "/api/settings-data",
31
- "/api/session/manage/route": "/api/session/manage",
32
31
  "/api/shutdown/route": "/api/shutdown",
32
+ "/api/session/manage/route": "/api/session/manage",
33
+ "/api/session/events/route": "/api/session/events",
33
34
  "/api/skill-health/route": "/api/skill-health",
34
35
  "/api/steer/route": "/api/steer",
35
- "/api/files/route": "/api/files",
36
36
  "/api/terminal/input/route": "/api/terminal/input",
37
37
  "/api/terminal/resize/route": "/api/terminal/resize",
38
+ "/api/remote-questions/route": "/api/remote-questions",
38
39
  "/api/switch-root/route": "/api/switch-root",
39
40
  "/api/terminal/sessions/route": "/api/terminal/sessions",
40
- "/api/terminal/stream/route": "/api/terminal/stream",
41
41
  "/api/terminal/upload/route": "/api/terminal/upload",
42
- "/api/visualizer/route": "/api/visualizer",
43
42
  "/api/undo/route": "/api/undo",
43
+ "/api/visualizer/route": "/api/visualizer",
44
+ "/api/terminal/stream/route": "/api/terminal/stream",
44
45
  "/api/update/route": "/api/update",
45
- "/api/remote-questions/route": "/api/remote-questions",
46
46
  "/page": "/"
47
47
  }
@@ -4,14 +4,14 @@
4
4
  ],
5
5
  "devFiles": [],
6
6
  "lowPriorityFiles": [
7
- "static/DrWdzskk28E5Qz-Wjw1mj/_buildManifest.js",
8
- "static/DrWdzskk28E5Qz-Wjw1mj/_ssgManifest.js"
7
+ "static/j_Ae_qOKzzIlA6oFOxVx4/_buildManifest.js",
8
+ "static/j_Ae_qOKzzIlA6oFOxVx4/_ssgManifest.js"
9
9
  ],
10
10
  "rootMainFiles": [
11
11
  "static/chunks/webpack-6e4d7e9a4f57bed4.js",
12
12
  "static/chunks/4bd1b696-e356ca5ba0218e27.js",
13
13
  "static/chunks/3794-42fdce068d44fa4f.js",
14
- "static/chunks/main-app-d3d4c336195465f9.js"
14
+ "static/chunks/main-app-fdab67f7802d7832.js"
15
15
  ],
16
16
  "rootMainFilesTree": {},
17
17
  "pages": {
@@ -78,8 +78,8 @@
78
78
  "dynamicRoutes": {},
79
79
  "notFoundRoutes": [],
80
80
  "preview": {
81
- "previewModeId": "b4d6fee1c25f89c34ff16f7ad3c49bba",
82
- "previewModeSigningKey": "593455d19f76b42d23211a3917bb4ab0098fbc06e5e2daa55367ba48acbfd072",
83
- "previewModeEncryptionKey": "e603aaeafdf6a74cb2a15129a6f0d84466da04e5d38b5aafad3019a98ff073ce"
81
+ "previewModeId": "b6b08ad65a2fa90fd99f08722016f8bb",
82
+ "previewModeSigningKey": "2ecfc3387331278ec3c68626d7bd03239ba4e3ce30fb4c8a300b79d3abc78c90",
83
+ "previewModeEncryptionKey": "55ec0f1b3f3768a61279b3379173c9b614189c77dc0c363ac89ba911737918a4"
84
84
  }
85
85
  }
@@ -104,7 +104,7 @@
104
104
  "transform": "lodash/{{member}}"
105
105
  }
106
106
  },
107
- "outputFileTracingRoot": "/home/runner/_work/gsd-2/gsd-2",
107
+ "outputFileTracingRoot": "/__w/gsd-2/gsd-2",
108
108
  "cacheComponents": false,
109
109
  "cacheLife": {
110
110
  "default": {
@@ -166,7 +166,7 @@
166
166
  "proxyPrefetch": "flexible",
167
167
  "optimisticClientCache": true,
168
168
  "manualClientBasePath": false,
169
- "cpus": 5,
169
+ "cpus": 9,
170
170
  "memoryBasedWorkersCount": false,
171
171
  "imgOptConcurrency": null,
172
172
  "imgOptTimeoutInSeconds": 7,
@@ -308,11 +308,11 @@
308
308
  "node-pty"
309
309
  ],
310
310
  "turbopack": {
311
- "root": "/home/runner/_work/gsd-2/gsd-2"
311
+ "root": "/__w/gsd-2/gsd-2"
312
312
  },
313
313
  "distDirRoot": ".next"
314
314
  },
315
- "appDir": "/home/runner/_work/gsd-2/gsd-2/web",
315
+ "appDir": "/__w/gsd-2/gsd-2/web",
316
316
  "relativeAppDir": "web",
317
317
  "files": [
318
318
  ".next/routes-manifest.json",
@@ -1,4 +1,4 @@
1
- (()=>{var a={};a.id=4896,a.ids=[4896],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17064:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23))},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},47052:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23)),Promise.resolve().then(c.t.bind(c,60440,23)),Promise.resolve().then(c.t.bind(c,84342,23)),Promise.resolve().then(c.t.bind(c,82265,23)),Promise.resolve().then(c.t.bind(c,35421,23)),Promise.resolve().then(c.t.bind(c,61335,23)),Promise.resolve().then(c.t.bind(c,70664,23)),Promise.resolve().then(c.bind(c,74661))},48928:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={WarningIcon:function(){return i},errorStyles:function(){return g},errorThemeCss:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});c(62605);let f=c(5735);c(91986);let g={container:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},card:{marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},icon:{marginBottom:"24px"},title:{fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},message:{fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},form:{margin:0},buttonGroup:{display:"flex",gap:"8px",alignItems:"center"},button:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},buttonSecondary:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},digestFooter:{position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"}},h=`
1
+ (()=>{var a={};a.id=4896,a.ids=[4896],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},334:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23))},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},39654:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,95547,23))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},48928:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={WarningIcon:function(){return i},errorStyles:function(){return g},errorThemeCss:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});c(62605);let f=c(5735);c(91986);let g={container:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},card:{marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},icon:{marginBottom:"24px"},title:{fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},message:{fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},form:{margin:0},buttonGroup:{display:"flex",gap:"8px",alignItems:"center"},button:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},buttonSecondary:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},digestFooter:{position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"}},h=`
2
2
  :root {
3
3
  --next-error-bg: #fff;
4
4
  --next-error-text: #171717;
@@ -28,5 +28,5 @@
28
28
  }
29
29
  }
30
30
  body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }
31
- `.replace(/\n\s*/g,"");function i(){return(0,f.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:g.icon,children:(0,f.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},53512:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,95547,23))},60204:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,95547,23)),Promise.resolve().then(c.t.bind(c,15098,23)),Promise.resolve().then(c.t.bind(c,47644,23)),Promise.resolve().then(c.t.bind(c,33859,23)),Promise.resolve().then(c.t.bind(c,98099,23)),Promise.resolve().then(c.t.bind(c,16237,23)),Promise.resolve().then(c.t.bind(c,98562,23)),Promise.resolve().then(c.t.bind(c,36675,23))},62605:(a,b,c)=>{"use strict";function d(a){return a&&a.__esModule?a:{default:a}}c.r(b),c.d(b,{_:()=>d})},62818:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(7553),e=c(84006),f=c(67798),g=c(34775),h=c(99373),i=c(73461),j=c(1020),k=c(26349),l=c(54365),m=c(16023),n=c(63747),o=c(24235),p=c(23938),q=c(261),r=c(66758),s=c(77243),t=c(26713),u=c(37527),v=c(22820),w=c(88216),x=c(47929),y=c(79551),z=c(71797),A=c(89125),B=c(86439),C=c(77068),D=c(27269),E=c(61287),F=c(81494),G=c(70722),H=c(70753),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["_global-error",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.t.bind(c,71311,23)),"next/dist/client/components/builtin/app-error.js"]}]},{}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,45270,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,28193,23)),"next/dist/client/components/builtin/unauthorized.js"]},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/_global-error/page",pathname:"/_global-error",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/_global-error/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(95726).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let k,m=N.getVaryHeader(ag,al);b.setHeader("Vary",m);let o=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return N.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),k&&k!==c&&(k.setAttribute("http.route",d),k.updateName(a))}else c.updateName(`${aV} ${U}`)})},p=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==p||p.resetRequestCache(),globalThis.__incrementalCache=p;let q=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:p,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await o(e,k),{metadata:m}=l,{cacheControl:n,headers:q={},fetchTags:r,fetchMetrics:s}=m;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==n?void 0:n.revalidate)===0&&!N.isDev&&!aD){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
32
- see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},r=async({hasResolved:c,previousCacheEntry:g,isRevalidating:i,span:j,forceStaticRender:k=!1})=>{let l=!1===N.isDev,m=c||b.writableEnded;try{let f;if(ap&&ah&&!g&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(f=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(f=v.FallbackMode.PRERENDER),f===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(f=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==g?void 0:g.isStale)===-1&&(ap=!0),ap&&(f!==v.FallbackMode.NOT_FOUND||g)&&(f=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&f!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&f===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>q({span:j,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!p||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,p,aD,!1,a=>q({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let o=ap||i||!aH?void 0:aH;if(aN&&!T&&p&&(aJ||ay)&&!k){let b=await p.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(o=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,p,aD,!1,a=>r({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return q({span:j,postponed:o,fallbackRouteParams:s,forceStaticRender:k})}catch(b){throw(null==g?void 0:g.isStale)&&await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}},D=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>r({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let p=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(p&&await p(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),q({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return k=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},D),void 0,!aY);await D(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},71311:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return f}}),c(62605);let d=c(5735);c(91986);let e=c(48928),f=function(){return(0,d.jsxs)("html",{id:"__next_error__",children:[(0,d.jsxs)("head",{children:[(0,d.jsx)("title",{children:"500: This page couldn’t load"}),(0,d.jsx)("style",{dangerouslySetInnerHTML:{__html:e.errorThemeCss}})]}),(0,d.jsx)("body",{children:(0,d.jsx)("div",{style:e.errorStyles.container,children:(0,d.jsxs)("div",{style:e.errorStyles.card,children:[(0,d.jsx)(e.WarningIcon,{}),(0,d.jsx)("h1",{style:e.errorStyles.title,children:"This page couldn’t load"}),(0,d.jsx)("p",{style:e.errorStyles.message,children:"A server error occurred. Reload to try again."}),(0,d.jsx)("form",{style:e.errorStyles.form,children:(0,d.jsx)("button",{type:"submit",style:e.errorStyles.button,children:"Reload"})})]})})})]})};("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,63],()=>b(b.s=62818));module.exports=c})();
31
+ `.replace(/\n\s*/g,"");function i(){return(0,f.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:g.icon,children:(0,f.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},52628:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23)),Promise.resolve().then(c.t.bind(c,60440,23)),Promise.resolve().then(c.t.bind(c,84342,23)),Promise.resolve().then(c.t.bind(c,82265,23)),Promise.resolve().then(c.t.bind(c,35421,23)),Promise.resolve().then(c.t.bind(c,61335,23)),Promise.resolve().then(c.t.bind(c,70664,23)),Promise.resolve().then(c.bind(c,74661))},62605:(a,b,c)=>{"use strict";function d(a){return a&&a.__esModule?a:{default:a}}c.r(b),c.d(b,{_:()=>d})},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},71311:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return f}}),c(62605);let d=c(5735);c(91986);let e=c(48928),f=function(){return(0,d.jsxs)("html",{id:"__next_error__",children:[(0,d.jsxs)("head",{children:[(0,d.jsx)("title",{children:"500: This page couldn’t load"}),(0,d.jsx)("style",{dangerouslySetInnerHTML:{__html:e.errorThemeCss}})]}),(0,d.jsx)("body",{children:(0,d.jsx)("div",{style:e.errorStyles.container,children:(0,d.jsxs)("div",{style:e.errorStyles.card,children:[(0,d.jsx)(e.WarningIcon,{}),(0,d.jsx)("h1",{style:e.errorStyles.title,children:"This page couldn’t load"}),(0,d.jsx)("p",{style:e.errorStyles.message,children:"A server error occurred. Reload to try again."}),(0,d.jsx)("form",{style:e.errorStyles.form,children:(0,d.jsx)("button",{type:"submit",style:e.errorStyles.button,children:"Reload"})})]})})})]})};("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},76596:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,95547,23)),Promise.resolve().then(c.t.bind(c,15098,23)),Promise.resolve().then(c.t.bind(c,47644,23)),Promise.resolve().then(c.t.bind(c,33859,23)),Promise.resolve().then(c.t.bind(c,98099,23)),Promise.resolve().then(c.t.bind(c,16237,23)),Promise.resolve().then(c.t.bind(c,98562,23)),Promise.resolve().then(c.t.bind(c,36675,23))},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96084:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(7553),e=c(84006),f=c(67798),g=c(34775),h=c(99373),i=c(73461),j=c(1020),k=c(26349),l=c(54365),m=c(16023),n=c(63747),o=c(24235),p=c(23938),q=c(261),r=c(66758),s=c(77243),t=c(26713),u=c(37527),v=c(22820),w=c(88216),x=c(47929),y=c(79551),z=c(71797),A=c(89125),B=c(86439),C=c(77068),D=c(27269),E=c(61287),F=c(81494),G=c(70722),H=c(70753),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["_global-error",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.t.bind(c,71311,23)),"next/dist/client/components/builtin/app-error.js"]}]},{}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,45270,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,28193,23)),"next/dist/client/components/builtin/unauthorized.js"]},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/_global-error/page",pathname:"/_global-error",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/_global-error/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(95726).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let k,m=N.getVaryHeader(ag,al);b.setHeader("Vary",m);let o=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return N.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),k&&k!==c&&(k.setAttribute("http.route",d),k.updateName(a))}else c.updateName(`${aV} ${U}`)})},p=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==p||p.resetRequestCache(),globalThis.__incrementalCache=p;let q=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:p,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await o(e,k),{metadata:m}=l,{cacheControl:n,headers:q={},fetchTags:r,fetchMetrics:s}=m;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==n?void 0:n.revalidate)===0&&!N.isDev&&!aD){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
32
+ see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},r=async({hasResolved:c,previousCacheEntry:g,isRevalidating:i,span:j,forceStaticRender:k=!1})=>{let l=!1===N.isDev,m=c||b.writableEnded;try{let f;if(ap&&ah&&!g&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(f=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(f=v.FallbackMode.PRERENDER),f===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(f=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==g?void 0:g.isStale)===-1&&(ap=!0),ap&&(f!==v.FallbackMode.NOT_FOUND||g)&&(f=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&f!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&f===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>q({span:j,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!p||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,p,aD,!1,a=>q({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let o=ap||i||!aH?void 0:aH;if(aN&&!T&&p&&(aJ||ay)&&!k){let b=await p.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(o=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,p,aD,!1,a=>r({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return q({span:j,postponed:o,fallbackRouteParams:s,forceStaticRender:k})}catch(b){throw(null==g?void 0:g.isStale)&&await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}},D=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>r({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let p=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(p&&await p(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),q({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return k=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},D),void 0,!aY);await D(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},96487:()=>{}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,63],()=>b(b.s=96084));module.exports=c})();