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,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=_0-fjql4._.js.map
@@ -0,0 +1,27 @@
1
+ module.exports=[159479,e=>e.a(async(t,a)=>{try{var n=e.i(847841),i=e.i(983477),r=e.i(687388),o=e.i(54282),s=e.i(316172),l=e.i(349047),c=e.i(926435),u=e.i(770639),d=e.i(489956),h=e.i(41181),m=e.i(353885),f=e.i(123203),w=e.i(944971),p=e.i(619898),g=e.i(636882),y=e.i(22676),b=e.i(786025),S=e.i(704161),T=e.i(640911),O=e.i(388439),v=e.i(41444),k=t([c,u,d,p,y]);async function M(t){let{listTaskHistory:a}=await e.A(353587),n=await a({limit:5});if(!n.length)return"No jobs have been handed over yet.";let i=n.map(e=>`"${e.label}" (${e.bot}, ${e.status})`).join(", ");return`There is no job called "${t}". The latest are: ${i}. Call again with one of those names.`}async function $(e,t){let a=[];for(let[e,i]of Object.entries(t)){let t=await (0,n.asSchema)(i.inputSchema).jsonSchema,r="string"==typeof i.description?i.description:"";a.push({name:e,tokens:(0,O.estimateTokens)(r)+(0,O.estimateTokens)(JSON.stringify(t))})}a.sort((e,t)=>t.tokens-e.tokens);let i=a.reduce((e,t)=>e+t.tokens,0);T.logger.debug(`${e} tools ${i} tokens over ${a.length} — ${a.map(e=>`${e.name} ${e.tokens}`).join(", ")}`)}async function E(e){let t=await N(e);return r.IS_DEV&&await $(e.target,t),t}async function N(t){if("memory-edit"===t.target){let e=(0,u.createMemoryTools)("user",null,{countReads:!1});return{[m.TOOL_NAMES.memory_recall]:e[m.TOOL_NAMES.memory_recall],[m.TOOL_NAMES.memory_remember]:e[m.TOOL_NAMES.memory_remember],[m.TOOL_NAMES.memory_forget]:e[m.TOOL_NAMES.memory_forget]}}let a=(0,u.createMemoryTools)("call","thursday"===t.target?t.callId??null:null),r=await (0,b.openWorkspace)();if("thursday"===t.target){var T;let{[m.TOOL_NAMES.memory_show]:c,...u}=a,{crowded:d,heavy:b}=(0,o.tidying)(await (0,p.listNoteIndex)()),O=await (0,y.readCallSkillsOn)()?(0,h.createSkillTools)({sandbox:r,skills:await (0,g.loadSkills)(r)}):{};return{...u,...d||b.length?{[m.TOOL_NAMES.memory_show]:c}:{},...O,...(0,f.createWorkspaceTools)(r,{write:!1}),...(T=t.callId,{[m.TOOL_NAMES.delegate]:(0,n.tool)({description:s.delegateSpec.description,inputSchema:s.delegateSpec.parameters,execute:async({bot:t,request:a,label:n})=>{let{findJobBot:i,listJobBots:r}=await e.A(814317),o=await i(t);if(!o||o.disabled){let e=(await r()).map(e=>e.name);return`There is no bot called "${t}". The bots are: ${e.join(", ")}. Nothing was handed over — call again with one of those.`}let{startTask:s}=await e.A(994193);return{taskId:await s({bot:o.name,request:a,label:n,callId:T}),note:`${o.name} has "${n}". Say so and keep talking — the result is put in front of you later. Everything further about it — an answer, a correction, carrying it on after it answers — is \`${m.TOOL_NAMES.task}\` with "${n}".`}}}),[m.TOOL_NAMES.task]:(0,n.tool)({description:s.taskSpec.description,inputSchema:s.taskSpec.parameters,execute:async({action:t,task:a,answer:n})=>{let{listTaskHistory:r,resolveTask:s}=await e.A(353587);if("status"===t){let e=n?.trim()?{note:"The text in `answer` was not passed on — `status` only reads. Send it again as `answer` if the bot is meant to hear it."}:{},t={now:(0,o.clockNow)()};if(a){let n=await s(a);return n?{...t,...e,label:n.label,bot:n.bot,status:n.status,since:(0,i.formatDistanceToNowStrict)((0,S.toDate)(n.updatedAt),{addSuffix:!0}),outcome:n.outcome,..."waiting"===n.status&&n.pending?.options.length?{options:n.pending.options}:{}}:await M(a)}let l=await r({limit:8});return{...t,...e,tasks:l.map(e=>({label:e.label,bot:e.bot,status:e.status,since:(0,i.formatDistanceToNowStrict)((0,S.toDate)(e.updatedAt),{addSuffix:!0}),...e.ask?{asking:e.ask.question,options:e.ask.options}:{},..."running"===e.status?{now:(0,w.taskActivity)(e.lines)}:{},...e.outcome&&"waiting"!==e.status?{outcome:(0,v.clip)(e.outcome,200)}:{}}))}}let{listInboxTasks:l}=await e.A(353587),c=a?await s(a):"answer"===t?(await l())[0]??null:null;if(!c)return a?await M(a):"answer"===t?"No job has moved yet — say which one, or check `status` first.":"Say which job — by its label. Call `status` with no job named to see them.";let{answerTask:u,cancelTask:d}=await e.A(994193);return"cancel"===t?(await d(c.id),{label:c.label,status:"cancelled"}):n?.trim()?(await u(c.id,n.trim()),{label:c.label,bot:c.bot,status:"running",note:"running"===c.status?"The bot reads it before its next step.":"The bot picks the job back up from there."}):"Say what to pass on."}})}),...l.CALL_TOOLS}}let O=await (0,g.loadSkills)(r);return{[m.TOOL_NAMES.memory_recall]:a[m.TOOL_NAMES.memory_recall],[m.TOOL_NAMES.memory_conversation]:a[m.TOOL_NAMES.memory_conversation],...await (0,d.createSearchTool)(t.model,r),...(0,f.createWorkspaceTools)(r,{write:!0,env:(0,b.jobShellEnv)(t.session),guide:!0}),...await (0,c.createMcpTools)(t.bot,r),...(0,h.createSkillTools)({sandbox:r,skills:O}),[m.TOOL_NAMES.ask_thursday]:s.askThursdayTool,[m.TOOL_NAMES.answer]:s.answerTool}}[c,u,d,p,y]=k.then?(await k)():k,e.s(["loadTools",0,E]),a()}catch(e){a(e)}},!1),54282,e=>{"use strict";var t=e.i(343747),a=e.i(983477),n=e.i(687388),i=e.i(704161),r=e.i(640911),o=e.i(388439);let s=(e=new Date)=>`${(0,t.format)(e,"yyyy-MM-dd (EEE) HH:mm")} ${Intl.DateTimeFormat().resolvedOptions().timeZone}`;e.s(["callStamp",0,e=>`${(0,t.format)(e,"yyyy-MM-dd (EEE) HH:mm")} (${(0,a.formatDistanceToNowStrict)(e,{addSuffix:!0})})`,"carriedLines",0,e=>e.map(e=>`- ${e.text} \xb7 ${e.path} #${e.id}`).join("\n"),"clockNow",0,s,"conversationLines",0,e=>e.map(e=>"tool"===e.role?`you → ${e.tool??"tool"}`:`${"user"===e.role?"user":"you"}: ${e.text}`).join("\n"),"logPromptSize",0,function(e,t){let a=(0,o.sectionTokens)(t),i=a.reduce((e,t)=>e+t.tokens,0);r.logger.debug(`${e} prompt ${i} tokens — ${a.map(e=>`${e.name} ${e.tokens}`).join(", ")}`);let s=a[0];i>n.PROMPT_BUDGET&&s&&r.logger.warn(`${e} prompt is ${i} tokens, over ${n.PROMPT_BUDGET}: ${s.name} carries ${s.tokens} of it. Every call and every job pays this.`)},"mcpToolLines",0,function(e){let t=new Map;for(let a of e){let e=t.get(a.server);e?e.push(a.name):t.set(a.server,[a.name])}return[...t].map(([e,t])=>`- **${e}**: ${t.join(", ")}`).join("\n")},"noteLines",0,function(e,t=!1){return e.length?e.map(e=>{var a;let n,r=e.aliases?.length?` ${e.aliases.map(e=>`"${e}"`).join(" ")}`:"",o=t?` \xb7 ${a=e.lastSeenAt,(n=Math.floor((Date.now()-(0,i.toDate)(a).getTime())/864e5))>=365?`${Math.floor(n/365)}y`:n>=30?`${Math.floor(n/30)}mo`:`${Math.max(n,0)}d`}`:"";return`- ${e.path} — ${e.description?.trim()} (${e.factCount})${r}${o}`}).join("\n"):"(nothing saved yet)"},"nowLine",0,(e=new Date)=>`**Now**: ${s(e)}`,"saidStamp",0,e=>(0,t.format)(e,"yyyy-MM-dd (EEE) HH:mm"),"skillLines",0,(e,t={})=>e.map(e=>{var a;let i,r;return`- **${e.name}**: ${t.short?(a=e.description,i=n.PROMPT_LINE.skill,(r=a.trim().split(/(?<=[.。])\s|\n/)[0].trim()).length>i?`${r.slice(0,i).trim()}…`:r):e.description}`}).join("\n"),"tidying",0,e=>({crowded:e.reduce((e,t)=>e+t.factCount,0)>n.MEMORY_LIMITS.facts,heavy:e.filter(e=>e.factCount>n.MEMORY_LIMITS.factsPerNote)})])},349047,e=>{"use strict";var t=e.i(847841),a=e.i(907855),n=e.i(353885);let i={name:n.TOOL_NAMES.end_call,description:`End the call.
2
+
3
+ Say goodbye first — nothing said after this reaches the user.`,parameters:a.object({})},r=(0,t.tool)({description:i.description,inputSchema:i.parameters}),o={[n.TOOL_NAMES.end_call]:r};e.s(["CALL_TOOLS",0,o])},926435,e=>e.a(async(t,a)=>{try{var n=e.i(847841),i=e.i(907855),r=e.i(353885),o=e.i(148831),s=e.i(660948),l=t([o,s]);[o,s]=l.then?(await l)():l;let d={[r.TOOL_NAMES.tool_search]:{name:r.TOOL_NAMES.tool_search,description:`Return the description and exact inputSchema of tools on a connected server, so they can be called with \`${r.TOOL_NAMES.tool_call}\`.`,parameters:i.object({server:i.string().describe("A server name, exactly as the Connected tools section writes it."),tools:i.string().array().describe("Tool names listed under that server. Only the ones you may actually call — schemas are large, and at most 8 come back.")})},[r.TOOL_NAMES.tool_call]:{name:r.TOOL_NAMES.tool_call,description:`Run one tool whose definition came back from \`${r.TOOL_NAMES.tool_search}\`.`,parameters:i.object({server:i.string().describe("The server the tool lives on."),tool:i.string().describe("Its name, as search returned it."),args:i.record(i.string(),i.unknown()).nullish().describe("Arguments matching the inputSchema search returned — do not guess. Null when it takes none."),description:i.string().nullish().describe("One short line for the user: what this call is for. Shown on their screen while it runs.")})}},h=(e,t)=>`${e.replace(/[^a-zA-Z0-9]+/g,"_")}__${t.replace(/[^a-zA-Z0-9_-]+/g,"_")}`.slice(0,64);async function c(e,t){let[a,i]=await Promise.all([(0,s.listConnectedToolNames)(),(0,o.findPinnedTools)(e)]),r={};for(let e of i){let a=h(e.server,e.name);r[a]||(r[a]=(0,n.tool)({description:e.description??`${e.name} on the ${e.server} server.`,inputSchema:(0,n.jsonSchema)(e.inputSchema??{type:"object",properties:{}}),execute:(a,{abortSignal:n})=>(0,s.callConnectedTool)(t,e.server,e.name,a??void 0,n)}))}return a.length>i.length&&Object.assign(r,m(t)),r}async function u(e){let t=(await (0,s.listConnectedToolNames)(e)).map(e=>e.name);if(t.length)return`Tools on "${e}": ${t.join(", ")}.`;let a=await (0,s.listConnectedServerNames)();return a.length?`There is no server called "${e}". Connected: ${a.join(", ")}.`:"Nothing is connected."}let m=e=>({[r.TOOL_NAMES.tool_search]:(0,n.tool)({description:d[r.TOOL_NAMES.tool_search].description,inputSchema:d[r.TOOL_NAMES.tool_search].parameters,execute:async({server:e,tools:t})=>{let a=[...new Set(t.map(e=>e.trim()).filter(Boolean))],n=a.slice(0,8),i=await (0,s.findConnectedSchemas)(e.trim(),n);if(!i.length)return{tools:[],note:await u(e)};let r=n.filter(e=>!i.some(t=>t.name===e)),o=a.slice(8),l=[r.length?`Not on "${e}": ${r.join(", ")}.`:"",o.length?`Only 8 at a time — ask again for: ${o.join(", ")}.`:""].filter(Boolean);return{tools:i,...l.length?{note:l.join(" ")}:{}}}}),[r.TOOL_NAMES.tool_call]:(0,n.tool)({description:d[r.TOOL_NAMES.tool_call].description,inputSchema:d[r.TOOL_NAMES.tool_call].parameters,execute:async({server:t,tool:a,args:n},{abortSignal:i})=>(await (0,s.listConnectedToolNames)(t.trim())).some(e=>e.name===a.trim())?(0,s.callConnectedTool)(e,t.trim(),a.trim(),n??void 0,i):{status:"error",text:await u(t)}})});e.s(["createMcpTools",0,c]),a()}catch(e){a(e)}},!1),770639,e=>e.a(async(t,a)=>{try{var n=e.i(847841),i=e.i(907855),r=e.i(380690),o=e.i(687388),s=e.i(54282),l=e.i(353885),c=e.i(619898),u=e.i(453569),d=e.i(22676),h=t([c,d]);[c,d]=h.then?(await h)():h;let m="Deleted for good. The listing in your instructions is from when this session opened and still shows it that way until the next one.",f=e=>({...e,facts:e.facts.map(({saidAt:e,...t})=>e?{...t,said:(0,s.saidStamp)(e)}:t),factCount:e.facts.length}),w=e=>"user"===e?"Typed on the screen — there is no conversation behind it.":"bot"===e?"Saved by a bot during a job — there is no conversation behind it.":"The conversation it was saved in is not kept.",p=e=>e>o.MEMORY_LIMITS.factsPerNote?` This note now holds ${e} facts, past the ${o.MEMORY_LIMITS.factsPerNote} one note holds well. Ask the user which of it is no longer true and delete what they name.`:"";e.s(["createMemoryTools",0,(e,t=null,{countReads:a=!0}={})=>({[l.TOOL_NAMES.memory_recall]:(0,n.tool)({description:"Open one note from the listing, whole.",inputSchema:i.object({path:i.string().describe("Exactly as the listing writes it — the path, or one of the names in quotes after it.")}),execute:async({path:e})=>{let{notes:t}=await (0,c.readNotes)([e],{touch:a}),n=t[0];if(!n)return{note:`Nothing on the listing called ${e.trim()}.`};let i=p(n.facts.length);return i?{...f(n),note:i.trim()}:f(n)}}),[l.TOOL_NAMES.memory_remember]:(0,n.tool)({description:"Write to one note: facts, and the line the listing shows for it. The path is the key — a path not on the listing is created (with at least one fact), one that is gets amended.",inputSchema:i.object({path:i.string().describe("Exactly as the listing writes it, or a new path following the same convention."),facts:i.object({text:i.string().describe("One statement that stands on its own later."),replaces:i.number().int().nullish().describe("The id of the fact this replaces — from this note as handed back here or by `memory_recall`. Null if this is new. A fact that stopped being true is replaced rather than deleted, and so is a note saying the same thing twice: replacing keeps what changed on the record, deleting does not."),alwaysLoad:i.boolean().nullish().describe(`True carries this line into every call's instructions without opening its note — for what to call them, their language and register, a standing rule. At most ${o.MEMORY_LIMITS.carried}. Null leaves it; false makes a carried line an ordinary fact.`)}).array().nullish().describe("What to write under this note. Send everything that came up at once: one call is one pause in the conversation, three calls are three. Null when only naming it."),description:i.string().nullish().describe(`One line saying what this note is about, not what it currently says. Give it for a new note, or when the line no longer fits. Null leaves it; ${u.APP_NAMED_NOTES.join(", ")} keep their own line.`),aliases:i.string().array().nullish().describe('What the user calls this note out loud, in the language they say it — the words they would use to ask for it, not the facts inside. A note at people/yuri might be "Yuri" and "my wife". Replaces the set it has, so send the whole set. Null leaves it.')}),execute:async a=>{let n=a.path.trim(),i=await (0,c.resolveNotePath)(n),r=a.aliases??null,s=i??n,l=(0,u.isAppNamed)(s)?(0,u.appNoteLine)(s):a.description?.trim()||null,d=a.facts??[];if(!d.length&&!l&&!r)return{note:"Nothing to write: send facts, a line, names, or any of them."};if(!i&&!d.length)return{note:`Nothing on the listing called ${n}. A note comes into being with a fact — send at least one.`};let h=i||(0,u.isMemoryPath)(n)?{path:s,description:l,aliases:r,facts:d}:{path:u.MEMORY_INBOX,description:(0,u.appNoteLine)(u.MEMORY_INBOX),facts:d},m=await (0,c.writeNotes)([h],e,t),w=h.path!==n?` Filed under ${h.path}: "${n}" is not a path this listing can carry. If that is not where it belongs, write it again under one that is.`:"",g=m.unnamed.length?` ${m.unnamed[0]} is new and has no line yet — the listing shows its first fact instead. Call again with \`description\` (one line about what it is) and \`aliases\` (the names they say for it).`:"",y=m.notLoaded.length?` All ${o.MEMORY_LIMITS.carried} carried lines are taken, so ${m.notLoaded.map(e=>`"${e}"`).join(", ")} saved as an ordinary fact. Say which carried line you would drop for it and let them choose.`:"",b=f(m.notes[0]);return{...b,note:`Saved. The listing in your instructions is from when this session opened and will not show this until the next one — the note below is current.${w}${g}${y}${p(b.factCount)}`}}}),[l.TOOL_NAMES.memory_conversation]:(0,n.tool)({description:"Open the conversation a fact was saved in, whole: what each side said, and which tools were used.",inputSchema:i.object({factId:i.number().int().describe("The id that came with the fact when its note was opened."),page:i.number().int().min(1).nullish().describe(`${o.MEMORY_CONVERSATION_PAGE} turns a page, oldest first. Null for the first.`)}),execute:async({factId:e,page:a})=>{let n=await (0,c.findFactCall)(e);if(!n)return{note:`No fact with id ${e}.`};if(!n.callId)return{note:w(n.source)};if(n.callId===t)return{note:"Said in this call — it is the conversation you are in."};let i=a??1,r=await (0,d.readCallConversation)(n.callId,i,o.MEMORY_CONVERSATION_PAGE);if(!r)return{note:w(n.source)};let l=Math.max(1,Math.ceil(r.total/o.MEMORY_CONVERSATION_PAGE));return i>l?{note:`That conversation has ${l} page${l>1?"s":""}.`}:{when:(0,s.callStamp)(r.startedAt),page:i,pages:l,conversation:(0,s.conversationLines)(r.turns)}}}),[l.TOOL_NAMES.memory_show]:(0,n.tool)({description:`Put a note on the user's screen so they can see it while you
4
+ talk about it, and take it away again. They cannot edit it there — they say
5
+ what to drop and you drop it.`,inputSchema:i.object({path:i.string().nullable().describe("The note to put on screen, exactly as the listing writes it. Null takes it away.")}),execute:async({path:e})=>{if(!e?.trim())return r.appEvents.emit({type:"memory-view",path:null}),{note:"Taken off the screen."};let{notes:t}=await (0,c.readNotes)([e],{touch:!1}),a=t[0];return a?(r.appEvents.emit({type:"memory-view",path:a.path}),{...a,note:"It is on their screen now, in this order. Ask what they no longer need, and forget only what they name."}):{note:`Nothing on the listing called ${e.trim()}.`}}}),[l.TOOL_NAMES.memory_forget]:(0,n.tool)({description:"Delete one fact for good.",inputSchema:i.object({factId:i.number().int().describe("The id that came with the fact when the note was opened.")}),execute:async({factId:e})=>{let t=await (0,c.forgetFactById)(e);if(!t)return{note:`No fact with id ${e}. Nothing was deleted.`};if(t.noteGone)return{note:`${m} That was the last fact under ${t.path}, so the note went with it.`};let{notes:a}=await (0,c.readNotes)([t.path],{touch:!1});return{...a[0],note:m}}})})]),a()}catch(e){a(e)}},!1),489956,e=>e.a(async(t,a)=>{try{var n=e.i(68356),i=e.i(847841),r=e.i(105249),o=e.i(687388),s=e.i(353885),l=e.i(279041),c=e.i(340698),u=e.i(41444),d=t([c]);[c]=d.then?(await d)():d;let f=`Answer the question from the web. Lead with the answer, then
6
+ what supports it. Say plainly what you could not find or confirm — do not fill
7
+ the gap with a guess. Every number carries the date you saw it. Be brief: this
8
+ is read by another model, not by a person.`,w=r.default.string().describe("What you want to know, as one full question. Put the place and the time in when they matter — the searcher sees nothing but this line.");async function h(e,t,a){let n=await fetch("https://api.exa.ai/search",{method:"POST",signal:a,headers:{"content-type":"application/json","x-api-key":e},body:JSON.stringify({query:t,type:"auto",numResults:o.SEARCH.sources,contents:{text:{maxCharacters:o.SEARCH.excerptChars},livecrawl:"fallback",livecrawlTimeout:5e3}})});if(!n.ok)return`Exa answered ${n.status}: ${(0,u.clip)((await n.text()).trim(),200)}`;let i=(await n.json()).results??[];return i.length?i.map(e=>{let t=[e.title?.trim(),e.url?.trim()].filter(Boolean).join(" — "),a=e.publishedDate?.slice(0,10);return[a?`${t} \xb7 ${a}`:t,e.text?.trim()].filter(Boolean).join("\n")}).join("\n\n"):"Nothing came back for that. Try other words, or open a page in the browser."}async function m(e,t,a){let{text:i,sources:r}=await (0,n.generateText)({model:e.model,tools:e.tools,system:f,prompt:t,abortSignal:a}),s=[...new Set(r.flatMap(e=>"url"===e.sourceType?[e.title?`${e.title} — ${e.url}`:e.url]:[]))].slice(0,o.SEARCH.sources);return[i.trim(),s.length?`Sources:
9
+ ${s.join("\n")}`:""].filter(Boolean).join("\n\n")}let p=async(e,t)=>{let a=await (0,c.readConfig)(l.EXA_API_KEY),n=e?.searchTools?{model:e.model,tools:e.searchTools}:null,d=a?(e,t)=>h(a,e,t):n?(e,t)=>m(n,e,t):null;return d?{[s.TOOL_NAMES.web_search]:(0,i.tool)({description:"Search the web and get back what the pages say, with their links. For a fact, a price, a date, what a page says. Not for a page that has to be clicked, filled, or signed into — that is the browser.",inputSchema:r.default.object({query:w}),execute:async({query:e},{abortSignal:a})=>{let n=AbortSignal.timeout(o.SEARCH.timeoutMs),i=a?AbortSignal.any([a,n]):n,r=await d(e,i).catch(e=>{if(a?.aborted)throw e;return n.aborted?`The search did not come back in ${o.SEARCH.timeoutMs/1e3}s. Ask something narrower, or open the page in the browser.`:`Search failed: ${(0,u.errorToString)(e)}. The browser is the other way in.`});return t.fold(r,"web-search")}})}:{}};e.s(["createSearchTool",0,p]),a()}catch(e){a(e)}},!1),41181,e=>{"use strict";var t=e.i(847841),a=e.i(105249),n=e.i(353885),i=e.i(696968);e.s(["createSkillTools",0,({skills:e,sandbox:r})=>{let o=new Set;return{[n.TOOL_NAMES.load_skill]:(0,t.tool)({description:"Load one skill: its instructions, and the files that ship with it.",inputSchema:a.default.object({name:a.default.string().describe("Exact name from the Skills list. Do not guess names that are not on it.")}),execute:async({name:t})=>{let a=e.find(e=>e.name.toLowerCase()===t.toLowerCase());if(!a)return{error:`No skill named '${t}'.`,available:e.map(e=>e.name)};let n=`${a.path}/SKILL.md`;if(o.has(a.path))return{skillDirectory:a.path,note:`You already loaded '${a.name}' in this run — its instructions are above, unchanged. Scroll back to that result rather than reading it again; if you need the file itself, read ${n} with the shell.`};let s=await r.readFile(n,"utf-8"),{body:l}=(0,i.splitFrontmatter)(s),c=await r.glob("**/*",{path:a.path,limit:50});return o.add(a.path),{skillDirectory:a.path,files:c,content:l}}})}}])},741376,e=>e.a(async(t,a)=>{try{var n=e.i(912714),i=e.i(750227),r=e.i(68356),o=e.i(343747),s=e.i(105249),l=e.i(687388),c=e.i(386075),u=e.i(353885),d=e.i(640911),h=e.i(41444),m=t([c]);function f(e){return{...e,execute:(t,a)=>{let n=e.inputSchema.safeParse(t);if(!n.success)throw Error(s.default.prettifyError(n.error));return e.execute(n.data,a)}}}[c]=m.then?(await m)():m;let b={images:`${l.PATHS.artifacts}/images`,audio:`${l.PATHS.artifacts}/audio`,transcripts:`${l.PATHS.artifacts}/transcripts`,videos:`${l.PATHS.artifacts}/videos`};function w(e,t){let a=e.toLowerCase().replace(/[^\p{L}\p{N}]+/gu,"-").replace(/^-+|-+$/g,"").slice(0,40),n=(0,o.format)(new Date,"yyyyMMdd-HHmmss");return`${n}${a?`-${a}`:""}.${t}`}async function p(e,t,a,n){let i=`${t}/${a}`;return await e.exec(`mkdir -p ${t}`),await e.writeFile(i,Buffer.from(n)),i}let S=e=>`${e}
10
+ Saved. Give the user this path — the file opens from the task row. Do not describe it back to them; they can open it.`,T=(e,t)=>e?.split("/")[1]?.split(";")[0]||t,O=["1:1","16:9","9:16","4:3","3:4"],v=async()=>{let e=await (0,c.resolveMediaRef)("image");if(!e)return null;let t=(0,c.buildImageModel)(e.ref,e.apiKey);return f({name:u.STUDIO_TOOLS.generate_image,description:"Draw an image and save it as a file in the workspace. What comes back is its path.",inputSchema:s.default.object({prompt:s.default.string().describe("What to draw, described: subject, style, mood, what is in frame. The image model does not see the job or the conversation, so nothing can be left implied."),aspectRatio:s.default.enum(O).nullish().describe("Aspect ratio. Null for square.")}),execute:async({prompt:e,aspectRatio:a},{sandbox:n,abortSignal:i})=>{let{image:o}=await (0,r.generateImage)({model:t,prompt:e,aspectRatio:a??"1:1",abortSignal:i}),s=await p(n,b.images,w(e,T(o.mediaType,"png")),o.uint8Array);return S(s)}})},k=async()=>{let e=await (0,c.resolveMediaRef)("speech");if(!e)return null;let t=(0,c.buildSpeechModel)(e.ref,e.apiKey);return f({name:u.STUDIO_TOOLS.generate_speech,description:"Read text aloud into an audio file in the workspace — something the user listens to or sends, not Thursday's voice. What comes back is its path.",inputSchema:s.default.object({text:s.default.string().min(1).max(4e3).describe("The words to read, up to 4000 characters. Longer pieces are read in parts, one call each."),voice:s.default.string().nullish().describe("A voice name the provider knows. Null for its default."),instructions:s.default.string().nullish().describe('How to read it — "slowly", "warm", "like a news anchor". Null for plain.')}),execute:async({text:e,voice:a,instructions:n},{sandbox:i,abortSignal:o})=>{let{audio:s}=await (0,r.generateSpeech)({model:t,text:e,voice:a??void 0,instructions:n??void 0,outputFormat:"mp3",abortSignal:o}),l=await p(i,b.audio,w(e.slice(0,60),s.format||"mp3"),s.uint8Array);return S(l)}})},M=async()=>{let e=await (0,c.resolveMediaRef)("transcription");if(!e)return null;let t=(0,c.buildTranscriptionModel)(e.ref,e.apiKey);return f({name:u.STUDIO_TOOLS.transcribe,description:"Turn an audio file — a recording, a voice memo, a meeting — into text. The transcript is saved as a file in the workspace; what comes back is its path and the text.",inputSchema:s.default.object({path:s.default.string().min(1).describe("The audio file: a path relative to the workspace, or an absolute one anywhere on this machine.")}),execute:async({path:e},{sandbox:a,abortSignal:o})=>{let s=await (0,n.readFile)(a.resolve(e)),l=await (0,r.transcribe)({model:t,audio:s,abortSignal:o}),c=l.segments.length?`
11
+
12
+ ## Timeline
13
+
14
+ ${l.segments.map(e=>{var t;let a,n;return`- ${t=e.startSecond,a=Math.floor(t/60),n=Math.floor(t%60),`${a}:${String(n).padStart(2,"0")}`} ${e.text.trim()}`}).join("\n")}`:"",u=(0,i.basename)(e,(0,i.extname)(e)),d=await p(a,b.transcripts,w(u,"md"),Buffer.from(`# ${u}
15
+
16
+ ${l.text.trim()}${c}
17
+ `));return`${d}
18
+
19
+ ${await a.fold(l.text,"transcript")}`}})},$=async()=>{let e=await (0,c.resolveMediaRef)("video");if(!e)return null;let t=(0,c.buildVideoModel)(e.ref,e.apiKey);return f({name:u.STUDIO_TOOLS.generate_video,description:"Make a short video and save it as a file in the workspace. Takes minutes. What comes back is its path.",inputSchema:s.default.object({prompt:s.default.string().describe("What happens: the scene, the motion, the camera, the mood. The video model does not see the job or the conversation, so nothing can be left implied."),aspectRatio:s.default.enum(["16:9","9:16"]).nullish().describe("Aspect ratio. Null for 16:9."),seconds:s.default.number().int().min(2).max(10).nullish().describe("Length in seconds, 2 to 10. Null for the provider's default.")}),execute:async({prompt:e,aspectRatio:a,seconds:n},{sandbox:i,abortSignal:o})=>{let{video:s}=await (0,r.experimental_generateVideo)({model:t,prompt:e,aspectRatio:a??"16:9",duration:n??void 0,abortSignal:o}),l=await p(i,b.videos,w(e,T(s.mediaType,"mp4")),s.uint8Array);return S(l)}})};async function g(){return(await Promise.all([y(v),y(k),y(M),y($)])).filter(e=>null!==e)}async function y(e){try{return await e()}catch(e){return d.logger.warn(`studio: a tool could not be built — ${(0,h.errorToString)(e)}`),null}}e.s(["loadStudio",0,g]),a()}catch(e){a(e)}},!1),660948,e=>e.a(async(t,a)=>{try{var n=e.i(105249),i=e.i(687388),r=e.i(105303),o=e.i(148831),s=e.i(41444),l=e.i(741376),c=t([r,o,l]);async function u(e){let[t,a]=await Promise.all([!e||e===i.STUDIO_SERVER?(0,l.loadStudio)():[],e===i.STUDIO_SERVER?[]:(0,o.listToolNames)(e)]);return[...t.map(e=>({server:i.STUDIO_SERVER,name:e.name})),...a]}[r,o,l]=c.then?(await c)():c;let w=async()=>{let[e,t]=await Promise.all([(0,l.loadStudio)(),(0,o.listServerNames)()]);return[...e.length?[i.STUDIO_SERVER]:[],...t.map(e=>e.name)]};async function d(e,t){if(e===i.STUDIO_SERVER){let e=new Set(t);return(await (0,l.loadStudio)()).filter(t=>e.has(t.name)).map(e=>({name:e.name,description:e.description,inputSchema:n.default.toJSONSchema(e.inputSchema)}))}return(await (0,o.findToolSchemas)(e,t)).map(e=>({name:e.name,description:e.description??null,inputSchema:e.inputSchema??null}))}async function h(e,t,a,n,o){let l=AbortSignal.timeout(i.CONNECTED_TOOL_TIMEOUT_MS),c=o?AbortSignal.any([o,l]):l;try{let r=t===i.STUDIO_SERVER?await m(e,a,n,c):await f(t,a,n,c);if("string"!=typeof r)return r;return{status:"ok",text:await e.fold(r,`${t}-${a}`)}}catch(e){if(e instanceof r.McpAuthRequiredError)return{status:"auth_required",server:t,authorizationUrl:e.authorizationUrl};if(l.aborted&&!o?.aborted)return{status:"error",text:`${a} on ${t} gave no answer in ${i.CONNECTED_TOOL_TIMEOUT_MS/6e4} minutes and was given up on.`};return{status:"error",text:(0,s.errorToString)(e)}}}async function m(e,t,a,n){let r=(await (0,l.loadStudio)()).find(e=>e.name===t);if(!r)throw Error(`"${t}" is not in the ${i.STUDIO_SERVER} right now — the key that runs it is gone.`);return r.execute(a??{},{sandbox:e,abortSignal:n})}async function f(e,t,a,n){let i=function(e){let t=e??{},a=!0===t.isError;if(!Array.isArray(t.content)){let e=void 0===t.toolResult?"":"string"==typeof t.toolResult?t.toolResult:JSON.stringify(t.toolResult);return{status:a?"error":"ok",text:e||p(a)}}let n=t.content.map(e=>"text"===e.type&&"string"==typeof e.text?e.text:`[${e.type}${e.mimeType?` ${e.mimeType}`:""} — not shown]`).join("\n").trim();return{status:a?"error":"ok",text:n||p(a)}}(await r.mcpManager.callTool(e,t,a,n));return"ok"===i.status?i.text:i}let p=e=>e?"The tool failed without a message.":"Done.";e.s(["callConnectedTool",0,h,"findConnectedSchemas",0,d,"listConnectedServerNames",0,w,"listConnectedToolNames",0,u]),a()}catch(e){a(e)}},!1),123203,e=>{"use strict";var t=e.i(750227),a=e.i(847841),n=e.i(105249),i=e.i(687388),r=e.i(353885),o=e.i(786025);let s=`## The shell here
20
+
21
+ Every command is a new shell: \`cd\`, exported variables and an activated venv are gone by the next one — chain what depends on the last step into a single command.
22
+
23
+ Nothing is watching it. A command that stops to ask never gets an answer and is killed after ${i.EXEC_TIMEOUT_MS/1e3}s, so pass the flag that skips the question (\`-y\`, \`--yes\`, \`--no-input\`), and send anything genuinely long to the background with its output redirected to a file.
24
+
25
+ Keys are not in the environment: every variable named like a key, a token or a secret is removed before the shell starts. An empty one is not an unset one — say which it was, and ask for what a command needs.`;e.s(["createWorkspaceTools",0,(e,i)=>{let l=!0===i.guide,c=(0,a.tool)({description:"Run a bash command.",inputSchema:n.default.object({command:n.default.string(),description:n.default.string().nullish().describe("One short line for the user: what this command does and why. Shown on their screen while it runs — not a restatement of the command.")}),execute:async({command:t},{abortSignal:a})=>{let n=await e.exec(t,{signal:a,env:i.env});return l?(l=!1,{...n,guide:s}):n}});if(!i.write)return{[r.TOOL_NAMES.bash]:c};let u=(0,a.tool)({description:"Write a whole file — what was there is gone. Parent directories are created.",inputSchema:n.default.object({path:n.default.string().describe("Relative to the working directory — under one of its folders — or absolute"),content:n.default.string(),description:n.default.string().nullish().describe("One short line for the user: what this file is. Shown on their screen next to the path.")}),execute:async({path:a,content:n})=>{let i,r=e.resolve(a),s=(0,o.writeRefusal)(r);return s?s:(await e.writeFile(a,n),`Wrote ${(i=(0,t.relative)(e.cwd,r))&&!i.startsWith("..")?i:r} (${n.split("\n").length} lines)`)}});return{[r.TOOL_NAMES.bash]:c,[r.TOOL_NAMES.write_file]:u}}])},636882,e=>{"use strict";var t=e.i(750227),a=e.i(687388),n=e.i(640911),i=e.i(41444),r=e.i(696968);let o=[(0,t.join)(a.APP_DIR,a.PATHS.skills.default),(0,t.join)(a.DATA_DIR,a.PATHS.skills.custom)];async function s(e,t){let a=[],o=new Set;for(let s of t){let t;try{t=await e.readdir(s,{withFileTypes:!0})}catch{continue}for(let l of t){let t,c;if(!l.isDirectory())continue;let u=`${s}/${l.name}`,d=`${u}/SKILL.md`;try{t=await e.readFile(d,"utf-8")}catch{continue}try{c=(0,r.parseFrontmatter)(t)}catch(e){n.logger.warn(`skill ${u}: SKILL.md front matter did not load — ${(0,i.errorToString)(e)}`);continue}!o.has(c.name)&&(o.add(c.name),c.disabled||a.push({name:c.name,description:c.description,path:u}))}}return a}e.s(["loadSkills",0,e=>s(e,o)])},388439,e=>{"use strict";let t=/[\u1100-\u11ff\u3040-\u30ff\u3130-\u318f\u4e00-\u9fff\uac00-\ud7af]/;function a(e){let a=0,n=0;for(let i of e)t.test(i)?a+=1:n+=1;return Math.ceil(a/1.3+n/4)}e.s(["estimateTokens",0,a,"sectionTokens",0,function(e){return e.split(/\n(?=## )/).map(e=>({name:e.startsWith("## ")?e.slice(3,e.indexOf("\n")):"identity",tokens:a(e)})).sort((e,t)=>t.tokens-e.tokens)}])},343747,e=>{"use strict";var t=e.i(881237),a=e.i(662001),n=e.i(89929),i=e.i(277988),r=e.i(438220),o=e.i(609730);function s(e,t){let a=(0,o.toDate)(e,t?.in);return a.setHours(0,0,0,0),a}function l(e,t){let n=(0,a.getDefaultOptions)(),i=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,r=(0,o.toDate)(e,t?.in),s=r.getDay();return r.setDate(r.getDate()-(7*(s<i)+s-i)),r.setHours(0,0,0,0),r}function c(e,t){return l(e,{...t,weekStartsOn:1})}var u=e.i(874321);function d(e,t){let a=(0,o.toDate)(e,t?.in),n=a.getFullYear(),i=(0,u.constructFrom)(a,0);i.setFullYear(n+1,0,4),i.setHours(0,0,0,0);let r=c(i),s=(0,u.constructFrom)(a,0);s.setFullYear(n,0,4),s.setHours(0,0,0,0);let l=c(s);return a.getTime()>=r.getTime()?n+1:a.getTime()>=l.getTime()?n:n-1}function h(e,t){let n=(0,o.toDate)(e,t?.in),i=n.getFullYear(),r=(0,a.getDefaultOptions)(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,c=(0,u.constructFrom)(t?.in||e,0);c.setFullYear(i+1,0,s),c.setHours(0,0,0,0);let d=l(c,t),h=(0,u.constructFrom)(t?.in||e,0);h.setFullYear(i,0,s),h.setHours(0,0,0,0);let m=l(h,t);return+n>=+d?i+1:+n>=+m?i:i-1}function m(e,t){let a=Math.abs(e).toString().padStart(t,"0");return(e<0?"-":"")+a}let f={y(e,t){let a=e.getFullYear(),n=a>0?a:1-a;return m("yy"===t?n%100:n,t.length)},M(e,t){let a=e.getMonth();return"M"===t?String(a+1):m(a+1,2)},d:(e,t)=>m(e.getDate(),t.length),a(e,t){let a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return a.toUpperCase();case"aaa":return a;case"aaaaa":return a[0];default:return"am"===a?"a.m.":"p.m."}},h:(e,t)=>m(e.getHours()%12||12,t.length),H:(e,t)=>m(e.getHours(),t.length),m:(e,t)=>m(e.getMinutes(),t.length),s:(e,t)=>m(e.getSeconds(),t.length),S(e,t){let a=t.length;return m(Math.trunc(e.getMilliseconds()*Math.pow(10,a-3)),t.length)}},w={G:function(e,t,a){let n=+(e.getFullYear()>0);switch(t){case"G":case"GG":case"GGG":return a.era(n,{width:"abbreviated"});case"GGGGG":return a.era(n,{width:"narrow"});default:return a.era(n,{width:"wide"})}},y:function(e,t,a){if("yo"===t){let t=e.getFullYear();return a.ordinalNumber(t>0?t:1-t,{unit:"year"})}return f.y(e,t)},Y:function(e,t,a,n){let i=h(e,n),r=i>0?i:1-i;return"YY"===t?m(r%100,2):"Yo"===t?a.ordinalNumber(r,{unit:"year"}):m(r,t.length)},R:function(e,t){return m(d(e),t.length)},u:function(e,t){return m(e.getFullYear(),t.length)},Q:function(e,t,a){let n=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(n);case"QQ":return m(n,2);case"Qo":return a.ordinalNumber(n,{unit:"quarter"});case"QQQ":return a.quarter(n,{width:"abbreviated",context:"formatting"});case"QQQQQ":return a.quarter(n,{width:"narrow",context:"formatting"});default:return a.quarter(n,{width:"wide",context:"formatting"})}},q:function(e,t,a){let n=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(n);case"qq":return m(n,2);case"qo":return a.ordinalNumber(n,{unit:"quarter"});case"qqq":return a.quarter(n,{width:"abbreviated",context:"standalone"});case"qqqqq":return a.quarter(n,{width:"narrow",context:"standalone"});default:return a.quarter(n,{width:"wide",context:"standalone"})}},M:function(e,t,a){let n=e.getMonth();switch(t){case"M":case"MM":return f.M(e,t);case"Mo":return a.ordinalNumber(n+1,{unit:"month"});case"MMM":return a.month(n,{width:"abbreviated",context:"formatting"});case"MMMMM":return a.month(n,{width:"narrow",context:"formatting"});default:return a.month(n,{width:"wide",context:"formatting"})}},L:function(e,t,a){let n=e.getMonth();switch(t){case"L":return String(n+1);case"LL":return m(n+1,2);case"Lo":return a.ordinalNumber(n+1,{unit:"month"});case"LLL":return a.month(n,{width:"abbreviated",context:"standalone"});case"LLLLL":return a.month(n,{width:"narrow",context:"standalone"});default:return a.month(n,{width:"wide",context:"standalone"})}},w:function(e,t,n,i){let s,c,d,f,w,p=Math.round((l(s=(0,o.toDate)(e,i?.in),i)-(c=(0,a.getDefaultOptions)(),d=i?.firstWeekContainsDate??i?.locale?.options?.firstWeekContainsDate??c.firstWeekContainsDate??c.locale?.options?.firstWeekContainsDate??1,f=h(s,i),(w=(0,u.constructFrom)(i?.in||s,0)).setFullYear(f,0,d),w.setHours(0,0,0,0),l(w,i)))/r.millisecondsInWeek)+1;return"wo"===t?n.ordinalNumber(p,{unit:"week"}):m(p,t.length)},I:function(e,t,a){let n,i,s,l=Math.round((c(n=(0,o.toDate)(e,void 0))-(i=d(n,void 0),(s=(0,u.constructFrom)(n,0)).setFullYear(i,0,4),s.setHours(0,0,0,0),c(s)))/r.millisecondsInWeek)+1;return"Io"===t?a.ordinalNumber(l,{unit:"week"}):m(l,t.length)},d:function(e,t,a){return"do"===t?a.ordinalNumber(e.getDate(),{unit:"date"}):f.d(e,t)},D:function(e,t,a){let l,c,u=function(e,t){let[a,o]=(0,i.normalizeDates)(void 0,e,t),l=s(a),c=s(o);return Math.round((l-(0,n.getTimezoneOffsetInMilliseconds)(l)-(c-(0,n.getTimezoneOffsetInMilliseconds)(c)))/r.millisecondsInDay)}(l=(0,o.toDate)(e,void 0),((c=(0,o.toDate)(l,void 0)).setFullYear(c.getFullYear(),0,1),c.setHours(0,0,0,0),c))+1;return"Do"===t?a.ordinalNumber(u,{unit:"dayOfYear"}):m(u,t.length)},E:function(e,t,a){let n=e.getDay();switch(t){case"E":case"EE":case"EEE":return a.day(n,{width:"abbreviated",context:"formatting"});case"EEEEE":return a.day(n,{width:"narrow",context:"formatting"});case"EEEEEE":return a.day(n,{width:"short",context:"formatting"});default:return a.day(n,{width:"wide",context:"formatting"})}},e:function(e,t,a,n){let i=e.getDay(),r=(i-n.weekStartsOn+8)%7||7;switch(t){case"e":return String(r);case"ee":return m(r,2);case"eo":return a.ordinalNumber(r,{unit:"day"});case"eee":return a.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return a.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return a.day(i,{width:"short",context:"formatting"});default:return a.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,a,n){let i=e.getDay(),r=(i-n.weekStartsOn+8)%7||7;switch(t){case"c":return String(r);case"cc":return m(r,t.length);case"co":return a.ordinalNumber(r,{unit:"day"});case"ccc":return a.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return a.day(i,{width:"narrow",context:"standalone"});case"cccccc":return a.day(i,{width:"short",context:"standalone"});default:return a.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,a){let n=e.getDay(),i=0===n?7:n;switch(t){case"i":return String(i);case"ii":return m(i,t.length);case"io":return a.ordinalNumber(i,{unit:"day"});case"iii":return a.day(n,{width:"abbreviated",context:"formatting"});case"iiiii":return a.day(n,{width:"narrow",context:"formatting"});case"iiiiii":return a.day(n,{width:"short",context:"formatting"});default:return a.day(n,{width:"wide",context:"formatting"})}},a:function(e,t,a){let n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return a.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"aaa":return a.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return a.dayPeriod(n,{width:"narrow",context:"formatting"});default:return a.dayPeriod(n,{width:"wide",context:"formatting"})}},b:function(e,t,a){let n,i=e.getHours();switch(n=12===i?"noon":0===i?"midnight":i/12>=1?"pm":"am",t){case"b":case"bb":return a.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"bbb":return a.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return a.dayPeriod(n,{width:"narrow",context:"formatting"});default:return a.dayPeriod(n,{width:"wide",context:"formatting"})}},B:function(e,t,a){let n,i=e.getHours();switch(n=i>=17?"evening":i>=12?"afternoon":i>=4?"morning":"night",t){case"B":case"BB":case"BBB":return a.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"BBBBB":return a.dayPeriod(n,{width:"narrow",context:"formatting"});default:return a.dayPeriod(n,{width:"wide",context:"formatting"})}},h:function(e,t,a){if("ho"===t){let t=e.getHours()%12;return 0===t&&(t=12),a.ordinalNumber(t,{unit:"hour"})}return f.h(e,t)},H:function(e,t,a){return"Ho"===t?a.ordinalNumber(e.getHours(),{unit:"hour"}):f.H(e,t)},K:function(e,t,a){let n=e.getHours()%12;return"Ko"===t?a.ordinalNumber(n,{unit:"hour"}):m(n,t.length)},k:function(e,t,a){let n=e.getHours();return(0===n&&(n=24),"ko"===t)?a.ordinalNumber(n,{unit:"hour"}):m(n,t.length)},m:function(e,t,a){return"mo"===t?a.ordinalNumber(e.getMinutes(),{unit:"minute"}):f.m(e,t)},s:function(e,t,a){return"so"===t?a.ordinalNumber(e.getSeconds(),{unit:"second"}):f.s(e,t)},S:function(e,t){return f.S(e,t)},X:function(e,t,a){let n=e.getTimezoneOffset();if(0===n)return"Z";switch(t){case"X":return g(n);case"XXXX":case"XX":return y(n);default:return y(n,":")}},x:function(e,t,a){let n=e.getTimezoneOffset();switch(t){case"x":return g(n);case"xxxx":case"xx":return y(n);default:return y(n,":")}},O:function(e,t,a){let n=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+p(n,":");default:return"GMT"+y(n,":")}},z:function(e,t,a){let n=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+p(n,":");default:return"GMT"+y(n,":")}},t:function(e,t,a){return m(Math.trunc(e/1e3),t.length)},T:function(e,t,a){return m(+e,t.length)}};function p(e,t=""){let a=e>0?"-":"+",n=Math.abs(e),i=Math.trunc(n/60),r=n%60;return 0===r?a+String(i):a+String(i)+t+m(r,2)}function g(e,t){return e%60==0?(e>0?"-":"+")+m(Math.abs(e)/60,2):y(e,t)}function y(e,t=""){let a=Math.abs(e);return(e>0?"-":"+")+m(Math.trunc(a/60),2)+t+m(a%60,2)}let b=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},S=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},T={p:S,P:(e,t)=>{let a,n=e.match(/(P+)(p+)?/)||[],i=n[1],r=n[2];if(!r)return b(e,t);switch(i){case"P":a=t.dateTime({width:"short"});break;case"PP":a=t.dateTime({width:"medium"});break;case"PPP":a=t.dateTime({width:"long"});break;default:a=t.dateTime({width:"full"})}return a.replace("{{date}}",b(i,t)).replace("{{time}}",S(r,t))}},O=/^D+$/,v=/^Y+$/,k=["D","DD","YY","YYYY"],M=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,$=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,E=/^'([^]*?)'?$/,N=/''/g,_=/[a-zA-Z]/;e.s(["format",0,function(e,n,i){let r=(0,a.getDefaultOptions)(),s=i?.locale??r.locale??t.defaultLocale,l=i?.firstWeekContainsDate??i?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,c=i?.weekStartsOn??i?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,u=(0,o.toDate)(e,i?.in);if(!(u instanceof Date||"object"==typeof u&&"[object Date]"===Object.prototype.toString.call(u))&&"number"!=typeof u||isNaN(+(0,o.toDate)(u)))throw RangeError("Invalid time value");let d=n.match($).map(e=>{let t=e[0];return"p"===t||"P"===t?(0,T[t])(e,s.formatLong):e}).join("").match(M).map(e=>{if("''"===e)return{isToken:!1,value:"'"};let t=e[0];if("'"===t){var a;let t;return{isToken:!1,value:(t=(a=e).match(E))?t[1].replace(N,"'"):a}}if(w[t])return{isToken:!0,value:e};if(t.match(_))throw RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return{isToken:!1,value:e}});s.localize.preprocessor&&(d=s.localize.preprocessor(u,d));let h={firstWeekContainsDate:l,weekStartsOn:c,locale:s};return d.map(t=>{if(!t.isToken)return t.value;let a=t.value;return(!i?.useAdditionalWeekYearTokens&&v.test(a)||!i?.useAdditionalDayOfYearTokens&&O.test(a))&&function(e,t,a){var n,i,r;let o,s=(n=e,i=t,r=a,o="Y"===n[0]?"years":"days of the month",`Use \`${n.toLowerCase()}\` instead of \`${n}\` (in \`${i}\`) for formatting ${o} to the input \`${r}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`);if(console.warn(s),k.includes(e))throw RangeError(s)}(a,n,String(e)),(0,w[a[0]])(u,a,s.localize,h)}).join("")}],343747)}];
26
+
27
+ //# sourceMappingURL=_00xh_q0._.js.map