gsd-pi 2.72.0 → 2.73.0-dev.27730dc

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 (344) hide show
  1. package/README.md +12 -2
  2. package/dist/cli.js +59 -50
  3. package/dist/help-text.js +1 -1
  4. package/dist/onboarding.js +10 -0
  5. package/dist/resources/extensions/async-jobs/await-tool.js +7 -4
  6. package/dist/resources/extensions/async-jobs/job-manager.js +28 -3
  7. package/dist/resources/extensions/claude-code-cli/partial-builder.js +40 -12
  8. package/dist/resources/extensions/claude-code-cli/stream-adapter.js +48 -23
  9. package/dist/resources/extensions/gsd/auto/loop.js +84 -1
  10. package/dist/resources/extensions/gsd/auto-dispatch.js +5 -3
  11. package/dist/resources/extensions/gsd/auto-post-unit.js +6 -0
  12. package/dist/resources/extensions/gsd/auto-prompts.js +9 -6
  13. package/dist/resources/extensions/gsd/auto-recovery.js +11 -0
  14. package/dist/resources/extensions/gsd/auto.js +30 -20
  15. package/dist/resources/extensions/gsd/bootstrap/crash-log.js +31 -0
  16. package/dist/resources/extensions/gsd/bootstrap/register-extension.js +18 -7
  17. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +9 -11
  18. package/dist/resources/extensions/gsd/bootstrap/system-context.js +6 -1
  19. package/dist/resources/extensions/gsd/commands-handlers.js +4 -1
  20. package/dist/resources/extensions/gsd/context-injector.js +1 -1
  21. package/dist/resources/extensions/gsd/crash-recovery.js +51 -0
  22. package/dist/resources/extensions/gsd/custom-workflow-engine.js +3 -7
  23. package/dist/resources/extensions/gsd/definition-io.js +15 -0
  24. package/dist/resources/extensions/gsd/dispatch-guard.js +4 -0
  25. package/dist/resources/extensions/gsd/doctor-runtime-checks.js +6 -3
  26. package/dist/resources/extensions/gsd/git-service.js +11 -8
  27. package/dist/resources/extensions/gsd/gitignore.js +12 -6
  28. package/dist/resources/extensions/gsd/gsd-db.js +85 -8
  29. package/dist/resources/extensions/gsd/key-manager.js +2 -0
  30. package/dist/resources/extensions/gsd/milestone-actions.js +19 -1
  31. package/dist/resources/extensions/gsd/preferences-skills.js +2 -34
  32. package/dist/resources/extensions/gsd/preferences-types.js +15 -0
  33. package/dist/resources/extensions/gsd/preferences.js +16 -3
  34. package/dist/resources/extensions/gsd/prompt-loader.js +4 -1
  35. package/dist/resources/extensions/gsd/prompts/discuss.md +122 -13
  36. package/dist/resources/extensions/gsd/prompts/system.md +1 -1
  37. package/dist/resources/extensions/gsd/state.js +21 -1
  38. package/dist/resources/extensions/gsd/workflow-projections.js +7 -0
  39. package/dist/resources/extensions/gsd/worktree-manager.js +30 -3
  40. package/dist/resources/extensions/gsd/write-intercept.js +10 -1
  41. package/dist/resources/extensions/ollama/index.js +4 -5
  42. package/dist/resources/extensions/ollama/ollama-client.js +35 -6
  43. package/dist/resources/extensions/ollama/ollama-discovery.js +32 -6
  44. package/dist/startup-model-validation.js +8 -5
  45. package/dist/web/standalone/.next/BUILD_ID +1 -1
  46. package/dist/web/standalone/.next/app-path-routes-manifest.json +10 -10
  47. package/dist/web/standalone/.next/build-manifest.json +3 -3
  48. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  49. package/dist/web/standalone/.next/required-server-files.json +3 -3
  50. package/dist/web/standalone/.next/server/app/_global-error/page.js +3 -3
  51. package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  52. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  53. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  54. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  55. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  56. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  57. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  58. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  59. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  60. package/dist/web/standalone/.next/server/app/_not-found/page.js +2 -2
  61. package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  62. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  63. package/dist/web/standalone/.next/server/app/_not-found.rsc +3 -3
  64. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  65. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  66. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  67. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  68. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  69. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  70. package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
  71. package/dist/web/standalone/.next/server/app/api/boot/route_client-reference-manifest.js +1 -1
  72. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
  73. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route_client-reference-manifest.js +1 -1
  74. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
  75. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route_client-reference-manifest.js +1 -1
  76. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
  77. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route_client-reference-manifest.js +1 -1
  78. package/dist/web/standalone/.next/server/app/api/browse-directories/route.js +1 -1
  79. package/dist/web/standalone/.next/server/app/api/browse-directories/route_client-reference-manifest.js +1 -1
  80. package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
  81. package/dist/web/standalone/.next/server/app/api/captures/route_client-reference-manifest.js +1 -1
  82. package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
  83. package/dist/web/standalone/.next/server/app/api/cleanup/route_client-reference-manifest.js +1 -1
  84. package/dist/web/standalone/.next/server/app/api/dev-mode/route.js +1 -1
  85. package/dist/web/standalone/.next/server/app/api/dev-mode/route_client-reference-manifest.js +1 -1
  86. package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
  87. package/dist/web/standalone/.next/server/app/api/doctor/route_client-reference-manifest.js +1 -1
  88. package/dist/web/standalone/.next/server/app/api/experimental/route.js +2 -2
  89. package/dist/web/standalone/.next/server/app/api/experimental/route_client-reference-manifest.js +1 -1
  90. package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
  91. package/dist/web/standalone/.next/server/app/api/export-data/route_client-reference-manifest.js +1 -1
  92. package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
  93. package/dist/web/standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
  94. package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
  95. package/dist/web/standalone/.next/server/app/api/forensics/route_client-reference-manifest.js +1 -1
  96. package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
  97. package/dist/web/standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  98. package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
  99. package/dist/web/standalone/.next/server/app/api/history/route_client-reference-manifest.js +1 -1
  100. package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
  101. package/dist/web/standalone/.next/server/app/api/hooks/route_client-reference-manifest.js +1 -1
  102. package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
  103. package/dist/web/standalone/.next/server/app/api/inspect/route_client-reference-manifest.js +1 -1
  104. package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
  105. package/dist/web/standalone/.next/server/app/api/knowledge/route_client-reference-manifest.js +1 -1
  106. package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
  107. package/dist/web/standalone/.next/server/app/api/live-state/route_client-reference-manifest.js +1 -1
  108. package/dist/web/standalone/.next/server/app/api/notifications/route.js +2 -2
  109. package/dist/web/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  110. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  111. package/dist/web/standalone/.next/server/app/api/onboarding/route_client-reference-manifest.js +1 -1
  112. package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
  113. package/dist/web/standalone/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -1
  114. package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
  115. package/dist/web/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  116. package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
  117. package/dist/web/standalone/.next/server/app/api/recovery/route_client-reference-manifest.js +1 -1
  118. package/dist/web/standalone/.next/server/app/api/remote-questions/route.js +2 -2
  119. package/dist/web/standalone/.next/server/app/api/remote-questions/route_client-reference-manifest.js +1 -1
  120. package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
  121. package/dist/web/standalone/.next/server/app/api/session/browser/route_client-reference-manifest.js +1 -1
  122. package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
  123. package/dist/web/standalone/.next/server/app/api/session/command/route_client-reference-manifest.js +1 -1
  124. package/dist/web/standalone/.next/server/app/api/session/events/route.js +2 -2
  125. package/dist/web/standalone/.next/server/app/api/session/events/route_client-reference-manifest.js +1 -1
  126. package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
  127. package/dist/web/standalone/.next/server/app/api/session/manage/route_client-reference-manifest.js +1 -1
  128. package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
  129. package/dist/web/standalone/.next/server/app/api/settings-data/route_client-reference-manifest.js +1 -1
  130. package/dist/web/standalone/.next/server/app/api/shutdown/route.js +1 -1
  131. package/dist/web/standalone/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  132. package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
  133. package/dist/web/standalone/.next/server/app/api/skill-health/route_client-reference-manifest.js +1 -1
  134. package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
  135. package/dist/web/standalone/.next/server/app/api/steer/route_client-reference-manifest.js +1 -1
  136. package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
  137. package/dist/web/standalone/.next/server/app/api/switch-root/route_client-reference-manifest.js +1 -1
  138. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +2 -2
  139. package/dist/web/standalone/.next/server/app/api/terminal/input/route_client-reference-manifest.js +1 -1
  140. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +2 -2
  141. package/dist/web/standalone/.next/server/app/api/terminal/resize/route_client-reference-manifest.js +1 -1
  142. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +2 -2
  143. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route_client-reference-manifest.js +1 -1
  144. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +3 -3
  145. package/dist/web/standalone/.next/server/app/api/terminal/stream/route_client-reference-manifest.js +1 -1
  146. package/dist/web/standalone/.next/server/app/api/terminal/upload/route.js +1 -1
  147. package/dist/web/standalone/.next/server/app/api/terminal/upload/route_client-reference-manifest.js +1 -1
  148. package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
  149. package/dist/web/standalone/.next/server/app/api/undo/route_client-reference-manifest.js +1 -1
  150. package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
  151. package/dist/web/standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  152. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  153. package/dist/web/standalone/.next/server/app/api/visualizer/route_client-reference-manifest.js +1 -1
  154. package/dist/web/standalone/.next/server/app/index.html +1 -1
  155. package/dist/web/standalone/.next/server/app/index.rsc +4 -4
  156. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  157. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
  158. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  159. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
  160. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  161. package/dist/web/standalone/.next/server/app/page.js +2 -2
  162. package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  163. package/dist/web/standalone/.next/server/app-paths-manifest.json +10 -10
  164. package/dist/web/standalone/.next/server/chunks/2331.js +16 -16
  165. package/dist/web/standalone/.next/server/chunks/4741.js +12 -12
  166. package/dist/web/standalone/.next/server/chunks/5822.js +2 -2
  167. package/dist/web/standalone/.next/server/chunks/63.js +8 -8
  168. package/dist/web/standalone/.next/server/chunks/6897.js +3 -3
  169. package/dist/web/standalone/.next/server/edge-runtime-webpack.js +2 -0
  170. package/dist/web/standalone/.next/server/functions-config-manifest.json +0 -9
  171. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  172. package/dist/web/standalone/.next/server/middleware-manifest.json +29 -2
  173. package/dist/web/standalone/.next/server/middleware.js +4 -12
  174. package/dist/web/standalone/.next/server/next-font-manifest.js +1 -1
  175. package/dist/web/standalone/.next/server/next-font-manifest.json +1 -1
  176. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  177. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  178. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  179. package/dist/web/standalone/.next/server/webpack-runtime.js +1 -1
  180. package/dist/web/standalone/.next/static/chunks/app/_not-found/{page-2f24283c162b6ab3.js → page-f2a7482d42a5614b.js} +1 -1
  181. package/dist/web/standalone/.next/static/chunks/app/{layout-9ecfd95f343793f0.js → layout-a16c7a7ecdf0c2cf.js} +1 -1
  182. package/dist/web/standalone/.next/static/chunks/app/page-f1e30ab6bb269149.js +1 -0
  183. package/dist/web/standalone/.next/static/chunks/main-app-fdab67f7802d7832.js +1 -0
  184. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-459824ffb8c323dd.js +1 -0
  185. package/dist/web/standalone/node_modules/node-pty/build/Makefile +2 -2
  186. package/dist/web/standalone/node_modules/node-pty/build/Release/pty.node +0 -0
  187. package/dist/web/standalone/node_modules/node-pty/build/pty.target.mk +14 -14
  188. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api.target.mk +14 -14
  189. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_except.target.mk +14 -14
  190. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_maybe.target.mk +14 -14
  191. package/dist/web/standalone/server.js +1 -1
  192. package/package.json +1 -1
  193. package/packages/pi-ai/dist/env-api-keys.js +1 -0
  194. package/packages/pi-ai/dist/env-api-keys.js.map +1 -1
  195. package/packages/pi-ai/dist/models.custom.d.ts +105 -0
  196. package/packages/pi-ai/dist/models.custom.d.ts.map +1 -1
  197. package/packages/pi-ai/dist/models.custom.js +97 -0
  198. package/packages/pi-ai/dist/models.custom.js.map +1 -1
  199. package/packages/pi-ai/dist/models.generated.d.ts +648 -140
  200. package/packages/pi-ai/dist/models.generated.d.ts.map +1 -1
  201. package/packages/pi-ai/dist/models.generated.js +867 -370
  202. package/packages/pi-ai/dist/models.generated.js.map +1 -1
  203. package/packages/pi-ai/dist/models.generated.test.d.ts +2 -0
  204. package/packages/pi-ai/dist/models.generated.test.d.ts.map +1 -0
  205. package/packages/pi-ai/dist/models.generated.test.js +334 -0
  206. package/packages/pi-ai/dist/models.generated.test.js.map +1 -0
  207. package/packages/pi-ai/dist/models.test.js +105 -0
  208. package/packages/pi-ai/dist/models.test.js.map +1 -1
  209. package/packages/pi-ai/dist/types.d.ts +1 -1
  210. package/packages/pi-ai/dist/types.d.ts.map +1 -1
  211. package/packages/pi-ai/dist/types.js.map +1 -1
  212. package/packages/pi-ai/dist/utils/oauth/github-copilot.d.ts.map +1 -1
  213. package/packages/pi-ai/dist/utils/oauth/github-copilot.js +5 -1
  214. package/packages/pi-ai/dist/utils/oauth/github-copilot.js.map +1 -1
  215. package/packages/pi-ai/dist/utils/oauth/github-copilot.test.d.ts +2 -0
  216. package/packages/pi-ai/dist/utils/oauth/github-copilot.test.d.ts.map +1 -0
  217. package/packages/pi-ai/dist/utils/oauth/github-copilot.test.js +57 -0
  218. package/packages/pi-ai/dist/utils/oauth/github-copilot.test.js.map +1 -0
  219. package/packages/pi-ai/src/env-api-keys.ts +1 -0
  220. package/packages/pi-ai/src/models.custom.ts +98 -0
  221. package/packages/pi-ai/src/models.generated.test.ts +373 -0
  222. package/packages/pi-ai/src/models.generated.ts +867 -370
  223. package/packages/pi-ai/src/models.test.ts +135 -0
  224. package/packages/pi-ai/src/types.ts +1 -0
  225. package/packages/pi-ai/src/utils/oauth/github-copilot.test.ts +71 -0
  226. package/packages/pi-ai/src/utils/oauth/github-copilot.ts +4 -1
  227. package/packages/pi-coding-agent/dist/core/auth-storage.js +1 -1
  228. package/packages/pi-coding-agent/dist/core/auth-storage.js.map +1 -1
  229. package/packages/pi-coding-agent/dist/core/auth-storage.test.js +27 -0
  230. package/packages/pi-coding-agent/dist/core/auth-storage.test.js.map +1 -1
  231. package/packages/pi-coding-agent/dist/core/model-resolver.d.ts.map +1 -1
  232. package/packages/pi-coding-agent/dist/core/model-resolver.js +25 -67
  233. package/packages/pi-coding-agent/dist/core/model-resolver.js.map +1 -1
  234. package/packages/pi-coding-agent/dist/core/sdk.d.ts.map +1 -1
  235. package/packages/pi-coding-agent/dist/core/sdk.js +9 -0
  236. package/packages/pi-coding-agent/dist/core/sdk.js.map +1 -1
  237. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js +36 -0
  238. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js.map +1 -1
  239. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  240. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +87 -12
  241. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
  242. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts +1 -0
  243. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
  244. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +22 -9
  245. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
  246. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.test.d.ts +2 -0
  247. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.test.d.ts.map +1 -0
  248. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.test.js +63 -0
  249. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.test.js.map +1 -0
  250. package/packages/pi-coding-agent/package.json +1 -1
  251. package/packages/pi-coding-agent/src/core/auth-storage.test.ts +38 -0
  252. package/packages/pi-coding-agent/src/core/auth-storage.ts +1 -1
  253. package/packages/pi-coding-agent/src/core/model-resolver.ts +26 -69
  254. package/packages/pi-coding-agent/src/core/sdk.ts +10 -0
  255. package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/tool-execution.test.ts +72 -0
  256. package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +84 -12
  257. package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.test.ts +71 -0
  258. package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +23 -9
  259. package/packages/pi-tui/dist/components/__tests__/editor.test.js +12 -0
  260. package/packages/pi-tui/dist/components/__tests__/editor.test.js.map +1 -1
  261. package/packages/pi-tui/dist/components/__tests__/input.test.js +12 -0
  262. package/packages/pi-tui/dist/components/__tests__/input.test.js.map +1 -1
  263. package/packages/pi-tui/dist/keys.d.ts.map +1 -1
  264. package/packages/pi-tui/dist/keys.js +27 -0
  265. package/packages/pi-tui/dist/keys.js.map +1 -1
  266. package/packages/pi-tui/src/components/__tests__/editor.test.ts +18 -0
  267. package/packages/pi-tui/src/components/__tests__/input.test.ts +18 -0
  268. package/packages/pi-tui/src/keys.ts +32 -0
  269. package/pkg/package.json +1 -1
  270. package/src/resources/extensions/async-jobs/await-tool.test.ts +40 -7
  271. package/src/resources/extensions/async-jobs/await-tool.ts +7 -4
  272. package/src/resources/extensions/async-jobs/job-manager.ts +33 -3
  273. package/src/resources/extensions/claude-code-cli/partial-builder.ts +45 -12
  274. package/src/resources/extensions/claude-code-cli/stream-adapter.ts +49 -24
  275. package/src/resources/extensions/claude-code-cli/tests/partial-builder.test.ts +91 -2
  276. package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +112 -0
  277. package/src/resources/extensions/gsd/auto/loop.ts +89 -1
  278. package/src/resources/extensions/gsd/auto-dispatch.ts +5 -0
  279. package/src/resources/extensions/gsd/auto-post-unit.ts +7 -0
  280. package/src/resources/extensions/gsd/auto-prompts.ts +9 -3
  281. package/src/resources/extensions/gsd/auto-recovery.ts +10 -0
  282. package/src/resources/extensions/gsd/auto.ts +30 -20
  283. package/src/resources/extensions/gsd/bootstrap/crash-log.ts +32 -0
  284. package/src/resources/extensions/gsd/bootstrap/register-extension.ts +19 -7
  285. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +8 -10
  286. package/src/resources/extensions/gsd/bootstrap/system-context.ts +8 -1
  287. package/src/resources/extensions/gsd/commands-handlers.ts +5 -1
  288. package/src/resources/extensions/gsd/context-injector.ts +1 -1
  289. package/src/resources/extensions/gsd/crash-recovery.ts +59 -0
  290. package/src/resources/extensions/gsd/custom-workflow-engine.ts +4 -8
  291. package/src/resources/extensions/gsd/definition-io.ts +18 -0
  292. package/src/resources/extensions/gsd/dispatch-guard.ts +5 -0
  293. package/src/resources/extensions/gsd/doctor-runtime-checks.ts +6 -3
  294. package/src/resources/extensions/gsd/git-service.ts +11 -8
  295. package/src/resources/extensions/gsd/gitignore.ts +12 -6
  296. package/src/resources/extensions/gsd/gsd-db.ts +106 -8
  297. package/src/resources/extensions/gsd/key-manager.ts +2 -0
  298. package/src/resources/extensions/gsd/milestone-actions.ts +19 -1
  299. package/src/resources/extensions/gsd/preferences-skills.ts +2 -36
  300. package/src/resources/extensions/gsd/preferences-types.ts +16 -0
  301. package/src/resources/extensions/gsd/preferences.ts +19 -6
  302. package/src/resources/extensions/gsd/prompt-loader.ts +6 -1
  303. package/src/resources/extensions/gsd/prompts/discuss.md +122 -13
  304. package/src/resources/extensions/gsd/prompts/system.md +1 -1
  305. package/src/resources/extensions/gsd/state.ts +20 -0
  306. package/src/resources/extensions/gsd/tests/auto-paused-ui-cleanup.test.ts +27 -0
  307. package/src/resources/extensions/gsd/tests/block-db-writes.test.ts +63 -0
  308. package/src/resources/extensions/gsd/tests/crash-handler-secondary.test.ts +235 -0
  309. package/src/resources/extensions/gsd/tests/definition-io.test.ts +57 -0
  310. package/src/resources/extensions/gsd/tests/dispatch-guard.test.ts +26 -0
  311. package/src/resources/extensions/gsd/tests/doctor-heal-fixable-warnings.test.ts +14 -0
  312. package/src/resources/extensions/gsd/tests/false-degraded-mode-warning.test.ts +104 -0
  313. package/src/resources/extensions/gsd/tests/gsd-db.test.ts +165 -5
  314. package/src/resources/extensions/gsd/tests/integration/git-service.test.ts +8 -6
  315. package/src/resources/extensions/gsd/tests/key-manager.test.ts +63 -0
  316. package/src/resources/extensions/gsd/tests/memory-pressure-stuck-state.test.ts +54 -0
  317. package/src/resources/extensions/gsd/tests/park-milestone.test.ts +64 -0
  318. package/src/resources/extensions/gsd/tests/plan-milestone-artifact-verification.test.ts +62 -0
  319. package/src/resources/extensions/gsd/tests/post-unit-state-rebuild.test.ts +34 -0
  320. package/src/resources/extensions/gsd/tests/preferences-formatting.test.ts +87 -0
  321. package/src/resources/extensions/gsd/tests/preferences.test.ts +53 -0
  322. package/src/resources/extensions/gsd/tests/projection-regression.test.ts +96 -1
  323. package/src/resources/extensions/gsd/tests/prompt-loader-working-directory.test.ts +19 -0
  324. package/src/resources/extensions/gsd/tests/register-hooks-depth-verification.test.ts +97 -0
  325. package/src/resources/extensions/gsd/tests/stale-slice-rows.test.ts +41 -0
  326. package/src/resources/extensions/gsd/tests/subagent-model-dispatch.test.ts +267 -0
  327. package/src/resources/extensions/gsd/workflow-projections.ts +8 -0
  328. package/src/resources/extensions/gsd/worktree-manager.ts +29 -3
  329. package/src/resources/extensions/gsd/write-intercept.ts +10 -1
  330. package/src/resources/extensions/ollama/index.ts +4 -5
  331. package/src/resources/extensions/ollama/ollama-client.ts +35 -6
  332. package/src/resources/extensions/ollama/ollama-discovery.ts +37 -6
  333. package/src/resources/extensions/ollama/tests/ollama-discovery.test.ts +54 -0
  334. package/dist/resources/extensions/gsd/auto-observability.js +0 -54
  335. package/dist/resources/extensions/gsd/file-watcher.js +0 -80
  336. package/dist/resources/extensions/gsd/rtk-status.js +0 -43
  337. package/dist/web/standalone/.next/static/chunks/app/page-7115e62689b5fd84.js +0 -1
  338. package/dist/web/standalone/.next/static/chunks/main-app-d3d4c336195465f9.js +0 -1
  339. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-ab5a8926e07ec673.js +0 -1
  340. package/src/resources/extensions/gsd/auto-observability.ts +0 -72
  341. package/src/resources/extensions/gsd/file-watcher.ts +0 -100
  342. package/src/resources/extensions/gsd/rtk-status.ts +0 -53
  343. /package/dist/web/standalone/.next/static/{Y0I7CjXJl-tWoV__KidV4 → jNiH700EcljeLnbQ2_RCv}/_buildManifest.js +0 -0
  344. /package/dist/web/standalone/.next/static/{Y0I7CjXJl-tWoV__KidV4 → jNiH700EcljeLnbQ2_RCv}/_ssgManifest.js +0 -0
@@ -59,13 +59,12 @@ async function probeAndRegister(pi) {
59
59
  return false;
60
60
  }
61
61
  const baseUrl = client.getOllamaHost();
62
- // Use authMode "apiKey" with a dummy key (#3440).
63
- // authMode "none" requires a custom streamSimple handler, but Ollama uses
64
- // the standard OpenAI-compatible streaming endpoint. Ollama ignores the
65
- // Authorization header so the dummy key is harmless.
62
+ // Use authMode "apiKey" (#3440). Local Ollama ignores the Authorization header,
63
+ // so the "ollama" fallback is harmless. For cloud endpoints (OLLAMA_HOST pointing
64
+ // to ollama.com or a remote instance), OLLAMA_API_KEY is picked up here.
66
65
  pi.registerProvider("ollama", {
67
66
  authMode: "apiKey",
68
- apiKey: "ollama",
67
+ apiKey: process.env.OLLAMA_API_KEY ?? "ollama",
69
68
  baseUrl,
70
69
  api: "ollama-chat",
71
70
  streamSimple: streamOllamaChat,
@@ -15,11 +15,34 @@ export function getOllamaHost() {
15
15
  return host;
16
16
  return `http://${host}`;
17
17
  }
18
+ /**
19
+ * Get auth headers for Ollama API requests.
20
+ * For cloud endpoints (OLLAMA_HOST pointing to ollama.com or remote instances),
21
+ * OLLAMA_API_KEY is used as a Bearer token. Local Ollama ignores the header.
22
+ */
23
+ function getAuthHeaders() {
24
+ const apiKey = process.env.OLLAMA_API_KEY;
25
+ if (!apiKey)
26
+ return {};
27
+ return { Authorization: `Bearer ${apiKey}` };
28
+ }
29
+ /**
30
+ * Merge auth headers into request options.
31
+ */
32
+ function withAuth(options = {}) {
33
+ const authHeaders = getAuthHeaders();
34
+ if (Object.keys(authHeaders).length === 0)
35
+ return options;
36
+ return {
37
+ ...options,
38
+ headers: { ...authHeaders, ...(options.headers || {}) },
39
+ };
40
+ }
18
41
  async function fetchWithTimeout(url, options = {}, timeoutMs = REQUEST_TIMEOUT_MS) {
19
42
  const controller = new AbortController();
20
43
  const timeout = setTimeout(() => controller.abort(), timeoutMs);
21
44
  try {
22
- return await fetch(url, { ...options, signal: controller.signal });
45
+ return await fetch(url, withAuth({ ...options, signal: controller.signal }));
23
46
  }
24
47
  finally {
25
48
  clearTimeout(timeout);
@@ -27,10 +50,16 @@ async function fetchWithTimeout(url, options = {}, timeoutMs = REQUEST_TIMEOUT_M
27
50
  }
28
51
  /**
29
52
  * Check if Ollama is running and reachable.
53
+ * For cloud endpoints (OLLAMA_HOST pointing to ollama.com), uses /api/tags
54
+ * as the probe since the root endpoint may not be available.
30
55
  */
31
56
  export async function isRunning() {
32
57
  try {
33
- const response = await fetchWithTimeout(`${getOllamaHost()}/`, {}, PROBE_TIMEOUT_MS);
58
+ const host = getOllamaHost();
59
+ const isCloud = host.includes("ollama.com") || host.includes("cloud");
60
+ const probeUrl = isCloud ? `${host}/api/tags` : `${host}/`;
61
+ const timeout = isCloud ? REQUEST_TIMEOUT_MS : PROBE_TIMEOUT_MS;
62
+ const response = await fetchWithTimeout(probeUrl, isCloud ? { method: "GET" } : {}, timeout);
34
63
  return response.ok;
35
64
  }
36
65
  catch {
@@ -92,12 +121,12 @@ export async function getRunningModels() {
92
121
  * Returns when the pull is complete.
93
122
  */
94
123
  export async function pullModel(name, onProgress, signal) {
95
- const response = await fetch(`${getOllamaHost()}/api/pull`, {
124
+ const response = await fetch(`${getOllamaHost()}/api/pull`, withAuth({
96
125
  method: "POST",
97
126
  headers: { "Content-Type": "application/json" },
98
127
  body: JSON.stringify({ name, stream: true }),
99
128
  signal,
100
- });
129
+ }));
101
130
  if (!response.ok) {
102
131
  const text = await response.text();
103
132
  throw new Error(`Ollama /api/pull returned ${response.status}: ${text}`);
@@ -114,12 +143,12 @@ export async function pullModel(name, onProgress, signal) {
114
143
  * Returns an async generator yielding each NDJSON response chunk.
115
144
  */
116
145
  export async function* chat(request, signal) {
117
- const response = await fetch(`${getOllamaHost()}/api/chat`, {
146
+ const response = await fetch(`${getOllamaHost()}/api/chat`, withAuth({
118
147
  method: "POST",
119
148
  headers: { "Content-Type": "application/json" },
120
149
  body: JSON.stringify(request),
121
150
  signal,
122
- });
151
+ }));
123
152
  if (!response.ok) {
124
153
  const text = await response.text();
125
154
  throw new Error(`Ollama /api/chat returned ${response.status}: ${text}`);
@@ -6,14 +6,40 @@
6
6
  *
7
7
  * Returns models in the format expected by pi.registerProvider().
8
8
  */
9
- import { listModels } from "./ollama-client.js";
9
+ import { listModels, showModel } from "./ollama-client.js";
10
10
  import { estimateContextFromParams, formatModelSize, getModelCapabilities, humanizeModelName, } from "./model-capabilities.js";
11
+ /**
12
+ * Extract context window from /api/show model_info.
13
+ * Keys follow the pattern "{architecture}.context_length" (e.g. "llama.context_length").
14
+ */
15
+ function extractContextFromModelInfo(modelInfo) {
16
+ for (const [key, value] of Object.entries(modelInfo)) {
17
+ if (key.endsWith(".context_length") && typeof value === "number" && value > 0) {
18
+ return value;
19
+ }
20
+ }
21
+ return undefined;
22
+ }
11
23
  const ZERO_COST = { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 };
12
- function enrichModel(info) {
24
+ async function enrichModel(info, deps) {
13
25
  const caps = getModelCapabilities(info.name);
14
26
  const parameterSize = info.details?.parameter_size ?? "";
15
- // Determine context window: known table > estimate from param size > default
27
+ // /api/tags doesn't include context length; /api/show does via "{arch}.context_length" in model_info.
28
+ let showContextWindow;
29
+ if (caps.contextWindow === undefined) {
30
+ try {
31
+ const showData = await deps.showModel(info.name);
32
+ showContextWindow = extractContextFromModelInfo(showData.model_info);
33
+ }
34
+ catch (err) {
35
+ // non-fatal: fall through to estimate
36
+ if (process.env.GSD_DEBUG)
37
+ console.warn(`[ollama] /api/show failed for ${info.name}:`, err instanceof Error ? err.message : String(err));
38
+ }
39
+ }
40
+ // Determine context window: known table > /api/show > estimate from param size > default
16
41
  const contextWindow = caps.contextWindow ??
42
+ showContextWindow ??
17
43
  (parameterSize ? estimateContextFromParams(parameterSize) : 8192);
18
44
  // Determine max tokens: known table > fraction of context > default
19
45
  const maxTokens = caps.maxTokens ?? Math.min(Math.floor(contextWindow / 4), 16384);
@@ -38,11 +64,11 @@ function enrichModel(info) {
38
64
  /**
39
65
  * Discover all locally available Ollama models with enriched capabilities.
40
66
  */
41
- export async function discoverModels() {
42
- const tags = await listModels();
67
+ export async function discoverModels(deps = { listModels, showModel }) {
68
+ const tags = await deps.listModels();
43
69
  if (!tags.models || tags.models.length === 0)
44
70
  return [];
45
- return tags.models.map(enrichModel);
71
+ return Promise.all(tags.models.map((m) => enrichModel(m, deps)));
46
72
  }
47
73
  /**
48
74
  * Format a discovered model for display in model list.
@@ -34,15 +34,18 @@ export function validateConfiguredModel(modelRegistry, settingsManager) {
34
34
  if (!configuredModel || !configuredExists) {
35
35
  // Model not configured at all, or removed from registry — pick a fallback.
36
36
  // Only fires when the model is genuinely unknown (not just temporarily unavailable).
37
+ //
38
+ // Model-agnostic selection order:
39
+ // 1. Pi migration default (preserves migration from ~/.pi install)
40
+ // 2. Any model from the user's previously-chosen provider (provider stickiness)
41
+ // 3. First available model in registry order (user-controlled via models.json)
37
42
  const piDefault = getPiDefaultModelAndProvider();
38
43
  const preferred = (piDefault
39
44
  ? availableModels.find((m) => m.provider === piDefault.provider && m.id === piDefault.model)
40
45
  : undefined) ||
41
- availableModels.find((m) => m.provider === 'openai' && m.id === 'gpt-5.4') ||
42
- availableModels.find((m) => m.provider === 'openai') ||
43
- availableModels.find((m) => m.provider === 'anthropic' && m.id === 'claude-opus-4-6') ||
44
- availableModels.find((m) => m.provider === 'anthropic' && m.id.includes('opus')) ||
45
- availableModels.find((m) => m.provider === 'anthropic') ||
46
+ (configuredProvider
47
+ ? availableModels.find((m) => m.provider === configuredProvider)
48
+ : undefined) ||
46
49
  availableModels[0];
47
50
  if (preferred) {
48
51
  settingsManager.setDefaultModelAndProvider(preferred.provider, preferred.id);
@@ -1 +1 @@
1
- Y0I7CjXJl-tWoV__KidV4
1
+ jNiH700EcljeLnbQ2_RCv
@@ -2,46 +2,46 @@
2
2
  "/_not-found/page": "/_not-found",
3
3
  "/_global-error/page": "/_global-error",
4
4
  "/api/boot/route": "/api/boot",
5
- "/api/bridge-terminal/input/route": "/api/bridge-terminal/input",
6
5
  "/api/bridge-terminal/resize/route": "/api/bridge-terminal/resize",
6
+ "/api/bridge-terminal/input/route": "/api/bridge-terminal/input",
7
7
  "/api/bridge-terminal/stream/route": "/api/bridge-terminal/stream",
8
8
  "/api/dev-mode/route": "/api/dev-mode",
9
+ "/api/captures/route": "/api/captures",
9
10
  "/api/cleanup/route": "/api/cleanup",
10
11
  "/api/doctor/route": "/api/doctor",
11
- "/api/captures/route": "/api/captures",
12
+ "/api/browse-directories/route": "/api/browse-directories",
12
13
  "/api/export-data/route": "/api/export-data",
13
14
  "/api/forensics/route": "/api/forensics",
14
- "/api/browse-directories/route": "/api/browse-directories",
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",
20
21
  "/api/live-state/route": "/api/live-state",
21
22
  "/api/notifications/route": "/api/notifications",
22
- "/api/experimental/route": "/api/experimental",
23
23
  "/api/preferences/route": "/api/preferences",
24
24
  "/api/recovery/route": "/api/recovery",
25
25
  "/api/onboarding/route": "/api/onboarding",
26
26
  "/api/projects/route": "/api/projects",
27
27
  "/api/session/browser/route": "/api/session/browser",
28
- "/api/session/events/route": "/api/session/events",
29
28
  "/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",
33
- "/api/files/route": "/api/files",
32
+ "/api/session/manage/route": "/api/session/manage",
34
33
  "/api/skill-health/route": "/api/skill-health",
35
34
  "/api/steer/route": "/api/steer",
36
35
  "/api/terminal/input/route": "/api/terminal/input",
37
- "/api/switch-root/route": "/api/switch-root",
38
36
  "/api/terminal/resize/route": "/api/terminal/resize",
37
+ "/api/switch-root/route": "/api/switch-root",
38
+ "/api/files/route": "/api/files",
39
39
  "/api/terminal/sessions/route": "/api/terminal/sessions",
40
- "/api/undo/route": "/api/undo",
41
40
  "/api/terminal/stream/route": "/api/terminal/stream",
41
+ "/api/undo/route": "/api/undo",
42
42
  "/api/visualizer/route": "/api/visualizer",
43
- "/api/terminal/upload/route": "/api/terminal/upload",
44
43
  "/api/update/route": "/api/update",
44
+ "/api/terminal/upload/route": "/api/terminal/upload",
45
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/Y0I7CjXJl-tWoV__KidV4/_buildManifest.js",
8
- "static/Y0I7CjXJl-tWoV__KidV4/_ssgManifest.js"
7
+ "static/jNiH700EcljeLnbQ2_RCv/_buildManifest.js",
8
+ "static/jNiH700EcljeLnbQ2_RCv/_ssgManifest.js"
9
9
  ],
10
10
  "rootMainFiles": [
11
11
  "static/chunks/webpack-b868033a5834586d.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": "a5b55541bc3e0fa2f07c4087828bfdb9",
82
- "previewModeSigningKey": "1d263a5202d738e962bd891f42fec4583353ecdb77162ca3b09f7da49aa38e9c",
83
- "previewModeEncryptionKey": "82afb9b7e120d168495c89adfe9fcfe9feb930812ef95d0fe02a2f0d3c075948"
81
+ "previewModeId": "a077dc3cc6e9642c24e04033900df612",
82
+ "previewModeSigningKey": "347e44062d1fc69fe14a618159fcbcbb2eac15a8a09ed79f6da66ac0d7261bef",
83
+ "previewModeEncryptionKey": "70332a2c4d947505326136e6685542ca7703638f75f1a73e3b886bb61a464551"
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": {
@@ -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,5 @@
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,1921,23))},722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},1311:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return f}}),c(2605);let d=c(5735);c(1986);let e=c(8928),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)},2605:(a,b,c)=>{"use strict";function d(a){return a&&a.__esModule?a:{default:a}}c.r(b),c.d(b,{_:()=>d})},2628:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,1921,23)),Promise.resolve().then(c.t.bind(c,440,23)),Promise.resolve().then(c.t.bind(c,4342,23)),Promise.resolve().then(c.t.bind(c,2265,23)),Promise.resolve().then(c.t.bind(c,5421,23)),Promise.resolve().then(c.t.bind(c,1335,23)),Promise.resolve().then(c.t.bind(c,664,23)),Promise.resolve().then(c.bind(c,4661))},3033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},3873:a=>{"use strict";a.exports=require("path")},3954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},6084:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(7553),e=c(4006),f=c(7798),g=c(4775),h=c(9373),i=c(3461),j=c(1020),k=c(6349),l=c(4365),m=c(6023),n=c(3747),o=c(4235),p=c(3938),q=c(261),r=c(6758),s=c(7243),t=c(6713),u=c(7527),v=c(2820),w=c(8216),x=c(7929),y=c(9551),z=c(1797),A=c(9125),B=c(6439),C=c(7068),D=c(7269),E=c(1287),F=c(1494),G=c(722),H=c(753),I=c(3954),J=c(7891),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,1311,23)),"next/dist/client/components/builtin/app-error.js"]}]},{}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,5547,23)),"next/dist/client/components/builtin/global-error.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,5270,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,8193,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(5726).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(3873).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}`:""}
2
+ 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}}},6439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6487:()=>{},6596:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,5547,23)),Promise.resolve().then(c.t.bind(c,5098,23)),Promise.resolve().then(c.t.bind(c,7644,23)),Promise.resolve().then(c.t.bind(c,3859,23)),Promise.resolve().then(c.t.bind(c,8099,23)),Promise.resolve().then(c.t.bind(c,6237,23)),Promise.resolve().then(c.t.bind(c,8562,23)),Promise.resolve().then(c.t.bind(c,6675,23))},6713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},7068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},7891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},8335:()=>{},8354:a=>{"use strict";a.exports=require("util")},8928:(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(2605);let f=c(5735);c(1986);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
3
  :root {
3
4
  --next-error-bg: #fff;
4
5
  --next-error-text: #171717;
@@ -28,5 +29,4 @@
28
29
  }
29
30
  }
30
31
  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})();
32
+ `.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)},9121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},9294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},9654:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,5547,23))}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,63],()=>b(b.s=6084));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/_global-error/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"21942":{"*":{"id":"18550","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"61549":{"*":{"id":"99703","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"66919":{"*":{"id":"65720","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/_work/gsd-2/gsd-2/web/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/home/runner/_work/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/home/runner/_work/gsd-2/gsd-2/web/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/_work/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/_work/gsd-2/gsd-2/web/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/_work/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/_work/gsd-2/gsd-2/web/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/_work/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/_work/gsd-2/gsd-2/web/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/_work/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/_work/gsd-2/gsd-2/web/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/_work/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/_work/gsd-2/gsd-2/web/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/_work/gsd-2/gsd-2/web/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/_work/gsd-2/gsd-2/web/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/_work/gsd-2/gsd-2/web/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/_work/gsd-2/gsd-2/web/components/theme-provider.tsx":{"id":21942,"name":"*","chunks":["4986","static/chunks/4986-c2fc8845ce785303.js","7177","static/chunks/app/layout-9ecfd95f343793f0.js"],"async":false},"/home/runner/_work/gsd-2/gsd-2/web/components/ui/sonner.tsx":{"id":61549,"name":"*","chunks":["4986","static/chunks/4986-c2fc8845ce785303.js","7177","static/chunks/app/layout-9ecfd95f343793f0.js"],"async":false},"/home/runner/_work/gsd-2/gsd-2/web/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-geist-sans\"}],\"variableName\":\"geistSans\"}":{"id":85048,"name":"*","chunks":["4986","static/chunks/4986-c2fc8845ce785303.js","7177","static/chunks/app/layout-9ecfd95f343793f0.js"],"async":false},"/home/runner/_work/gsd-2/gsd-2/web/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist_Mono\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-geist-mono\"}],\"variableName\":\"geistMono\"}":{"id":35696,"name":"*","chunks":["4986","static/chunks/4986-c2fc8845ce785303.js","7177","static/chunks/app/layout-9ecfd95f343793f0.js"],"async":false},"/home/runner/_work/gsd-2/gsd-2/web/app/globals.css":{"id":66872,"name":"*","chunks":["4986","static/chunks/4986-c2fc8845ce785303.js","7177","static/chunks/app/layout-9ecfd95f343793f0.js"],"async":false},"/home/runner/_work/gsd-2/gsd-2/web/app/page.tsx":{"id":66919,"name":"*","chunks":["8974","static/chunks/app/page-7115e62689b5fd84.js"],"async":false}},"entryCSSFiles":{"/home/runner/_work/gsd-2/gsd-2/web/":[],"/home/runner/_work/gsd-2/gsd-2/web/app/layout":[{"inlined":false,"path":"static/css/de70bee13400563f.css"},{"inlined":false,"path":"static/css/f6e8833d46e738d8.css"}],"/home/runner/_work/gsd-2/gsd-2/web/app/page":[],"/home/runner/_work/gsd-2/gsd-2/web/app/_global-error/page":[]},"rscModuleMapping":{"21942":{"*":{"id":"9796","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"61549":{"*":{"id":"85561","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"66919":{"*":{"id":"99647","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/_global-error/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"21942":{"*":{"id":"8550","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"1921","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"5421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"440","name":"*","chunks":[],"async":false}},"61549":{"*":{"id":"9703","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"2265","name":"*","chunks":[],"async":false}},"66919":{"*":{"id":"5720","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"1335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"4342","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"4661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"664","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/__w/gsd-2/gsd-2/web/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/__w/gsd-2/gsd-2/web/components/theme-provider.tsx":{"id":21942,"name":"*","chunks":["4986","static/chunks/4986-c2fc8845ce785303.js","7177","static/chunks/app/layout-a16c7a7ecdf0c2cf.js"],"async":false},"/__w/gsd-2/gsd-2/web/components/ui/sonner.tsx":{"id":61549,"name":"*","chunks":["4986","static/chunks/4986-c2fc8845ce785303.js","7177","static/chunks/app/layout-a16c7a7ecdf0c2cf.js"],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-geist-sans\"}],\"variableName\":\"geistSans\"}":{"id":85048,"name":"*","chunks":["4986","static/chunks/4986-c2fc8845ce785303.js","7177","static/chunks/app/layout-a16c7a7ecdf0c2cf.js"],"async":false},"/__w/gsd-2/gsd-2/web/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist_Mono\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-geist-mono\"}],\"variableName\":\"geistMono\"}":{"id":35696,"name":"*","chunks":["4986","static/chunks/4986-c2fc8845ce785303.js","7177","static/chunks/app/layout-a16c7a7ecdf0c2cf.js"],"async":false},"/__w/gsd-2/gsd-2/web/app/globals.css":{"id":66872,"name":"*","chunks":["4986","static/chunks/4986-c2fc8845ce785303.js","7177","static/chunks/app/layout-a16c7a7ecdf0c2cf.js"],"async":false},"/__w/gsd-2/gsd-2/web/app/page.tsx":{"id":66919,"name":"*","chunks":["8974","static/chunks/app/page-f1e30ab6bb269149.js"],"async":false}},"entryCSSFiles":{"/__w/gsd-2/gsd-2/web/":[],"/__w/gsd-2/gsd-2/web/app/layout":[{"inlined":false,"path":"static/css/de70bee13400563f.css"},{"inlined":false,"path":"static/css/f6e8833d46e738d8.css"}],"/__w/gsd-2/gsd-2/web/app/page":[],"/__w/gsd-2/gsd-2/web/app/_global-error/page":[]},"rscModuleMapping":{"21942":{"*":{"id":"9796","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"5547","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"8099","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"5098","name":"*","chunks":[],"async":false}},"61549":{"*":{"id":"5561","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"3859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"2704","name":"*","chunks":[],"async":false}},"66919":{"*":{"id":"9647","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"6237","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"7644","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"6675","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"8562","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
@@ -1 +1 @@
1
- <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-b868033a5834586d.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-42fdce068d44fa4f.js" async=""></script><script src="/_next/static/chunks/main-app-d3d4c336195465f9.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><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)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-b868033a5834586d.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[90484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[90484,[],\"ViewportBoundary\"]\na:I[90484,[],\"MetadataBoundary\"]\nc:I[27123,[],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"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)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"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)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"Y0I7CjXJl-tWoV__KidV4\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[]\n"])</script></body></html>
1
+ <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-b868033a5834586d.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-42fdce068d44fa4f.js" async=""></script><script src="/_next/static/chunks/main-app-fdab67f7802d7832.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><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)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-b868033a5834586d.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[90484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[90484,[],\"ViewportBoundary\"]\na:I[90484,[],\"MetadataBoundary\"]\nc:I[27123,[],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"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)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"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)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"jNiH700EcljeLnbQ2_RCv\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[]\n"])</script></body></html>