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
@@ -0,0 +1,130 @@
1
+ module.exports=[851372,e=>e.a(async(t,o)=>{try{var a=e.i(687388),n=e.i(353885),s=e.i(393189),r=e.i(265143),i=e.i(148831),l=e.i(619898),h=e.i(636882),u=e.i(786025),d=e.i(640911),c=e.i(41444),p=e.i(660948),w=e.i(54282),y=t([r,i,l,p]);async function m(e,t,o,y){var m,g,S,x,A,E,M,_,j;let I,B,C,P,L,W=await (0,u.openWorkspace)(),q=e.trim(),R=o?.askedBy??null,[U,H,Y,F,D,J,G,K,z]=await Promise.all([(0,h.loadSkills)(W),(0,l.listNoteIndex)(),(0,l.listAlwaysLoaded)(),(0,p.listConnectedToolNames)(),(0,i.findPinnedTools)(q),(0,r.listJobBots)(),(0,s.listBotMemory)(q),(0,r.readBotMemoryOn)(),(0,u.readMachineTools)(W)]),Q=o&&!o.canBorrow?[]:J.filter(e=>e.name!==q&&!o?.above.includes(e.name)),V=[R?(m=q,g=R,[`You are ${m}, a worker. ${g} has handed you one part of a job Thursday handed over; your first message says who holds it and how it reached you. The user speaks to Thursday and to nobody else; you never address them, and what you hand back goes into ${g}'s answer as-is. This thread is drawn on their screen while you work: not written to them, but not private either. ${(0,w.nowLine)()}`,f,b].join("\n\n")):(S=q,[`You are ${S}, 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 says out of your answer 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,w.nowLine)()}`,f,b].join("\n\n")),(x=H,A=Y,I=`## The user's memory
2
+
3
+ What Thursday knows about the user, kept as she talks with them. Every bot reads it; none writes to it. Open a note with \`${n.TOOL_NAMES.memory_recall}\` when the job needs something about them — the address they sign in with, the name to book under — and put what you find out about them in your answer; she decides what to keep. It describes them, not you: how they are named and spoken to is hers to use. What you learn about the work goes in your own memory, below.`,B=A.length?`Already known:
4
+
5
+ ${(0,w.carriedLines)(A)}`:"",C=`path — what is under it (facts) "what the user calls it"
6
+
7
+ ${(0,w.noteLines)(x)}
8
+
9
+ A topic not listed is one nobody knows anything about.`,[I,B,C].filter(Boolean).join("\n\n")),K?(E=(0,s.botMemoryFolder)(q),P=(M=G).entries.length?M.entries.map(({file:e,line:t})=>t?`- ${e} — ${(0,c.clip)(t,a.PROMPT_LINE.botMemory)}`:`- ${e}`).join("\n"):"Empty.",L=M.total>M.entries.length?`
10
+
11
+ The newest ${M.entries.length} of ${M.total}; \`ls ${E}\` for the rest.`:"",`## Your memory
12
+
13
+ What you kept from your own earlier jobs, in \`${E}/\`: one topic per file, its first line saying what it holds, read by no other bot. Keep what a later job would otherwise have to find out again — how a site signs in, the way through its screens, a command that turned out right — and fix or delete a file that proved wrong. No passwords, keys or codes.
14
+
15
+ ${P}${L}`):"",function(e,t){let o=new Set(t.map(e=>`${e.server}/${e.name}`)),a=e.filter(e=>!o.has(`${e.server}/${e.name}`));if(0===a.length)return"";let s=o.size?" What is not listed above you are already holding — it is in your tools.":"";return`## Connected tools
16
+
17
+ ${(0,w.mcpToolLines)(a)}
18
+
19
+ Names only: \`${n.TOOL_NAMES.tool_search}\` returns what each one takes, \`${n.TOOL_NAMES.tool_call}\` runs one.${s}`}(F,D),(_=U,0===_.length?"":`## Skills
20
+
21
+ Written-down methods. When the job is one of these, read it with \`${n.TOOL_NAMES.load_skill}\` before starting.
22
+
23
+ ${(0,w.skillLines)(_)}`),T(W.cwd,z,y),(j=Q,0===j.length?"":`## Bots
24
+
25
+ ${j.map(e=>`- **${e.name}** — ${e.description}`).join("\n")}
26
+
27
+ These lines were written for the user, who reads them on their own screen: where one says "you" it means them, not you.
28
+
29
+ A part of your job another bot is for goes to \`${n.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. What you were handed stays yours and you answer for it. They get the job, the call it came from and what you write them — not this thread.`),R?v(R):$,R?O(R):N,k(t)].filter(Boolean).join("\n\n");return(0,w.logPromptSize)("bot",V),d.logger.debug(`bot prompt
30
+ ${V}`),{text:V,peers:Q.map(e=>e.name),opening:null}}[r,i,l,p]=y.then?(await y)():y;let f=`**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 \`${n.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.
31
+
32
+ **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.
33
+
34
+ **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.",k=e=>e?.trim()?`## Owner's instructions
35
+
36
+ Written by the person this bot works for. Where these and anything above disagree, these win.
37
+
38
+ ${e.trim()}`:"",T=(e,t,o)=>{var s;let r,i;return`## Environment
39
+
40
+ Current Cwd: ${e}
41
+ Platform: ${process.platform}
42
+ ${s=t,r=(e,t)=>`${e}: ${t.found.length?t.found.join(", "):"none"}.${t.missing.length?` Not here: ${t.missing.join(", ")}.`:""}`,i=s.managers.found.includes("pnpm")?" Use pnpm, not npm — this workspace is fenced for it (`pnpm-workspace.yaml`, `.npmrc`).":"",[r("Runtimes",s.runtimes),`${r("Package managers",s.managers)}${i}`,null===s.browser?"":s.browser?"Browser: installed.":"Browser: not installed — `playwright-cli install-browser chromium` puts one there."].filter(Boolean).join("\n")}
43
+
44
+ Read off this machine as the job opened, so it is current: reach for what is here instead of checking for it.
45
+
46
+ Your workspace — \`${n.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:
47
+
48
+ - \`${a.PATHS.artifacts}/\` — finished work the user opens, one entry per result. Theirs, and it stays.
49
+ - \`${a.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.
50
+ - \`${o?.scratch??a.PATHS.scratch}/\` — this job's working material, one folder for every bot on the job: what another bot on it wrote is here too. It is cleared ${Math.round(a.WORKSPACE_KEEP.forMs/864e5)} days after the job ends, so nothing here is worth keeping.
51
+ - \`${o?.own??a.PATHS.bots}/\` — yours, across every job you run here: your memory, a script you wrote once and will want again, a table you built.
52
+
53
+ Never the directory above — that is the app you run in; outside the workspace, only where the user pointed you.`},$=`## Asking
54
+
55
+ 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 \`${n.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.
56
+
57
+ 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.
58
+
59
+ 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.`,v=e=>`## Asking
60
+
61
+ What you cannot get for yourself goes to \`${n.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.`,N=`## Answering
62
+
63
+ Every job ends with \`${n.TOOL_NAMES.answer}\`. **Answer what was asked, at the size it was asked**: a question ends in its answer — one number is one line — and a thing to make comes back made, an action done, photos in a page, a comparison in a table. Once you have what they asked for the job is done; the next thing you would go and check is theirs to ask for.
64
+
65
+ You are answering Thursday, not the user: she is on the call and picks what to say out of this. Write it plainly, in the user's language — the thread is on their screen as you write it. Anything past a few lines is a file under \`${a.PATHS.artifacts}/\`, and the answer names its path — it becomes a link on their screen. In a \`.md\`, images only by absolute route (\`/api/file/${a.PATHS.artifacts}/…\`).`,O=e=>`## Answering
66
+
67
+ Every part ends with \`${n.TOOL_NAMES.answer}\`; what you hand back goes into ${e}'s own answer. 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.`;function g(e){let t=e.length-1,o=e.map((o,a)=>{if(0===a)return a===t?`- **${o} (you)** — Thursday handed you this job. You answer to Thursday, and your answer is the only part of it that reaches the user.`:`- **${o}** — holds the job Thursday handed over, and answers for it.`;let n=e[a-1];return a===t?`- **${o} (you)** — ${n} handed you one part of it: the last section below. You answer to ${n}; nobody else hears from you.`:`- **${o}** — ${n} handed them one part of it.`});return`## Who is who on this job
68
+
69
+ - **The user** — talks only to Thursday, on a voice call. No bot addresses them.
70
+ - **Thursday** — the user's assistant on that call. Hands jobs to bots and tells the user what comes back.
71
+ ${o.join("\n")}`}e.s(["OPENING_TURNS",0,10,"buildHandoff",0,function(e){let t=e.bots.at(-1)??"",o=e.bots.at(-2)??"",a=e.did?.trim()?`## ${o} → ${t}: what ${o} has done, and why this part is ${t}'s
72
+
73
+ ${e.did.trim()}`:"",n=`## ${o} → ${t}: the part
74
+
75
+ ${e.part.trim()}`;return[{type:"text",text:g(e.bots)},{type:"text",text:[e.chain,a,n].filter(Boolean).join("\n\n")}]},"buildTaskOpening",0,function(e){let t=e.conversation.filter(e=>e.text.trim()),o=`## Thursday → ${e.bot}: the job
76
+
77
+ ${e.request.trim()}`,n=t.length?`## The call the job came from — its last ${t.length} turns, verbatim
78
+
79
+ A detail missing from the job may be here — a name, a number, which of two. Where the two disagree the job wins, unless they asked out loud for something to be done and the job only asks about it: then the doing is the job.
80
+
81
+ ${t.map(e=>`${"user"===e.role?"user":"thursday"}: ${(0,c.clip)(e.text,a.PROMPT_LINE.callTurn)}`).join("\n")}`:"";return[{type:"text",text:g([e.bot])},{type:"text",text:[o,n].filter(Boolean).join("\n\n")}]},"chainOf",0,function(e){return e?.role!=="user"?"":"string"==typeof e.content?e.content:e.content.flatMap(e=>"text"===e.type?[e.text]:[]).at(-1)??""},"loadBotPrompt",0,m]),o()}catch(e){o(e)}},!1),585099,e=>e.a(async(t,o)=>{try{var a=e.i(68356),n=e.i(847841),s=e.i(687388),r=e.i(159479),i=e.i(386075),l=e.i(851372),h=e.i(316172),u=e.i(353885),d=e.i(944971),c=e.i(786025),p=e.i(640911),w=e.i(53748),y=e.i(388439),m=e.i(265143),g=e.i(780274),f=t([r,i,l,m,g]);[r,i,l,m,g]=f.then?(await f)():f;let O=s.BOT_RUN.steps;async function b(e,t){var o,w,f;let b,$,A,E,M,_,j,I,B=t.depth??0,C=t.parent??null,P=e.bot.trim(),L=e=>t.emit({...e,bot:P,parent:C}),W=await (0,m.findJobBot)(P);if(!W)return void await L({type:"error",message:`No bot named "${e.bot}". Use a name from the list.`,failure:"fatal"});if(W.disabled&&"request"in e)return void await L({type:"error",message:`${W.name} is switched off. Use a name from the list.`,failure:"fatal"});let q=await ((o=W).provider&&o.model?(0,i.getTextModel)({provider:o.provider,model:o.model}):(0,i.resolveDefaultModel)().then(i.getTextModel)),R=t.taskId?await (0,g.findTask)(t.taskId):null,[U,H]=await Promise.all([t.taskId?(0,c.openJobScratch)(t.taskId,R?.label??"job"):null,(0,c.openBotFolder)(P)]),[Y,F]=await Promise.all([(0,l.loadBotPrompt)(P,W.systemPrompt,"askedBy"in e?{askedBy:e.askedBy,above:e.above,canBorrow:B<s.BOT_RUN.depth}:null,{scratch:U,own:H}),(0,r.loadTools)({target:"bot",bot:P,session:t.session??t.taskId,model:q})]),D=Math.min(await (0,i.compactBudget)(q.ref,W.compactAt),("askedBy"in e?0:R?.contextBudget)||1/0),J="messages"in e?e.messages:[{role:"user",content:(0,l.buildHandoff)({chain:e.chain,bots:[...e.above,P],did:e.context??null,part:e.request})}],G={left:s.BOT_RUN.askBack},K="askedBy"in e?function(e,t,o){let a={...e};delete a[u.TOOL_NAMES.ask_thursday];let{answer:s}=o;return s?{...a,[u.TOOL_NAMES.ask_back]:(0,n.tool)({description:h.askBackSpec.description,inputSchema:h.askBackSpec.parameters,execute:async({question:e})=>(t.left-=1,s(e))})}:a}(F,G,t):F,z=B<s.BOT_RUN.depth?function(e,t){if(0===t.peers.length)return e;let o={...e,[u.TOOL_NAMES.ask_bot]:(0,n.tool)({description:h.askBotSpec.description,inputSchema:h.askBotSpec.parameters,execute:async({bot:e,request:a,context:n},s)=>{if(e===t.name||t.above.includes(e))return`${e} is already on this job, above you and waiting on your part. Pick another bot, or do it yourself.`;let r=t.options.taskId?`${t.options.session??t.options.taskId}-${s.toolCallId.slice(0,8)}`:null,i=[],l=async n=>{let r=await N({model:t.model,instructions:t.instructions,tools:o,messages:s.messages,asked:{bot:e,request:a},question:n,signal:t.options.signal});return await t.emit({type:"answered",question:n,...r}),i.push({question:n,answer:r.text}),r.text};try{var h;let o=await v({bot:e,request:a,context:n,askedBy:t.name,chain:t.chain,above:[...t.above,t.name]},{...t.options,signal:s.abortSignal??t.options.signal,depth:t.depth+1,parent:s.toolCallId,session:r,answer:l});return i.length?`${o}
82
+
83
+ ${h=e,i.map(({question:e,answer:t})=>`(On the way ${h} asked you: "${e}" — you answered: "${t}")`).join("\n")}`:o}finally{r&&(0,c.closeHiddenBrowser)(r)}}})};return o}(K,{name:P,model:q.model,instructions:Y.text,peers:Y.peers,depth:B,chain:(0,l.chainOf)(J[0]),above:"askedBy"in e?e.above:[],options:t,emit:L}):K,Q={compact:null,interjections:[]},V=(w=s.BOT_RUN.silenceMs,$=new AbortController,A=0,E=!1,M=()=>{clearTimeout(b),b=void 0,E||A>0||(b=setTimeout(()=>{$.abort(new DOMException(`The model sent nothing for ${Math.round(w/6e4)} minutes.`,"TimeoutError"))},w))},{signal:$.signal,touch:M,hold:()=>{A+=1,M()},release:()=>{A=Math.max(0,A-1),M()},end:()=>{E=!0,M()}}),X=0,Z=new a.ToolLoopAgent({model:q.model,instructions:Y.text,tools:z,stopWhen:[(0,a.stepCountIs)(O),S,(0,a.hasToolCall)(u.TOOL_NAMES.ask_thursday)],prepareStep:async({stepNumber:e,steps:o,messages:a})=>{let n=e<O-1?{}:{activeTools:[u.TOOL_NAMES.answer],toolChoice:{type:"tool",toolName:u.TOOL_NAMES.answer}};!n.activeTools&&G.left<=0&&(n={...n,activeTools:Object.keys(z).filter(e=>e!==u.TOOL_NAMES.ask_back)});let s=o.at(-1)?.usage.inputTokens??0,r=Math.max(s,a.reduce((e,t)=>e+(0,y.estimateTokens)("string"==typeof t.content?t.content:JSON.stringify(t.content))+4,0));X=r;let i=a;if(r>D&&a.length>2){V.hold();let e=await T(q.model,z,a,{signal:t.signal,budget:D}).finally(V.release);p.logger.debug(`compacted ${a.length} messages at ${r} tokens (budget ${D})`);let o=`${e.text}${await k(R?.id??null,a,U)}`;Q.compact={type:"compact",text:o,usage:e.usage,messages:a.length,tokens:r},i=[a[0],{role:"user",content:o}]}let l=e>0?t.notes?.()??[]:[];return(l.length&&(Q.interjections.push(...l),i=[...i,...l.map(e=>({role:"user",content:e}))]),i===a)?n:{...n,messages:i}}}),ee=(_=[],j=[],I=!1,{push(e){let t=j.shift();t?t(e):_.push(e)},take(){let e=_.shift();return e?Promise.resolve(e):I?Promise.resolve(null):new Promise(e=>j.push(e))},end(){for(let e of(I=!0,j.splice(0)))e(null)}}),et=t.signal?AbortSignal.any([t.signal,V.signal]):V.signal;V.touch();let eo=await Z.stream({messages:J,abortSignal:et,onStepEnd:e=>ee.push({messages:e.response.messages,usage:x(e.usage)})}),ea="",en=null,es=null,er=null,ei=-1,el=null,eh=new Set,eu=e=>{let t=(0,i.modelFailureOf)(e),o=(0,i.modelErrorToString)(e);if("overflow"!==t)return{type:"error",message:o,failure:t};let a=Math.floor(Math.min(D,X||D)*s.BOT_RUN.overflowShrink);return{type:"error",message:o,failure:t,budget:Math.max(d.COMPACT_AT_MIN,a)}};et.addEventListener("abort",()=>ee.end(),{once:!0});try{for await(let e of eo.fullStream)switch(V.touch(),e.type){case"start-step":for(let e of(ei+=1,Q.compact&&(await L(Q.compact),Q.compact=null),Q.interjections.splice(0)))await L({type:"interjection",text:e});break;case"text-delta":ea+=e.text;break;case"text-end":{let e=ea.trim();if(ea="",!e)break;en=e,await L({type:"text",text:e});break}case"tool-call":if(e.toolName===u.TOOL_NAMES.ask_thursday){let t=e.input;es={id:e.toolCallId,question:String(t.question??""),options:(0,g.optionsOf)(t.options)}}else if(e.toolName===u.TOOL_NAMES.answer){let t=e.input;er={text:String(t.result??"").trim(),stopped:ei>=O-1}}e.providerExecuted||e.toolName===u.TOOL_NAMES.ask_thursday||(eh.add(e.toolCallId),V.hold()),await L({type:"tool",id:e.toolCallId,name:e.toolName,input:e.input});break;case"tool-result":eh.delete(e.toolCallId)&&V.release(),e.toolName===u.TOOL_NAMES.answer&&er&&!(0,h.answerAccepted)(e.output)&&(er={text:`${er.text}
84
+
85
+ ${f=e.output,"string"==typeof f?f:f&&"object"==typeof f&&"value"in f?"string"==typeof f.value?f.value:JSON.stringify(f.value??""):JSON.stringify(f??"")}`,stopped:!0}),await L({type:"tool-result",id:e.toolCallId,name:e.toolName,output:e.output});break;case"tool-error":eh.delete(e.toolCallId)&&V.release(),await L({type:"tool-result",id:e.toolCallId,name:e.toolName,output:(0,i.modelErrorToString)(e.error),error:!0});break;case"finish-step":{el=e.finishReason;let t=await ee.take();t&&await L({type:"step",...t,budget:D});break}case"abort":if(t.signal?.aborted)return;await L({type:"error",message:e.reason??"The model stopped sending.",failure:"transient"});return;case"error":await L(eu(e.error));return}}finally{ee.end(),V.end()}try{await eo.response}catch(e){if(t.signal?.aborted)return;await L(eu(e));return}es?await L({type:"waiting",...es}):er?await L({type:"answer",...er}):"content-filter"===el?await L({type:"error",message:"The provider's content filter stopped the response.",failure:"fatal"}):await L({type:"answer",text:en??"Stopped without handing anything back.",stopped:null===en||"length"===el||ei>=O-1})}let S=({steps:e})=>e.at(-1)?.toolResults.some(e=>e.toolName===u.TOOL_NAMES.answer&&(0,h.answerAccepted)(e.output))??!1;async function k(e,t,o){try{let a=e?await (0,g.listWrittenPaths)(e):(0,g.writtenPathsIn)(t.map(e=>e.content)),n=await (0,c.filesOnDisk)(a,o);if(!n.length)return"";let r=n.slice(-s.BOT_RUN.compactFiles),i=n.length-r.length,l=r.map(e=>`- ${e}`);return i&&l.unshift(`- …and ${i} older ones`),`
86
+
87
+ Files this job has on disk now — open one rather than fetching again what is in it:
88
+ ${l.join("\n")}`}catch(e){return p.logger.warn("files under the summary could not be listed",e),""}}async function T(e,t,o,n){let s;try{return await $(e,t,o,n)}catch(e){if(n.signal?.aborted)throw e;s=e}if("overflow"===(0,i.modelFailureOf)(s)){let r=(0,a.pruneMessages)({messages:o,toolCalls:"before-last-4-messages",emptyMessages:"remove"});try{return await $(e,t,r,n)}catch(e){if(n.signal?.aborted)throw e;s=e}}throw Error(`Could not compact the context (${(0,i.modelErrorToString)(s)}).`,{cause:s})}async function $(e,t,o,n){let r,{text:i,usage:l}=await (0,a.generateText)({model:e,tools:t,toolChoice:"none",messages:[...o,{role:"user",content:(r=(e=>{let{min:t,max:o,perTokens:a}=s.BOT_RUN.summaryWords;return Math.min(o,Math.max(t,Math.round(e/a)))})(n.budget),`Compact your context. The first message above — the job, the call it came from, and anything handed over with it — stays exactly as it is. Everything after it is replaced by what you write now, and you carry on from that first message and this alone; nothing else above can be read again. Write it for a fresh copy of you that has your tools, your instructions and that first message, but has seen none of the rest.
89
+
90
+ Cover all of it, and prefer a fact over a description of a fact:
91
+
92
+ - **Where the job stands against that first message.** Do not restate the job or the call; say what has changed since — a choice made, a detail settled, an answer that came back, a correction, anything you are still waiting on.
93
+ - **What is already true.** Every value you have — numbers, names, dates, ids, urls, prices, times — written out, not referred to. A value you leave out is one the next steps go and fetch again.
94
+ - **Where you are.** Which page the browser is on by url, whether you are signed in and to what, what is running, what you were in the middle of. Element refs do not survive this: name what to look for, never a ref.
95
+ - **Files.** Every path you wrote or read, and one line on what each holds.
96
+ - **What did not work**, and why: the url that 404s, the endpoint that needs POST not GET, the selector that is not there, the site that refuses a headless browser, the argument a tool rejected. This is the part that stops the next steps repeating an hour of yours.
97
+ - **What is left**, in the order you would do it.
98
+
99
+ Plain text, under ${r} words. No preamble, no headings about the summary itself, no account of how you have been going.`)}],abortSignal:n.signal,timeout:s.BOT_RUN.silenceMs}),h=i.trim();if(!h)throw Object.assign(Error("The summary of the context came back empty, so there is nothing to carry on from."),{isRetryable:!0});return{text:`Everything between the first message and here was compacted. Below is your own summary of it; carry on from the first message and this.
100
+
101
+ ${h}`,usage:x(l)}}let x=e=>({input:e.inputTokens??0,output:e.outputTokens??0});async function v(e,t){let o="",a=null;return await b(e,{...t,emit:async e=>{"answer"===e.type&&(o=e.stopped?`${e.text}
102
+
103
+ (As far as they got — they stopped before finishing.)`:e.text),"error"===e.type&&(a=e.message),await t.emit(e)}}),a&&(0,w.publicError)(a),o}async function N(e){try{let t,o,{text:n,usage:r}=await (0,a.generateText)({model:e.model,system:e.instructions,tools:e.tools,toolChoice:"none",messages:[...e.messages,{role:"user",content:(t=e.asked,o=e.question,`You handed one part of your job to ${t.bot}:
104
+
105
+ > ${t.request.trim()}
106
+
107
+ Before going on, they ask you:
108
+
109
+ > ${o.trim()}
110
+
111
+ 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,timeout:s.BOT_RUN.silenceMs});return{text:n.trim()||"They had nothing to add. Go on with your best reading, and say what you assumed in what you hand back.",usage:x(r)}}catch(t){if(e.signal?.aborted)throw t;return p.logger.warn(`ask_back: ${(0,i.modelErrorToString)(t)}`),{text:`No answer came back (${(0,i.modelErrorToString)(t)}). Go on with your best reading, and say what you assumed in what you hand back.`,usage:d.NO_TOKENS}}}e.s(["resumeThread",0,function(e,t=new Map){let o=new Set;for(let t of e)if(("tool"===t.role||"assistant"===t.role)&&"string"!=typeof t.content)for(let e of t.content)"tool-result"===e.type&&o.add(e.toolCallId);let a=[],n=[];for(let s of e){if(n.length&&"tool"===s.role){a.push({...s,content:[...n,...s.content]}),n=[];continue}n.length&&(a.push({role:"tool",content:n}),n=[]),a.push(s),"assistant"===s.role&&"string"!=typeof s.content&&(n=s.content.flatMap(e=>"tool-call"!==e.type||o.has(e.toolCallId)?[]:[{type:"tool-result",toolCallId:e.toolCallId,toolName:e.toolName,output:{type:"text",value:function(e,t){let o=e.toolName===u.TOOL_NAMES.ask_bot?t.get(e.toolCallId):void 0;return o?`No result: the run was stopped before ${o.bot} answered, and they are not working on it any more. What they had written by then:
112
+
113
+ ${o.tail}
114
+
115
+ Check what they did before relying on it, then finish the part yourself or hand them what is left.`:"No result: the run was stopped before this call returned. Check what it did before relying on it."}(e,t)}}]))}return n.length&&a.push({role:"tool",content:n}),a},"runBot",0,b]),o()}catch(e){o(e)}},!1),39803,e=>e.a(async(t,o)=>{try{var a=e.i(380690),n=e.i(687388),s=e.i(386075),r=e.i(851372),i=e.i(353885),l=e.i(22676),h=e.i(629668),u=e.i(786025),d=e.i(167004),c=e.i(640911),p=e.i(53748),w=e.i(268486),y=e.i(585099),m=e.i(944971),g=e.i(780274),f=t([s,r,l,y,g]);[s,r,l,y,g]=f.then?(await f)():f;let _=globalThis.__botRuns??=new Map,j=globalThis.__botTaskLock??=(0,w.createKeyedLock)(),I=globalThis.__botResumes??=new Map;async function b(e){let t=e.callId?await (0,l.listCallTurns)(e.callId,r.OPENING_TURNS):[],o=(0,r.buildTaskOpening)({bot:e.bot,request:e.request,conversation:t}),a=await (0,g.insertTask)({...e,opening:o});return x(a.id,{bot:e.bot,messages:[{role:"user",content:o}]}),a.id}async function k(e,t){return j(e,async()=>{let o=await (0,g.findTask)(e);o||(0,p.publicError)("No such job.");let a=_.get(e);if(a&&"running"===o.status&&a.note(t))return void c.logger.debug(`task ${e}: interjection queued`);a&&(a.stop.abort(),await a.done),$(e);let n=await (0,g.listThread)(e),{reply:s,as:r}=function(e,t,o){var a;let n,s,r="waiting"===e.status?e.pending:null,l=r?.toolCallId?(a=r.toolCallId,n=new Set(o.flatMap(e=>"tool"===e.role?e.content.flatMap(e=>"tool-result"===e.type?[e.toolCallId]:[]):[])),s=o.findLast(e=>"assistant"===e.role&&"string"!=typeof e.content&&e.content.some(e=>"tool-call"===e.type&&e.toolCallId===a)),(s?.role==="assistant"&&"string"!=typeof s.content?s.content.flatMap(e=>"tool-call"===e.type&&e.toolName===i.TOOL_NAMES.ask_thursday?[e.toolCallId]:[]):[a]).filter(e=>!n.has(e))):[];return l.length?{as:"answer",reply:{role:"tool",content:l.map(e=>({type:"tool-result",toolCallId:e,toolName:i.TOOL_NAMES.ask_thursday,output:{type:"text",value:t}}))}}:{as:"running"===e.status?"interruption":"waiting"===e.status?"answer":"follow-up",reply:{role:"user",content:t}}}(o,t,n);c.logger.debug(`task ${e}: ${r}`),await (0,g.upsertMessage)(e,await (0,g.lastSeq)(e)+1,{bot:null,parent:null,...s}),await (0,g.updateTask)(e,{status:"running",outcome:null,pending:null,seen:!1,endedAt:null}),x(e,{bot:o.bot,messages:(0,y.resumeThread)([...n,s],await (0,g.listBorrowedTails)(e))})})}async function T(e){return j(e,async()=>{let t=await (0,g.findTask)(e);t||(0,p.publicError)("No such job."),t.endedAt&&(0,p.publicError)("That job has already ended."),$(e),_.get(e)?.stop.abort(),await (0,g.updateTask)(e,{status:"failed",outcome:"Cancelled.",pending:null,seen:!0,endedAt:new Date}),(0,u.closeJobShell)(e)})}function $(e){clearTimeout(I.get(e)),I.delete(e)}async function v(e){a.presence.watching&&await j(e,async()=>{let t=await (0,g.findTask)(e);if(!t||"waiting"!==t.status||!t.pending?.auto||_.has(e))return;c.logger.debug(`task ${e}: picking back up`);let o=await (0,g.listThread)(e);await (0,g.updateTask)(e,{status:"running",outcome:null,pending:null,seen:!1,endedAt:null}),x(e,{bot:t.bot,messages:(0,y.resumeThread)(o,await (0,g.listBorrowedTails)(e))})})}async function N(e,t){let o=await (0,g.countStopsSinceSpoken)(e),a=o<n.BOT_RUN.autoResumes,s=n.BOT_RUN.retryAfterMs,r=a&&t.retry?s[Math.min(o,s.length-1)]:0;await O(e,`${t.why} ${B}`).catch(t=>c.logger.warn(`task ${e}: stop not written`,t)),await S(e,{status:"waiting",outcome:a?`${t.why} ${r?`It tries again in ${C(r)}.`:"It picks back up by itself."}`:`${t.why} It has stopped ${o+1} times in a row, so it waits for you. Everything it had done is still here.`,pending:{toolCallId:null,options:[m.TASK_CONTINUE],...a?{auto:!0,retryAt:Date.now()+r}:{}},...t.budget?{contextBudget:t.budget}:{},seen:!1,endedAt:null}),a&&($(e),I.set(e,setTimeout(()=>{I.delete(e),v(e).catch(t=>c.logger.error(`task ${e}: resume`,t))},Math.max(0,r))))}globalThis.__botPausing??={current:Promise.resolve()};let B="Anything that was under way — a command, a page loading, a download — may not have finished: check before relying on it, then carry on.",C=e=>e<6e4?`${Math.round(e/1e3)} seconds`:`${Math.round(e/6e4)} minutes`;async function O(e,t){await (0,g.upsertMessage)(e,await (0,g.lastSeq)(e)+1,{bot:null,parent:null,role:"user",content:t,note:!0})}async function S(e,t){for(let o of[1e3,3e3,null])try{await (0,g.updateTask)(e,t);return}catch(t){if(null===o)throw t;c.logger.warn(`task ${e}: ending not written, trying again`,t),await new Promise(e=>setTimeout(e,o))}}function x(e,t){let o=new AbortController,a=()=>{},n=new Promise(e=>{a=e}),s=[];_.set(e,{stop:o,done:n,note:t=>!!_.has(e)&&(s.push(t),!0)}),A(e,t,o.signal,s).catch(t=>{c.logger.error(`task ${e}`,t)}).finally(a)}class P{taskId;seq;steps;closed;constructor(e,t){this.taskId=e,this.steps=new Map,this.closed=!1,this.seq=t}close(){this.closed=!0}async note(e){await (0,g.upsertMessage)(this.taskId,++this.seq,{bot:null,parent:null,role:"user",content:e,note:!0})}step(e){let t=`${e.bot} ${e.parent??""}`,o=this.steps.get(t);return o||(o={assistant:null,tool:null,parts:{assistant:[],tool:[]}},this.steps.set(t,o)),o}write(e,t,o,a={}){let n={bot:t.bot,parent:t.parent,role:o.role,content:o.content,compact:a.compact??!1,note:a.note??!1};return(0,g.upsertMessage)(this.taskId,e,n)}async on(e){if(this.closed)return;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:e.error?{type:"error-text",value:String(e.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 o=[t.assistant,t.tool];this.steps.delete(`${e.bot} ${e.parent??""}`);let a=new Set;for(let[t,n]of e.messages.entries()){let s=o[t]??++this.seq;a.add(s),await this.write(s,e,n)}let n=o.filter(e=>null!==e&&!a.has(e));n.length&&await (0,g.deleteMessages)(this.taskId,n);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 A(e,t,o,r){let i=new P(e,await (0,g.lastSeq)(e)),l=null,d=null;try{await (0,y.runBot)(t,{signal:o,taskId:e,notes:()=>r.splice(0),emit:async t=>{await i.on(t),"step"===t.type&&await (0,g.addTaskUsage)(e,t.usage,t.parent?null:{tokens:t.usage.input,budget:t.budget}),("compact"===t.type||"answered"===t.type)&&await (0,g.addTaskUsage)(e,t.usage),t.parent||("waiting"===t.type?l={status:"waiting",outcome:t.question,pending:{toolCallId:t.id,options:t.options}}:"answer"===t.type?l=t.stopped?{status:"waiting",outcome:t.text,pending:{toolCallId:null,options:[m.TASK_CONTINUE]}}:{status:"done",outcome:t.text,pending:null}:"error"===t.type&&(d={message:t.message,failure:t.failure,budget:t.budget},l={status:"failed",outcome:E(t.message),pending:null}))}})}catch(e){d={message:(0,s.modelErrorToString)(e),failure:(0,s.modelFailureOf)(e)},l={status:"failed",outcome:E(d.message),pending:null}}finally{i.close(),_.delete(e)}if(o.aborted)return;let p=l??{status:"failed",outcome:"Stopped without handing anything back.",pending:null},w=d&&"fatal"!==d.failure?d:null;try{w?await N(e,{why:"overflow"===w.failure?`The model refused the context as too long (${w.message}); it is compacted before going on.`:`The model call failed (${w.message}).`,retry:"transient"===w.failure,budget:w.budget}):("failed"===p.status&&await i.note(`The run stopped here: ${d?.message??p.outcome}`).catch(t=>c.logger.warn(`task ${e}: break not written`,t)),await S(e,{...p,seen:!1,endedAt:"waiting"===p.status?null:new Date}))}catch(t){c.logger.error(`task ${e}: could not record how it ended`,t);return}w||"waiting"===p.status?(0,u.pruneJobFiles)():(0,u.closeHiddenBrowser)(e);let f=await (0,g.findTask)(e);if(f){if(r.length){let t=r.splice(0).join("\n\n");c.logger.debug(`task ${e}: interjection after the run ended — resuming`),k(e,t).catch(t=>{c.logger.error(`task ${e}: late interjection`,t)});return}if(!w&&(await M(f.label,p),"done"===p.status)){var b;let t,o=(b=p.outcome,(t=(0,h.pathsIn)(b)).find(e=>e.startsWith(`${n.PATHS.artifacts}/`))??t[0]??null);o&&a.appEvents.emit({type:"artifact",taskId:e,label:f.label,path:o})}}}function E(e){return`The run broke: ${e}
116
+
117
+ Everything it had done is still here — answer to pick it back up.`}async function M(e,t){if(0!==a.appEventStream.watchers&&await (0,l.isAnyCallLive)())return;let o="waiting"===t.status?`${e} — needs you`:e;(0,d.desktopNotify)(o,t.outcome)}e.s(["answerTask",0,k,"cancelTask",0,T,"startTask",0,b]),o()}catch(e){o(e)}},!1),167004,e=>{"use strict";var t=e.i(874533),o=e.i(687388);let a=`on run argv
118
+ display notification (item 2 of argv) with title (item 1 of argv)
119
+ end run`,n=`
120
+ $ErrorActionPreference = 'Stop'
121
+ [void][Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime]
122
+ $xml = [Windows.UI.Notifications.ToastNotificationManager]::GetTemplateContent([Windows.UI.Notifications.ToastTemplateType]::ToastText02)
123
+ $text = $xml.GetElementsByTagName('text')
124
+ [void]$text.Item(0).AppendChild($xml.CreateTextNode($env:NOTIFY_TITLE))
125
+ [void]$text.Item(1).AppendChild($xml.CreateTextNode($env:NOTIFY_BODY))
126
+ $id = '{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\\WindowsPowerShell\\v1.0\\powershell.exe'
127
+ [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier($id).Show([Windows.UI.Notifications.ToastNotification]::new($xml))
128
+ `,s={darwin:(e,t)=>["osascript",["-e",a,"--",e,t]],win32:()=>["powershell.exe",["-NoProfile","-NonInteractive","-Command",n]],linux:(e,t)=>["notify-send",["--app-name",o.APP_NAME,"--",e,t]]};e.s(["desktopNotify",0,function(e,o){let a=e.slice(0,80),n=o.slice(0,200),r=s[process.platform]?.(a,n);if(!r)return;let[i,l]=r;(0,t.execFile)(i,l,{env:{...process.env,NOTIFY_TITLE:a,NOTIFY_BODY:n},timeout:1e4,windowsHide:!0},()=>{})}])}];
129
+
130
+ //# sourceMappingURL=_0fzqt2y._.js.map
@@ -1,3 +1,3 @@
1
1
  module.exports=[844411,e=>e.a(async(t,a)=>{try{var r=e.i(386075),n=e.i(91264),o=t([r]);[r]=o.then?(await o)():o;let i=(0,n.serverRoute)(async()=>(0,r.readGatewayCatalog)());e.s(["GET",0,i]),a()}catch(e){a(e)}},!1),860213,e=>{"use strict";var t=e.i(747909),a=e.i(174017),r=e.i(996250),n=e.i(759756),o=e.i(561916),i=e.i(174677),s=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),R=e.i(626937),v=e.i(10372),m=e.i(193695);e.i(52474);var g=e.i(600220);let E=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/llm-model/catalog/route",pathname:"/api/llm-model/catalog",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/llm-model/catalog/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(844411),...{}}),{workAsyncStorage:f,workUnitAsyncStorage:w,serverHooks:C}=E;async function _(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),E.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/llm-model/catalog/route";f=f.replace(/\/index$/,"")||"/";let w=await E.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:C,deploymentId:_,params:x,nextConfig:A,parsedUrl:y,isDraftMode:T,prerenderManifest:P,routerServerContext:S,isOnDemandRevalidate:b,revalidateOnlyGenerated:N,resolvedPathname:O,clientReferenceManifest:q,serverActionsManifest:H}=w,k=(0,s.normalizeAppPath)(f),I=!!(P.dynamicRoutes[k]||P.routes[O]),M=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,y,!1):t.end("This page could not be found"),null);if(I&&!T){let e=!!P.routes[O],t=P.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await M();throw new m.NoFallbackError}}let U=null;!I||E.isDev||T||(U="/index"===(U=O)?"/":U);let D=!0===E.isDev||!I,j=I&&!D;H&&q&&(0,i.setManifestsSingleton)({page:f,clientReferenceManifest:q,serverActionsManifest:H});let F=e.method||"GET",K=(0,o.getTracer)(),G=K.getActiveScopeSpan(),L=!!(null==S?void 0:S.isWrappedByNextServer),$=!!(0,n.getRequestMeta)(e,"minimalMode"),B=(0,n.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,A,P,$);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let V={params:x,previewProps:P.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts,useCacheTimeout:A.experimental.useCacheTimeout},cacheComponents:!!A.cacheComponents,validationLevel:A.experimental.instantInsights.validationLevel,supportsDynamicResponse:D,incrementalCache:B,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:A.cacheLife,staticPageGenerationTimeout:A.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>E.onRequestError(e,t,r,n,S)},sharedContext:{buildId:C,deploymentId:_}},X=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),z=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:a})=>{try{if(!$&&b&&N&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await E.handle(z,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let o=V.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let i=V.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(X,W,n,o),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);i&&(t[v.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,r=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=v.INFINITE_CACHE?!1!==a&&a>0?A.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:b})},!1,S),t}},J=async(n,i)=>{try{var s,l;let n=await E.handleResponse({req:e,nextConfig:A,cacheKey:U,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:N,responseGenerator:Z,waitUntil:r.waitUntil,isMinimalMode:$});if(!I)return;if((null==n||null==(s=n.value)?void 0:s.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});$||t.setHeader("x-nextjs-cache",b?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);$&&I||o.delete(v.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,R.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(X,W,new Response(n.value.body,{headers:o,status:n.value.status||200}));return}catch(t){if(t instanceof m.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:b})},!1,S),I)throw t;await (0,p.sendResponse)(X,W,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:o.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let a=K.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route")||k,s=`${F} ${r}`;n.setAttributes({"next.route":r,"http.route":r,"next.span_name":s}),n.updateName(s),i&&i!==n&&(i.setAttribute("http.route",r),i.updateName(s))})()}};if(L&&G)await J(G,void 0);else{let t=K.getActiveScopeSpan();await K.withPropagatedContext(e.headers,()=>K.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${f}`,kind:o.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>J(e,t)),void 0,!L)}}e.s(["handler",0,_,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:f,workUnitAsyncStorage:w})},"routeModule",0,E,"serverHooks",0,C,"workAsyncStorage",0,f,"workUnitAsyncStorage",0,w])},967030,e=>{e.v(e=>Promise.resolve().then(()=>e(783697)))},683671,e=>{e.v(t=>Promise.all(["server/chunks/node_modules_@vercel_oidc_dist_token_1o4m7ms.js"].map(t=>e.l(t))).then(()=>t(390391)))},329280,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_node_readline_1u65a-m._.js","server/chunks/node_modules_consola_dist_chunks_prompt_mjs_02axwqv._.js"].map(t=>e.l(t))).then(()=>t(781937)))}];
2
2
 
3
- //# sourceMappingURL=_0vnutv9._.js.map
3
+ //# sourceMappingURL=_0ioz3nd._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[519902,e=>{"use strict";var t=e.i(91264),a=e.i(380690);let r=(0,t.serverRoute)(e=>Promise.resolve(a.appEventStream.respond(e.signal,async()=>[{type:"hello",boot:a.BOOT_ID}])));e.s(["GET",0,r])},178449,e=>{"use strict";var t=e.i(747909),a=e.i(174017),r=e.i(996250),n=e.i(759756),o=e.i(561916),i=e.i(174677),s=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),v=e.i(626937),R=e.i(10372),m=e.i(193695);e.i(52474);var g=e.i(600220);let E=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/events/route",pathname:"/api/events",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/events/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(519902),...{}}),{workAsyncStorage:f,workUnitAsyncStorage:w,serverHooks:C}=E;async function x(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),E.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/events/route";f=f.replace(/\/index$/,"")||"/";let w=await E.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:C,deploymentId:x,params:_,nextConfig:A,parsedUrl:T,isDraftMode:y,prerenderManifest:P,routerServerContext:S,isOnDemandRevalidate:b,revalidateOnlyGenerated:N,resolvedPathname:O,clientReferenceManifest:q,serverActionsManifest:H}=w,I=(0,s.normalizeAppPath)(f),k=!!(P.dynamicRoutes[I]||P.routes[O]),M=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,T,!1):t.end("This page could not be found"),null);if(k&&!y){let e=!!P.routes[O],t=P.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await M();throw new m.NoFallbackError}}let U=null;!k||E.isDev||y||(U="/index"===(U=O)?"/":U);let D=!0===E.isDev||!k,j=k&&!D;H&&q&&(0,i.setManifestsSingleton)({page:f,clientReferenceManifest:q,serverActionsManifest:H});let F=e.method||"GET",K=(0,o.getTracer)(),B=K.getActiveScopeSpan(),L=!!(null==S?void 0:S.isWrappedByNextServer),$=!!(0,n.getRequestMeta)(e,"minimalMode"),G=(0,n.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,A,P,$);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let V={params:_,previewProps:P.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts,useCacheTimeout:A.experimental.useCacheTimeout},cacheComponents:!!A.cacheComponents,validationLevel:A.experimental.instantInsights.validationLevel,supportsDynamicResponse:D,incrementalCache:G,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:A.cacheLife,staticPageGenerationTimeout:A.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>E.onRequestError(e,t,r,n,S)},sharedContext:{buildId:C,deploymentId:x}},X=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),z=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:a})=>{try{if(!$&&b&&N&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await E.handle(z,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let o=V.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let i=V.renderOpts.collectedTags;if(!k)return await (0,p.sendResponse)(X,W,n,o),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);i&&(t[R.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,r=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=R.INFINITE_CACHE?!1!==a&&a>0?A.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:b})},!1,S),t}},J=async(n,i)=>{try{var s,l;let n=await E.handleResponse({req:e,nextConfig:A,cacheKey:U,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:N,responseGenerator:Z,waitUntil:r.waitUntil,isMinimalMode:$});if(!k)return;if((null==n||null==(s=n.value)?void 0:s.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});$||t.setHeader("x-nextjs-cache",b?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),y&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);$&&k||o.delete(R.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,v.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(X,W,new Response(n.value.body,{headers:o,status:n.value.status||200}));return}catch(t){if(t instanceof m.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:b})},!1,S),k)throw t;await (0,p.sendResponse)(X,W,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:o.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let a=K.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route")||I,s=`${F} ${r}`;n.setAttributes({"next.route":r,"http.route":r,"next.span_name":s}),n.updateName(s),i&&i!==n&&(i.setAttribute("http.route",r),i.updateName(s))})()}};if(L&&B)await J(B,void 0);else{let t=K.getActiveScopeSpan();await K.withPropagatedContext(e.headers,()=>K.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${f}`,kind:o.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>J(e,t)),void 0,!L)}}e.s(["handler",0,x,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:f,workUnitAsyncStorage:w})},"routeModule",0,E,"serverHooks",0,C,"workAsyncStorage",0,f,"workUnitAsyncStorage",0,w])},329280,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_node_readline_1u65a-m._.js","server/chunks/node_modules_consola_dist_chunks_prompt_mjs_02axwqv._.js"].map(t=>e.l(t))).then(()=>t(781937)))}];
2
+
3
+ //# sourceMappingURL=_0iwfby5._.js.map
@@ -0,0 +1,26 @@
1
+ module.exports=[423620,e=>{"use strict";var t=e.i(912714),r=e.i(691296),a=e.i(749906),n=e.i(51083),o=e.i(375814),s=e.i(871096);let i={name:n.TOOL_NAMES.delegate,description:"Hand a job to a bot. Returns immediately; the job runs in the background and its result is put in front of you later.",parameters:a.object({bot:a.string().describe("A name from the bot list."),request:a.string().describe("The whole job. The bot cannot hear the call, so everything it needs goes here — names, paths, what the user actually asked for — in their own language and their own words: it is the only language the bot has, and whatever it writes comes back to them. **Their request, never your reading of it**: a condition, a caution or a smaller goal they did not say is how a job comes back as the wrong thing. When their words leave a real choice open, ask them on the call and put the answer here."),label:a.string().describe("Two or three words naming the job, in the user's language. Used on screen and said out loud.")})},l={name:n.TOOL_NAMES.ask_bot,description:"Hand one part of the job you are holding to another bot and wait for what they bring back. The job stays yours.",parameters:a.object({bot:a.string().describe("A name from the bot list."),request:a.string().describe("The part they take: the outcome you want, the shape to hand it back in (a path, a number, a list), and every name, path, number and limit that bears on it. It reaches them under the job and the call it came from, which are attached for you — write the part, not the job again."),context:a.string().describe("What you have done on the job so far and why this part is theirs — exact values, and the paths of files you wrote for them to read. They see this, the part, the job and the call; not your thread or your tool output, so a value you leave out is one they fetch again.")})},u={name:n.TOOL_NAMES.ask_back,description:"Ask the bot that handed you this part. They answer from what they have — the original request, the call it came from, what they found before asking you.",parameters:a.object({question:a.string().describe("One whole question — what you need and why. They cannot take it to the user for you, so ask what they would know.")})},c={name:n.TOOL_NAMES.ask_thursday,description:"Ask Thursday, who handed you this job. The job stops until an answer comes back.",parameters:a.object({question:a.string().describe("One whole question — what you need and why. One or two sentences, in the user's language: she may read it to them out loud, options and all."),options:a.union([a.string().array(),a.string()]).nullish().describe('Only when there really are choices — two or three, each short, as an array: ["Signed in", "Not yet"]. Null for an open question.')})},d={name:n.TOOL_NAMES.answer,description:"Answer the job you were given. Calling this ends the job — nothing after it runs.",parameters:a.object({result:a.string().describe("The answer itself — what you found or did, not a replay of how. As long as the answer needs and no longer: one number is one line. In the user's language; the thread is on their screen. If you could not do it, say what stopped you.")})},f={name:n.TOOL_NAMES.task,description:"Check a job you handed over, answer what it is asking, or cancel it.",parameters:a.object({action:a.enum(["status","answer","cancel"]),task:a.string().nullish().describe('The job, by its label or by the handle a past call\'s transcript carries. Leave it out with `answer` and it goes to the job that moved last — what "that one" means a moment after it answered. With `status`: null for every job in one line each — that is the list — or name one to get its answer in full.'),answer:a.string().nullish().describe("With `answer`: what to tell the bot — the answer to its question, a course correction for a job still running, or what to do next on one that finished.")})},p=(0,r.tool)({description:c.description,inputSchema:c.parameters}),m=(0,r.tool)({description:d.description,inputSchema:d.parameters,execute:async({result:e})=>{let t=await y(e);return t.length?`${h} these files do not exist — ${t.join(", ")}. Write them first, or take the paths out of the answer.`:"Answered. The job is closed; nothing further runs."}}),h="Not answered:";async function y(e){let r=[];for(let a of(0,o.pathsIn)(e)){let e=await (0,s.insideWorkspace)(a);e&&(await (0,t.stat)(e).then(e=>e.isFile(),()=>!1)||r.push(a))}return r}e.s(["answerAccepted",0,e=>"string"!=typeof e||!e.startsWith(h),"answerTool",0,m,"askBackSpec",0,u,"askBotSpec",0,l,"askThursdayTool",0,p,"delegateSpec",0,i,"isAnswerCall",0,e=>e===n.TOOL_NAMES.answer||"report"===e,"taskSpec",0,f])},51083,e=>{"use strict";e.s(["STUDIO_TOOLS",0,{generate_image:"generate_image",generate_speech:"generate_speech",transcribe:"transcribe",generate_video:"generate_video"},"TOOL_NAMES",0,{memory_recall:"memory_recall",memory_remember:"memory_remember",memory_forget:"memory_forget",memory_show:"memory_show",memory_conversation:"memory_conversation",bash:"bash",write_file:"write_file",tool_search:"tool_search",tool_call:"tool_call",load_skill:"load_skill",web_search:"web_search",delegate:"delegate",task:"task",ask_bot:"ask_bot",ask_thursday:"ask_thursday",ask_back:"ask_back",answer:"answer",end_call:"end_call"}])},444444,e=>e.a(async(t,r)=>{try{var a=e.i(336763),n=e.i(396918),o=e.i(157406),s=e.i(533102),i=e.i(232347),l=e.i(333925),u=e.i(876393),c=e.i(220376),d=e.i(423620),f=e.i(51083),p=e.i(64774),m=e.i(951056),h=t([u]);[u]=h.then?(await h)():h;let Z=()=>i.appEvents.emit({type:"tasks"}),U={id:c.taskTable.id,bot:c.taskTable.bot,label:c.taskTable.label,request:c.taskTable.request,status:c.taskTable.status,outcome:c.taskTable.outcome,pending:c.taskTable.pending,seen:c.taskTable.seen,inputTokens:c.taskTable.inputTokens,outputTokens:c.taskTable.outputTokens,contextTokens:c.taskTable.contextTokens,contextBudget:c.taskTable.contextBudget,createdAt:c.taskTable.createdAt,updatedAt:c.taskTable.updatedAt};async function y(e){let{opening:t,...r}=e,[a]=await u.database.insert(c.taskTable).values({id:crypto.randomUUID(),status:"running",...r}).returning();return await O(a.id,0,{bot:null,parent:null,role:"user",content:t}),Z(),a}async function g(e,t){await u.database.update(c.taskTable).set({...t,updatedAt:new Date}).where((0,a.eq)(c.taskTable.id,e)),Z()}async function b(e,t,r=null){(t.input||t.output||null!==r)&&(await u.database.update(c.taskTable).set({inputTokens:s.sql`${c.taskTable.inputTokens} + ${t.input}`,outputTokens:s.sql`${c.taskTable.outputTokens} + ${t.output}`,...null===r?{}:{contextTokens:r.tokens,contextBudget:r.budget}}).where((0,a.eq)(c.taskTable.id,e)),Z())}async function v(e){let[t]=await u.database.select().from(c.taskTable).where((0,a.eq)(c.taskTable.id,e));return t??null}async function w(){let[e,t]=await Promise.all([u.database.select(U).from(c.taskTable).where((0,a.inArray)(c.taskTable.status,["running","waiting"])).orderBy((0,n.desc)(c.taskTable.updatedAt)),u.database.select(U).from(c.taskTable).where((0,a.inArray)(c.taskTable.status,["done","failed"])).orderBy((0,n.desc)(c.taskTable.updatedAt)).limit(l.INBOX_FINISHED)]),r=[...e,...t].sort((e,t)=>t.updatedAt.getTime()-e.updatedAt.getTime());return N(r)}async function k(e={}){let t=await u.database.select(U).from(c.taskTable).where(e.before?(0,a.lt)(c.taskTable.updatedAt,e.before):void 0).orderBy((0,n.desc)(c.taskTable.updatedAt)).limit(e.limit??m.TASK_HISTORY_PAGE);return N(t)}async function T(){return(await u.database.select({id:c.taskTable.id}).from(c.taskTable).where((0,a.eq)(c.taskTable.status,"running"))).map(e=>e.id)}async function A(){return await u.database.select({id:c.taskTable.id,label:c.taskTable.label,status:c.taskTable.status,endedAt:c.taskTable.endedAt,updatedAt:c.taskTable.updatedAt}).from(c.taskTable)}async function E(){return(await u.database.select({id:c.taskTable.id,pending:c.taskTable.pending}).from(c.taskTable).where((0,a.eq)(c.taskTable.status,"waiting"))).flatMap(e=>e.pending?.auto?[{id:e.id,retryAt:e.pending.retryAt??0}]:[])}async function x(e){let t=await u.database.select({role:c.taskMessageTable.role,bot:c.taskMessageTable.bot,note:c.taskMessageTable.note,compact:c.taskMessageTable.compact}).from(c.taskMessageTable).where((0,a.and)((0,a.eq)(c.taskMessageTable.taskId,e),(0,a.isNull)(c.taskMessageTable.parent))).orderBy((0,n.desc)(c.taskMessageTable.seq)),r=0;for(let e of t){if(e.note){e.compact||(r+=1);continue}if(null===e.bot||"user"===e.role)break}return r}async function S(e){let t=await u.database.select({parent:c.taskMessageTable.parent,bot:c.taskMessageTable.bot,content:c.taskMessageTable.content}).from(c.taskMessageTable).where((0,a.and)((0,a.eq)(c.taskMessageTable.taskId,e),(0,a.isNotNull)(c.taskMessageTable.parent),(0,a.eq)(c.taskMessageTable.role,"assistant"))).orderBy(c.taskMessageTable.seq),r=new Map;for(let e of t){if(!e.parent)continue;let t=r.get(e.parent)??{bot:e.bot??"",texts:[],then:null},a=e.content;for(let e of"string"==typeof a?[{type:"text",text:a}]:a)"text"===e.type&&e.text.trim()?(t.texts.push(e.text.trim()),t.then=null):"tool-call"===e.type&&(t.then=`${e.toolName} ${L(e.toolName,e.input)}`.trim());r.set(e.parent,t)}let n=new Map;for(let[e,t]of r){let r=[...t.texts.slice(-3).map(e=>(0,p.clip)(e,600)),t.then?`Then: ${t.then}`:""].filter(Boolean).join("\n\n");r&&n.set(e,{bot:t.bot,tail:r})}return n}function I(e){let t=new Set;for(let r of e)if(Array.isArray(r))for(let e of r){if("tool-call"!==e.type||e.toolName!==f.TOOL_NAMES.write_file)continue;let r=e.input?.path;"string"==typeof r&&r.trim()&&(t.delete(r.trim()),t.add(r.trim()))}return[...t]}async function P(e){let t=await u.database.select({content:c.taskMessageTable.content}).from(c.taskMessageTable).where((0,a.and)((0,a.eq)(c.taskMessageTable.taskId,e),(0,a.eq)(c.taskMessageTable.role,"assistant"))).orderBy(c.taskMessageTable.seq);return I(t.map(e=>e.content))}async function _(e){let t=e.trim();if(!t)return null;let r=await v(t);if(r)return r;let a=t.toLowerCase();return(await u.database.select().from(c.taskTable).orderBy((0,n.desc)(c.taskTable.updatedAt)).limit(20)).find(e=>e.label.toLowerCase()===a)??null}async function O(e,t,r){await u.database.insert(c.taskMessageTable).values({taskId:e,seq:t,...r,compact:r.compact??!1,note:r.note??!1}).onConflictDoUpdate({target:[c.taskMessageTable.taskId,c.taskMessageTable.seq],set:{role:r.role,content:r.content,compact:r.compact??!1,note:r.note??!1}}),Z()}async function $(e,t){t.length&&(await u.database.delete(c.taskMessageTable).where((0,a.and)((0,a.eq)(c.taskMessageTable.taskId,e),(0,a.inArray)(c.taskMessageTable.seq,t))),Z())}async function C(e){let[t]=await u.database.select({seq:(0,o.max)(c.taskMessageTable.seq)}).from(c.taskMessageTable).where((0,a.eq)(c.taskMessageTable.taskId,e));return t?.seq??-1}async function M(e){let t=await u.database.select({role:c.taskMessageTable.role,content:c.taskMessageTable.content,compact:c.taskMessageTable.compact}).from(c.taskMessageTable).where((0,a.and)((0,a.eq)(c.taskMessageTable.taskId,e),(0,a.isNull)(c.taskMessageTable.parent))).orderBy(c.taskMessageTable.seq),r=t.findLastIndex(e=>e.compact);return(r>0?[t[0],...t.slice(r)]:t).map(e=>({role:e.role,content:e.content}))}async function N(e){if(0===e.length)return[];let t=await u.database.select().from(c.taskMessageTable).where((0,a.inArray)(c.taskMessageTable.taskId,e.map(e=>e.id))).orderBy(c.taskMessageTable.seq),r=new Map(e.map(e=>[e.id,e.bot])),n=new Map;for(let e of t){let t=n.get(e.taskId)??[];t.push(...function(e,t){let r={seq:e.seq,bot:e.bot,parent:e.parent,at:e.createdAt},a=t=>`${e.id}-${t}`,n=e.content;if("user"===e.role){if(0===e.seq)return[];let t="string"==typeof n?n:n.flatMap(e=>"text"===e.type&&e.text?[e.text]:[]).join("\n").trim();return t?e.note||e.compact?[{...r,id:a(0),kind:"note",text:t}]:[{...r,id:a(0),kind:"user",text:t}]:[]}if("assistant"===e.role){let n=e.content;if("string"==typeof n)return n.trim()?[{...r,id:a(0),kind:"text",text:n.trim()}]:[];let o=[];return n.forEach((e,n)=>{if("text"===e.type){let t=e.text.trim();t&&o.push({...r,id:a(n),kind:"text",text:t});return}if("tool-result"===e.type)return void o.push(R(r,a(n),e));if("tool-call"!==e.type)return;let s=e.input??{};if(e.toolName===f.TOOL_NAMES.ask_thursday)o.push({...r,id:a(n),kind:"waiting",callId:e.toolCallId,question:String(s.question??""),options:B(s.options)});else if((0,d.isAnswerCall)(e.toolName)){let e=String(s.result??"").trim();e&&o.push({...r,id:a(n),kind:"text",text:e})}else e.toolName===f.TOOL_NAMES.ask_bot?o.push({...r,id:a(n),kind:"ask",callId:e.toolCallId,to:String(s.bot??""),text:String(s.request??"")}):e.toolName===f.TOOL_NAMES.ask_back?o.push({...r,id:a(n),kind:"ask",callId:e.toolCallId,to:t,text:String(s.question??"")}):e.toolName===f.TOOL_NAMES.bash?o.push({...r,id:a(n),kind:"tool",callId:e.toolCallId,name:e.toolName,input:(0,p.clip)(String(s.command??""),120),note:j(s)}):o.push({...r,id:a(n),kind:"tool",callId:e.toolCallId,name:e.toolName,input:L(e.toolName,s),note:j(s),path:e.toolName===f.TOOL_NAMES.write_file?z(s,"path")??null:null})}),o}if("tool"===e.role){let t=[];return e.content.forEach((e,n)=>{if("tool-result"===e.type&&!((0,d.isAnswerCall)(e.toolName)&&(0,d.answerAccepted)(e.output)))if(e.toolName===f.TOOL_NAMES.ask_thursday){let o=q(e.output,4).flatMap(e=>"text"===e.type?[e.text]:[]).join("\n");t.push({...r,id:a(n),kind:"user",text:o})}else if(e.toolName===f.TOOL_NAMES.ask_bot||e.toolName===f.TOOL_NAMES.ask_back){let o=q(e.output,4).flatMap(e=>"text"===e.type?[e.text]:[]).join("\n");t.push({...r,id:a(n),kind:"ask-result",callId:e.toolCallId,text:o})}else t.push(R(r,a(n),e))}),t}return[]}(e,r.get(e.taskId)??"")),n.set(e.taskId,t)}return e.map(e=>(function(e,t){let{pending:r,inputTokens:a,outputTokens:n,...o}=e;return{...o,ask:"waiting"===e.status?{question:e.outcome??"",options:r?.options??[],auto:r?.auto===!0}:null,tokens:{input:a,output:n},lines:t}})(e,n.get(e.id)??[]))}let D=["query","command","prompt","url","path","pattern","request","question","title","name","task","text"],z=(e,t)=>{let r=e[t];return"string"==typeof r&&r.trim()?r:null};function j(e){let t=z(e,"description");return t?(0,p.clip)(t,120):null}function L(e,t){let r=t??{};if("object"!=typeof r||Array.isArray(r))return(0,p.clip)(String(t??""),120);if(e===f.TOOL_NAMES.bash)return j(r)??(0,p.clip)(String(r.command??""),120);if(e===f.TOOL_NAMES.tool_call||e===f.TOOL_NAMES.tool_search){let e=Array.isArray(r.tools)?r.tools.map(String).join(", "):String(r.tool??""),t=r.args&&"object"==typeof r.args?JSON.stringify(r.args):"";return(0,p.clip)([String(r.server??""),e,t].filter(Boolean).join(" "),120)}for(let e of D){let t=z(r,e);if(t)return(0,p.clip)(t,120)}for(let e of Object.keys(r)){let t=z(r,e);if(t)return(0,p.clip)(t,120)}return Object.keys(r).length?(0,p.clip)(JSON.stringify(r),120):""}function R(e,t,r){let a=q(r.output,5);return{...e,id:t,kind:"tool-result",callId:r.toolCallId,name:r.toolName,results:a.slice(0,4),more:a.length>4}}function B(e){return Array.isArray(e)?e.map(e=>String(e).trim()).filter(Boolean):[]}function q(e,t){if(null==e)return[];if("string"==typeof e)return F(e,t);if("object"!=typeof e)return F(String(e),t);switch(e.type){case"text":case"error-text":return F(String(e.value??""),t);case"json":case"error-json":return q(e.value,t);case"execution-denied":return F("Denied.",t);case"content":{if(!Array.isArray(e.value))return[];let r=[];for(let a of e.value){if("text"===a.type&&"string"==typeof a.text){r.push(...F(a.text,t));continue}let e=function(e){let t=String(e.mediaType??"");if(!t.startsWith("image/"))return null;let r=e.data;return"string"==typeof r?`data:${t};base64,${r}`:r?.type==="url"&&r.url?r.url:r?.type==="data"&&"string"==typeof r.data?`data:${t};base64,${r.data}`:null}(a);e&&r.push({type:"image",src:e})}return r}}return Array.isArray(e.sources)?e.sources.map(e=>String(e?.title??"")).filter(Boolean).slice(0,t).map(e=>({type:"text",text:e})):"string"==typeof e.stdout?F(e.stdout||String(e.stderr??""),t):"string"==typeof e.answer?F(e.answer,t):F(JSON.stringify(e),t)}function F(e,t){return e.split("\n").map(e=>e.trim()).filter(Boolean).slice(0,t).map(e=>({type:"text",text:e}))}e.s(["addTaskUsage",0,b,"countStopsSinceSpoken",0,x,"deleteMessages",0,$,"findTask",0,v,"insertTask",0,y,"lastSeq",0,C,"listAutoStoppedTasks",0,E,"listBorrowedTails",0,S,"listInboxTasks",0,w,"listRunningTaskIds",0,T,"listTaskFolders",0,A,"listTaskHistory",0,k,"listThread",0,M,"listWrittenPaths",0,P,"optionsOf",0,B,"resolveTask",0,_,"updateTask",0,g,"upsertMessage",0,O,"writtenPathsIn",0,I]),r()}catch(e){r(e)}},!1),375814,e=>{"use strict";var t=e.i(333925);let r=e=>`text/${e}; charset=utf-8`,a=Object.entries({md:{kind:"markdown",mime:r("markdown")},markdown:{kind:"markdown",mime:r("markdown")},csv:{kind:"csv",mime:r("csv")},json:{kind:"json",mime:"application/json; charset=utf-8"},txt:{kind:"text",mime:r("plain")},log:{kind:"text",mime:r("plain")},html:{kind:"frame",mime:r("html")},htm:{kind:"frame",mime:r("html")},pdf:{kind:"frame",mime:"application/pdf"},png:{kind:"image",mime:"image/png"},jpg:{kind:"image",mime:"image/jpeg"},jpeg:{kind:"image",mime:"image/jpeg"},gif:{kind:"image",mime:"image/gif"},webp:{kind:"image",mime:"image/webp"},svg:{kind:"image",mime:"image/svg+xml"},mp3:{kind:"audio",mime:"audio/mpeg"},wav:{kind:"audio",mime:"audio/wav"},mp4:{kind:"video",mime:"video/mp4"},webm:{kind:"video",mime:"video/webm"},css:{kind:"none",mime:r("css")},js:{kind:"none",mime:r("javascript")},woff2:{kind:"none",mime:"font/woff2"}}).filter(([,e])=>"none"!==e.kind).map(([e])=>e),n=RegExp(String.raw`(?<![\p{L}\p{N}_/:@%-])(?:[\p{L}\p{N}_.@%-]+/)*[\p{L}\p{N}_@%-]+(?:\.[\p{L}\p{N}_-]+)*\.(?:${a.join("|")})\b`,"giu"),o=`${t.PATHS.workspace}/`;e.s(["pathsIn",0,function(e){let t=e.replace(/\b[a-z][\w+.-]*:\/\/\S+/gi," "),r=new Set;for(let e of t.match(n)??[]){let t=function(e){let t,r,a=(r=(t=e.trim()).indexOf(o))>=0?t.slice(r+o.length)||null:t.startsWith("/")||/^[A-Za-z]:/.test(t)||t.split("/").includes("..")?null:t||null;if(!a)return null;let[n,...s]=a.split("/");return s.length&&n.includes(".")?null:a}(e);t&&r.add(t)}return[...r].slice(0,6)}])},691296,679007,548874,e=>{"use strict";var t,r,a,n,o,s=e.i(296194),i=e.i(59994),l=e.i(404482);class u extends Error{constructor(e,t){super(e),this.name="ParseError",this.type=t.type,this.field=t.field,this.value=t.value,this.line=t.line}}function c(e){}function d(e,t,r){return 100===r&&97===e.charCodeAt(t+1)&&116===e.charCodeAt(t+2)&&97===e.charCodeAt(t+3)&&58===e.charCodeAt(t+4)}function f(e,t,r){return 101===r&&118===e.charCodeAt(t+1)&&101===e.charCodeAt(t+2)&&110===e.charCodeAt(t+3)&&116===e.charCodeAt(t+4)&&58===e.charCodeAt(t+5)}class p extends TransformStream{constructor({onError:e,onRetry:t,onComment:r,maxBufferSize:a}={}){let n;super({start(o){n=function(e){if("function"==typeof e)throw TypeError("`config` must be an object, got a function instead. Did you mean `createParser({onEvent: fn})`?");let{onEvent:t=c,onError:r=c,onRetry:a=c,onComment:n,maxBufferSize:o}=e,s=[],i=0,l=!0,p,m="",h=0,y,g=!1;function b(){void 0!==o&&(i+m.length<=o||(g=!0,s.length=0,i=0,p=void 0,m="",h=0,y=void 0,r(new u(`Buffered data exceeded max buffer size of ${o} characters`,{type:"max-buffer-size-exceeded"}))))}function v(e){let r=0;if(-1===e.indexOf("\r")){let a=e.indexOf(`
2
+ `,r);for(;-1!==a;){if(r===a){h>0&&t({id:p,event:y,data:m}),p=void 0,m="",h=0,y=void 0,r=a+1,a=e.indexOf(`
3
+ `,r);continue}let n=e.charCodeAt(r);if(d(e,r,n)){let n=32===e.charCodeAt(r+5)?r+6:r+5,o=e.slice(n,a);if(0===h&&10===e.charCodeAt(a+1)){t({id:p,event:y,data:o}),p=void 0,m="",y=void 0,r=a+2,a=e.indexOf(`
4
+ `,r);continue}m=0===h?o:`${m}
5
+ ${o}`,h++}else f(e,r,n)?y=e.slice(32===e.charCodeAt(r+6)?r+7:r+6,a)||void 0:w(e,r,a);r=a+1,a=e.indexOf(`
6
+ `,r)}return e.slice(r)}for(;r<e.length;){let t=e.indexOf("\r",r),a=e.indexOf(`
7
+ `,r),n=-1;if(-1!==t&&-1!==a?n=t<a?t:a:-1!==t?n=t===e.length-1?-1:t:-1!==a&&(n=a),-1===n)break;w(e,r,n),r=n+1,13===e.charCodeAt(r-1)&&10===e.charCodeAt(r)&&r++}return e.slice(r)}function w(e,r,a){if(r===a)return void(h>0&&t({id:p,event:y,data:m}),p=void 0,m="",h=0,y=void 0);let o=e.charCodeAt(r);if(d(e,r,o)){let t=32===e.charCodeAt(r+5)?r+6:r+5,n=e.slice(t,a);m=0===h?n:`${m}
8
+ ${n}`,h++;return}if(f(e,r,o)){y=e.slice(32===e.charCodeAt(r+6)?r+7:r+6,a)||void 0;return}if(105===o&&100===e.charCodeAt(r+1)&&58===e.charCodeAt(r+2)){let t=e.slice(32===e.charCodeAt(r+3)?r+4:r+3,a);t.includes("\0")||(p=t);return}if(58===o){n&&n(e.slice(r,a).slice(32===e.charCodeAt(r+1)?2:1));return}let s=e.slice(r,a),i=s.indexOf(":");if(-1===i)return void k(s,"",s);let l=s.slice(0,i),u=32===s.charCodeAt(i+1)?2:1;k(l,s.slice(i+u),s)}function k(e,t,n){switch(e){case"event":y=t||void 0;break;case"data":m=0===h?t:`${m}
9
+ ${t}`,h++;break;case"id":t.includes("\0")||(p=t);break;case"retry":/^\d+$/.test(t)?a(parseInt(t,10)):r(new u(`Invalid \`retry\` value: "${t}"`,{type:"invalid-retry",value:t,line:n}));break;default:r(new u(`Unknown field "${e.length>20?`${e.slice(0,20)}\u2026`:e}"`,{type:"unknown-field",field:e,value:t,line:n}))}}return{feed:function(e){if(g)throw Error("Cannot feed parser: it was terminated after exceeding the configured max buffer size. Call `reset()` to resume parsing.");if(l&&(l=!1,239===e.charCodeAt(0)&&187===e.charCodeAt(1)&&191===e.charCodeAt(2)&&(e=e.slice(3))),0===s.length){let t=v(e);""!==t&&(s.push(t),i=t.length),b();return}if(-1===e.indexOf(`
10
+ `)&&-1===e.indexOf("\r")){s.push(e),i+=e.length,b();return}s.push(e);let t=s.join("");s.length=0,i=0;let r=v(t);""!==r&&(s.push(r),i=r.length),b()},reset:function(e={}){if(e.consume&&s.length>0){let e=s.join("");w(e,0,e.length)}l=!0,p=void 0,m="",h=0,y=void 0,s.length=0,i=0,g=!1}}}({onEvent:e=>{o.enqueue(e)},onError(t){"function"==typeof e&&e(t),("terminate"===e||"max-buffer-size-exceeded"===t.type)&&o.error(t)},onRetry:t,onComment:r,maxBufferSize:a})},transform(e){n.feed(e)}})}}e.s(["EventSourceParserStream",0,p],679007);let m=Symbol.for("workflow-serialize"),h=Symbol.for("workflow-deserialize");async function y(e,t){if(null==e)return Promise.resolve();let r=null==t?void 0:t.abortSignal;return new Promise((t,a)=>{if(null==r?void 0:r.aborted)return void a(g());let n=setTimeout(()=>{o(),t()},e),o=()=>{clearTimeout(n),null==r||r.removeEventListener("abort",s)},s=()=>{o(),a(g())};null==r||r.addEventListener("abort",s)})}function g(){return new DOMException("Delay was aborted","AbortError")}e.s(["WORKFLOW_DESERIALIZE",0,h,"WORKFLOW_SERIALIZE",0,m],548874);var b=new TextDecoder;async function v(e){return"string"==typeof e?e:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?b.decode(e):"u">typeof Blob&&e instanceof Blob?e.text():String(e)}async function w(e,{highWaterMark:t=1048576,pollIntervalMs:r=20,abortSignal:a}={}){for(var n;1===e.readyState&&(null!=(n=e.bufferedAmount)?n:0)>t;){if((null==a?void 0:a.aborted)===!0)return;await y(r)}}function k(e){let t=!1;return new ReadableStream({async pull(r){if(!t)try{let{value:t,done:a}=await e.next();a?r.close():r.enqueue(t)}catch(e){r.error(e)}},async cancel(r){if(t=!0,e.return)try{await e.return(r)}catch(e){}}})}var{btoa:T,atob:A}=globalThis;function E(e){let t=A(e.replace(/-/g,"+").replace(/_/g,"/"));return Uint8Array.from(t,e=>e.codePointAt(0))}function x(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCodePoint(e[r]);return T(t)}var S=Symbol.for("vercel.ai.providerStreamError"),I=class{constructor(){this.status={type:"pending"},this._resolve=void 0,this._reject=void 0}get promise(){return this._promise||(this._promise=new Promise((e,t)=>{"resolved"===this.status.type?e(this.status.value):"rejected"===this.status.type&&t(this.status.error),this._resolve=e,this._reject=t})),this._promise}resolve(e){var t;this.status={type:"resolved",value:e},this._promise&&(null==(t=this._resolve)||t.call(this,e))}reject(e){var t;this.status={type:"rejected",error:e},this._promise&&(null==(t=this._reject)||t.call(this,e))}isResolved(){return"resolved"===this.status.type}isRejected(){return"rejected"===this.status.type}isPending(){return"pending"===this.status.type}};function P(e){return Object.fromEntries([...e.headers])}function _(e=globalThis){var t,r,a;return e.window?"runtime/browser":(null==(t=e.navigator)?void 0:t.userAgent)?`runtime/${e.navigator.userAgent.toLowerCase()}`:(null==(a=null==(r=e.process)?void 0:r.versions)?void 0:a.node)?`runtime/node.js/${e.process.version.substring(0)}`:e.EdgeRuntime?"runtime/vercel-edge":"runtime/unknown"}function O(e){return(e instanceof Error||e instanceof DOMException)&&("AbortError"===e.name||"ResponseAborted"===e.name||"TimeoutError"===e.name)}var $=["fetch failed","failed to fetch"],C=new Set(["ConnectionRefused","ConnectionClosed","FailedToOpenSocket","ECONNRESET","ECONNREFUSED","ETIMEDOUT","EPIPE","UND_ERR_SOCKET","UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_CONNECT_TIMEOUT"]);function M({error:e,url:t,requestBodyValues:r}){if(O(e))return e;if(e instanceof TypeError&&$.includes(e.message.toLowerCase())){let a=e.cause;if(null!=a)return new s.APICallError({message:`Cannot connect to API: ${a.message}`,cause:a,url:t,requestBodyValues:r,isRetryable:!0})}let a=function(e){let t=new Set,r=e;for(;r instanceof Error&&!t.has(r);){t.add(r);let e=r;if("string"==typeof e.code&&C.has(e.code))return e;r=r.cause}}(e);return null!=a?new s.APICallError(s.APICallError.isInstance(e)?{message:e.message,cause:e.cause,url:e.url,requestBodyValues:e.requestBodyValues,statusCode:e.statusCode,responseHeaders:e.responseHeaders,responseBody:e.responseBody,data:e.data,isRetryable:!0}:{message:`Cannot connect to API: ${e instanceof Error?e.message:a.message}`,cause:e,url:t,requestBodyValues:r,isRetryable:!0}):e}var N="5.0.36";function j(e){if(null==e)return{};let t={};if(e instanceof Headers)e.forEach((e,r)=>{t[r.toLowerCase()]=e});else for(let[r,a]of(Array.isArray(e)||(e=Object.entries(e)),e))null!=a&&(t[r.toLowerCase()]=a);return t}function L(e,...t){let r=new Headers(j(e)),a=r.get("user-agent")||"";return r.set("user-agent",[a,...t].filter(Boolean).join(" ")),Object.fromEntries(r.entries())}var R=()=>globalThis.fetch,B=async({url:e,headers:t={},failedResponseHandler:r,successfulResponseHandler:a,abortSignal:n,fetch:o=R()})=>{try{let i=await o(e,{method:"DELETE",headers:L(t,`ai-sdk/provider-utils/${N}`,_()),signal:n}),l=P(i);if(!i.ok){let t;try{t=await r({response:i,url:e,requestBodyValues:{}})}catch(t){if(O(t)||s.APICallError.isInstance(t))throw t;throw new s.APICallError({message:"Failed to process error response",cause:t,statusCode:i.status,url:e,responseHeaders:l,requestBodyValues:{}})}throw t.value}try{return await a({response:i,url:e,requestBodyValues:{}})}catch(t){if(t instanceof Error&&(O(t)||s.APICallError.isInstance(t)))throw t;throw new s.APICallError({message:"Failed to process successful response",cause:t,statusCode:i.status,url:e,responseHeaders:l,requestBodyValues:{}})}}catch(t){throw M({error:t,url:e,requestBodyValues:{}})}},q=[{mediaType:"image/gif",bytesPrefix:[71,73,70]},{mediaType:"image/png",bytesPrefix:[137,80,78,71]},{mediaType:"image/jpeg",bytesPrefix:[255,216]},{mediaType:"image/webp",bytesPrefix:[82,73,70,70,null,null,null,null,87,69,66,80]},{mediaType:"image/bmp",bytesPrefix:[66,77]},{mediaType:"image/tiff",bytesPrefix:[73,73,42,0]},{mediaType:"image/tiff",bytesPrefix:[77,77,0,42]},{mediaType:"image/avif",bytesPrefix:[0,0,0,32,102,116,121,112,97,118,105,102]},{mediaType:"image/heic",bytesPrefix:[0,0,0,32,102,116,121,112,104,101,105,99]}],F=[{mediaType:"application/pdf",bytesPrefix:[37,80,68,70]}],Z=[{mediaType:"audio/mpeg",bytesPrefix:[255,251]},{mediaType:"audio/mpeg",bytesPrefix:[255,250]},{mediaType:"audio/mpeg",bytesPrefix:[255,243]},{mediaType:"audio/mpeg",bytesPrefix:[255,242]},{mediaType:"audio/mpeg",bytesPrefix:[255,227]},{mediaType:"audio/mpeg",bytesPrefix:[255,226]},{mediaType:"audio/wav",bytesPrefix:[82,73,70,70,null,null,null,null,87,65,86,69]},{mediaType:"audio/ogg",bytesPrefix:[79,103,103,83]},{mediaType:"audio/flac",bytesPrefix:[102,76,97,67]},{mediaType:"audio/aac",bytesPrefix:[64,21,0,0]},{mediaType:"audio/webm",bytesPrefix:[26,69,223,163]}],U=[{mediaType:"video/mp4",bytesPrefix:[0,0,0,null,102,116,121,112]},{mediaType:"video/webm",bytesPrefix:[26,69,223,163]},{mediaType:"video/quicktime",bytesPrefix:[0,0,0,20,102,116,121,112,113,116]},{mediaType:"video/x-msvideo",bytesPrefix:[82,73,70,70]}];function D(e,t){if("string"!=typeof e)return e.length>t?e.subarray(0,t):e;let r=4*Math.ceil(t/3),a=E(e.substring(0,Math.min(e.length,r)));return a.length>t?a.subarray(0,t):a}function z({data:e,signatures:t}){var r,a;let n,o=D(e,18);for(let s of((r=o).length>10&&73===r[0]&&68===r[1]&&51===r[2]&&(n=(127&(a=D(e,131084))[6])<<21|(127&a[7])<<14|(127&a[8])<<7|127&a[9],o=a.subarray(n+10)),t))if(o.length>=s.bytesPrefix.length&&s.bytesPrefix.every((e,t)=>null===e||o[t]===e))return s.mediaType}var V={image:q,audio:[...Z,{mediaType:"audio/mp4",bytesPrefix:[0,0,0,null,102,116,121,112]}],video:U,application:F};function W({data:e,topLevelType:t}){if(void 0===t)return z({data:e,signatures:[...q,...F,...Z,...U]});let r=V[t];if(void 0!==r)return z({data:e,signatures:r})}function J(e){let t=e.indexOf("/");return -1===t?e:e.substring(0,t)}function H(e){let t=e.indexOf("/");if(-1===t)return!1;let r=e.substring(t+1);return r.length>0&&"*"!==r}async function K(e){var t;try{await (null==(t=e.body)?void 0:t.cancel())}catch(e){}}var G="AI_DownloadError",X=`vercel.ai.error.${G}`,Y=Symbol.for(X),Q=class extends(r=s.AISDKError,t=Y,r){constructor({url:e,statusCode:r,statusText:a,cause:n,message:o=null==n?`Failed to download ${e}: ${r} ${a}`:`Failed to download ${e}: ${n}`}){super({name:G,message:o,cause:n}),this[t]=!0,this.url=e,this.statusCode=r,this.statusText=a}static isInstance(e){return s.AISDKError.hasMarker(e,X)}};function ee(e,t){try{return new URL(e).origin===new URL(t).origin}catch(e){return!1}}function et(e){let t;try{t=new URL(e)}catch(t){throw new Q({url:e,message:`Invalid URL: ${e}`})}if("data:"===t.protocol)return;if("http:"!==t.protocol&&"https:"!==t.protocol)throw new Q({url:e,message:`URL scheme must be http, https, or data, got ${t.protocol}`});let r=t.hostname.toLowerCase().replace(/\.+$/,"");if(!r)throw new Q({url:e,message:"URL must have a hostname"});if("localhost"===r||r.endsWith(".local")||r.endsWith(".localhost"))throw new Q({url:e,message:`URL with hostname ${r} is not allowed`});if(r.startsWith("[")&&r.endsWith("]")){if(en(r.slice(1,-1)))throw new Q({url:e,message:`URL with IPv6 address ${r} is not allowed`});return}if(er(r)){if(ea(r))throw new Q({url:e,message:`URL with IP address ${r} is not allowed`});return}}function er(e){let t=e.split(".");return 4===t.length&&t.every(e=>{let t=Number(e);return Number.isInteger(t)&&t>=0&&t<=255&&String(t)===e})}function ea(e){let[t,r,a]=e.split(".").map(Number);return 0===t||10===t||100===t&&r>=64&&r<=127||127===t||169===t&&254===r||172===t&&r>=16&&r<=31||192===t&&0===r&&0===a||192===t&&0===r&&2===a||192===t&&168===r||198===t&&(18===r||19===r)||198===t&&51===r&&100===a||203===t&&0===r&&113===a||t>=224||!1}function en(e){let t=function(e){let t=e.toLowerCase(),r=t.indexOf("%");-1!==r&&(t=t.slice(0,r));let a=t.split("::");if(a.length>2)return null;let n=e=>{if(""===e)return[];let t=[],r=e.split(":");for(let e=0;e<r.length;e++){let a=r[e];if(a.includes(".")){if(e!==r.length-1||!er(a))return null;let[n,o,s,i]=a.split(".").map(Number);t.push(n<<8|o,s<<8|i);continue}if(!/^[0-9a-f]{1,4}$/.test(a))return null;t.push(parseInt(a,16))}return t},o=n(a[0]);if(null===o)return null;if(2===a.length){let e=n(a[1]);if(null===e)return null;let t=8-o.length-e.length;return t<0?null:[...o,...Array(t).fill(0),...e]}return 8===o.length?o:null}(e);if(null===t)return!0;let r=e=>t.slice(0,e).every(e=>0===e);if(r(7)&&(0===t[7]||1===t[7])||(65024&t[0])==64512||(65472&t[0])==65152||(65472&t[0])==65216||(65280&t[0])==65280||8193===t[0]&&3512===t[1]||16383===t[0]&&(61440&t[1])==0)return!0;if(r(6)||r(5)&&65535===t[5]||r(4)&&65535===t[4]&&0===t[5]||100===t[0]&&65435===t[1]&&0===t[2]&&0===t[3]&&0===t[4]&&0===t[5]||100===t[0]&&65435===t[1]&&1===t[2]){let e=t[6]>>8&255,r=255&t[6],a=t[7]>>8&255,n=255&t[7];return ea(`${e}.${r}.${a}.${n}`)}return!1}var eo=globalThis.fetch,es=function(e){if("function"!=typeof e)return!1;let t=Function.prototype.toString.call(e);return t.includes("internal/deps/undici")||t.includes("lazy loading of undici")}(eo);async function ei(){var e,t;let r;return(null==(e=null==(r=globalThis.process)?void 0:r.release)?void 0:e.name)==="node"&&(null==(t=r.versions)?void 0:t.bun)==null&&es&&globalThis.fetch===eo?null!=a?a:a=Promise.resolve().then(el):globalThis.fetch}function el(){let{createRequire:e}=eu("node:module"),{lookup:t}=eu("node:dns"),{Agent:r,fetch:a}=e(function e(){let t=Error.prepareStackTrace;try{Error.prepareStackTrace=(e,t)=>t;let t=Error("Capture current module path");Error.captureStackTrace(t,e);let[r]=t.stack,a=null==r?void 0:r.getFileName();if(null==a)throw Error("Unable to determine the current module path");return a}finally{Error.prepareStackTrace=t}}())("undici"),n=new r({connect:{lookup:(e,r,a)=>{t(e,{...r,all:!0},(t,n)=>{if(t)return void a(t);try{let[t]=n;if(null==t)throw Error(`Hostname ${e} did not resolve to an address`);for(let{address:t,family:r}of n)!function({address:e,family:t,hostname:r}){if(4===t?!er(e)||ea(e):6!==t||en(e))throw new Q({url:r,message:`Hostname ${r} resolved to disallowed IP address ${e}`})}({address:t,family:r,hostname:e});!0===r.all?a(null,n):a(null,t.address,t.family)}catch(e){a(e instanceof Error?e:Error(String(e)))}})}}});return(e,t)=>a(e,{...t,dispatcher:n})}function eu(e){var t;let r=globalThis.process,a=null==(t=null==r?void 0:r.getBuiltinModule)?void 0:t.call(r,e);if(null==a)throw Error(`Node.js built-in module ${e} is unavailable`);return a}var ec=["connection","keep-alive","te","trailer","transfer-encoding","upgrade","host","forwarded","proxy-authorization","via","x-forwarded-for","x-forwarded-host","x-forwarded-proto","x-real-ip","metadata","metadata-flavor","x-aws-ec2-metadata-token","x-metadata-token","cookie","set-cookie"],ed=new Set([301,302,303,307,308]);async function ef({url:e,headers:t,abortSignal:r,maxRedirects:a=10,fetch:n,trustedOrigin:o}){let s=void 0===t?void 0:function(e){let t=new Headers(e);for(let e of ec)t.delete(e);return t}(t),i=e=>{let t={signal:r,redirect:e};return void 0!==s&&(t.headers=new Headers(s)),t},l=e;for(let t=0;t<=a;t++){let t=void 0!==o&&ee(l,o);t||et(l);let r=null!=n?n:t?globalThis.fetch:await ei(),a=await r(l,i("manual"));if("opaqueredirect"===a.type){if(!function(e=globalThis){return null!=e.window}())throw new Q({url:e,message:`Redirect from ${l} could not be validated and was blocked`});return await r(l,i("follow"))}let u=a.headers.get("location");if(ed.has(a.status)&&u){await K(a);let e=new URL(u,l).toString();if(void 0!==s&&!ee(e,l)){let e=s.get("user-agent");s=new Headers(null==e?void 0:{"user-agent":e})}l=e;continue}return a}throw new Q({url:e,message:`Too many redirects (max ${a})`})}async function ep({response:e,url:t,maxBytes:r=0x80000000}){let a=e.headers.get("content-length");if(null!=a){let n=parseInt(a,10);if(!isNaN(n)&&n>r)throw await K(e),new Q({url:t,message:`Download of ${t} exceeded maximum size of ${r} bytes (Content-Length: ${n}).`})}let n=e.body;if(null==n)return new Uint8Array(0);let o=n.getReader(),s=[],i=0;try{for(;;){let{done:e,value:a}=await o.read();if(e)break;if((i+=a.length)>r)throw new Q({url:t,message:`Download of ${t} exceeded maximum size of ${r} bytes.`});s.push(a)}}finally{try{await o.cancel()}catch(e){}finally{o.releaseLock()}}let l=new Uint8Array(i),u=0;for(let e of s)l.set(e,u),u+=e.length;return l}async function em(e,t){var r,a;try{let n=await ef({url:e,abortSignal:null==t?void 0:t.abortSignal});if(!n.ok)throw await K(n),new Q({url:e,statusCode:n.status,statusText:n.statusText});let o=await ep({response:n,url:e,maxBytes:null!=(r=null==t?void 0:t.maxBytes)?r:0x80000000}),s=null!=(a=n.headers.get("content-type"))?a:void 0;return new Blob([o],s?{type:s}:void 0)}catch(t){if(Q.isInstance(t))throw t;throw new Q({url:e,cause:t})}}var eh=Symbol.for("vercel.ai.embeddingModel.maxInputBytesPerCall"),ey=({prefix:e,size:t=16,alphabet:r="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:a="-"}={})=>{let n=()=>{let e=r.length,a=Array(t);for(let n=0;n<t;n++)a[n]=r[Math.random()*e|0];return a.join("")};if(null==e)return n;if(r.includes(a))throw new s.InvalidArgumentError({argument:"separator",message:`The separator "${a}" must not be part of the alphabet "${r}".`});return()=>`${e}${a}${n()}`},eg=ey(),eb=async({url:e,headers:t={},successfulResponseHandler:r,failedResponseHandler:a,abortSignal:n,fetch:o,validateUrl:i,credentialedOrigin:l,trustedOrigin:u})=>{try{let c=null!=o?o:globalThis.fetch,d=void 0===l||ee(e,l)?t:{},f=L(d,`ai-sdk/provider-utils/${N}`,_()),p=i?await ef({url:e,headers:f,abortSignal:n,fetch:o,trustedOrigin:u}):await c(e,{method:"GET",headers:f,signal:n}),m=P(p);if(!p.ok){let t;try{t=await a({response:p,url:e,requestBodyValues:{}})}catch(t){if(O(t)||s.APICallError.isInstance(t))throw t;throw new s.APICallError({message:"Failed to process error response",cause:t,statusCode:p.status,url:e,responseHeaders:m,requestBodyValues:{}})}throw t.value}try{return await r({response:p,url:e,requestBodyValues:{}})}catch(t){if(t instanceof Error&&(O(t)||s.APICallError.isInstance(t)))throw t;throw new s.APICallError({message:"Failed to process successful response",cause:t,statusCode:p.status,url:e,responseHeaders:m,requestBodyValues:{}})}}catch(t){throw M({error:t,url:e,requestBodyValues:{}})}};function ev(e){var t,r;return null!=(r=null==(t=globalThis.Buffer)?void 0:t.isBuffer(e))&&r}function ew(e){return null!=e&&"object"==typeof e&&!Array.isArray(e)}var ek={minimal:.02,low:.1,medium:.3,high:.6,xhigh:.9};function eT(e){return null!=e&&Number.isSafeInteger(e)&&e>=0}var eA=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,eE=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/;function ex(e){let t=JSON.parse(e);return null===t||"object"!=typeof t||!1===eA.test(e)&&!1===eE.test(e)?t:function(e){let t=[e];for(;t.length;){let e=t;for(let r of(t=[],e)){if(Object.prototype.hasOwnProperty.call(r,"__proto__")||Object.prototype.hasOwnProperty.call(r,"constructor")&&null!==r.constructor&&"object"==typeof r.constructor&&Object.prototype.hasOwnProperty.call(r.constructor,"prototype"))throw SyntaxError("Object contains forbidden prototype property");for(let e in r){let a=r[e];a&&"object"==typeof a&&t.push(a)}}}return e}(t)}function eS(e){let{stackTraceLimit:t}=Error;try{Error.stackTraceLimit=0}catch(t){return ex(e)}try{return ex(e)}finally{Error.stackTraceLimit=t}}function eI(e){if("object"===e.type||Array.isArray(e.type)&&e.type.includes("object")){let{additionalProperties:t}=e;e.additionalProperties=null!=t&&"boolean"!=typeof t&&eP(t);let{properties:r}=e;if(null!=r)for(let e of Object.keys(r))r[e]=eP(r[e])}null!=e.items&&(e.items=Array.isArray(e.items)?e.items.map(eP):eP(e.items)),null!=e.anyOf&&(e.anyOf=e.anyOf.map(eP)),null!=e.allOf&&(e.allOf=e.allOf.map(eP)),null!=e.oneOf&&(e.oneOf=e.oneOf.map(eP));let{definitions:t}=e;if(null!=t)for(let e of Object.keys(t))t[e]=eP(t[e]);return e}function eP(e){return"boolean"==typeof e?e:eI(e)}var e_=Symbol("Let zodToJsonSchema decide on which parser to use"),eO={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",strictUnions:!1,definitions:{},errorMessages:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"};function e$(e,t){return eY(e.type._def,t)}var eC=void 0,eM=/^[cC][^\s-]{8,}$/,eN=/^[0-9a-z]+$/,ej=/^[0-9A-HJKMNP-TV-Z]{26}$/,eL=/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,eR=()=>(void 0===eC&&(eC=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),eC),eB=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,eq=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,eF=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,eZ=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,eU=/^[a-zA-Z0-9_-]{21}$/,eD=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/;function ez(e,t){let r={type:"string"};if(e.checks)for(let a of e.checks)switch(a.kind){case"min":r.minLength="number"==typeof r.minLength?Math.max(r.minLength,a.value):a.value;break;case"max":r.maxLength="number"==typeof r.maxLength?Math.min(r.maxLength,a.value):a.value;break;case"email":switch(t.emailStrategy){case"format:email":eJ(r,"email",a.message,t);break;case"format:idn-email":eJ(r,"idn-email",a.message,t);break;case"pattern:zod":eH(r,eL,a.message,t)}break;case"url":eJ(r,"uri",a.message,t);break;case"uuid":eJ(r,"uuid",a.message,t);break;case"regex":eH(r,a.regex,a.message,t);break;case"cuid":eH(r,eM,a.message,t);break;case"cuid2":eH(r,eN,a.message,t);break;case"startsWith":eH(r,RegExp(`^${eV(a.value,t)}`),a.message,t);break;case"endsWith":eH(r,RegExp(`${eV(a.value,t)}$`),a.message,t);break;case"datetime":eJ(r,"date-time",a.message,t);break;case"date":eJ(r,"date",a.message,t);break;case"time":eJ(r,"time",a.message,t);break;case"duration":eJ(r,"duration",a.message,t);break;case"length":r.minLength="number"==typeof r.minLength?Math.max(r.minLength,a.value):a.value,r.maxLength="number"==typeof r.maxLength?Math.min(r.maxLength,a.value):a.value;break;case"includes":eH(r,RegExp(eV(a.value,t)),a.message,t);break;case"ip":"v6"!==a.version&&eJ(r,"ipv4",a.message,t),"v4"!==a.version&&eJ(r,"ipv6",a.message,t);break;case"base64url":eH(r,eZ,a.message,t);break;case"jwt":eH(r,eD,a.message,t);break;case"cidr":"v6"!==a.version&&eH(r,eB,a.message,t),"v4"!==a.version&&eH(r,eq,a.message,t);break;case"emoji":eH(r,eR(),a.message,t);break;case"ulid":eH(r,ej,a.message,t);break;case"base64":switch(t.base64Strategy){case"format:binary":eJ(r,"binary",a.message,t);break;case"contentEncoding:base64":r.contentEncoding="base64";break;case"pattern:zod":eH(r,eF,a.message,t)}break;case"nanoid":eH(r,eU,a.message,t)}return r}function eV(e,t){return"escape"===t.patternStrategy?function(e){let t="";for(let r=0;r<e.length;r++)eW.has(e[r])||(t+="\\"),t+=e[r];return t}(e):e}var eW=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function eJ(e,t,r,a){var n;e.format||(null==(n=e.anyOf)?void 0:n.some(e=>e.format))?(e.anyOf||(e.anyOf=[]),e.format&&(e.anyOf.push({format:e.format}),delete e.format),e.anyOf.push({format:t,...r&&a.errorMessages&&{errorMessage:{format:r}}})):e.format=t}function eH(e,t,r,a){var n;e.pattern||(null==(n=e.allOf)?void 0:n.some(e=>e.pattern))?(e.allOf||(e.allOf=[]),e.pattern&&(e.allOf.push({pattern:e.pattern}),delete e.pattern),e.allOf.push({pattern:eK(t,a),...r&&a.errorMessages&&{errorMessage:{pattern:r}}})):e.pattern=eK(t,a)}function eK(e,t){var r;if(!t.applyRegexFlags||!e.flags)return e.source;let a={i:e.flags.includes("i"),m:e.flags.includes("m"),s:e.flags.includes("s")},n=a.i?e.source.toLowerCase():e.source,o="",s=!1,i=!1,l=!1;for(let e=0;e<n.length;e++){if(s){o+=n[e],s=!1;continue}if(a.i){if(i){if(n[e].match(/[a-z]/)){l?(o+=n[e],o+=`${n[e-2]}-${n[e]}`.toUpperCase(),l=!1):"-"===n[e+1]&&(null==(r=n[e+2])?void 0:r.match(/[a-z]/))?(o+=n[e],l=!0):o+=`${n[e]}${n[e].toUpperCase()}`;continue}}else if(n[e].match(/[a-z]/)){o+=`[${n[e]}${n[e].toUpperCase()}]`;continue}}if(a.m){if("^"===n[e]){o+=`(^|(?<=[\r
11
+ ]))`;continue}else if("$"===n[e]){o+=`($|(?=[\r
12
+ ]))`;continue}}if(a.s&&"."===n[e]){o+=i?`${n[e]}\r
13
+ `:`[${n[e]}\r
14
+ ]`;continue}o+=n[e],"\\"===n[e]?s=!0:i&&"]"===n[e]?i=!1:i||"["!==n[e]||(i=!0)}try{new RegExp(o)}catch(r){return console.warn(`Could not convert regex pattern at ${t.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return o}function eG(e,t){var r,a,n,o,s,i;let l={type:"object",additionalProperties:null!=(r=eY(e.valueType._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]}))?r:t.allowedAdditionalProperties};if((null==(a=e.keyType)?void 0:a._def.typeName)==="ZodString"&&(null==(n=e.keyType._def.checks)?void 0:n.length)){let{type:r,...a}=ez(e.keyType._def,t);return{...l,propertyNames:a}}if((null==(o=e.keyType)?void 0:o._def.typeName)==="ZodEnum")return{...l,propertyNames:{enum:e.keyType._def.values}};if((null==(s=e.keyType)?void 0:s._def.typeName)==="ZodBranded"&&"ZodString"===e.keyType._def.type._def.typeName&&(null==(i=e.keyType._def.type._def.checks)?void 0:i.length)){let{type:r,...a}=e$(e.keyType._def,t);return{...l,propertyNames:a}}return l}var eX={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function eY(e,t,r=!1){var a;let n=t.seen.get(e);if(t.override){let o=null==(a=t.override)?void 0:a.call(t,e,t,n,r);if(o!==e_)return o}if(n&&!r){let e=eQ(n,t);if(void 0!==e)return e}let o={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,o);let s=((e,t,r)=>{var a,n,o,s,i,l;switch(t){case"ZodString":return ez(e,r);case"ZodNumber":let u={type:"number"};if(!e.checks)return u;for(let t of e.checks)switch(t.kind){case"int":u.type="integer";break;case"min":t.inclusive?u.minimum=t.value:u.exclusiveMinimum=t.value;break;case"max":t.inclusive?u.maximum=t.value:u.exclusiveMaximum=t.value;break;case"multipleOf":u.multipleOf=t.value}return u;case"ZodObject":return function(e,t){let r={type:"object",properties:{}},a=[],n=e.shape();for(let e in n){let o=n[e];if(void 0===o||void 0===o._def)continue;let s=function(e){try{return e.isOptional()}catch(e){return!0}}(o),i=eY(o._def,{...t,currentPath:[...t.currentPath,"properties",e],propertyPath:[...t.currentPath,"properties",e]});void 0!==i&&(r.properties[e]=i,s||a.push(e))}a.length&&(r.required=a);let o=function(e,t){if("ZodNever"!==e.catchall._def.typeName)return eY(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]});switch(e.unknownKeys){case"passthrough":return t.allowedAdditionalProperties;case"strict":return t.rejectedAdditionalProperties;case"strip":return"strict"===t.removeAdditionalStrategy?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}(e,t);return void 0!==o&&(r.additionalProperties=o),r}(e,r);case"ZodBigInt":let c={type:"integer",format:"int64"};if(!e.checks)return c;for(let t of e.checks)switch(t.kind){case"min":t.inclusive?c.minimum=t.value:c.exclusiveMinimum=t.value;break;case"max":t.inclusive?c.maximum=t.value:c.exclusiveMaximum=t.value;break;case"multipleOf":c.multipleOf=t.value}return c;case"ZodBoolean":return{type:"boolean"};case"ZodDate":return function e(t,r,a){let n=null!=a?a:r.dateStrategy;if(Array.isArray(n))return{anyOf:n.map(a=>e(t,r,a))};switch(n){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":var o=t;let s={type:"integer",format:"unix-time"};for(let e of o.checks)switch(e.kind){case"min":s.minimum=e.value;break;case"max":s.maximum=e.value}return s}}(e,r);case"ZodUndefined":case"ZodNaN":case"ZodNever":return{not:{}};case"ZodNull":return{type:"null"};case"ZodArray":let d;return d={type:"array"},(null==(o=e.type)?void 0:o._def)&&(null==(i=null==(s=e.type)?void 0:s._def)?void 0:i.typeName)!=="ZodAny"&&(d.items=eY(e.type._def,{...r,currentPath:[...r.currentPath,"items"]})),e.minLength&&(d.minItems=e.minLength.value),e.maxLength&&(d.maxItems=e.maxLength.value),e.exactLength&&(d.minItems=e.exactLength.value,d.maxItems=e.exactLength.value),d;case"ZodUnion":case"ZodDiscriminatedUnion":let f,p=e.options instanceof Map?Array.from(e.options.values()):e.options;if(p.every(e=>e._def.typeName in eX&&(!e._def.checks||!e._def.checks.length))){let e=p.reduce((e,t)=>{let r=eX[t._def.typeName];return r&&!e.includes(r)?[...e,r]:e},[]);return{type:e.length>1?e:e[0]}}if(p.every(e=>"ZodLiteral"===e._def.typeName&&!e.description)){let e=p.reduce((e,t)=>{let r=typeof t._def.value;switch(r){case"string":case"number":case"boolean":return[...e,r];case"bigint":return[...e,"integer"];case"object":if(null===t._def.value)return[...e,"null"];default:return e}},[]);if(e.length===p.length){let t=e.filter((e,t,r)=>r.indexOf(e)===t);return{type:t.length>1?t:t[0],enum:p.reduce((e,t)=>e.includes(t._def.value)?e:[...e,t._def.value],[])}}}else if(p.every(e=>"ZodEnum"===e._def.typeName))return{type:"string",enum:p.reduce((e,t)=>[...e,...t._def.values.filter(t=>!e.includes(t))],[])};return a=e,n=r,(f=(a.options instanceof Map?Array.from(a.options.values()):a.options).map((e,t)=>eY(e._def,{...n,currentPath:[...n.currentPath,"anyOf",`${t}`]})).filter(e=>!!e&&(!n.strictUnions||"object"==typeof e&&Object.keys(e).length>0))).length?{anyOf:f}:void 0;case"ZodIntersection":let m,h;return m=[eY(e.left._def,{...r,currentPath:[...r.currentPath,"allOf","0"]}),eY(e.right._def,{...r,currentPath:[...r.currentPath,"allOf","1"]})].filter(e=>!!e),h=[],m.forEach(e=>{if((!("type"in e)||"string"!==e.type)&&"allOf"in e)h.push(...e.allOf);else{let t=e;if("additionalProperties"in e&&!1===e.additionalProperties){let{additionalProperties:r,...a}=e;t=a}h.push(t)}}),h.length?{allOf:h}:void 0;case"ZodTuple":return e.rest?{type:"array",minItems:e.items.length,items:e.items.map((e,t)=>eY(e._def,{...r,currentPath:[...r.currentPath,"items",`${t}`]})).reduce((e,t)=>void 0===t?e:[...e,t],[]),additionalItems:eY(e.rest._def,{...r,currentPath:[...r.currentPath,"additionalItems"]})}:{type:"array",minItems:e.items.length,maxItems:e.items.length,items:e.items.map((e,t)=>eY(e._def,{...r,currentPath:[...r.currentPath,"items",`${t}`]})).reduce((e,t)=>void 0===t?e:[...e,t],[])};case"ZodRecord":return eG(e,r);case"ZodLiteral":let y;return"bigint"!=(y=typeof e.value)&&"number"!==y&&"boolean"!==y&&"string"!==y?{type:Array.isArray(e.value)?"array":"object"}:{type:"bigint"===y?"integer":y,const:e.value};case"ZodEnum":return{type:"string",enum:Array.from(e.values)};case"ZodNativeEnum":let g,b,v;return g=e.values,{type:1===(v=Array.from(new Set((b=Object.keys(e.values).filter(e=>"number"!=typeof g[g[e]]).map(e=>g[e])).map(e=>typeof e)))).length?"string"===v[0]?"string":"number":["string","number"],enum:b};case"ZodNullable":if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return{type:[eX[e.innerType._def.typeName],"null"]};let w=eY(e.innerType._def,{...r,currentPath:[...r.currentPath,"anyOf","0"]});return w&&{anyOf:[w,{type:"null"}]};case"ZodOptional":if(r.currentPath.toString()===(null==(l=r.propertyPath)?void 0:l.toString()))return eY(e.innerType._def,r);let k=eY(e.innerType._def,{...r,currentPath:[...r.currentPath,"anyOf","1"]});return k?{anyOf:[{not:{}},k]}:{};case"ZodMap":if("record"===r.mapStrategy)return eG(e,r);return{type:"array",maxItems:125,items:{type:"array",items:[eY(e.keyType._def,{...r,currentPath:[...r.currentPath,"items","items","0"]})||{},eY(e.valueType._def,{...r,currentPath:[...r.currentPath,"items","items","1"]})||{}],minItems:2,maxItems:2}};case"ZodSet":let T;return T={type:"array",uniqueItems:!0,items:eY(e.valueType._def,{...r,currentPath:[...r.currentPath,"items"]})},e.minSize&&(T.minItems=e.minSize.value),e.maxSize&&(T.maxItems=e.maxSize.value),T;case"ZodLazy":return()=>e.getter()._def;case"ZodPromise":return eY(e.type._def,r);case"ZodEffects":return"input"===r.effectStrategy?eY(e.schema._def,r):{};case"ZodAny":case"ZodUnknown":return{};case"ZodDefault":return{...eY(e.innerType._def,r),default:e.defaultValue()};case"ZodBranded":return e$(e,r);case"ZodReadonly":case"ZodCatch":return eY(e.innerType._def,r);case"ZodPipeline":if("input"===r.pipeStrategy)return eY(e.in._def,r);if("output"===r.pipeStrategy)return eY(e.out._def,r);let A=eY(e.in._def,{...r,currentPath:[...r.currentPath,"allOf","0"]}),E=eY(e.out._def,{...r,currentPath:[...r.currentPath,"allOf",A?"1":"0"]});return{allOf:[A,E].filter(e=>void 0!==e)};default:return}})(e,e.typeName,t),i="function"==typeof s?eY(s(),t):s;if(i&&e0(e,t,i),t.postProcess){let r=t.postProcess(i,e,t);return o.jsonSchema=i,r}return o.jsonSchema=i,i}var eQ=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:((e,t)=>{let r=0;for(;r<e.length&&r<t.length&&e[r]===t[r];r++);return[(e.length-r).toString(),...t.slice(r)].join("/")})(t.currentPath,e.path)};case"none":case"seen":if(e.path.length<t.currentPath.length&&e.path.every((e,r)=>t.currentPath[r]===e))return console.warn(`Recursive reference detected at ${t.currentPath.join("/")}! Defaulting to any`),{};return"seen"===t.$refStrategy?{}:void 0}},e0=(e,t,r)=>(e.description&&(r.description=e.description),r),e1=Symbol.for("vercel.ai.schema");function e2(e,{validate:t}={}){return{[e1]:!0,_type:void 0,get jsonSchema(){return"function"==typeof e&&(e=e()),e},validate:t}}function e4(e){var t;return null==e?e2({type:"object",properties:{},additionalProperties:!1}):"object"==typeof e&&null!==e&&e1 in e&&!0===e[e1]&&"jsonSchema"in e&&"validate"in e?e:"~standard"in e?"zod"===e["~standard"].vendor?e6(e):(t=e,e2(()=>{if(null==t["~standard"].jsonSchema)throw Error(`Standard schema vendor '${t["~standard"].vendor}' does not support JSON Schema conversion.`);return eI(t["~standard"].jsonSchema.input({target:"draft-07"}))},{validate:async e=>{let r=await t["~standard"].validate(e);return"value"in r?{success:!0,value:r.value}:{success:!1,error:new s.TypeValidationError({value:e,cause:r.issues})}}})):e()}function e6(e,t){var r,a;let n;if("_zod"in e){let a;return a=null!=(r=null==t?void 0:t.useReferences)&&r,e2(()=>eI((0,l.toJSONSchema)(e,{target:"draft-7",io:"input",reused:a?"ref":"inline"})),{validate:async t=>{let r=await (0,i.safeParseAsync)(e,t);return r.success?{success:!0,value:r.data}:{success:!1,error:r.error}}})}return n=null!=(a=null==t?void 0:t.useReferences)&&a,e2(()=>((e,t)=>{var r;let a,n,o=(n=void 0!==(a="string"==typeof t?{...eO,name:t}:{...eO,...t}).name?[...a.basePath,a.definitionPath,a.name]:a.basePath,{...a,currentPath:n,propertyPath:void 0,seen:new Map(Object.entries(a.definitions).map(([e,t])=>[t._def,{def:t._def,path:[...a.basePath,a.definitionPath,e],jsonSchema:void 0}]))}),s="object"==typeof t&&t.definitions?Object.entries(t.definitions).reduce((e,[t,r])=>{var a;return{...e,[t]:null!=(a=eY(r._def,{...o,currentPath:[...o.basePath,o.definitionPath,t]},!0))?a:{}}},{}):void 0,i="string"==typeof t?t:(null==t?void 0:t.nameStrategy)==="title"||null==t?void 0:t.name,l=null!=(r=eY(e._def,void 0===i?o:{...o,currentPath:[...o.basePath,o.definitionPath,i]},!1))?r:{},u="object"==typeof t&&void 0!==t.name&&"title"===t.nameStrategy?t.name:void 0;void 0!==u&&(l.title=u);let c=void 0===i?s?{...l,[o.definitionPath]:s}:l:{$ref:[..."relative"===o.$refStrategy?[]:o.basePath,o.definitionPath,i].join("/"),[o.definitionPath]:{...s,[i]:l}};return c.$schema="http://json-schema.org/draft-07/schema#",c})(e,{$refStrategy:n?"root":"none"}),{validate:async t=>{let r=await e.safeParseAsync(t);return r.success?{success:!0,value:r.data}:{success:!1,error:r.error}}})}async function e9({value:e,schema:t,context:r}){let a=await e5({value:e,schema:t,context:r});if(!a.success)throw s.TypeValidationError.wrap({value:e,cause:a.error,context:r});return a.value}async function e5({value:e,schema:t,context:r}){let a=e4(t);try{if(null==a.validate)return{success:!0,value:e,rawValue:e};let t=await a.validate(e);if(t.success)return{success:!0,value:t.value,rawValue:e};return{success:!1,error:s.TypeValidationError.wrap({value:e,cause:t.error,context:r}),rawValue:e}}catch(t){return{success:!1,error:s.TypeValidationError.wrap({value:e,cause:t,context:r}),rawValue:e}}}async function e3({text:e,schema:t}){try{let r=eS(e);if(null==t)return r;return await e9({value:r,schema:t})}catch(t){if(s.JSONParseError.isInstance(t)||s.TypeValidationError.isInstance(t))throw t;throw new s.JSONParseError({text:e,cause:t})}}async function e7({text:e,schema:t}){try{let r=eS(e);if(null==t)return{success:!0,value:r,rawValue:r};return await e5({value:r,schema:t})}catch(t){return{success:!1,error:s.JSONParseError.isInstance(t)?t:new s.JSONParseError({text:e,cause:t}),rawValue:void 0}}}function e8({stream:e,schema:t}){return e.pipeThrough(new TextDecoderStream).pipeThrough(new p).pipeThrough(new TransformStream({async transform({data:e},r){"[DONE]"!==e&&r.enqueue(await e7({text:e,schema:t}))}}))}async function te({provider:e,providerOptions:t,schema:r}){if((null==t?void 0:t[e])==null)return;let a=await e5({value:t[e],schema:r});if(!a.success)throw new s.InvalidArgumentError({argument:"providerOptions",message:`invalid ${e} provider options`,cause:a.error});return a.value}var tt=()=>globalThis.fetch;function tr(e){return e.replace(/[\r\n]/g,"").replace(/\\/g,"\\\\").replace(/"/g,'\\"')}var ta=async({url:e,headers:t={},parts:r,failedResponseHandler:a,successfulResponseHandler:n,abortSignal:o,fetch:i=tt()})=>{let l,u,c,d,f=`ai-sdk-multipart-${eg()}`,p=Object.fromEntries(r.map(e=>{var t;return[e.name,"field"===e.type?e.value:`<file:${null!=(t=e.filename)?t:e.name}>`]})),m=(u=new TextEncoder,c=!1,d=new Set,{stream:k(async function*(){var e,t;for(let a of r){if(c)return;let r=`--${f}\r
15
+ Content-Disposition: form-data; name="${tr(a.name)}"`;if("field"===a.type){yield u.encode(`${r}\r
16
+ \r
17
+ ${a.value}\r
18
+ `);continue}let n=`; filename="${tr(null!=(e=a.filename)?e:"blob")}"`,o=(null!=(t=a.mediaType)?t:"application/octet-stream").replace(/[\r\n]/g,"");if(yield u.encode(`${r}${n}\r
19
+ Content-Type: ${o}\r
20
+ \r
21
+ `),a.content instanceof Uint8Array)yield a.content;else{let e=a.content.getReader();l=e,d.add(a.content);let t=!1;try{for(;;){let{done:r,value:a}=await e.read();if(r||c){t=r;break}yield a}}finally{l=void 0,t||await e.cancel().catch(()=>{}),e.releaseLock()}if(c)return}yield u.encode("\r\n")}yield u.encode(`--${f}--\r
22
+ `)}()),async dispose(e){if(c)return;c=!0;let t=l;for(let a of(null!=t&&await t.cancel(e).catch(()=>{}),r))"file"!==a.type||a.content instanceof Uint8Array||d.has(a.content)||await a.content.cancel(e).catch(()=>{})}});try{let r={method:"POST",headers:L({...t,"Content-Type":`multipart/form-data; boundary=${f}`},`ai-sdk/provider-utils/${N}`,_()),body:m.stream,duplex:"half",signal:o},l=await i(e,r),u=P(l);if(!l.ok){let t;try{t=await a({response:l,url:e,requestBodyValues:p})}catch(t){if(O(t)||s.APICallError.isInstance(t))throw t;throw new s.APICallError({message:"Failed to process error response",cause:t,statusCode:l.status,url:e,responseHeaders:u,requestBodyValues:p})}throw t.value}try{return await n({response:l,url:e,requestBodyValues:p})}catch(t){if(t instanceof Error&&(O(t)||s.APICallError.isInstance(t)))throw t;throw new s.APICallError({message:"Failed to process successful response",cause:t,statusCode:l.status,url:e,responseHeaders:u,requestBodyValues:p})}}catch(t){throw await m.dispose(t),M({error:t,url:e,requestBodyValues:p})}},tn=()=>globalThis.fetch,to=async({url:e,headers:t,body:r,failedResponseHandler:a,successfulResponseHandler:n,abortSignal:o,fetch:s})=>await ti({url:e,headers:{"Content-Type":"application/json",...t},body:{content:JSON.stringify(r),values:r},failedResponseHandler:a,successfulResponseHandler:n,abortSignal:o,fetch:s}),ts=async({url:e,headers:t,formData:r,failedResponseHandler:a,successfulResponseHandler:n,abortSignal:o,fetch:s})=>await ti({url:e,headers:t,body:{content:r,values:Object.fromEntries(r.entries())},failedResponseHandler:a,successfulResponseHandler:n,abortSignal:o,fetch:s}),ti=async({url:e,headers:t={},body:r,successfulResponseHandler:a,failedResponseHandler:n,abortSignal:o,fetch:i=tn()})=>{try{let l=await i(e,{method:"POST",headers:L(t,`ai-sdk/provider-utils/${N}`,_()),body:r.content,signal:o}),u=P(l);if(!l.ok){let t;try{t=await n({response:l,url:e,requestBodyValues:r.values})}catch(t){if(O(t)||s.APICallError.isInstance(t))throw t;throw new s.APICallError({message:"Failed to process error response",cause:t,statusCode:l.status,url:e,responseHeaders:u,requestBodyValues:r.values})}throw t.value}try{return await a({response:l,url:e,requestBodyValues:r.values})}catch(t){if(t instanceof Error&&(O(t)||s.APICallError.isInstance(t)))throw t;throw new s.APICallError({message:"Failed to process successful response",cause:t,statusCode:l.status,url:e,responseHeaders:u,requestBodyValues:r.values})}}catch(t){throw M({error:t,url:e,requestBodyValues:r.values})}};function tl(e){return e}async function tu(e){return"function"==typeof e&&(e=e()),Promise.resolve(e)}async function tc(e,{maxRetries:t,delayInMs:r,backoffFactor:a,abortSignal:n,shouldRetry:o,getDelayInMs:i,createRetryError:l},u=[]){try{return await e()}catch(p){if(O(p)||0===t)throw p;let c=(0,s.getErrorMessage)(p),d=[...u,p],f=d.length;if(f>t)throw l({message:`Failed after ${f} attempts. Last error: ${c}`,reason:"maxRetriesExceeded",errors:d});if(await o(p)&&f<=t)return await y(i({error:p,exponentialBackoffDelay:r}),{abortSignal:n}),tc(e,{maxRetries:t,delayInMs:a*r,backoffFactor:a,abortSignal:n,shouldRetry:o,getDelayInMs:i,createRetryError:l},d);if(1===f)throw p;throw l({message:`Failed after ${f} attempts with non-retryable error: '${c}'`,reason:"errorNotRetryable",errors:d})}}var td=new TextDecoder;function tf({stream:e,url:t,requestBodyValues:r,statusCode:a,responseHeaders:n}){let o=e.getReader(),i=!1,l=()=>{i||(o.releaseLock(),i=!0)};return new ReadableStream({async pull(e){try{let{done:t,value:r}=await o.read();t?(l(),e.close()):e.enqueue(r)}catch(o){if(l(),O(o))return void e.error(o);e.error(M({error:new s.APICallError({message:"Failed to process successful response",cause:o,statusCode:a,url:t,responseHeaders:n,requestBodyValues:r}),url:t,requestBodyValues:r}))}},async cancel(e){try{await o.cancel(e)}finally{l()}}})}async function tp({response:e,url:t}){return td.decode(await ep({response:e,url:t}))}async function*tm({stream:e,schema:t}){let r=e.getReader(),a=new TextDecoder,n="",o=!1;try{for(;;){let{done:e,value:s}=await r.read();if(e){o=!0,n+=a.decode();break}let i=(n+=a.decode(s,{stream:!0})).indexOf("\n");for(;-1!==i;){let e=n.slice(0,i).replace(/\r$/,"");n=n.slice(i+1),e.trim().length>0&&(yield await e3({text:e,schema:t})),i=n.indexOf("\n")}}let e=n.replace(/\r$/,"");e.trim().length>0&&(yield await e3({text:e,schema:t}))}finally{o||await r.cancel().catch(()=>{}),r.releaseLock()}}function th(e){if(null==e)return!0;let t=typeof e;return"string"===t||"number"===t||"boolean"===t||"function"!==t&&"symbol"!==t&&"bigint"!==t&&(Array.isArray(e)?e.every(th):Object.getPrototypeOf(e)===Object.prototype&&Object.values(e).every(th))}var ty="AI_SerializationError",tg=`vercel.ai.error.${ty}`,tb=Symbol.for(tg),tv=class extends(o=s.AISDKError,n=tb,o){constructor({message:e="Failed to serialize value.",cause:t}={}){super({name:ty,message:e,cause:t}),this[n]=!0}static isInstance(e){return s.AISDKError.hasMarker(e,tg)}},tw=class{constructor(e,t={}){var r,a;this.toolCalls=new Set,this.toolCallsById=new Map,this.toolCallsByIndex=new Map,this.controller=e,this._generateId=null!=(r=t.generateId)?r:eg,this.typeValidation=null!=(a=t.typeValidation)?a:"none",this.extractMetadata=t.extractMetadata,this.buildToolCallProviderMetadata=t.buildToolCallProviderMetadata}processDelta(e){let{id:t,index:r}=e,a=null!=t&&t.length>0?this.toolCallsById.get(t):null!=r?this.toolCallsByIndex.get(r):this.latestToolCall;null==a?a=this.processNewToolCall(e):this.processExistingToolCall(a,e),null!=r&&this.toolCallsByIndex.set(r,a),this.latestToolCall=a}flush(){for(let e of this.toolCalls)e.hasFinished||this.finishToolCall(e)}processNewToolCall(e){var t,r,a;if("required"===this.typeValidation){if("function"!==e.type)throw new s.InvalidResponseDataError({data:e,message:"Expected 'function' type."})}else if("if-present"===this.typeValidation&&null!=e.type&&"function"!==e.type)throw new s.InvalidResponseDataError({data:e,message:"Expected 'function' type."});if(null==e.id)throw new s.InvalidResponseDataError({data:e,message:"Expected 'id' to be a string."});if((null==(t=e.function)?void 0:t.name)==null)throw new s.InvalidResponseDataError({data:e,message:"Expected 'function.name' to be a string."});this.controller.enqueue({type:"tool-input-start",id:e.id,toolName:e.function.name});let n=null==(r=this.extractMetadata)?void 0:r.call(this,e),o={id:e.id,type:"function",function:{name:e.function.name,arguments:null!=(a=e.function.arguments)?a:""},hasFinished:!1,metadata:n};return this.toolCalls.add(o),o.id.length>0&&this.toolCallsById.set(o.id,o),o.function.arguments.length>0&&this.controller.enqueue({type:"tool-input-delta",id:o.id,delta:o.function.arguments}),o}processExistingToolCall(e,t){var r;e.hasFinished||(null==(r=t.function)?void 0:r.arguments)!=null&&(e.function.arguments+=t.function.arguments,this.controller.enqueue({type:"tool-input-delta",id:e.id,delta:t.function.arguments}))}finishToolCall(e){var t,r;this.controller.enqueue({type:"tool-input-end",id:e.id});let a=null==(t=this.buildToolCallProviderMetadata)?void 0:t.call(this,e.metadata);this.controller.enqueue({type:"tool-call",toolCallId:null!=(r=e.id)?r:this._generateId(),toolName:e.function.name,input:e.function.arguments,...a?{providerMetadata:a}:{}}),e.hasFinished=!0}};function tk(e){return"string"==typeof e}function tT(e){return"number"==typeof e}function tA(e,t){return void 0===e||t(e)}function tE(e){return ew(e)&&tk(e.type)}function tx(e){return ew(e)&&tk(e.text)&&tT(e.startSecond)&&tT(e.endSecond)}async function*tS({tool:e,input:t,options:r}){let a=e.execute(t,r);if(null!=a&&"function"==typeof a[Symbol.asyncIterator]){let e;for await(let t of a)e=t,yield{type:"preliminary",output:t};yield{type:"final",output:e}}else yield{type:"final",output:await a}}e.s(["DEFAULT_MAX_DOWNLOAD_SIZE",0,0x80000000,"DelayedPromise",0,I,"DownloadError",0,Q,"EXPERIMENTAL_EMBEDDING_MODEL_MAX_INPUT_BYTES_PER_CALL",0,eh,"EXPERIMENTAL_TRANSCRIPTION_STREAM_AUDIO_DONE_FRAME_TYPE",0,"transcription-stream.audio-done","EXPERIMENTAL_TRANSCRIPTION_STREAM_START_FRAME_TYPE",0,"transcription-stream.start","StreamingToolCallTracker",0,tw,"asArray",0,function(e){return void 0===e?[]:Array.isArray(e)?e:[e]},"asSchema",0,e4,"cancelResponseBody",0,K,"combineHeaders",0,function(...e){return e.reduce((e,t)=>({...e,...null!=t?t:{}}),{})},"connectToWebSocket",0,function({url:e,protocols:t,headers:r,webSocket:a,abortSignal:n,onOpen:o,onMessageText:s,onProcessingError:i,onSocketError:l,onClose:u,onAbort:c}){var d,f;let p,m,h=e=>{null!=m&&(null==n||n.removeEventListener("abort",m),m=void 0);try{null==p||p.close(e)}catch(e){}};if(null==n?void 0:n.aborted)return null==c||c(null!=(d=n.reason)?d:Error("Aborted")),{socket:void 0,close:h};try{p=new(function(e){let t=null!=e?e:globalThis.WebSocket;if(null==t)throw Error("No WebSocket implementation available.");return t}(a))(e,t,{headers:(f=null!=r?r:{},Object.fromEntries(Object.entries(f).filter(([e,t])=>null!=t)))})}catch(e){return i(e),{socket:void 0,close:h}}null!=n&&null!=c&&(m=()=>{var e;return c(null!=(e=n.reason)?e:Error("Aborted"))},n.addEventListener("abort",m,{once:!0}));let y=p;p.onopen=()=>{try{null==o||o(y)}catch(e){i(e)}};let g=Promise.resolve();return p.onmessage=e=>{g=g.then(()=>v(e.data)).then(e=>s(e)).catch(i)},p.onerror=()=>{g=g.then(()=>null==l?void 0:l()).catch(i)},p.onclose=e=>{let t="number"==typeof(null==e?void 0:e.code)?e.code:void 0,r="string"==typeof(null==e?void 0:e.reason)?e.reason:void 0;g=g.then(()=>null==u?void 0:u({code:t,reason:r})).catch(i)},{socket:p,close:h}},"convertAsyncIteratorToReadableStream",0,k,"convertBase64ToUint8Array",0,E,"convertImageModelFileToDataUri",0,function(e){return"url"===e.type?e.url:`data:${e.mediaType};base64,${"string"==typeof e.data?e.data:x(e.data)}`},"convertInlineFileDataToUint8Array",0,function(e){if("stream"===e.type){let t=new s.UnsupportedFunctionalityError({functionality:"streaming file upload"});throw e.stream.cancel(t).catch(()=>{}),t}return"text"===e.type?new TextEncoder().encode(e.text):e.data instanceof Uint8Array?e.data:e.data instanceof ArrayBuffer?new Uint8Array(e.data):E(e.data)},"convertToBase64",0,function(e){return e instanceof Uint8Array?x(e):e},"convertToFormData",0,function(e,t={}){let{useArrayBrackets:r=!0}=t,a=new FormData;for(let[t,n]of Object.entries(e))if(null!=n){if(Array.isArray(n)){if(1===n.length){a.append(t,n[0]);continue}let e=r?`${t}[]`:t;for(let t of n)a.append(e,t);continue}a.append(t,n)}return a},"convertUint8ArrayToBase64",0,x,"createBinaryResponseHandler",0,()=>async({response:e,url:t,requestBodyValues:r})=>{let a=P(e);if(!e.body)throw new s.APICallError({message:"Response body is empty",url:t,requestBodyValues:r,statusCode:e.status,responseHeaders:a,responseBody:void 0});try{let t=await e.arrayBuffer();return{responseHeaders:a,value:new Uint8Array(t)}}catch(n){throw new s.APICallError({message:"Failed to read response as array buffer",url:t,requestBodyValues:r,statusCode:e.status,responseHeaders:a,responseBody:void 0,cause:n})}},"createBinaryStreamResponseHandler",0,()=>async({response:e,url:t,requestBodyValues:r})=>{let a=P(e);if(null==e.body)throw new s.EmptyResponseBodyError({});return{responseHeaders:a,value:tf({stream:e.body,url:t,requestBodyValues:r,statusCode:e.status,responseHeaders:a})}},"createEventSourceResponseHandler",0,e=>async({response:t,url:r,requestBodyValues:a})=>{let n=P(t);if(null==t.body)throw new s.EmptyResponseBodyError({});return{responseHeaders:n,value:e8({stream:tf({stream:t.body,url:r,requestBodyValues:a,statusCode:t.status,responseHeaders:n}),schema:e})}},"createIdGenerator",0,ey,"createJsonErrorResponseHandler",0,({errorSchema:e,errorToMessage:t,isRetryable:r})=>async({response:a,url:n,requestBodyValues:o})=>{let i=await tp({response:a,url:n}),l=P(a);if(""===i.trim())return{responseHeaders:l,value:new s.APICallError({message:a.statusText,url:n,requestBodyValues:o,statusCode:a.status,responseHeaders:l,responseBody:i,isRetryable:null==r?void 0:r(a)})};try{let u=await e3({text:i,schema:e});return{responseHeaders:l,value:new s.APICallError({message:t(u),url:n,requestBodyValues:o,statusCode:a.status,responseHeaders:l,responseBody:i,data:u,isRetryable:null==r?void 0:r(a,u)})}}catch(e){return{responseHeaders:l,value:new s.APICallError({message:a.statusText,url:n,requestBodyValues:o,statusCode:a.status,responseHeaders:l,responseBody:i,isRetryable:null==r?void 0:r(a)})}}},"createJsonLinesResponseHandler",0,e=>async({response:t})=>{let r=P(t);if(null==t.body)throw new s.EmptyResponseBodyError({});return{responseHeaders:r,value:tm({stream:t.body,schema:e})}},"createJsonResponseHandler",0,e=>async({response:t,url:r,requestBodyValues:a})=>{let n=await tp({response:t,url:r}),o=await e7({text:n,schema:e}),i=P(t);if(!o.success)throw new s.APICallError({message:"Invalid JSON response",cause:o.error,statusCode:t.status,responseHeaders:i,responseBody:n,url:r,requestBodyValues:a});return{responseHeaders:i,value:o.value,rawValue:o.rawValue}},"createLanguageModelResponseMetadata",0,function({id:e,model:t,created:r}){return{id:null!=e?e:void 0,modelId:null!=t?t:void 0,timestamp:null!=r?new Date(1e3*r):void 0}},"createNullLanguageModelUsage",0,function(){return{inputTokens:{total:void 0,noCache:void 0,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:void 0,text:void 0,reasoning:void 0},raw:void 0}},"createProviderDefinedToolFactory",0,function({id:e,inputSchema:t}){return({execute:r,outputSchema:a,needsApproval:n,toModelOutput:o,onInputStart:s,onInputDelta:i,onInputAvailable:l,...u})=>tl({type:"provider",isProviderExecuted:!1,id:e,args:u,inputSchema:t,outputSchema:a,execute:r,needsApproval:n,toModelOutput:o,onInputStart:s,onInputDelta:i,onInputAvailable:l})},"createProviderDefinedToolFactoryWithOutputSchema",0,function({id:e,inputSchema:t,outputSchema:r}){return({execute:a,needsApproval:n,toModelOutput:o,onInputStart:s,onInputDelta:i,onInputAvailable:l,...u})=>tl({type:"provider",isProviderExecuted:!1,id:e,args:u,inputSchema:t,outputSchema:r,execute:a,needsApproval:n,toModelOutput:o,onInputStart:s,onInputDelta:i,onInputAvailable:l})},"createProviderExecutedToolFactory",0,function({id:e,inputSchema:t,outputSchema:r,supportsDeferredResults:a}){return({onInputStart:n,onInputDelta:o,onInputAvailable:s,...i})=>tl({type:"provider",isProviderExecuted:!0,id:e,args:i,inputSchema:t,outputSchema:r,onInputStart:n,onInputDelta:o,onInputAvailable:s,supportsDeferredResults:a})},"createProviderStreamError",0,function({message:e,type:t,code:r,statusCode:a,isRetryable:n,data:o}){let s={message:e,type:t,code:r,statusCode:a,isRetryable:n,data:o};return Object.defineProperty(s,S,{value:!0}),s},"createStatusCodeErrorResponseHandler",0,()=>async({response:e,url:t,requestBodyValues:r})=>{let a=P(e),n=await tp({response:e,url:t});return{responseHeaders:a,value:new s.APICallError({message:e.statusText,url:t,requestBodyValues:r,statusCode:e.status,responseHeaders:a,responseBody:n})}},"createToolNameMapping",0,function({tools:e=[],providerToolNames:t}){let r={},a={};for(let n of e)if("provider"===n.type&&n.id in t){let e=t[n.id];r[n.name]=e,a[e]=n.name}return{toProviderToolName:e=>{var t;return null!=(t=r[e])?t:e},toCustomToolName:e=>{var t;return null!=(t=a[e])?t:e}}},"delay",0,y,"deleteFromApi",0,B,"detectMediaType",0,W,"downloadBlob",0,em,"dynamicTool",0,function(e){return{...e,type:"dynamic"}},"executeTool",0,tS,"experimental_getToolCaller",0,function(e){return null==e?void 0:e.experimental_toolCaller},"experimental_parseTranscriptionStreamPart",0,function(e){let t;try{t=eS(e)}catch(e){return}if(null==t||"object"!=typeof t||Array.isArray(t))return;let r=t;switch(r.type){case"stream-start":return Array.isArray(r.warnings)&&r.warnings.every(tE)?r:void 0;case"transcript-delta":return tk(r.delta)&&tA(r.id,tk)&&tA(r.providerMetadata,ew)?r:void 0;case"transcript-partial":return tk(r.text)&&tA(r.id,tk)&&tA(r.startSecond,tT)&&tA(r.durationInSeconds,tT)&&tA(r.channelIndex,tT)&&tA(r.providerMetadata,ew)?r:void 0;case"transcript-final":return tk(r.text)&&tA(r.id,tk)&&tA(r.startSecond,tT)&&tA(r.endSecond,tT)&&tA(r.channelIndex,tT)&&tA(r.providerMetadata,ew)?r:void 0;case"finish":return tk(r.text)&&Array.isArray(r.segments)&&r.segments.every(tx)&&tA(r.language,tk)&&tA(r.durationInSeconds,tT)&&tA(r.providerMetadata,ew)?r:void 0;case"response-metadata":{if(!(tA(r.modelId,tk)&&tA(r.headers,ew)))return;let e=r.timestamp;if(null==e)return{...r,timestamp:void 0};if("string"!=typeof e)return;let t=new Date(e);return Number.isNaN(t.getTime())?void 0:{...r,timestamp:t}}case"raw":return"rawValue"in r?r:void 0;case"error":return"error"in r?r:void 0;default:return}},"experimental_toolCaller",0,function(e,t){return Object.defineProperty({...e},"experimental_toolCaller",{value:t})},"extractResponseHeaders",0,P,"fetchWithValidatedRedirects",0,ef,"filterNullable",0,function(...e){return e.filter(e=>null!=e)},"generateId",0,eg,"getFromApi",0,eb,"getRuntimeEnvironmentUserAgent",0,_,"getTopLevelMediaType",0,J,"isAbortError",0,O,"isBuffer",0,ev,"isCustomReasoning",0,function(e){return void 0!==e&&"provider-default"!==e},"isExecutableTool",0,function(e){return null!=e&&"function"==typeof e.execute},"isFullMediaType",0,H,"isNonNullable",0,function(e){return null!=e},"isProviderReference",0,function(e){return"object"==typeof e&&null!==e&&!(e instanceof Uint8Array)&&!(e instanceof URL)&&!(e instanceof ArrayBuffer)&&!ev(e)&&!("type"in e)},"isProviderStreamError",0,function(e){return"object"==typeof e&&null!=e&&!0===e[S]},"isRecord",0,ew,"isSameOrigin",0,ee,"isUrlSupported",0,function({mediaType:e,url:t,supportedUrls:r}){t=t.toLowerCase();let a=!(e=e.toLowerCase()).includes("/");return Object.entries(r).map(([e,t])=>{let r=e.toLowerCase();return"*"===r||"*/*"===r?{mediaTypePrefix:"",regexes:t}:{mediaTypePrefix:r.replace(/\*/,""),regexes:t}}).filter(({mediaTypePrefix:t})=>""===t||(a?`${e}/`===t:e.startsWith(t))).flatMap(({regexes:e})=>e).some(e=>(function(e,t){if(!e.global&&!e.sticky)return e.test(t);let r=e.lastIndex;e.lastIndex=0;try{return e.test(t)}finally{e.lastIndex=r}})(e,t))},"jsonSchema",0,e2,"lazySchema",0,function(e){let t;return()=>(null==t&&(t=e()),t)},"loadApiKey",0,function({apiKey:e,environmentVariableName:t,apiKeyParameterName:r="apiKey",description:a}){if("string"==typeof e)return e;if(null!=e)throw new s.LoadAPIKeyError({message:`${a} API key must be a string.`});if("u"<typeof process)throw new s.LoadAPIKeyError({message:`${a} API key is missing. Pass it using the '${r}' parameter. Environment variables are not supported in this environment.`});if(null==(e=process.env[t]))throw new s.LoadAPIKeyError({message:`${a} API key is missing. Pass it using the '${r}' parameter or the ${t} environment variable.`});if("string"!=typeof e)throw new s.LoadAPIKeyError({message:`${a} API key must be a string. The value of the ${t} environment variable is not a string.`});return e},"loadOptionalSetting",0,function({settingValue:e,environmentVariableName:t}){return"string"==typeof e?e:null!=e||"u"<typeof process?void 0:null!=(e=process.env[t])&&"string"==typeof e?e:void 0},"mapReasoningToProviderBudget",0,function({reasoning:e,maxOutputTokens:t,maxReasoningBudget:r,minReasoningBudget:a=1024,budgetPercentages:n=ek,warnings:o}){let s=n[e];return null==s?void o.push({type:"unsupported",feature:"reasoning",details:`reasoning "${e}" is not supported by this model.`}):Math.min(r,Math.max(a,Math.round(t*s)))},"mapReasoningToProviderEffort",0,function({reasoning:e,effortMap:t,warnings:r}){let a=t[e];return null==a?void r.push({type:"unsupported",feature:"reasoning",details:`reasoning "${e}" is not supported by this model.`}):(a!==e&&r.push({type:"compatibility",feature:"reasoning",details:`reasoning "${e}" is not directly supported by this model. mapped to effort "${a}".`}),a)},"mediaTypeToExtension",0,function(e){var t;let[r,a=""]=e.toLowerCase().split("/");return null!=(t=({mpeg:"mp3","x-wav":"wav",opus:"ogg",mp4:"m4a","x-m4a":"m4a"})[a])?t:a},"normalizeBatchRequestCounts",0,function({total:e,pending:t,completed:r,failed:a}){if(eT(e)&&eT(t)&&eT(r)&&eT(a)&&t+r+a===e)return{total:e,pending:t,completed:r,failed:a}},"normalizeHeaders",0,j,"parseJSON",0,e3,"parseJsonEventStream",0,e8,"parseProviderOptions",0,te,"postFormDataToApi",0,ts,"postJsonToApi",0,to,"postMultipartStreamToApi",0,ta,"postToApi",0,ti,"readResponseWithSizeLimit",0,ep,"resolve",0,tu,"resolveFullMediaType",0,function({part:e}){if(H(e.mediaType))return e.mediaType;if("data"===e.data.type){let t=W({data:e.data.data,topLevelType:J(e.mediaType)});if(t)return t;throw new s.UnsupportedFunctionalityError({functionality:`file of media type "${e.mediaType}" must specify subtype since it could not be auto-detected`})}throw new s.UnsupportedFunctionalityError({functionality:`file of media type "${e.mediaType}" must specify subtype since it is not passed as inline bytes`})},"resolveProviderReference",0,function({reference:e,provider:t}){let r=e[t];if(null!=r)return r;throw new s.NoSuchProviderReferenceError({provider:t,reference:e})},"retryWithExponentialBackoff",0,({maxRetries:e=2,initialDelayInMs:t=2e3,backoffFactor:r=2,abortSignal:a,shouldRetry:n,getDelayInMs:o=({exponentialBackoffDelay:e})=>e,createRetryError:s=({message:e})=>Error(e)})=>async i=>tc(i,{maxRetries:e,delayInMs:t,backoffFactor:r,abortSignal:a,shouldRetry:n,getDelayInMs:o,createRetryError:s}),"safeParseJSON",0,e7,"safeValidateTypes",0,e5,"secureJsonParse",0,eS,"serializeModelOptions",0,function(e){let t={};for(let[r,a]of Object.entries(e.config))if("headers"===r){let e=function(e){let t=e;if("function"==typeof e&&(t=e()),t instanceof Promise)throw new tv({message:"Cannot serialize asynchronous model options."});return t}(a);th(e)&&(t[r]=e)}else th(a)&&(t[r]=a);return{modelId:e.modelId,config:t}},"toWebSocketUrl",0,function(e){let t=new URL(e);return"http:"===t.protocol?t.protocol="ws:":"https:"===t.protocol&&(t.protocol="wss:"),t},"tool",0,tl,"validateBaseURL",0,function(e){if((null==e?void 0:e.trim())==="")throw new s.InvalidArgumentError({argument:"baseURL",message:"baseURL must be a non-empty string."});return e},"validateDownloadUrl",0,et,"validateTypes",0,e9,"waitForWebSocketBufferDrain",0,w,"withUserAgentSuffix",0,L,"withoutTrailingSlash",0,function(e){return null==e?void 0:e.replace(/\/$/,"")},"zodSchema",0,e6],691296)},296194,e=>{"use strict";var t,r,a,n,o,s,i,l,u,c,d,f,p,m,h,y,g,b,v,w,k,T,A,E,x,S,I,P,_,O,$="vercel.ai.error",C=Symbol.for($),M=class e extends(r=Error,t=C,r){constructor({name:e,message:r,cause:a}){super(r),this[t]=!0,this.name=e,this.cause=a}static isInstance(t){return e.hasMarker(t,$)}static hasMarker(e,t){let r=Symbol.for(t);return null!=e&&"object"==typeof e&&r in e&&"boolean"==typeof e[r]&&!0===e[r]}},N="AI_APICallError",j=`vercel.ai.error.${N}`,L=Symbol.for(j),R=class extends(n=M,a=L,n){constructor({message:e,url:t,requestBodyValues:r,statusCode:n,responseHeaders:o,responseBody:s,cause:i,isRetryable:l=null!=n&&(408===n||409===n||429===n||n>=500),data:u}){super({name:N,message:e,cause:i}),this[a]=!0,this.url=t,this.requestBodyValues=r,this.statusCode=n,this.responseHeaders=o,this.responseBody=s,this.isRetryable=l,this.data=u}static isInstance(e){return M.hasMarker(e,j)}},B="AI_EmptyResponseBodyError",q=`vercel.ai.error.${B}`,F=Symbol.for(q),Z=class extends(s=M,o=F,s){constructor({message:e="Empty response body"}={}){super({name:B,message:e}),this[o]=!0}static isInstance(e){return M.hasMarker(e,q)}};function U(e){return null==e?"unknown error":"string"==typeof e?e:e instanceof Error?e.toString():JSON.stringify(e)}var D="AI_InvalidArgumentError",z=`vercel.ai.error.${D}`,V=Symbol.for(z),W=class extends(l=M,i=V,l){constructor({message:e,cause:t,argument:r}){super({name:D,message:e,cause:t}),this[i]=!0,this.argument=r}static isInstance(e){return M.hasMarker(e,z)}},J="AI_InvalidPromptError",H=`vercel.ai.error.${J}`,K=Symbol.for(H),G=class extends(c=M,u=K,c){constructor({prompt:e,message:t,cause:r}){super({name:J,message:`Invalid prompt: ${t}`,cause:r}),this[u]=!0,this.prompt=e}static isInstance(e){return M.hasMarker(e,H)}},X="AI_InvalidResponseDataError",Y=`vercel.ai.error.${X}`,Q=Symbol.for(Y),ee=class extends(f=M,d=Q,f){constructor({data:e,message:t=`Invalid response data: ${JSON.stringify(e)}.`}){super({name:X,message:t}),this[d]=!0,this.data=e}static isInstance(e){return M.hasMarker(e,Y)}},et="AI_JSONParseError",er=`vercel.ai.error.${et}`,ea=Symbol.for(er),en=class extends(m=M,p=ea,m){constructor({text:e,cause:t}){super({name:et,message:`JSON parsing failed: Text: ${e}.
23
+ Error message: ${U(t)}`,cause:t}),this[p]=!0,this.text=e}static isInstance(e){return M.hasMarker(e,er)}},eo="AI_LoadAPIKeyError",es=`vercel.ai.error.${eo}`,ei=Symbol.for(es),el=class extends(y=M,h=ei,y){constructor({message:e}){super({name:eo,message:e}),this[h]=!0}static isInstance(e){return M.hasMarker(e,es)}},eu="AI_LoadSettingError",ec=`vercel.ai.error.${eu}`,ed=Symbol.for(ec),ef=class extends(b=M,g=ed,b){constructor({message:e}){super({name:eu,message:e}),this[g]=!0}static isInstance(e){return M.hasMarker(e,ec)}},ep="AI_NoContentGeneratedError",em=`vercel.ai.error.${ep}`,eh=Symbol.for(em),ey=class extends(w=M,v=eh,w){constructor({message:e="No content generated."}={}){super({name:ep,message:e}),this[v]=!0}static isInstance(e){return M.hasMarker(e,em)}},eg="AI_NoSuchModelError",eb=`vercel.ai.error.${eg}`,ev=Symbol.for(eb),ew=class extends(T=M,k=ev,T){constructor({errorName:e=eg,modelId:t,modelType:r,message:a=`No such ${r}: ${t}`}){super({name:e,message:a}),this[k]=!0,this.modelId=t,this.modelType=r}static isInstance(e){return M.hasMarker(e,eb)}},ek="AI_NoSuchProviderReferenceError",eT=`vercel.ai.error.${ek}`,eA=Symbol.for(eT),eE=class extends(E=M,A=eA,E){constructor({provider:e,reference:t,message:r=`No provider reference found for provider '${e}'. Available providers: ${Object.keys(t).join(", ")}`}){super({name:ek,message:r}),this[A]=!0,this.provider=e,this.reference=t}static isInstance(e){return M.hasMarker(e,eT)}},ex="AI_TooManyEmbeddingValuesForCallError",eS=`vercel.ai.error.${ex}`,eI=Symbol.for(eS),eP=class extends(S=M,x=eI,S){constructor(e){super({name:ex,message:`Too many values for a single embedding call. The ${e.provider} model "${e.modelId}" can only embed up to ${e.maxEmbeddingsPerCall} values per call, but ${e.values.length} values were provided.`}),this[x]=!0,this.provider=e.provider,this.modelId=e.modelId,this.maxEmbeddingsPerCall=e.maxEmbeddingsPerCall,this.values=e.values}static isInstance(e){return M.hasMarker(e,eS)}},e_="AI_TypeValidationError",eO=`vercel.ai.error.${e_}`,e$=Symbol.for(eO),eC=class e extends(P=M,I=e$,P){constructor({value:e,cause:t,context:r}){let a="Type validation failed";if((null==r?void 0:r.field)&&(a+=` for ${r.field}`),(null==r?void 0:r.entityName)||(null==r?void 0:r.entityId)){a+=" (";const e=[];r.entityName&&e.push(r.entityName),r.entityId&&e.push(`id: "${r.entityId}"`),a+=e.join(", "),a+=")"}super({name:e_,message:`${a}: Value: ${JSON.stringify(e)}.
24
+ Error message: ${U(t)}`,cause:t}),this[I]=!0,this.value=e,this.context=r}static isInstance(e){return M.hasMarker(e,eO)}static wrap({value:t,cause:r,context:a}){var n,o,s;return e.isInstance(r)&&r.value===t&&(null==(n=r.context)?void 0:n.field)===(null==a?void 0:a.field)&&(null==(o=r.context)?void 0:o.entityName)===(null==a?void 0:a.entityName)&&(null==(s=r.context)?void 0:s.entityId)===(null==a?void 0:a.entityId)?r:new e({value:t,cause:r,context:a})}},eM="AI_UnsupportedFunctionalityError",eN=`vercel.ai.error.${eM}`,ej=Symbol.for(eN),eL=class extends(O=M,_=ej,O){constructor({functionality:e,message:t=`'${e}' functionality not supported.`}){super({name:eM,message:t}),this[_]=!0,this.functionality=e}static isInstance(e){return M.hasMarker(e,eN)}};function eR(e){return null===e||"string"==typeof e||"number"==typeof e||"boolean"==typeof e||(Array.isArray(e)?e.every(eR):"object"==typeof e&&Object.entries(e).every(([e,t])=>"string"==typeof e&&(void 0===t||eR(t))))}e.s(["AISDKError",0,M,"APICallError",0,R,"EmptyResponseBodyError",0,Z,"InvalidArgumentError",0,W,"InvalidPromptError",0,G,"InvalidResponseDataError",0,ee,"JSONParseError",0,en,"LoadAPIKeyError",0,el,"LoadSettingError",0,ef,"NoContentGeneratedError",0,ey,"NoSuchModelError",0,ew,"NoSuchProviderReferenceError",0,eE,"TooManyEmbeddingValuesForCallError",0,eP,"TypeValidationError",0,eC,"UnsupportedFunctionalityError",0,eL,"getErrorMessage",0,U,"isJSONArray",0,function(e){return Array.isArray(e)&&e.every(eR)},"isJSONObject",0,function(e){return null!=e&&"object"==typeof e&&Object.entries(e).every(([e,t])=>"string"==typeof e&&(void 0===t||eR(t)))}])},157406,e=>{"use strict";var t=e.i(533102),r=e.i(539774),a=e.i(763369);e.s(["max",0,function(e){return t.sql`max(${e})`.mapWith((0,r.is)(e,a.Column)?e:String)}])}];
25
+
26
+ //# sourceMappingURL=_0mecv0f._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[264079,e=>{"use strict";var a=e.i(469719),l=e.i(687388);a.z.object({value:a.z.string().min(1),expires_at:a.z.number()});let i=a.z.enum(["openai","chatgpt","anthropic","google","xai","vercel-ai-gateway"]),t=a.z.object({provider:i,model:a.z.string().trim().min(1,"Model name is required").max(80)}),r=a.z.enum(["openai","xai"]),n=a.z.object({provider:r,voice:a.z.string().trim().min(1).max(64).nullish(),model:a.z.string().trim().min(1).max(80).nullish()}),d=a.z.enum(["openai","google","xai","vercel-ai-gateway"]),o=a.z.object({provider:d,model:a.z.string().trim().min(1,"Model name is required").max(120)}),s={openai:{label:"Open AI",apiKeyName:"OPENAI_API_KEY",models:{image:[{id:"gpt-image-1-mini",label:"GPT Image 1 mini",tier:"small"},{id:"gpt-image-2.5-flare",label:"GPT Image 2.5 Flare",tier:"mid"},{id:"gpt-image-2.5-sunburst",label:"GPT Image 2.5 Sunburst",tier:"large"}],video:[],speech:[{id:"tts-1",label:"TTS 1",tier:"small"},{id:"gpt-4o-mini-tts",label:"4o mini TTS",tier:"mid"},{id:"tts-1-hd",label:"TTS 1 HD",tier:"large"}],transcription:[{id:"gpt-4o-mini-transcribe",label:"4o mini Transcribe",tier:"small"},{id:"gpt-transcribe",label:"GPT Transcribe",tier:"mid"}]}},google:{label:"Gemini",apiKeyName:"GOOGLE_GENERATIVE_AI_API_KEY",models:{image:[{id:"gemini-3.1-flash-lite-image",label:"3.1 Flash Lite Image",tier:"small"},{id:"gemini-3.1-flash-image",label:"3.1 Flash Image",tier:"mid"},{id:"gemini-3-pro-image",label:"3 Pro Image",tier:"large"}],video:[{id:"veo-3.1-lite-generate-preview",label:"Veo 3.1 Lite",tier:"small"},{id:"veo-3.1-fast-generate-preview",label:"Veo 3.1 Fast",tier:"mid"},{id:"veo-3.1-generate-preview",label:"Veo 3.1",tier:"large"}],speech:[{id:"gemini-2.5-flash-preview-tts",label:"2.5 Flash TTS",tier:"small"},{id:"gemini-3.1-flash-tts-preview",label:"3.1 Flash TTS",tier:"mid"},{id:"gemini-2.5-pro-preview-tts",label:"2.5 Pro TTS",tier:"large"}],transcription:[{id:"gemini-3.5-transcribe",label:"3.5 Transcribe",tier:"mid"}]}},xai:{label:"xAI",apiKeyName:"XAI_API_KEY",models:{image:[{id:"grok-imagine-image",label:"Grok Imagine",tier:"small"},{id:"grok-imagine-image-2.0",label:"Grok Imagine 2.0",tier:"mid"}],video:[{id:"grok-imagine-video",label:"Grok Imagine Video",tier:"small"},{id:"grok-imagine-video-1.5",label:"Grok Imagine Video 1.5",tier:"mid"}],speech:[{id:"grok-tts",label:"Grok TTS",tier:"mid"}],transcription:[{id:"grok-stt",label:"Grok STT",tier:"mid"}]}},"vercel-ai-gateway":{label:"Vercel AI GateWay",apiKeyName:"AI_GATEWAY_API_KEY",models:{image:[{id:"bytedance/seedream-5.0-lite",label:"Seedream 5.0 Lite",tier:"small"},{id:"bfl/flux-2-klein-9b",label:"FLUX 2 Klein 9B",tier:"small"},{id:"spacexai/grok-imagine-image-2.0",label:"Grok Imagine 2.0",tier:"small"},{id:"google/gemini-3.1-flash-image",label:"Gemini 3.1 Flash Image",tier:"mid"},{id:"bfl/flux-2-pro",label:"FLUX 2 Pro",tier:"mid"},{id:"bytedance/seedream-5.0-pro",label:"Seedream 5.0 Pro",tier:"mid"},{id:"recraft/recraft-v4.1",label:"Recraft V4.1",tier:"mid"},{id:"google/gemini-3-pro-image",label:"Gemini 3 Pro Image",tier:"large"},{id:"openai/gpt-image-2.5-sunburst",label:"GPT Image 2.5 Sunburst",tier:"large"}],video:[{id:"bytedance/seedance-2.0-mini",label:"Seedance 2.0 Mini",tier:"small"},{id:"google/veo-3.1-lite-generate-001",label:"Veo 3.1 Lite",tier:"small"},{id:"alibaba/wan-v2.6-t2v",label:"Wan 2.6",tier:"small"},{id:"google/veo-3.1-fast-generate-001",label:"Veo 3.1 Fast",tier:"mid"},{id:"bytedance/seedance-2.5",label:"Seedance 2.5",tier:"mid"},{id:"spacexai/grok-imagine-video-1.5",label:"Grok Imagine Video 1.5",tier:"mid"},{id:"klingai/kling-v3.0-t2v",label:"Kling 3.0",tier:"large"},{id:"google/veo-3.1-generate-001",label:"Veo 3.1",tier:"large"}],speech:[{id:"fish-audio/s1",label:"Fish Audio S1",tier:"small"},{id:"openai/tts-1",label:"OpenAI TTS 1",tier:"small"},{id:"spacexai/grok-tts",label:"Grok TTS",tier:"mid"},{id:"fish-audio/s2.1-pro",label:"Fish Audio S2.1 Pro",tier:"mid"},{id:"openai/tts-1-hd",label:"OpenAI TTS 1 HD",tier:"large"}],transcription:[{id:"spacexai/grok-stt",label:"Grok STT",tier:"small"},{id:"fish-audio/transcribe-1",label:"Fish Transcribe 1",tier:"small"},{id:"openai/gpt-4o-mini-transcribe",label:"4o mini Transcribe",tier:"small"},{id:"openai/gpt-4o-transcribe",label:"4o Transcribe",tier:"mid"},{id:"google/gemini-3.5-transcribe",label:"Gemini 3.5 Transcribe",tier:"mid"}]}}},m=Object.keys(s).map(e=>({id:e,...s[e]})),u={openai:{label:"Open AI",apiKeyName:"OPENAI_API_KEY",suggestModels:[{id:"gpt-5.6-luna",label:"5.6 Luna",tier:"small",context:105e4},{id:"gpt-5.6-terra",label:"5.6 Terra",tier:"mid",context:105e4},{id:"gpt-5.6-sol",label:"5.6 Sol",tier:"large",context:105e4},{id:"gpt-6-astra",label:"6 Astra",tier:"large",context:105e4}]},chatgpt:{label:"GPT Subscription",apiKeyName:"CHATGPT_SIGN_IN",signIn:!0,suggestModels:[{id:"gpt-5.6-luna",label:"5.6 Luna",tier:"small",context:272e3},{id:"gpt-5.6-terra",label:"5.6 Terra",tier:"mid",context:272e3},{id:"gpt-5.6-sol",label:"5.6 Sol",tier:"large",context:272e3},{id:"gpt-6-astra",label:"6 Astra",tier:"large",context:272e3}]},anthropic:{label:"Claude",apiKeyName:"ANTHROPIC_API_KEY",suggestModels:[{id:"claude-haiku-4-5",label:"Haiku 4.5",tier:"small"},{id:"claude-sonnet-5",label:"Sonnet 5",tier:"mid",context:1e6},{id:"claude-opus-5",label:"Opus 5",tier:"large",context:1e6},{id:"claude-fable-5-1",label:"Fable 5.1",tier:"large"}]},google:{label:"Gemini",apiKeyName:"GOOGLE_GENERATIVE_AI_API_KEY",suggestModels:[{id:"gemini-3.5-flash-lite",label:"3.5 Flash Lite",tier:"small",context:1e6},{id:"gemini-3.8-flash",label:"3.8 Flash",tier:"mid",context:1e6}]},xai:{label:"xAI",apiKeyName:"XAI_API_KEY",suggestModels:[{id:"grok-4.6",label:"Grok 4.6",tier:"large",context:5e5}]},"vercel-ai-gateway":{label:"Vercel AI GateWay",apiKeyName:"AI_GATEWAY_API_KEY",suggestModels:[{id:"zai/glm-5.3-flash",label:"GLM 5.3 Flash",tier:"small"},{id:"google/gemini-3.8-flash",label:"Gemini 3.8 Flash",tier:"small"},{id:"openai/gpt-5.6-luna",label:"GPT 5.6 Luna",tier:"small",context:105e4},{id:"zai/glm-5.3",label:"GLM 5.3",tier:"mid"},{id:"spacexai/grok-4.6",label:"Grok 4.6",tier:"mid",context:5e5},{id:"anthropic/claude-sonnet-5",label:"Claude Sonnet 5",tier:"mid"},{id:"openai/gpt-5.6-terra",label:"GPT 5.6 Terra",tier:"mid",context:105e4},{id:"moonshotai/kimi-k3",label:"Kimi K3",tier:"mid"},{id:"openai/gpt-5.6-sol",label:"GPT 5.6 Sol",tier:"large",context:105e4},{id:"anthropic/claude-opus-5",label:"Claude Opus 5",tier:"large",context:1e6},{id:"openai/gpt-6-astra",label:"GPT 6 Astra",tier:"large",context:105e4}]}},g={openai:{apiKeyName:u.openai.apiKeyName,label:u.openai.label,keyPrefix:["sk-"],models:[{id:"gpt-realtime-2.1",label:"Realtime 2.1"},{id:"gpt-realtime-2.1-mini",label:"Realtime 2.1 mini"},{id:"gpt-realtime-2",label:"Realtime 2"}],voices:["marin","cedar","alloy","ash","ballad","coral","echo","sage","shimmer","verse"],defaultVoice:"marin"},xai:{apiKeyName:u.xai.apiKeyName,label:u.xai.label,keyPrefix:["xai-"],models:[{id:"grok-voice-think-fast-2.0",label:"Voice Think Fast 2.0"},{id:"grok-voice-latest",label:"Voice latest"}],voices:["eve","ara","leo","rex","sal"],defaultVoice:"eve"}},b=Object.keys(g).map(e=>({id:e,...g[e]})),c=Object.keys(u).map(e=>({id:e,...u[e]}));e.s(["GATEWAY_TEXT",0,"language","MEDIA_MODEL_PROVIDERS",0,s,"MEDIA_MODEL_PROVIDER_LIST",0,m,"SPEACH_MODEL_PROVIDERS",0,g,"SPEACH_MODEL_PROVIDER_LIST",0,b,"TEXT_MODEL_PROVIDERS",0,u,"TEXT_MODEL_PROVIDER_LIST",0,c,"canMakeKind",0,(e,a)=>(s[e]?.models[a]?.length??0)>0,"compactAtFor",0,e=>e&&e>0?Math.round(e*l.BOT_RUN.compactHeadroom):l.BOT_RUN.compactAt,"contextWindowOf",0,function(e,a,l=[]){if("vercel-ai-gateway"===e)return l.find(e=>e.id===a)?.contextWindow??null;let i=u[e].suggestModels;return i.find(e=>e.id===a)?.context??null},"defaultModelOf",0,e=>(e.suggestModels.find(e=>"mid"===e.tier)??e.suggestModels[0])?.id,"parseMediaModel",0,function(e){let[a,...l]=(e??"").trim().split("/"),i=o.safeParse({provider:a,model:l.join("/")});return i.success?i.data:null},"parseTextModel",0,function(e){let[a,...l]=(e??"").trim().split("/"),i=t.safeParse({provider:a,model:l.join("/")});return i.success?i.data:null},"speachModelRefSchema",0,n,"textModelProviderSchema",0,i,"textModelRefSchema",0,t],264079)},944971,514499,e=>{"use strict";var a=e.i(105249),l=e.i(687388),i=e.i(264079),t=e.i(704161);let r={name:{max:16},shortDescription:{max:60},description:{max:100},prompt:{max:4e3}};e.s(["COMMON_VALIDATE",0,r],514499);var n=e.i(41444);Array(8).fill(0);let d="currentColor",o=[{id:"system",label:"System",value:d},{id:"slate",label:"Slate",value:"#64748B"},{id:"indigo",label:"Indigo",value:"#6366F1"},{id:"blue",label:"Blue",value:"#3B82F6"},{id:"cyan",label:"Cyan",value:"#06B6D4"},{id:"teal",label:"Teal",value:"#14B8A6"},{id:"green",label:"Green",value:"#22C55E"},{id:"lime",label:"Lime",value:"#84CC16"},{id:"amber",label:"Amber",value:"#F59E0B"},{id:"orange",label:"Orange",value:"#F97316"},{id:"red",label:"Red",value:"#EF4444"},{id:"pink",label:"Pink",value:"#EC4899"},{id:"violet",label:"Violet",value:"#8B5CF6"},{id:"fuchsia",label:"Fuchsia",value:"#D946EF"},{id:"rose",label:"Rose",value:"#F43F5E"},{id:"sky",label:"Sky",value:"#0EA5E9"},{id:"emerald",label:"Emerald",value:"#10B981"},{id:"yellow",label:"Yellow",value:"#EAB308"},{id:"stone",label:"Stone",value:"#78716C"},{id:"navy",label:"Navy",value:"#1E3A8A",dark:!0},{id:"ocean",label:"Ocean",value:"#155E75",dark:!0},{id:"pine",label:"Pine",value:"#166534",dark:!0},{id:"moss",label:"Moss",value:"#3F6212",dark:!0},{id:"olive",label:"Olive",value:"#854D0E",dark:!0},{id:"rust",label:"Rust",value:"#9A3412",dark:!0},{id:"wine",label:"Wine",value:"#9F1239",dark:!0},{id:"plum",label:"Plum",value:"#6B21A8",dark:!0},{id:"grape",label:"Grape",value:"#5B21B6",dark:!0},{id:"iron",label:"Iron",value:"#334155",dark:!0}],s=Object.fromEntries(o.map(e=>[e.id,e.value]));o.filter(e=>e.value!==d).map(e=>e.value),s.amber,s.red,o.filter(e=>e.value!==d&&!("dark"in e)).map(e=>e.value),o.filter(e=>"dark"in e).map(e=>e.value);let m=a.default.object({color:a.default.string().regex(/^(#[0-9a-fA-F]{6}|currentColor)$/,"Hex color").optional(),shape:a.default.enum(["blob","poly","squircle"]).optional(),outline:a.default.boolean().optional()}),u=a.default.string().max(r.prompt.max),g=a.default.object({id:a.default.number(),name:a.default.string(),serverName:a.default.string()}),b=a.default.string().trim().transform(e=>e.replace(/\s+/g," ")).pipe(a.default.string().min(1,"A name is required").max(r.name.max)),c=a.default.object({input:a.default.number(),output:a.default.number()});a.default.object({name:a.default.string(),description:a.default.string(),systemPrompt:a.default.string().nullish(),icon:m.nullish(),provider:i.textModelProviderSchema.nullish(),model:a.default.string().nullish(),compactAt:a.default.number().nullish(),disabled:a.default.boolean(),createdAt:t.DateLikeSchema,tools:g.array().default([]),tokens:c,lastJobAt:t.DateLikeSchema.nullish()}),a.default.object({name:b,description:a.default.string().trim().min(1,"Say what this bot is for").max(r.description.max),systemPrompt:u.optional(),icon:m.optional(),provider:i.textModelProviderSchema.nullish(),model:a.default.string().trim().max(80).nullish(),compactAt:a.default.coerce.number().int().min(8e3,"At least 8k").nullish(),disabled:a.default.boolean().optional(),toolIds:a.default.number().int().array().max(10).default([])}),a.default.object({file:a.default.string(),path:a.default.string(),line:a.default.string(),at:t.DateLikeSchema,bytes:a.default.number()});let p=l.PAGE_SIZE,f=a.default.discriminatedUnion("type",[a.default.object({type:a.default.literal("text"),text:a.default.string()}),a.default.object({type:a.default.literal("image"),src:a.default.string()})]),v=a.default.object({id:a.default.string(),seq:a.default.number(),bot:a.default.string().nullable(),parent:a.default.string().nullable(),at:t.DateLikeSchema}),x=a.default.discriminatedUnion("kind",[v.extend({kind:a.default.literal("user"),text:a.default.string()}),v.extend({kind:a.default.literal("text"),text:a.default.string()}),v.extend({kind:a.default.literal("note"),text:a.default.string()}),v.extend({kind:a.default.literal("tool"),callId:a.default.string(),name:a.default.string(),input:a.default.string(),note:a.default.string().nullish(),path:a.default.string().nullish()}),v.extend({kind:a.default.literal("tool-result"),callId:a.default.string(),name:a.default.string(),results:f.array(),more:a.default.boolean()}),v.extend({kind:a.default.literal("ask"),callId:a.default.string(),to:a.default.string(),text:a.default.string()}),v.extend({kind:a.default.literal("ask-result"),callId:a.default.string(),text:a.default.string()}),v.extend({kind:a.default.literal("waiting"),callId:a.default.string(),question:a.default.string(),options:a.default.string().array()})]),k=a.default.object({question:a.default.string(),options:a.default.string().array(),auto:a.default.boolean()});a.default.object({id:a.default.string(),bot:a.default.string(),label:a.default.string(),request:a.default.string(),status:a.default.enum(["running","waiting","done","failed"]),outcome:a.default.string().nullable(),ask:k.nullable(),seen:a.default.boolean(),tokens:c,contextTokens:a.default.number(),contextBudget:a.default.number(),createdAt:t.DateLikeSchema,updatedAt:t.DateLikeSchema,lines:x.array()}),e.s(["BOT_MEMORY_KEY",0,"BOT_MEMORY","COMPACT_AT_MIN",0,8e3,"DEFAULT_BOT",0,{name:"Jarvis",description:"Anything — this computer, a browser, the web, files, services",systemPrompt:null,icon:{color:"#14B8A6",shape:"squircle"},provider:null,model:null,disabled:!1,compactAt:null},"NO_TOKENS",0,{input:0,output:0},"TASK_CONTINUE",0,"Continue","TASK_HISTORY_PAGE",0,p,"botIconSchema",0,m,"isBotMemoryOn",0,e=>e?.trim()!=="off","taskActivity",0,function(e,a=120){let l=null;for(let i=e.length-1;i>=0;i--){let t=e[i];if("tool"===t.kind)l??=`${t.name} ${t.note??t.input}`;else if("text"===t.kind)return(0,n.clip)(l?`${t.text} → ${l}`:t.text,a);else if("ask"===t.kind)return(0,n.clip)(t.parent?`asked ${t.to}: ${t.text}`:`asked ${t.to} for: ${t.text}`,a);else if("user"===t.kind||"waiting"===t.kind)break}return l?(0,n.clip)(l,a):null}],944971)},105249,e=>{"use strict";var a=e.i(562810);e.s(["default",0,a])}];
2
+
3
+ //# sourceMappingURL=_0mh8j4m._.js.map