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.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +5 -2
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +5 -5
- package/.next/routes-manifest.json +24 -6
- package/.next/server/app/_global-error/page.js +2 -2
- package/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +2 -2
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +2 -2
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +14 -14
- package/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +12 -12
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/artifact/route.js +3 -3
- package/.next/server/app/api/artifact/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/memory/files/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/bot/memory/files/route.js +10 -0
- package/.next/server/app/api/bot/memory/files/route.js.nft.json +1 -0
- package/.next/server/app/api/bot/memory/files/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/bot/memory/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/bot/memory/route.js +14 -0
- package/.next/server/app/api/bot/{notes → memory}/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/memory/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/bot/route.js +6 -6
- package/.next/server/app/api/bot/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/task/[id]/route.js +8 -8
- package/.next/server/app/api/bot/task/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/task/route.js +8 -8
- package/.next/server/app/api/bot/task/route.js.nft.json +1 -1
- package/.next/server/app/api/config/route.js +5 -5
- package/.next/server/app/api/config/route.js.nft.json +1 -1
- package/.next/server/app/api/events/route.js +4 -5
- package/.next/server/app/api/events/route.js.nft.json +1 -1
- package/.next/server/app/api/file/[...path]/route.js +3 -3
- package/.next/server/app/api/file/[...path]/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/catalog/route.js +9 -8
- package/.next/server/app/api/llm-model/catalog/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/credits/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/llm-model/credits/route/build-manifest.json +12 -0
- package/.next/server/app/api/llm-model/credits/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/llm-model/credits/route.js +16 -0
- package/.next/server/app/api/llm-model/credits/route.js.map +5 -0
- package/.next/server/app/api/llm-model/credits/route.js.nft.json +1 -0
- package/.next/server/app/api/llm-model/credits/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/llm-model/route.js +10 -8
- package/.next/server/app/api/llm-model/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/subscription/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/llm-model/subscription/route/build-manifest.json +12 -0
- package/.next/server/app/api/llm-model/subscription/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/llm-model/subscription/route.js +15 -0
- package/.next/server/app/api/llm-model/subscription/route.js.map +5 -0
- package/.next/server/app/api/llm-model/subscription/route.js.nft.json +1 -0
- package/.next/server/app/api/llm-model/subscription/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/mcp/[name]/route.js +4 -4
- package/.next/server/app/api/mcp/[name]/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/oauth/callback/route.js +5 -5
- package/.next/server/app/api/mcp/oauth/callback/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/route.js +4 -4
- package/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/tools/route.js +4 -4
- package/.next/server/app/api/mcp/tools/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/edit/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/memory/edit/route/build-manifest.json +12 -0
- package/.next/server/app/api/memory/edit/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/memory/edit/route.js +24 -0
- package/.next/server/app/api/memory/edit/route.js.map +5 -0
- package/.next/server/app/api/memory/edit/route.js.nft.json +1 -0
- package/.next/server/app/api/memory/{tidy → edit}/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/memory/route.js +6 -7
- package/.next/server/app/api/memory/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/[source]/[name]/route.js +3 -3
- package/.next/server/app/api/skills/[source]/[name]/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/route.js +3 -3
- package/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/call/route.js +9 -7
- package/.next/server/app/api/thursday/call/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/skills/route.js +9 -7
- package/.next/server/app/api/thursday/skills/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/tool-call/route.js +17 -15
- package/.next/server/app/api/thursday/tool-call/route.js.nft.json +1 -1
- package/.next/server/app/api/workspace/route.js +4 -5
- package/.next/server/app/api/workspace/route.js.nft.json +1 -1
- package/.next/server/app/artifact/[...path]/page/server-reference-manifest.json +1 -1
- package/.next/server/app/artifact/[...path]/page.js +5 -6
- package/.next/server/app/artifact/[...path]/page.js.nft.json +1 -1
- package/.next/server/app/artifact/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/favicon.ico/route.js +3 -4
- package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/.next/server/app/favicon.ico.body +0 -0
- package/.next/server/app/page/server-reference-manifest.json +57 -90
- package/.next/server/app/page.js +10 -10
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +5 -2
- package/.next/server/chunks/[externals]__0dzuk6_._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__01dkp4a._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__02va5wz._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__02xjoto._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__04q--0f._.js +8 -0
- package/.next/server/chunks/[root-of-the-server]__0bl-e63._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0ce8nf8._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__0ffbg85._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0j7z0r3._.js +12 -0
- package/.next/server/chunks/[root-of-the-server]__0jq4ohy._.js +8 -0
- package/.next/server/chunks/[root-of-the-server]__0ls6_8y._.js +8 -0
- package/.next/server/chunks/[root-of-the-server]__0ncs9uu._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0pa2n68._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0q0vvt2._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__1-ga0kh._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__11n256_._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__12cabg9._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1339jnv._.js +8 -0
- package/.next/server/chunks/[root-of-the-server]__15bjnu5._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__18_teo8._.js +8 -0
- package/.next/server/chunks/[root-of-the-server]__1_04mcf._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__1anc1p9._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1ccon1w._.js +5 -5
- package/.next/server/chunks/[root-of-the-server]__1fizn31._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1llj3-b._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1orn-5b._.js +11 -0
- package/.next/server/chunks/[root-of-the-server]__1p8m3f4._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1wa1k7r._.js +8 -0
- package/.next/server/chunks/_0-73of8._.js +5 -5
- package/.next/server/chunks/_0-fjql4._.js +26 -0
- package/.next/server/chunks/_00xh_q0._.js +27 -0
- package/.next/server/chunks/{_0pppbb5._.js → _03kp0jp._.js} +163 -36
- package/.next/server/chunks/_051qh8u._.js +3 -0
- package/.next/server/chunks/{node_modules_next_04q-o58._.js → _05dla15._.js} +2 -2
- package/.next/server/chunks/_05h2cii._.js +1 -1
- package/.next/server/chunks/_0c9j6rb._.js +49 -0
- package/.next/server/chunks/_0fzqt2y._.js +130 -0
- package/.next/server/chunks/{_0vnutv9._.js → _0ioz3nd._.js} +1 -1
- package/.next/server/chunks/_0iwfby5._.js +3 -0
- package/.next/server/chunks/_0mecv0f._.js +26 -0
- package/.next/server/chunks/_0mh8j4m._.js +3 -0
- package/.next/server/chunks/_0n74zsf._.js +4 -4
- package/.next/server/chunks/_0obojvv._.js +3 -0
- package/.next/server/chunks/_0recufk._.js +49 -0
- package/.next/server/chunks/_0rnf-6n._.js +4 -4
- package/.next/server/chunks/_0sb7tlz._.js +3 -0
- package/.next/server/chunks/_0u10wmw._.js +5 -5
- package/.next/server/chunks/_0u4aiy2._.js +3 -0
- package/.next/server/chunks/_0wp4le3._.js +1 -1
- package/.next/server/chunks/_0y5fg-x._.js +1 -1
- package/.next/server/chunks/_1230wbx._.js +10 -0
- package/.next/server/chunks/_12nheja._.js +3 -0
- package/.next/server/chunks/_13510xh._.js +3 -0
- package/.next/server/chunks/_15hq89o._.js +1 -1
- package/.next/server/chunks/_17l5ygt._.js +49 -0
- package/.next/server/chunks/_18-1wcc._.js +5 -5
- package/.next/server/chunks/_1_5mnq4._.js +4 -4
- package/.next/server/chunks/_1_9mjx-._.js +3 -0
- package/.next/server/chunks/_1d0j961._.js +6 -0
- package/.next/server/chunks/_1d5zmy8._.js +1 -1
- package/.next/server/chunks/_1drgfx4._.js +4 -4
- package/.next/server/chunks/_1f46eie._.js +3 -0
- package/.next/server/chunks/_1h5_8sk._.js +3 -0
- package/.next/server/chunks/_1hdnxb7._.js +3 -0
- package/.next/server/chunks/_1j8k_j5._.js +3 -0
- package/.next/server/chunks/_1krd9rf._.js +3 -0
- package/.next/server/chunks/_1nc0eui._.js +11 -0
- package/.next/server/chunks/_1nula3v._.js +3 -0
- package/.next/server/chunks/_1pf4qe-._.js +3 -0
- package/.next/server/chunks/_1php4eq._.js +1 -1
- package/.next/server/chunks/_1qxheoa._.js +3 -0
- package/.next/server/chunks/_1x6kd1r._.js +3 -0
- package/.next/server/chunks/_1yuv4vp._.js +1 -1
- package/.next/server/chunks/_1zjrdag._.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_bot_memory_files_route_actions_1_xd_8f.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_bot_memory_route_actions_1a8xfr7.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_llm-model_credits_route_actions_0v424pb.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_llm-model_subscription_route_actions_0-udcm5.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_memory_edit_route_actions_02sfnmr.js +3 -0
- package/.next/server/chunks/config_ts_1g4sz5o._.js +1 -1
- package/.next/server/chunks/features_0rpfxbk._.js +3 -0
- package/.next/server/chunks/features_1qf3cei._.js +3 -0
- package/.next/server/chunks/features_bot_0zt92oh._.js +3 -0
- package/.next/server/chunks/features_bot_bot_query_ts_12mgkl2._.js +3 -0
- package/.next/server/chunks/features_memory_1uqvksn._.js +6 -0
- package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0a1rd09._.js → node_modules_consola_dist_chunks_prompt_mjs_0i7cvml._.js} +1 -1
- package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_06067w6._.js → node_modules_consola_dist_chunks_prompt_mjs_0icqaqw._.js} +1 -1
- 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
- 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
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1xoq2rl._.js +3 -0
- package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0tvkfgh._.js → node_modules_consola_dist_chunks_prompt_mjs_1y49572._.js} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__09q9med._.js +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__1qfqvmg._.js → [root-of-the-server]__0_69wqr._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__0hg5gib._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0i8ie7f._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__0jsmmb-._.js → [root-of-the-server]__0mz33a7._.js} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0tbkdlx._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0vnmv-s._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__0f6s48x._.js → [root-of-the-server]__0xpcv9w._.js} +3 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0xtssj3._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0zkv7z_._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__10-dz5o._.js +57 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__15_uhip._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__16jc196._.js +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__0m1b5ky._.js → [root-of-the-server]__1cyjywu._.js} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1eh7hid._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1gtlw6v._.js +43 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1mzi-ju._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1ox7hbk._.js +4 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1pduf5n._.js +3 -0
- package/.next/server/chunks/ssr/{_1mznrxk._.js → _001_ms1._.js} +3 -3
- package/.next/server/chunks/ssr/_01_6m32._.js +3 -0
- package/.next/server/chunks/ssr/_01n3o0m._.js +3 -0
- package/.next/server/chunks/ssr/_07uchnc._.js +3 -0
- package/.next/server/chunks/ssr/_0ap2fzn._.js +3 -0
- package/.next/server/chunks/ssr/_0c-ql2m._.js +3 -0
- package/.next/server/chunks/ssr/_0h42fze._.js +3 -0
- package/.next/server/chunks/ssr/_0h7zdni._.js +1 -1
- package/.next/server/chunks/ssr/_0i_6q1w._.js +41 -0
- package/.next/server/chunks/ssr/_0kbkmar._.js +3 -0
- package/.next/server/chunks/ssr/{_077-g6s._.js → _0mb8zc8._.js} +3 -3
- package/.next/server/chunks/ssr/_0mo2w06._.js +3 -0
- package/.next/server/chunks/ssr/{_13punpm._.js → _0q0zan6._.js} +2 -2
- package/.next/server/chunks/ssr/{_040sk32._.js → _0u2jv_x._.js} +76 -82
- package/.next/server/chunks/ssr/_0y0tiht._.js +4 -0
- package/.next/server/chunks/ssr/_0zhoc3r._.js +3 -0
- package/.next/server/chunks/ssr/_1-teee5._.js +3 -3
- package/.next/server/chunks/ssr/_13fke0x._.js +3 -0
- package/.next/server/chunks/ssr/{_1lip4th._.js → _13z3f85._.js} +2 -2
- package/.next/server/chunks/ssr/_14_lw10._.js +3 -0
- package/.next/server/chunks/ssr/_15j2_8f._.js +3 -0
- package/.next/server/chunks/ssr/{_09ja_w1._.js → _1eoqg_g._.js} +2 -2
- package/.next/server/chunks/ssr/_1sji22n._.js +3 -0
- package/.next/server/chunks/ssr/_1spzm8z._.js +3 -0
- package/.next/server/chunks/ssr/{_0x_nu5e._.js → _1vi_uo7._.js} +2 -2
- package/.next/server/chunks/ssr/_1vyd1ji._.js +1 -1
- package/.next/server/chunks/ssr/{_1m3bsfr._.js → _1xvgn77._.js} +2 -2
- package/.next/server/chunks/ssr/_20kd_n0._.js +42 -0
- package/.next/server/chunks/ssr/features_bot_1s_-2vj._.js +3 -0
- package/.next/server/chunks/ssr/features_config_components_config-setting_tsx_0xfwqdg._.js +1 -1
- package/.next/server/chunks/ssr/features_connectors_components_mcp-setting_tsx_0jmbgvp._.js +1 -1
- package/.next/server/chunks/ssr/lib_date-like_ts_02is0pw._.js +3 -0
- package/.next/server/chunks/ssr/{node_modules_18_dk7_._.js → node_modules_063xwpp._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_01qnv-a._.js → node_modules_0bvraul._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0n1kj4p._.js → node_modules_0eu1va6._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0kl7-tn._.js → node_modules_0h50b8n._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0_n241r._.js → node_modules_0h5hnr1._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0lrjk5t._.js → node_modules_0h7u60n._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0ndvxub._.js → node_modules_0lm7_vm._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_13r44jq._.js → node_modules_0mwym0g._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_17lrt3y._.js → node_modules_0rjg6t1._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules_0x3-ply._.js +3 -0
- package/.next/server/chunks/ssr/{node_modules_004qlr4._.js → node_modules_0y_cded._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0kxz4gt._.js → node_modules_0z5tsu8._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0iz1rzd._.js → node_modules_0zp9r92._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_19dp7ko._.js → node_modules_1-hc6uv._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1q0p85z._.js → node_modules_113tz0l._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1toafc-._.js → node_modules_124bue5._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules_17bwo43._.js +55 -0
- package/.next/server/chunks/ssr/{node_modules_08d8bke._.js → node_modules_1_n3ztw._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1dwguw_._.js → node_modules_1bc7gu8._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_20yebtj._.js → node_modules_1bgb6-f._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1n5ygqe._.js → node_modules_1h4a4pp._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_04n7mjs._.js → node_modules_1i7u1ia._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1hn8z1f._.js → node_modules_1juq3hs._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1xyd7ov._.js → node_modules_1l0qtdu._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0m93zeg._.js → node_modules_1t9cyee._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_09xhur7._.js → node_modules_1uuj9x1._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1hd-5tv._.js → node_modules_1vqb6po._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1zu988w._.js → node_modules_1xx28h1._.js} +1 -1
- 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
- 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
- package/.next/server/chunks/ssr/node_modules_@vercel_oidc_dist_0qe30a_._.js +3 -0
- package/.next/server/chunks/ssr/{node_modules_next_dist_0w6mzq5._.js → node_modules_next_dist_0drixxt._.js} +4 -4
- package/.next/server/chunks/ssr/node_modules_next_dist_1n3w9lb._.js +2 -2
- package/.next/server/instrumentation.js +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +58 -91
- package/.next/static/chunks/{31ttnjt6g35a0.js → 0ev4hyghq0mbb.js} +1 -1
- package/.next/static/chunks/0r5qcctujhxli.js +1 -0
- package/.next/static/chunks/0tmgrnlje14-s.js +3 -0
- package/.next/static/chunks/0x79tx04dxbpp.js +1 -0
- package/.next/static/chunks/0xzgvc0fkdb6t.js +1 -0
- package/.next/static/chunks/10teww7wt-f6h.js +1 -0
- package/.next/static/chunks/14hgtsjg-kael.css +1 -0
- package/.next/static/chunks/17donp69y4do7.js +40 -0
- package/.next/static/chunks/{3_h9txt3tq8t8.js → 1dkjg87pxk0n9.js} +1 -1
- package/.next/static/chunks/1ekc7ul556kbl.js +1 -0
- package/.next/static/chunks/{3ard_noqapnw1.js → 1grhjo7a5a0_-.js} +1 -1
- package/.next/static/chunks/1kq8h8wi_e0bc.js +53 -0
- package/.next/static/chunks/1okqiww3pnwka.js +1 -0
- package/.next/static/chunks/26-pr2c9ro222.js +1 -0
- package/.next/static/chunks/{18vhba44l1fc9.js → 280t0_e99i276.js} +1 -1
- package/.next/static/chunks/28cizcdaabd4h.js +1 -0
- package/.next/static/chunks/2a0k6jlq0_v1u.js +2 -0
- package/.next/static/chunks/2fzs9fm8yarvq.js +1 -0
- package/.next/static/chunks/2h0sd2vumhb15.js +1 -0
- package/.next/static/chunks/2hw2f6zmt7fmt.js +1 -0
- package/.next/static/chunks/2t4vhi3m8ahya.js +1 -0
- package/.next/static/chunks/2tigdtz3dpcy8.js +1 -0
- package/.next/static/chunks/3111pj5wnjgos.js +1 -0
- package/.next/static/chunks/{07kl352c-lvcz.js → 3agpgkwaa321p.js} +1 -1
- package/.next/static/chunks/3cfi_q6d_wtci.js +1 -0
- package/.next/static/chunks/3ok9_x74rip3v.js +1 -0
- package/.next/static/chunks/3xk7yqgomx7yq.js +1 -0
- package/.next/static/chunks/3xpbkl66ssib5.js +38 -0
- package/.next/static/media/favicon.37o1pjldwi2uc.ico +0 -0
- package/README.md +6 -4
- package/app/api/bot/memory/files/route.ts +14 -0
- package/app/api/bot/memory/route.ts +5 -0
- package/app/api/events/app-event.ts +3 -5
- package/app/api/llm-model/credits/route.ts +11 -0
- package/app/api/llm-model/route.ts +6 -1
- package/app/api/llm-model/subscription/route.ts +11 -0
- package/app/api/memory/edit/route.ts +7 -0
- package/app/api/memory/route.ts +21 -0
- package/app/api/query-key.ts +19 -4
- package/bin/thursday.mjs +3 -0
- package/components/ui/shiny-text.tsx +48 -134
- package/database/migrations/{20260909060813_optimal_sabretooth → 20260910173049_numerous_spirit}/migration.sql +24 -34
- package/database/migrations/{20260909060813_optimal_sabretooth → 20260910173049_numerous_spirit}/snapshot.json +71 -145
- package/database/migrations/20260911030320_opposite_jack_power/migration.sql +1 -0
- package/database/migrations/{20260909063821_bitter_tenebrous → 20260911030320_opposite_jack_power}/snapshot.json +57 -184
- package/features/ai/chatgpt.ts +617 -0
- package/features/ai/components/chatgpt-sign-in.tsx +66 -0
- package/features/ai/components/model-picker.tsx +17 -1
- package/features/ai/components/provider-icon.tsx +1 -0
- package/features/ai/load-tools.ts +58 -42
- package/features/ai/model.schema.ts +232 -34
- package/features/ai/model.ts +169 -24
- package/features/ai/prompts/bot.prompt.ts +156 -65
- package/features/ai/prompts/memory-edit.prompt.ts +33 -0
- package/features/ai/prompts/prompt-helper.ts +45 -26
- package/features/ai/prompts/thursday.prompt.ts +40 -17
- package/features/ai/tools/bot.tool.ts +35 -52
- package/features/ai/tools/connected.ts +17 -4
- package/features/ai/tools/memory.tool.ts +133 -72
- package/features/ai/tools/search.tool.ts +136 -47
- package/features/ai/tools/tool-name.ts +2 -5
- package/features/ai/tools/workspace.tool.ts +2 -1
- package/features/bot/bot.action.ts +8 -18
- package/features/bot/bot.memory.ts +89 -0
- package/features/bot/bot.query.ts +37 -57
- package/features/bot/bot.run.ts +507 -241
- package/features/bot/bot.runner.ts +410 -114
- package/features/bot/bot.schema.ts +79 -19
- package/features/bot/bot.seed.ts +89 -16
- package/features/bot/components/bot-mark.tsx +122 -20
- package/features/bot/components/bot-room.tsx +159 -130
- package/features/bot/components/bot-setting.tsx +790 -402
- package/features/bot/components/bot-tool.tsx +2 -6
- package/features/bot/components/mark-palette.tsx +54 -0
- package/features/bot/components/path-chips.tsx +1 -1
- package/features/bot/components/task-badge.tsx +26 -6
- package/features/bot/components/task-reply.tsx +22 -33
- package/features/bot/components/task-setting.tsx +20 -17
- package/features/bot/task.query.ts +215 -28
- package/features/bot/task.store.ts +53 -9
- package/features/config/components/config-setting.tsx +265 -34
- package/features/config/components/models-badge.tsx +42 -0
- package/features/config/config.action.ts +12 -0
- package/features/config/config.const.ts +38 -2
- package/features/connectors/mcp.manager.ts +10 -2
- package/features/intro/components/intro.tsx +47 -46
- package/features/memory/components/memory-edit.tsx +338 -0
- package/features/memory/components/memory-setting.tsx +75 -77
- package/features/memory/memory.action.ts +3 -43
- package/features/memory/memory.edit.ts +87 -0
- package/features/memory/memory.query.ts +24 -42
- package/features/memory/memory.schema.ts +29 -106
- package/features/settings/components/settings.tsx +2 -0
- package/features/settings/settings.alert.ts +3 -1
- package/features/thursday/components/ascii-orb.tsx +106 -90
- package/features/thursday/components/boot.tsx +7 -0
- package/features/thursday/components/call-log.tsx +219 -92
- package/features/thursday/components/face.tsx +6 -4
- package/features/thursday/components/tab-state.tsx +97 -0
- package/features/thursday/components/thursday-mark.tsx +4 -1
- package/features/thursday/components/thursday-setting.tsx +17 -47
- package/features/thursday/components/thursday.tsx +208 -95
- package/features/thursday/thursday.action.ts +12 -17
- package/features/thursday/thursday.query.ts +61 -70
- package/features/thursday/thursday.schema.ts +20 -7
- package/features/thursday/tool-line.ts +85 -11
- package/features/thursday/use-thursday.ts +86 -59
- package/features/workspace/components/file-view.tsx +4 -2
- package/features/workspace/workspace.ts +110 -26
- package/lib/limits.ts +1 -1
- package/lib/oauth-page.ts +27 -0
- package/lib/realtime/openai.ts +2 -2
- package/lib/realtime/realtime.protocol.ts +1 -1
- package/lib/realtime/realtime.tap.ts +122 -0
- package/lib/sandbox.ts +59 -36
- package/package.json +1 -1
- package/skills/browser/SKILL.md +55 -34
- package/.next/server/app/api/bot/notes/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/bot/notes/route.js +0 -14
- package/.next/server/app/api/bot/notes/route_client-reference-manifest.js +0 -3
- package/.next/server/app/api/memory/tidy/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/memory/tidy/route.js +0 -22
- package/.next/server/app/api/memory/tidy/route.js.nft.json +0 -1
- package/.next/server/chunks/0d-b_next_dist_server_app-render_after-task-async-storage_external_0-exn7p.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0-npkh_._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__005var5._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__019dx9f._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__02_2sm-._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__04_8spk._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__05luceg._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__06t77t4._.js +0 -11
- package/.next/server/chunks/[root-of-the-server]__0bed6hu._.js +0 -8
- package/.next/server/chunks/[root-of-the-server]__0cro2dz._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__0dupqt7._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__0emr6go._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0le4d-p._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0m8ywyo._.js +0 -10
- package/.next/server/chunks/[root-of-the-server]__0nfuugi._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__0p32jfz._.js +0 -12
- package/.next/server/chunks/[root-of-the-server]__0phdgco._.js +0 -8
- package/.next/server/chunks/[root-of-the-server]__0wvgrsl._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__10qshki._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__11j52t0._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__1692zrv._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__16thabu._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__173nhwf._.js +0 -8
- package/.next/server/chunks/[root-of-the-server]__1_aoyr9._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1bn73ih._.js +0 -10
- package/.next/server/chunks/[root-of-the-server]__1bqhuh9._.js +0 -8
- package/.next/server/chunks/[root-of-the-server]__1cqizfq._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__1e-ci13._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1fboj2j._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1lr7j9t._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__1oli73c._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1txedx6._.js +0 -8
- package/.next/server/chunks/[root-of-the-server]__1untqv8._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__1zgpz1w._.js +0 -3
- package/.next/server/chunks/_00_584r._.js +0 -293
- package/.next/server/chunks/_012yhfm._.js +0 -39
- package/.next/server/chunks/_06mxlgn._.js +0 -3
- package/.next/server/chunks/_07rtlxv._.js +0 -3
- package/.next/server/chunks/_0a351g7._.js +0 -6
- package/.next/server/chunks/_0kjjmag._.js +0 -3
- package/.next/server/chunks/_0nn99o2._.js +0 -3
- package/.next/server/chunks/_0zuzmt_._.js +0 -39
- package/.next/server/chunks/_106co2o._.js +0 -3
- package/.next/server/chunks/_12bbv5i._.js +0 -100
- package/.next/server/chunks/_15q1pig._.js +0 -3
- package/.next/server/chunks/_19wg5yn._.js +0 -138
- package/.next/server/chunks/_1bt95p9._.js +0 -55
- package/.next/server/chunks/_1cbk7ms._.js +0 -26
- package/.next/server/chunks/_1drv2et._.js +0 -40
- package/.next/server/chunks/_1ic3bew._.js +0 -5
- package/.next/server/chunks/_1mxn_lb._.js +0 -3
- package/.next/server/chunks/_1rysr-r._.js +0 -10
- package/.next/server/chunks/_1u3rwbr._.js +0 -3
- package/.next/server/chunks/_1x7p319._.js +0 -6
- package/.next/server/chunks/_next-internal_server_app_api_bot_notes_route_actions_0qcsyu7.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_memory_tidy_route_actions_0_cfuom.js +0 -3
- package/.next/server/chunks/features_bot_task_query_ts_11xuzl3._.js +0 -3
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0gzvgfv._.js +0 -3
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0vorg6w._.js +0 -3
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1tpvamf._.js +0 -3
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1vmaq9f._.js +0 -3
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1y9-wcr._.js +0 -3
- package/.next/server/chunks/ssr/[externals]_node_crypto_1kn79-7._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0iuoa-r._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0un-erv._.js +0 -4
- package/.next/server/chunks/ssr/[root-of-the-server]__1-mnhyd._.js +0 -92
- package/.next/server/chunks/ssr/[root-of-the-server]__1bww500._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1vcdast._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1xwnu-h._.js +0 -3
- package/.next/server/chunks/ssr/_0-mc7ro._.js +0 -3
- package/.next/server/chunks/ssr/_01p5r6-._.js +0 -3
- package/.next/server/chunks/ssr/_03webdr._.js +0 -3
- package/.next/server/chunks/ssr/_09-0k3z._.js +0 -3
- package/.next/server/chunks/ssr/_0f_b_9s._.js +0 -3
- package/.next/server/chunks/ssr/_0fafgvl._.js +0 -3
- package/.next/server/chunks/ssr/_0sf1isi._.js +0 -3
- package/.next/server/chunks/ssr/_0su6_08._.js +0 -3
- package/.next/server/chunks/ssr/_0ti51xc._.js +0 -3
- package/.next/server/chunks/ssr/_0w5bgak._.js +0 -3
- package/.next/server/chunks/ssr/_0y84qo6._.js +0 -3
- package/.next/server/chunks/ssr/_1ciyoo3._.js +0 -3
- package/.next/server/chunks/ssr/_1e-dgz0._.js +0 -4
- package/.next/server/chunks/ssr/_1fq7zgb._.js +0 -3
- package/.next/server/chunks/ssr/_1g6l4uj._.js +0 -3
- package/.next/server/chunks/ssr/_1ruzehw._.js +0 -3
- package/.next/server/chunks/ssr/features_bot_components_bot-setting_tsx_01ajft6._.js +0 -4
- package/.next/server/chunks/ssr/features_config_components_14jqgy4._.js +0 -3
- package/.next/server/chunks/ssr/features_memory_components_memory-setting_tsx_0oa43sw._.js +0 -4
- package/.next/server/chunks/ssr/node_modules_zod_v4_classic_external_15fmmz3.js +0 -55
- package/.next/static/chunks/05b6nx_o3_f_n.js +0 -1
- package/.next/static/chunks/0dmns-gi0raa4.js +0 -1
- package/.next/static/chunks/0f9sq-7q_yxyl.js +0 -1
- package/.next/static/chunks/0oc4_xoia77dg.css +0 -1
- package/.next/static/chunks/0pheo8m3a-rzi.js +0 -1
- package/.next/static/chunks/19i8h2t-5evjx.js +0 -1
- package/.next/static/chunks/1c5fcj473025q.js +0 -1
- package/.next/static/chunks/1pi_hbmjw-f-z.js +0 -1
- package/.next/static/chunks/1twt6k09vg4np.js +0 -1
- package/.next/static/chunks/1ytnip8wdng93.js +0 -1
- package/.next/static/chunks/28gotuisldmom.js +0 -1
- package/.next/static/chunks/2998p0y7k1c8z.js +0 -3
- package/.next/static/chunks/29gyb3nubj51j.js +0 -53
- package/.next/static/chunks/2l233xfycjpd8.js +0 -1
- package/.next/static/chunks/2p5n7pa3c40t-.js +0 -2
- package/.next/static/chunks/2ru1q132af7h7.js +0 -1
- package/.next/static/chunks/2t8wqycwg3y04.js +0 -2
- package/.next/static/chunks/2uxum7qbyeyxd.js +0 -1
- package/.next/static/chunks/32z_ypgtchw48.js +0 -1
- package/.next/static/chunks/33pyjb3xd1iez.js +0 -1
- package/.next/static/chunks/3omud5xunrk1f.js +0 -1
- package/.next/static/chunks/42dnrkbph9e-1.js +0 -1
- package/.next/static/media/favicon.2vob68tjqpejf.ico +0 -0
- package/database/migrations/20260909063821_bitter_tenebrous/migration.sql +0 -1
- package/features/ai/prompts/memory-tidy.prompt.ts +0 -129
- package/features/ai/tools/tidy.tool.ts +0 -22
- package/features/bot/bot.notes.ts +0 -120
- package/features/memory/components/memory-tidy.tsx +0 -395
- package/features/memory/memory.tidy.ts +0 -332
- package/features/memory/tidy.query.ts +0 -135
- package/features/thursday/use-call-title.ts +0 -31
- /package/.next/server/app/api/bot/{notes → memory/files}/route/build-manifest.json +0 -0
- /package/.next/server/app/api/bot/{notes → memory/files}/route/server-reference-manifest.json +0 -0
- /package/.next/server/app/api/bot/{notes → memory/files}/route.js.map +0 -0
- /package/.next/server/app/api/{memory/tidy → bot/memory}/route/build-manifest.json +0 -0
- /package/.next/server/app/api/{memory/tidy → bot/memory}/route/server-reference-manifest.json +0 -0
- /package/.next/server/app/api/{memory/tidy → bot/memory}/route.js.map +0 -0
- /package/.next/static/{YR4NWcDDuzwLbTTU7U7Vr → x1cCqY0kWpR_VcYx_lWO5}/_buildManifest.js +0 -0
- /package/.next/static/{YR4NWcDDuzwLbTTU7U7Vr → x1cCqY0kWpR_VcYx_lWO5}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{YR4NWcDDuzwLbTTU7U7Vr → x1cCqY0kWpR_VcYx_lWO5}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,556133,e=>{"use strict";var t,r,a,n,o,s,i,l,u,d,c,p,h,m,g,f,y,v,b,w,x,I,k,_,E,j,S,M,A,T,C,R,O,N,P,$,D,U,F,L,q,B,H,z,V,Z,G,Y,W,K,J,X,Q,ee,et,er,ea,en=e.i(843476),eo=e.i(401851),es=e.i(493801),ei=e.i(689664),el=e.i(456420);let eu={name:"pencil",size:24,node:[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]};eu.node;let ed=(0,el.default)(eu),ec={name:"pin",size:24,node:[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]};ec.node;let ep=(0,el.default)(ec);var eh=e.i(77071),em=e.i(759659),eg=e.i(263676),ef=e.i(271645),ey=e.i(798120),ev=e.i(167881),eb=e.i(986530),ew=e.i(23750),ex=e.i(917162),eI=e.i(671428),ek=e.i(127341),e_=e.i(184762),eE=e.i(41533),ej=e.i(247167),eS="vercel.ai.error",eM=Symbol.for(eS),eA=class e extends(r=Error,t=eM,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,eS)}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]}},eT="AI_APICallError",eC=`vercel.ai.error.${eT}`,eR=Symbol.for(eC),eO=class extends(n=eA,a=eR,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:eT,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 eA.hasMarker(e,eC)}},eN="AI_EmptyResponseBodyError",eP=`vercel.ai.error.${eN}`,e$=Symbol.for(eP),eD=class extends(s=eA,o=e$,s){constructor({message:e="Empty response body"}={}){super({name:eN,message:e}),this[o]=!0}static isInstance(e){return eA.hasMarker(e,eP)}};function eU(e){return null==e?"unknown error":"string"==typeof e?e:e instanceof Error?e.toString():JSON.stringify(e)}var eF="AI_InvalidArgumentError",eL=`vercel.ai.error.${eF}`,eq=Symbol.for(eL),eB=class extends(l=eA,i=eq,l){constructor({message:e,cause:t,argument:r}){super({name:eF,message:e,cause:t}),this[i]=!0,this.argument=r}static isInstance(e){return eA.hasMarker(e,eL)}},eH=Symbol.for("vercel.ai.error.AI_InvalidPromptError");Symbol.for("vercel.ai.error.AI_InvalidResponseDataError");var ez="AI_JSONParseError",eV=`vercel.ai.error.${ez}`,eZ=Symbol.for(eV),eG=class extends(d=eA,u=eZ,d){constructor({text:e,cause:t}){super({name:ez,message:`JSON parsing failed: Text: ${e}.
|
|
2
|
+
Error message: ${eU(t)}`,cause:t}),this[u]=!0,this.text=e}static isInstance(e){return eA.hasMarker(e,eV)}},eY=Symbol.for("vercel.ai.error.AI_LoadAPIKeyError");Symbol.for("vercel.ai.error.AI_LoadSettingError");Symbol.for("vercel.ai.error.AI_NoContentGeneratedError");var eW="AI_NoSuchModelError",eK=`vercel.ai.error.${eW}`,eJ=Symbol.for(eK),eX=class extends(p=eA,c=eJ,p){constructor({errorName:e=eW,modelId:t,modelType:r,message:a=`No such ${r}: ${t}`}){super({name:e,message:a}),this[c]=!0,this.modelId=t,this.modelType=r}static isInstance(e){return eA.hasMarker(e,eK)}},eQ=Symbol.for("vercel.ai.error.AI_NoSuchProviderReferenceError");Symbol.for("vercel.ai.error.AI_TooManyEmbeddingValuesForCallError");var e0="AI_TypeValidationError",e1=`vercel.ai.error.${e0}`,e2=Symbol.for(e1),e5=class e extends(m=eA,h=e2,m){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:e0,message:`${a}: Value: ${JSON.stringify(e)}.
|
|
3
|
+
Error message: ${eU(t)}`,cause:t}),this[h]=!0,this.value=e,this.context=r}static isInstance(e){return eA.hasMarker(e,e1)}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})}},e4=Symbol.for("vercel.ai.error.AI_UnsupportedFunctionalityError"),e6=e.i(280656),e9=e.i(321678);class e3 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 e7(e){}function e8(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 te(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 tt 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=e7,onError:r=e7,onRetry:a=e7,onComment:n,maxBufferSize:o}=e,s=[],i=0,l=!0,u,d="",c=0,p,h=!1;function m(){void 0!==o&&(i+d.length<=o||(h=!0,s.length=0,i=0,u=void 0,d="",c=0,p=void 0,r(new e3(`Buffered data exceeded max buffer size of ${o} characters`,{type:"max-buffer-size-exceeded"}))))}function g(e){let r=0;if(-1===e.indexOf("\r")){let a=e.indexOf(`
|
|
4
|
+
`,r);for(;-1!==a;){if(r===a){c>0&&t({id:u,event:p,data:d}),u=void 0,d="",c=0,p=void 0,r=a+1,a=e.indexOf(`
|
|
5
|
+
`,r);continue}let n=e.charCodeAt(r);if(e8(e,r,n)){let n=32===e.charCodeAt(r+5)?r+6:r+5,o=e.slice(n,a);if(0===c&&10===e.charCodeAt(a+1)){t({id:u,event:p,data:o}),u=void 0,d="",p=void 0,r=a+2,a=e.indexOf(`
|
|
6
|
+
`,r);continue}d=0===c?o:`${d}
|
|
7
|
+
${o}`,c++}else te(e,r,n)?p=e.slice(32===e.charCodeAt(r+6)?r+7:r+6,a)||void 0:f(e,r,a);r=a+1,a=e.indexOf(`
|
|
8
|
+
`,r)}return e.slice(r)}for(;r<e.length;){let t=e.indexOf("\r",r),a=e.indexOf(`
|
|
9
|
+
`,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;f(e,r,n),r=n+1,13===e.charCodeAt(r-1)&&10===e.charCodeAt(r)&&r++}return e.slice(r)}function f(e,r,a){if(r===a)return void(c>0&&t({id:u,event:p,data:d}),u=void 0,d="",c=0,p=void 0);let o=e.charCodeAt(r);if(e8(e,r,o)){let t=32===e.charCodeAt(r+5)?r+6:r+5,n=e.slice(t,a);d=0===c?n:`${d}
|
|
10
|
+
${n}`,c++;return}if(te(e,r,o)){p=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")||(u=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 y(s,"",s);let l=s.slice(0,i),h=32===s.charCodeAt(i+1)?2:1;y(l,s.slice(i+h),s)}function y(e,t,n){switch(e){case"event":p=t||void 0;break;case"data":d=0===c?t:`${d}
|
|
11
|
+
${t}`,c++;break;case"id":t.includes("\0")||(u=t);break;case"retry":/^\d+$/.test(t)?a(parseInt(t,10)):r(new e3(`Invalid \`retry\` value: "${t}"`,{type:"invalid-retry",value:t,line:n}));break;default:r(new e3(`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(h)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=g(e);""!==t&&(s.push(t),i=t.length),m();return}if(-1===e.indexOf(`
|
|
12
|
+
`)&&-1===e.indexOf("\r")){s.push(e),i+=e.length,m();return}s.push(e);let t=s.join("");s.length=0,i=0;let r=g(t);""!==r&&(s.push(r),i=r.length),m()},reset:function(e={}){if(e.consume&&s.length>0){let e=s.join("");f(e,0,e.length)}l=!0,u=void 0,d="",c=0,p=void 0,s.length=0,i=0,h=!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)}})}}let tr=Symbol.for("workflow-serialize"),ta=Symbol.for("workflow-deserialize");function tn(...e){return e.reduce((e,t)=>({...e,...null!=t?t:{}}),{})}async function to(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(ts());let n=setTimeout(()=>{o(),t()},e),o=()=>{clearTimeout(n),null==r||r.removeEventListener("abort",s)},s=()=>{o(),a(ts())};null==r||r.addEventListener("abort",s)})}function ts(){return new DOMException("Delay was aborted","AbortError")}var ti=new TextDecoder;async function tl(e){return"string"==typeof e?e:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?ti.decode(e):"u">typeof Blob&&e instanceof Blob?e.text():String(e)}async function tu(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 to(r)}}var{btoa:td,atob:tc}=globalThis;function tp(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCodePoint(e[r]);return td(t)}function th(e){return Object.fromEntries([...e.headers])}function tm(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 tg(e){return(e instanceof Error||e instanceof DOMException)&&("AbortError"===e.name||"ResponseAborted"===e.name||"TimeoutError"===e.name)}var tf=["fetch failed","failed to fetch"],ty=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 tv({error:e,url:t,requestBodyValues:r}){if(tg(e))return e;if(e instanceof TypeError&&tf.includes(e.message.toLowerCase())){let a=e.cause;if(null!=a)return new eO({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&&ty.has(e.code))return e;r=r.cause}}(e);return null!=a?new eO(eO.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 tb="5.0.36";function tw(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 tx(e,...t){let r=new Headers(tw(e)),a=r.get("user-agent")||"";return r.set("user-agent",[a,...t].filter(Boolean).join(" ")),Object.fromEntries(r.entries())}async function tI(e){var t;try{await (null==(t=e.body)?void 0:t.cancel())}catch(e){}}var tk="AI_DownloadError",t_=`vercel.ai.error.${tk}`,tE=Symbol.for(t_),tj=class extends(f=eA,g=tE,f){constructor({url:e,statusCode:t,statusText:r,cause:a,message:n=null==a?`Failed to download ${e}: ${t} ${r}`:`Failed to download ${e}: ${a}`}){super({name:tk,message:n,cause:a}),this[g]=!0,this.url=e,this.statusCode=t,this.statusText=r}static isInstance(e){return eA.hasMarker(e,t_)}};function tS(e,t){try{return new URL(e).origin===new URL(t).origin}catch(e){return!1}}function tM(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 tA(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 tT(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||!tM(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 tA(`${e}.${r}.${a}.${n}`)}return!1}var tC=globalThis.fetch,tR=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")}(tC);async function tO(){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&&tR&&globalThis.fetch===tC?null!=y?y:y=Promise.resolve().then(tN):globalThis.fetch}function tN(){let{createRequire:e}=tP("node:module"),{lookup:t}=tP("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?!tM(e)||tA(e):6!==t||tT(e))throw new tj({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 tP(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 t$=["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"],tD=new Set([301,302,303,307,308]);async function tU({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 t$)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&&tS(l,o);t||function(e){let t;try{t=new URL(e)}catch(t){throw new tj({url:e,message:`Invalid URL: ${e}`})}if("data:"===t.protocol)return;if("http:"!==t.protocol&&"https:"!==t.protocol)throw new tj({url:e,message:`URL scheme must be http, https, or data, got ${t.protocol}`});let r=t.hostname.toLowerCase().replace(/\.+$/,"");if(!r)throw new tj({url:e,message:"URL must have a hostname"});if("localhost"===r||r.endsWith(".local")||r.endsWith(".localhost"))throw new tj({url:e,message:`URL with hostname ${r} is not allowed`});if(r.startsWith("[")&&r.endsWith("]")){if(tT(r.slice(1,-1)))throw new tj({url:e,message:`URL with IPv6 address ${r} is not allowed`});return}if(tM(r)&&tA(r))throw new tj({url:e,message:`URL with IP address ${r} is not allowed`})}(l);let r=null!=n?n:t?globalThis.fetch:await tO(),a=await r(l,i("manual"));if("opaqueredirect"===a.type){if(!function(e=globalThis){return null!=e.window}())throw new tj({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(tD.has(a.status)&&u){await tI(a);let e=new URL(u,l).toString();if(void 0!==s&&!tS(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 tj({url:e,message:`Too many redirects (max ${a})`})}async function tF({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 tI(e),new tj({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 tj({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}var tL=({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 eB({argument:"separator",message:`The separator "${a}" must not be part of the alphabet "${r}".`});return()=>`${e}${a}${n()}`},tq=tL(),tB=async({url:e,headers:t={},successfulResponseHandler:r,failedResponseHandler:a,abortSignal:n,fetch:o,validateUrl:s,credentialedOrigin:i,trustedOrigin:l})=>{try{let u=null!=o?o:globalThis.fetch,d=void 0===i||tS(e,i)?t:{},c=tx(d,`ai-sdk/provider-utils/${tb}`,tm()),p=s?await tU({url:e,headers:c,abortSignal:n,fetch:o,trustedOrigin:l}):await u(e,{method:"GET",headers:c,signal:n}),h=th(p);if(!p.ok){let t;try{t=await a({response:p,url:e,requestBodyValues:{}})}catch(t){if(tg(t)||eO.isInstance(t))throw t;throw new eO({message:"Failed to process error response",cause:t,statusCode:p.status,url:e,responseHeaders:h,requestBodyValues:{}})}throw t.value}try{return await r({response:p,url:e,requestBodyValues:{}})}catch(t){if(t instanceof Error&&(tg(t)||eO.isInstance(t)))throw t;throw new eO({message:"Failed to process successful response",cause:t,statusCode:p.status,url:e,responseHeaders:h,requestBodyValues:{}})}}catch(t){throw tv({error:t,url:e,requestBodyValues:{}})}};function tH(e){return null!=e&&"object"==typeof e&&!Array.isArray(e)}function tz({settingValue:e,environmentVariableName:t}){return"string"==typeof e?e:null!=e||void 0===ej.default?void 0:null!=(e=ej.default.env[t])&&"string"==typeof e?e:void 0}function tV(e){return null!=e&&Number.isSafeInteger(e)&&e>=0}var tZ=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,tG=/"(?: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 tY(e){let t=JSON.parse(e);return null===t||"object"!=typeof t||!1===tZ.test(e)&&!1===tG.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 tW(e){let{stackTraceLimit:t}=Error;try{Error.stackTraceLimit=0}catch(t){return tY(e)}try{return tY(e)}finally{Error.stackTraceLimit=t}}function tK(e){if("object"===e.type||Array.isArray(e.type)&&e.type.includes("object")){let{additionalProperties:t}=e;e.additionalProperties=null!=t&&"boolean"!=typeof t&&tJ(t);let{properties:r}=e;if(null!=r)for(let e of Object.keys(r))r[e]=tJ(r[e])}null!=e.items&&(e.items=Array.isArray(e.items)?e.items.map(tJ):tJ(e.items)),null!=e.anyOf&&(e.anyOf=e.anyOf.map(tJ)),null!=e.allOf&&(e.allOf=e.allOf.map(tJ)),null!=e.oneOf&&(e.oneOf=e.oneOf.map(tJ));let{definitions:t}=e;if(null!=t)for(let e of Object.keys(t))t[e]=tJ(t[e]);return e}function tJ(e){return"boolean"==typeof e?e:tK(e)}var tX=Symbol("Let zodToJsonSchema decide on which parser to use"),tQ={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 t0(e,t){return rc(e.type._def,t)}var t1=void 0,t2=/^[cC][^\s-]{8,}$/,t5=/^[0-9a-z]+$/,t4=/^[0-9A-HJKMNP-TV-Z]{26}$/,t6=/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,t9=()=>(void 0===t1&&(t1=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),t1),t3=/^(?:(?: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])$/,t7=/^(([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])$/,t8=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,re=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,rt=/^[a-zA-Z0-9_-]{21}$/,rr=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/;function ra(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":rs(r,"email",a.message,t);break;case"format:idn-email":rs(r,"idn-email",a.message,t);break;case"pattern:zod":ri(r,t6,a.message,t)}break;case"url":rs(r,"uri",a.message,t);break;case"uuid":rs(r,"uuid",a.message,t);break;case"regex":ri(r,a.regex,a.message,t);break;case"cuid":ri(r,t2,a.message,t);break;case"cuid2":ri(r,t5,a.message,t);break;case"startsWith":ri(r,RegExp(`^${rn(a.value,t)}`),a.message,t);break;case"endsWith":ri(r,RegExp(`${rn(a.value,t)}$`),a.message,t);break;case"datetime":rs(r,"date-time",a.message,t);break;case"date":rs(r,"date",a.message,t);break;case"time":rs(r,"time",a.message,t);break;case"duration":rs(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":ri(r,RegExp(rn(a.value,t)),a.message,t);break;case"ip":"v6"!==a.version&&rs(r,"ipv4",a.message,t),"v4"!==a.version&&rs(r,"ipv6",a.message,t);break;case"base64url":ri(r,re,a.message,t);break;case"jwt":ri(r,rr,a.message,t);break;case"cidr":"v6"!==a.version&&ri(r,t3,a.message,t),"v4"!==a.version&&ri(r,t7,a.message,t);break;case"emoji":ri(r,t9(),a.message,t);break;case"ulid":ri(r,t4,a.message,t);break;case"base64":switch(t.base64Strategy){case"format:binary":rs(r,"binary",a.message,t);break;case"contentEncoding:base64":r.contentEncoding="base64";break;case"pattern:zod":ri(r,t8,a.message,t)}break;case"nanoid":ri(r,rt,a.message,t)}return r}function rn(e,t){return"escape"===t.patternStrategy?function(e){let t="";for(let r=0;r<e.length;r++)ro.has(e[r])||(t+="\\"),t+=e[r];return t}(e):e}var ro=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function rs(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 ri(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:rl(t,a),...r&&a.errorMessages&&{errorMessage:{pattern:r}}})):e.pattern=rl(t,a)}function rl(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
|
|
13
|
+
]))`;continue}else if("$"===n[e]){o+=`($|(?=[\r
|
|
14
|
+
]))`;continue}}if(a.s&&"."===n[e]){o+=i?`${n[e]}\r
|
|
15
|
+
`:`[${n[e]}\r
|
|
16
|
+
]`;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 ru(e,t){var r,a,n,o,s,i;let l={type:"object",additionalProperties:null!=(r=rc(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}=ra(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}=t0(e.keyType._def,t);return{...l,propertyNames:a}}return l}var rd={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function rc(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!==tX)return o}if(n&&!r){let e=rp(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 ra(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=rc(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 rc(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 d={type:"integer",format:"int64"};if(!e.checks)return d;for(let t of e.checks)switch(t.kind){case"min":t.inclusive?d.minimum=t.value:d.exclusiveMinimum=t.value;break;case"max":t.inclusive?d.maximum=t.value:d.exclusiveMaximum=t.value;break;case"multipleOf":d.multipleOf=t.value}return d;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 c;return c={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"&&(c.items=rc(e.type._def,{...r,currentPath:[...r.currentPath,"items"]})),e.minLength&&(c.minItems=e.minLength.value),e.maxLength&&(c.maxItems=e.maxLength.value),e.exactLength&&(c.minItems=e.exactLength.value,c.maxItems=e.exactLength.value),c;case"ZodUnion":case"ZodDiscriminatedUnion":let p,h=e.options instanceof Map?Array.from(e.options.values()):e.options;if(h.every(e=>e._def.typeName in rd&&(!e._def.checks||!e._def.checks.length))){let e=h.reduce((e,t)=>{let r=rd[t._def.typeName];return r&&!e.includes(r)?[...e,r]:e},[]);return{type:e.length>1?e:e[0]}}if(h.every(e=>"ZodLiteral"===e._def.typeName&&!e.description)){let e=h.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===h.length){let t=e.filter((e,t,r)=>r.indexOf(e)===t);return{type:t.length>1?t:t[0],enum:h.reduce((e,t)=>e.includes(t._def.value)?e:[...e,t._def.value],[])}}}else if(h.every(e=>"ZodEnum"===e._def.typeName))return{type:"string",enum:h.reduce((e,t)=>[...e,...t._def.values.filter(t=>!e.includes(t))],[])};return a=e,n=r,(p=(a.options instanceof Map?Array.from(a.options.values()):a.options).map((e,t)=>rc(e._def,{...n,currentPath:[...n.currentPath,"anyOf",`${t}`]})).filter(e=>!!e&&(!n.strictUnions||"object"==typeof e&&Object.keys(e).length>0))).length?{anyOf:p}:void 0;case"ZodIntersection":let m,g;return m=[rc(e.left._def,{...r,currentPath:[...r.currentPath,"allOf","0"]}),rc(e.right._def,{...r,currentPath:[...r.currentPath,"allOf","1"]})].filter(e=>!!e),g=[],m.forEach(e=>{if((!("type"in e)||"string"!==e.type)&&"allOf"in e)g.push(...e.allOf);else{let t=e;if("additionalProperties"in e&&!1===e.additionalProperties){let{additionalProperties:r,...a}=e;t=a}g.push(t)}}),g.length?{allOf:g}:void 0;case"ZodTuple":return e.rest?{type:"array",minItems:e.items.length,items:e.items.map((e,t)=>rc(e._def,{...r,currentPath:[...r.currentPath,"items",`${t}`]})).reduce((e,t)=>void 0===t?e:[...e,t],[]),additionalItems:rc(e.rest._def,{...r,currentPath:[...r.currentPath,"additionalItems"]})}:{type:"array",minItems:e.items.length,maxItems:e.items.length,items:e.items.map((e,t)=>rc(e._def,{...r,currentPath:[...r.currentPath,"items",`${t}`]})).reduce((e,t)=>void 0===t?e:[...e,t],[])};case"ZodRecord":return ru(e,r);case"ZodLiteral":let f;return"bigint"!=(f=typeof e.value)&&"number"!==f&&"boolean"!==f&&"string"!==f?{type:Array.isArray(e.value)?"array":"object"}:{type:"bigint"===f?"integer":f,const:e.value};case"ZodEnum":return{type:"string",enum:Array.from(e.values)};case"ZodNativeEnum":let y,v,b;return y=e.values,{type:1===(b=Array.from(new Set((v=Object.keys(e.values).filter(e=>"number"!=typeof y[y[e]]).map(e=>y[e])).map(e=>typeof e)))).length?"string"===b[0]?"string":"number":["string","number"],enum:v};case"ZodNullable":if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return{type:[rd[e.innerType._def.typeName],"null"]};let w=rc(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 rc(e.innerType._def,r);let x=rc(e.innerType._def,{...r,currentPath:[...r.currentPath,"anyOf","1"]});return x?{anyOf:[{not:{}},x]}:{};case"ZodMap":if("record"===r.mapStrategy)return ru(e,r);return{type:"array",maxItems:125,items:{type:"array",items:[rc(e.keyType._def,{...r,currentPath:[...r.currentPath,"items","items","0"]})||{},rc(e.valueType._def,{...r,currentPath:[...r.currentPath,"items","items","1"]})||{}],minItems:2,maxItems:2}};case"ZodSet":let I;return I={type:"array",uniqueItems:!0,items:rc(e.valueType._def,{...r,currentPath:[...r.currentPath,"items"]})},e.minSize&&(I.minItems=e.minSize.value),e.maxSize&&(I.maxItems=e.maxSize.value),I;case"ZodLazy":return()=>e.getter()._def;case"ZodPromise":return rc(e.type._def,r);case"ZodEffects":return"input"===r.effectStrategy?rc(e.schema._def,r):{};case"ZodAny":case"ZodUnknown":return{};case"ZodDefault":return{...rc(e.innerType._def,r),default:e.defaultValue()};case"ZodBranded":return t0(e,r);case"ZodReadonly":case"ZodCatch":return rc(e.innerType._def,r);case"ZodPipeline":if("input"===r.pipeStrategy)return rc(e.in._def,r);if("output"===r.pipeStrategy)return rc(e.out._def,r);let k=rc(e.in._def,{...r,currentPath:[...r.currentPath,"allOf","0"]}),_=rc(e.out._def,{...r,currentPath:[...r.currentPath,"allOf",k?"1":"0"]});return{allOf:[k,_].filter(e=>void 0!==e)};default:return}})(e,e.typeName,t),i="function"==typeof s?rc(s(),t):s;if(i&&rh(e,t,i),t.postProcess){let r=t.postProcess(i,e,t);return o.jsonSchema=i,r}return o.jsonSchema=i,i}var rp=(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}},rh=(e,t,r)=>(e.description&&(r.description=e.description),r),rm=Symbol.for("vercel.ai.schema");function rg(e){let t;return()=>(null==t&&(t=e()),t)}function rf(e,{validate:t}={}){return{[rm]:!0,_type:void 0,get jsonSchema(){return"function"==typeof e&&(e=e()),e},validate:t}}function ry(e){var t;return null==e?rf({type:"object",properties:{},additionalProperties:!1}):"object"==typeof e&&null!==e&&rm in e&&!0===e[rm]&&"jsonSchema"in e&&"validate"in e?e:"~standard"in e?"zod"===e["~standard"].vendor?rv(e):(t=e,rf(()=>{if(null==t["~standard"].jsonSchema)throw Error(`Standard schema vendor '${t["~standard"].vendor}' does not support JSON Schema conversion.`);return tK(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 e5({value:e,cause:r.issues})}}})):e()}function rv(e,t){var r,a;let n;if("_zod"in e){let a;return a=null!=(r=null==t?void 0:t.useReferences)&&r,rf(()=>tK((0,e9.toJSONSchema)(e,{target:"draft-7",io:"input",reused:a?"ref":"inline"})),{validate:async t=>{let r=await (0,e6.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,rf(()=>((e,t)=>{var r;let a,n,o=(n=void 0!==(a="string"==typeof t?{...tQ,name:t}:{...tQ,...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=rc(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=rc(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 d=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 d.$schema="http://json-schema.org/draft-07/schema#",d})(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 rb({value:e,schema:t,context:r}){let a=await rw({value:e,schema:t,context:r});if(!a.success)throw e5.wrap({value:e,cause:a.error,context:r});return a.value}async function rw({value:e,schema:t,context:r}){let a=ry(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:e5.wrap({value:e,cause:t.error,context:r}),rawValue:e}}catch(t){return{success:!1,error:e5.wrap({value:e,cause:t,context:r}),rawValue:e}}}async function rx({text:e,schema:t}){try{let r=tW(e);if(null==t)return r;return await rb({value:r,schema:t})}catch(t){if(eG.isInstance(t)||e5.isInstance(t))throw t;throw new eG({text:e,cause:t})}}async function rI({text:e,schema:t}){try{let r=tW(e);if(null==t)return{success:!0,value:r,rawValue:r};return await rw({value:r,schema:t})}catch(t){return{success:!1,error:eG.isInstance(t)?t:new eG({text:e,cause:t}),rawValue:void 0}}}function rk({stream:e,schema:t}){return e.pipeThrough(new TextDecoderStream).pipeThrough(new tt).pipeThrough(new TransformStream({async transform({data:e},r){"[DONE]"!==e&&r.enqueue(await rI({text:e,schema:t}))}}))}var r_=()=>globalThis.fetch,rE=async({url:e,headers:t,body:r,failedResponseHandler:a,successfulResponseHandler:n,abortSignal:o,fetch:s})=>await rj({url:e,headers:{"Content-Type":"application/json",...t},body:{content:JSON.stringify(r),values:r},failedResponseHandler:a,successfulResponseHandler:n,abortSignal:o,fetch:s}),rj=async({url:e,headers:t={},body:r,successfulResponseHandler:a,failedResponseHandler:n,abortSignal:o,fetch:s=r_()})=>{try{let i=await s(e,{method:"POST",headers:tx(t,`ai-sdk/provider-utils/${tb}`,tm()),body:r.content,signal:o}),l=th(i);if(!i.ok){let t;try{t=await n({response:i,url:e,requestBodyValues:r.values})}catch(t){if(tg(t)||eO.isInstance(t))throw t;throw new eO({message:"Failed to process error response",cause:t,statusCode:i.status,url:e,responseHeaders:l,requestBodyValues:r.values})}throw t.value}try{return await a({response:i,url:e,requestBodyValues:r.values})}catch(t){if(t instanceof Error&&(tg(t)||eO.isInstance(t)))throw t;throw new eO({message:"Failed to process successful response",cause:t,statusCode:i.status,url:e,responseHeaders:l,requestBodyValues:r.values})}}catch(t){throw tv({error:t,url:e,requestBodyValues:r.values})}};function rS({id:e,inputSchema:t,outputSchema:r,supportsDeferredResults:a}){return({onInputStart:n,onInputDelta:o,onInputAvailable:s,...i})=>({type:"provider",isProviderExecuted:!0,id:e,args:i,inputSchema:t,outputSchema:r,onInputStart:n,onInputDelta:o,onInputAvailable:s,supportsDeferredResults:a})}async function rM(e){return"function"==typeof e&&(e=e()),Promise.resolve(e)}var rA=new TextDecoder;async function rT({response:e,url:t}){return rA.decode(await tF({response:e,url:t}))}var rC=({errorSchema:e,errorToMessage:t,isRetryable:r})=>async({response:a,url:n,requestBodyValues:o})=>{let s=await rT({response:a,url:n}),i=th(a);if(""===s.trim())return{responseHeaders:i,value:new eO({message:a.statusText,url:n,requestBodyValues:o,statusCode:a.status,responseHeaders:i,responseBody:s,isRetryable:null==r?void 0:r(a)})};try{let l=await rx({text:s,schema:e});return{responseHeaders:i,value:new eO({message:t(l),url:n,requestBodyValues:o,statusCode:a.status,responseHeaders:i,responseBody:s,data:l,isRetryable:null==r?void 0:r(a,l)})}}catch(e){return{responseHeaders:i,value:new eO({message:a.statusText,url:n,requestBodyValues:o,statusCode:a.status,responseHeaders:i,responseBody:s,isRetryable:null==r?void 0:r(a)})}}},rR=e=>async({response:t,url:r,requestBodyValues:a})=>{let n=await rT({response:t,url:r}),o=await rI({text:n,schema:e}),s=th(t);if(!o.success)throw new eO({message:"Invalid JSON response",cause:o.error,statusCode:t.status,responseHeaders:s,responseBody:n,url:r,requestBodyValues:a});return{responseHeaders:s,value:o.value,rawValue:o.rawValue}};async function*rO({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 rx({text:e,schema:t})),i=n.indexOf("\n")}}let e=n.replace(/\r$/,"");e.trim().length>0&&(yield await rx({text:e,schema:t}))}finally{o||await r.cancel().catch(()=>{}),r.releaseLock()}}function rN(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(rN):Object.getPrototypeOf(e)===Object.prototype&&Object.values(e).every(rN))}var rP="AI_SerializationError",r$=`vercel.ai.error.${rP}`,rD=Symbol.for(r$),rU=class extends(b=eA,v=rD,b){constructor({message:e="Failed to serialize value.",cause:t}={}){super({name:rP,message:e,cause:t}),this[v]=!0}static isInstance(e){return eA.hasMarker(e,r$)}};function rF(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 rU({message:"Cannot serialize asynchronous model options."});return t}(a);rN(e)&&(t[r]=e)}else rN(a)&&(t[r]=a);return{modelId:e.modelId,config:t}}function rL(e){return"string"==typeof e}function rq(e){return"number"==typeof e}function rB(e,t){return void 0===e||t(e)}function rH(e){return tH(e)&&rL(e.type)}function rz(e){return tH(e)&&rL(e.text)&&rq(e.startSecond)&&rq(e.endSecond)}var rV=e.i(467034),rZ=e.i(362201),rG=e.i(725150),rY="ai-gateway-transcription.v1";function rW(e,t,r){let a=[e,`ai-gateway-auth.${t}`];return(null==r?void 0:r.teamIdOrSlug)&&a.push(`ai-gateway-team.${function(e){let t=new TextEncoder().encode(e),r="";for(let e of t)r+=String.fromCharCode(e);return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/u,"")}(r.teamIdOrSlug)}`),a}var rK={any:rZ.any,array:rZ.array,boolean:rZ.boolean,discriminatedUnion:rZ.discriminatedUnion,enum:rZ.enum,literal:rZ.literal,number:rZ.number,object:rZ.object,record:rZ.record,string:rZ.string,union:rZ.union,unknown:rZ.unknown},rJ=Symbol.for("vercel.ai.gateway.error"),rX=class e extends(x=Error,w=rJ,x){constructor({message:e,statusCode:t=500,cause:r,generationId:a,isRetryable:n=null!=t&&(408===t||409===t||429===t||t>=500)}){super(a?`${e} [${a}]`:e),this[w]=!0,this.statusCode=t,this.cause=r,this.generationId=a,this.isRetryable=n}static isInstance(t){return e.hasMarker(t)}static hasMarker(e){return"object"==typeof e&&null!==e&&rJ in e&&!0===e[rJ]}},rQ="GatewayAuthenticationError",r0=Symbol.for(`vercel.ai.gateway.error.${rQ}`),r1=class e extends(k=rX,I=r0,k){constructor({message:e="Authentication failed",statusCode:t=401,cause:r,generationId:a}={}){super({message:e,statusCode:t,cause:r,generationId:a}),this[I]=!0,this.name=rQ,this.type="authentication_error"}static isInstance(e){return rX.hasMarker(e)&&r0 in e}static createContextualError({apiKeyProvided:t,oidcTokenProvided:r,statusCode:a=401,cause:n,generationId:o}){return new e({message:t?`AI Gateway authentication failed: Invalid API key or token.
|
|
17
|
+
|
|
18
|
+
Create a new API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys
|
|
19
|
+
|
|
20
|
+
Provide an API key or Vercel access token via 'apiKey' option or 'AI_GATEWAY_API_KEY' environment variable.`:r?`AI Gateway authentication failed: Invalid OIDC token.
|
|
21
|
+
|
|
22
|
+
Run 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.
|
|
23
|
+
|
|
24
|
+
Alternatively, use an API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys
|
|
25
|
+
or pass a Vercel access token via the 'apiKey' option.`:`AI Gateway authentication failed: No authentication provided.
|
|
26
|
+
|
|
27
|
+
Option 1 - API key:
|
|
28
|
+
Create an API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys
|
|
29
|
+
Provide via 'apiKey' option or 'AI_GATEWAY_API_KEY' environment variable.
|
|
30
|
+
|
|
31
|
+
Option 2 - Vercel access token:
|
|
32
|
+
Pass a Vercel personal access token or Vercel app access token via the 'apiKey' option.
|
|
33
|
+
|
|
34
|
+
Option 3 - OIDC token:
|
|
35
|
+
Run 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.`,statusCode:a,cause:n,generationId:o})}},r2="GatewayInvalidRequestError",r5=Symbol.for(`vercel.ai.gateway.error.${r2}`),r4=class extends(E=rX,_=r5,E){constructor({message:e="Invalid request",statusCode:t=400,cause:r,generationId:a}={}){super({message:e,statusCode:t,cause:r,generationId:a}),this[_]=!0,this.name=r2,this.type="invalid_request_error"}static isInstance(e){return rX.hasMarker(e)&&r5 in e}},r6="GatewayRateLimitError",r9=Symbol.for(`vercel.ai.gateway.error.${r6}`),r3=class extends(S=rX,j=r9,S){constructor({message:e="Rate limit exceeded",statusCode:t=429,cause:r,generationId:a}={}){super({message:e,statusCode:t,cause:r,generationId:a}),this[j]=!0,this.name=r6,this.type="rate_limit_exceeded"}static isInstance(e){return rX.hasMarker(e)&&r9 in e}},r7="GatewayModelNotFoundError",r8=Symbol.for(`vercel.ai.gateway.error.${r7}`),ae=rg(()=>rv(rK.object({modelId:rK.string()}))),at=class extends(A=rX,M=r8,A){constructor({message:e="Model not found",statusCode:t=404,modelId:r,cause:a,generationId:n}={}){super({message:e,statusCode:t,cause:a,generationId:n}),this[M]=!0,this.name=r7,this.type="model_not_found",this.modelId=r}static isInstance(e){return rX.hasMarker(e)&&r8 in e}},ar="GatewayNotFoundError",aa=Symbol.for(`vercel.ai.gateway.error.${ar}`),an=class extends(C=rX,T=aa,C){constructor({message:e="Resource not found",statusCode:t=404,cause:r,generationId:a}={}){super({message:e,statusCode:t,cause:r,generationId:a}),this[T]=!0,this.name=ar,this.type="not_found"}static isInstance(e){return rX.hasMarker(e)&&aa in e}},ao="GatewayInternalServerError",as=Symbol.for(`vercel.ai.gateway.error.${ao}`),ai=class extends(O=rX,R=as,O){constructor({message:e="Internal server error",statusCode:t=500,cause:r,generationId:a}={}){super({message:e,statusCode:t,cause:r,generationId:a}),this[R]=!0,this.name=ao,this.type="internal_server_error"}static isInstance(e){return rX.hasMarker(e)&&as in e}},al="GatewayFailedDependencyError",au=Symbol.for(`vercel.ai.gateway.error.${al}`),ad=class extends(P=rX,N=au,P){constructor({message:e="Failed dependency",statusCode:t=424,cause:r,generationId:a}={}){super({message:e,statusCode:t,cause:r,generationId:a}),this[N]=!0,this.name=al,this.type="failed_dependency"}static isInstance(e){return rX.hasMarker(e)&&au in e}},ac="GatewayForbiddenError",ap=Symbol.for(`vercel.ai.gateway.error.${ac}`),ah=rg(()=>rv(rK.object({ruleId:rK.string()}))),am=class extends(D=rX,$=ap,D){constructor({message:e="Forbidden",statusCode:t=403,cause:r,generationId:a,ruleId:n}={}){super({message:e,statusCode:t,cause:r,generationId:a}),this[$]=!0,this.name=ac,this.type="forbidden",this.ruleId=n}static isInstance(e){return rX.hasMarker(e)&&ap in e}},ag="GatewayResponseError",af=Symbol.for(`vercel.ai.gateway.error.${ag}`),ay=class extends(F=rX,U=af,F){constructor({message:e="Invalid response from Gateway",statusCode:t=502,response:r,validationError:a,cause:n,generationId:o,isRetryable:s}={}){super({message:e,statusCode:t,cause:n,generationId:o,isRetryable:s}),this[U]=!0,this.name=ag,this.type="response_error",this.response=r,this.validationError=a}static isInstance(e){return rX.hasMarker(e)&&af in e}};async function av({response:e,statusCode:t,defaultMessage:r="Gateway request failed",cause:a,authMethod:n,isRetryable:o}){var s;let i=await rw({value:e,schema:ab});if(!i.success){let n="object"==typeof e&&null!==e&&"generationId"in e?e.generationId:void 0;return new ay({message:`Invalid error response format: ${r}`,statusCode:t,response:e,validationError:i.error,cause:a,generationId:n,isRetryable:o})}let l=i.value,u=l.error.type,d=l.error.message,c=null!=(s=l.generationId)?s:void 0;switch(u){case"authentication_error":return r1.createContextualError({apiKeyProvided:"api-key"===n,oidcTokenProvided:"oidc"===n,statusCode:t,cause:a,generationId:c});case"invalid_request_error":return new r4({message:d,statusCode:t,cause:a,generationId:c});case"rate_limit_exceeded":return new r3({message:d,statusCode:t,cause:a,generationId:c});case"model_not_found":{let e=await rw({value:l.error.param,schema:ae});return new at({message:d,statusCode:t,modelId:e.success?e.value.modelId:void 0,cause:a,generationId:c})}case"not_found":return new an({message:d,statusCode:t,cause:a,generationId:c});case"internal_server_error":default:return new ai({message:d,statusCode:t,cause:a,generationId:c});case"failed_dependency":return new ad({message:d,statusCode:t,cause:a,generationId:c});case"forbidden":{let e=await rw({value:l.error.param,schema:ah});return new am({message:d,statusCode:t,cause:a,generationId:c,ruleId:e.success?e.value.ruleId:void 0})}}}var ab=rg(()=>rv(rK.object({error:rK.object({message:rK.string(),type:rK.string().nullish(),param:rK.unknown().nullish(),code:rK.union([rK.string(),rK.number()]).nullish()}),generationId:rK.string().nullish()}))),aw="GatewayTimeoutError",ax=Symbol.for(`vercel.ai.gateway.error.${aw}`),aI=class e extends(q=rX,L=ax,q){constructor({message:e="Request timed out",statusCode:t=408,cause:r,generationId:a}={}){super({message:e,statusCode:t,cause:r,generationId:a}),this[L]=!0,this.name=aw,this.type="timeout_error"}static isInstance(e){return rX.hasMarker(e)&&ax in e}static createTimeoutError({originalMessage:t,statusCode:r=408,cause:a,generationId:n}){return new e({message:`Gateway request timed out: ${t}
|
|
36
|
+
|
|
37
|
+
This is a client-side timeout. To resolve this, increase your timeout configuration: https://vercel.com/docs/ai-gateway/capabilities/video-generation#extending-timeouts-for-node.js`,statusCode:r,cause:a,generationId:n})}};function ak(e){if(!(e instanceof Error))return!1;let t=e.code;return"string"==typeof t&&["UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_CONNECT_TIMEOUT"].includes(t)}async function a_(e,t){var r;return rX.isInstance(e)?e:ak(e)?aI.createTimeoutError({originalMessage:e instanceof Error?e.message:"Unknown error",cause:e}):eO.isInstance(e)?e.cause&&ak(e.cause)?aI.createTimeoutError({originalMessage:e.message,cause:e}):await av({response:function(e){if(void 0!==e.data)return e.data;if(null!=e.responseBody)try{return tW(e.responseBody)}catch(t){return e.responseBody}return{}}(e),statusCode:null!=(r=e.statusCode)?r:500,defaultMessage:"Gateway request failed",cause:e,authMethod:t,isRetryable:!!e.isRetryable&&(null==e.statusCode||e.statusCode<400)||void 0}):await av({response:{},statusCode:500,defaultMessage:e instanceof Error?`Gateway request failed: ${e.message}`:"Unknown Gateway error",cause:e,authMethod:t})}var aE="ai-gateway-auth-method",aj="x-vercel-ai-gateway-team";async function aS(e){let t=await rw({value:e[aE],schema:aM});return t.success?t.value:void 0}var aM=rg(()=>rv(rK.union([rK.literal("api-key"),rK.literal("oidc")]))),aA=["embedding","image","language","realtime","reranking","speech","transcription","video"],aT=class{constructor(e){this.config=e}async getAvailableModels(){try{let{value:e}=await tB({url:`${this.config.baseURL}/config`,validateUrl:!1,headers:this.config.headers?await rM(this.config.headers):void 0,successfulResponseHandler:rR(aC),failedResponseHandler:rC({errorSchema:rK.any(),errorToMessage:e=>{var t;return null!=(t=eU(e))?t:"unknown error"}}),fetch:this.config.fetch});return e}catch(e){throw await a_(e)}}async getCredits(){try{let e=new URL(this.config.baseURL),{value:t}=await tB({url:`${e.origin}/v1/credits`,validateUrl:!1,headers:this.config.headers?await rM(this.config.headers):void 0,successfulResponseHandler:rR(aR),failedResponseHandler:rC({errorSchema:rK.any(),errorToMessage:e=>{var t;return null!=(t=eU(e))?t:"unknown error"}}),fetch:this.config.fetch});return t}catch(e){throw await a_(e)}}},aC=rg(()=>rv(rK.object({models:rK.array(rK.object({id:rK.string(),name:rK.string(),description:rK.string().nullish(),pricing:rK.object({input:rK.string(),output:rK.string(),input_cache_read:rK.string().nullish(),input_cache_write:rK.string().nullish()}).transform(({input:e,output:t,input_cache_read:r,input_cache_write:a})=>({input:e,output:t,...r?{cachedInputTokens:r}:{},...a?{cacheCreationInputTokens:a}:{}})).nullish(),specification:rK.object({specificationVersion:rK.literal("v4"),provider:rK.string(),modelId:rK.string()}),modelType:rK.string().nullish()})).transform(e=>e.filter(e=>null==e.modelType||aA.includes(e.modelType)))}))),aR=rg(()=>rv(rK.object({balance:rK.string(),total_used:rK.string()}).transform(({balance:e,total_used:t})=>({balance:e,totalUsed:t})))),aO=class{constructor(e){this.config=e}async getSpendReport(e){try{let t=new URL(this.config.baseURL),r=new URLSearchParams;r.set("start_date",e.startDate),r.set("end_date",e.endDate),e.groupBy&&r.set("group_by",e.groupBy),e.datePart&&r.set("date_part",e.datePart),e.userId&&r.set("user_id",e.userId),e.model&&r.set("model",e.model),e.provider&&r.set("provider",e.provider),e.credentialType&&r.set("credential_type",e.credentialType),e.tags&&e.tags.length>0&&r.set("tags",e.tags.join(","));let{value:a}=await tB({url:`${t.origin}/v1/report?${r.toString()}`,validateUrl:!1,headers:this.config.headers?await rM(this.config.headers):void 0,successfulResponseHandler:rR(aN),failedResponseHandler:rC({errorSchema:rK.any(),errorToMessage:e=>{var t;return null!=(t=eU(e))?t:"unknown error"}}),fetch:this.config.fetch});return a}catch(e){throw await a_(e)}}},aN=rg(()=>rv(rK.object({results:rK.array(rK.object({day:rK.string().optional(),hour:rK.string().optional(),user:rK.string().optional(),model:rK.string().optional(),tag:rK.string().optional(),provider:rK.string().optional(),credential_type:rK.enum(["byok","system"]).optional(),total_cost:rK.number(),market_cost:rK.number().optional(),input_tokens:rK.number().optional(),output_tokens:rK.number().optional(),cached_input_tokens:rK.number().optional(),cache_creation_input_tokens:rK.number().optional(),reasoning_tokens:rK.number().optional(),request_count:rK.number().optional()}).transform(({credential_type:e,total_cost:t,market_cost:r,input_tokens:a,output_tokens:n,cached_input_tokens:o,cache_creation_input_tokens:s,reasoning_tokens:i,request_count:l,...u})=>({...u,...void 0!==e?{credentialType:e}:{},totalCost:t,...void 0!==r?{marketCost:r}:{},...void 0!==a?{inputTokens:a}:{},...void 0!==n?{outputTokens:n}:{},...void 0!==o?{cachedInputTokens:o}:{},...void 0!==s?{cacheCreationInputTokens:s}:{},...void 0!==i?{reasoningTokens:i}:{},...void 0!==l?{requestCount:l}:{}})))}))),aP=class{constructor(e){this.config=e}async getGenerationInfo(e){try{let t=new URL(this.config.baseURL),{value:r}=await tB({url:`${t.origin}/v1/generation?id=${encodeURIComponent(e.id)}`,validateUrl:!1,headers:this.config.headers?await rM(this.config.headers):void 0,successfulResponseHandler:rR(a$),failedResponseHandler:rC({errorSchema:rK.any(),errorToMessage:e=>{var t;return null!=(t=eU(e))?t:"unknown error"}}),fetch:this.config.fetch});return r}catch(e){throw await a_(e)}}},a$=rg(()=>rv(rK.object({data:rK.object({id:rK.string(),total_cost:rK.number(),upstream_inference_cost:rK.number(),usage:rK.number(),created_at:rK.string(),model:rK.string(),is_byok:rK.boolean(),provider_name:rK.string(),streamed:rK.boolean(),finish_reason:rK.string(),latency:rK.number(),generation_time:rK.number(),native_tokens_prompt:rK.number(),native_tokens_completion:rK.number(),native_tokens_reasoning:rK.number(),native_tokens_cached:rK.number(),native_tokens_cache_creation:rK.number(),billable_web_search_calls:rK.number()}).transform(({total_cost:e,upstream_inference_cost:t,created_at:r,is_byok:a,provider_name:n,finish_reason:o,generation_time:s,native_tokens_prompt:i,native_tokens_completion:l,native_tokens_reasoning:u,native_tokens_cached:d,native_tokens_cache_creation:c,billable_web_search_calls:p,...h})=>({...h,totalCost:e,upstreamInferenceCost:t,createdAt:r,isByok:a,providerName:n,finishReason:o,generationTime:s,promptTokens:i,completionTokens:l,reasoningTokens:u,cachedTokens:d,cacheCreationTokens:c,billableWebSearchCalls:p}))}).transform(({data:e})=>e))),aD=class e{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v4",this.supportedUrls={"*/*":[/.*/]}}static[tr](e){return rF({modelId:e.modelId,config:e.config})}static[ta](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}async getArgs(e){let{abortSignal:t,...r}=e;return{args:this.maybeEncodeFileParts(r),warnings:[]}}async doGenerate(e){let{args:t,warnings:r}=await this.getArgs(e),{abortSignal:a}=e,n=this.config.headers?await rM(this.config.headers):void 0;try{let{responseHeaders:o,value:s,rawValue:i}=await rE({url:this.getUrl(),headers:tn(n,e.headers,this.getModelConfigHeaders(this.modelId,!1),await rM(this.config.o11yHeaders)),body:t,successfulResponseHandler:rR(rK.any()),failedResponseHandler:rC({errorSchema:rK.any(),errorToMessage:e=>{var t;return null!=(t=eU(e))?t:"unknown error"}}),...a&&{abortSignal:a},fetch:this.config.fetch});return{...s,request:{body:t},response:{headers:o,body:i},warnings:r}}catch(e){throw await a_(e,await aS(null!=n?n:{}))}}async doStream(e){let{args:t,warnings:r}=await this.getArgs(e),{abortSignal:a}=e,n=this.config.headers?await rM(this.config.headers):void 0;try{let o,{value:s,responseHeaders:i}=await rE({url:this.getUrl(),headers:tn(n,e.headers,this.getModelConfigHeaders(this.modelId,!0),await rM(this.config.o11yHeaders)),body:t,successfulResponseHandler:(o=rK.any(),async({response:e,url:t,requestBodyValues:r})=>{let a=th(e);if(null==e.body)throw new eD({});return{responseHeaders:a,value:rk({stream:function({stream:e,url:t,requestBodyValues:r,statusCode:a,responseHeaders:n}){let o=e.getReader(),s=!1,i=()=>{s||(o.releaseLock(),s=!0)};return new ReadableStream({async pull(e){try{let{done:t,value:r}=await o.read();t?(i(),e.close()):e.enqueue(r)}catch(o){if(i(),tg(o))return void e.error(o);e.error(tv({error:new eO({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{i()}}})}({stream:e.body,url:t,requestBodyValues:r,statusCode:e.status,responseHeaders:a}),schema:o})}}),failedResponseHandler:rC({errorSchema:rK.any(),errorToMessage:e=>{var t;return null!=(t=eU(e))?t:"unknown error"}}),...a&&{abortSignal:a},fetch:this.config.fetch});return{stream:s.pipeThrough(new TransformStream({start(e){r.length>0&&e.enqueue({type:"stream-start",warnings:r})},transform(t,r){if(t.success){let a=t.value;("raw"!==a.type||e.includeRawChunks)&&("response-metadata"===a.type&&a.timestamp&&"string"==typeof a.timestamp&&(a.timestamp=new Date(a.timestamp)),r.enqueue(a))}else r.error(t.error)}})),request:{body:t},response:{headers:i}}}catch(e){throw await a_(e,await aS(null!=n?n:{}))}}maybeEncodeFileParts(e){for(let t of e.prompt)if(Array.isArray(t.content)){for(let e of t.content)if("file"===e.type||"reasoning-file"===e.type)e.data=aU(e.data);else if("tool-result"===e.type&&"content"===e.output.type)for(let t of e.output.value)"file"===t.type&&(t.data=aU(t.data))}return e}getUrl(){return`${this.config.baseURL}/language-model`}getModelConfigHeaders(e,t){return{"ai-language-model-specification-version":"4","ai-language-model-id":e,"ai-language-model-streaming":String(t)}}};function aU(e){if("data"===e.type){let t=e.data;if(t instanceof Uint8Array)return{...e,data:rV.Buffer.from(t).toString("base64")}}return e}var aF=class e extends aD{static[tr](e){return aD[tr](e)}static[ta](t){return new e(t.modelId,t.config)}constructor(e,t){super(e,t)}async experimental_doStartBatch({requests:e,providerOptions:t,headers:r,abortSignal:a,webhookUrl:n}){var o;let s=this.config.headers?await rM(this.config.headers):void 0,i=function(e){let t=null==e?void 0:e.gateway;if(null==t||"object"!=typeof t||Array.isArray(t))return;let r=t.idempotencyKey;return"string"==typeof r&&r.length>0?r:void 0}(t),l=function(e){let t=null==e?void 0:e.gateway;if(null==t||"object"!=typeof t||Array.isArray(t)||!("idempotencyKey"in t))return e;let{idempotencyKey:r,...a}=t,n={...e};if(0===Object.keys(a).length?delete n.gateway:n.gateway=a,0!==Object.keys(n).length)return n}(t);try{let{value:t}=await rE({url:this.getBatchUrl("start"),headers:tn(s,r,this.getBatchConfigHeaders(),await rM(this.config.o11yHeaders),null!=i?{"idempotency-key":i}:void 0),body:{...null!=n&&{callbackUrl:n},modelId:this.modelId,requests:e.map(e=>({id:e.id,options:this.maybeEncodeFileParts(e.options)})),...null!=l&&{providerOptions:l}},successfulResponseHandler:rR(aY),failedResponseHandler:rC({errorSchema:rK.any(),errorToMessage:e=>{var t;return null!=(t=eU(e))?t:"unknown error"}}),...a&&{abortSignal:a},fetch:this.config.fetch});return{batchId:t.batchId,...aq(t),warnings:null!=(o=t.warnings)?o:[]}}catch(e){if(aL(e))throw e;throw await a_(e,await aS(null!=s?s:{}))}}async experimental_doGetBatchStatus({batchId:e,headers:t,abortSignal:r}){let a=this.config.headers?await rM(this.config.headers):void 0;try{let{value:n}=await rE({url:this.getBatchUrl("status"),headers:tn(a,t,this.getBatchConfigHeaders(),await rM(this.config.o11yHeaders)),body:{batchId:e},successfulResponseHandler:rR(aW),failedResponseHandler:rC({errorSchema:rK.any(),errorToMessage:e=>{var t;return null!=(t=eU(e))?t:"unknown error"}}),...r&&{abortSignal:r},fetch:this.config.fetch});return aq(n)}catch(e){if(aL(e))throw e;throw await a_(e,await aS(null!=a?a:{}))}}async experimental_doGetBatchResults({batchId:e,headers:t,abortSignal:r}){let a=this.config.headers?await rM(this.config.headers):void 0;try{var n;let o,{value:s}=await rE({url:this.getBatchUrl("results"),headers:tn(a,t,this.getBatchConfigHeaders(),await rM(this.config.o11yHeaders)),body:{batchId:e},successfulResponseHandler:async({response:e})=>{let t=th(e);if(null==e.body)throw new eD({});return{responseHeaders:t,value:rO({stream:e.body,schema:aH})}},failedResponseHandler:rC({errorSchema:rK.any(),errorToMessage:e=>{var t;return null!=(t=eU(e))?t:"unknown error"}}),...r&&{abortSignal:r},fetch:this.config.fetch});return n=aB(s),o=!1,new ReadableStream({async pull(e){if(!o)try{let{value:t,done:r}=await n.next();r?e.close():e.enqueue(t)}catch(t){e.error(t)}},async cancel(e){if(o=!0,n.return)try{await n.return(e)}catch(e){}}})}catch(e){if(aL(e))throw e;throw await a_(e,await aS(null!=a?a:{}))}}getBatchUrl(e){return`${this.config.baseURL}/batch/${e}`}getBatchConfigHeaders(){return{"ai-model-id":this.modelId}}};function aL(e){return!!(e instanceof Error||e instanceof DOMException)&&("AbortError"===e.name||"TimeoutError"===e.name)}function aq(e){var t,r,a,n;let o=function({total:e,pending:t,completed:r,failed:a}){if(tV(e)&&tV(t)&&tV(r)&&tV(a)&&t+r+a===e)return{total:e,pending:t,completed:r,failed:a}}({total:null==(t=e.requestCounts)?void 0:t.total,pending:null==(r=e.requestCounts)?void 0:r.pending,completed:null==(a=e.requestCounts)?void 0:a.completed,failed:null==(n=e.requestCounts)?void 0:n.failed});return{status:e.status,...null!=e.rawStatus&&{rawStatus:e.rawStatus},...null!=o&&{requestCounts:o},...null!=e.error&&{error:{message:e.error.message,...null!=e.error.type&&{type:e.error.type},...null!=e.error.code&&{code:e.error.code},...null!=e.error.statusCode&&{statusCode:e.error.statusCode}}},...null!=e.createdAt&&{createdAt:e.createdAt},...null!=e.expiresAt&&{expiresAt:e.expiresAt},...null!=e.providerMetadata&&{providerMetadata:e.providerMetadata}}}async function*aB(e){var t;for await(let r of e){if("succeeded"===r.status){let e=null==(t=r.result)?void 0:t.response;void 0!==e&&"string"==typeof e.timestamp&&(e.timestamp=new Date(e.timestamp))}yield r}}var aH=rK.object({id:rK.string(),status:rK.enum(["cancelled","expired","failed","succeeded"])}).catchall(rK.unknown()),az=rK.object({message:rK.string(),type:rK.string().nullish(),code:rK.string().nullish(),statusCode:rK.number().nullish()}),aV=rK.object({total:rK.number().nullish(),pending:rK.number().nullish(),completed:rK.number().nullish(),failed:rK.number().nullish()}),aZ=rK.record(rK.string(),rK.record(rK.string(),rK.unknown())),aG=rK.object({status:rK.enum(["completed","failed","pending"]),rawStatus:rK.string().nullish(),requestCounts:aV.nullish(),error:az.nullish(),createdAt:rK.string().nullish(),expiresAt:rK.string().nullish(),providerMetadata:aZ.nullish()}),aY=aG.extend({batchId:rK.string(),warnings:rK.array(rK.object({requestId:rK.string().nullish(),warning:rK.unknown()}).catchall(rK.unknown())).nullish()}),aW=aG,aK=class e{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v4",this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0}static[tr](e){return rF({modelId:e.modelId,config:e.config})}static[ta](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}async doEmbed({values:e,headers:t,abortSignal:r,providerOptions:a}){var n,o;let s=this.config.headers?await rM(this.config.headers):void 0;try{let{responseHeaders:i,value:l,rawValue:u}=await rE({url:this.getUrl(),headers:tn(s,null!=t?t:{},this.getModelConfigHeaders(),await rM(this.config.o11yHeaders)),body:{values:e,...a?{providerOptions:a}:{}},successfulResponseHandler:rR(aX),failedResponseHandler:rC({errorSchema:rK.any(),errorToMessage:e=>{var t;return null!=(t=eU(e))?t:"unknown error"}}),...r&&{abortSignal:r},fetch:this.config.fetch});return{embeddings:l.embeddings,usage:null!=(n=l.usage)?n:void 0,providerMetadata:l.providerMetadata,response:{headers:i,body:u},warnings:null!=(o=l.warnings)?o:[]}}catch(e){throw await a_(e,await aS(null!=s?s:{}))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":"4","ai-model-id":this.modelId}}},aJ=rK.discriminatedUnion("type",[rK.object({type:rK.literal("unsupported"),feature:rK.string(),details:rK.string().optional()}),rK.object({type:rK.literal("compatibility"),feature:rK.string(),details:rK.string().optional()}),rK.object({type:rK.literal("deprecated"),setting:rK.string(),message:rK.string()}),rK.object({type:rK.literal("other"),message:rK.string()})]),aX=rg(()=>rv(rK.object({embeddings:rK.array(rK.array(rK.number())),usage:rK.object({tokens:rK.number()}).nullish(),warnings:rK.array(aJ).optional(),providerMetadata:rK.record(rK.string(),rK.record(rK.string(),rK.unknown())).optional()}))),aQ=class e{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v4",this.maxImagesPerCall=Number.MAX_SAFE_INTEGER}static[tr](e){return rF({modelId:e.modelId,config:e.config})}static[ta](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}async doGenerate({prompt:e,n:t,size:r,aspectRatio:a,seed:n,files:o,mask:s,providerOptions:i,headers:l,abortSignal:u}){var d,c,p,h;let m=this.config.headers?await rM(this.config.headers):void 0;try{let{responseHeaders:g,value:f}=await rE({url:this.getUrl(),headers:tn(m,null!=l?l:{},this.getModelConfigHeaders(),await rM(this.config.o11yHeaders)),body:{prompt:e,n:t,...r&&{size:r},...a&&{aspectRatio:a},...n&&{seed:n},...i&&{providerOptions:i},...o&&{files:o.map(e=>a0(e))},...s&&{mask:a0(s)}},successfulResponseHandler:rR(a4),failedResponseHandler:rC({errorSchema:rK.any(),errorToMessage:e=>{var t;return null!=(t=eU(e))?t:"unknown error"}}),...u&&{abortSignal:u},fetch:this.config.fetch});return{images:f.images,warnings:null!=(d=f.warnings)?d:[],providerMetadata:f.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:g},...null!=f.usage&&{usage:{inputTokens:null!=(c=f.usage.inputTokens)?c:void 0,outputTokens:null!=(p=f.usage.outputTokens)?p:void 0,totalTokens:null!=(h=f.usage.totalTokens)?h:void 0}}}}catch(e){throw await a_(e,await aS(null!=m?m:{}))}}getUrl(){return`${this.config.baseURL}/image-model`}getModelConfigHeaders(){return{"ai-image-model-specification-version":"4","ai-model-id":this.modelId}}};function a0(e){return"file"===e.type&&e.data instanceof Uint8Array?{...e,data:tp(e.data)}:e}var a1=rK.object({images:rK.array(rK.unknown()).optional()}).catchall(rK.unknown()),a2=rK.discriminatedUnion("type",[rK.object({type:rK.literal("unsupported"),feature:rK.string(),details:rK.string().optional()}),rK.object({type:rK.literal("compatibility"),feature:rK.string(),details:rK.string().optional()}),rK.object({type:rK.literal("deprecated"),setting:rK.string(),message:rK.string()}),rK.object({type:rK.literal("other"),message:rK.string()})]),a5=rK.object({inputTokens:rK.number().nullish(),outputTokens:rK.number().nullish(),totalTokens:rK.number().nullish()}),a4=rK.object({images:rK.array(rK.string()),warnings:rK.array(a2).optional(),providerMetadata:rK.record(rK.string(),a1).optional(),usage:a5.optional()}),a6=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v4",this.maxVideosPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate(e){var t,r;let{headers:a,abortSignal:n}=e,o=this.config.headers?await rM(this.config.headers):void 0;try{let{responseHeaders:s,value:i}=await rE({url:this.getUrl(),headers:tn(o,null!=a?a:{},this.getModelConfigHeaders(),await rM(this.config.o11yHeaders),{accept:"text/event-stream"}),body:this.buildRequestBody(e),successfulResponseHandler:async({response:e,url:t,requestBodyValues:r})=>{if(null==e.body)throw new eO({message:"SSE response body is empty",url:t,requestBodyValues:r,statusCode:e.status});let a=rk({stream:e.body,schema:ne}).getReader(),{done:n,value:o}=await a.read();if(a.releaseLock(),n||!o)throw new eO({message:"SSE stream ended without a data event",url:t,requestBodyValues:r,statusCode:e.status});if(!o.success)throw new eO({message:"Failed to parse video SSE event",cause:o.error,url:t,requestBodyValues:r,statusCode:e.status});let s=o.value;if("error"===s.type)throw new eO({message:s.message,statusCode:s.statusCode,url:t,requestBodyValues:r,responseHeaders:Object.fromEntries([...e.headers]),responseBody:JSON.stringify(s),data:{error:{message:s.message,type:s.errorType,param:s.param}}});return{value:{videos:s.videos,warnings:s.warnings,providerMetadata:s.providerMetadata},responseHeaders:Object.fromEntries([...e.headers])}},failedResponseHandler:rC({errorSchema:rK.any(),errorToMessage:e=>{var t;return null!=(t=eU(e))?t:"unknown error"}}),...n&&{abortSignal:n},fetch:this.config.fetch});return{videos:i.videos,warnings:null!=(t=i.warnings)?t:[],providerMetadata:null!=(r=i.providerMetadata)?r:void 0,response:{timestamp:new Date,modelId:this.modelId,headers:s}}}catch(e){throw await a_(e,await aS(null!=o?o:{}))}}async handleWebhookOption({webhook:e}){let{url:t,received:r}=await e();return{webhookUrl:t,received:r}}async doStart(e){var t,r;let{headers:a,abortSignal:n,webhookUrl:o}=e,s=this.config.headers?await rM(this.config.headers):void 0;try{let{responseHeaders:i,value:l}=await rE({url:this.getStartUrl(),headers:tn(s,null!=a?a:{},this.getModelConfigHeaders(),await rM(this.config.o11yHeaders)),body:{...this.buildRequestBody(e),...o&&{callbackUrl:o}},successfulResponseHandler:rR(nt),failedResponseHandler:rC({errorSchema:rK.any(),errorToMessage:e=>{var t;return null!=(t=eU(e))?t:"unknown error"}}),...n&&{abortSignal:n},fetch:this.config.fetch});return{operation:l.operation,warnings:null!=(t=l.warnings)?t:[],providerMetadata:null!=(r=l.providerMetadata)?r:void 0,response:{timestamp:new Date,modelId:this.modelId,headers:i}}}catch(e){throw await a_(e,await aS(null!=s?s:{}))}}async doStatus({operation:e,abortSignal:t,headers:r}){var a,n,o,s,i,l;let u=this.config.headers?await rM(this.config.headers):void 0;try{let{responseHeaders:d,value:c}=await rE({url:this.getStatusUrl(),headers:tn(u,null!=r?r:{},this.getModelConfigHeaders(),await rM(this.config.o11yHeaders)),body:{operation:e},successfulResponseHandler:rR(nr),failedResponseHandler:rC({errorSchema:rK.any(),errorToMessage:e=>{var t;return null!=(t=eU(e))?t:"unknown error"}}),...t&&{abortSignal:t},fetch:this.config.fetch}),p={timestamp:new Date,modelId:this.modelId,headers:d};if("completed"===c.status)return{status:"completed",videos:c.videos,warnings:null!=(a=c.warnings)?a:[],providerMetadata:null!=(n=c.providerMetadata)?n:void 0,response:p};if("error"===c.status)return{status:"error",error:c.error,providerMetadata:null!=(o=c.providerMetadata)?o:void 0,response:p};if("cancelled"===c.status)return{status:"error",error:"Video generation was cancelled.",providerMetadata:null!=(s=c.providerMetadata)?s:void 0,response:p};return{status:"pending",warnings:null!=(i=c.warnings)?i:[],providerMetadata:null!=(l=c.providerMetadata)?l:void 0,response:p}}catch(e){throw await a_(e,await aS(null!=u?u:{}))}}buildRequestBody({prompt:e,n:t,aspectRatio:r,resolution:a,duration:n,fps:o,seed:s,generateAudio:i,image:l,frameImages:u,inputReferences:d,providerOptions:c}){return{prompt:e,n:t,...r&&{aspectRatio:r},...a&&{resolution:a},...n&&{duration:n},...o&&{fps:o},...s&&{seed:s},...void 0!==i&&{generateAudio:i},...c&&{providerOptions:c},...l&&{image:a9(l)},...u&&{frameImages:u.map(e=>({...e,image:a9(e.image)}))},...d&&{inputReferences:d.map(e=>a9(e))}}}getUrl(){return`${this.config.baseURL}/video-model`}getStartUrl(){return`${this.config.baseURL}/video-model/start`}getStatusUrl(){return`${this.config.baseURL}/video-model/status`}getModelConfigHeaders(){return{"ai-video-model-specification-version":"4","ai-model-id":this.modelId}}};function a9(e){return"file"===e.type&&e.data instanceof Uint8Array?{...e,data:tp(e.data)}:e}var a3=rK.object({videos:rK.array(rK.unknown()).optional()}).catchall(rK.unknown()),a7=rK.union([rK.object({type:rK.literal("url"),url:rK.string(),mediaType:rK.string()}),rK.object({type:rK.literal("base64"),data:rK.string(),mediaType:rK.string()})]),a8=rK.discriminatedUnion("type",[rK.object({type:rK.literal("unsupported"),feature:rK.string(),details:rK.string().optional()}),rK.object({type:rK.literal("compatibility"),feature:rK.string(),details:rK.string().optional()}),rK.object({type:rK.literal("deprecated"),setting:rK.string(),message:rK.string()}),rK.object({type:rK.literal("other"),message:rK.string()})]),ne=rK.discriminatedUnion("type",[rK.object({type:rK.literal("result"),videos:rK.array(a7),warnings:rK.array(a8).optional(),providerMetadata:rK.record(rK.string(),a3).optional()}),rK.object({type:rK.literal("error"),message:rK.string(),errorType:rK.string(),statusCode:rK.number(),param:rK.unknown().nullable()})]),nt=rK.object({operation:rK.unknown(),warnings:rK.array(a8).nullish(),providerMetadata:rK.record(rK.string(),a3).nullish()}),nr=rK.discriminatedUnion("status",[rK.object({status:rK.literal("pending"),warnings:rK.array(a8).nullish(),providerMetadata:rK.record(rK.string(),a3).nullish()}),rK.object({status:rK.literal("completed"),videos:rK.array(a7),warnings:rK.array(a8).nullish(),providerMetadata:rK.record(rK.string(),a3).nullish()}),rK.object({status:rK.literal("error"),error:rK.string(),providerMetadata:rK.record(rK.string(),a3).nullish()}),rK.object({status:rK.literal("cancelled"),providerMetadata:rK.record(rK.string(),a3).nullish()})]),na=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v4"}get provider(){return this.config.provider}async doRerank({documents:e,query:t,topN:r,headers:a,abortSignal:n,providerOptions:o}){var s;let i=this.config.headers?await rM(this.config.headers):void 0;try{let{responseHeaders:l,value:u,rawValue:d}=await rE({url:this.getUrl(),headers:tn(i,null!=a?a:{},this.getModelConfigHeaders(),await rM(this.config.o11yHeaders)),body:{documents:e,query:t,...null!=r?{topN:r}:{},...o?{providerOptions:o}:{}},successfulResponseHandler:rR(no),failedResponseHandler:rC({errorSchema:rK.any(),errorToMessage:e=>{var t;return null!=(t=eU(e))?t:"unknown error"}}),...n&&{abortSignal:n},fetch:this.config.fetch});return{ranking:u.ranking,providerMetadata:u.providerMetadata,response:{headers:l,body:d},warnings:null!=(s=u.warnings)?s:[]}}catch(e){throw await a_(e,await aS(null!=i?i:{}))}}getUrl(){return`${this.config.baseURL}/reranking-model`}getModelConfigHeaders(){return{"ai-reranking-model-specification-version":"4","ai-model-id":this.modelId}}},nn=rK.discriminatedUnion("type",[rK.object({type:rK.literal("unsupported"),feature:rK.string(),details:rK.string().optional()}),rK.object({type:rK.literal("compatibility"),feature:rK.string(),details:rK.string().optional()}),rK.object({type:rK.literal("deprecated"),setting:rK.string(),message:rK.string()}),rK.object({type:rK.literal("other"),message:rK.string()})]),no=rg(()=>rv(rK.object({ranking:rK.array(rK.object({index:rK.number(),relevanceScore:rK.number()})),warnings:rK.array(nn).optional(),providerMetadata:rK.record(rK.string(),rK.record(rK.string(),rK.unknown())).optional()}))),ns=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v4"}get provider(){return this.config.provider}async doGenerate({text:e,voice:t,outputFormat:r,instructions:a,speed:n,language:o,providerOptions:s,headers:i,abortSignal:l}){var u;let d=this.config.headers?await rM(this.config.headers):void 0;try{let{responseHeaders:c,value:p,rawValue:h}=await rE({url:this.getUrl(),headers:tn(d,null!=i?i:{},this.getModelConfigHeaders(),await rM(this.config.o11yHeaders)),body:{text:e,...t&&{voice:t},...r&&{outputFormat:r},...a&&{instructions:a},...null!=n&&{speed:n},...o&&{language:o},...s&&{providerOptions:s}},successfulResponseHandler:rR(nu),failedResponseHandler:rC({errorSchema:rK.any(),errorToMessage:e=>{var t;return null!=(t=eU(e))?t:"unknown error"}}),...l&&{abortSignal:l},fetch:this.config.fetch});return{audio:p.audio,warnings:null!=(u=p.warnings)?u:[],providerMetadata:p.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:c,body:h}}}catch(e){throw await a_(e,await aS(null!=d?d:{}))}}getUrl(){return`${this.config.baseURL}/speech-model`}getModelConfigHeaders(){return{"ai-speech-model-specification-version":"4","ai-model-id":this.modelId}}},ni=rK.object({}).catchall(rK.unknown()),nl=rK.discriminatedUnion("type",[rK.object({type:rK.literal("unsupported"),feature:rK.string(),details:rK.string().optional()}),rK.object({type:rK.literal("compatibility"),feature:rK.string(),details:rK.string().optional()}),rK.object({type:rK.literal("deprecated"),setting:rK.string(),message:rK.string()}),rK.object({type:rK.literal("other"),message:rK.string()})]),nu=rK.object({audio:rK.string(),warnings:rK.array(nl).optional(),providerMetadata:rK.record(rK.string(),ni).optional()}),nd=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v4"}get provider(){return this.config.provider}async doGenerate({audio:e,mediaType:t,providerOptions:r,headers:a,abortSignal:n}){var o,s,i,l;let u=this.config.headers?await rM(this.config.headers):void 0;try{let{responseHeaders:d,value:c,rawValue:p}=await rE({url:this.getUrl(),headers:tn(u,null!=a?a:{},this.getModelConfigHeaders(),await rM(this.config.o11yHeaders)),body:{audio:e instanceof Uint8Array?tp(e):e,mediaType:t,...r&&{providerOptions:r}},successfulResponseHandler:rR(nm),failedResponseHandler:rC({errorSchema:rK.any(),errorToMessage:e=>{var t;return null!=(t=eU(e))?t:"unknown error"}}),...n&&{abortSignal:n},fetch:this.config.fetch});return{text:c.text,segments:null!=(o=c.segments)?o:[],language:null!=(s=c.language)?s:void 0,durationInSeconds:null!=(i=c.durationInSeconds)?i:void 0,warnings:null!=(l=c.warnings)?l:[],providerMetadata:c.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:d,body:p}}}catch(e){throw await a_(e,await aS(null!=u?u:{}))}}async doStream(e){var t,r,a,n,o;let s,i,l,u=null!=(a=null==(r=null==(t=this.config._internal)?void 0:t.currentDate)?void 0:r.call(t))?a:new Date,d=tn(await rM(null!=(n=this.config.headers)?n:{}),null!=(o=e.headers)?o:{},this.getModelConfigHeaders(),await rM(this.config.o11yHeaders)),c=await aS(d),p={type:"transcription-stream.start",inputAudioFormat:e.inputAudioFormat,...null!=e.providerOptions&&{providerOptions:e.providerOptions},...null!=e.includeRawChunks&&{includeRawChunks:e.includeRawChunks}};return{stream:function({webSocket:e,url:t,protocols:r,headers:a,startFrame:n,audio:o,abortSignal:s,authMethod:i}){let l=!1,u=()=>{};return new ReadableStream({start:d=>{let c,p,h,m=!1,g=!1;u=e=>{null!=c?c.cancel().catch(()=>{}):o.cancel().catch(()=>{}),null==h||h.close(e)};let f=e=>{l||(l=!0,u(),ng(d,e,i))},y=async e=>{let t=o.getReader();c=t;try{for(;;){let{done:r,value:a}=await t.read();if(r||l)break;let n="string"==typeof a?function(e){let t=tc(e.replace(/-/g,"+").replace(/_/g,"/"));return Uint8Array.from(t,e=>e.codePointAt(0))}(a):a;for(let t=0;t<n.length&&!l;t+=65536)e.send(n.subarray(t,t+65536)),await tu(e)}}finally{t.releaseLock(),c===t&&(c=void 0)}l||g||e.send(JSON.stringify({type:"transcription-stream.audio-done"}))};h=function({url:e,protocols:t,headers:r,webSocket:a,abortSignal:n,onOpen:o,onMessageText:s,onProcessingError:i,onSocketError:l,onClose:u,onAbort:d}){var c,p;let h,m,g=e=>{null!=m&&(null==n||n.removeEventListener("abort",m),m=void 0);try{null==h||h.close(e)}catch(e){}};if(null==n?void 0:n.aborted)return null==d||d(null!=(c=n.reason)?c:Error("Aborted")),{socket:void 0,close:g};try{h=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:(p=null!=r?r:{},Object.fromEntries(Object.entries(p).filter(([e,t])=>null!=t)))})}catch(e){return i(e),{socket:void 0,close:g}}null!=n&&null!=d&&(m=()=>{var e;return d(null!=(e=n.reason)?e:Error("Aborted"))},n.addEventListener("abort",m,{once:!0}));let f=h;h.onopen=()=>{try{null==o||o(f)}catch(e){i(e)}};let y=Promise.resolve();return h.onmessage=e=>{y=y.then(()=>tl(e.data)).then(e=>s(e)).catch(i)},h.onerror=()=>{y=y.then(()=>null==l?void 0:l()).catch(i)},h.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;y=y.then(()=>null==u?void 0:u({code:t,reason:r})).catch(i)},{socket:h,close:g}}({url:t,protocols:r,headers:a,webSocket:e,abortSignal:s,onAbort:e=>{l||(l=!0,u(),d.error(e))},onProcessingError:f,onOpen:e=>{e.send(JSON.stringify(n)),y(e).catch(f)},onMessageText:e=>{if(l)return;let t=function(e){let t;try{t=tW(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(rH)?r:void 0;case"transcript-delta":return rL(r.delta)&&rB(r.id,rL)&&rB(r.providerMetadata,tH)?r:void 0;case"transcript-partial":return rL(r.text)&&rB(r.id,rL)&&rB(r.startSecond,rq)&&rB(r.durationInSeconds,rq)&&rB(r.channelIndex,rq)&&rB(r.providerMetadata,tH)?r:void 0;case"transcript-final":return rL(r.text)&&rB(r.id,rL)&&rB(r.startSecond,rq)&&rB(r.endSecond,rq)&&rB(r.channelIndex,rq)&&rB(r.providerMetadata,tH)?r:void 0;case"finish":return rL(r.text)&&Array.isArray(r.segments)&&r.segments.every(rz)&&rB(r.language,rL)&&rB(r.durationInSeconds,rq)&&rB(r.providerMetadata,tH)?r:void 0;case"response-metadata":{if(!(rB(r.modelId,rL)&&rB(r.headers,tH)))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}}(e);if(null!=t){if("finish"===t.type){l=!0,d.enqueue(t),d.close(),u(1e3);return}"error"===t.type&&(m=!0,p=t.error,g=!0,null!=c?(c.cancel().catch(()=>{}),c=void 0):o.cancel().catch(()=>{})),d.enqueue(t)}},onSocketError:()=>{f(Error("Connection error on AI Gateway transcription stream"))},onClose:()=>{if(m){if(l)return;ny(p,i).then(f);return}f(Error("AI Gateway transcription stream closed before a finish part was received"))}})},cancel:()=>{l||(l=!0,u())}})}({webSocket:this.config.webSocket,url:nc(this.config.baseURL,this.modelId),protocols:null==(l=(null==(i=(s=tw(d)).authorization)?void 0:i.startsWith("Bearer "))?i.slice(7):void 0)?[rY]:rW(rY,l,{teamIdOrSlug:s[aj]}),headers:d,startFrame:p,audio:e.audio,abortSignal:e.abortSignal,authMethod:c}),request:{body:p},response:{timestamp:u,modelId:this.modelId}}}getUrl(){return`${this.config.baseURL}/transcription-model`}getModelConfigHeaders(){return{"ai-transcription-model-specification-version":"4","ai-model-id":this.modelId}}};function nc(e,t){let r=new URL(`${e.replace(/^http/,"ws")}/transcription-model`);return r.searchParams.set("ai-model-id",t),r.toString()}var np=rK.object({}).catchall(rK.unknown()),nh=rK.discriminatedUnion("type",[rK.object({type:rK.literal("unsupported"),feature:rK.string(),details:rK.string().optional()}),rK.object({type:rK.literal("compatibility"),feature:rK.string(),details:rK.string().optional()}),rK.object({type:rK.literal("deprecated"),setting:rK.string(),message:rK.string()}),rK.object({type:rK.literal("other"),message:rK.string()})]),nm=rK.object({text:rK.string(),segments:rK.array(rK.object({text:rK.string(),startSecond:rK.number(),endSecond:rK.number()})).optional(),language:rK.string().nullish(),durationInSeconds:rK.number().nullish(),warnings:rK.array(nh).optional(),providerMetadata:rK.record(rK.string(),np).optional()});async function ng(e,t,r){e.error(await a_(t,r))}var nf={authentication_error:401,failed_dependency:424,forbidden:403,internal_server_error:500,invalid_request_error:400,model_not_found:404,rate_limit_exceeded:429};async function ny(e,t){return"object"==typeof e&&null!=e&&"message"in e&&"string"==typeof e.message&&"type"in e&&"string"==typeof e.type&&e.type in nf?av({response:{error:{message:e.message,type:e.type}},statusCode:nf[e.type],authMethod:t}):Error(`AI Gateway transcription stream failed: ${null!=e&&"object"==typeof e&&"message"in e&&"string"==typeof e.message?e.message:eU(e)}`)}var nv=class{constructor(e,t){this.specificationVersion="v4",this.modelId=e,this.provider=t.provider,this.config=t}async doCreateClientSecret(e){var t,r;let a,n=await this.config.createClientSecret({modelId:this.modelId,...(null==e?void 0:e.expiresAfterSeconds)!=null&&{expiresAfterSeconds:e.expiresAfterSeconds}});return{token:n.token,url:(t=this.config.baseURL,r=this.modelId,(a=new URL(`${t.replace(/^http/,"ws")}/realtime-model`)).searchParams.set("ai-model-id",r),a.toString()),...null!=n.expiresAt&&{expiresAt:n.expiresAt}}}getWebSocketConfig(e){return{url:e.url,protocols:rW("ai-gateway-realtime.v1",e.token,{teamIdOrSlug:this.config.teamIdOrSlug})}}parseServerEvent(e){return e}serializeClientEvent(e){return e}buildSessionConfig(e){return e}},nb=rS({id:"gateway.exa_search",inputSchema:rg(()=>rv(rK.object({query:rK.string().describe("Natural-language web search query. This is required."),type:rK.enum(["auto","fast","instant"]).optional().describe("Search method. Use auto for the default balance of speed and quality."),num_results:rK.number().optional().describe("Maximum number of results to return (1-100, default: 10)."),category:rK.enum(["company","people","research paper","news","personal site","financial report"]).optional().describe("Optional content category to focus results."),user_location:rK.string().optional().describe("Two-letter ISO country code such as 'US'."),include_domains:rK.array(rK.string()).optional().describe("Only return results from these domains."),exclude_domains:rK.array(rK.string()).optional().describe("Exclude results from these domains."),start_published_date:rK.string().optional().describe("Only return links published after this ISO 8601 date."),end_published_date:rK.string().optional().describe("Only return links published before this ISO 8601 date."),contents:rK.object({text:rK.union([rK.boolean(),rK.object({max_characters:rK.number().optional(),include_html_tags:rK.boolean().optional(),verbosity:rK.enum(["compact","standard","full"]).optional(),include_sections:rK.array(rK.enum(["header","navigation","banner","body","sidebar","footer","metadata"])).optional(),exclude_sections:rK.array(rK.enum(["header","navigation","banner","body","sidebar","footer","metadata"])).optional()})]).optional(),highlights:rK.union([rK.boolean(),rK.object({query:rK.string().optional(),max_characters:rK.number().optional()})]).optional(),max_age_hours:rK.number().optional(),livecrawl_timeout:rK.number().optional(),subpages:rK.number().optional(),subpage_target:rK.union([rK.string(),rK.array(rK.string())]).optional(),extras:rK.object({links:rK.number().optional(),image_links:rK.number().optional()}).optional()}).optional().describe("Controls extracted page content and freshness.")}))),outputSchema:rg(()=>rv(rK.union([rK.object({requestId:rK.string(),searchType:rK.string().optional(),resolvedSearchType:rK.string().optional(),results:rK.array(rK.object({title:rK.string(),url:rK.string(),id:rK.string(),publishedDate:rK.string().nullable().optional(),author:rK.string().nullable().optional(),image:rK.string().nullable().optional(),favicon:rK.string().nullable().optional(),text:rK.string().optional(),highlights:rK.array(rK.string()).optional(),highlightScores:rK.array(rK.number()).optional(),summary:rK.string().optional(),subpages:rK.array(rK.any()).optional(),extras:rK.object({links:rK.array(rK.string()).optional(),imageLinks:rK.array(rK.string()).optional()}).optional()})),costDollars:rK.object({total:rK.number().optional(),search:rK.record(rK.string(),rK.number()).optional()}).optional()}),rK.object({error:rK.enum(["api_error","rate_limit","timeout","invalid_input","configuration_error","execution_error","unknown"]),statusCode:rK.number().optional(),message:rK.string()})])))}),nw=rS({id:"gateway.parallel_search",inputSchema:rg(()=>rv(rK.object({objective:rK.string().describe("Natural-language description of the web research goal, including source or freshness guidance and broader context from the task. Maximum 5000 characters."),search_queries:rK.array(rK.string()).optional().describe("Optional search queries to supplement the objective. Maximum 200 characters per query."),mode:rK.enum(["one-shot","agentic"]).optional().describe('Mode preset: "one-shot" for comprehensive results with longer excerpts (default), "agentic" for concise, token-efficient results for multi-step workflows.'),max_results:rK.number().optional().describe("Maximum number of results to return (1-20). Defaults to 10 if not specified."),source_policy:rK.object({include_domains:rK.array(rK.string()).optional().describe("Limit results to these domains. Use plain domain names only — e.g. example.com or sub.example.gov, or a bare extension like .edu. Do not include a scheme, path, or port (e.g. not https://example.com/page)."),exclude_domains:rK.array(rK.string()).optional().describe("Exclude results from these domains. Use plain domain names only — e.g. example.com or sub.example.gov, or a bare extension like .edu. Do not include a scheme, path, or port (e.g. not https://example.com/page)."),after_date:rK.string().optional().describe("Only include results published after this date. Use an ISO 8601 calendar date formatted YYYY-MM-DD (e.g. 2025-01-01); do not include a time.")}).optional().describe("Source policy for controlling which domains to include/exclude and freshness."),excerpts:rK.object({max_chars_per_result:rK.number().optional().describe("Maximum characters per result."),max_chars_total:rK.number().optional().describe("Maximum total characters across all results.")}).optional().describe("Excerpt configuration for controlling result length."),fetch_policy:rK.object({max_age_seconds:rK.number().optional().describe("Maximum age in seconds for cached content. Set to 0 to always fetch fresh content.")}).optional().describe("Fetch policy for controlling content freshness.")}))),outputSchema:rg(()=>rv(rK.union([rK.object({searchId:rK.string(),results:rK.array(rK.object({url:rK.string(),title:rK.string(),excerpt:rK.string(),publishDate:rK.string().nullable().optional(),relevanceScore:rK.number().optional()}))}),rK.object({error:rK.enum(["api_error","rate_limit","timeout","invalid_input","configuration_error","unknown"]),statusCode:rK.number().optional(),message:rK.string()})])))}),nx=rS({id:"gateway.perplexity_search",inputSchema:rg(()=>rv(rK.object({query:rK.union([rK.string(),rK.array(rK.string())]).describe("Search query (string) or multiple queries (array of up to 5 strings). Multi-query searches return combined results from all queries."),max_results:rK.number().optional().describe("Maximum number of search results to return (1-20, default: 10)"),max_tokens_per_page:rK.number().optional().describe("Maximum number of tokens to extract per search result page (256-2048, default: 2048)"),max_tokens:rK.number().optional().describe("Maximum total tokens across all search results (default: 25000, max: 1000000)"),country:rK.string().optional().describe("Two-letter ISO 3166-1 alpha-2 country code for regional search results (e.g., 'US', 'GB', 'FR')"),search_domain_filter:rK.array(rK.string()).optional().describe("List of domains to include or exclude from search results (max 20). To include: ['nature.com', 'science.org']. To exclude: ['-example.com', '-spam.net']"),search_language_filter:rK.array(rK.string()).optional().describe("List of ISO 639-1 language codes to filter results (max 10, lowercase). Examples: ['en', 'fr', 'de']"),search_after_date:rK.string().optional().describe("Include only results published after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter."),search_before_date:rK.string().optional().describe("Include only results published before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter."),last_updated_after_filter:rK.string().optional().describe("Include only results last updated after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter."),last_updated_before_filter:rK.string().optional().describe("Include only results last updated before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter."),search_recency_filter:rK.enum(["day","week","month","year"]).optional().describe("Filter results by relative time period. Cannot be used with search_after_date or search_before_date.")}))),outputSchema:rg(()=>rv(rK.union([rK.object({results:rK.array(rK.object({title:rK.string(),url:rK.string(),snippet:rK.string(),date:rK.string().optional(),lastUpdated:rK.string().optional()})),id:rK.string()}),rK.object({error:rK.enum(["api_error","rate_limit","timeout","invalid_input","unknown"]),statusCode:rK.number().optional(),message:rK.string()})])))}),nI=rK.object({count:rK.number().optional().describe("Maximum number of data results to return (1-20). When include_contents is true, each additional result adds its own data surcharge."),include_contents:rK.boolean().optional().describe("Inline rows for each data result. This adds a data surcharge based on row count and dataset source. To estimate cost, search with include_contents disabled and inspect cards.content.export_pricing. This applies to every returned card; limit sources.data.count and sources.data.max_rows to control cost."),mode:rK.enum(["inline","url"]).optional().describe("Requested data delivery mode. Search card data is always inline."),content_format:rK.enum(["card_json","csv","json_compact","json_records"]).optional().describe("Serialization for inlined card data."),max_rows:rK.number().optional().describe("Maximum rows to inline per result. Omit to use the allowance in cards.content.export_pricing. A data surcharge applies per 1,000 exported rows; lower values reduce cost."),node_ids:rK.array(rK.string()).optional().describe("Data Graph node IDs to prioritize. Maximum 20."),strict:rK.boolean().optional().describe("Only return cards matching node_ids. Requires a non-empty node_ids.")}),nk=rK.object({count:rK.number().optional().describe("Maximum number of web results to return (1-20)."),include_contents:rK.boolean().optional().describe("Inline extracted web page text. This can add a data charge."),category:rK.enum(["finance","news","sports"]).optional().describe("Optional web-result category filter."),include_domains:rK.array(rK.string()).optional().describe("Only return results from these bare domains."),exclude_domains:rK.array(rK.string()).optional().describe("Exclude results from these bare domains."),snippet_max_chars:rK.number().optional().describe("Maximum characters in each web-result snippet."),highlights:rK.boolean().optional().describe("Include highlighted passages in web results. Defaults to true in AI Gateway."),article_content_max_chars:rK.number().optional().describe("Maximum extracted characters per web page when including contents."),published_after:rK.string().optional().describe("Keep results published on or after this ISO date (YYYY-MM-DD)."),published_before:rK.string().optional().describe("Keep results published on or before this ISO date (YYYY-MM-DD).")}),n_=rg(()=>rv(rK.object({query:rK.string().describe('Natural-language search query. Include the entity, metric, and time period. Quote a phrase to force it to one entity, for example "Tesla":PRODUCT price.'),effort:rK.enum(["deep","fast","instant"]).optional().describe("Search effort. fast is the balanced default, instant favors cached results and low latency, and deep broadens retrieval with reranking at higher cost and latency."),sources:rK.object({data:nI.optional(),web:nk.optional()}).optional().describe("Sources to search. Omit to search both curated data and the web. When provided, only keys present are searched."),location:rK.object({latitude:rK.number().describe("Latitude between -90 and 90."),longitude:rK.number().describe("Longitude between -180 and 180.")}).optional().describe("End-user coordinates for localized results."),country_code:rK.string().optional().describe("Two-letter ISO 3166-1 country code, such as 'US'."),locale:rK.string().optional().describe("BCP-47 locale, such as 'en-US'."),timezone:rK.string().optional().describe("IANA timezone, such as 'America/New_York'."),output_settings:rK.object({image_dark_mode:rK.boolean().optional().describe("Render card preview images in dark mode."),force_refresh:rK.boolean().optional().describe("Instant-effort only. Request a refreshed instant result.")}).optional().describe("Controls card rendering in the search response."),include_related:rK.number().optional().describe("Maximum related search suggestions to include (1-20).")}))),nE=rK.union([rK.boolean(),rK.number(),rK.string()]).nullable(),nj=rK.object({content_format:rK.enum(["card_json","csv","json_compact","json_records"]).nullish(),cost:rK.number().optional(),data:rK.string().nullish(),records:rK.array(rK.record(rK.string(),nE)).nullish(),dataset:rK.object({columns:rK.array(rK.object({name:rK.string(),type:rK.enum(["boolean","date","datetime","number","string"]),unit:rK.string().nullish()})),rows:rK.array(rK.array(nE)),total_rows:rK.number(),truncated:rK.boolean(),ref:rK.string(),sources:rK.array(rK.object({name:rK.string(),index:rK.enum(["data","web"]).optional()})),provenance:rK.enum(["query","web_extraction"]).optional()}).nullish(),card_data:rK.object({}).passthrough().nullish(),card_data_schema:rK.object({}).passthrough().nullish(),url:rK.string().nullish(),expires_at:rK.string().nullish(),total_rows:rK.number().nullish(),truncated:rK.boolean().optional(),export_pricing:rK.object({baseline_usd:rK.number(),free_rows:rK.number(),max_rows_ceiling:rK.number(),row_cpm_usd:rK.number()}).nullish(),manifest:rK.array(rK.object({dtype:rK.enum(["boolean","date","datetime","number","string"]).nullish(),entity:rK.string().nullish(),metric:rK.string().nullish(),name:rK.string().nullish(),unit:rK.string().nullish()})).nullish()}).passthrough(),nS=rK.object({card_id:rK.string().nullish(),title:rK.string().nullish(),description:rK.string().nullish(),semantic_description:rK.string().nullish(),webpage_url:rK.string().nullish(),image_url:rK.string().nullish(),embed_url:rK.string().nullish(),sources:rK.array(rK.object({source_name:rK.string().nullish(),source_description:rK.string().nullish(),source_index:rK.enum(["data","web"]),source_text:rK.string().nullish(),url:rK.string().nullish()})).nullish(),methodologies:rK.array(rK.object({methodology_name:rK.string().nullable(),methodology_description:rK.string().nullable()})).nullish(),source_indexes:rK.array(rK.enum(["data","web"])).nullish(),card_type:rK.string().nullish(),relevance:rK.enum(["High","Low","Medium"]).nullish(),content:nj.nullish(),exportable:rK.boolean().optional(),nodes:rK.array(rK.object({id:rK.string(),type:rK.enum(["entity","metric"]),name:rK.string(),description:rK.string().nullish()})).nullish(),metric_definitions:rK.array(rK.object({name:rK.string(),definition:rK.string()})).nullish(),data_freshness:rK.object({coverage_end:rK.string().nullish(),data_as_of:rK.string().nullish(),last_updated:rK.string().nullish()}).nullish()}).passthrough(),nM=rK.object({title:rK.string(),url:rK.string(),snippet:rK.string().nullish(),source_name:rK.string().nullish(),publish_date:rK.string().nullish(),content:nj.nullish()}).passthrough(),nA=rS({id:"gateway.tako_search",inputSchema:n_,outputSchema:rg(()=>rv(rK.union([rK.object({request_id:rK.string(),cards:rK.array(nS).optional(),web_results:rK.array(nM).optional(),usage:rK.object({total_cost_usd:rK.number(),compute:rK.object({cost_usd:rK.number()}).nullish(),data:rK.object({cost_usd:rK.number(),datasets:rK.number()}).nullish()}).nullish(),related:rK.array(rK.object({}).passthrough()).nullish()}).passthrough(),rK.object({error:rK.enum(["api_error","configuration_error","execution_error","invalid_input","rate_limit","timeout","unknown_tool"]),statusCode:rK.number().optional(),message:rK.string()})])))}),nT={exaSearch:(e={})=>nb(e),parallelSearch:(e={})=>nw(e),perplexitySearch:(e={})=>nx(e),takoSearch:(e={})=>nA(e)};async function nC(){var e;return null==(e=(0,rG.getContext)().headers)?void 0:e["x-vercel-id"]}var nR=rK.object({token:rK.string(),expiresAt:rK.number().nullish()});async function nO(e){let t=tz({settingValue:e.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});return t?{token:t,authMethod:"api-key"}:{token:await (0,rG.getVercelOidcToken)(),authMethod:"oidc"}}!function(e={}){var t,r,a;let n=null,o=null,s=null!=(t=e.metadataCacheRefreshMillis)?t:3e5,i=0,l=null!=(r=null==(a=e.baseURL)?void 0:a.replace(/\/$/,""))?r:"https://ai-gateway.vercel.sh/v4/ai",u=t=>tx({Authorization:`Bearer ${t.token}`,"ai-gateway-protocol-version":"0.0.1",[aE]:t.authMethod,...null!=e.teamIdOrSlug?{[aj]:e.teamIdOrSlug}:{},...e.headers},"ai-sdk/gateway/4.0.75"),d=async()=>{try{return u(await nO(e))}catch(e){throw r1.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:e})}},c=async()=>{try{return await nO(e)}catch(e){throw r1.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:e})}},p=async t=>{if(void 0!==globalThis.window)throw Error("AI Gateway client secrets must be minted server-side: minting needs your Gateway credential, which must never reach the browser. Call gateway.experimental_realtime.getToken() or gateway.experimental_transcription.getToken() from your server and pass the returned token to the client.");let r=u(await c()),a=new URL("/v1/realtime/client-secrets",l).toString();try{let{value:n}=await rE({url:a,headers:r,body:{model:t.modelId,...null!=t.routeKind&&{routeKind:t.routeKind},...null!=t.expiresAfterSeconds&&{expiresIn:t.expiresAfterSeconds}},successfulResponseHandler:rR(nR),failedResponseHandler:rC({errorSchema:rK.any(),errorToMessage:e=>{var t;return null!=(t=eU(e))?t:"unknown error"}}),fetch:e.fetch});return{token:n.token,...null!=n.expiresAt&&{expiresAt:n.expiresAt}}}catch(e){throw await a_(e,await aS(r))}},h=()=>{let e=tz({settingValue:void 0,environmentVariableName:"VERCEL_DEPLOYMENT_ID"}),t=tz({settingValue:void 0,environmentVariableName:"VERCEL_ENV"}),r=tz({settingValue:void 0,environmentVariableName:"VERCEL_REGION"}),a=tz({settingValue:void 0,environmentVariableName:"VERCEL_PROJECT_ID"});return async()=>{let n=await nC();return{...e&&{"ai-o11y-deployment-id":e},...t&&{"ai-o11y-environment":t},...r&&{"ai-o11y-region":r},...n&&{"ai-o11y-request-id":n},...a&&{"ai-o11y-project-id":a}}}},m=t=>new aF(t,{provider:"gateway",baseURL:l,headers:d,fetch:e.fetch,o11yHeaders:h()}),g=async()=>{var t,r,a;let u=null!=(a=null==(r=null==(t=e._internal)?void 0:t.currentDate)?void 0:r.call(t).getTime())?a:Date.now();return(!n||u-i>s)&&(i=u,n=new aT({baseURL:l,headers:d,fetch:e.fetch}).getAvailableModels().then(e=>(o=e,e)).catch(async e=>{throw await a_(e,await aS(await d()))})),o?Promise.resolve(o):n},f=async()=>new aT({baseURL:l,headers:d,fetch:e.fetch}).getCredits().catch(async e=>{throw await a_(e,await aS(await d()))}),y=async t=>new aO({baseURL:l,headers:d,fetch:e.fetch}).getSpendReport(t).catch(async e=>{throw await a_(e,await aS(await d()))}),v=async t=>new aP({baseURL:l,headers:d,fetch:e.fetch}).getGenerationInfo(t).catch(async e=>{throw await a_(e,await aS(await d()))}),b=function(e){if(new.target)throw Error("The Gateway Provider model function cannot be called with the new keyword.");return m(e)};b.specificationVersion="v4",b.getAvailableModels=g,b.getCredits=f,b.getSpendReport=y,b.getGenerationInfo=v,b.imageModel=t=>new aQ(t,{provider:"gateway",baseURL:l,headers:d,fetch:e.fetch,o11yHeaders:h()}),b.languageModel=m;let w=t=>new aK(t,{provider:"gateway",baseURL:l,headers:d,fetch:e.fetch,o11yHeaders:h()});b.embeddingModel=w,b.textEmbeddingModel=w,b.videoModel=t=>new a6(t,{provider:"gateway",baseURL:l,headers:d,fetch:e.fetch,o11yHeaders:h()});let x=t=>new na(t,{provider:"gateway",baseURL:l,headers:d,fetch:e.fetch,o11yHeaders:h()});b.rerankingModel=x,b.reranking=x;let I=t=>new ns(t,{provider:"gateway",baseURL:l,headers:d,fetch:e.fetch,o11yHeaders:h()});b.speechModel=I,b.speech=I;let k=t=>new nd(t,{provider:"gateway",baseURL:l,headers:d,fetch:e.fetch,o11yHeaders:h(),webSocket:e.webSocket});b.transcriptionModel=k,b.transcription=k,b.experimental_transcription=Object.assign(e=>k(e),{getToken:async e=>{let t=await p({modelId:e.model,routeKind:"transcription",...null!=e.expiresAfterSeconds&&{expiresAfterSeconds:e.expiresAfterSeconds}});return{token:t.token,url:nc(l,e.model),...null!=t.expiresAt&&{expiresAt:t.expiresAt}}}});let _=t=>new nv(t,{provider:"gateway.realtime",baseURL:l,teamIdOrSlug:e.teamIdOrSlug,createClientSecret:p});b.experimental_realtime=Object.assign(e=>_(e),{getToken:async e=>{let{model:t,...r}=e,a=_(t),n=await a.doCreateClientSecret(r);return{token:n.token,url:n.url,...null!=n.expiresAt&&{expiresAt:n.expiresAt}}}}),b.chat=b.languageModel,b.embedding=b.embeddingModel,b.image=b.imageModel,b.video=b.videoModel,b.tools=nT}();var nN=Object.defineProperty,nP="AI_InvalidArgumentError",n$=`vercel.ai.error.${nP}`,nD=Symbol.for(n$),nU=class extends(H=eA,B=nD,H){constructor({parameter:e,value:t,message:r}){super({name:nP,message:`Invalid argument for parameter ${e}: ${r}`}),this[B]=!0,this.parameter=e,this.value=t}static isInstance(e){return eA.hasMarker(e,n$)}},nF=Symbol.for("vercel.ai.error.AI_InvalidStreamPartError");Symbol.for("vercel.ai.error.AI_InvalidToolApprovalError");Symbol.for("vercel.ai.error.AI_InvalidToolApprovalSignatureError");Symbol.for("vercel.ai.error.AI_InvalidToolInputError");Symbol.for("vercel.ai.error.AI_ToolCallNotFoundForApprovalError");Symbol.for("vercel.ai.error.AI_MissingToolResultsError");Symbol.for("vercel.ai.error.AI_NoImageGeneratedError");var nL="AI_NoObjectGeneratedError",nq=`vercel.ai.error.${nL}`,nB=Symbol.for(nq),nH=class extends(V=eA,z=nB,V){constructor({message:e="No object generated.",cause:t,text:r,response:a,usage:n,finishReason:o}){super({name:nL,message:e,cause:t}),this[z]=!0,this.text=r,this.response=a,this.usage=n,this.finishReason=o}static isInstance(e){return eA.hasMarker(e,nq)}},nz=Symbol.for("vercel.ai.error.AI_NoOutputGeneratedError");Symbol.for("vercel.ai.error.AI_NoSpeechGeneratedError");Symbol.for("vercel.ai.error.AI_NoTranscriptGeneratedError");Symbol.for("vercel.ai.error.AI_NoTranslationGeneratedError");Symbol.for("vercel.ai.error.AI_NoVideoGeneratedError");Symbol.for("vercel.ai.error.AI_NoSuchToolError");Symbol.for("vercel.ai.error.AI_StreamProviderError");Symbol.for("vercel.ai.error.AI_ToolCallRepairError");Symbol.for("vercel.ai.error.AI_ToolChoiceViolationError");var nV="AI_UIMessageStreamError",nZ=`vercel.ai.error.${nV}`,nG=Symbol.for(nZ),nY=class extends(G=eA,Z=nG,G){constructor({chunkType:e,chunkId:t,message:r}){super({name:nV,message:r}),this[Z]=!0,this.chunkType=e,this.chunkId=t}static isInstance(e){return eA.hasMarker(e,nZ)}},nW=Symbol.for("vercel.ai.error.AI_InvalidDataContentError");Symbol.for("vercel.ai.error.AI_InvalidMessageRoleError");Symbol.for("vercel.ai.error.AI_MessageConversionError");Symbol.for("vercel.ai.error.AI_RetryError");var nK=async({url:e,maxBytes:t,abortSignal:r})=>{var a;let n=e.toString();try{let e=tx({},"ai-sdk/7.0.93",tm()),o=await tU({url:n,headers:e,abortSignal:r});if(!o.ok)throw await tI(o),new tj({url:n,statusCode:o.status,statusText:o.statusText});return{data:await tF({response:o,url:n,maxBytes:null!=t?t:0x80000000}),mediaType:null!=(a=o.headers.get("content-type"))?a:void 0}}catch(e){if(tj.isInstance(e))throw e;throw new tj({url:n,cause:e})}},nJ={array:rZ.array,boolean:rZ.boolean,custom:rZ.custom,discriminatedUnion:rZ.discriminatedUnion,enum:rZ.enum,instanceof:rZ.instanceof,lazy:rZ.lazy,literal:rZ.literal,looseObject:rZ.looseObject,never:rZ.never,null:rZ.null,number:rZ.number,object:rZ.object,record:rZ.record,string:rZ.string,union:rZ.union,unknown:rZ.unknown},nX=nJ.lazy(()=>nJ.union([nJ.null(),nJ.string(),nJ.number(),nJ.boolean(),nJ.record(nJ.string(),nX.optional()),nJ.array(nX)])),nQ=nJ.record(nJ.string(),nJ.record(nJ.string(),nX.optional())),n0=nJ.union([nJ.string(),nJ.instanceof(Uint8Array),nJ.instanceof(ArrayBuffer),nJ.custom(function(e){var t,r;return null!=(r=null==(t=globalThis.Buffer)?void 0:t.isBuffer(e))&&r},{message:"Must be a Buffer"})]),n1=nJ.record(nJ.string(),nJ.string()),n2=nJ.object({type:nJ.literal("text"),text:nJ.string(),providerOptions:nQ.optional()}),n5=nJ.object({type:nJ.literal("image"),image:nJ.union([n0,nJ.instanceof(URL),n1]),mediaType:nJ.string().optional(),providerOptions:nQ.optional()}),n4=nJ.discriminatedUnion("type",[nJ.object({type:nJ.literal("data"),data:n0}),nJ.object({type:nJ.literal("url"),url:nJ.instanceof(URL)}),nJ.object({type:nJ.literal("reference"),reference:n1}),nJ.object({type:nJ.literal("text"),text:nJ.string()})]),n6=nJ.discriminatedUnion("type",[nJ.object({type:nJ.literal("data"),data:n0}),nJ.object({type:nJ.literal("url"),url:nJ.instanceof(URL)})]),n9=nJ.object({type:nJ.literal("file"),data:nJ.union([n4,n0,nJ.instanceof(URL),n1]),filename:nJ.string().optional(),mediaType:nJ.string(),providerOptions:nQ.optional()}),n3=nJ.object({type:nJ.literal("reasoning"),text:nJ.string(),providerOptions:nQ.optional()}),n7=nJ.object({type:nJ.literal("custom"),kind:nJ.string().transform(e=>e),providerOptions:nQ.optional()}),n8=nJ.object({type:nJ.literal("reasoning-file"),data:nJ.union([n6,n0,nJ.instanceof(URL)]),mediaType:nJ.string(),providerOptions:nQ.optional()}),oe=nJ.object({type:nJ.literal("tool-call"),toolCallId:nJ.string(),toolName:nJ.string(),input:nJ.unknown(),providerOptions:nQ.optional(),providerExecuted:nJ.boolean().optional()}),ot=nJ.discriminatedUnion("type",[nJ.object({type:nJ.literal("text"),value:nJ.string(),providerOptions:nQ.optional()}),nJ.object({type:nJ.literal("json"),value:nX,providerOptions:nQ.optional()}),nJ.object({type:nJ.literal("execution-denied"),reason:nJ.string().optional(),providerOptions:nQ.optional()}),nJ.object({type:nJ.literal("error-text"),value:nJ.string(),providerOptions:nQ.optional()}),nJ.object({type:nJ.literal("error-json"),value:nX,providerOptions:nQ.optional()}),nJ.object({type:nJ.literal("content"),value:nJ.array(nJ.union([nJ.object({type:nJ.literal("text"),text:nJ.string(),providerOptions:nQ.optional()}),nJ.object({type:nJ.literal("file"),data:n4,mediaType:nJ.string(),filename:nJ.string().optional(),providerOptions:nQ.optional()}),nJ.object({type:nJ.literal("file-data"),data:nJ.string(),mediaType:nJ.string(),filename:nJ.string().optional(),providerOptions:nQ.optional()}),nJ.object({type:nJ.literal("file-url"),url:nJ.string(),mediaType:nJ.string().optional(),providerOptions:nQ.optional()}),nJ.object({type:nJ.literal("file-id"),fileId:nJ.union([nJ.string(),nJ.record(nJ.string(),nJ.string())]),providerOptions:nQ.optional()}),nJ.object({type:nJ.literal("file-reference"),providerReference:nJ.record(nJ.string(),nJ.string()),providerOptions:nQ.optional()}),nJ.object({type:nJ.literal("image-data"),data:nJ.string(),mediaType:nJ.string(),providerOptions:nQ.optional()}),nJ.object({type:nJ.literal("image-url"),url:nJ.string(),providerOptions:nQ.optional()}),nJ.object({type:nJ.literal("image-file-id"),fileId:nJ.union([nJ.string(),nJ.record(nJ.string(),nJ.string())]),providerOptions:nQ.optional()}),nJ.object({type:nJ.literal("image-file-reference"),providerReference:nJ.record(nJ.string(),nJ.string()),providerOptions:nQ.optional()}),nJ.object({type:nJ.literal("custom"),providerOptions:nQ.optional()})]))})]),or=nJ.object({type:nJ.literal("tool-result"),toolCallId:nJ.string(),toolName:nJ.string(),output:ot,providerOptions:nQ.optional()}),oa=nJ.object({type:nJ.literal("tool-approval-request"),approvalId:nJ.string(),toolCallId:nJ.string(),reason:nJ.string().optional()}),on=nJ.object({type:nJ.literal("tool-approval-response"),approvalId:nJ.string(),approved:nJ.boolean(),reason:nJ.string().optional()}),oo=nJ.object({role:nJ.literal("system"),content:nJ.string(),providerOptions:nQ.optional()}),os=nJ.object({role:nJ.literal("user"),content:nJ.union([nJ.string(),nJ.array(nJ.union([n2,n5,n9]))]),providerOptions:nQ.optional()}),oi=nJ.object({role:nJ.literal("assistant"),content:nJ.union([nJ.string(),nJ.array(nJ.union([n2,n7,n9,n3,n8,oe,or,oa]))]),providerOptions:nQ.optional()}),ol=nJ.object({role:nJ.literal("tool"),content:nJ.array(nJ.union([or,on])),providerOptions:nQ.optional()});nJ.union([oo,os,oi,ol]);var ou={},od={array:()=>og,choice:()=>ov,json:()=>ob,object:()=>om,text:()=>oh};for(var oc in od)nN(ou,oc,{get:od[oc],enumerable:!0});async function op(e){if(void 0===e)return{value:void 0,state:"undefined-input"};let t=await rI({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=await rI({text:function(e){let t=["ROOT"],r=-1,a=null,n=0;function o(e,n,o){switch(e){case'"':r=n,t.pop(),t.push(o),t.push("INSIDE_STRING");break;case"f":case"t":case"n":r=n,a=n,t.pop(),t.push(o),t.push("INSIDE_LITERAL");break;case"-":t.pop(),t.push(o),t.push("INSIDE_NUMBER");break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":r=n,t.pop(),t.push(o),t.push("INSIDE_NUMBER");break;case"{":r=n,t.pop(),t.push(o),t.push("INSIDE_OBJECT_START");break;case"[":r=n,t.pop(),t.push(o),t.push("INSIDE_ARRAY_START")}}function s(e,a){switch(e){case",":t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break;case"}":r=a,t.pop()}}function i(e,a){switch(e){case",":t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":r=a,t.pop()}}for(let l=0;l<e.length;l++){let u=e[l];switch(t[t.length-1]){case"ROOT":o(u,l,"FINISH");break;case"INSIDE_OBJECT_START":switch(u){case'"':t.pop(),t.push("INSIDE_OBJECT_KEY");break;case"}":r=l,t.pop()}break;case"INSIDE_OBJECT_AFTER_COMMA":'"'===u&&(t.pop(),t.push("INSIDE_OBJECT_KEY"));break;case"INSIDE_OBJECT_KEY":'"'===u&&(t.pop(),t.push("INSIDE_OBJECT_AFTER_KEY"));break;case"INSIDE_OBJECT_AFTER_KEY":":"===u&&(t.pop(),t.push("INSIDE_OBJECT_BEFORE_VALUE"));break;case"INSIDE_OBJECT_BEFORE_VALUE":o(u,l,"INSIDE_OBJECT_AFTER_VALUE");break;case"INSIDE_OBJECT_AFTER_VALUE":s(u,l);break;case"INSIDE_STRING":switch(u){case'"':t.pop(),r=l;break;case"\\":t.push("INSIDE_STRING_ESCAPE");break;default:r=l}break;case"INSIDE_ARRAY_START":"]"===u?(r=l,t.pop()):(r=l,o(u,l,"INSIDE_ARRAY_AFTER_VALUE"));break;case"INSIDE_ARRAY_AFTER_VALUE":switch(u){case",":t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":r=l,t.pop();break;default:r=l}break;case"INSIDE_ARRAY_AFTER_COMMA":o(u,l,"INSIDE_ARRAY_AFTER_VALUE");break;case"INSIDE_STRING_ESCAPE":t.pop(),"u"===u?(n=0,t.push("INSIDE_STRING_UNICODE_ESCAPE")):r=l;break;case"INSIDE_STRING_UNICODE_ESCAPE":(u>="0"&&u<="9"||u>="A"&&u<="F"||u>="a"&&u<="f")&&4==++n&&(t.pop(),r=l);break;case"INSIDE_NUMBER":switch(u){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":r=l;break;case"e":case"E":case"-":case".":break;case",":t.pop(),"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&i(u,l),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]&&s(u,l);break;case"}":t.pop(),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]&&s(u,l);break;case"]":t.pop(),"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&i(u,l);break;default:t.pop()}break;case"INSIDE_LITERAL":{let n=e.substring(a,l+1);"false".startsWith(n)||"true".startsWith(n)||"null".startsWith(n)?r=l:(t.pop(),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]?s(u,l):"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&i(u,l))}}}let l=e.slice(0,r+1);for(let r=t.length-1;r>=0;r--)switch(t[r]){case"INSIDE_STRING":l+='"';break;case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":l+="}";break;case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":l+="]";break;case"INSIDE_LITERAL":{let t=e.substring(a,e.length);"true".startsWith(t)?l+="true".slice(t.length):"false".startsWith(t)?l+="false".slice(t.length):"null".startsWith(t)&&(l+="null".slice(t.length))}}return l}(e)})).success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"}}var oh=()=>({name:"text",responseFormat:Promise.resolve({type:"text"}),parseCompleteOutput:async({text:e})=>e,parsePartialOutput:async({text:e})=>({partial:e}),createElementStreamTransform(){}}),om=({schema:e,name:t,description:r})=>{let a=ry(e);return{name:"object",responseFormat:rM(a.jsonSchema).then(e=>({type:"json",schema:e,...null!=t&&{name:t},...null!=r&&{description:r}})),async parseCompleteOutput({text:e},t){let r=await rI({text:e});if(!r.success)throw new nH({message:"No object generated: could not parse the response.",cause:r.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});let n=await rw({value:r.value,schema:a});if(!n.success)throw new nH({message:"No object generated: response did not match schema.",cause:n.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});return n.value},async parsePartialOutput({text:e}){let t=await op(e);switch(t.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:t.value}}},createElementStreamTransform(){}}},og=({element:e,minItems:t,maxItems:r,name:a,description:n})=>{if(of({name:"minItems",value:t}),of({name:"maxItems",value:r}),null!=t&&null!=r&&t>r)throw new nU({parameter:"minItems",value:t,message:"minItems must be less than or equal to maxItems"});let o=ry(e);return{name:"array",responseFormat:rM(o.jsonSchema).then(e=>{let{$schema:o,definitions:s,$defs:i,...l}=e;return{type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",...null!=s&&{definitions:s},...null!=i&&{$defs:i},type:"object",properties:{elements:{type:"array",items:l,...null!=t&&{minItems:t},...null!=r&&{maxItems:r}}},required:["elements"],additionalProperties:!1},...null!=a&&{name:a},...null!=n&&{description:n}}}),async parseCompleteOutput({text:e},a){let n=await rI({text:e});if(!n.success)throw new nH({message:"No object generated: could not parse the response.",cause:n.error,text:e,response:a.response,usage:a.usage,finishReason:a.finishReason});let s=n.value;if(null==s||"object"!=typeof s||!("elements"in s)||!Array.isArray(s.elements))throw new nH({message:"No object generated: response did not match schema.",cause:new e5({value:s,cause:"response must be an object with an elements array"}),text:e,response:a.response,usage:a.usage,finishReason:a.finishReason});let i=oy({value:s.elements,minItems:t,maxItems:r});if(null!=i)throw new nH({message:"No object generated: response did not match schema.",cause:i,text:e,response:a.response,usage:a.usage,finishReason:a.finishReason});let l=[];for(let t of s.elements){let r=await rw({value:t,schema:o});if(!r.success)throw new nH({message:"No object generated: response did not match schema.",cause:r.error,text:e,response:a.response,usage:a.usage,finishReason:a.finishReason});l.push(r.value)}return l},async parsePartialOutput({text:e}){let t=await op(e);switch(t.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let e=t.value;if(null==e||"object"!=typeof e||!("elements"in e)||!Array.isArray(e.elements))return;let r="repaired-parse"===t.state&&e.elements.length>0?e.elements.slice(0,-1):e.elements,a=[];for(let e of r){let t=await rw({value:e,schema:o});t.success&&a.push(t.value)}return{partial:a}}}},createElementStreamTransform(){let e=0;return new TransformStream({transform({partialOutput:t},a){if(null!=t)for(;e<t.length;e++){if(null!=r&&e>=r)return void a.error(oy({value:t,maxItems:r}));a.enqueue(t[e])}}})}}};function of({name:e,value:t}){if(null!=t){if(!Number.isInteger(t))throw new nU({parameter:e,value:t,message:`${e} must be an integer`});if(t<0)throw new nU({parameter:e,value:t,message:`${e} must be greater than or equal to 0`})}}function oy({value:e,minItems:t,maxItems:r}){return null!=t&&e.length<t?new e5({value:e,cause:`elements array must contain at least ${t} items`}):null!=r&&e.length>r?new e5({value:e,cause:`elements array must contain at most ${r} items`}):void 0}var ov=({options:e,name:t,description:r})=>({name:"choice",responseFormat:Promise.resolve({type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{result:{type:"string",enum:e}},required:["result"],additionalProperties:!1},...null!=t&&{name:t},...null!=r&&{description:r}}),async parseCompleteOutput({text:t},r){let a=await rI({text:t});if(!a.success)throw new nH({message:"No object generated: could not parse the response.",cause:a.error,text:t,response:r.response,usage:r.usage,finishReason:r.finishReason});let n=a.value;if(null==n||"object"!=typeof n||!("result"in n)||"string"!=typeof n.result||!e.includes(n.result))throw new nH({message:"No object generated: response did not match schema.",cause:new e5({value:n,cause:"response must be an object that contains a choice value."}),text:t,response:r.response,usage:r.usage,finishReason:r.finishReason});return n.result},async parsePartialOutput({text:t}){let r=await op(t);switch(r.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let t=r.value;if(null==t||"object"!=typeof t||!("result"in t)||"string"!=typeof t.result)return;let a=e.filter(e=>e.startsWith(t.result));if("successful-parse"===r.state)return a.includes(t.result)?{partial:t.result}:void 0;return 1===a.length?{partial:a[0]}:void 0}}},createElementStreamTransform(){}}),ob=({name:e,description:t}={})=>({name:"json",responseFormat:Promise.resolve({type:"json",...null!=e&&{name:e},...null!=t&&{description:t}}),async parseCompleteOutput({text:e},t){let r=await rI({text:e});if(!r.success)throw new nH({message:"No object generated: could not parse the response.",cause:r.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});return r.value},async parsePartialOutput({text:e}){let t=await op(e);switch(t.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return void 0===t.value?void 0:{partial:t.value}}},createElementStreamTransform(){}});new TextEncoder,new TextEncoder,tL({prefix:"aitxt",size:24}),tL({prefix:"call",size:24}),TransformStream;var ow=nJ.record(nJ.string(),nX.optional()),ox=rg(()=>rv(nJ.union([nJ.looseObject({type:nJ.literal("text-start"),id:nJ.string(),providerMetadata:nQ.optional()}),nJ.looseObject({type:nJ.literal("text-delta"),id:nJ.string(),delta:nJ.string(),providerMetadata:nQ.optional()}),nJ.looseObject({type:nJ.literal("text-end"),id:nJ.string(),providerMetadata:nQ.optional()}),nJ.looseObject({type:nJ.literal("error"),errorText:nJ.string()}),nJ.looseObject({type:nJ.literal("tool-input-start"),toolCallId:nJ.string(),toolName:nJ.string(),providerExecuted:nJ.boolean().optional(),providerMetadata:nQ.optional(),toolMetadata:ow.optional(),dynamic:nJ.boolean().optional(),title:nJ.string().optional()}),nJ.looseObject({type:nJ.literal("tool-input-delta"),toolCallId:nJ.string(),inputTextDelta:nJ.string()}),nJ.looseObject({type:nJ.literal("tool-input-available"),toolCallId:nJ.string(),toolName:nJ.string(),input:nJ.unknown(),providerExecuted:nJ.boolean().optional(),providerMetadata:nQ.optional(),toolMetadata:ow.optional(),dynamic:nJ.boolean().optional(),title:nJ.string().optional()}),nJ.looseObject({type:nJ.literal("tool-input-error"),toolCallId:nJ.string(),toolName:nJ.string(),input:nJ.unknown(),providerExecuted:nJ.boolean().optional(),providerMetadata:nQ.optional(),toolMetadata:ow.optional(),dynamic:nJ.boolean().optional(),errorText:nJ.string(),title:nJ.string().optional()}),nJ.looseObject({type:nJ.literal("tool-approval-request"),approvalId:nJ.string(),toolCallId:nJ.string(),approvalDescriptor:nJ.unknown().optional(),reason:nJ.string().optional(),isAutomatic:nJ.boolean().optional(),signature:nJ.string().optional()}),nJ.looseObject({type:nJ.literal("tool-approval-response"),approvalId:nJ.string(),approved:nJ.boolean(),reason:nJ.string().optional(),providerExecuted:nJ.boolean().optional(),providerMetadata:nQ.optional()}),nJ.looseObject({type:nJ.literal("tool-output-available"),toolCallId:nJ.string(),output:nJ.unknown(),providerExecuted:nJ.boolean().optional(),providerMetadata:nQ.optional(),toolMetadata:ow.optional(),dynamic:nJ.boolean().optional(),preliminary:nJ.boolean().optional()}),nJ.looseObject({type:nJ.literal("tool-output-error"),toolCallId:nJ.string(),errorText:nJ.string(),providerExecuted:nJ.boolean().optional(),providerMetadata:nQ.optional(),toolMetadata:ow.optional(),dynamic:nJ.boolean().optional()}),nJ.looseObject({type:nJ.literal("tool-output-denied"),toolCallId:nJ.string()}),nJ.looseObject({type:nJ.literal("reasoning-start"),id:nJ.string(),providerMetadata:nQ.optional()}),nJ.looseObject({type:nJ.literal("reasoning-delta"),id:nJ.string(),delta:nJ.string(),providerMetadata:nQ.optional()}),nJ.looseObject({type:nJ.literal("reasoning-end"),id:nJ.string(),providerMetadata:nQ.optional()}),nJ.looseObject({type:nJ.literal("custom"),kind:nJ.string().transform(e=>e),providerMetadata:nQ.optional()}),nJ.looseObject({type:nJ.literal("source-url"),sourceId:nJ.string(),url:nJ.string(),title:nJ.string().optional(),providerMetadata:nQ.optional()}),nJ.looseObject({type:nJ.literal("source-document"),sourceId:nJ.string(),mediaType:nJ.string(),title:nJ.string(),filename:nJ.string().optional(),providerMetadata:nQ.optional()}),nJ.looseObject({type:nJ.literal("file"),url:nJ.string(),mediaType:nJ.string(),providerMetadata:nQ.optional()}),nJ.looseObject({type:nJ.literal("reasoning-file"),url:nJ.string(),mediaType:nJ.string(),providerMetadata:nQ.optional()}),nJ.looseObject({type:nJ.custom(e=>"string"==typeof e&&e.startsWith("data-"),{message:'Type must start with "data-"'}),id:nJ.string().optional(),data:nJ.unknown(),transient:nJ.boolean().optional()}),nJ.looseObject({type:nJ.literal("start-step")}),nJ.looseObject({type:nJ.literal("finish-step")}),nJ.looseObject({type:nJ.literal("reset-step")}),nJ.looseObject({type:nJ.literal("start"),messageId:nJ.string().optional(),messageMetadata:nJ.unknown().optional()}),nJ.looseObject({type:nJ.literal("finish"),finishReason:nJ.enum(["stop","length","content-filter","tool-calls","error","other"]).optional(),messageMetadata:nJ.unknown().optional()}),nJ.looseObject({type:nJ.literal("abort"),reason:nJ.string().optional()}),nJ.looseObject({type:nJ.literal("message-metadata"),messageMetadata:nJ.unknown()})])));function oI(){return Object.create(null)}function ok(e){return e.type.startsWith("tool-")}function o_(e){return"dynamic-tool"===e.type}function oE(e){return ok(e)||o_(e)}function oj(e){return e.type.split("-").slice(1).join("-")}function oS(e){return o_(e)?e.toolName:oj(e)}async function oM({stream:e,onError:t,abortSignal:r}){let a=e.getReader(),n=()=>{a.cancel().catch(()=>{})};(null==r?void 0:r.aborted)?n():null==r||r.addEventListener("abort",n,{once:!0});try{for(;;){let{done:e}=await a.read();if(e)break}}catch(e){null==t||t(e)}finally{null==r||r.removeEventListener("abort",n),a.releaseLock()}}tL({prefix:"aitxt",size:24}),tL({prefix:"call",size:24}),tL({prefix:"aitxt",size:24}),tL({prefix:"call",size:24});var oA=nJ.record(nJ.string(),nX.optional()),oT=nJ.record(nJ.string(),nJ.string());function oC(e){return({url:t,abortSignal:r})=>nK({url:t,maxBytes:null==e?void 0:e.maxBytes,abortSignal:r})}rg(()=>rv(nJ.array(nJ.object({id:nJ.string(),role:nJ.enum(["system","user","assistant"]),metadata:nJ.unknown().optional(),parts:nJ.array(nJ.union([nJ.object({type:nJ.literal("text"),text:nJ.string(),state:nJ.enum(["streaming","done"]).optional(),providerMetadata:nQ.optional()}),nJ.object({type:nJ.literal("reasoning"),id:nJ.string().optional(),text:nJ.string(),state:nJ.enum(["streaming","done"]).optional(),providerMetadata:nQ.optional()}),nJ.object({type:nJ.literal("custom"),kind:nJ.string(),providerMetadata:nQ.optional()}),nJ.object({type:nJ.literal("source-url"),sourceId:nJ.string(),url:nJ.string(),title:nJ.string().optional(),providerMetadata:nQ.optional()}),nJ.object({type:nJ.literal("source-document"),sourceId:nJ.string(),mediaType:nJ.string(),title:nJ.string(),filename:nJ.string().optional(),providerMetadata:nQ.optional()}),nJ.object({type:nJ.literal("file"),mediaType:nJ.string(),filename:nJ.string().optional(),url:nJ.string(),providerReference:oT.optional(),providerMetadata:nQ.optional()}),nJ.object({type:nJ.literal("reasoning-file"),mediaType:nJ.string(),url:nJ.string(),providerMetadata:nQ.optional()}),nJ.object({type:nJ.literal("step-start")}),nJ.object({type:nJ.string().startsWith("data-"),id:nJ.string().optional(),data:nJ.unknown()}),nJ.object({type:nJ.literal("dynamic-tool"),toolName:nJ.string(),toolCallId:nJ.string(),title:nJ.string().optional(),toolMetadata:oA.optional(),state:nJ.literal("input-streaming"),input:nJ.unknown().optional(),providerExecuted:nJ.boolean().optional(),callProviderMetadata:nQ.optional(),output:nJ.never().optional(),errorText:nJ.never().optional(),approval:nJ.never().optional()}),nJ.object({type:nJ.literal("dynamic-tool"),toolName:nJ.string(),toolCallId:nJ.string(),title:nJ.string().optional(),toolMetadata:oA.optional(),state:nJ.literal("input-available"),input:nJ.unknown(),providerExecuted:nJ.boolean().optional(),output:nJ.never().optional(),errorText:nJ.never().optional(),callProviderMetadata:nQ.optional(),approval:nJ.never().optional()}),nJ.object({type:nJ.literal("dynamic-tool"),toolName:nJ.string(),toolCallId:nJ.string(),title:nJ.string().optional(),toolMetadata:oA.optional(),state:nJ.literal("approval-requested"),input:nJ.unknown(),providerExecuted:nJ.boolean().optional(),output:nJ.never().optional(),errorText:nJ.never().optional(),callProviderMetadata:nQ.optional(),approval:nJ.object({id:nJ.string(),approved:nJ.never().optional(),descriptor:nJ.unknown().optional(),requestReason:nJ.string().optional(),reason:nJ.never().optional(),isAutomatic:nJ.boolean().optional(),signature:nJ.string().optional()})}),nJ.object({type:nJ.literal("dynamic-tool"),toolName:nJ.string(),toolCallId:nJ.string(),title:nJ.string().optional(),toolMetadata:oA.optional(),state:nJ.literal("approval-responded"),input:nJ.unknown(),providerExecuted:nJ.boolean().optional(),output:nJ.never().optional(),errorText:nJ.never().optional(),callProviderMetadata:nQ.optional(),approval:nJ.object({id:nJ.string(),approved:nJ.boolean(),descriptor:nJ.unknown().optional(),requestReason:nJ.string().optional(),reason:nJ.string().optional(),isAutomatic:nJ.boolean().optional(),signature:nJ.string().optional()})}),nJ.object({type:nJ.literal("dynamic-tool"),toolName:nJ.string(),toolCallId:nJ.string(),title:nJ.string().optional(),toolMetadata:oA.optional(),state:nJ.literal("output-available"),input:nJ.unknown(),providerExecuted:nJ.boolean().optional(),output:nJ.unknown(),errorText:nJ.never().optional(),callProviderMetadata:nQ.optional(),resultProviderMetadata:nQ.optional(),preliminary:nJ.boolean().optional(),approval:nJ.object({id:nJ.string(),approved:nJ.literal(!0),descriptor:nJ.unknown().optional(),requestReason:nJ.string().optional(),reason:nJ.string().optional(),isAutomatic:nJ.boolean().optional(),signature:nJ.string().optional()}).optional()}),nJ.object({type:nJ.literal("dynamic-tool"),toolName:nJ.string(),toolCallId:nJ.string(),title:nJ.string().optional(),toolMetadata:oA.optional(),state:nJ.literal("output-error"),input:nJ.unknown().optional(),rawInput:nJ.unknown().optional(),providerExecuted:nJ.boolean().optional(),output:nJ.never().optional(),errorText:nJ.string(),callProviderMetadata:nQ.optional(),resultProviderMetadata:nQ.optional(),approval:nJ.object({id:nJ.string(),approved:nJ.literal(!0),descriptor:nJ.unknown().optional(),requestReason:nJ.string().optional(),reason:nJ.string().optional(),isAutomatic:nJ.boolean().optional(),signature:nJ.string().optional()}).optional()}),nJ.object({type:nJ.literal("dynamic-tool"),toolName:nJ.string(),toolCallId:nJ.string(),title:nJ.string().optional(),toolMetadata:oA.optional(),state:nJ.literal("output-denied"),input:nJ.unknown(),providerExecuted:nJ.boolean().optional(),output:nJ.never().optional(),errorText:nJ.never().optional(),callProviderMetadata:nQ.optional(),approval:nJ.object({id:nJ.string(),approved:nJ.literal(!1),descriptor:nJ.unknown().optional(),requestReason:nJ.string().optional(),reason:nJ.string().optional(),isAutomatic:nJ.boolean().optional(),signature:nJ.string().optional()})}),nJ.object({type:nJ.string().startsWith("tool-"),toolCallId:nJ.string(),title:nJ.string().optional(),toolMetadata:oA.optional(),state:nJ.literal("input-streaming"),providerExecuted:nJ.boolean().optional(),callProviderMetadata:nQ.optional(),input:nJ.unknown().optional(),output:nJ.never().optional(),errorText:nJ.never().optional(),approval:nJ.never().optional()}),nJ.object({type:nJ.string().startsWith("tool-"),toolCallId:nJ.string(),title:nJ.string().optional(),toolMetadata:oA.optional(),state:nJ.literal("input-available"),providerExecuted:nJ.boolean().optional(),input:nJ.unknown(),output:nJ.never().optional(),errorText:nJ.never().optional(),callProviderMetadata:nQ.optional(),approval:nJ.never().optional()}),nJ.object({type:nJ.string().startsWith("tool-"),toolCallId:nJ.string(),title:nJ.string().optional(),toolMetadata:oA.optional(),state:nJ.literal("approval-requested"),input:nJ.unknown(),providerExecuted:nJ.boolean().optional(),output:nJ.never().optional(),errorText:nJ.never().optional(),callProviderMetadata:nQ.optional(),approval:nJ.object({id:nJ.string(),approved:nJ.never().optional(),descriptor:nJ.unknown().optional(),requestReason:nJ.string().optional(),reason:nJ.never().optional(),isAutomatic:nJ.boolean().optional(),signature:nJ.string().optional()})}),nJ.object({type:nJ.string().startsWith("tool-"),toolCallId:nJ.string(),title:nJ.string().optional(),toolMetadata:oA.optional(),state:nJ.literal("approval-responded"),input:nJ.unknown(),providerExecuted:nJ.boolean().optional(),output:nJ.never().optional(),errorText:nJ.never().optional(),callProviderMetadata:nQ.optional(),approval:nJ.object({id:nJ.string(),approved:nJ.boolean(),descriptor:nJ.unknown().optional(),requestReason:nJ.string().optional(),reason:nJ.string().optional(),isAutomatic:nJ.boolean().optional(),signature:nJ.string().optional()})}),nJ.object({type:nJ.string().startsWith("tool-"),toolCallId:nJ.string(),title:nJ.string().optional(),toolMetadata:oA.optional(),state:nJ.literal("output-available"),providerExecuted:nJ.boolean().optional(),input:nJ.unknown(),output:nJ.unknown(),errorText:nJ.never().optional(),callProviderMetadata:nQ.optional(),resultProviderMetadata:nQ.optional(),preliminary:nJ.boolean().optional(),approval:nJ.object({id:nJ.string(),approved:nJ.literal(!0),descriptor:nJ.unknown().optional(),requestReason:nJ.string().optional(),reason:nJ.string().optional(),isAutomatic:nJ.boolean().optional(),signature:nJ.string().optional()}).optional()}),nJ.object({type:nJ.string().startsWith("tool-"),toolCallId:nJ.string(),title:nJ.string().optional(),toolMetadata:oA.optional(),state:nJ.literal("output-error"),providerExecuted:nJ.boolean().optional(),input:nJ.unknown().optional(),rawInput:nJ.unknown().optional(),output:nJ.never().optional(),errorText:nJ.string(),callProviderMetadata:nQ.optional(),resultProviderMetadata:nQ.optional(),approval:nJ.object({id:nJ.string(),approved:nJ.literal(!0),descriptor:nJ.unknown().optional(),requestReason:nJ.string().optional(),reason:nJ.string().optional(),isAutomatic:nJ.boolean().optional(),signature:nJ.string().optional()}).optional()}),nJ.object({type:nJ.string().startsWith("tool-"),toolCallId:nJ.string(),title:nJ.string().optional(),toolMetadata:oA.optional(),state:nJ.literal("output-denied"),providerExecuted:nJ.boolean().optional(),input:nJ.unknown(),output:nJ.never().optional(),errorText:nJ.never().optional(),callProviderMetadata:nQ.optional(),approval:nJ.object({id:nJ.string(),approved:nJ.literal(!1),descriptor:nJ.unknown().optional(),requestReason:nJ.string().optional(),reason:nJ.string().optional(),isAutomatic:nJ.boolean().optional(),signature:nJ.string().optional()})})]))}).superRefine((e,t)=>{"assistant"!==e.role&&0===e.parts.length&&t.addIssue({origin:"array",code:"too_small",minimum:1,inclusive:!0,input:e.parts,path:["parts"],message:"Message must contain at least one part"})})).nonempty("Messages array must not be empty"))),tL({prefix:"call",size:24}),tL({prefix:"call",size:24}),new TextEncoder,tL({prefix:"aiobj",size:24});var oR=class{constructor(){this.queue=[],this.isProcessing=!1}async processQueue(){if(!this.isProcessing){for(this.isProcessing=!0;this.queue.length>0;)await this.queue[0](),this.queue.shift();this.isProcessing=!1}}async run(e){return new Promise((t,r)=>{this.queue.push(async()=>{try{await e(),t()}catch(e){r(e)}}),this.processQueue()})}};tL({prefix:"aiobj",size:24}),oC();Symbol.for("vercel.ai.error.AI_NoSuchProviderError");async function oO(e){if(null==e)return[];if(!globalThis.FileList||!(e instanceof globalThis.FileList))throw Error("FileList is not supported in the current environment");return Promise.all(Array.from(e).map(async e=>{let{name:t,type:r}=e;return{type:"file",mediaType:r,filename:t,url:await new Promise((t,r)=>{let a=new FileReader;a.onload=e=>{var r;t(null==(r=e.target)?void 0:r.result)},a.onerror=e=>r(e),a.readAsDataURL(e)})}}))}tL({prefix:"call",size:24}),oC();var oN=class{constructor({api:e="/api/chat",credentials:t,headers:r,body:a,fetch:n,prepareSendMessagesRequest:o,prepareReconnectToStreamRequest:s}){this.api=e,this.credentials=t,this.headers=r,this.body=a,this.fetch=n,this.prepareSendMessagesRequest=o,this.prepareReconnectToStreamRequest=s}async sendMessages({abortSignal:e,...t}){var r,a,n,o;let s=await rM(this.body),i=await rM(this.headers),l=await rM(this.credentials),u={...tw(i),...tw(t.headers)},d=await (null==(r=this.prepareSendMessagesRequest)?void 0:r.call(this,{api:this.api,id:t.chatId,messages:t.messages,body:{...s,...t.body},headers:u,credentials:l,requestMetadata:t.metadata,trigger:t.trigger,messageId:t.messageId})),c=null!=(a=null==d?void 0:d.api)?a:this.api,p=(null==d?void 0:d.headers)!==void 0?tw(d.headers):u,h=(null==d?void 0:d.body)!==void 0?d.body:{...s,...t.body,id:t.chatId,messages:t.messages,trigger:t.trigger,messageId:t.messageId},m=null!=(n=null==d?void 0:d.credentials)?n:l,g=null!=(o=this.fetch)?o:globalThis.fetch,f=await g(c,{method:"POST",headers:{"Content-Type":"application/json",...p},body:JSON.stringify(h),credentials:m,signal:e});if(!f.ok)throw Error(await f.text()||"Failed to fetch the chat response.");if(!f.body)throw Error("The response body is empty.");return this.processResponseStream(f.body)}async reconnectToStream(e){var t,r,a,n;let o=await rM(this.body),s=await rM(this.headers),i=await rM(this.credentials),l={...tw(s),...tw(e.headers)},u=await (null==(t=this.prepareReconnectToStreamRequest)?void 0:t.call(this,{api:this.api,id:e.chatId,body:{...o,...e.body},headers:l,credentials:i,requestMetadata:e.metadata})),d=null!=(r=null==u?void 0:u.api)?r:`${this.api}/${e.chatId}/stream`,c=(null==u?void 0:u.headers)!==void 0?tw(u.headers):l,p=null!=(a=null==u?void 0:u.credentials)?a:i,h=null!=(n=this.fetch)?n:globalThis.fetch,m=await h(d,{method:"GET",headers:c,credentials:p,signal:e.abortSignal});if(204===m.status)return null;if(!m.ok)throw Error(await m.text()||"Failed to fetch the chat response.");if(!m.body)throw Error("The response body is empty.");return this.processResponseStream(m.body)}},oP=class extends oN{constructor(e={}){super(e)}processResponseStream(e){return rk({stream:e,schema:ox}).pipeThrough(new TransformStream({async transform(e,t){if(!e.success)throw e.error;t.enqueue(e.value)}}))}},o$=class{constructor({generateId:e=tq,id:t=e(),transport:r=new oP,messageMetadataSchema:a,dataPartSchemas:n,state:o,onError:s,onToolCall:i,onFinish:l,onData:u,sendAutomaticallyWhen:d}){this.pendingMessagePreparations=new Set,this.activeResponse=void 0,this.activeResumeRequest=void 0,this.jobExecutor=new oR,this.sendMessage=async(e,t)=>{var r,a,n,o;let s;if(null==e)return void await this.makeRequest({trigger:"submit-message",messageId:null==(r=this.lastMessage)?void 0:r.id,...t});if("text"in e||"files"in e){let t,r=new AbortController;this.pendingMessagePreparations.add(r);try{t=Array.isArray(e.files)?e.files:await oO(e.files)}finally{this.pendingMessagePreparations.delete(r)}if(r.signal.aborted)return;s={parts:[...t,..."text"in e&&null!=e.text?[{type:"text",text:e.text}]:[]]}}else s=e;if(null!=e.messageId){let t=this.state.messages.findIndex(t=>t.id===e.messageId);if(-1===t)throw Error(`message with id ${e.messageId} not found`);if("user"!==this.state.messages[t].role)throw Error(`message with id ${e.messageId} is not a user message`);this.state.messages=this.state.messages.slice(0,t+1),this.state.replaceMessage(t,{id:e.messageId,...s,role:null!=(a=s.role)?a:"user",metadata:e.metadata})}else this.state.pushMessage({...s,id:null!=(n=s.id)?n:this.generateId(),role:null!=(o=s.role)?o:"user",metadata:e.metadata});await this.makeRequest({trigger:"submit-message",messageId:e.messageId,...t})},this.regenerate=async({messageId:e,...t}={})=>{let r=null==e?this.state.messages.length-1:this.state.messages.findIndex(t=>t.id===e);if(-1===r)throw Error(`message ${e} not found`);this.state.messages=this.state.messages.slice(0,"assistant"===this.messages[r].role?r:r+1),await this.makeRequest({trigger:"regenerate-message",messageId:e,...t})},this.resumeStream=async(e={})=>{await this.makeRequest({trigger:"resume-stream",...e})},this.clearError=()=>{"error"===this.status&&(this.state.error=void 0,this.setStatus({status:"ready"}))},this.addToolApprovalResponse=async({id:e,approved:t,reason:r,options:a})=>this.jobExecutor.run(async()=>{let n=this.state.messages,o=n[n.length-1],s=a=>oE(a)&&"approval-requested"===a.state&&a.approval.id===e?{...a,state:"approval-responded",approval:{...a.approval,id:e,approved:t,reason:r}}:a;this.state.replaceMessage(n.length-1,{...o,parts:o.parts.map(s)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(s)),"streaming"!==this.status&&"submitted"!==this.status&&this.sendAutomaticallyWhen&&this.shouldSendAutomatically().then(e=>{var t;e&&this.makeRequest({trigger:"submit-message",messageId:null==(t=this.lastMessage)?void 0:t.id,...a})})}),this.addToolOutput=async({state:e="output-available",toolCallId:t,output:r,errorText:a,options:n})=>this.jobExecutor.run(async()=>{let o=this.state.messages,s=o[o.length-1],i=n=>oE(n)&&n.toolCallId===t?{...n,state:e,output:r,errorText:a}:n;this.state.replaceMessage(o.length-1,{...s,parts:s.parts.map(i)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(i)),"streaming"!==this.status&&"submitted"!==this.status&&this.sendAutomaticallyWhen&&this.shouldSendAutomatically().then(e=>{var t;e&&this.makeRequest({trigger:"submit-message",messageId:null==(t=this.lastMessage)?void 0:t.id,...n})})}),this.addToolResult=this.addToolOutput,this.stop=async()=>{var e,t;for(let e of this.pendingMessagePreparations)e.abort();null==(e=this.activeResumeRequest)||e.abortController.abort(),null==(t=this.activeResponse)||t.abortController.abort()},this.id=t,this.transport=r,this.generateId=e,this.messageMetadataSchema=a,this.dataPartSchemas=n,this.state=o,this.onError=s,this.onToolCall=i,this.onFinish=l,this.onData=u,this.sendAutomaticallyWhen=d}get status(){return this.state.status}setStatus({status:e,error:t}){this.status!==e&&(this.state.status=e,this.state.error=t)}get error(){return this.state.error}get messages(){return this.state.messages}get lastMessage(){return this.state.messages[this.state.messages.length-1]}set messages(e){this.state.messages=e}async shouldSendAutomatically(){if(!this.sendAutomaticallyWhen)return!1;let e=this.sendAutomaticallyWhen({messages:this.state.messages});return e&&"object"==typeof e&&"then"in e?await e:e}async makeRequest({trigger:e,metadata:t,headers:r,body:a,messageId:n}){var o,s,i;let l,u,d=new AbortController,c="resume-stream"===e?{abortController:d}:void 0;c&&(null==(o=this.activeResumeRequest)||o.abortController.abort(),this.activeResumeRequest=c);let p=()=>null==c||this.activeResumeRequest===c,h=()=>{this.activeResumeRequest===c&&(this.activeResumeRequest=void 0)};if("resume-stream"===e)try{let e=await this.transport.reconnectToStream({chatId:this.id,abortSignal:d.signal,metadata:t,headers:r,body:a});if(d.signal.aborted||!p()){await (null==e?void 0:e.cancel().catch(()=>{})),p()&&this.setStatus({status:"ready"}),h();return}if(null==e){this.setStatus({status:"ready"}),h();return}l=e}catch(e){if(d.signal.aborted||"AbortError"===e.name){p()&&this.setStatus({status:"ready"}),h();return}if(!p())return;this.onError&&e instanceof Error&&this.onError(e),this.setStatus({status:"error",error:e}),h();return}this.setStatus({status:"submitted",error:void 0});let m=this.lastMessage,g=!1,f=!1,y=!1;try{let o,s={state:function({lastMessage:e,messageId:t}){return{message:(null==e?void 0:e.role)==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:oI(),activeReasoningParts:oI(),partialToolCalls:oI()}}({lastMessage:"resume-stream"===e||"regenerate-message"===e?void 0:this.state.snapshot(m),messageId:this.generateId()}),abortController:d};u=s,s.abortController.signal.addEventListener("abort",()=>{g=!0}),this.activeResponse=s,o="resume-stream"===e?l:await this.transport.sendMessages({chatId:this.id,messages:this.state.messages,abortSignal:s.abortController.signal,metadata:t,headers:r,body:a,trigger:e,messageId:n});let i=e=>this.jobExecutor.run(()=>s.abortController.signal.aborted?Promise.resolve():e({state:s.state,write:({updateStatus:e=!0}={})=>{var t;s.abortController.signal.aborted||(e&&this.setStatus({status:"streaming"}),s.state.message.id===(null==(t=this.lastMessage)?void 0:t.id)?this.state.replaceMessage(this.state.messages.length-1,s.state.message):this.state.pushMessage(s.state.message))}}));if(await oM({stream:function({stream:e,messageMetadataSchema:t,dataPartSchemas:r,runUpdateMessageJob:a,onError:n,onToolCall:o,onData:s}){return e.pipeThrough(new TransformStream({async transform(e,i){await a(async({state:a,write:l})=>{var u,d,c,p;function h(){let e=a.message.parts,t=e.length-1;for(;t>=0&&"step-start"!==e[t].type;)t--;return e.slice(t+1)}function m(e){let t=h().filter(oE).find(t=>t.toolCallId===e);if(null==t){let r=a.message.parts;for(let a=r.length-1;a>=0;a--){let n=r[a];if(oE(n)&&n.toolCallId===e){t=n;break}}}if(null==t)throw new nY({chunkType:"tool-invocation",chunkId:e,message:`No tool invocation found for tool call ID "${e}".`});return t}function g(e,t){var r;let n=null!=t?t:h().find(t=>ok(t)&&t.toolCallId===e.toolCallId);if(null!=n){n.state=e.state,n.input=e.input,n.output=e.output,n.errorText=e.errorText,n.rawInput=e.rawInput,n.preliminary=e.preliminary,void 0!==e.title&&(n.title=e.title),void 0!==e.toolMetadata&&(n.toolMetadata=e.toolMetadata),n.providerExecuted=null!=(r=e.providerExecuted)?r:n.providerExecuted;let t=e.providerMetadata;null!=t&&("output-available"===e.state||"output-error"===e.state?n.resultProviderMetadata=t:n.callProviderMetadata=t)}else a.message.parts.push({type:`tool-${e.toolName}`,toolCallId:e.toolCallId,state:e.state,title:e.title,...void 0!==e.toolMetadata?{toolMetadata:e.toolMetadata}:{},input:e.input,output:e.output,rawInput:e.rawInput,errorText:e.errorText,providerExecuted:e.providerExecuted,preliminary:e.preliminary,...null!=e.providerMetadata&&("output-available"===e.state||"output-error"===e.state)?{resultProviderMetadata:e.providerMetadata}:{},...null!=e.providerMetadata&&"output-available"!==e.state&&"output-error"!==e.state?{callProviderMetadata:e.providerMetadata}:{}})}function f(e,t){var r,n;let o=null!=t?t:h().find(t=>"dynamic-tool"===t.type&&t.toolCallId===e.toolCallId);if(null!=o){o.state=e.state,o.toolName=e.toolName,o.input=e.input,o.output=e.output,o.errorText=e.errorText,o.rawInput=null!=(r=e.rawInput)?r:o.rawInput,o.preliminary=e.preliminary,void 0!==e.title&&(o.title=e.title),void 0!==e.toolMetadata&&(o.toolMetadata=e.toolMetadata),o.providerExecuted=null!=(n=e.providerExecuted)?n:o.providerExecuted;let t=e.providerMetadata;null!=t&&("output-available"===e.state||"output-error"===e.state?o.resultProviderMetadata=t:o.callProviderMetadata=t)}else a.message.parts.push({type:"dynamic-tool",toolName:e.toolName,toolCallId:e.toolCallId,state:e.state,input:e.input,output:e.output,errorText:e.errorText,preliminary:e.preliminary,providerExecuted:e.providerExecuted,title:e.title,...void 0!==e.toolMetadata?{toolMetadata:e.toolMetadata}:{},...null!=e.providerMetadata&&("output-available"===e.state||"output-error"===e.state)?{resultProviderMetadata:e.providerMetadata}:{},...null!=e.providerMetadata&&"output-available"!==e.state&&"output-error"!==e.state?{callProviderMetadata:e.providerMetadata}:{}})}async function y(e){if(null!=e){let r=null!=a.message.metadata?function e(t,r){if(void 0===t&&void 0===r)return;if(void 0===t)return r;if(void 0===r)return t;let a={...t};for(let n in r)if("__proto__"!==n&&"constructor"!==n&&"prototype"!==n&&Object.prototype.hasOwnProperty.call(r,n)){let o=r[n];if(void 0===o)continue;let s=n in t?t[n]:void 0,i=null!==o&&"object"==typeof o&&!Array.isArray(o)&&!(o instanceof Date)&&!(o instanceof RegExp),l=null!=s&&"object"==typeof s&&!Array.isArray(s)&&!(s instanceof Date)&&!(s instanceof RegExp);i&&l?a[n]=e(s,o):a[n]=o}return a}(a.message.metadata,e):e;null!=t&&await rb({value:r,schema:t,context:{field:"message.metadata",entityId:a.message.id}}),a.message.metadata=r}}switch(e.type){case"text-start":{let t={type:"text",text:"",providerMetadata:e.providerMetadata,state:"streaming"};a.activeTextParts[e.id]=t,a.message.parts.push(t),l();break}case"text-delta":{let t=a.activeTextParts[e.id];if(null==t)throw new nY({chunkType:"text-delta",chunkId:e.id,message:`Received text-delta for missing text part with ID "${e.id}". Ensure a "text-start" chunk is sent before any "text-delta" chunks.`});t.text+=e.delta,t.providerMetadata=null!=(u=e.providerMetadata)?u:t.providerMetadata,l();break}case"text-end":{let t=a.activeTextParts[e.id];if(null==t)throw new nY({chunkType:"text-end",chunkId:e.id,message:`Received text-end for missing text part with ID "${e.id}". Ensure a "text-start" chunk is sent before any "text-end" chunks.`});t.state="done",t.providerMetadata=null!=(d=e.providerMetadata)?d:t.providerMetadata,delete a.activeTextParts[e.id],l();break}case"custom":{let t={type:"custom",kind:e.kind,providerMetadata:e.providerMetadata};a.message.parts.push(t),l();break}case"reasoning-start":{let t={type:"reasoning",id:e.id,text:"",providerMetadata:e.providerMetadata,state:"streaming"};a.activeReasoningParts[e.id]=t,a.message.parts.push(t),l();break}case"reasoning-delta":{let t=a.activeReasoningParts[e.id];if(null==t)throw new nY({chunkType:"reasoning-delta",chunkId:e.id,message:`Received reasoning-delta for missing reasoning part with ID "${e.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-delta" chunks.`});t.text+=e.delta,t.providerMetadata=null!=(c=e.providerMetadata)?c:t.providerMetadata,l();break}case"reasoning-end":{let t=a.activeReasoningParts[e.id];if(null==t)throw new nY({chunkType:"reasoning-end",chunkId:e.id,message:`Received reasoning-end for missing reasoning part with ID "${e.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-end" chunks.`});t.providerMetadata=null!=(p=e.providerMetadata)?p:t.providerMetadata,t.state="done",delete a.activeReasoningParts[e.id],l();break}case"file":case"reasoning-file":a.message.parts.push({type:e.type,mediaType:e.mediaType,url:e.url,...null!=e.providerMetadata?{providerMetadata:e.providerMetadata}:{}}),l();break;case"source-url":a.message.parts.push({type:"source-url",sourceId:e.sourceId,url:e.url,title:e.title,providerMetadata:e.providerMetadata}),l();break;case"source-document":a.message.parts.push({type:"source-document",sourceId:e.sourceId,mediaType:e.mediaType,title:e.title,filename:e.filename,providerMetadata:e.providerMetadata}),l();break;case"tool-input-start":{let t=h().filter(ok);a.partialToolCalls[e.toolCallId]={text:"",toolName:e.toolName,index:t.length,dynamic:e.dynamic,title:e.title,toolMetadata:e.toolMetadata},e.dynamic?f({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-streaming",input:void 0,providerExecuted:e.providerExecuted,title:e.title,toolMetadata:e.toolMetadata,providerMetadata:e.providerMetadata}):g({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-streaming",input:void 0,providerExecuted:e.providerExecuted,title:e.title,toolMetadata:e.toolMetadata,providerMetadata:e.providerMetadata}),l();break}case"tool-input-delta":{let t=a.partialToolCalls[e.toolCallId];if(null==t)throw new nY({chunkType:"tool-input-delta",chunkId:e.toolCallId,message:`Received tool-input-delta for missing tool call with ID "${e.toolCallId}". Ensure a "tool-input-start" chunk is sent before any "tool-input-delta" chunks.`});t.text+=e.inputTextDelta;let{value:r}=await op(t.text);t.dynamic?f({toolCallId:e.toolCallId,toolName:t.toolName,state:"input-streaming",input:r,title:t.title,toolMetadata:t.toolMetadata}):g({toolCallId:e.toolCallId,toolName:t.toolName,state:"input-streaming",input:r,title:t.title,toolMetadata:t.toolMetadata}),l();break}case"tool-input-available":e.dynamic?f({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-available",input:e.input,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata,title:e.title,toolMetadata:e.toolMetadata}):g({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-available",input:e.input,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata,title:e.title,toolMetadata:e.toolMetadata}),l(),o&&!e.providerExecuted&&await o({toolCall:e});break;case"tool-input-error":{let t=h().filter(oE).find(t=>t.toolCallId===e.toolCallId);(null!=t?"dynamic-tool"===t.type:e.dynamic)?f({toolCallId:e.toolCallId,toolName:e.toolName,state:"output-error",input:e.input,errorText:e.errorText,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata,toolMetadata:e.toolMetadata}):g({toolCallId:e.toolCallId,toolName:e.toolName,state:"output-error",input:void 0,rawInput:e.input,errorText:e.errorText,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata,toolMetadata:e.toolMetadata}),l();break}case"tool-approval-request":{let t=m(e.toolCallId);t.state="approval-requested",t.approval={id:e.approvalId,...null!=e.approvalDescriptor?{descriptor:e.approvalDescriptor}:{},...null!=e.reason?{requestReason:e.reason}:{},...!0===e.isAutomatic?{isAutomatic:!0}:{},...null!=e.signature?{signature:e.signature}:{}},l();break}case"tool-approval-response":{let t=function(e){let t=a.message.parts.filter(oE).find(t=>{var r;return(null==(r=t.approval)?void 0:r.id)===e});if(null==t)throw new nY({chunkType:"tool-approval-response",chunkId:e,message:`No tool invocation found for approval ID "${e}".`});return t}(e.approvalId),r=null==t.approval?{id:e.approvalId}:t.approval;t.state="approval-responded",t.approval={...r,id:e.approvalId,approved:e.approved,...null!=e.reason?{reason:e.reason}:{}},null!=e.providerExecuted&&(t.providerExecuted=e.providerExecuted),null!=e.providerMetadata&&(t.callProviderMetadata=e.providerMetadata),l();break}case"tool-output-denied":m(e.toolCallId).state="output-denied",l();break;case"tool-output-available":{let t=m(e.toolCallId);"dynamic-tool"===t.type?f({toolCallId:e.toolCallId,toolName:t.toolName,state:"output-available",input:t.input,output:e.output,preliminary:e.preliminary,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata,title:t.title,toolMetadata:t.toolMetadata},t):g({toolCallId:e.toolCallId,toolName:oj(t),state:"output-available",input:t.input,output:e.output,providerExecuted:e.providerExecuted,preliminary:e.preliminary,providerMetadata:e.providerMetadata,title:t.title,toolMetadata:t.toolMetadata},t),l();break}case"tool-output-error":{let t=m(e.toolCallId);"dynamic-tool"===t.type?f({toolCallId:e.toolCallId,toolName:t.toolName,state:"output-error",input:t.input,errorText:e.errorText,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata,title:t.title,toolMetadata:t.toolMetadata},t):g({toolCallId:e.toolCallId,toolName:oj(t),state:"output-error",input:t.input,rawInput:t.rawInput,errorText:e.errorText,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata,title:t.title,toolMetadata:t.toolMetadata},t),l();break}case"start-step":a.message.parts.push({type:"step-start"});break;case"finish-step":break;case"reset-step":{let e=h();a.activeTextParts=oI(),a.activeReasoningParts=oI(),a.partialToolCalls=oI(),e.length>0&&(a.message.parts.splice(a.message.parts.length-e.length,e.length),l());break}case"start":null!=e.messageId&&(a.message.id=e.messageId),await y(e.messageMetadata),(null!=e.messageId||null!=e.messageMetadata)&&l({updateStatus:!1});break;case"finish":null!=e.finishReason&&(a.finishReason=e.finishReason),await y(e.messageMetadata),null!=e.messageMetadata&&l();break;case"message-metadata":await y(e.messageMetadata),null!=e.messageMetadata&&l();break;case"error":null==n||n(Error(e.errorText));break;default:if(e.type.startsWith("data-")){if((null==r?void 0:r[e.type])!=null){let t=a.message.parts.findIndex(t=>"id"in t&&"data"in t&&t.id===e.id&&t.type===e.type),n=t>=0?t:a.message.parts.length;await rb({value:e.data,schema:r[e.type],context:{field:`message.parts[${n}].data`,entityName:e.type,entityId:e.id}})}if(e.transient){null==s||s(e);break}let t=null!=e.id?a.message.parts.find(t=>e.type===t.type&&e.id===t.id):void 0;null!=t?t.data=e.data:a.message.parts.push(e),null==s||s(e),l()}}i.enqueue(e)})}}))}({stream:o,onToolCall:this.onToolCall,onData:this.onData,messageMetadataSchema:this.messageMetadataSchema,dataPartSchemas:this.dataPartSchemas,runUpdateMessageJob:i,onError:e=>{throw e}}),abortSignal:s.abortController.signal,onError:e=>{throw e}}),g)return p()&&this.setStatus({status:"ready"}),null;p()&&this.setStatus({status:"ready"})}catch(e){if(g||"AbortError"===e.name)return g=!0,p()&&this.setStatus({status:"ready"}),null;if(!p())return null;y=!0,e instanceof TypeError&&(e.message.toLowerCase().includes("fetch")||e.message.toLowerCase().includes("network"))&&(f=!0),this.onError&&e instanceof Error&&this.onError(e),this.setStatus({status:"error",error:e})}finally{try{u&&(null==(s=this.onFinish)||s.call(this,{message:u.state.message,messages:this.state.messages,isAbort:g,isDisconnect:f,isError:y,finishReason:u.state.finishReason}))}finally{this.activeResponse===u&&(this.activeResponse=void 0),h()}}!y&&await this.shouldSendAutomatically()&&await this.makeRequest({trigger:"submit-message",messageId:null==(i=this.lastMessage)?void 0:i.id,metadata:t,headers:r,body:a})}};e.i(560491);var oD=e.i(561866),oU=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)},oF=(e,t,r)=>(oU(e,t,"read from private field"),r?r.call(e):t.get(e)),oL=(e,t,r)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,r)},oq=(e,t,r,a)=>(oU(e,t,"write to private field"),a?a.call(e,r):t.set(e,r),r),oB=class{constructor(e=[]){oL(this,Y,void 0),oL(this,W,"ready"),oL(this,K,void 0),oL(this,J,new Set),oL(this,X,new Set),oL(this,Q,new Set),this.pushMessage=e=>{oq(this,Y,oF(this,Y).concat(e)),oF(this,ee).call(this)},this.popMessage=()=>{oq(this,Y,oF(this,Y).slice(0,-1)),oF(this,ee).call(this)},this.replaceMessage=(e,t)=>{oq(this,Y,[...oF(this,Y).slice(0,e),this.snapshot(t),...oF(this,Y).slice(e+1)]),oF(this,ee).call(this)},this.snapshot=e=>{var t;if(null==e||"object"!=typeof e||!("parts"in e)||!Array.isArray(e.parts))return e;let r={...e,parts:e.parts.map(e=>({...e}))};return"metadata"in e&&(r.metadata=Array.isArray(t=e.metadata)?[...t]:null!=t&&"object"==typeof t&&(Object.getPrototypeOf(t)===Object.prototype||null===Object.getPrototypeOf(t))?{...t}:t),r},this["~registerMessagesCallback"]=(e,t)=>{let r=t?null!=t?(0,oD.default)(e,t):e:e;return oF(this,J).add(r),()=>{oF(this,J).delete(r)}},this["~registerStatusCallback"]=e=>(oF(this,X).add(e),()=>{oF(this,X).delete(e)}),this["~registerErrorCallback"]=e=>(oF(this,Q).add(e),()=>{oF(this,Q).delete(e)}),oL(this,ee,()=>{oF(this,J).forEach(e=>e())}),oL(this,et,()=>{oF(this,X).forEach(e=>e())}),oL(this,er,()=>{oF(this,Q).forEach(e=>e())}),oq(this,Y,e)}get status(){return oF(this,W)}set status(e){oq(this,W,e),oF(this,et).call(this)}get error(){return oF(this,K)}set error(e){oq(this,K,e),oF(this,er).call(this)}get messages(){return oF(this,Y)}set messages(e){oq(this,Y,[...e]),oF(this,ee).call(this)}};Y=new WeakMap,W=new WeakMap,K=new WeakMap,J=new WeakMap,X=new WeakMap,Q=new WeakMap,ee=new WeakMap,et=new WeakMap,er=new WeakMap;var oH=class extends o${constructor({messages:e,...t}){const r=new oB(e);super({...t,state:r}),oL(this,ea,void 0),this["~registerMessagesCallback"]=(e,t)=>oF(this,ea)["~registerMessagesCallback"](e,t),this["~registerStatusCallback"]=e=>oF(this,ea)["~registerStatusCallback"](e),this["~registerErrorCallback"]=e=>oF(this,ea)["~registerErrorCallback"](e),oq(this,ea,r)}};ea=new WeakMap;var oz=e.i(96892);let oV={name:"book-open",size:24,node:[["path",{d:"M12 5v16",key:"1f6ucr"}],["path",{d:"M20.001 19A2 2 0 0022 17V5a2 2 0 00-1.999-2L16 3.002A5 5 0 0012 5a5 5 0 00-4-2H4a2 2 0 00-2 2v12a2 2 0 001.999 2H8a5 5 0 014 2 5 5 0 014-2z",key:"1fyvmf"}]]};oV.node;let oZ=(0,el.default)(oV);var oG=e.i(716327),oY=e.i(632781);let oW={name:"minus",size:24,node:[["path",{d:"M5 12h14",key:"1ays0h"}]]};oW.node;let oK=(0,el.default)(oW);var oJ=e.i(660302),oX=e.i(146538),oQ=e.i(968978),o0=e.i(213377),o1=e.i(647163);let o2=new oP({api:ey.queryKey.memoryEdit});function o5({notes:e}){let[t,r]=(0,ef.useState)(""),[a,n]=(0,ef.useState)({provider:null,model:""}),[o,s]=(0,ef.useState)(!1),{messages:i,sendMessage:l,setMessages:u,status:d,stop:c,error:p,clearError:h}=function({throttle:e,experimental_throttle:t,resume:r=!1,...a}={}){let n,o=null!=e?e:t,s=(0,ef.useRef)({});"chat"in a||(s.current={onToolCall:a.onToolCall,onData:a.onData,onFinish:a.onFinish,onError:a.onError,sendAutomaticallyWhen:a.sendAutomaticallyWhen,transport:a.transport});let i=()=>{var e;return null!=(e=s.current.transport)?e:null!=n?n:n=new oP},l={...a,transport:{sendMessages:e=>i().sendMessages(e),reconnectToStream:e=>i().reconnectToStream(e)},onToolCall:e=>{var t,r;return null==(r=(t=s.current).onToolCall)?void 0:r.call(t,e)},onData:e=>{var t,r;return null==(r=(t=s.current).onData)?void 0:r.call(t,e)},onFinish:e=>{var t,r;return null==(r=(t=s.current).onFinish)?void 0:r.call(t,e)},onError:e=>{var t,r;return null==(r=(t=s.current).onError)?void 0:r.call(t,e)},sendAutomaticallyWhen:e=>{var t,r,a;return null!=(a=null==(r=(t=s.current).sendAutomaticallyWhen)?void 0:r.call(t,e))&&a}},u=(0,ef.useRef)("chat"in a?a.chat:new oH(l));("chat"in a&&a.chat!==u.current||"id"in a&&null!=a.id&&u.current.id!==a.id)&&(u.current="chat"in a?a.chat:new oH(l));let d=u.current,c=(0,ef.useRef)({chat:d,messages:d.messages});c.current.chat!==d&&(c.current={chat:d,messages:d.messages});let p=(0,ef.useCallback)(e=>{let t=!0,r=d["~registerMessagesCallback"](()=>{t&&c.current.chat===d&&(c.current={chat:d,messages:d.messages},e())},o);return c.current={chat:d,messages:d.messages},()=>{t=!1,r()}},[d,o]),h=(0,ef.useCallback)(()=>c.current.messages,[]),m=(0,ef.useSyncExternalStore)(p,h,h),g=(0,ef.useCallback)(e=>d["~registerStatusCallback"](()=>{c.current.chat===d&&(("ready"===d.status||"error"===d.status)&&(c.current={chat:d,messages:d.messages}),e())}),[d]),f=(0,ef.useCallback)(()=>d.status,[d]),y=(0,ef.useSyncExternalStore)(g,f,f),v=(0,ef.useSyncExternalStore)(u.current["~registerErrorCallback"],()=>u.current.error,()=>u.current.error),b=(0,ef.useCallback)(e=>{"function"==typeof e&&(e=e(u.current.messages)),u.current.messages=e},[u]);return(0,ef.useEffect)(()=>{r&&u.current.resumeStream()},[r,u]),{id:u.current.id,messages:m,setMessages:b,sendMessage:u.current.sendMessage,regenerate:u.current.regenerate,clearError:u.current.clearError,stop:u.current.stop,error:v,resumeStream:u.current.resumeStream,status:y,addToolResult:u.current.addToolOutput,addToolOutput:u.current.addToolOutput,addToolApprovalResponse:u.current.addToolApprovalResponse}}({transport:o2}),m=(0,ef.useRef)(c);m.current=c,(0,ef.useEffect)(()=>()=>{m.current()},[]);let g=(0,ef.useRef)(new Map);for(let t of e)for(let e of t.facts)g.current.set(e.id,{text:e.text,path:t.path});let f="submitted"===d||"streaming"===d,y=!!(a.provider&&a.model.trim()),v=[...i].reverse().find(e=>"assistant"===e.role),b=v?.parts??[],w=b.filter(oE),x=b.flatMap(e=>"text"===e.type?[e.text]:[]).join(" ").trim(),I=!!p||w.some(e=>"output-error"===e.state),k=w.filter(e=>"output-available"===e.state&&oS(e)!==o0.TOOL_NAMES.memory_recall).length;(0,ef.useEffect)(()=>{if("ready"!==d||I||0===i.length)return;let e=setTimeout(()=>u([]),4e3);return()=>clearTimeout(e)},[d,I,i.length,u]);let _=f?(0,en.jsx)(oJ.ShinyText,{text:"Working on memory",className:"text-xs"}):p?(0,en.jsx)("span",{className:"text-xs text-destructive",children:p.message}):v?(0,en.jsx)("span",{className:"text-xs text-muted-foreground",children:x||(0===k?"Nothing to change":1===k?"1 change saved":`${k} changes saved`)}):null;return(0,en.jsx)("div",{className:"pointer-events-none absolute inset-x-0 bottom-18 z-10 flex justify-center px-8",children:(0,en.jsxs)("div",{className:"pointer-events-auto flex w-full max-w-120 flex-col items-center gap-2",children:[o&&(0,en.jsx)("div",{className:"w-full rounded-xl bg-popover p-2 shadow-lg ring-1 ring-foreground/10",children:(0,en.jsx)(oX.ModelPicker,{provider:a.provider,model:a.model,unset:"Provider",onChange:n})}),w.length>0&&(0,en.jsx)("ul",{className:"w-full divide-y divide-border/60 overflow-hidden rounded-xl bg-popover shadow-lg ring-1 ring-foreground/10",children:w.map(e=>(0,en.jsx)(o6,{name:oS(e),input:e.input,state:e.state,errorText:"output-error"===e.state?e.errorText:void 0,known:g.current},e.toolCallId))}),_&&(0,en.jsx)("p",{className:"max-w-full truncate px-1",children:_}),(0,en.jsxs)("form",{onSubmit:e=>{e.preventDefault();let n=t.trim();n&&y&&!f&&(r(""),s(!1),h(),u([]),l({text:n},{body:{model:a}}))},className:"flex h-10 w-full items-center gap-1.5 rounded-xl bg-popover pr-1.5 pl-3.5 shadow-lg ring-1 ring-foreground/10",children:[(0,en.jsx)("input",{value:t,onChange:e=>r(e.target.value),disabled:f,"aria-label":"Edit memory",placeholder:"Tell memory what changed",className:"min-w-0 flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground disabled:opacity-60"}),(0,en.jsxs)(ev.Button,{type:"button",size:"xs",variant:"ghost",onClick:()=>s(!o),className:(0,o1.cn)("max-w-44",!y&&"text-muted-foreground"),children:[y&&a.provider?(0,en.jsxs)(en.Fragment,{children:[(0,en.jsx)(oQ.ProviderIcon,{provider:a.provider,className:"size-3"}),(0,en.jsx)("span",{className:"truncate",children:a.model})]}):"Model",(0,en.jsx)(oG.ChevronDown,{className:"text-muted-foreground"})]}),(0,en.jsx)(ev.Button,{type:"submit",size:"icon-sm",loading:f,disabled:!t.trim()||!y||f,"aria-label":"Send",children:!f&&(0,en.jsx)(oz.ArrowUp,{})})]})]})})}let o4={Remember:eh.Plus,Replace:ed,Forget:oK,Rename:ed,Opened:oZ};function o6({name:e,input:t,state:r,errorText:a,known:n}){let o=function(e,t,r){let a=t??{};if(e===o0.TOOL_NAMES.memory_recall)return{kind:"Opened",path:a.path??"",lines:[],carried:!1};if(e===o0.TOOL_NAMES.memory_forget){let e=null!=a.factId?r.get(a.factId):void 0,t=null!=a.factId?`Fact #${a.factId}`:"";return{kind:"Forget",path:e?.path??"",lines:[{before:e?.text??t}],carried:!1}}let n=(a.facts??[]).filter(e=>null!=e),o=n.map(e=>null!=e.replaces?{before:r.get(e.replaces)?.text??`Fact #${e.replaces}`,after:e.text}:{after:e.text});a.description&&o.push({after:`“${a.description}”`});let s=(a.aliases??[]).filter(Boolean);return s.length&&o.push({after:`Called ${s.map(e=>`“${e}”`).join(", ")}`}),{kind:n.some(e=>null!=e.replaces)?"Replace":n.length?"Remember":"Rename",path:a.path??"",lines:o,carried:n.some(e=>e.alwaysLoad)}}(e,t,n),s=o4[o.kind],i="output-error"===r;return(0,en.jsxs)("li",{className:"flex animate-in items-start gap-2.5 px-3 py-2.5 duration-200 fade-in slide-in-from-bottom-1",children:[(0,en.jsx)(s,{className:"mt-1 size-3.5 shrink-0 text-muted-foreground"}),(0,en.jsxs)("div",{className:"min-w-0 flex-1 space-y-0.5",children:[o.lines.map((e,t)=>(0,en.jsxs)("div",{children:[e.before&&(0,en.jsx)("p",{className:"text-[13px] leading-5 text-muted-foreground/60 line-through",children:e.before}),e.after&&(0,en.jsx)("p",{className:"text-sm leading-5 text-foreground/90",children:e.after})]},`${o.kind}-${t}`)),(0,en.jsxs)("p",{className:"pt-0.5 font-mono text-[11px] text-muted-foreground",children:[o.kind,o.path&&` \xb7 ${o.path}`,o.carried&&" · carried into every call"]}),i&&a&&(0,en.jsx)("p",{className:"text-xs text-destructive",children:a})]}),(0,en.jsx)("span",{className:"mt-0.5 flex size-5 shrink-0 items-center justify-center text-muted-foreground",children:i?(0,en.jsx)(eg.X,{className:"size-3.5 text-destructive"}):"output-available"===r?(0,en.jsx)(ei.Check,{className:"size-3.5"}):(0,en.jsx)(oY.Loader2,{className:"size-3.5 animate-spin"})})]})}var o9=e.i(95187);let o3=(0,o9.createServerReference)("7fda69a255fb7c5c5fd5401dd0430ccfc6d9ebd601",o9.callServer,void 0,o9.findSourceMapURL,"addFactsAction"),o7=(0,o9.createServerReference)("7f238d60ec0427ba89cff15934ff099cbe1044619c",o9.callServer,void 0,o9.findSourceMapURL,"createNoteAction"),o8=(0,o9.createServerReference)("7fc31f84110d23b621f3e25a91911ccd4664d8643e",o9.callServer,void 0,o9.findSourceMapURL,"deleteNoteAction"),se=(0,o9.createServerReference)("7f9a2b254168fd5502160348c9e187bc9a1f582de4",o9.callServer,void 0,o9.findSourceMapURL,"forgetFactAction"),st=(0,o9.createServerReference)("7f147159e492165c6f3e725b6fb1e5b607e98e646a",o9.callServer,void 0,o9.findSourceMapURL,"reviseFactAction"),sr=(0,o9.createServerReference)("7f77eeed8de53bdd8bc4cea5fa47d4df68a64ffef9",o9.callServer,void 0,o9.findSourceMapURL,"setFactAlwaysLoadAction"),sa=(0,o9.createServerReference)("7f02e7db8b28f260e8681ddc98e73321c154495252",o9.callServer,void 0,o9.findSourceMapURL,"updateNoteAction");var sn=e.i(536015),so=e.i(895836),ss=e.i(698570),si=e.i(609856),sl=e.i(661504),su=e.i(283653);let sd=[{key:"you",label:"You"},{key:"people",label:"People"},{key:"projects",label:"Projects"},{key:"topics",label:"Topics"},{key:"inbox",label:"Inbox"}];function sc({note:e}){let t=e.facts.filter(e=>e.alwaysLoad).length;return(0,en.jsxs)(en.Fragment,{children:[(0,en.jsxs)("span",{className:"min-w-0 flex-1 truncate font-mono text-[11px]",children:[e.path," · ",e.hits," ",1===e.hits?"read":"reads"," ·"," ",e.lastReadAt?`last read ${(0,es.formatDistanceToNowStrict)(e.lastReadAt,{addSuffix:!0})}`:"never read back"]}),t>0&&(0,en.jsxs)("span",{className:"shrink-0 font-mono text-[11px] text-muted-foreground/70",children:[t," carried into every call"]})]})}function sp({note:e,active:t,onPick:r}){return(0,en.jsxs)("button",{type:"button",onClick:r,className:(0,o1.cn)("mx-2 flex items-center gap-2 rounded-md px-2 py-1.5 text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",t?"bg-secondary text-foreground":"text-muted-foreground hover:bg-muted/60 hover:text-foreground",(0,sn.isFading)(e)&&!t&&"opacity-55"),children:[(0,en.jsx)("span",{className:(0,o1.cn)("min-w-0 flex-1 truncate text-[13px]",t&&"font-medium"),children:(0,sn.noteTitle)(e.path)}),(0,en.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted-foreground/70",children:e.factCount})]})}function sh({note:e}){let[t,r]=(0,ef.useState)(!1),[a,n]=(0,ef.useState)(""),o={onOk:()=>(0,su.revalidate)(ey.queryKey.memory)},[s]=(0,si.useServerAction)(sa,o),[i]=(0,si.useServerAction)(o3,o),[l]=(0,si.useServerAction)(st,o),[u]=(0,si.useServerAction)(se,o),[d]=(0,si.useServerAction)(sr,o),[c,p]=(0,si.useServerAction)(o8,o),h=async()=>{let t=a.split("\n").map(e=>e.trim()).filter(Boolean);0!==t.length&&(await i(e.id,t),n(""))},m=async()=>{await ex.notify.confirm({title:`Forget ${e.path}?`,description:"Every fact in this note is deleted for good.",okText:"Delete",destructive:!0})&&c(e.id)};return(0,en.jsxs)("div",{className:(0,o1.cn)("flex min-h-full flex-col",(0,sn.isFading)(e)&&"opacity-55"),children:[(0,en.jsxs)("div",{className:"flex items-center justify-between gap-3 border-b border-border/60 px-6 py-2.5",children:[(0,en.jsx)("span",{className:"truncate font-mono text-[11px] text-muted-foreground",children:e.path}),(0,en.jsxs)("span",{className:"flex shrink-0 gap-1",children:[(0,en.jsx)(ev.Button,{size:"icon-sm",variant:t?"secondary":"ghost","aria-label":t?"Done editing":"Edit this note",onClick:()=>r(!t),children:t?(0,en.jsx)(ei.Check,{}):(0,en.jsx)(ed,{})}),(0,en.jsx)(ev.Button,{size:"icon-sm",variant:"ghost","aria-label":"Forget this note",loading:p,onClick:m,children:(0,en.jsx)(em.Trash2,{})})]})]}),(0,en.jsxs)("div",{className:"flex-1 space-y-5 px-6 py-5",children:[(0,en.jsxs)("div",{className:"space-y-1.5",children:[(0,en.jsx)("p",{className:"text-xl font-semibold",children:(0,sn.noteTitle)(e.path)}),t?(0,en.jsx)(sm,{text:e.description,onCommit:async t=>{await s(e.id,{description:t})}}):(0,en.jsx)("p",{className:"text-[13px] leading-relaxed text-muted-foreground",children:e.description})]}),t?(0,en.jsxs)("div",{className:"space-y-2",children:[e.facts.map(t=>(0,en.jsx)(sg,{text:t.text,alwaysLoad:t.alwaysLoad,onRevise:async r=>{await l(e.id,t.id,r)},onCarry:async r=>{await d(e.id,t.id,r)},onForget:async()=>{await u(e.id,t.id)}},t.id)),(0,en.jsxs)("div",{className:"flex gap-2 pt-1",children:[(0,en.jsx)(e_.Textarea,{value:a,onChange:e=>n(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),h())},placeholder:"Add facts — one per line",className:"min-h-9 resize-none py-1.5 text-sm"}),(0,en.jsx)(ev.Button,{size:"icon",variant:"outline",disabled:!a.trim(),onClick:h,children:(0,en.jsx)(eh.Plus,{})})]})]}):0===e.facts.length?(0,en.jsx)("p",{className:"text-xs text-muted-foreground/70",children:"Nothing saved here yet — the agent adds facts during calls"}):(0,en.jsx)("ul",{className:"divide-y divide-border/60 border-y border-border/60",children:e.facts.map(e=>(0,en.jsxs)("li",{className:"flex gap-3 py-3",children:[(0,en.jsx)("span",{className:"flex w-3.5 shrink-0 justify-center pt-1",children:e.alwaysLoad?(0,en.jsx)(ep,{className:"size-3 text-foreground"}):(0,en.jsx)("span",{className:"text-muted-foreground/50",children:"—"})}),(0,en.jsx)("span",{className:"flex-1 text-sm leading-relaxed text-foreground/90",children:e.text}),(0,en.jsxs)("span",{className:"shrink-0 pt-0.5 text-right text-[11px] text-muted-foreground/50",children:[(0,en.jsx)("span",{className:"block font-mono",children:(0,eo.format)(e.createdAt,"yyyy.MM.dd")}),(0,sn.memorySourceLabel)(e.source)&&(0,en.jsx)("span",{className:"block",children:(0,sn.memorySourceLabel)(e.source)})]})]},e.id))})]})]})}function sm({text:e,onCommit:t}){let r=(0,ss.useDraft)(e,t);return(0,en.jsx)(ew.Input,{value:r.value,onChange:e=>r.set(e.target.value),onBlur:r.commit,onKeyDown:r.onKeyDown,placeholder:"One-line summary",className:"text-sm text-muted-foreground"})}function sg({text:e,alwaysLoad:t,onRevise:r,onCarry:a,onForget:n}){let o=(0,ss.useDraft)(e,r);return(0,en.jsxs)("div",{className:"flex gap-2",children:[(0,en.jsx)(ew.Input,{value:o.value,onChange:e=>o.set(e.target.value),onBlur:o.commit,onKeyDown:o.onKeyDown,className:"text-sm"}),(0,en.jsx)(ev.Button,{size:"icon",variant:t?"secondary":"ghost","aria-label":t?"Stop carrying into calls":"Carry into every call",title:"Carried into every call, without opening this note",onClick:()=>a(!t),children:(0,en.jsx)(ep,{className:(0,o1.cn)(!t&&"text-muted-foreground/60")})}),(0,en.jsx)(ev.Button,{size:"icon",variant:"ghost",onClick:n,children:(0,en.jsx)(eg.X,{})})]})}let sf=[{key:"people",label:"Person",placeholder:"jihoon",fact:"Moved to the platform team in March"},{key:"projects",label:"Project",placeholder:"thursday",fact:"Ships behind a feature flag until April"},{key:"topics",label:"Topic",placeholder:"scheduling",fact:"No meetings before 10am"}];function sy(){return ex.notify.component({className:"sm:max-w-lg",renderer:({close:e})=>(0,en.jsx)(sv,{onDone:e})})}function sv({onDone:e}){let[t,r]=(0,ef.useState)("people"),[a,n]=(0,ef.useState)(""),[o,s]=(0,ef.useState)(""),[i,l]=(0,ef.useState)(""),[u,d,,c]=(0,si.useServerAction)(o7,{errorMessage:!1,onOk:()=>{(0,su.revalidate)(ey.queryKey.memory),e()}}),p=sf.find(e=>e.key===t),h=a.trim()&&o.trim()&&!d,m=()=>{h&&u(`${t}/${a.trim()}`,o.trim(),i.split("\n").map(e=>e.trim()).filter(Boolean))};return(0,en.jsxs)(so.SettingDialogContent,{title:"New note",description:"Where the agent files what it learns about this subject.",footer:(0,en.jsxs)(en.Fragment,{children:[(0,en.jsx)(ev.Button,{variant:"ghost",onClick:e,children:"Cancel"}),(0,en.jsxs)(ev.Button,{disabled:!h,loading:d,onClick:m,children:[!d&&(0,en.jsx)(eh.Plus,{}),"Create"]})]}),children:[(0,en.jsxs)("div",{className:"space-y-6",children:[(0,en.jsxs)(eb.Field,{children:[(0,en.jsx)(eb.FieldLabel,{children:"Kind"}),(0,en.jsx)(ek.Tabs,{value:t,onValueChange:e=>r(e),children:(0,en.jsx)(ek.TabsList,{className:"w-full",children:sf.map(e=>(0,en.jsx)(ek.TabsTrigger,{value:e.key,children:e.label},e.key))})})]}),(0,en.jsxs)(eb.Field,{children:[(0,en.jsx)(eb.FieldLabel,{htmlFor:"note-name",children:"Name"}),(0,en.jsxs)(eb.FieldContent,{children:[(0,en.jsx)(ew.Input,{id:"note-name",value:a,onChange:e=>n(e.target.value),placeholder:p?.placeholder,spellCheck:!1,required:!0}),(0,en.jsxs)("p",{className:"font-mono text-[11px] text-muted-foreground",children:[t,"/",a.trim()||"…"]})]})]}),(0,en.jsxs)(eb.Field,{children:[(0,en.jsx)(eb.FieldLabel,{htmlFor:"note-summary",children:"Summary"}),(0,en.jsx)(eb.FieldContent,{children:(0,en.jsx)(ew.Input,{id:"note-summary",value:o,onChange:e=>s(e.target.value),onKeyDown:e=>"Enter"===e.key&&m(),placeholder:"One line the agent sees in its note list",required:!0})})]}),(0,en.jsxs)(eb.Field,{children:[(0,en.jsx)(eb.FieldLabel,{htmlFor:"note-facts",children:"Facts"}),(0,en.jsx)(e_.Textarea,{id:"note-facts",value:i,onChange:e=>l(e.target.value),placeholder:`One per line
|
|
38
|
+
${p?.fact??""}`,className:"min-h-24 resize-none text-sm"})]})]}),c&&(0,en.jsx)("p",{className:"font-mono text-xs text-destructive",children:c})]})}e.s(["MemorySetting",0,function(){let{items:e,isLoading:t,isLoadingMore:r,error:a,hasMore:n,sentinelRef:o}=(0,sl.useServerPages)({key:e=>ey.queryKey.memoryPage(e*eE.PAGE_SIZE)}),[s,i]=(0,ef.useState)(null),l=e.find(e=>e.id===s)??e[0]??null;return t?(0,en.jsx)(so.SettingPanesSkeleton,{}):a?(0,en.jsx)(so.SettingError,{message:a.message}):(0,en.jsxs)("div",{className:"relative h-full min-h-0",children:[(0,en.jsx)(so.SettingPanes,{footer:l&&(0,en.jsx)(sc,{note:l}),left:(0,en.jsxs)("div",{className:"flex flex-col py-2",children:[(0,en.jsxs)("button",{type:"button",onClick:sy,className:"mx-2 mb-1 flex items-center gap-2 rounded-md px-2 py-1.5 text-left text-[13px] text-muted-foreground outline-none hover:bg-muted/60 hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",children:[(0,en.jsx)(eh.Plus,{className:"size-3.5 shrink-0"}),"New note"]}),sd.map(({key:t,label:r})=>{let a=e.filter(e=>(0,sn.sectionOf)(e.path)===t);return 0===a.length?null:(0,en.jsxs)(ef.Fragment,{children:[(0,en.jsxs)("span",{className:"px-3 pt-3 pb-1 font-mono text-[10px] text-muted-foreground/60",children:[r,"inbox"===t&&(0,en.jsx)("span",{className:"pl-1.5 text-muted-foreground/50",children:"waiting to be filed"})]}),a.map(e=>(0,en.jsx)(sp,{note:e,active:e.id===l?.id,onPick:()=>i(e.id)},e.id))]},t)}),(0,en.jsx)(so.SettingMore,{hasMore:n,loading:r,sentinelRef:o,count:3,ghost:(0,en.jsxs)("div",{className:"mx-2 flex items-center gap-2 px-2 py-2",children:[(0,en.jsx)(eI.Skeleton,{className:"h-3 w-28"}),(0,en.jsx)("span",{className:"flex-1"}),(0,en.jsx)(eI.Skeleton,{className:"h-2.5 w-2.5"})]})})]}),right:l?(0,en.jsx)(sh,{note:l},l.id):(0,en.jsxs)("div",{className:"space-y-4 p-8",children:[(0,en.jsx)("p",{className:"text-sm leading-relaxed text-muted-foreground",children:"During calls Thursday saves what it picks up — that a teammate moved teams, that you take meetings in the morning — and reads it back before answering. File the first note yourself and it starts the next call already knowing something."}),(0,en.jsxs)(ev.Button,{variant:"outline",onClick:sy,children:[(0,en.jsx)(eh.Plus,{}),"Add note"]})]})}),(0,en.jsx)(o5,{notes:e})]})},"openMemoryCreate",0,sy],556133)},99970,(e,t,r)=>{"use strict";var a=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,i={},l={SYMBOL_FOR_REQ_CONTEXT:()=>d,getContext:()=>c};for(var u in l)a(i,u,{get:l[u],enumerable:!0});t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of o(t))s.call(e,i)||void 0===i||a(e,i,{get:()=>t[i],enumerable:!(r=n(t,i))||r.enumerable});return e})(a({},"__esModule",{value:!0}),i);let d=Symbol.for("@vercel/request-context");function c(){let e=globalThis;return e[d]?.get?.()??{}}},891754,(e,t,r)=>{"use strict";var a=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,i={},l={AccessTokenMissingError:()=>d,RefreshAccessTokenFailedError:()=>c};for(var u in l)a(i,u,{get:l[u],enumerable:!0});t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of o(t))s.call(e,i)||void 0===i||a(e,i,{get:()=>t[i],enumerable:!(r=n(t,i))||r.enumerable});return e})(a({},"__esModule",{value:!0}),i);class d extends Error{constructor(){super("No authentication found. Please log in with the Vercel CLI (vercel login)."),this.name="AccessTokenMissingError"}}class c extends Error{constructor(e){super("Failed to refresh authentication token.",{cause:e}),this.name="RefreshAccessTokenFailedError"}}},725150,(e,t,r)=>{"use strict";var a=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,i={},l={AccessTokenMissingError:()=>c.AccessTokenMissingError,RefreshAccessTokenFailedError:()=>c.RefreshAccessTokenFailedError,getContext:()=>d.getContext,getVercelOidcToken:()=>p,getVercelOidcTokenSync:()=>h,getVercelToken:()=>m};for(var u in l)a(i,u,{get:l[u],enumerable:!0});t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of o(t))s.call(e,i)||void 0===i||a(e,i,{get:()=>t[i],enumerable:!(r=n(t,i))||r.enumerable});return e})(a({},"__esModule",{value:!0}),i);var d=e.r(99970),c=e.r(891754);async function p(){return""}function h(){return""}async function m(){throw Error("getVercelToken is not supported in browser environments")}},561866,(e,t,r)=>{t.exports=function(e,t){let r;if("function"!=typeof e)throw TypeError(`Expected the first argument to be a \`function\`, got \`${typeof e}\`.`);let a=0;return function(...n){clearTimeout(r);let o=Date.now(),s=t-(o-a);s<=0?(a=o,e.apply(this,n)):r=setTimeout(()=>{a=Date.now(),e.apply(this,n)},s)}}}]);
|
|
Binary file
|
package/README.md
CHANGED
|
@@ -107,7 +107,7 @@ Close the app entirely and it does the honest thing instead: ten seconds with no
|
|
|
107
107
|
|
|
108
108
|
## It remembers you, and you can read it
|
|
109
109
|
|
|
110
|
-
|
|
110
|
+
One fact per line, in the database on your disk. Open the Memory screen and read every one — where it came from, when it landed, whether it rides in every call — and delete any of them.
|
|
111
111
|
|
|
112
112
|
And after every call a text model **re-reads what was actually said** and reconciles the notes with it — so what she keeps is not only what she thought to write down mid-sentence.
|
|
113
113
|
|
|
@@ -120,7 +120,7 @@ And after every call a text model **re-reads what was actually said** and reconc
|
|
|
120
120
|
| **Your browser** | Bots attach to the Chrome already open on your desk — your sessions, your logins |
|
|
121
121
|
| **Your machine** | Real commands on real files. Not a VM with a copy |
|
|
122
122
|
| **Your keys** | A SQLite file on your disk, stripped from the shell a bot runs in |
|
|
123
|
-
| **Your memory** |
|
|
123
|
+
| **Your memory** | Facts in a file on your disk. Read, edit and delete them on the screen |
|
|
124
124
|
| **No account** | Nothing to sign up for. The "server" is a Node process on `127.0.0.1` |
|
|
125
125
|
|
|
126
126
|
**Honest caveat:** the *intelligence* is remote. There is no local realtime speech model worth putting a call on yet, so the audio goes to OpenAI or xAI. Everything else never leaves the machine. When a local voice model lands, this is the app that is ready for it.
|
|
@@ -153,7 +153,7 @@ It runs in the terminal you started it in, like `n8n`. There is no daemon and no
|
|
|
153
153
|
```
|
|
154
154
|
~/.thursday
|
|
155
155
|
├── local.db calls, memory, bots, jobs, keys
|
|
156
|
-
└── .ai-workspace what the bots wrote: artifacts, scratch, skills
|
|
156
|
+
└── .ai-workspace what the bots wrote: artifacts, projects, scratch, skills
|
|
157
157
|
```
|
|
158
158
|
|
|
159
159
|
The first run also fetches the browser bots drive (~280 MB) in the background, once. That one lands in Playwright's own cache — `~/Library/Caches/ms-playwright`, or `~/.cache/ms-playwright` on Linux — so every run after it, and every upgrade, skips the download.
|
|
@@ -215,7 +215,9 @@ Tell me what you said to her and where it stopped. That is the roadmap.
|
|
|
215
215
|
|
|
216
216
|
## The part where I am honest with you
|
|
217
217
|
|
|
218
|
-
She is a language model with a shell, a browser and your API keys. **That is the product, not an accident.** Keys
|
|
218
|
+
She is a language model with a shell, a browser and your API keys. **That is the product, not an accident.** Keys are stripped from the environment the shell runs in. Writes are fenced to a workspace. The server is localhost-only. Passwords, one-time codes and passkeys stay yours to type.
|
|
219
|
+
|
|
220
|
+
Reads are not fenced, and they are not meant to be — a bot that cannot look around cannot do the job. That includes the database your keys sit in.
|
|
219
221
|
|
|
220
222
|
It is not a sandbox and it does not pretend to be. → [SECURITY.md](SECURITY.md)
|
|
221
223
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { WORKSPACE_VIEW } from "@/config";
|
|
2
|
+
import { listBotMemory } from "@/features/bot/bot.memory";
|
|
3
|
+
import { serverRoute } from "@/lib/protocol/server-route";
|
|
4
|
+
import { publicError } from "@/lib/public-error";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* One bot's own memory, newest first. `?bot=` names it; read only — a file is
|
|
8
|
+
* deleted through workspace.action, like any file a bot wrote.
|
|
9
|
+
*/
|
|
10
|
+
export const GET = serverRoute(async (request) => {
|
|
11
|
+
const bot = new URL(request.url).searchParams.get("bot")?.trim();
|
|
12
|
+
if (!bot) publicError("Which bot?");
|
|
13
|
+
return listBotMemory(bot, WORKSPACE_VIEW.rows);
|
|
14
|
+
});
|
|
@@ -12,10 +12,8 @@ export type AppEvent =
|
|
|
12
12
|
| { type: "memory" }
|
|
13
13
|
/** Signal: a server was registered, removed, synced, or finished OAuth. */
|
|
14
14
|
| { type: "mcp" }
|
|
15
|
-
/** Signal: a
|
|
16
|
-
| { type: "
|
|
17
|
-
/** Data: a read-back ended on its own. `tally` is one line of what changed, or why it failed. */
|
|
18
|
-
| { type: "memory-tidied"; failed: boolean; tally: string }
|
|
15
|
+
/** Signal: a sign-in was written away from the settings screen (ai/chatgpt's sign-in answer). */
|
|
16
|
+
| { type: "config" }
|
|
19
17
|
/** Data: show this note on screen, or hide it when null (memory.tool). */
|
|
20
18
|
| { type: "memory-view"; path: string | null }
|
|
21
19
|
/** Data: a finished job produced a document; `path` is workspace-relative. */
|
|
@@ -36,7 +34,7 @@ export const SIGNALS: Record<Signal, true> = {
|
|
|
36
34
|
tasks: true,
|
|
37
35
|
memory: true,
|
|
38
36
|
mcp: true,
|
|
39
|
-
|
|
37
|
+
config: true,
|
|
40
38
|
};
|
|
41
39
|
|
|
42
40
|
export const isSignal = (
|