thursday-agent 0.2.0 → 0.3.0

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 (535) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +5 -2
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +5 -5
  5. package/.next/routes-manifest.json +24 -6
  6. package/.next/server/app/_global-error/page.js +2 -2
  7. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  8. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/_global-error.html +1 -1
  10. package/.next/server/app/_global-error.rsc +2 -2
  11. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
  13. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next/server/app/_not-found/page.js +2 -2
  15. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  16. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/_not-found.html +1 -1
  18. package/.next/server/app/_not-found.rsc +14 -14
  19. package/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
  20. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +12 -12
  21. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  22. package/.next/server/app/api/artifact/route.js +3 -3
  23. package/.next/server/app/api/artifact/route.js.nft.json +1 -1
  24. package/.next/server/app/api/bot/memory/files/route/app-paths-manifest.json +3 -0
  25. package/.next/server/app/api/bot/memory/files/route.js +10 -0
  26. package/.next/server/app/api/bot/memory/files/route.js.nft.json +1 -0
  27. package/.next/server/app/api/bot/memory/files/route_client-reference-manifest.js +3 -0
  28. package/.next/server/app/api/bot/memory/route/app-paths-manifest.json +3 -0
  29. package/.next/server/app/api/bot/memory/route.js +14 -0
  30. package/.next/server/app/api/bot/{notes → memory}/route.js.nft.json +1 -1
  31. package/.next/server/app/api/bot/memory/route_client-reference-manifest.js +3 -0
  32. package/.next/server/app/api/bot/route.js +6 -6
  33. package/.next/server/app/api/bot/route.js.nft.json +1 -1
  34. package/.next/server/app/api/bot/task/[id]/route.js +8 -8
  35. package/.next/server/app/api/bot/task/[id]/route.js.nft.json +1 -1
  36. package/.next/server/app/api/bot/task/route.js +8 -8
  37. package/.next/server/app/api/bot/task/route.js.nft.json +1 -1
  38. package/.next/server/app/api/config/route.js +5 -5
  39. package/.next/server/app/api/config/route.js.nft.json +1 -1
  40. package/.next/server/app/api/events/route.js +4 -5
  41. package/.next/server/app/api/events/route.js.nft.json +1 -1
  42. package/.next/server/app/api/file/[...path]/route.js +3 -3
  43. package/.next/server/app/api/file/[...path]/route.js.nft.json +1 -1
  44. package/.next/server/app/api/llm-model/catalog/route.js +9 -8
  45. package/.next/server/app/api/llm-model/catalog/route.js.nft.json +1 -1
  46. package/.next/server/app/api/llm-model/credits/route/app-paths-manifest.json +3 -0
  47. package/.next/server/app/api/llm-model/credits/route/build-manifest.json +12 -0
  48. package/.next/server/app/api/llm-model/credits/route/server-reference-manifest.json +4 -0
  49. package/.next/server/app/api/llm-model/credits/route.js +16 -0
  50. package/.next/server/app/api/llm-model/credits/route.js.map +5 -0
  51. package/.next/server/app/api/llm-model/credits/route.js.nft.json +1 -0
  52. package/.next/server/app/api/llm-model/credits/route_client-reference-manifest.js +3 -0
  53. package/.next/server/app/api/llm-model/route.js +10 -8
  54. package/.next/server/app/api/llm-model/route.js.nft.json +1 -1
  55. package/.next/server/app/api/llm-model/subscription/route/app-paths-manifest.json +3 -0
  56. package/.next/server/app/api/llm-model/subscription/route/build-manifest.json +12 -0
  57. package/.next/server/app/api/llm-model/subscription/route/server-reference-manifest.json +4 -0
  58. package/.next/server/app/api/llm-model/subscription/route.js +15 -0
  59. package/.next/server/app/api/llm-model/subscription/route.js.map +5 -0
  60. package/.next/server/app/api/llm-model/subscription/route.js.nft.json +1 -0
  61. package/.next/server/app/api/llm-model/subscription/route_client-reference-manifest.js +3 -0
  62. package/.next/server/app/api/mcp/[name]/route.js +4 -4
  63. package/.next/server/app/api/mcp/[name]/route.js.nft.json +1 -1
  64. package/.next/server/app/api/mcp/oauth/callback/route.js +5 -5
  65. package/.next/server/app/api/mcp/oauth/callback/route.js.nft.json +1 -1
  66. package/.next/server/app/api/mcp/route.js +4 -4
  67. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  68. package/.next/server/app/api/mcp/tools/route.js +4 -4
  69. package/.next/server/app/api/mcp/tools/route.js.nft.json +1 -1
  70. package/.next/server/app/api/memory/edit/route/app-paths-manifest.json +3 -0
  71. package/.next/server/app/api/memory/edit/route/build-manifest.json +12 -0
  72. package/.next/server/app/api/memory/edit/route/server-reference-manifest.json +4 -0
  73. package/.next/server/app/api/memory/edit/route.js +24 -0
  74. package/.next/server/app/api/memory/edit/route.js.map +5 -0
  75. package/.next/server/app/api/memory/edit/route.js.nft.json +1 -0
  76. package/.next/server/app/api/memory/{tidy → edit}/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/memory/route.js +6 -7
  78. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  79. package/.next/server/app/api/skills/[source]/[name]/route.js +3 -3
  80. package/.next/server/app/api/skills/[source]/[name]/route.js.nft.json +1 -1
  81. package/.next/server/app/api/skills/route.js +3 -3
  82. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  83. package/.next/server/app/api/thursday/call/route.js +9 -7
  84. package/.next/server/app/api/thursday/call/route.js.nft.json +1 -1
  85. package/.next/server/app/api/thursday/skills/route.js +9 -7
  86. package/.next/server/app/api/thursday/skills/route.js.nft.json +1 -1
  87. package/.next/server/app/api/thursday/tool-call/route.js +17 -15
  88. package/.next/server/app/api/thursday/tool-call/route.js.nft.json +1 -1
  89. package/.next/server/app/api/workspace/route.js +4 -5
  90. package/.next/server/app/api/workspace/route.js.nft.json +1 -1
  91. package/.next/server/app/artifact/[...path]/page/server-reference-manifest.json +1 -1
  92. package/.next/server/app/artifact/[...path]/page.js +5 -6
  93. package/.next/server/app/artifact/[...path]/page.js.nft.json +1 -1
  94. package/.next/server/app/artifact/[...path]/page_client-reference-manifest.js +1 -1
  95. package/.next/server/app/favicon.ico/route.js +3 -4
  96. package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  97. package/.next/server/app/favicon.ico.body +0 -0
  98. package/.next/server/app/page/server-reference-manifest.json +57 -90
  99. package/.next/server/app/page.js +10 -10
  100. package/.next/server/app/page.js.nft.json +1 -1
  101. package/.next/server/app/page_client-reference-manifest.js +1 -1
  102. package/.next/server/app-paths-manifest.json +5 -2
  103. package/.next/server/chunks/[externals]__0dzuk6_._.js +3 -0
  104. package/.next/server/chunks/[root-of-the-server]__01dkp4a._.js +3 -0
  105. package/.next/server/chunks/[root-of-the-server]__02va5wz._.js +1 -1
  106. package/.next/server/chunks/[root-of-the-server]__02xjoto._.js +3 -0
  107. package/.next/server/chunks/[root-of-the-server]__04q--0f._.js +8 -0
  108. package/.next/server/chunks/[root-of-the-server]__0bl-e63._.js +3 -0
  109. package/.next/server/chunks/[root-of-the-server]__0ce8nf8._.js +5 -0
  110. package/.next/server/chunks/[root-of-the-server]__0ffbg85._.js +3 -0
  111. package/.next/server/chunks/[root-of-the-server]__0j7z0r3._.js +12 -0
  112. package/.next/server/chunks/[root-of-the-server]__0jq4ohy._.js +8 -0
  113. package/.next/server/chunks/[root-of-the-server]__0ls6_8y._.js +8 -0
  114. package/.next/server/chunks/[root-of-the-server]__0ncs9uu._.js +3 -0
  115. package/.next/server/chunks/[root-of-the-server]__0pa2n68._.js +3 -0
  116. package/.next/server/chunks/[root-of-the-server]__0q0vvt2._.js +5 -0
  117. package/.next/server/chunks/[root-of-the-server]__1-ga0kh._.js +5 -0
  118. package/.next/server/chunks/[root-of-the-server]__11n256_._.js +5 -0
  119. package/.next/server/chunks/[root-of-the-server]__12cabg9._.js +3 -0
  120. package/.next/server/chunks/[root-of-the-server]__1339jnv._.js +8 -0
  121. package/.next/server/chunks/[root-of-the-server]__15bjnu5._.js +5 -0
  122. package/.next/server/chunks/[root-of-the-server]__18_teo8._.js +8 -0
  123. package/.next/server/chunks/[root-of-the-server]__1_04mcf._.js +5 -0
  124. package/.next/server/chunks/[root-of-the-server]__1anc1p9._.js +3 -0
  125. package/.next/server/chunks/[root-of-the-server]__1ccon1w._.js +5 -5
  126. package/.next/server/chunks/[root-of-the-server]__1fizn31._.js +3 -0
  127. package/.next/server/chunks/[root-of-the-server]__1llj3-b._.js +3 -0
  128. package/.next/server/chunks/[root-of-the-server]__1orn-5b._.js +11 -0
  129. package/.next/server/chunks/[root-of-the-server]__1p8m3f4._.js +3 -0
  130. package/.next/server/chunks/[root-of-the-server]__1wa1k7r._.js +8 -0
  131. package/.next/server/chunks/_0-73of8._.js +5 -5
  132. package/.next/server/chunks/_0-fjql4._.js +26 -0
  133. package/.next/server/chunks/_00xh_q0._.js +27 -0
  134. package/.next/server/chunks/{_0pppbb5._.js → _03kp0jp._.js} +163 -36
  135. package/.next/server/chunks/_051qh8u._.js +3 -0
  136. package/.next/server/chunks/{node_modules_next_04q-o58._.js → _05dla15._.js} +2 -2
  137. package/.next/server/chunks/_05h2cii._.js +1 -1
  138. package/.next/server/chunks/_0c9j6rb._.js +49 -0
  139. package/.next/server/chunks/_0fzqt2y._.js +130 -0
  140. package/.next/server/chunks/{_0vnutv9._.js → _0ioz3nd._.js} +1 -1
  141. package/.next/server/chunks/_0iwfby5._.js +3 -0
  142. package/.next/server/chunks/_0mecv0f._.js +26 -0
  143. package/.next/server/chunks/_0mh8j4m._.js +3 -0
  144. package/.next/server/chunks/_0n74zsf._.js +4 -4
  145. package/.next/server/chunks/_0obojvv._.js +3 -0
  146. package/.next/server/chunks/_0recufk._.js +49 -0
  147. package/.next/server/chunks/_0rnf-6n._.js +4 -4
  148. package/.next/server/chunks/_0sb7tlz._.js +3 -0
  149. package/.next/server/chunks/_0u10wmw._.js +5 -5
  150. package/.next/server/chunks/_0u4aiy2._.js +3 -0
  151. package/.next/server/chunks/_0wp4le3._.js +1 -1
  152. package/.next/server/chunks/_0y5fg-x._.js +1 -1
  153. package/.next/server/chunks/_1230wbx._.js +10 -0
  154. package/.next/server/chunks/_12nheja._.js +3 -0
  155. package/.next/server/chunks/_13510xh._.js +3 -0
  156. package/.next/server/chunks/_15hq89o._.js +1 -1
  157. package/.next/server/chunks/_17l5ygt._.js +49 -0
  158. package/.next/server/chunks/_18-1wcc._.js +5 -5
  159. package/.next/server/chunks/_1_5mnq4._.js +4 -4
  160. package/.next/server/chunks/_1_9mjx-._.js +3 -0
  161. package/.next/server/chunks/_1d0j961._.js +6 -0
  162. package/.next/server/chunks/_1d5zmy8._.js +1 -1
  163. package/.next/server/chunks/_1drgfx4._.js +4 -4
  164. package/.next/server/chunks/_1f46eie._.js +3 -0
  165. package/.next/server/chunks/_1h5_8sk._.js +3 -0
  166. package/.next/server/chunks/_1hdnxb7._.js +3 -0
  167. package/.next/server/chunks/_1j8k_j5._.js +3 -0
  168. package/.next/server/chunks/_1krd9rf._.js +3 -0
  169. package/.next/server/chunks/_1nc0eui._.js +11 -0
  170. package/.next/server/chunks/_1nula3v._.js +3 -0
  171. package/.next/server/chunks/_1pf4qe-._.js +3 -0
  172. package/.next/server/chunks/_1php4eq._.js +1 -1
  173. package/.next/server/chunks/_1qxheoa._.js +3 -0
  174. package/.next/server/chunks/_1x6kd1r._.js +3 -0
  175. package/.next/server/chunks/_1yuv4vp._.js +1 -1
  176. package/.next/server/chunks/_1zjrdag._.js +3 -0
  177. package/.next/server/chunks/_next-internal_server_app_api_bot_memory_files_route_actions_1_xd_8f.js +3 -0
  178. package/.next/server/chunks/_next-internal_server_app_api_bot_memory_route_actions_1a8xfr7.js +3 -0
  179. package/.next/server/chunks/_next-internal_server_app_api_llm-model_credits_route_actions_0v424pb.js +3 -0
  180. package/.next/server/chunks/_next-internal_server_app_api_llm-model_subscription_route_actions_0-udcm5.js +3 -0
  181. package/.next/server/chunks/_next-internal_server_app_api_memory_edit_route_actions_02sfnmr.js +3 -0
  182. package/.next/server/chunks/config_ts_1g4sz5o._.js +1 -1
  183. package/.next/server/chunks/features_0rpfxbk._.js +3 -0
  184. package/.next/server/chunks/features_1qf3cei._.js +3 -0
  185. package/.next/server/chunks/features_bot_0zt92oh._.js +3 -0
  186. package/.next/server/chunks/features_bot_bot_query_ts_12mgkl2._.js +3 -0
  187. package/.next/server/chunks/features_memory_1uqvksn._.js +6 -0
  188. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0a1rd09._.js → node_modules_consola_dist_chunks_prompt_mjs_0i7cvml._.js} +1 -1
  189. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_06067w6._.js → node_modules_consola_dist_chunks_prompt_mjs_0icqaqw._.js} +1 -1
  190. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_096ais_._.js → node_modules_consola_dist_chunks_prompt_mjs_0r28-sm._.js} +1 -1
  191. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_02s3hjt._.js → node_modules_consola_dist_chunks_prompt_mjs_0v_7drq._.js} +1 -1
  192. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1xoq2rl._.js +3 -0
  193. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0tvkfgh._.js → node_modules_consola_dist_chunks_prompt_mjs_1y49572._.js} +1 -1
  194. package/.next/server/chunks/ssr/[root-of-the-server]__09q9med._.js +1 -1
  195. package/.next/server/chunks/ssr/{[root-of-the-server]__1qfqvmg._.js → [root-of-the-server]__0_69wqr._.js} +2 -2
  196. package/.next/server/chunks/ssr/[root-of-the-server]__0hg5gib._.js +1 -1
  197. package/.next/server/chunks/ssr/[root-of-the-server]__0i8ie7f._.js +3 -0
  198. package/.next/server/chunks/ssr/{[root-of-the-server]__0jsmmb-._.js → [root-of-the-server]__0mz33a7._.js} +1 -1
  199. package/.next/server/chunks/ssr/[root-of-the-server]__0tbkdlx._.js +3 -0
  200. package/.next/server/chunks/ssr/[root-of-the-server]__0vnmv-s._.js +3 -0
  201. package/.next/server/chunks/ssr/{[root-of-the-server]__0f6s48x._.js → [root-of-the-server]__0xpcv9w._.js} +3 -3
  202. package/.next/server/chunks/ssr/[root-of-the-server]__0xtssj3._.js +1 -1
  203. package/.next/server/chunks/ssr/[root-of-the-server]__0zkv7z_._.js +3 -0
  204. package/.next/server/chunks/ssr/[root-of-the-server]__10-dz5o._.js +57 -0
  205. package/.next/server/chunks/ssr/[root-of-the-server]__15_uhip._.js +3 -0
  206. package/.next/server/chunks/ssr/[root-of-the-server]__16jc196._.js +1 -1
  207. package/.next/server/chunks/ssr/{[root-of-the-server]__0m1b5ky._.js → [root-of-the-server]__1cyjywu._.js} +1 -1
  208. package/.next/server/chunks/ssr/[root-of-the-server]__1eh7hid._.js +3 -0
  209. package/.next/server/chunks/ssr/[root-of-the-server]__1gtlw6v._.js +43 -0
  210. package/.next/server/chunks/ssr/[root-of-the-server]__1mzi-ju._.js +1 -1
  211. package/.next/server/chunks/ssr/[root-of-the-server]__1ox7hbk._.js +4 -0
  212. package/.next/server/chunks/ssr/[root-of-the-server]__1pduf5n._.js +3 -0
  213. package/.next/server/chunks/ssr/{_1mznrxk._.js → _001_ms1._.js} +3 -3
  214. package/.next/server/chunks/ssr/_01_6m32._.js +3 -0
  215. package/.next/server/chunks/ssr/_01n3o0m._.js +3 -0
  216. package/.next/server/chunks/ssr/_07uchnc._.js +3 -0
  217. package/.next/server/chunks/ssr/_0ap2fzn._.js +3 -0
  218. package/.next/server/chunks/ssr/_0c-ql2m._.js +3 -0
  219. package/.next/server/chunks/ssr/_0h42fze._.js +3 -0
  220. package/.next/server/chunks/ssr/_0h7zdni._.js +1 -1
  221. package/.next/server/chunks/ssr/_0i_6q1w._.js +41 -0
  222. package/.next/server/chunks/ssr/_0kbkmar._.js +3 -0
  223. package/.next/server/chunks/ssr/{_077-g6s._.js → _0mb8zc8._.js} +3 -3
  224. package/.next/server/chunks/ssr/_0mo2w06._.js +3 -0
  225. package/.next/server/chunks/ssr/{_13punpm._.js → _0q0zan6._.js} +2 -2
  226. package/.next/server/chunks/ssr/{_040sk32._.js → _0u2jv_x._.js} +76 -82
  227. package/.next/server/chunks/ssr/_0y0tiht._.js +4 -0
  228. package/.next/server/chunks/ssr/_0zhoc3r._.js +3 -0
  229. package/.next/server/chunks/ssr/_1-teee5._.js +3 -3
  230. package/.next/server/chunks/ssr/_13fke0x._.js +3 -0
  231. package/.next/server/chunks/ssr/{_1lip4th._.js → _13z3f85._.js} +2 -2
  232. package/.next/server/chunks/ssr/_14_lw10._.js +3 -0
  233. package/.next/server/chunks/ssr/_15j2_8f._.js +3 -0
  234. package/.next/server/chunks/ssr/{_09ja_w1._.js → _1eoqg_g._.js} +2 -2
  235. package/.next/server/chunks/ssr/_1sji22n._.js +3 -0
  236. package/.next/server/chunks/ssr/_1spzm8z._.js +3 -0
  237. package/.next/server/chunks/ssr/{_0x_nu5e._.js → _1vi_uo7._.js} +2 -2
  238. package/.next/server/chunks/ssr/_1vyd1ji._.js +1 -1
  239. package/.next/server/chunks/ssr/{_1m3bsfr._.js → _1xvgn77._.js} +2 -2
  240. package/.next/server/chunks/ssr/_20kd_n0._.js +42 -0
  241. package/.next/server/chunks/ssr/features_bot_1s_-2vj._.js +3 -0
  242. package/.next/server/chunks/ssr/features_config_components_config-setting_tsx_0xfwqdg._.js +1 -1
  243. package/.next/server/chunks/ssr/features_connectors_components_mcp-setting_tsx_0jmbgvp._.js +1 -1
  244. package/.next/server/chunks/ssr/lib_date-like_ts_02is0pw._.js +3 -0
  245. package/.next/server/chunks/ssr/{node_modules_18_dk7_._.js → node_modules_063xwpp._.js} +1 -1
  246. package/.next/server/chunks/ssr/{node_modules_01qnv-a._.js → node_modules_0bvraul._.js} +1 -1
  247. package/.next/server/chunks/ssr/{node_modules_0n1kj4p._.js → node_modules_0eu1va6._.js} +1 -1
  248. package/.next/server/chunks/ssr/{node_modules_0kl7-tn._.js → node_modules_0h50b8n._.js} +1 -1
  249. package/.next/server/chunks/ssr/{node_modules_0_n241r._.js → node_modules_0h5hnr1._.js} +1 -1
  250. package/.next/server/chunks/ssr/{node_modules_0lrjk5t._.js → node_modules_0h7u60n._.js} +1 -1
  251. package/.next/server/chunks/ssr/{node_modules_0ndvxub._.js → node_modules_0lm7_vm._.js} +1 -1
  252. package/.next/server/chunks/ssr/{node_modules_13r44jq._.js → node_modules_0mwym0g._.js} +1 -1
  253. package/.next/server/chunks/ssr/{node_modules_17lrt3y._.js → node_modules_0rjg6t1._.js} +1 -1
  254. package/.next/server/chunks/ssr/node_modules_0x3-ply._.js +3 -0
  255. package/.next/server/chunks/ssr/{node_modules_004qlr4._.js → node_modules_0y_cded._.js} +1 -1
  256. package/.next/server/chunks/ssr/{node_modules_0kxz4gt._.js → node_modules_0z5tsu8._.js} +1 -1
  257. package/.next/server/chunks/ssr/{node_modules_0iz1rzd._.js → node_modules_0zp9r92._.js} +1 -1
  258. package/.next/server/chunks/ssr/{node_modules_19dp7ko._.js → node_modules_1-hc6uv._.js} +1 -1
  259. package/.next/server/chunks/ssr/{node_modules_1q0p85z._.js → node_modules_113tz0l._.js} +1 -1
  260. package/.next/server/chunks/ssr/{node_modules_1toafc-._.js → node_modules_124bue5._.js} +1 -1
  261. package/.next/server/chunks/ssr/node_modules_17bwo43._.js +55 -0
  262. package/.next/server/chunks/ssr/{node_modules_08d8bke._.js → node_modules_1_n3ztw._.js} +1 -1
  263. package/.next/server/chunks/ssr/{node_modules_1dwguw_._.js → node_modules_1bc7gu8._.js} +1 -1
  264. package/.next/server/chunks/ssr/{node_modules_20yebtj._.js → node_modules_1bgb6-f._.js} +1 -1
  265. package/.next/server/chunks/ssr/{node_modules_1n5ygqe._.js → node_modules_1h4a4pp._.js} +1 -1
  266. package/.next/server/chunks/ssr/{node_modules_04n7mjs._.js → node_modules_1i7u1ia._.js} +1 -1
  267. package/.next/server/chunks/ssr/{node_modules_1hn8z1f._.js → node_modules_1juq3hs._.js} +1 -1
  268. package/.next/server/chunks/ssr/{node_modules_1xyd7ov._.js → node_modules_1l0qtdu._.js} +1 -1
  269. package/.next/server/chunks/ssr/{node_modules_0m93zeg._.js → node_modules_1t9cyee._.js} +1 -1
  270. package/.next/server/chunks/ssr/{node_modules_09xhur7._.js → node_modules_1uuj9x1._.js} +1 -1
  271. package/.next/server/chunks/ssr/{node_modules_1hd-5tv._.js → node_modules_1vqb6po._.js} +1 -1
  272. package/.next/server/chunks/ssr/{node_modules_1zu988w._.js → node_modules_1xx28h1._.js} +1 -1
  273. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0m9a4y0._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0d3skpl._.js} +1 -1
  274. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_13w_wy9._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0i44kk5._.js} +1 -1
  275. package/.next/server/chunks/ssr/node_modules_@vercel_oidc_dist_0qe30a_._.js +3 -0
  276. package/.next/server/chunks/ssr/{node_modules_next_dist_0w6mzq5._.js → node_modules_next_dist_0drixxt._.js} +4 -4
  277. package/.next/server/chunks/ssr/node_modules_next_dist_1n3w9lb._.js +2 -2
  278. package/.next/server/instrumentation.js +1 -1
  279. package/.next/server/middleware-build-manifest.js +3 -3
  280. package/.next/server/pages/404.html +1 -1
  281. package/.next/server/pages/500.html +1 -1
  282. package/.next/server/server-reference-manifest.js +1 -1
  283. package/.next/server/server-reference-manifest.json +58 -91
  284. package/.next/static/chunks/{31ttnjt6g35a0.js → 0ev4hyghq0mbb.js} +1 -1
  285. package/.next/static/chunks/0r5qcctujhxli.js +1 -0
  286. package/.next/static/chunks/0tmgrnlje14-s.js +3 -0
  287. package/.next/static/chunks/0x79tx04dxbpp.js +1 -0
  288. package/.next/static/chunks/0xzgvc0fkdb6t.js +1 -0
  289. package/.next/static/chunks/10teww7wt-f6h.js +1 -0
  290. package/.next/static/chunks/14hgtsjg-kael.css +1 -0
  291. package/.next/static/chunks/17donp69y4do7.js +40 -0
  292. package/.next/static/chunks/{3_h9txt3tq8t8.js → 1dkjg87pxk0n9.js} +1 -1
  293. package/.next/static/chunks/1ekc7ul556kbl.js +1 -0
  294. package/.next/static/chunks/{3ard_noqapnw1.js → 1grhjo7a5a0_-.js} +1 -1
  295. package/.next/static/chunks/1kq8h8wi_e0bc.js +53 -0
  296. package/.next/static/chunks/1okqiww3pnwka.js +1 -0
  297. package/.next/static/chunks/26-pr2c9ro222.js +1 -0
  298. package/.next/static/chunks/{18vhba44l1fc9.js → 280t0_e99i276.js} +1 -1
  299. package/.next/static/chunks/28cizcdaabd4h.js +1 -0
  300. package/.next/static/chunks/2a0k6jlq0_v1u.js +2 -0
  301. package/.next/static/chunks/2fzs9fm8yarvq.js +1 -0
  302. package/.next/static/chunks/2h0sd2vumhb15.js +1 -0
  303. package/.next/static/chunks/2hw2f6zmt7fmt.js +1 -0
  304. package/.next/static/chunks/2t4vhi3m8ahya.js +1 -0
  305. package/.next/static/chunks/2tigdtz3dpcy8.js +1 -0
  306. package/.next/static/chunks/3111pj5wnjgos.js +1 -0
  307. package/.next/static/chunks/{07kl352c-lvcz.js → 3agpgkwaa321p.js} +1 -1
  308. package/.next/static/chunks/3cfi_q6d_wtci.js +1 -0
  309. package/.next/static/chunks/3ok9_x74rip3v.js +1 -0
  310. package/.next/static/chunks/3xk7yqgomx7yq.js +1 -0
  311. package/.next/static/chunks/3xpbkl66ssib5.js +38 -0
  312. package/.next/static/media/favicon.37o1pjldwi2uc.ico +0 -0
  313. package/README.md +6 -4
  314. package/app/api/bot/memory/files/route.ts +14 -0
  315. package/app/api/bot/memory/route.ts +5 -0
  316. package/app/api/events/app-event.ts +3 -5
  317. package/app/api/llm-model/credits/route.ts +11 -0
  318. package/app/api/llm-model/route.ts +6 -1
  319. package/app/api/llm-model/subscription/route.ts +11 -0
  320. package/app/api/memory/edit/route.ts +7 -0
  321. package/app/api/memory/route.ts +21 -0
  322. package/app/api/query-key.ts +19 -4
  323. package/bin/thursday.mjs +3 -0
  324. package/components/ui/shiny-text.tsx +48 -134
  325. package/database/migrations/{20260909060813_optimal_sabretooth → 20260910173049_numerous_spirit}/migration.sql +24 -34
  326. package/database/migrations/{20260909060813_optimal_sabretooth → 20260910173049_numerous_spirit}/snapshot.json +71 -145
  327. package/database/migrations/20260911030320_opposite_jack_power/migration.sql +1 -0
  328. package/database/migrations/{20260909063821_bitter_tenebrous → 20260911030320_opposite_jack_power}/snapshot.json +57 -184
  329. package/features/ai/chatgpt.ts +617 -0
  330. package/features/ai/components/chatgpt-sign-in.tsx +66 -0
  331. package/features/ai/components/model-picker.tsx +17 -1
  332. package/features/ai/components/provider-icon.tsx +1 -0
  333. package/features/ai/load-tools.ts +58 -42
  334. package/features/ai/model.schema.ts +232 -34
  335. package/features/ai/model.ts +169 -24
  336. package/features/ai/prompts/bot.prompt.ts +156 -65
  337. package/features/ai/prompts/memory-edit.prompt.ts +33 -0
  338. package/features/ai/prompts/prompt-helper.ts +45 -26
  339. package/features/ai/prompts/thursday.prompt.ts +40 -17
  340. package/features/ai/tools/bot.tool.ts +35 -52
  341. package/features/ai/tools/connected.ts +17 -4
  342. package/features/ai/tools/memory.tool.ts +133 -72
  343. package/features/ai/tools/search.tool.ts +136 -47
  344. package/features/ai/tools/tool-name.ts +2 -5
  345. package/features/ai/tools/workspace.tool.ts +2 -1
  346. package/features/bot/bot.action.ts +8 -18
  347. package/features/bot/bot.memory.ts +89 -0
  348. package/features/bot/bot.query.ts +37 -57
  349. package/features/bot/bot.run.ts +507 -241
  350. package/features/bot/bot.runner.ts +410 -114
  351. package/features/bot/bot.schema.ts +79 -19
  352. package/features/bot/bot.seed.ts +89 -16
  353. package/features/bot/components/bot-mark.tsx +122 -20
  354. package/features/bot/components/bot-room.tsx +159 -130
  355. package/features/bot/components/bot-setting.tsx +790 -402
  356. package/features/bot/components/bot-tool.tsx +2 -6
  357. package/features/bot/components/mark-palette.tsx +54 -0
  358. package/features/bot/components/path-chips.tsx +1 -1
  359. package/features/bot/components/task-badge.tsx +26 -6
  360. package/features/bot/components/task-reply.tsx +22 -33
  361. package/features/bot/components/task-setting.tsx +20 -17
  362. package/features/bot/task.query.ts +215 -28
  363. package/features/bot/task.store.ts +53 -9
  364. package/features/config/components/config-setting.tsx +265 -34
  365. package/features/config/components/models-badge.tsx +42 -0
  366. package/features/config/config.action.ts +12 -0
  367. package/features/config/config.const.ts +38 -2
  368. package/features/connectors/mcp.manager.ts +10 -2
  369. package/features/intro/components/intro.tsx +47 -46
  370. package/features/memory/components/memory-edit.tsx +338 -0
  371. package/features/memory/components/memory-setting.tsx +75 -77
  372. package/features/memory/memory.action.ts +3 -43
  373. package/features/memory/memory.edit.ts +87 -0
  374. package/features/memory/memory.query.ts +24 -42
  375. package/features/memory/memory.schema.ts +29 -106
  376. package/features/settings/components/settings.tsx +2 -0
  377. package/features/settings/settings.alert.ts +3 -1
  378. package/features/thursday/components/ascii-orb.tsx +106 -90
  379. package/features/thursday/components/boot.tsx +7 -0
  380. package/features/thursday/components/call-log.tsx +219 -92
  381. package/features/thursday/components/face.tsx +6 -4
  382. package/features/thursday/components/tab-state.tsx +97 -0
  383. package/features/thursday/components/thursday-mark.tsx +4 -1
  384. package/features/thursday/components/thursday-setting.tsx +17 -47
  385. package/features/thursday/components/thursday.tsx +208 -95
  386. package/features/thursday/thursday.action.ts +12 -17
  387. package/features/thursday/thursday.query.ts +61 -70
  388. package/features/thursday/thursday.schema.ts +20 -7
  389. package/features/thursday/tool-line.ts +85 -11
  390. package/features/thursday/use-thursday.ts +86 -59
  391. package/features/workspace/components/file-view.tsx +4 -2
  392. package/features/workspace/workspace.ts +110 -26
  393. package/lib/limits.ts +1 -1
  394. package/lib/oauth-page.ts +27 -0
  395. package/lib/realtime/openai.ts +2 -2
  396. package/lib/realtime/realtime.protocol.ts +1 -1
  397. package/lib/realtime/realtime.tap.ts +122 -0
  398. package/lib/sandbox.ts +59 -36
  399. package/package.json +1 -1
  400. package/skills/browser/SKILL.md +55 -34
  401. package/.next/server/app/api/bot/notes/route/app-paths-manifest.json +0 -3
  402. package/.next/server/app/api/bot/notes/route.js +0 -14
  403. package/.next/server/app/api/bot/notes/route_client-reference-manifest.js +0 -3
  404. package/.next/server/app/api/memory/tidy/route/app-paths-manifest.json +0 -3
  405. package/.next/server/app/api/memory/tidy/route.js +0 -22
  406. package/.next/server/app/api/memory/tidy/route.js.nft.json +0 -1
  407. package/.next/server/chunks/0d-b_next_dist_server_app-render_after-task-async-storage_external_0-exn7p.js +0 -3
  408. package/.next/server/chunks/[root-of-the-server]__0-npkh_._.js +0 -3
  409. package/.next/server/chunks/[root-of-the-server]__005var5._.js +0 -3
  410. package/.next/server/chunks/[root-of-the-server]__019dx9f._.js +0 -5
  411. package/.next/server/chunks/[root-of-the-server]__02_2sm-._.js +0 -5
  412. package/.next/server/chunks/[root-of-the-server]__04_8spk._.js +0 -3
  413. package/.next/server/chunks/[root-of-the-server]__05luceg._.js +0 -3
  414. package/.next/server/chunks/[root-of-the-server]__06t77t4._.js +0 -11
  415. package/.next/server/chunks/[root-of-the-server]__0bed6hu._.js +0 -8
  416. package/.next/server/chunks/[root-of-the-server]__0cro2dz._.js +0 -5
  417. package/.next/server/chunks/[root-of-the-server]__0dupqt7._.js +0 -5
  418. package/.next/server/chunks/[root-of-the-server]__0emr6go._.js +0 -3
  419. package/.next/server/chunks/[root-of-the-server]__0le4d-p._.js +0 -3
  420. package/.next/server/chunks/[root-of-the-server]__0m8ywyo._.js +0 -10
  421. package/.next/server/chunks/[root-of-the-server]__0nfuugi._.js +0 -5
  422. package/.next/server/chunks/[root-of-the-server]__0p32jfz._.js +0 -12
  423. package/.next/server/chunks/[root-of-the-server]__0phdgco._.js +0 -8
  424. package/.next/server/chunks/[root-of-the-server]__0wvgrsl._.js +0 -3
  425. package/.next/server/chunks/[root-of-the-server]__10qshki._.js +0 -3
  426. package/.next/server/chunks/[root-of-the-server]__11j52t0._.js +0 -5
  427. package/.next/server/chunks/[root-of-the-server]__1692zrv._.js +0 -3
  428. package/.next/server/chunks/[root-of-the-server]__16thabu._.js +0 -3
  429. package/.next/server/chunks/[root-of-the-server]__173nhwf._.js +0 -8
  430. package/.next/server/chunks/[root-of-the-server]__1_aoyr9._.js +0 -3
  431. package/.next/server/chunks/[root-of-the-server]__1bn73ih._.js +0 -10
  432. package/.next/server/chunks/[root-of-the-server]__1bqhuh9._.js +0 -8
  433. package/.next/server/chunks/[root-of-the-server]__1cqizfq._.js +0 -5
  434. package/.next/server/chunks/[root-of-the-server]__1e-ci13._.js +0 -3
  435. package/.next/server/chunks/[root-of-the-server]__1fboj2j._.js +0 -3
  436. package/.next/server/chunks/[root-of-the-server]__1lr7j9t._.js +0 -5
  437. package/.next/server/chunks/[root-of-the-server]__1oli73c._.js +0 -3
  438. package/.next/server/chunks/[root-of-the-server]__1txedx6._.js +0 -8
  439. package/.next/server/chunks/[root-of-the-server]__1untqv8._.js +0 -5
  440. package/.next/server/chunks/[root-of-the-server]__1zgpz1w._.js +0 -3
  441. package/.next/server/chunks/_00_584r._.js +0 -293
  442. package/.next/server/chunks/_012yhfm._.js +0 -39
  443. package/.next/server/chunks/_06mxlgn._.js +0 -3
  444. package/.next/server/chunks/_07rtlxv._.js +0 -3
  445. package/.next/server/chunks/_0a351g7._.js +0 -6
  446. package/.next/server/chunks/_0kjjmag._.js +0 -3
  447. package/.next/server/chunks/_0nn99o2._.js +0 -3
  448. package/.next/server/chunks/_0zuzmt_._.js +0 -39
  449. package/.next/server/chunks/_106co2o._.js +0 -3
  450. package/.next/server/chunks/_12bbv5i._.js +0 -100
  451. package/.next/server/chunks/_15q1pig._.js +0 -3
  452. package/.next/server/chunks/_19wg5yn._.js +0 -138
  453. package/.next/server/chunks/_1bt95p9._.js +0 -55
  454. package/.next/server/chunks/_1cbk7ms._.js +0 -26
  455. package/.next/server/chunks/_1drv2et._.js +0 -40
  456. package/.next/server/chunks/_1ic3bew._.js +0 -5
  457. package/.next/server/chunks/_1mxn_lb._.js +0 -3
  458. package/.next/server/chunks/_1rysr-r._.js +0 -10
  459. package/.next/server/chunks/_1u3rwbr._.js +0 -3
  460. package/.next/server/chunks/_1x7p319._.js +0 -6
  461. package/.next/server/chunks/_next-internal_server_app_api_bot_notes_route_actions_0qcsyu7.js +0 -3
  462. package/.next/server/chunks/_next-internal_server_app_api_memory_tidy_route_actions_0_cfuom.js +0 -3
  463. package/.next/server/chunks/features_bot_task_query_ts_11xuzl3._.js +0 -3
  464. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0gzvgfv._.js +0 -3
  465. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0vorg6w._.js +0 -3
  466. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1tpvamf._.js +0 -3
  467. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1vmaq9f._.js +0 -3
  468. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1y9-wcr._.js +0 -3
  469. package/.next/server/chunks/ssr/[externals]_node_crypto_1kn79-7._.js +0 -3
  470. package/.next/server/chunks/ssr/[root-of-the-server]__0iuoa-r._.js +0 -3
  471. package/.next/server/chunks/ssr/[root-of-the-server]__0un-erv._.js +0 -4
  472. package/.next/server/chunks/ssr/[root-of-the-server]__1-mnhyd._.js +0 -92
  473. package/.next/server/chunks/ssr/[root-of-the-server]__1bww500._.js +0 -3
  474. package/.next/server/chunks/ssr/[root-of-the-server]__1vcdast._.js +0 -3
  475. package/.next/server/chunks/ssr/[root-of-the-server]__1xwnu-h._.js +0 -3
  476. package/.next/server/chunks/ssr/_0-mc7ro._.js +0 -3
  477. package/.next/server/chunks/ssr/_01p5r6-._.js +0 -3
  478. package/.next/server/chunks/ssr/_03webdr._.js +0 -3
  479. package/.next/server/chunks/ssr/_09-0k3z._.js +0 -3
  480. package/.next/server/chunks/ssr/_0f_b_9s._.js +0 -3
  481. package/.next/server/chunks/ssr/_0fafgvl._.js +0 -3
  482. package/.next/server/chunks/ssr/_0sf1isi._.js +0 -3
  483. package/.next/server/chunks/ssr/_0su6_08._.js +0 -3
  484. package/.next/server/chunks/ssr/_0ti51xc._.js +0 -3
  485. package/.next/server/chunks/ssr/_0w5bgak._.js +0 -3
  486. package/.next/server/chunks/ssr/_0y84qo6._.js +0 -3
  487. package/.next/server/chunks/ssr/_1ciyoo3._.js +0 -3
  488. package/.next/server/chunks/ssr/_1e-dgz0._.js +0 -4
  489. package/.next/server/chunks/ssr/_1fq7zgb._.js +0 -3
  490. package/.next/server/chunks/ssr/_1g6l4uj._.js +0 -3
  491. package/.next/server/chunks/ssr/_1ruzehw._.js +0 -3
  492. package/.next/server/chunks/ssr/features_bot_components_bot-setting_tsx_01ajft6._.js +0 -4
  493. package/.next/server/chunks/ssr/features_config_components_14jqgy4._.js +0 -3
  494. package/.next/server/chunks/ssr/features_memory_components_memory-setting_tsx_0oa43sw._.js +0 -4
  495. package/.next/server/chunks/ssr/node_modules_zod_v4_classic_external_15fmmz3.js +0 -55
  496. package/.next/static/chunks/05b6nx_o3_f_n.js +0 -1
  497. package/.next/static/chunks/0dmns-gi0raa4.js +0 -1
  498. package/.next/static/chunks/0f9sq-7q_yxyl.js +0 -1
  499. package/.next/static/chunks/0oc4_xoia77dg.css +0 -1
  500. package/.next/static/chunks/0pheo8m3a-rzi.js +0 -1
  501. package/.next/static/chunks/19i8h2t-5evjx.js +0 -1
  502. package/.next/static/chunks/1c5fcj473025q.js +0 -1
  503. package/.next/static/chunks/1pi_hbmjw-f-z.js +0 -1
  504. package/.next/static/chunks/1twt6k09vg4np.js +0 -1
  505. package/.next/static/chunks/1ytnip8wdng93.js +0 -1
  506. package/.next/static/chunks/28gotuisldmom.js +0 -1
  507. package/.next/static/chunks/2998p0y7k1c8z.js +0 -3
  508. package/.next/static/chunks/29gyb3nubj51j.js +0 -53
  509. package/.next/static/chunks/2l233xfycjpd8.js +0 -1
  510. package/.next/static/chunks/2p5n7pa3c40t-.js +0 -2
  511. package/.next/static/chunks/2ru1q132af7h7.js +0 -1
  512. package/.next/static/chunks/2t8wqycwg3y04.js +0 -2
  513. package/.next/static/chunks/2uxum7qbyeyxd.js +0 -1
  514. package/.next/static/chunks/32z_ypgtchw48.js +0 -1
  515. package/.next/static/chunks/33pyjb3xd1iez.js +0 -1
  516. package/.next/static/chunks/3omud5xunrk1f.js +0 -1
  517. package/.next/static/chunks/42dnrkbph9e-1.js +0 -1
  518. package/.next/static/media/favicon.2vob68tjqpejf.ico +0 -0
  519. package/database/migrations/20260909063821_bitter_tenebrous/migration.sql +0 -1
  520. package/features/ai/prompts/memory-tidy.prompt.ts +0 -129
  521. package/features/ai/tools/tidy.tool.ts +0 -22
  522. package/features/bot/bot.notes.ts +0 -120
  523. package/features/memory/components/memory-tidy.tsx +0 -395
  524. package/features/memory/memory.tidy.ts +0 -332
  525. package/features/memory/tidy.query.ts +0 -135
  526. package/features/thursday/use-call-title.ts +0 -31
  527. /package/.next/server/app/api/bot/{notes → memory/files}/route/build-manifest.json +0 -0
  528. /package/.next/server/app/api/bot/{notes → memory/files}/route/server-reference-manifest.json +0 -0
  529. /package/.next/server/app/api/bot/{notes → memory/files}/route.js.map +0 -0
  530. /package/.next/server/app/api/{memory/tidy → bot/memory}/route/build-manifest.json +0 -0
  531. /package/.next/server/app/api/{memory/tidy → bot/memory}/route/server-reference-manifest.json +0 -0
  532. /package/.next/server/app/api/{memory/tidy → bot/memory}/route.js.map +0 -0
  533. /package/.next/static/{YR4NWcDDuzwLbTTU7U7Vr → x1cCqY0kWpR_VcYx_lWO5}/_buildManifest.js +0 -0
  534. /package/.next/static/{YR4NWcDDuzwLbTTU7U7Vr → x1cCqY0kWpR_VcYx_lWO5}/_clientMiddlewareManifest.js +0 -0
  535. /package/.next/static/{YR4NWcDDuzwLbTTU7U7Vr → x1cCqY0kWpR_VcYx_lWO5}/_ssgManifest.js +0 -0
@@ -1,293 +0,0 @@
1
- module.exports=[475235,e=>e.a(async(t,r)=>{try{var n=e.i(333925),o=e.i(51083),a=e.i(799791),i=e.i(993195),s=e.i(1363),u=e.i(343229),c=e.i(871096),l=e.i(938281),d=e.i(64774),h=e.i(340697),p=e.i(636608),f=t([a,i,s,h]);async function m(e,t,r,d){var f,m,v,k,S,x,T,P;let A,N,j,D=await (0,c.openWorkspace)(),C=e.trim(),[I,$,L,M,U,B,q,X,W]=await Promise.all([(0,u.loadSkills)(D),(0,s.listNoteIndex)(),(0,s.listAlwaysLoaded)(),(0,h.listConnectedToolNames)(),(0,i.findPinnedTools)(C),(0,a.listJobBots)(),(0,a.readBotNote)(C),(0,a.readBotNotesOn)(),(0,c.readMachineTools)(D)]),H=r?[]:B.filter(e=>e.name!==C),G=[r?(f=C,m=r,[`You are ${f}, a worker. ${m} is holding a job Thursday handed them and has handed one part of it to you. The user speaks to Thursday and to nobody else; you never address them, and what you hand back goes into ${m}'s report as-is. This thread is drawn on their screen while you work: not written to them, but not private either. ${(0,p.nowLine)()}`,g,b].join("\n\n")):(v=C,[`You are ${v}, a worker. Thursday handed you a job while she keeps talking to the user — they speak to her and to nobody else, and what she reads them out of your report is the only part of this that reaches them. You are not in that conversation and never address the user. This thread is drawn on their screen while you work, though: not written to them, but not private either. ${(0,p.nowLine)()}`,g,b].join("\n\n")),(k=$,S=L,A=`## Memory
2
-
3
- What the user's assistant knows about them. Thursday keeps it as she talks with them, and everyone reads it.
4
-
5
- Yours to read, and to add to when the work turns up something about *them* that outlives the job; what the job itself turned up goes in your report. It describes the user, not you: how they are named and spoken to is hers to use with them, not yours to borrow. What you learn about this machine is not memory — that is your own instructions, below.`,N=S.length?`Already known:
6
-
7
- ${(0,p.carriedLines)(S)}`:"",j=`path — what is under it (facts) "what the user calls it"
8
-
9
- ${(0,p.noteLines)(k)}
10
-
11
- A topic not listed is one nobody knows anything about.`,[A,N,j].filter(Boolean).join("\n\n")),X?(x=q,`## Your own instructions
12
-
13
- What you wrote to yourself on earlier jobs here, to get better at this machine. Only you read it, and it is the one thing that reaches your next job. What belongs in it is what working here is like — the command that turns out to be the right one, the flag it needs, the tool this platform does not have. Not what the user is like: that is Memory, above, and everyone reads that one.
14
-
15
- ${x??"Empty. What usually goes in first is whatever you had to find out before you could start."}
16
-
17
- (${x?.length??0}/${n.BOT_NOTES.chars} characters)`):"",function(e,t){let r=new Set(t.map(e=>`${e.server}/${e.name}`)),n=e.filter(e=>!r.has(`${e.server}/${e.name}`));if(0===n.length)return"";let a=r.size?" What is not listed above you are already holding — it is in your tools.":"";return`## Connected tools
18
-
19
- ${(0,p.mcpToolLines)(n)}
20
-
21
- Names only: \`${o.TOOL_NAMES.tool_search}\` returns what each one takes, \`${o.TOOL_NAMES.tool_call}\` runs one.${a}`}(M,U),(T=I,0===T.length?"":`## Skills
22
-
23
- Written-down methods. When the job is one of these, read it with \`${o.TOOL_NAMES.load_skill}\` before starting.
24
-
25
- ${(0,p.skillLines)(T)}`),w(D.cwd,W,d),(P=H,0===P.length?"":`## Bots
26
-
27
- ${P.map(e=>`- **${e.name}** — ${e.description}`).join("\n")}
28
-
29
- These lines were written for the user, who reads them on their own screen: where one says "you" it means them, not you.
30
-
31
- A part of your job another bot is for goes to \`${o.TOOL_NAMES.ask_bot}\`, because their tools and their practice are the reason they exist. What you build is made of what they bring back, so send for it before you build. A part you could finish in a couple of commands is yours; one that would take a run of its own is theirs. The job stays yours and you report; they see only your brief — not the call, not this thread.`),r?E(r):_,r?O(r):R,y(t)].filter(Boolean).join("\n\n");return(0,p.logPromptSize)("bot",G),l.logger.debug(`bot prompt
32
- ${G}`),{text:G,peers:H.map(e=>e.name),opening:null}}[a,i,s,h]=f.then?(await f)():f;let g=`**You are on a real computer — the user's own.** You have a shell and a filesystem, and the job is done, not described: where there is no tool for something, write one — in \`node\` unless they asked for another language, the runtime this app itself runs on. Reach for \`${o.TOOL_NAMES.bash}\` before concluding that something cannot be done, but after the roster, not instead of it: a script you write to do another bot's job is the long way round.
33
-
34
- **What is missing gets installed**, onto the machine once they say yes. What is already there is nobody's question — Environment says what this machine has.
35
-
36
- **Bring back the thing itself** — their own machine, their own accounts, their own copy of whatever they sent you for — not a smaller safer version of it, and not a note on why you did not.`,b="**Never present a guess as a result.** She says it out loud as fact. Say which part is unverified and why.",y=e=>e?.trim()?`## Owner's instructions
37
-
38
- Written by the person this bot works for. Where these and anything above disagree, these win.
39
-
40
- ${e.trim()}`:"",w=(e,t,r)=>{var a;let i,s;return`## Environment
41
-
42
- Current Cwd: ${e}
43
- Platform: ${process.platform}
44
- ${a=t,i=(e,t)=>`${e}: ${t.found.length?t.found.join(", "):"none"}.${t.missing.length?` Not here: ${t.missing.join(", ")}.`:""}`,s=a.managers.found.includes("pnpm")?" Use pnpm, not npm — this workspace is fenced for it (`pnpm-workspace.yaml`, `.npmrc`).":"",[i("Runtimes",a.runtimes),`${i("Package managers",a.managers)}${s}`,null===a.browser?"":a.browser?"Browser: installed.":"Browser: not installed — `playwright-cli install-browser chromium` puts one there."].filter(Boolean).join("\n")}
45
-
46
- Read off this machine as the job opened, so it is current: reach for what is here instead of checking for it.
47
-
48
- Your workspace — \`${o.TOOL_NAMES.bash}\` runs here. Everything you write goes in one of these, and they are kept apart because what is in them lives for different lengths of time:
49
-
50
- - \`${n.PATHS.artifacts}/\` — finished work the user opens, one entry per result. Theirs, and it stays.
51
- - \`${n.PATHS.projects}/\` — code you build, one folder each. It outlives this job, and a project's dependencies install inside it, never at the workspace root.
52
- - \`${r?.scratch??n.PATHS.scratch}/\` — this job's working material. It goes when the job does, so nothing here is worth keeping.
53
- - \`${r?.own??n.PATHS.bots}/\` — yours, across every job you run here. A script you wrote once and will want again, a table you built. Your own instructions can name what is in it.
54
-
55
- Never the directory above — that is the app you run in; outside the workspace, only where the user pointed you.`},_=`## Asking
56
-
57
- What you cannot get for yourself — a decision between real options, a detail only the conversation has, a go-ahead before deleting or sending — goes to \`${o.TOOL_NAMES.ask_thursday}\`, once, with everything in it. Ask before you start, not after an hour; never ask what one command would tell you.
58
-
59
- A job that arrives without its shape — several ways to do it, no telling what it is for, a scale nobody named — is planned before it is built: put the plan up in two or three lines with what you need decided. A job asked for as one thing is built, not proposed.
60
-
61
- A request that says buy, pay, top up is the go-ahead — press the button. Only what is theirs alone stops the job: a password, a one-time code, a passkey, a permission on their machine. Set it up one action away, ask, and carry on when the answer comes back.`,E=e=>`## Asking
62
-
63
- What you cannot get for yourself goes to \`${o.TOOL_NAMES.ask_back}\`: ${e} handed you this part and answers from what they have. They cannot take a question to the user, so for what is the user's alone take the safer reading and say so in what you hand back. Ask before you start, once, whole.`,v=`Your steps are capped at ${n.BOT_RUN.steps}; running long, report what you have with \`complete: false\` while the summary is still yours to write.`,R=`## Finishing
64
-
65
- Every job ends with \`${o.TOOL_NAMES.report}\`, in the user's language, written to be heard — she reads it out loud. **The job ends in the thing that was asked for**: an action with the action done, photos in a page with the photos in it, a comparison in a table. Anything that does not fit in a few lines is a file under \`${n.PATHS.artifacts}/\`, and the report names its path — it becomes a link on their screen. In a \`.md\`, images only by absolute route (\`/api/file/${n.PATHS.artifacts}/…\`).
66
-
67
- \`complete: false\` when part of the request is genuinely undone — say where you got to and the user decides. ${v}`,O=e=>`## Finishing
68
-
69
- Every part ends with \`${o.TOOL_NAMES.report}\`; what you hand back goes into ${e}'s own report. Hand back what the brief asked for, in the shape it asked for, with everything you learned that bears on it — exact values, the paths of files you wrote, what did not work. They cannot see your thread, so long is right here. \`complete: false\` when part of the brief is undone, with where you got to. ${v}`;e.s(["OPENING_TURNS",0,10,"buildTaskOpening",0,function(e){let t=e.conversation.filter(e=>e.text.trim());if(!t.length)return e.request;let r=t.map(e=>`${"user"===e.role?"user":"thursday"}: ${(0,d.clip)(e.text,160)}`);return`${e.request}
70
-
71
- ## The call, just before this reached you
72
-
73
- A detail that is not in the request may be here — a name, a number, which one of two. The request wins where they disagree, with one exception: when they asked out loud for something to be *done* and the request only asks about it, the doing is the job.
74
-
75
- ${r.join("\n")}`},"loadBotPrompt",0,m]),r()}catch(e){r(e)}},!1),29957,e=>e.a(async(t,r)=>{try{var n=e.i(734732),o=e.i(691296),a=e.i(749906),i=e.i(333925),s=e.i(51083),u=e.i(938281),c=e.i(991243),l=e.i(799791),d=t([l]);[l]=d.then?(await d)():d;let p=(0,c.createKeyedLock)();async function h(e){return p(e.bot,async()=>{let t=await (0,l.readBotNote)(e.bot),r=t;try{var c,d;await (0,n.generateText)({model:e.model,messages:[{role:"user",content:(c=t,d=e.want,`You keep one worker's notes. It is an agent with a shell on this machine; the notes are its own, read at the start of every job it runs and by nobody else. They hold what this machine has taught it — the command that works here, the flag without which something fails, the tool this platform does not have. Write what the worker found, never what it proposed.
76
-
77
- Four things do not belong, however true today: what is in a folder right now, what a job produced, anything about the person the work is for, and how to satisfy the worker's own tools (\`report\`, \`write_file\`, \`bash\` — those belong to the app it runs inside and change with it). A program *on the machine* is the opposite and does belong.
78
-
79
- Nor does how the worker should behave. Whoever owns it writes that separately and it outranks these, so a note about manner or language is either already said or about to be overruled.
80
-
81
- The change is applied to what is already there, not written over it. Say the notes read \`Tests here run with npm.\` and then \`Chromium needs --no-sandbox or it exits.\` The worker asks for the npm line to be corrected to pnpm: both lines come back, the first now reading \`Tests here run with pnpm.\` and the second word for word as it was. Added, corrected or dropped is one line moving; everything the request did not name is untouched.
82
-
83
- ${c?"The notes as they stand:":"There are no notes yet — the fence below is empty because nothing has been written, not because the notes say so."}
84
-
85
- \`\`\`
86
- ${c??""}
87
- \`\`\`
88
-
89
- The worker asks for this change:
90
-
91
- ${d.trim()}
92
-
93
- Hand back the whole thing as it should now read, keeping what the request does not touch. Only what belongs inside the fence, never a word about it, and nothing at all when the request holds nothing that belongs. At most ${i.BOT_NOTES.chars} characters, which is a ceiling and not a target.`)}],abortSignal:e.signal,tools:{[s.TOOL_NAMES.update_notes]:(0,o.tool)({description:"Hand back the updated prompt.",inputSchema:a.object({prompt:a.string().max(i.BOT_NOTES.chars).describe(`The whole prompt as it should now read, at most ${i.BOT_NOTES.chars} characters.`)}),execute:async({prompt:t})=>(await (0,l.writeBotNote)(e.bot,t),r=t.trim()||null,"Saved.")})},toolChoice:"required",stopWhen:[(0,n.stepCountIs)(3),(0,n.hasToolCall)(s.TOOL_NAMES.update_notes)]})}catch(t){u.logger.warn(`notes pass for ${e.bot} failed: ${t}`)}return r})}e.s(["hasNotesRequest",0,e=>!!e?.trim(),"keepNotes",0,h]),r()}catch(e){r(e)}},!1),277259,e=>e.a(async(t,r)=>{try{var n=e.i(734732),o=e.i(691296),a=e.i(333925),i=e.i(113022),s=e.i(986507),u=e.i(475235),c=e.i(423620),l=e.i(51083),d=e.i(951056),h=e.i(871096),p=e.i(938281),f=e.i(212389),m=e.i(610150),g=e.i(64774),b=e.i(29957),y=e.i(799791),w=e.i(444444),_=t([i,s,u,b,y,w]);[i,s,u,b,y,w]=_.then?(await _)():_;let S=a.BOT_RUN.steps,x=a.BOT_RUN.compactAt;async function E(e,t){var r,a;let d,f,g,_,E=t.depth??0,N=t.parent??null,j=e.bot.trim(),D=e=>t.emit({...e,bot:j,parent:N}),C=await (0,y.findJobBot)(j);if(!C)return void await D({type:"error",message:`No bot named "${e.bot}". Use a name from the list.`});let I=await ((r=C).provider&&r.model?(0,s.getTextModel)({provider:r.provider,model:r.model}):(0,s.resolveDefaultModel)().then(s.getTextModel)),[$,L]=await Promise.all([t.taskId?(0,h.openJobScratch)(t.taskId,(await (0,w.findTask)(t.taskId))?.label??"job"):null,(0,h.openBotFolder)(j)]),[M,U]=await Promise.all([(0,u.loadBotPrompt)(j,C.systemPrompt,"askedBy"in e?e.askedBy:null,{scratch:$,own:L}),(0,i.loadTools)({target:"bot",bot:j,taskId:t.taskId,model:I})]),B="messages"in e?e.messages:[{role:"user",content:(a=e,(d=a.context?.trim())?`${a.request}
94
-
95
- ## What ${a.askedBy} already knows
96
-
97
- ${d}`:a.request)}],q={left:3},X=E>=1?function(e,t,r){let n={...e};delete n[l.TOOL_NAMES.ask_thursday];let{answer:a}=r;return a?{...n,[l.TOOL_NAMES.ask_back]:(0,o.tool)({description:c.askBackSpec.description,inputSchema:c.askBackSpec.parameters,execute:async({question:e})=>(t.left-=1,a(e))})}:n}(U,q,t):function(e,t){if(0===t.peers.length)return e;let r={...e,[l.TOOL_NAMES.ask_bot]:(0,o.tool)({description:c.askBotSpec.description,inputSchema:c.askBotSpec.parameters,execute:async({bot:e,request:n,context:o},a)=>{let i=t.options.taskId?`${t.options.taskId}-${a.toolCallId.slice(0,8)}`:null,s=[],u=async o=>{let i=await O({model:t.model,instructions:t.instructions,tools:r,messages:a.messages,asked:{bot:e,request:n},question:o,signal:t.options.signal});return await t.emit({type:"answered",question:o,...i}),s.push({question:o,answer:i.text}),i.text};try{var c;let r=await R({bot:e,request:n,context:o,askedBy:t.name},{...t.options,depth:t.depth+1,parent:a.toolCallId,taskId:i,answer:u});return s.length?`${r}
98
-
99
- ${c=e,s.map(({question:e,answer:t})=>`(On the way ${c} asked you: "${e}" — you answered: "${t}")`).join("\n")}`:r}finally{i&&(0,h.closeJobShell)(i)}}})};return r}(U,{name:j,model:I.model,instructions:M.text,peers:M.peers,depth:E,options:t,emit:D}),W={compact:null,interjections:[]},H=new n.ToolLoopAgent({model:I.model,instructions:M.text,tools:X,stopWhen:[(0,n.stepCountIs)(S),T,(0,n.hasToolCall)(l.TOOL_NAMES.ask_thursday)],prepareStep:async({stepNumber:e,steps:r,messages:n})=>{let o=e<S-1?{}:{activeTools:[l.TOOL_NAMES.report],toolChoice:{type:"tool",toolName:l.TOOL_NAMES.report}};!o.activeTools&&q.left<=0&&(o={...o,activeTools:Object.keys(X).filter(e=>e!==l.TOOL_NAMES.ask_back)});let a=r.at(-1)?.usage.inputTokens??0,i=Math.max(a,n.reduce((e,t)=>e+(0,m.estimateTokens)("string"==typeof t.content?t.content:JSON.stringify(t.content))+4,0)),s=n;if(i>x&&n.length>=2){let e=await v(I.model,X,n,{signal:t.signal,budget:x});p.logger.debug(`compacted ${n.length} messages at ${i} tokens (budget ${x})`),W.compact={type:"compact",text:e.text,usage:e.usage,messages:n.length,tokens:i},s=[{role:"user",content:e.text}]}let u=e>0?t.notes?.()??[]:[];return(u.length&&(W.interjections.push(...u),s=[...s,...u.map(e=>({role:"user",content:e}))]),s===n)?o:{...o,messages:s}}}),G=(f=[],g=[],_=!1,{push(e){let t=g.shift();t?t(e):f.push(e)},take(){let e=f.shift();return e?Promise.resolve(e):_?Promise.resolve(null):new Promise(e=>g.push(e))},end(){for(let e of(_=!0,g.splice(0)))e(null)}}),F=await H.stream({messages:B,abortSignal:t.signal,onStepEnd:e=>G.push({messages:e.response.messages,usage:A(e.usage)})}),V="",Y=null,z=null,K=null,J=null;t.signal?.addEventListener("abort",()=>G.end(),{once:!0});try{for await(let e of F.fullStream)switch(e.type){case"start-step":for(let e of(W.compact&&(await D(W.compact),W.compact=null),W.interjections.splice(0)))await D({type:"interjection",text:e});break;case"text-delta":V+=e.text;break;case"text-end":{let e=V.trim();if(V="",!e)break;Y=e,await D({type:"text",text:e});break}case"tool-call":if(e.toolName===l.TOOL_NAMES.ask_thursday){let t=e.input;z={id:e.toolCallId,question:String(t.question??""),options:(0,w.optionsOf)(t.options)}}else if(e.toolName===l.TOOL_NAMES.report){let t=e.input;K={text:String(t.result??"").trim(),complete:!1!==t.complete},J=function(e){let t=e?.notes,r="string"==typeof t?t.trim():"";return r&&!P.has(r.toLowerCase())?r:null}(e.input)}await D({type:"tool",id:e.toolCallId,name:e.toolName,input:e.input});break;case"tool-result":e.toolName===l.TOOL_NAMES.report&&K&&!(0,c.reportAccepted)(e.output)&&(K={text:`${K.text}
100
-
101
- ${k(e.output)}`,complete:!1}),await D({type:"tool-result",id:e.toolCallId,name:e.toolName,output:e.output});break;case"finish-step":{let e=await G.take();e&&await D({type:"step",...e,budget:x});break}case"error":await D({type:"error",message:(0,s.modelErrorToString)(e.error)});return}}finally{G.end()}try{await F.response}catch(e){await D({type:"error",message:(0,s.modelErrorToString)(e)});return}if(z)return void await D({type:"waiting",...z});if(K){await D({type:"report",...K}),(0,b.hasNotesRequest)(J)&&await (0,y.readBotNotesOn)()&&await (0,b.keepNotes)({bot:j,model:I.model,want:J,signal:t.signal});return}await D({type:"report",text:Y??"Stopped without handing anything back.",complete:!1})}let T=({steps:e})=>e.at(-1)?.toolResults.some(e=>e.toolName===l.TOOL_NAMES.report&&(0,c.reportAccepted)(e.output))??!1,P=new Set(["null","none","n/a","-","없음"]);async function v(e,t,r,o){try{let i,{text:s,usage:u}=await (0,n.generateText)({model:e,tools:t,toolChoice:"none",messages:[...r,{role:"user",content:(i=(e=>{let{min:t,max:r,perTokens:n}=a.BOT_RUN.summaryWords;return Math.min(r,Math.max(t,Math.round(e/n)))})(o.budget),`Compact your context. Everything above is your own work on this job so far; after this message it is replaced by what you write now, and you carry on from that alone. Write what a fresh copy of you needs to continue without re-reading anything:
102
-
103
- - The job as it was given — the request, quoted, and the details from the call that matter.
104
- - What you have done and what you found, with the exact values: numbers, names, urls, dates, ids, error messages.
105
- - Files you wrote or read, by path, and what each holds.
106
- - What is still left to do, in order, and any decision or answer you are waiting on.
107
- - What did not work, so it is not tried again.
108
-
109
- Plain text, under ${i} words. No preamble and no headings about the summary itself — start with the job.`)}],abortSignal:o.signal}),c=s.trim();if(c)return{text:`The context was compacted here. Below is your own summary of the job up to this point; continue from it.
110
-
111
- ${c}`,usage:A(u)}}catch(e){if(o.signal?.aborted)throw e;throw Error(`Could not compact the context (${(0,s.modelErrorToString)(e)}).`)}throw Error("The summary of the context came back empty, so there is nothing to carry on from.")}let A=e=>({input:e.inputTokens??0,output:e.outputTokens??0});async function R(e,t){let r="",n=null;return await E(e,{...t,emit:async e=>{"report"===e.type&&(r=e.complete?e.text:`${e.text}
112
-
113
- (As far as they got — they ran out of steps.)`),"error"===e.type&&(n=e.message),await t.emit(e)}}),n&&(0,f.publicError)(n),r}async function O(e){try{let t,r,{text:o,usage:a}=await (0,n.generateText)({model:e.model,system:e.instructions,tools:e.tools,toolChoice:"none",messages:[...e.messages,{role:"user",content:(t=e.asked,r=e.question,`You handed one part of your job to ${t.bot}:
114
-
115
- > ${t.request.trim()}
116
-
117
- Before going on, they ask you:
118
-
119
- > ${r.trim()}
120
-
121
- Answer from what you already have — the request as it reached you, the call it came out of, what you found before asking them. A few lines, plain text, and nothing else: no tools run here. If it is not in what you have, say so rather than guess, and say which way to go without it.`)}],abortSignal:e.signal});return{text:o.trim()||"They had nothing to add. Go on with your best reading, and say what you assumed in what you hand back.",usage:A(a)}}catch(t){if(e.signal?.aborted)throw t;return p.logger.warn(`ask_back: ${(0,s.modelErrorToString)(t)}`),{text:`No answer came back (${(0,s.modelErrorToString)(t)}). Go on with your best reading, and say what you assumed in what you hand back.`,usage:d.NO_TOKENS}}}function k(e){return"string"==typeof e?e:e&&"object"==typeof e&&"value"in e?"string"==typeof e.value?e.value:JSON.stringify(e.value??""):JSON.stringify(e??"")}e.s(["condenseThread",0,function(e,t=a.BOT_RUN.resumeMessages){let[r,...n]=e,o=[],i=(e,t)=>{let r=t.trim();if(!r)return;let n=o.at(-1);n?.role===e?n.content=`${n.content}
122
-
123
- ${r}`:o.push({role:e,content:r})};for(let e of n)if("user"===e.role)i("user","string"==typeof e.content?e.content:e.content.flatMap(e=>"text"===e.type?[e.text]:[]).join("\n"));else if("assistant"===e.role){if("string"==typeof e.content){i("assistant",e.content);continue}for(let t of e.content)"text"===t.type?i("assistant",t.text):"tool-call"===t.type&&i("assistant",function(e){let t=e.input??{};return e.toolName===l.TOOL_NAMES.ask_thursday?`(asked Thursday: ${String(t.question??"")})`:e.toolName===l.TOOL_NAMES.ask_back?`(asked back: ${String(t.question??"")})`:e.toolName===l.TOOL_NAMES.ask_bot?`(asked ${String(t.bot??"")} for: ${String(t.request??"")})`:e.toolName===l.TOOL_NAMES.report?`(handed back: ${(0,g.clip)(String(t.result??""),300)})`:`[${e.toolName} ${(0,w.toolLine)(e.toolName,t)}]`}(t))}else if("tool"===e.role)for(let t of e.content)"tool-result"===t.type&&(t.toolName===l.TOOL_NAMES.ask_thursday||t.toolName===l.TOOL_NAMES.ask_back?i("user",k(t.output)):t.toolName===l.TOOL_NAMES.ask_bot&&i("assistant",`(they answered: ${(0,g.clip)(k(t.output),600)})`));let s=o.slice(-t);return r?[r,...s]:s},"runBot",0,E]),r()}catch(e){r(e)}},!1),49002,e=>e.a(async(t,r)=>{try{var n=e.i(885298),o=e.i(232347),a=e.i(333925),i=e.i(986507),s=e.i(475235),u=e.i(51083),c=e.i(520401),l=e.i(375814),d=e.i(871096),h=e.i(528803),p=e.i(938281),f=e.i(212389),m=e.i(991243),g=e.i(277259),b=e.i(951056),y=e.i(444444),w=t([i,s,c,g,y]);[i,s,c,g,y]=w.then?(await w)():w;let A=globalThis.__botRuns??=new Map,N=globalThis.__botTaskLock??=(0,m.createKeyedLock)();async function _(e){let t=e.callId?await (0,c.listCallTurns)(e.callId,s.OPENING_TURNS):[],r=(0,s.buildTaskOpening)({request:e.request,conversation:t}),n=await (0,y.insertTask)({...e,opening:r});return S(n.id,{bot:e.bot,messages:[{role:"user",content:r}]}),n.id}async function E(e,t){return N(e,async()=>{var r,n;let o,a=await (0,y.findTask)(e);a||(0,f.publicError)("No such job.");let i=A.get(e);if(i&&"running"===a.status&&i.note(t))return void p.logger.debug(`task ${e}: interjection queued`);i&&(i.stop.abort(),await i.done);let{reply:s,as:c}=(r=a,n=t,o="waiting"===r.status?r.pending:null,o?.toolCallId?{as:"answer",reply:{role:"tool",content:[{type:"tool-result",toolCallId:o.toolCallId,toolName:u.TOOL_NAMES.ask_thursday,output:{type:"text",value:n}}]}}:{as:"running"===r.status?"interruption":"waiting"===r.status?"answer":"follow-up",reply:{role:"user",content:n}});p.logger.debug(`task ${e}: ${c}`);let l=await (0,y.listThread)(e);await (0,y.upsertMessage)(e,await (0,y.lastSeq)(e)+1,{bot:null,parent:null,...s}),await (0,y.updateTask)(e,{status:"running",outcome:null,pending:null,reported:!1,endedAt:null}),S(e,{bot:a.bot,messages:(0,g.condenseThread)([...l,s])})})}async function v(e){return N(e,async()=>{await (0,y.findTask)(e)||(0,f.publicError)("No such job."),A.get(e)?.stop.abort(),await (0,y.updateTask)(e,{status:"failed",outcome:"Cancelled.",pending:null,reported:!0,endedAt:new Date}),(0,d.closeJobShell)(e)})}async function R(){for(let e of(await (0,y.listRunningTaskIds)()))A.has(e)||await O(e,"The server restarted while this was running")}async function O(e,t){await (0,y.updateTask)(e,{status:"waiting",outcome:`${t}. Everything it had done is still here. Pick it back up?`,pending:{toolCallId:null,options:[b.TASK_CONTINUE]},reported:!1,endedAt:null})}async function k(e){for(let[t,r]of[...A])await N(t,async()=>{r.stop.abort(),await r.done;let n=await (0,y.findTask)(t);n&&"running"===n.status&&(await (0,y.updateTask)(t,{status:"waiting",outcome:`${e} Everything it had done is still here. Pick it back up?`,pending:{toolCallId:null,options:[b.TASK_CONTINUE]},reported:!1,endedAt:null}),(0,d.closeJobShell)(t))})}function S(e,t){let r=new AbortController,o=()=>{},a=new Promise(e=>{o=e}),i=[];A.set(e,{stop:r,done:a,note:t=>!!A.has(e)&&(i.push(t),!0)}),(0,n.after)(()=>x(e,t,r.signal,i).catch(t=>{p.logger.error(`task ${e}`,t)}).finally(o))}class j{taskId;seq;steps;constructor(e,t){this.taskId=e,this.steps=new Map,this.seq=t}async note(e){await (0,y.upsertMessage)(this.taskId,++this.seq,{bot:null,parent:null,role:"user",content:e,note:!0})}step(e){let t=`${e.bot} ${e.parent??""}`,r=this.steps.get(t);return r||(r={assistant:null,tool:null,parts:{assistant:[],tool:[]}},this.steps.set(t,r)),r}write(e,t,r,n={}){let o={bot:t.bot,parent:t.parent,role:r.role,content:r.content,compact:n.compact??!1,note:n.note??!1};return(0,y.upsertMessage)(this.taskId,e,o)}async on(e){let t=this.step(e);switch(e.type){case"text":return t.assistant??=++this.seq,t.parts.assistant.push({type:"text",text:e.text}),this.write(t.assistant,e,{role:"assistant",content:t.parts.assistant});case"tool":return t.assistant??=++this.seq,t.parts.assistant.push({type:"tool-call",toolCallId:e.id,toolName:e.name,input:e.input}),this.write(t.assistant,e,{role:"assistant",content:t.parts.assistant});case"tool-result":return t.assistant??=++this.seq,t.tool??=++this.seq,t.parts.tool.push({type:"tool-result",toolCallId:e.id,toolName:e.name,output:"string"==typeof e.output?{type:"text",value:e.output}:{type:"json",value:e.output}}),this.write(t.tool,e,{role:"tool",content:t.parts.tool});case"step":{let r=[t.assistant,t.tool];this.steps.delete(`${e.bot} ${e.parent??""}`);let n=new Set;for(let[t,o]of e.messages.entries()){let a=r[t]??++this.seq;n.add(a),await this.write(a,e,o)}let o=r.filter(e=>null!==e&&!n.has(e));o.length&&await (0,y.deleteMessages)(this.taskId,o);return}case"compact":return this.write(++this.seq,e,{role:"user",content:e.text},{compact:!0,note:!0});case"interjection":return this.write(++this.seq,e,{role:"user",content:e.text});default:return}}}async function x(e,t,r,n){let s=new j(e,await (0,y.lastSeq)(e)),u=null,c=null;try{await (0,g.runBot)(t,{signal:r,taskId:e,notes:()=>n.splice(0),emit:async t=>{await s.on(t),"step"===t.type&&await (0,y.addTaskUsage)(e,t.usage,t.parent?null:{tokens:t.usage.input,budget:t.budget}),("compact"===t.type||"answered"===t.type)&&await (0,y.addTaskUsage)(e,t.usage),t.parent||("waiting"===t.type?u={status:"waiting",outcome:t.question,pending:{toolCallId:t.id,options:t.options}}:"report"===t.type?u={status:t.complete?"done":"waiting",outcome:t.text,pending:t.complete?null:{toolCallId:null,options:[b.TASK_CONTINUE]}}:"error"===t.type&&(c=t.message,u={status:"failed",outcome:T(t.message),pending:null}))}})}catch(e){c=(0,i.modelErrorToString)(e),u={status:"failed",outcome:T(c),pending:null}}finally{A.delete(e)}if(r.aborted)return;let h=u??{status:"failed",outcome:"Stopped without handing anything back.",pending:null};"failed"===h.status&&await s.note(`The run stopped here: ${c??h.outcome}`).catch(t=>p.logger.warn(`task ${e}: break not written`,t));try{await (0,y.updateTask)(e,{...h,reported:!1,endedAt:"waiting"===h.status?null:new Date})}catch(t){p.logger.error(`task ${e}: could not record how it ended`,t);return}"waiting"!==h.status&&(0,d.closeJobShell)(e);let f=await (0,y.findTask)(e);if(f){if(n.length){let t=n.splice(0).join("\n\n");p.logger.debug(`task ${e}: interjection after the run ended — resuming`),E(e,t).catch(t=>{p.logger.error(`task ${e}: late interjection`,t)});return}if(await P(f.label,h),"done"===h.status){var m;let t,r=(m=h.outcome,(t=(0,l.pathsIn)(m)).find(e=>e.startsWith(`${a.PATHS.artifacts}/`))??t[0]??null);r&&o.appEvents.emit({type:"artifact",taskId:e,label:f.label,path:r})}}}function T(e){return`The run broke: ${e}
124
-
125
- Everything it had done is still here — answer to pick it back up.`}async function P(e,t){if(0!==o.appEventStream.watchers&&await (0,c.isAnyCallLive)())return;let r="waiting"===t.status?`${e} — needs you`:e;(0,h.desktopNotify)(r,t.outcome)}e.s(["answerTask",0,E,"cancelTask",0,v,"pauseTasks",0,k,"startTask",0,_,"sweepTasks",0,R]),r()}catch(e){r(e)}},!1),528803,e=>{"use strict";var t=e.i(874533),r=e.i(333925);let n=`on run argv
126
- display notification (item 2 of argv) with title (item 1 of argv)
127
- end run`,o=`
128
- $ErrorActionPreference = 'Stop'
129
- [void][Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime]
130
- $xml = [Windows.UI.Notifications.ToastNotificationManager]::GetTemplateContent([Windows.UI.Notifications.ToastTemplateType]::ToastText02)
131
- $text = $xml.GetElementsByTagName('text')
132
- [void]$text.Item(0).AppendChild($xml.CreateTextNode($env:NOTIFY_TITLE))
133
- [void]$text.Item(1).AppendChild($xml.CreateTextNode($env:NOTIFY_BODY))
134
- $id = '{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\\WindowsPowerShell\\v1.0\\powershell.exe'
135
- [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier($id).Show([Windows.UI.Notifications.ToastNotification]::new($xml))
136
- `,a={darwin:(e,t)=>["osascript",["-e",n,"--",e,t]],win32:()=>["powershell.exe",["-NoProfile","-NonInteractive","-Command",o]],linux:(e,t)=>["notify-send",["--app-name",r.APP_NAME,"--",e,t]]};e.s(["desktopNotify",0,function(e,r){let n=e.slice(0,80),o=r.slice(0,200),i=a[process.platform]?.(n,o);if(!i)return;let[s,u]=i;(0,t.execFile)(s,u,{env:{...process.env,NOTIFY_TITLE:n,NOTIFY_BODY:o},timeout:1e4,windowsHide:!0},()=>{})}])},385585,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"after",{enumerable:!0,get:function(){return a}});let n=e.r(556704),o=e.r(832319);function a(e){let t=n.workAsyncStorage.getStore(),r=o.workUnitAsyncStorage.getStore();if(!t||!r)throw Object.defineProperty(Error("`after` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context"),"__NEXT_ERROR_CODE",{value:"E468",enumerable:!1,configurable:!0});let{afterContext:a}=t;return a.after(e,r)}},910473,(e,t,r)=>{"use strict";var n,o;Object.defineProperty(r,"__esModule",{value:!0}),n=e.r(385585),o=r,Object.keys(n).forEach(function(e){"default"===e||Object.prototype.hasOwnProperty.call(o,e)||Object.defineProperty(o,e,{enumerable:!0,get:function(){return n[e]}})})},756725,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ClientHookDynamicError:function(){return l},RENDER_STAGES_BY_DATA_KIND:function(){return S},applyOwnerStack:function(){return x},isClientHookDynamicError:function(){return d},isHangingPromiseRejectionError:function(){return i},makeClientHookHangingPromise:function(){return E},makeDevtoolsIOAwarePromise:function(){return k},makeDynamicHangingPromise:function(){return p},makeFallbackParamsHangingPromise:function(){return g},makePromiseFromTrigger:function(){return O},makeRuntimeHangingPromise:function(){return m},makeStageHangingPromise:function(){return b},makeUntrackedHangingPromise:function(){return f},trackFallbackParamsAccessed:function(){return w},trackRuntimeDataAccessed:function(){return y}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(865832);function i(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===s}e.r(832319),e.r(559043);let s="HANGING_PROMISE_REJECTION";class u extends Error{constructor(e,t){super(`During prerendering, ${t} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${t} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${e}".`),this.route=e,this.expression=t,this.digest=s}}let c="CLIENT_HOOK_DYNAMIC";class l extends Error{constructor(e,t){super(`Route "${e}": Next.js encountered URL data \`${t}\` in a Client Component outside of \`<Suspense>\`.
137
-
138
- This blocks prerendering because the value is only available at runtime.
139
-
140
- Ways to fix this:
141
- - [stream] Wrap the component in \`<Suspense fallback={...}>\` so the hook value streams in after prerendering
142
- - [block] Set \`export const instant = false\` to allow a blocking route
143
-
144
- Learn more: https://nextjs.org/docs/messages/blocking-prerender-client-hook`),this.digest=c,Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1433",enumerable:!1,configurable:!0})}}function d(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===c}let h=new WeakMap;function p(e,t,r){return v(e,new u(t,r))}function f(e,t,r){return v(e,new u(t,r))}function m(e,t,r,n){return null!==n&&y(n),v(e,new u(t,r))}function g(e,t,r,n){return null!==n&&w(n),v(e,new u(t,r))}function b(e,t,r,n){return y(n),v(e,new u(t,r))}function y(e){_(e,!1)}function w(e){_(e,!0)}function _(e,t){if("prerender"===e.type){var r;null==(r=e.runtimeDataAccessed)||r.resolve(!0);let n=e.shouldAttemptStaticPrefetch;null===n||t&&e.isFallbackUpgradeable||(n.current=!1)}}function E(e,t){return v(e,t)}function v(e,t){if(e.aborted)return Promise.reject(t);{let r=new Promise((r,n)=>{let o=n.bind(null,t),a=h.get(e);if(a)a.push(o);else{let t=[o];h.set(e,t),e.addEventListener("abort",()=>{for(let e=0;e<t.length;e++)t[e]()},{once:!0})}});return r.catch(R),r}}function R(){}function O(e,t){let r=e.then(()=>t);return r.catch(R),r}function k(e,t,r){return t.stagedRendering?t.stagedRendering.delayUntilStage(r,void 0,e):new Promise(t=>{setTimeout(()=>{t(e)},0)})}let S={sessionData:a.RenderStage.ShellRuntime,staticLinkData:a.RenderStage.Static,runtimeLinkData:a.RenderStage.Runtime};function x(e){return e}},534103,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={METADATA_BOUNDARY_NAME:function(){return a},OUTLET_BOUNDARY_NAME:function(){return s},ROOT_LAYOUT_BOUNDARY_NAME:function(){return u},VIEWPORT_BOUNDARY_NAME:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a="__next_metadata_boundary__",i="__next_viewport_boundary__",s="__next_outlet_boundary__",u="__next_root_layout_boundary__"},609975,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={atLeastOneTask:function(){return s},scheduleImmediate:function(){return i},scheduleOnNextTick:function(){return a},waitAtLeastOneReactRenderTask:function(){return u}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e=>{Promise.resolve().then(()=>{process.nextTick(e)})},i=e=>{setImmediate(e)};function s(){return new Promise(e=>i(e))}function u(){return new Promise(e=>setImmediate(e))}},107703,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={BailoutToCSRError:function(){return i},isBailoutToCSRError:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a="BAILOUT_TO_CLIENT_SIDE_RENDERING";class i extends Error{constructor(e){super(`Bail out to client-side rendering: ${e}`),this.reason=e,this.digest=a}}function s(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===a}},811525,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createDynamicBodyError:function(){return i},createDynamicBodyErrorInNavigation:function(){return c},createDynamicMetadataError:function(){return p},createDynamicOrRuntimeBodyError:function(){return l},createDynamicOrRuntimeMetadataError:function(){return y},createDynamicOrRuntimeViewportError:function(){return b},createDynamicViewportError:function(){return g},createLinkBodyErrorInNavigation:function(){return u},createLinkMetadataError:function(){return d},createLinkViewportError:function(){return f},createRuntimeBodyError:function(){return a},createRuntimeBodyErrorInNavigation:function(){return s},createRuntimeMetadataError:function(){return h},createRuntimeViewportError:function(){return m},logBuildDebugHint:function(){return w}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function a(e){return Object.defineProperty(Error(`Route "${e}": Next.js encountered runtime data during prerendering.
145
-
146
- \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` accessed outside of \`<Suspense>\` prevents the route from being prerendered, blocking the page load and leading to a slower user experience.
147
-
148
- Ways to fix this:
149
- - [stream] Provide a placeholder with \`<Suspense fallback={...}>\` around the data access
150
- - [block] Set \`export const instant = false\` to allow a blocking route
151
-
152
- Learn more: https://nextjs.org/docs/messages/blocking-prerender-runtime`),"__NEXT_ERROR_CODE",{value:"E1427",enumerable:!1,configurable:!0})}function i(e){return Object.defineProperty(Error(`Route "${e}": Next.js encountered uncached data during prerendering.
153
-
154
- \`fetch(...)\` or \`connection()\` accessed outside of \`<Suspense>\` prevents the route from being prerendered, blocking the page load and leading to a slower user experience.
155
-
156
- Ways to fix this:
157
- - [stream] Provide a placeholder with \`<Suspense fallback={...}>\` around the data access
158
- - [cache] Cache the data access with \`"use cache"\` (does not apply to \`connection()\`)
159
- - [block] Set \`export const instant = false\` to allow a blocking route
160
-
161
- Learn more: https://nextjs.org/docs/messages/blocking-prerender-dynamic`),"__NEXT_ERROR_CODE",{value:"E1440",enumerable:!1,configurable:!0})}function s(e){return Object.defineProperty(Error(`Route "${e}": Next.js encountered runtime data during prerendering or a navigation.
162
-
163
- \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` accessed outside of \`<Suspense>\` prevents the route from being prerendered or the navigation from being instant, leading to a slower user experience.
164
-
165
- Ways to fix this:
166
- - [stream] Provide a placeholder with \`<Suspense fallback={...}>\` around the data access
167
- - [block] Set \`export const instant = false\` to allow a blocking route
168
-
169
- Learn more: https://nextjs.org/docs/messages/blocking-prerender-runtime`),"__NEXT_ERROR_CODE",{value:"E1430",enumerable:!1,configurable:!0})}function u(e){return Object.defineProperty(Error(`Route "${e}": Next.js encountered URL data during prerendering or a navigation.
170
-
171
- \`params\` or \`searchParams\` accessed outside of \`<Suspense>\` may prevent the navigation from being instant, leading to a slower user experience.
172
-
173
- Ways to fix this:
174
- - [stream] Provide a placeholder with \`<Suspense fallback={...}>\` around the data access
175
- - [block] Set \`export const instant = false\` to allow a blocking route
176
-
177
- Learn more: https://nextjs.org/docs/messages/instant-shell-url-data`),"__NEXT_ERROR_CODE",{value:"E1439",enumerable:!1,configurable:!0})}function c(e){return Object.defineProperty(Error(`Route "${e}": Next.js encountered uncached data during prerendering or a navigation.
178
-
179
- \`fetch(...)\` or \`connection()\` accessed outside of \`<Suspense>\` prevents the route from being prerendered or the navigation from being instant, leading to a slower user experience.
180
-
181
- Ways to fix this:
182
- - [stream] Provide a placeholder with \`<Suspense fallback={...}>\` around the data access
183
- - [cache] Cache the data access with \`"use cache"\` (does not apply to \`connection()\`)
184
- - [block] Set \`export const instant = false\` to allow a blocking route
185
-
186
- Learn more: https://nextjs.org/docs/messages/blocking-prerender-dynamic`),"__NEXT_ERROR_CODE",{value:"E1437",enumerable:!1,configurable:!0})}function l(e){return Object.defineProperty(Error(`Route "${e}": Next.js encountered uncached or runtime data during prerendering.
187
-
188
- \`fetch(...)\`, \`cookies()\`, \`headers()\`, \`params\`, \`searchParams\`, or \`connection()\` accessed outside of \`<Suspense>\` prevents the route from being prerendered, blocking the page load and leading to a slower user experience.
189
-
190
- Ways to fix this:
191
- - [stream] Provide a placeholder with \`<Suspense fallback={...}>\` around the data access
192
- - [cache] For uncached data (\`fetch\`, database calls): cache the access with \`"use cache"\` (does not apply to \`connection()\`)
193
- - [block] Set \`export const instant = false\` to allow a blocking route
194
-
195
- Learn more: https://nextjs.org/docs/messages/blocking-prerender-dynamic`),"__NEXT_ERROR_CODE",{value:"E1428",enumerable:!1,configurable:!0})}function d(e){return Object.defineProperty(Error(`Route "${e}": Next.js encountered URL data in \`generateMetadata()\`.
196
-
197
- This route's metadata is blocked, but the rest of its content can be prefetched. \`params\` or \`searchParams\` accessed in \`generateMetadata()\` prevent it from being prefetched.
198
-
199
- Ways to fix this:
200
- - [static] Use a static metadata export instead of \`generateMetadata()\`
201
- - [dynamic] Render a marker component that calls \`await connection()\` inside \`<Suspense>\` on the page
202
-
203
- Learn more: https://nextjs.org/docs/messages/blocking-prerender-metadata-runtime`),"__NEXT_ERROR_CODE",{value:"E1429",enumerable:!1,configurable:!0})}function h(e){return Object.defineProperty(Error(`Route "${e}": Next.js encountered runtime data in \`generateMetadata()\`.
204
-
205
- This route's metadata is blocked, but the rest of its content can be prerendered. \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` accessed in \`generateMetadata()\` cause it to run dynamically.
206
-
207
- Ways to fix this:
208
- - [static] Use a static metadata export instead of \`generateMetadata()\`
209
- - [dynamic] Render a marker component that calls \`await connection()\` inside \`<Suspense>\` on the page
210
-
211
- Learn more: https://nextjs.org/docs/messages/blocking-prerender-metadata-runtime`),"__NEXT_ERROR_CODE",{value:"E1423",enumerable:!1,configurable:!0})}function p(e){return Object.defineProperty(Error(`Route "${e}": Next.js encountered uncached data in \`generateMetadata()\`.
212
-
213
- This route's metadata is blocked, but the rest of its content can be prerendered. \`fetch(...)\` or \`connection()\` accessed in \`generateMetadata()\` cause it to run dynamically.
214
-
215
- Ways to fix this:
216
- - [cache] Cache the metadata with \`"use cache"\` in \`generateMetadata()\` (does not apply to \`connection()\`)
217
- - [dynamic] Render a marker component that calls \`await connection()\` inside \`<Suspense>\` on the page
218
-
219
- Learn more: https://nextjs.org/docs/messages/blocking-prerender-metadata-dynamic`),"__NEXT_ERROR_CODE",{value:"E1425",enumerable:!1,configurable:!0})}function f(e){return Object.defineProperty(Error(`Route "${e}": Next.js encountered URL data in \`generateViewport()\`.
220
-
221
- \`params\` or \`searchParams\` in \`generateViewport()\` prevents the page from being prerendered, leading to a slower user experience.
222
-
223
- Ways to fix this:
224
- - [static] Use a static viewport export instead of \`generateViewport()\`
225
- - [block] Set \`export const instant = false\` to allow a blocking route
226
-
227
- Learn more: https://nextjs.org/docs/messages/blocking-prerender-viewport-runtime`),"__NEXT_ERROR_CODE",{value:"E1431",enumerable:!1,configurable:!0})}function m(e){return Object.defineProperty(Error(`Route "${e}": Next.js encountered runtime data in \`generateViewport()\`.
228
-
229
- \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` in \`generateViewport()\` prevents the page from being prerendered, leading to a slower user experience.
230
-
231
- Ways to fix this:
232
- - [static] Use a static viewport export instead of \`generateViewport()\`
233
- - [block] Set \`export const instant = false\` to allow a blocking route
234
-
235
- Learn more: https://nextjs.org/docs/messages/blocking-prerender-viewport-runtime`),"__NEXT_ERROR_CODE",{value:"E1424",enumerable:!1,configurable:!0})}function g(e){return Object.defineProperty(Error(`Route "${e}": Next.js encountered uncached data in \`generateViewport()\`.
236
-
237
- \`fetch(...)\` or \`connection()\` in \`generateViewport()\` prevents the page from being prerendered, leading to a slower user experience.
238
-
239
- Ways to fix this:
240
- - [cache] Cache the viewport data with \`"use cache"\` in \`generateViewport()\` (does not apply to \`connection()\`)
241
- - [block] Set \`export const instant = false\` to allow a blocking route
242
-
243
- Learn more: https://nextjs.org/docs/messages/blocking-prerender-viewport-dynamic`),"__NEXT_ERROR_CODE",{value:"E1438",enumerable:!1,configurable:!0})}function b(e){return Object.defineProperty(Error(`Route "${e}": Next.js encountered uncached or runtime data in \`generateViewport()\`.
244
-
245
- This prevents the page from being prerendered, leading to a slower user experience. Unlike metadata, viewport cannot be streamed behind \`<Suspense>\` because it affects the initial page load.
246
-
247
- Ways to fix this:
248
- - [static] Use a static viewport export instead of \`generateViewport()\`
249
- - [cache] For uncached data (\`fetch\`, database calls): cache the viewport with \`"use cache"\` in \`generateViewport()\` (does not apply to \`connection()\`)
250
- - [block] Set \`export const instant = false\` to allow a blocking route
251
-
252
- Learn more: https://nextjs.org/docs/messages/blocking-prerender-viewport-runtime`),"__NEXT_ERROR_CODE",{value:"E1436",enumerable:!1,configurable:!0})}function y(e){return Object.defineProperty(Error(`Route "${e}": Next.js encountered uncached or runtime data in \`generateMetadata()\`.
253
-
254
- This route's metadata is blocked, but the rest of its content can be prerendered.
255
-
256
- Ways to fix this:
257
- - [static] Use a static metadata export instead of \`generateMetadata()\`
258
- - [cache] Cache the metadata with \`"use cache"\` in \`generateMetadata()\` (does not apply to \`connection()\`)
259
- - [dynamic] Render a marker component that calls \`await connection()\` inside \`<Suspense>\` on the page
260
-
261
- Learn more: https://nextjs.org/docs/messages/blocking-prerender-metadata-runtime`),"__NEXT_ERROR_CODE",{value:"E1426",enumerable:!1,configurable:!0})}function w(e){console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:
262
- - Start the app in development mode by running \`next dev\`, then open "${e}" in your browser to investigate the error.
263
- - Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`)}},100204,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={INSTANT_SLOT_MARKER_PREFIX:function(){return i},INSTANT_SLOT_MARKER_SUFFIX:function(){return s},INSTANT_VALIDATION_BOUNDARY_NAME:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a="__next_instant_validation_boundary__",i="__next_instant_slot_",s="__"},199776,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={allRequiredBoundariesRendered:function(){return i},createValidationBoundaryTracking:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function a(){return{requiredIds:new Map,renderedIds:new Set}}function i(e){for(let t of e.requiredIds.keys())if(!e.renderedIds.has(t))return!1;return!0}},47076,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createLinkPrefetchPartialError:function(){return i},createUnrenderedSegmentError:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function a(e,t){let r=`Route "${e}": Could not validate that a segment in your UI has instant navigation.`;if(t.length>0){let e=1===t.length?"Dropped segment":"Dropped segments";r+=`
264
-
265
- This segment was dropped from rendering. Issues that would prevent instant navigation will go undetected.
266
-
267
- ${e}:
268
- ${t.map(e=>` ${e}`).join("\n")}
269
-
270
- Ways to fix this:
271
- - [render] Render the dropped segment
272
- - [ignore] Set \`export const instant = false\` to opt the dropped segment out of instant-navigation validation
273
-
274
- Learn more: https://nextjs.org/docs/messages/instant-unrendered-segment`}return Object.defineProperty(Error(r),"__NEXT_ERROR_CODE",{value:"E1286",enumerable:!1,configurable:!0})}function i(e){return Object.defineProperty(Error(`Next.js encountered dynamic data during prefetching for "${e}".
275
-
276
- This will lead to slower, more expensive prefetches.
277
-
278
- Ways to fix this:
279
- - [upgrade] Opt into Partial Prefetching by exporting \`const prefetch = 'partial'\` from the page or layout, or by setting \`partialPrefetching: true\` in next.config to opt the whole app in
280
- - [disable] Remove \`prefetch={true}\` from the <Link> to use the default prefetch
281
- - [ignore] Set \`export const instant = false\` to opt the route out of instant-navigation validation
282
-
283
- Learn more: https://nextjs.org/docs/messages/instant-link-prefetch-partial`),"__NEXT_ERROR_CODE",{value:"E1435",enumerable:!1,configurable:!0})}},258200,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o,a,i={DynamicHoleKind:function(){return ea},Postpone:function(){return D},PreludeState:function(){return eh},abortAndThrowOnSynchronousRequestDataAccess:function(){return j},abortOnSynchronousPlatformIOAccess:function(){return N},accessedDynamicData:function(){return q},annotateDynamicAccess:function(){return V},consumeDynamicAccess:function(){return X},createDynamicTrackingState:function(){return R},createDynamicValidationState:function(){return O},createHangingInputAbortSignal:function(){return G},createInstantValidationState:function(){return ei},createRenderInBrowserAbortSignal:function(){return H},formatDynamicAPIAccesses:function(){return W},getFirstDynamicReason:function(){return S},getNavigationDisallowedDynamicReasons:function(){return eb},getStaticShellDisallowedDynamicReasons:function(){return eg},isDynamicPostpone:function(){return $},isPrerenderInterruptedError:function(){return B},logDisallowedDynamicError:function(){return ep},markCurrentScopeAsDynamic:function(){return x},postponeWithTracking:function(){return C},throwIfDisallowedDynamic:function(){return em},throwIfSyncIOUsed:function(){return ef},throwToInterruptStaticGeneration:function(){return T},trackAllowedDynamicAccess:function(){return eo},trackDynamicDataInDynamicRender:function(){return P},trackDynamicHoleInNavigation:function(){return es},trackDynamicHoleInRuntimeShell:function(){return ec},trackDynamicHoleInStaticShell:function(){return el},trackThrownErrorInNavigation:function(){return eu},useDynamicRouteParams:function(){return Y},useDynamicSearchParams:function(){return z}};for(var s in i)Object.defineProperty(r,s,{enumerable:!0,get:i[s]});let u=(n=e.r(910931))&&n.__esModule?n:{default:n},c=e.r(243727),l=e.r(183589),d=e.r(832319),h=e.r(556704),p=e.r(756725),f=e.r(534103),m=e.r(609975),g=e.r(107703),b=e.r(811525),y=e.r(585346),w=e.r(100204),_=e.r(199776),E=e.r(47076),v="function"==typeof u.default.unstable_postpone;function R(e){return{isDebugDynamicAccesses:e,dynamicAccesses:[],syncDynamicErrorWithStack:null,syncDynamicErrorWithStackPostMicrotask:!1}}function O(){return{hasSuspenseAboveBody:!1,hasDynamicMetadata:!1,dynamicMetadata:null,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[]}}function k(e){return e.syncDynamicErrorWithStackPostMicrotask?null:e.syncDynamicErrorWithStack}function S(e){var t;return null==(t=e.dynamicAccesses[0])?void 0:t.expression}function x(e,t,r){if(t)switch(t.type){case"cache":case"unstable-cache":case"private-cache":return}if(!e.forceDynamic&&!e.forceStatic){if(e.dynamicShouldError)throw Object.defineProperty(new l.StaticGenBailoutError(`Route ${e.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${r}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(t)switch(t.type){case"prerender-ppr":return C(e.route,r,t.dynamicTracking);case"prerender-legacy":t.revalidate=0;let n=Object.defineProperty(new c.DynamicServerError(`Route ${e.route} couldn't be rendered statically because it used ${r}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw e.dynamicUsageDescription=r,e.dynamicUsageStack=n.stack,n}}}function T(e,t,r){let n=Object.defineProperty(new c.DynamicServerError(`Route ${t.route} couldn't be rendered statically because it used \`${e}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw r.revalidate=0,t.dynamicUsageDescription=e,t.dynamicUsageStack=n.stack,n}function P(e){switch(e.type){case"cache":case"unstable-cache":case"private-cache":return}}function A(e,t,r){let n=U(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`);r.controller.abort(n);let o=r.dynamicTracking;o&&o.dynamicAccesses.push({stack:o.isDebugDynamicAccesses?Error().stack:void 0,expression:t})}function N(e,t,r,n){let o=n.dynamicTracking;o&&null===o.syncDynamicErrorWithStack&&(o.syncDynamicErrorWithStack=r,queueMicrotask(()=>{o.syncDynamicErrorWithStackPostMicrotask=!0})),A(e,t,n)}function j(e,t,r,n){if((0,p.trackRuntimeDataAccessed)(n),!1===n.controller.signal.aborted){A(e,t,n);let o=n.dynamicTracking;o&&null===o.syncDynamicErrorWithStack&&(o.syncDynamicErrorWithStack=r)}throw U(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`)}function D({reason:e,route:t}){let r=d.workUnitAsyncStorage.getStore();C(t,e,r&&"prerender-ppr"===r.type?r.dynamicTracking:null)}function C(e,t,r){(function(){if(!v)throw Object.defineProperty(Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E224",enumerable:!1,configurable:!0})})(),r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:t}),u.default.unstable_postpone(I(e,t))}function I(e,t){return`Route ${e} needs to bail out of prerendering at this point because it used ${t}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}function $(e){return"object"==typeof e&&null!==e&&"string"==typeof e.message&&L(e.message)}function L(e){return e.includes("needs to bail out of prerendering at this point because it used")&&e.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===L(I("%%%","^^^")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});let M="NEXT_PRERENDER_INTERRUPTED";function U(e){let t=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t.digest=M,t}function B(e){return"object"==typeof e&&null!==e&&e.digest===M&&"name"in e&&"message"in e&&e instanceof Error}function q(e){return e.length>0}function X(e,t){return e.dynamicAccesses.push(...t.dynamicAccesses),e.dynamicAccesses}function W(e){return e.filter(e=>"string"==typeof e.stack&&e.stack.length>0).map(({expression:e,stack:t})=>(t=t.split("\n").slice(4).filter(e=>!(e.includes("node_modules/next/")||e.includes(" (<anonymous>)")||e.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${e}:
284
- ${t}`))}function H(){let e=new AbortController;return e.abort(Object.defineProperty(new g.BailoutToCSRError("Render in Browser"),"__NEXT_ERROR_CODE",{value:"E721",enumerable:!1,configurable:!0})),e.signal}function G(e){switch(e.type){case"prerender":case"prerender-runtime":let t=new AbortController;if(e.cacheSignal)e.cacheSignal.inputReady().then(()=>{t.abort()});else{let r=(0,d.getStagedRenderingController)(e);r&&null!==r.finalStage?r.waitForStage(r.finalStage).then(()=>(0,m.scheduleOnNextTick)(()=>t.abort()),F):(0,m.scheduleOnNextTick)(()=>t.abort())}return t.signal;case"prerender-client":case"validation-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":case"generate-static-params":return}}function F(){}function V(e,t){let r=t.dynamicTracking;r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:e})}function Y(e){let t=h.workAsyncStorage.getStore(),r=d.workUnitAsyncStorage.getStore();if(t&&r)switch(r.type){case"prerender-client":{let n=r.fallbackRouteParams;n&&n.size>0&&u.default.use((0,p.makeClientHookHangingPromise)(r.renderSignal,new p.ClientHookDynamicError(t.route,e)));break}case"prerender":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called from a Server Component. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E795",enumerable:!1,configurable:!0});case"prerender-ppr":{let n=r.fallbackRouteParams;if(n&&n.size>0)return C(t.route,e,r.dynamicTracking);break}case"validation-client":case"prerender-legacy":case"request":case"unstable-cache":break;case"prerender-runtime":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called during a runtime prerender. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E771",enumerable:!1,configurable:!0});case"cache":case"private-cache":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called in \`generateStaticParams\`. Next.js should be preventing ${e} from being included in server component files statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1130",enumerable:!1,configurable:!0})}}function z(e){let t=h.workAsyncStorage.getStore(),r=d.workUnitAsyncStorage.getStore();if(t)switch(!r&&(0,d.throwForMissingRequestStore)(e),r.type){case"validation-client":case"request":return;case"prerender-client":u.default.use((0,p.makeClientHookHangingPromise)(r.renderSignal,new p.ClientHookDynamicError(t.route,e)));break;case"prerender-legacy":case"prerender-ppr":if(t.forceStatic)return;throw Object.defineProperty(new g.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called from a Server Component. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E795",enumerable:!1,configurable:!0});case"cache":case"unstable-cache":case"private-cache":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called in \`generateStaticParams\`. Next.js should be preventing ${e} from being included in server component files statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1130",enumerable:!1,configurable:!0})}}let K=/\n\s+at Suspense \(<anonymous>\)/,J=RegExp(`\\n\\s+at Suspense \\(<anonymous>\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(<anonymous>\\))[\\s\\S])*?\\n\\s+at ${f.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`),Q=RegExp(`\\n\\s+at ${f.METADATA_BOUNDARY_NAME}[\\n\\s]`),Z=RegExp(`\\n\\s+at ${f.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`),ee=RegExp(`\\n\\s+at ${f.OUTLET_BOUNDARY_NAME}[\\n\\s]`),et=RegExp(`\\n\\s+at ${w.INSTANT_VALIDATION_BOUNDARY_NAME}[\\n\\s]`),er=RegExp(`\\n\\s+at ${w.INSTANT_SLOT_MARKER_PREFIX}(\\d+)${w.INSTANT_SLOT_MARKER_SUFFIX}[\\n\\s]`);function en(e,t){J.test(e)&&(t.hasSuspenseAboveBody=!0)}function eo(e,t,r,n,o){let a=k(o);if(ee.test(r))return void en(r,n);if(Q.test(r)){n.hasDynamicMetadata=!0;return}if(Z.test(r)){n.hasDynamicViewport=!0;return}if(J.test(r)){n.hasAllowedDynamic=!0,n.hasSuspenseAboveBody=!0;return}if(K.test(r)){n.hasAllowedDynamic=!0;return}else if(a)return void n.dynamicErrors.push(a);if((0,p.isClientHookDynamicError)(e))return void n.dynamicErrors.push(ed(e,r,null));let i=ed((0,b.createDynamicOrRuntimeBodyError)(t.route),r,null);n.dynamicErrors.push(i)}var ea=((o={})[o.Link=1]="Link",o[o.Runtime=2]="Runtime",o[o.Dynamic=3]="Dynamic",o);function ei(e){return{hasDynamicMetadata:!1,hasAllowedClientDynamicAboveBoundary:!1,dynamicMetadata:null,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[],validationPreventingErrors:[],thrownErrorsOutsideBoundary:[],slotStacks:e}}function es(e,t,r,n,o,a,i){let s=k(o);if(ee.test(r))return;let u=function(e,t){let{slotStacks:r}=t;if(r.length>1){let t=er.exec(e);if(t){let e=r[parseInt(t[1],10)+1];if(null!=e)return e}}return r[0]??null}(r,n);if(Q.test(r)){n.dynamicMetadata=ed(1===a?(0,b.createLinkMetadataError)(t.route):2===a?(0,b.createRuntimeMetadataError)(t.route):(0,b.createDynamicMetadataError)(t.route),r,u);return}if(Z.test(r)){let e=ed(1===a?(0,b.createLinkViewportError)(t.route):2===a?(0,b.createRuntimeViewportError)(t.route):(0,b.createDynamicViewportError)(t.route),r,u);n.dynamicErrors.push(e);return}let c=et.exec(r);if(c){let e=K.exec(r);if(e&&e.index<c.index){n.hasAllowedDynamic=!0;return}}else if((0,_.allRequiredBoundariesRendered)(i)){n.hasAllowedClientDynamicAboveBoundary=!0,n.hasAllowedDynamic=!0;return}else{let e=ed(Object.defineProperty(Error(`Route "${t.route}": Could not validate \`instant\` because a Client Component in a parent segment prevented the page from rendering.`),"__NEXT_ERROR_CODE",{value:"E1331",enumerable:!1,configurable:!0}),r,u);n.validationPreventingErrors.push(e);return}if(s){null!==u&&void 0===s.cause&&(s.cause=u()),n.dynamicErrors.push(s);return}if((0,p.isClientHookDynamicError)(e))return void n.dynamicErrors.push(ed(e,r,u));let l=ed(1===a?(0,b.createLinkBodyErrorInNavigation)(t.route):2===a?(0,b.createRuntimeBodyErrorInNavigation)(t.route):(0,b.createDynamicBodyErrorInNavigation)(t.route),r,u);n.dynamicErrors.push(l)}function eu(e,t,r,n){let o=et.exec(n);if(o){let a=K.exec(n);if(a&&a.index<o.index)return;let i=ed(Object.defineProperty(Error(`Route "${e.route}": Could not validate \`instant\` because an error prevented the target segment from rendering.`,{cause:r}),"__NEXT_ERROR_CODE",{value:"E1338",enumerable:!1,configurable:!0}),n,null);t.validationPreventingErrors.push(i)}else{let e=ed(Object.defineProperty(Error("An error occurred while attempting to validate instant UI. This error may be preventing the validation from completing.",{cause:r}),"__NEXT_ERROR_CODE",{value:"E1118",enumerable:!1,configurable:!0}),n,null);t.thrownErrorsOutsideBoundary.push(e)}}function ec(e,t,r,n,o){let a=k(o);if(ee.test(r))return void en(r,n);if(Q.test(r)){n.dynamicMetadata=ed((0,b.createDynamicMetadataError)(t.route),r,null);return}if(Z.test(r)){let e=ed((0,b.createDynamicViewportError)(t.route),r,null);n.dynamicErrors.push(e);return}if(J.test(r)){n.hasAllowedDynamic=!0,n.hasSuspenseAboveBody=!0;return}if(K.test(r)){n.hasAllowedDynamic=!0;return}else if(a)return void n.dynamicErrors.push(a);if((0,p.isClientHookDynamicError)(e))return void n.dynamicErrors.push(ed(e,r,null));let i=ed((0,b.createDynamicBodyError)(t.route),r,null);n.dynamicErrors.push(i)}function el(e,t,r,n,o){let a=k(o);if(ee.test(r))return void en(r,n);if(Q.test(r)){n.dynamicMetadata=ed((0,b.createRuntimeMetadataError)(t.route),r,null);return}if(Z.test(r)){let e=ed((0,b.createRuntimeViewportError)(t.route),r,null);n.dynamicErrors.push(e);return}if(J.test(r)){n.hasAllowedDynamic=!0,n.hasSuspenseAboveBody=!0;return}if(K.test(r)){n.hasAllowedDynamic=!0;return}else if(a)return void n.dynamicErrors.push(a);if((0,p.isClientHookDynamicError)(e))return void n.dynamicErrors.push(ed(e,r,null));let i=ed((0,b.createRuntimeBodyError)(t.route),r,null);n.dynamicErrors.push(i)}function ed(e,t,r){return null!==r&&(e.cause=r()),e.stack=e.name+": "+e.message+t,e}var eh=((a={})[a.Full=0]="Full",a[a.Empty=1]="Empty",a[a.Errored=2]="Errored",a);function ep(e,t){console.error(t),(0,b.logBuildDebugHint)(e.route)}function ef(e,t){if(t.syncDynamicErrorWithStack)throw ep(e,t.syncDynamicErrorWithStack),new l.StaticGenBailoutError}function em(e,t,r,n,o){if(ef(e,n),0===t&&!1===r.hasAllowedDynamic&&r.hasDynamicMetadata)throw console.error((0,b.createDynamicOrRuntimeMetadataError)(e.route).message),new l.StaticGenBailoutError;if(!o&&!r.hasSuspenseAboveBody&&0!==t){let n=r.dynamicErrors;if(n.length>0){for(let t=0;t<n.length;t++)ep(e,n[t]);throw new l.StaticGenBailoutError}if(r.hasDynamicViewport)throw console.error((0,b.createDynamicOrRuntimeViewportError)(e.route).message),new l.StaticGenBailoutError;if(1===t)throw console.error(`Route "${e.route}" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`),new l.StaticGenBailoutError}}function eg(e,t,r,n){if(0===t&&!1===r.hasAllowedDynamic&&0===r.dynamicErrors.length&&r.dynamicMetadata)return[r.dynamicMetadata];if(n||r.hasSuspenseAboveBody)return[];if(0!==t){let n=r.dynamicErrors;if(n.length>0)return n;if(1===t)return[Object.defineProperty(new y.InvariantError(`Route "${e.route}" did not produce a static shell and Next.js was unable to determine a reason.`),"__NEXT_ERROR_CODE",{value:"E936",enumerable:!1,configurable:!0})]}return[]}function eb(e,t,r,n,o,a){if(n){let{missingSampleErrors:e}=n;if(e.length>0)return e}let{validationPreventingErrors:i}=r;if(i.length>0)return i;if(0!==t){let n=r.dynamicErrors;if(n.length>0)return n;if(1===t&&!r.hasAllowedClientDynamicAboveBoundary&&(0,_.allRequiredBoundariesRendered)(o))return Object.defineProperty(new y.InvariantError(`Route "${e.route}" failed to render during instant validation and Next.js was unable to determine a reason.`),"__NEXT_ERROR_CODE",{value:"E1055",enumerable:!1,configurable:!0})}else{let e=r.dynamicErrors;if(e.length>0)return e;if(!1===r.hasAllowedDynamic&&r.dynamicMetadata)return[r.dynamicMetadata]}if(!(0,_.allRequiredBoundariesRendered)(o)){let{thrownErrorsOutsideBoundary:t}=r,n=r.slotStacks[0];if(0===t.length){let t=[];for(let[e,r]of o.requiredIds)if(!o.renderedIds.has(e))for(let e of r){let r=e.replace(/^\[project\][\\/]?/,"").replace(process.cwd()+"/","").replace(process.cwd()+"\\","");t.push(r)}return t.sort(),(0,E.createUnrenderedSegmentError)(e.route,t)}if(1===t.length){let r=`Route "${e.route}": Could not validate \`instant\` because the target segment was prevented from rendering, likely due to the following error.`,o=null!==n?n():Error();return o.name="Error",o.message=r,AggregateError([o,t[0]])}{let r=`Route "${e.route}": Could not validate \`instant\` because the target segment was prevented from rendering, likely due to one of the following errors.`,o=null!==n?n():Error();return o.name="Error",o.message=r,AggregateError([o,...t])}}return[]}},679847,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isRequestApiAllowedInCurrentPhase:function(){return l},throwForSearchParamsAccessInUseCache:function(){return c},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return u}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(183589),i=e.r(120635),s=e.r(324725);function u(e,t){throw Object.defineProperty(new a.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function c(e,t){let r=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(r,t),e.invalidDynamicUsageError??=r,r}function l(e){switch(e.phase){case"action":case"render":return!0;case"after":{let e=i.actionAsyncStorage.getStore();if(e&&(e.isAppRoute||e.isAction))return!0;let t=s.afterTaskAsyncStorage.getStore();if(t)return"action"===t.rootTaskSpawnPhase;return!1}}}},476550,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"connection",{enumerable:!0,get:function(){return l}});let n=e.r(556704),o=e.r(832319),a=e.r(258200),i=e.r(183589),s=e.r(756725),u=e.r(679847);e.r(865832);let c=e.r(585346);function l(){let e=n.workAsyncStorage.getStore(),t=o.workUnitAsyncStorage.getStore();if(e){if(t&&!(0,u.isRequestApiAllowedInCurrentPhase)(t))throw Object.defineProperty(Error(`Route ${e.route} used \`connection()\` inside \`after()\` while rendering. The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual Request, but \`after()\` executes after the request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E1377",enumerable:!1,configurable:!0});if(e.forceStatic)return Promise.resolve(void 0);if(e.dynamicShouldError)throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${e.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`connection()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E847",enumerable:!1,configurable:!0});if(t)switch(t.type){case"cache":{let t=Object.defineProperty(Error(`Route ${e.route} used \`connection()\` inside "use cache". The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual request, but caches must be able to be produced before a request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E841",enumerable:!1,configurable:!0});throw Error.captureStackTrace(t,l),(0,s.applyOwnerStack)(t),e.invalidDynamicUsageError??=t,t}case"private-cache":{let t=Object.defineProperty(Error(`Route ${e.route} used \`connection()\` inside "use cache: private". The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual navigation request, but caches must be able to be produced before a navigation request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E837",enumerable:!1,configurable:!0});throw Error.captureStackTrace(t,l),(0,s.applyOwnerStack)(t),e.invalidDynamicUsageError??=t,t}case"unstable-cache":throw Object.defineProperty(Error(`Route ${e.route} used \`connection()\` inside a function cached with \`unstable_cache()\`. The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual Request, but caches must be able to be produced before a Request so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E840",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${e.route} used \`connection()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1125",enumerable:!1,configurable:!0});case"prerender":case"prerender-client":case"prerender-runtime":return(0,s.makeDynamicHangingPromise)(t.renderSignal,e.route,"`connection()`");case"validation-client":{let e="`connection`";throw Object.defineProperty(new c.InvariantError(`${e} must not be used within a Client Component. Next.js should be preventing ${e} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1063",enumerable:!1,configurable:!0})}case"prerender-ppr":return(0,a.postponeWithTracking)(e.route,"connection",t.dynamicTracking);case"prerender-legacy":return(0,a.throwToInterruptStaticGeneration)("connection",e,t);case"request":if((0,a.trackDynamicDataInDynamicRender)(t),t.asyncApiPromises)return t.asyncApiPromises.connection;return Promise.resolve(void 0)}}(0,o.throwForMissingRequestStore)("connection")}},885298,(e,t,r)=>{let n={NextRequest:e.r(641165).NextRequest,NextResponse:e.r(628661).NextResponse,ImageResponse:e.r(853702).ImageResponse,userAgentFromString:e.r(276870).userAgentFromString,userAgent:e.r(276870).userAgent,URLPattern:e.r(374644).URLPattern,after:e.r(910473).after,connection:e.r(476550).connection};t.exports=n,r.NextRequest=n.NextRequest,r.NextResponse=n.NextResponse,r.ImageResponse=n.ImageResponse,r.userAgentFromString=n.userAgentFromString,r.userAgent=n.userAgent,r.URLPattern=n.URLPattern,r.after=n.after,r.connection=n.connection},307450,(e,t,r)=>{"use strict";t.exports=e.r(918622)},910931,(e,t,r)=>{"use strict";t.exports=e.r(307450).vendored["react-rsc"].React},243727,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DynamicServerError:function(){return i},isDynamicServerError:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a="DYNAMIC_SERVER_USAGE";class i extends Error{constructor(e){super(`Dynamic server usage: ${e}`),this.description=e,this.digest=a}}function s(e){return"object"==typeof e&&null!==e&&"digest"in e&&"string"==typeof e.digest&&e.digest===a}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},183589,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={StaticGenBailoutError:function(){return i},isStaticGenBailoutError:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a="NEXT_STATIC_GEN_BAILOUT";class i extends Error{constructor(...e){super(...e),this.code=a}}function s(e){return"object"==typeof e&&null!==e&&"code"in e&&e.code===a}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},585346,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"InvariantError",{enumerable:!0,get:function(){return n}});class n extends Error{constructor(e,t){super(`Invariant: ${e.endsWith(".")?e:e+"."} This is a bug in Next.js.`,t),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1179",enumerable:!1,configurable:!0}),this.name="InvariantError"}}},900338,(e,t,r)=>{"use strict";function n(){let e,t,r=new Promise((r,n)=>{e=r,t=n});return{resolve:e,reject:t,promise:r}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createPromiseWithResolvers",{enumerable:!0,get:function(){return n}})},865832,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o,a={RENDER_STAGE_ADVANCE_ORDER:function(){return l},RenderStage:function(){return c},StagedRenderingController:function(){return f},SyncIOMode:function(){return p},getNextStage:function(){return d},isAdvanceableRenderStage:function(){return h}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let s=e.r(585346),u=e.r(900338);var c=((n={})[n.Before=1]="Before",n[n.ShellStatic=11]="ShellStatic",n[n.Static=13]="Static",n[n.ShellRuntime=21]="ShellRuntime",n[n.Runtime=23]="Runtime",n[n.Dynamic=30]="Dynamic",n[n.Abandoned=40]="Abandoned",n);let l=[11,13,21,23,30];function d(e){return l[l.indexOf(e)+1]}function h(e){return 1<e&&e<=30}var p=((o={})[o.Untracked=1]="Untracked",o[o.AllowedInRuntimeOrDynamic=2]="AllowedInRuntimeOrDynamic",o[o.AllowedInDynamic=3]="AllowedInDynamic",o);class f{constructor({abortSignal:e,abandonController:t,syncIO:r,finalStage:n}){this.currentStage=1,this.syncInterruptReason=null,this.triggers={11:g(),13:g(),21:g(),23:g(),30:g()},this.abortSignal=e,this.abandonController=t,this.syncIOMode=r,this.finalStage=n,e&&e.addEventListener("abort",()=>{let{reason:t}=e;for(let e of Object.values(this.triggers)){var r,n;r=e,n=t,"pending"===r.state&&(r.state="cancelled",r._listeners.length=0,r.promise.catch(m),r._rejectPromise(n))}},{once:!0}),t&&t.signal.addEventListener("abort",()=>{this.abandonRender()},{once:!0})}onStage(e,t){var r,n;r=this.triggers[e],n=t,"pending"===r.state?r._listeners.push(n):n()}shouldTrackSyncInterrupt(){if(1===this.syncIOMode)return!1;switch(this.currentStage){case 1:return!1;case 11:case 13:return!0;case 21:case 23:switch(this.syncIOMode){case 2:return!1;case 3:return!0}case 30:case 40:return!1;default:return this.currentStage,!1}}syncInterruptCurrentStageWithReason(e){let{currentStage:t}=this;if(1!==t&&30!==t&&40!==t){if(this.abandonController)return void this.abandonController.abort();if(this.abortSignal){this.syncInterruptReason=e,this.currentStage=40;return}this.syncInterruptReason=e,this.advanceStage(30)}}getSyncInterruptReason(){return this.syncInterruptReason}getStageEndTime(e){return this.triggers[d(e)].triggeredAt??1/0}abandonRender(){let{currentStage:e}=this;if(1===e)throw Object.defineProperty(new s.InvariantError("A render that hasn't started yet cannot be abandoned"),"__NEXT_ERROR_CODE",{value:"E1300",enumerable:!1,configurable:!0});if(30===e||40===e)return;let t=l.indexOf(e)+1,r=l.indexOf(30);for(let e=t;e<r;e++)this.resolveStage(l[e]);this.currentStage=40}advanceStage(e){if(null!==this.finalStage&&e>this.finalStage)throw Object.defineProperty(new s.InvariantError(`Attempted to advance to stage ${c[e]} but the render is limited to ${c[this.finalStage]}`),"__NEXT_ERROR_CODE",{value:"E1302",enumerable:!1,configurable:!0});let{currentStage:t}=this;if(30===t||40===t||e<=t)return;this.currentStage=e;let r=1===t?0:l.indexOf(t)+1,n=l.indexOf(e);for(let e=r;e<=n;e++)this.resolveStage(l[e])}resolveStage(e){var t=this.triggers[e];if("pending"===t.state){t.state="triggered",t.triggeredAt=performance.now()+performance.timeOrigin;try{let{_listeners:e}=t;for(let t=0;t<e.length;t++)e[t]();e.length=0}finally{t._resolvePromise()}}}getStagePromise(e){return this.triggers[e].promise}waitForStage(e){return this.getStagePromise(e)}delayUntilStage(e,t,r){let n=this.getStagePromise(e).then(()=>r);return this.abortSignal&&n.catch(m),n}}function m(){}function g(){let{promise:e,resolve:t,reject:r}=(0,u.createPromiseWithResolvers)();return{state:"pending",triggeredAt:null,promise:e,_listeners:[],_resolvePromise:t,_rejectPromise:r}}},522846,(e,t,r)=>{"use strict";function n(e,t,r){if(e){for(let n of(r&&(r=r.toLowerCase()),e))if(t===n.domain?.split(":",1)[0].toLowerCase()||r===n.defaultLocale.toLowerCase()||n.locales?.some(e=>e.toLowerCase()===r))return n}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"detectDomainLocale",{enumerable:!0,get:function(){return n}})},341682,(e,t,r)=>{"use strict";function n(e){return 47===e.charCodeAt(e.length-1)&&e.length>1?e.slice(0,-1):e}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removeTrailingSlash",{enumerable:!0,get:function(){return n}})},49454,(e,t,r)=>{"use strict";function n(e){let t=e.indexOf("#"),r=e.indexOf("?"),n=r>-1&&(t<0||r<t);return n||t>-1?{pathname:e.substring(0,n?r:t),query:n?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"parsePath",{enumerable:!0,get:function(){return n}})},455454,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathPrefix",{enumerable:!0,get:function(){return o}});let n=e.r(49454);function o(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:o,hash:a}=(0,n.parsePath)(e);return`${t}${r}${o}${a}`}},447990,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathSuffix",{enumerable:!0,get:function(){return o}});let n=e.r(49454);function o(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:o,hash:a}=(0,n.parsePath)(e);return`${r}${t}${o}${a}`}},667138,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"pathHasPrefix",{enumerable:!0,get:function(){return o}});let n=e.r(49454);function o(e,t){if("string"!=typeof e)return!1;let{pathname:r}=(0,n.parsePath)(e);return r===t||r.startsWith(t+"/")}},997602,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addLocale",{enumerable:!0,get:function(){return a}});let n=e.r(455454),o=e.r(667138);function a(e,t,r,a){if(!t||t===r)return e;let i=e.toLowerCase();return!a&&((0,o.pathHasPrefix)(i,"/api")||(0,o.pathHasPrefix)(i,`/${t.toLowerCase()}`))?e:(0,n.addPathPrefix)(e,`/${t}`)}},202116,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"formatNextPathnameInfo",{enumerable:!0,get:function(){return s}});let n=e.r(341682),o=e.r(455454),a=e.r(447990),i=e.r(997602);function s(e){let t=(0,i.addLocale)(e.pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix);return(e.buildId||!e.trailingSlash)&&(t=(0,n.removeTrailingSlash)(t)),e.buildId&&(t=(0,a.addPathSuffix)((0,o.addPathPrefix)(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=(0,o.addPathPrefix)(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:(0,a.addPathSuffix)(t,"/"):(0,n.removeTrailingSlash)(t)}},770517,(e,t,r)=>{"use strict";function n(e,t){let r;if(t?.host&&!Array.isArray(t.host))r=t.host.toString().split(":",1)[0];else{if(!e.hostname)return;r=e.hostname}return r.toLowerCase()}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getHostname",{enumerable:!0,get:function(){return n}})},385630,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizeLocalePath",{enumerable:!0,get:function(){return o}});let n=new WeakMap;function o(e,t){let r;if(!t)return{pathname:e};let o=n.get(t);o||(o=t.map(e=>e.toLowerCase()),n.set(t,o));let a=e.split("/",2);if(!a[1])return{pathname:e};let i=a[1].toLowerCase(),s=o.indexOf(i);return s<0?{pathname:e}:(r=t[s],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}},472389,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removePathPrefix",{enumerable:!0,get:function(){return o}});let n=e.r(667138);function o(e,t){if(!(0,n.pathHasPrefix)(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}},454122,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getNextPathnameInfo",{enumerable:!0,get:function(){return i}});let n=e.r(385630),o=e.r(472389),a=e.r(667138);function i(e,t){let{basePath:r,i18n:i,trailingSlash:s}=t.nextConfig??{},u={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):s};r&&(0,a.pathHasPrefix)(u.pathname,r)&&(u.pathname=(0,o.removePathPrefix)(u.pathname,r),u.basePath=r);let c=u.pathname;if(u.pathname.startsWith("/_next/data/")&&u.pathname.endsWith(".json")){let e=u.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");u.buildId=e[0],c="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(u.pathname=c)}if(i){let e=t.i18nProvider?t.i18nProvider.analyze(u.pathname):(0,n.normalizeLocalePath)(u.pathname,i.locales);u.locale=e.detectedLocale,u.pathname=e.pathname??u.pathname,!e.detectedLocale&&u.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(c):(0,n.normalizeLocalePath)(c,i.locales)).detectedLocale&&(u.locale=e.detectedLocale)}return u}},723866,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"NextURL",{enumerable:!0,get:function(){return l}});let n=e.r(522846),o=e.r(202116),a=e.r(770517),i=e.r(454122),s=/^(?:127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)$/;function u(e,t){let r=new URL(String(e),t&&String(t));return s.test(r.hostname)&&(r.hostname="localhost"),r}let c=Symbol("NextURLInternal");class l{constructor(e,t,r){let n,o;"object"==typeof t&&"pathname"in t||"string"==typeof t?(n=t,o=r||{}):o=r||t||{},this[c]={url:u(e,n??o.base),options:o,basePath:""},this.analyze()}analyze(){var e,t,r,o,s;let u=(0,i.getNextPathnameInfo)(this[c].url.pathname,{nextConfig:this[c].options.nextConfig,parseData:!0,i18nProvider:this[c].options.i18nProvider}),l=(0,a.getHostname)(this[c].url,this[c].options.headers);this[c].domainLocale=this[c].options.i18nProvider?this[c].options.i18nProvider.detectDomainLocale(l):(0,n.detectDomainLocale)(null==(t=this[c].options.nextConfig)||null==(e=t.i18n)?void 0:e.domains,l);let d=(null==(r=this[c].domainLocale)?void 0:r.defaultLocale)||(null==(s=this[c].options.nextConfig)||null==(o=s.i18n)?void 0:o.defaultLocale);this[c].url.pathname=u.pathname,this[c].defaultLocale=d,this[c].basePath=u.basePath??"",this[c].buildId=u.buildId,this[c].locale=u.locale??d,this[c].trailingSlash=u.trailingSlash}formatPathname(){return(0,o.formatNextPathnameInfo)({basePath:this[c].basePath,buildId:this[c].buildId,defaultLocale:this[c].options.forceLocale?void 0:this[c].defaultLocale,locale:this[c].locale,pathname:this[c].url.pathname,trailingSlash:this[c].trailingSlash})}formatSearch(){return this[c].url.search}get buildId(){return this[c].buildId}set buildId(e){this[c].buildId=e}get locale(){return this[c].locale??""}set locale(e){var t,r;if(!this[c].locale||!(null==(r=this[c].options.nextConfig)||null==(t=r.i18n)?void 0:t.locales.includes(e)))throw Object.defineProperty(TypeError(`The NextURL configuration includes no locale "${e}"`),"__NEXT_ERROR_CODE",{value:"E597",enumerable:!1,configurable:!0});this[c].locale=e}get defaultLocale(){return this[c].defaultLocale}get domainLocale(){return this[c].domainLocale}get searchParams(){return this[c].url.searchParams}get host(){return this[c].url.host}set host(e){this[c].url.host=e}get hostname(){return this[c].url.hostname}set hostname(e){this[c].url.hostname=e}get port(){return this[c].url.port}set port(e){this[c].url.port=e}get protocol(){return this[c].url.protocol}set protocol(e){this[c].url.protocol=e}get href(){let e=this.formatPathname(),t=this.formatSearch();return`${this.protocol}//${this.host}${e}${t}${this.hash}`}set href(e){this[c].url=u(e),this.analyze()}get origin(){return this[c].url.origin}get pathname(){return this[c].url.pathname}set pathname(e){this[c].url.pathname=e}get hash(){return this[c].url.hash}set hash(e){this[c].url.hash=e}get search(){return this[c].url.search}set search(e){this[c].url.search=e}get password(){return this[c].url.password}set password(e){this[c].url.password=e}get username(){return this[c].url.username}set username(e){this[c].url.username=e}get basePath(){return this[c].basePath}set basePath(e){this[c].basePath=e.startsWith("/")?e:`/${e}`}toString(){return this.href}toJSON(){return this.href}[Symbol.for("edge-runtime.inspect.custom")](){return{href:this.href,origin:this.origin,protocol:this.protocol,username:this.username,password:this.password,host:this.host,hostname:this.hostname,port:this.port,pathname:this.pathname,search:this.search,searchParams:this.searchParams,hash:this.hash}}clone(){return new l(String(this),this[c].options)}}},419372,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_SUFFIX:function(){return g},APP_DIR_ALIAS:function(){return q},CACHE_ONE_YEAR_SECONDS:function(){return N},DOT_NEXT_ALIAS:function(){return U},ESLINT_DEFAULT_DIRS:function(){return es},GSP_NO_RETURNED_VALUE:function(){return et},GSSP_COMPONENT_MEMBER_ERROR:function(){return eo},GSSP_NO_RETURNED_VALUE:function(){return er},HTML_CONTENT_TYPE_HEADER:function(){return i},INFINITE_CACHE:function(){return j},INSTRUMENTATION_HOOK_FILENAME:function(){return L},JSON_CONTENT_TYPE_HEADER:function(){return s},MATCHED_PATH_HEADER:function(){return l},MIDDLEWARE_FILENAME:function(){return D},MIDDLEWARE_LOCATION_REGEXP:function(){return C},NEXT_BODY_SUFFIX:function(){return w},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return P},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return v},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return R},NEXT_CACHE_ROOT_PARAM_TAG_ID:function(){return A},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return T},NEXT_CACHE_TAGS_HEADER:function(){return E},NEXT_CACHE_TAG_MAX_ITEMS:function(){return S},NEXT_CACHE_TAG_MAX_LENGTH:function(){return x},NEXT_DATA_SUFFIX:function(){return b},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return c},NEXT_META_SUFFIX:function(){return y},NEXT_NAV_DEPLOYMENT_ID_HEADER:function(){return _},NEXT_QUERY_PARAM_PREFIX:function(){return u},NEXT_RESUME_HEADER:function(){return O},NEXT_RESUME_STATE_LENGTH_HEADER:function(){return k},NON_STANDARD_NODE_ENV:function(){return ea},PAGES_DIR_ALIAS:function(){return M},PRERENDER_REVALIDATE_HEADER:function(){return d},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return h},PROXY_FILENAME:function(){return I},PROXY_LOCATION_REGEXP:function(){return $},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return z},ROOT_DIR_ALIAS:function(){return B},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return Y},RSC_ACTION_ENCRYPTION_ALIAS:function(){return V},RSC_ACTION_PROXY_ALIAS:function(){return H},RSC_ACTION_VALIDATE_ALIAS:function(){return W},RSC_CACHE_WRAPPER_ALIAS:function(){return G},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return F},RSC_MOD_REF_PROXY_ALIAS:function(){return X},RSC_SEGMENTS_DIR_SUFFIX:function(){return p},RSC_SEGMENT_SUFFIX:function(){return f},RSC_SUFFIX:function(){return m},SERVER_PROPS_EXPORT_ERROR:function(){return ee},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return J},SERVER_PROPS_SSG_CONFLICT:function(){return Q},SERVER_RUNTIME:function(){return eu},SSG_FALLBACK_EXPORT_ERROR:function(){return ei},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return K},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return Z},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return a},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return en},WEBPACK_LAYERS:function(){return ed},WEBPACK_RESOURCE_QUERIES:function(){return eh},WEB_SOCKET_MAX_RECONNECTIONS:function(){return ec}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a="text/plain",i="text/html; charset=utf-8",s="application/json; charset=utf-8",u="nxtP",c="nxtI",l="x-matched-path",d="x-prerender-revalidate",h="x-prerender-revalidate-if-generated",p=".segments",f=".segment.rsc",m=".rsc",g=".action",b=".json",y=".meta",w=".body",_="x-nextjs-deployment-id",E="x-next-cache-tags",v="x-next-revalidated-tags",R="x-next-revalidate-tag-token",O="next-resume",k="x-next-resume-state-length",S=128,x=256,T=1024,P="_N_T_",A="_N_RP_",N=31536e3,j=0xfffffffe,D="middleware",C=`(?:src/)?${D}`,I="proxy",$=`(?:src/)?${I}`,L="instrumentation",M="private-next-pages",U="private-dot-next",B="private-next-root-dir",q="private-next-app-dir",X="private-next-rsc-mod-ref-proxy",W="private-next-rsc-action-validate",H="private-next-rsc-server-reference",G="private-next-rsc-cache-wrapper",F="private-next-rsc-track-dynamic-import",V="private-next-rsc-action-encryption",Y="private-next-rsc-action-client-wrapper",z="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",K="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",J="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",Q="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",Z="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",ee="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",et="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",er="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",en="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",eo="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",ea='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',ei="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",es=["app","pages","components","lib","src"],eu={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},ec=12,el={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ed={...el,GROUP:{builtinReact:[el.reactServerComponents,el.actionBrowser],serverOnly:[el.reactServerComponents,el.actionBrowser,el.instrument,el.middleware],neutralTarget:[el.apiNode,el.apiEdge],clientOnly:[el.serverSideRendering,el.appPagesBrowser],bundled:[el.reactServerComponents,el.actionBrowser,el.serverSideRendering,el.appPagesBrowser,el.shared,el.instrument,el.middleware],appPages:[el.reactServerComponents,el.serverSideRendering,el.appPagesBrowser,el.actionBrowser]}},eh={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},287790,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={fromNodeOutgoingHttpHeaders:function(){return i},normalizeNextQueryParam:function(){return l},splitCookiesString:function(){return s},toNodeOutgoingHttpHeaders:function(){return u},validateURL:function(){return c}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(419372);function i(e){let t=new Headers;for(let[r,n]of Object.entries(e))for(let e of Array.isArray(n)?n:[n])void 0!==e&&("number"==typeof e&&(e=e.toString()),t.append(r,e));return t}function s(e){var t,r,n,o,a,i=[],s=0;function u(){for(;s<e.length&&/\s/.test(e.charAt(s));)s+=1;return s<e.length}for(;s<e.length;){for(t=s,a=!1;u();)if(","===(r=e.charAt(s))){for(n=s,s+=1,u(),o=s;s<e.length&&"="!==(r=e.charAt(s))&&";"!==r&&","!==r;)s+=1;s<e.length&&"="===e.charAt(s)?(a=!0,s=o,i.push(e.substring(t,n)),t=s):s=n+1}else s+=1;(!a||s>=e.length)&&i.push(e.substring(t,e.length))}return i}function u(e){let t={},r=[];if(e)for(let[n,o]of e.entries())"set-cookie"===n.toLowerCase()?(r.push(...s(o)),t[n]=1===r.length?r[0]:r):t[n]=o;return t}function c(e){try{return String(new URL(String(e)))}catch(t){throw Object.defineProperty(Error(`URL is malformed "${String(e)}". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`,{cause:t}),"__NEXT_ERROR_CODE",{value:"E61",enumerable:!1,configurable:!0})}}function l(e){for(let t of[a.NEXT_QUERY_PARAM_PREFIX,a.NEXT_INTERCEPTION_MARKER_PREFIX])if(e!==t&&e.startsWith(t))return e.substring(t.length);return null}},560659,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={PageSignatureError:function(){return a},RemovedPageError:function(){return i},RemovedUAError:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});class a extends Error{constructor({page:e}){super(`The middleware "${e}" accepts an async API directly with the form:
285
-
286
- export function middleware(request, event) {
287
- return NextResponse.redirect('/new-location')
288
- }
289
-
290
- Read more: https://nextjs.org/docs/messages/middleware-new-signature
291
- `),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1177",enumerable:!1,configurable:!0})}}class i extends Error{constructor(){super("The request.page has been deprecated in favour of `URLPattern`.\n Read more: https://nextjs.org/docs/messages/middleware-request-page\n "),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1178",enumerable:!1,configurable:!0})}}class s extends Error{constructor(){super("The request.ua has been removed in favour of `userAgent` function.\n Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n "),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1172",enumerable:!1,configurable:!0})}}},989364,(e,t,r)=>{"use strict";var n=Object.defineProperty,o=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,s={},u={RequestCookies:()=>m,ResponseCookies:()=>g,parseCookie:()=>d,parseSetCookie:()=>h,stringifyCookie:()=>l};for(var c in u)n(s,c,{get:u[c],enumerable:!0});function l(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),n=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?n:`${n}; ${r.join("; ")}`}function d(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[n,o]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=o?o:"true"))}catch{}}return t}function h(e){if(!e)return;let[[t,r],...n]=d(e),{domain:o,expires:a,httponly:i,maxage:s,path:u,samesite:c,secure:l,partitioned:h,priority:m}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var g,b,y={name:t,value:decodeURIComponent(r),domain:o,...a&&{expires:new Date(a)},...i&&{httpOnly:!0},..."string"==typeof s&&{maxAge:Number(s)},path:u,...c&&{sameSite:p.includes(g=(g=c).toLowerCase())?g:void 0},...l&&{secure:!0},...m&&{priority:f.includes(b=(b=m).toLowerCase())?b:void 0},...h&&{partitioned:!0}};let e={};for(let t in y)y[t]&&(e[t]=y[t]);return e}}t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of a(t))i.call(e,s)||void 0===s||n(e,s,{get:()=>t[s],enumerable:!(r=o(t,s))||r.enumerable});return e})(n({},"__esModule",{value:!0}),s);var p=["strict","lax","none"],f=["low","medium","high"],m=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of d(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===n).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,n=this._parsed;return n.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(n).map(([e,t])=>l(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>l(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},g=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const o=null!=(n=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?n:[];for(const e of Array.isArray(o)?o:function(e){if(!e)return[];var t,r,n,o,a,i=[],s=0;function u(){for(;s<e.length&&/\s/.test(e.charAt(s));)s+=1;return s<e.length}for(;s<e.length;){for(t=s,a=!1;u();)if(","===(r=e.charAt(s))){for(n=s,s+=1,u(),o=s;s<e.length&&"="!==(r=e.charAt(s))&&";"!==r&&","!==r;)s+=1;s<e.length&&"="===e.charAt(s)?(a=!0,s=o,i.push(e.substring(t,n)),t=s):s=n+1}else s+=1;(!a||s>=e.length)&&i.push(e.substring(t,e.length))}return i}(o)){const t=h(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===n)}has(e){return this._parsed.has(e)}set(...e){let[t,r,n]=1===e.length?[e[0].name,e[0].value,e[0]]:e,o=this._parsed;return o.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=l(r);t.append("set-cookie",e)}}(o,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(l).join("; ")}}},86547,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={RequestCookies:function(){return a.RequestCookies},ResponseCookies:function(){return a.ResponseCookies},stringifyCookie:function(){return a.stringifyCookie}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(989364)},641165,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={INTERNALS:function(){return c},NextRequest:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(723866),i=e.r(287790),s=e.r(560659),u=e.r(86547),c=Symbol("internal request");class l extends Request{constructor(e,t={}){const r="string"!=typeof e&&"url"in e?e.url:String(e);(0,i.validateURL)(r),t.body&&"half"!==t.duplex&&(t.duplex="half"),e instanceof Request?super(e,t):super(r,t);const n=new a.NextURL(r,{headers:(0,i.toNodeOutgoingHttpHeaders)(this.headers),nextConfig:t.nextConfig});this[c]={cookies:new u.RequestCookies(this.headers),nextUrl:n,url:n.toString()}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,nextUrl:this.nextUrl,url:this.url,bodyUsed:this.bodyUsed,cache:this.cache,credentials:this.credentials,destination:this.destination,headers:Object.fromEntries(this.headers),integrity:this.integrity,keepalive:this.keepalive,method:this.method,mode:this.mode,redirect:this.redirect,referrer:this.referrer,referrerPolicy:this.referrerPolicy,signal:this.signal}}get cookies(){return this[c].cookies}get nextUrl(){return this[c].nextUrl}get page(){throw new s.RemovedPageError}get ua(){throw new s.RemovedUAError}get url(){return this[c].url}}},770956,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},628661,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"NextResponse",{enumerable:!0,get:function(){return d}});let n=e.r(86547),o=e.r(723866),a=e.r(287790),i=e.r(770956),s=e.r(86547),u=Symbol("internal response"),c=new Set([301,302,303,307,308]);function l(e,t){var r;if(null==e||null==(r=e.request)?void 0:r.headers){if(!(e.request.headers instanceof Headers))throw Object.defineProperty(Error("request.headers must be an instance of Headers"),"__NEXT_ERROR_CODE",{value:"E119",enumerable:!1,configurable:!0});let r=[];for(let[n,o]of e.request.headers)t.set("x-middleware-request-"+n,o),r.push(n);t.set("x-middleware-override-headers",r.join(","))}}class d extends Response{constructor(e,t={}){super(e,t);const r=this.headers,c=new Proxy(new s.ResponseCookies(r),{get(e,o,a){switch(o){case"delete":case"set":return(...a)=>{let i=Reflect.apply(e[o],e,a),u=new Headers(r);return i instanceof s.ResponseCookies&&r.set("x-middleware-set-cookie",i.getAll().map(e=>(0,n.stringifyCookie)(e)).join(",")),l(t,u),i};default:return i.ReflectAdapter.get(e,o,a)}}});this[u]={cookies:c,url:t.url?new o.NextURL(t.url,{headers:(0,a.toNodeOutgoingHttpHeaders)(r),nextConfig:t.nextConfig}):void 0}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,url:this.url,body:this.body,bodyUsed:this.bodyUsed,headers:Object.fromEntries(this.headers),ok:this.ok,redirected:this.redirected,status:this.status,statusText:this.statusText,type:this.type}}get cookies(){return this[u].cookies}static json(e,t){let r=Response.json(e,t);return new d(r.body,r)}static redirect(e,t){let r="number"==typeof t?t:(null==t?void 0:t.status)??307;if(!c.has(r))throw Object.defineProperty(RangeError('Failed to execute "redirect" on "response": Invalid status code'),"__NEXT_ERROR_CODE",{value:"E529",enumerable:!1,configurable:!0});let n="object"==typeof t?t:{},o=new Headers(null==n?void 0:n.headers);return o.set("Location",(0,a.validateURL)(e)),new d(null,{...n,headers:o,status:r})}static rewrite(e,t){let r=new Headers(null==t?void 0:t.headers);return r.set("x-middleware-rewrite",(0,a.validateURL)(e)),l(t,r),new d(null,{...t,headers:r})}static next(e){let t=new Headers(null==e?void 0:e.headers);return t.set("x-middleware-next","1"),l(e,t),new d(null,{...e,headers:t})}}},853702,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error('ImageResponse moved from "next/server" to "next/og" since Next.js 14, please import from "next/og" instead'),"__NEXT_ERROR_CODE",{value:"E183",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageResponse",{enumerable:!0,get:function(){return n}})},547850,(e,t,r)=>{var n={943:function(t,r){!function(n){"use strict";var o="function",a="undefined",i="object",s="string",u="major",c="model",l="name",d="type",h="vendor",p="version",f="architecture",m="console",g="mobile",b="tablet",y="smarttv",w="wearable",_="embedded",E="Amazon",v="Apple",R="ASUS",O="BlackBerry",k="Browser",S="Chrome",x="Firefox",T="Google",P="Huawei",A="Microsoft",N="Motorola",j="Opera",D="Samsung",C="Sharp",I="Sony",$="Xiaomi",L="Zebra",M="Facebook",U="Chromium OS",B="Mac OS",q=function(e,t){var r={};for(var n in e)t[n]&&t[n].length%2==0?r[n]=t[n].concat(e[n]):r[n]=e[n];return r},X=function(e){for(var t={},r=0;r<e.length;r++)t[e[r].toUpperCase()]=e[r];return t},W=function(e,t){return typeof e===s&&-1!==H(t).indexOf(H(e))},H=function(e){return e.toLowerCase()},G=function(e,t){if(typeof e===s)return e=e.replace(/^\s\s*/,""),typeof t===a?e:e.substring(0,350)},F=function(e,t){for(var r,n,a,s,u,c,l=0;l<t.length&&!u;){var d=t[l],h=t[l+1];for(r=n=0;r<d.length&&!u&&d[r];)if(u=d[r++].exec(e))for(a=0;a<h.length;a++)c=u[++n],typeof(s=h[a])===i&&s.length>0?2===s.length?typeof s[1]==o?this[s[0]]=s[1].call(this,c):this[s[0]]=s[1]:3===s.length?typeof s[1]!==o||s[1].exec&&s[1].test?this[s[0]]=c?c.replace(s[1],s[2]):void 0:this[s[0]]=c?s[1].call(this,c,s[2]):void 0:4===s.length&&(this[s[0]]=c?s[3].call(this,c.replace(s[1],s[2])):void 0):this[s]=c||void 0;l+=2}},V=function(e,t){for(var r in t)if(typeof t[r]===i&&t[r].length>0){for(var n=0;n<t[r].length;n++)if(W(t[r][n],e))return"?"===r?void 0:r}else if(W(t[r],e))return"?"===r?void 0:r;return e},Y={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},z={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[p,[l,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[p,[l,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[l,p],[/opios[\/ ]+([\w\.]+)/i],[p,[l,j+" Mini"]],[/\bopr\/([\w\.]+)/i],[p,[l,j]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,/(ba?idubrowser)[\/ ]?([\w\.]+)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i,/(heytap|ovi)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i],[l,p],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[p,[l,"UC"+k]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i],[p,[l,"WeChat(Win) Desktop"]],[/micromessenger\/([\w\.]+)/i],[p,[l,"WeChat"]],[/konqueror\/([\w\.]+)/i],[p,[l,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[p,[l,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[p,[l,"Yandex"]],[/(avast|avg)\/([\w\.]+)/i],[[l,/(.+)/,"$1 Secure "+k],p],[/\bfocus\/([\w\.]+)/i],[p,[l,x+" Focus"]],[/\bopt\/([\w\.]+)/i],[p,[l,j+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[p,[l,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[p,[l,"Dolphin"]],[/coast\/([\w\.]+)/i],[p,[l,j+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[p,[l,"MIUI "+k]],[/fxios\/([-\w\.]+)/i],[p,[l,x]],[/\bqihu|(qi?ho?o?|360)browser/i],[[l,"360 "+k]],[/(oculus|samsung|sailfish|huawei)browser\/([\w\.]+)/i],[[l,/(.+)/,"$1 "+k],p],[/(comodo_dragon)\/([\w\.]+)/i],[[l,/_/g," "],p],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],[l,p],[/(metasr)[\/ ]?([\w\.]+)/i,/(lbbrowser)/i,/\[(linkedin)app\]/i],[l],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[l,M],p],[/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(chromium|instagram)[\/ ]([-\w\.]+)/i],[l,p],[/\bgsa\/([\w\.]+) .*safari\//i],[p,[l,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[p,[l,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[p,[l,S+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[l,S+" WebView"],p],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[p,[l,"Android "+k]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[l,p],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[p,[l,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[p,l],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[l,[p,V,{"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"}]],[/(webkit|khtml)\/([\w\.]+)/i],[l,p],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[l,"Netscape"],p],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[p,[l,x+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i,/panasonic;(viera)/i],[l,p],[/(cobalt)\/([\w\.]+)/i],[l,[p,/master.|lts./,""]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[f,"amd64"]],[/(ia32(?=;))/i],[[f,H]],[/((?:i[346]|x)86)[;\)]/i],[[f,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[f,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[f,"armhf"]],[/windows (ce|mobile); ppc;/i],[[f,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[f,/ower/,"",H]],[/(sun4\w)[;\)]/i],[[f,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[f,H]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[c,[h,D],[d,b]],[/\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[c,[h,D],[d,g]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[c,[h,v],[d,g]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[c,[h,v],[d,b]],[/(macintosh);/i],[c,[h,v]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[c,[h,C],[d,g]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[c,[h,P],[d,b]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[c,[h,P],[d,g]],[/\b(poco[\w ]+)(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[c,/_/g," "],[h,$],[d,g]],[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[c,/_/g," "],[h,$],[d,b]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[c,[h,"OPPO"],[d,g]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[c,[h,"Vivo"],[d,g]],[/\b(rmx[12]\d{3})(?: bui|;|\))/i],[c,[h,"Realme"],[d,g]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[c,[h,N],[d,g]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[c,[h,N],[d,b]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[c,[h,"LG"],[d,b]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[c,[h,"LG"],[d,g]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[c,[h,"Lenovo"],[d,b]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[c,/_/g," "],[h,"Nokia"],[d,g]],[/(pixel c)\b/i],[c,[h,T],[d,b]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[c,[h,T],[d,g]],[/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[c,[h,I],[d,g]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[c,"Xperia Tablet"],[h,I],[d,b]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[c,[h,"OnePlus"],[d,g]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[c,[h,E],[d,b]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[c,/(.+)/g,"Fire Phone $1"],[h,E],[d,g]],[/(playbook);[-\w\),; ]+(rim)/i],[c,h,[d,b]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[c,[h,O],[d,g]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[c,[h,R],[d,b]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[c,[h,R],[d,g]],[/(nexus 9)/i],[c,[h,"HTC"],[d,b]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[h,[c,/_/g," "],[d,g]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[c,[h,"Acer"],[d,b]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[c,[h,"Meizu"],[d,g]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[h,c,[d,g]],[/(kobo)\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[h,c,[d,b]],[/(surface duo)/i],[c,[h,A],[d,b]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[c,[h,"Fairphone"],[d,g]],[/(u304aa)/i],[c,[h,"AT&T"],[d,g]],[/\bsie-(\w*)/i],[c,[h,"Siemens"],[d,g]],[/\b(rct\w+) b/i],[c,[h,"RCA"],[d,b]],[/\b(venue[\d ]{2,7}) b/i],[c,[h,"Dell"],[d,b]],[/\b(q(?:mv|ta)\w+) b/i],[c,[h,"Verizon"],[d,b]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[c,[h,"Barnes & Noble"],[d,b]],[/\b(tm\d{3}\w+) b/i],[c,[h,"NuVision"],[d,b]],[/\b(k88) b/i],[c,[h,"ZTE"],[d,b]],[/\b(nx\d{3}j) b/i],[c,[h,"ZTE"],[d,g]],[/\b(gen\d{3}) b.+49h/i],[c,[h,"Swiss"],[d,g]],[/\b(zur\d{3}) b/i],[c,[h,"Swiss"],[d,b]],[/\b((zeki)?tb.*\b) b/i],[c,[h,"Zeki"],[d,b]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[h,"Dragon Touch"],c,[d,b]],[/\b(ns-?\w{0,9}) b/i],[c,[h,"Insignia"],[d,b]],[/\b((nxa|next)-?\w{0,9}) b/i],[c,[h,"NextBook"],[d,b]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[h,"Voice"],c,[d,g]],[/\b(lvtel\-)?(v1[12]) b/i],[[h,"LvTel"],c,[d,g]],[/\b(ph-1) /i],[c,[h,"Essential"],[d,g]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[c,[h,"Envizen"],[d,b]],[/\b(trio[-\w\. ]+) b/i],[c,[h,"MachSpeed"],[d,b]],[/\btu_(1491) b/i],[c,[h,"Rotor"],[d,b]],[/(shield[\w ]+) b/i],[c,[h,"Nvidia"],[d,b]],[/(sprint) (\w+)/i],[h,c,[d,g]],[/(kin\.[onetw]{3})/i],[[c,/\./g," "],[h,A],[d,g]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[c,[h,L],[d,b]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[c,[h,L],[d,g]],[/smart-tv.+(samsung)/i],[h,[d,y]],[/hbbtv.+maple;(\d+)/i],[[c,/^/,"SmartTV"],[h,D],[d,y]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[h,"LG"],[d,y]],[/(apple) ?tv/i],[h,[c,v+" TV"],[d,y]],[/crkey/i],[[c,S+"cast"],[h,T],[d,y]],[/droid.+aft(\w)( bui|\))/i],[c,[h,E],[d,y]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[c,[h,C],[d,y]],[/(bravia[\w ]+)( bui|\))/i],[c,[h,I],[d,y]],[/(mitv-\w{5}) bui/i],[c,[h,$],[d,y]],[/Hbbtv.*(technisat) (.*);/i],[h,c,[d,y]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[h,G],[c,G],[d,y]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[d,y]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[h,c,[d,m]],[/droid.+; (shield) bui/i],[c,[h,"Nvidia"],[d,m]],[/(playstation [345portablevi]+)/i],[c,[h,I],[d,m]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[c,[h,A],[d,m]],[/((pebble))app/i],[h,c,[d,w]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[c,[h,v],[d,w]],[/droid.+; (glass) \d/i],[c,[h,T],[d,w]],[/droid.+; (wt63?0{2,3})\)/i],[c,[h,L],[d,w]],[/(quest( 2| pro)?)/i],[c,[h,M],[d,w]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[h,[d,_]],[/(aeobc)\b/i],[c,[h,E],[d,_]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],[c,[d,g]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[c,[d,b]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[d,b]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[d,g]],[/(android[-\w\. ]{0,9});.+buil/i],[c,[h,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[p,[l,"EdgeHTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[p,[l,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[l,p],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[p,l]],os:[[/microsoft (windows) (vista|xp)/i],[l,p],[/(windows) nt 6\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,/(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],[l,[p,V,Y]],[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[l,"Windows"],[p,V,Y]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/ios;fbsv\/([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[p,/_/g,"."],[l,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[l,B],[p,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[p,l],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[l,p],[/\(bb(10);/i],[p,[l,O]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[p,[l,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[p,[l,x+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[p,[l,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[p,[l,"watchOS"]],[/crkey\/([\d\.]+)/i],[p,[l,S+"cast"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[l,U],p],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[l,p],[/(sunos) ?([\w\.\d]*)/i],[[l,"Solaris"],p],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[l,p]]},K=function(e,t){if(typeof e===i&&(t=e,e=void 0),!(this instanceof K))return new K(e,t).getResult();var r=typeof n!==a&&n.navigator?n.navigator:void 0,m=e||(r&&r.userAgent?r.userAgent:""),y=r&&r.userAgentData?r.userAgentData:void 0,w=t?q(z,t):z,_=r&&r.userAgent==m;return this.getBrowser=function(){var e,t={};return t[l]=void 0,t[p]=void 0,F.call(t,m,w.browser),t[u]=typeof(e=t[p])===s?e.replace(/[^\d\.]/g,"").split(".")[0]:void 0,_&&r&&r.brave&&typeof r.brave.isBrave==o&&(t[l]="Brave"),t},this.getCPU=function(){var e={};return e[f]=void 0,F.call(e,m,w.cpu),e},this.getDevice=function(){var e={};return e[h]=void 0,e[c]=void 0,e[d]=void 0,F.call(e,m,w.device),_&&!e[d]&&y&&y.mobile&&(e[d]=g),_&&"Macintosh"==e[c]&&r&&typeof r.standalone!==a&&r.maxTouchPoints&&r.maxTouchPoints>2&&(e[c]="iPad",e[d]=b),e},this.getEngine=function(){var e={};return e[l]=void 0,e[p]=void 0,F.call(e,m,w.engine),e},this.getOS=function(){var e={};return e[l]=void 0,e[p]=void 0,F.call(e,m,w.os),_&&!e[l]&&y&&"Unknown"!=y.platform&&(e[l]=y.platform.replace(/chrome os/i,U).replace(/macos/i,B)),e},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return m},this.setUA=function(e){return m=typeof e===s&&e.length>350?G(e,350):e,this},this.setUA(m),this};if(K.VERSION="1.0.35",K.BROWSER=X([l,p,u]),K.CPU=X([f]),K.DEVICE=X([c,h,d,m,g,y,b,w,_]),K.ENGINE=K.OS=X([l,p]),typeof r!==a)t.exports&&(r=t.exports=K),r.UAParser=K;else if(typeof define===o&&define.amd)e.r,void 0!==K&&e.v(K);else typeof n!==a&&(n.UAParser=K);var J=typeof n!==a&&(n.jQuery||n.Zepto);if(J&&!J.ua){var Q=new K;J.ua=Q.getResult(),J.ua.get=function(){return Q.getUA()},J.ua.set=function(e){Q.setUA(e);var t=Q.getResult();for(var r in t)J.ua[r]=t[r]}}}(this)}},o={};function a(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}},i=!0;try{n[e].call(r.exports,r,r.exports,a),i=!1}finally{i&&delete o[e]}return r.exports}a.ab="/ROOT/node_modules/next/dist/compiled/ua-parser-js/",t.exports=a(943)},276870,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={isBot:function(){return s},userAgent:function(){return c},userAgentFromString:function(){return u}};for(var a in o)Object.defineProperty(r,a,{enumerable:!0,get:o[a]});let i=(n=e.r(547850))&&n.__esModule?n:{default:n};function s(e){return/Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Google-InspectionTool|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver|GPTBot/i.test(e)}function u(e){return{...(0,i.default)(e),isBot:void 0!==e&&s(e)}}function c({headers:e}){return u(e.get("user-agent")||void 0)}},374644,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"URLPattern",{enumerable:!0,get:function(){return n}});let n="u"<typeof URLPattern?void 0:URLPattern}];
292
-
293
- //# sourceMappingURL=_00_584r._.js.map