thursday-agent 0.2.0 → 0.4.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 +12 -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 +25 -0
- 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 +134 -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/{_0pppbb5._.js → _1c78vw5._.js} +166 -37
- 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]__092knlj._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__09q9med._.js +1 -1
- 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]__0s9dq5u._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__0m1b5ky._.js → [root-of-the-server]__0s9l2sv._.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]__0xsog8n._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0xtssj3._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__10-dz5o._.js +61 -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]__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]__1qfqvmg._.js → [root-of-the-server]__202p40z._.js} +2 -2
- package/.next/server/chunks/ssr/{_1mznrxk._.js → _001_ms1._.js} +3 -3
- package/.next/server/chunks/ssr/_01n3o0m._.js +3 -0
- package/.next/server/chunks/ssr/_0ap2fzn._.js +3 -0
- package/.next/server/chunks/ssr/_0fz4mf_._.js +3 -0
- package/.next/server/chunks/ssr/_0gb4gmf._.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/_0ilna52._.js +42 -0
- package/.next/server/chunks/ssr/_0n3toaw._.js +3 -0
- package/.next/server/chunks/ssr/{_13punpm._.js → _0q0zan6._.js} +2 -2
- package/.next/server/chunks/ssr/{_077-g6s._.js → _0s99bgb._.js} +3 -3
- package/.next/server/chunks/ssr/_0zcjrbg._.js +3 -0
- package/.next/server/chunks/ssr/_0zhoc3r._.js +3 -0
- package/.next/server/chunks/ssr/{_1lip4th._.js → _1-_etts._.js} +2 -2
- package/.next/server/chunks/ssr/_1-teee5._.js +3 -3
- package/.next/server/chunks/ssr/_13fke0x._.js +3 -0
- package/.next/server/chunks/ssr/_15j2_8f._.js +3 -0
- package/.next/server/chunks/ssr/_1b2mjwr._.js +3 -0
- package/.next/server/chunks/ssr/{_09ja_w1._.js → _1f-dg-6._.js} +2 -2
- package/.next/server/chunks/ssr/_1fojd41._.js +4 -0
- package/.next/server/chunks/ssr/_1gd8q8l._.js +3 -0
- package/.next/server/chunks/ssr/{_1m3bsfr._.js → _1h0rw11._.js} +2 -2
- package/.next/server/chunks/ssr/_1jhd09t._.js +3 -0
- package/.next/server/chunks/ssr/{_040sk32._.js → _1lz_cq2._.js} +84 -88
- package/.next/server/chunks/ssr/_1nnsk7z._.js +3 -0
- package/.next/server/chunks/ssr/_1sji22n._.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/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/{node_modules_0kxz4gt._.js → node_modules_00etblx._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_18_dk7_._.js → node_modules_04jf_m8._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0_n241r._.js → node_modules_08dhkiq._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0n1kj4p._.js → node_modules_0940ns5._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_17lrt3y._.js → node_modules_09q35v_._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1toafc-._.js → node_modules_0_-_a--._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0lrjk5t._.js → node_modules_0arus10._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_04n7mjs._.js → node_modules_0b__sgl._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0iz1rzd._.js → node_modules_0cxaxk9._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0ndvxub._.js → node_modules_0g7fzk3._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0kl7-tn._.js → node_modules_0had7xd._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_19dp7ko._.js → node_modules_0pvd7q-._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules_0x3-ply._.js +3 -0
- package/.next/server/chunks/ssr/{node_modules_1dwguw_._.js → node_modules_0yugy6m._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_004qlr4._.js → node_modules_14om4ar._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1q0p85z._.js → node_modules_14q6g4n._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules_17bwo43._.js +55 -0
- package/.next/server/chunks/ssr/{node_modules_1hd-5tv._.js → node_modules_198nmll._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0m93zeg._.js → node_modules_1_pc9kq._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1n5ygqe._.js → node_modules_1aaxuef._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_01qnv-a._.js → node_modules_1cx_ql6._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1zu988w._.js → node_modules_1cz2hle._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1xyd7ov._.js → node_modules_1efrqxi._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_13r44jq._.js → node_modules_1eg7m6c._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_08d8bke._.js → node_modules_1gdh31p._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1hn8z1f._.js → node_modules_1hpopmo._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_20yebtj._.js → node_modules_1qpjvy5._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_09xhur7._.js → node_modules_1vh5ntv._.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_1b748ic._.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_1z4hm5e._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules_@vercel_oidc_dist_06mk8id._.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/00rd4-v8r7axp.js +1 -0
- package/.next/static/chunks/08qe4as2q428z.js +3 -0
- package/.next/static/chunks/{31ttnjt6g35a0.js → 0ev4hyghq0mbb.js} +1 -1
- package/.next/static/chunks/0fl3gwe4-l6tz.js +1 -0
- package/.next/static/chunks/0gnqdjn2lvdad.js +2 -0
- package/.next/static/chunks/0hwap1-p0m5sa.js +1 -0
- package/.next/static/chunks/0r5qcctujhxli.js +1 -0
- package/.next/static/chunks/0w52rrrmuj9r9.js +1 -0
- package/.next/static/chunks/{07kl352c-lvcz.js → 0wcprt5ot5she.js} +1 -1
- package/.next/static/chunks/10teww7wt-f6h.js +1 -0
- package/.next/static/chunks/15m575979un5f.js +38 -0
- package/.next/static/chunks/17p6tk6k88dq6.js +1 -0
- package/.next/static/chunks/{3_h9txt3tq8t8.js → 1dkjg87pxk0n9.js} +1 -1
- package/.next/static/chunks/1jd09sxcjddu1.js +1 -0
- package/.next/static/chunks/1kq8h8wi_e0bc.js +53 -0
- package/.next/static/chunks/{18vhba44l1fc9.js → 1w73ece_6bheu.js} +1 -1
- package/.next/static/chunks/{3ard_noqapnw1.js → 214ya3n5gxeih.js} +1 -1
- package/.next/static/chunks/22_zkas21rpna.js +1 -0
- package/.next/static/chunks/2h0sd2vumhb15.js +1 -0
- package/.next/static/chunks/2t4vhi3m8ahya.js +1 -0
- package/.next/static/chunks/2tigdtz3dpcy8.js +1 -0
- package/.next/static/chunks/2u7xt6mxg44lf.js +1 -0
- package/.next/static/chunks/39j0fvpybzabl.js +40 -0
- package/.next/static/chunks/3akmqm77muj4-.js +1 -0
- package/.next/static/chunks/3cq5g494yuke8.css +1 -0
- package/.next/static/chunks/3woj-xd7ki5_i.js +1 -0
- package/.next/static/chunks/3xk7yqgomx7yq.js +1 -0
- package/.next/static/chunks/3zmcsnuo25zvq.js +1 -0
- package/.next/static/media/favicon.37o1pjldwi2uc.ico +0 -0
- package/README.md +47 -22
- 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 -7
- 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/port.mjs +65 -0
- package/bin/thursday.mjs +5 -33
- 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/docs/how-it-works.md +11 -7
- package/docs/images/face-dark.png +0 -0
- package/docs/images/face-light.png +0 -0
- package/docs/images/keeps-going.png +0 -0
- package/features/ai/chatgpt.ts +639 -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 +78 -56
- package/features/ai/model.schema.ts +232 -34
- package/features/ai/model.ts +169 -24
- package/features/ai/prompts/bot.prompt.ts +207 -114
- 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 +57 -27
- package/features/ai/tools/bot.tool.ts +35 -52
- package/features/ai/tools/connected.ts +17 -4
- package/features/ai/tools/memory.tool.ts +181 -117
- package/features/ai/tools/search.tool.ts +136 -47
- package/features/ai/tools/tool-name.ts +2 -6
- package/features/ai/tools/workspace.tool.ts +5 -1
- package/features/bot/bot.action.ts +14 -19
- package/features/bot/bot.memory.ts +89 -0
- package/features/bot/bot.query.ts +37 -57
- package/features/bot/bot.run.ts +512 -242
- package/features/bot/bot.runner.ts +434 -120
- package/features/bot/bot.schema.ts +104 -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 +214 -132
- package/features/bot/components/bot-setting.tsx +790 -402
- package/features/bot/components/bot-tool.tsx +2 -7
- 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 +240 -34
- package/features/bot/task.store.ts +76 -13
- 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 +340 -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 -98
- 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 -12
- package/features/thursday/use-thursday.ts +87 -60
- 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/components/memory-view.tsx +0 -84
- 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 → kaTO0UHqF1bMnWgCDik2f}/_buildManifest.js +0 -0
- /package/.next/static/{YR4NWcDDuzwLbTTU7U7Vr → kaTO0UHqF1bMnWgCDik2f}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{YR4NWcDDuzwLbTTU7U7Vr → kaTO0UHqF1bMnWgCDik2f}/_ssgManifest.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
module.exports=[203469,a=>{"use strict";let b,c,d,e,f,g;var h,i=a.i(569572),j=a.i(176668);let k={tasks:!0,memory:!0,mcp:!0,
|
|
1
|
+
module.exports=[203469,a=>{"use strict";let b,c,d,e,f,g;var h,i=a.i(569572),j=a.i(176668);let k={tasks:!0,memory:!0,mcp:!0,config:!0},l=globalThis,m=l.__appEvents??=(b=new Set,{emit(a){for(let c of[...b])try{c(a)}catch(a){console.error("event listener failed",a)}},subscribe:a=>(b.add(a),()=>{b.delete(a)})}),n=l.__presence??=(h=i.BROWSER_GONE_MS,c=!1,d=null,e=new Set,f=new Set,g=a=>{for(let b of[...a])try{b()}catch(a){console.error("presence listener failed",a)}},{get watching(){return c},track(a){if(a>0){d&&clearTimeout(d),d=null,c||(c=!0,g(f));return}!d&&c&&(d=setTimeout(()=>{d=null,c=!1,g(e)},h))},onGone:a=>(e.add(a),()=>e.delete(a)),onBack:a=>(f.add(a),()=>f.delete(a))}),o=l.__appEventStream??=function(a,b={}){let c=new TextEncoder,d=b.heartbeatMs??2e4,e=0;return{respond:(f,g)=>{let h=()=>{};return new Response(new ReadableStream({async start(i){let k=!1,l=new Map,m=[],n=a=>{if(!k)try{i.enqueue(c.encode(a))}catch{h()}},o=a=>n(`data: ${JSON.stringify(a)}
|
|
2
2
|
|
|
3
|
-
`),p=a=>{let c=b.coalesce?.keyOf(a)??null;if(null===c)return o(a);let d=l.get(c);d&&clearTimeout(d),l.set(c,setTimeout(()=>{l.delete(c),o(a)},b.coalesce?.ms))},q=a.subscribe(a=>m?m.push(a):p(a)),r=setInterval(()=>n(": ping\n\n"),d);e+=1,b.onWatchers?.(e),h=()=>{if(!k){for(let a of(k=!0,e-=1,b.onWatchers?.(e),q(),clearInterval(r),l.values()))clearTimeout(a);try{i.close()}catch{}}},f.addEventListener("abort",h);try{for(let a of await g?.()??[])o(a)}catch(a){j.logger.error("event stream opening failed",a),h();return}let s=m;for(let a of(m=null,s))p(a)},cancel(){h()}}),{headers:{"Content-Type":"text/event-stream; charset=utf-8","Cache-Control":"no-store","X-Accel-Buffering":"no"}})},get watchers(){return e}}}(m,{coalesce:{ms:150,keyOf:a=>a.type in k?a.type:null},onWatchers:n.track});l.__bootId??=crypto.randomUUID(),a.s(["appEventStream",0,o,"appEvents",0,m],203469)},978876,a=>{"use strict";var b=a.i(912714),c=a.i(527990),d=a.i(794219),e=a.i(762008),f=a.i(684321),g=a.i(821415);let h={name:e.TOOL_NAMES.delegate,description:"Hand a job to a bot. Returns immediately; the job runs in the background and its result is put in front of you later.",parameters:d.object({bot:d.string().describe("A name from the bot list."),request:d.string().describe("The whole job. The bot cannot hear the call, so everything it needs goes here — names, paths, what the user actually asked for — in their own language and their own words: it is the only language the bot has, and whatever it writes comes back to them. **Their request, never your reading of it**: a condition, a caution or a smaller goal they did not say is how a job comes back as the wrong thing. When their words leave a real choice open, ask them on the call and put the answer here."),label:d.string().describe("Two or three words naming the job, in the user's language. Used on screen and said out loud.")})},i={name:e.TOOL_NAMES.ask_bot,description:"Hand one part of the job you are holding to another bot and wait for what they bring back. The job stays yours.",parameters:d.object({bot:d.string().describe("A name from the bot list."),request:d.string().describe("The part they take, as a brief: the outcome you want, the shape to hand it back in (a path, a number, a list), and every name, path, number and limit that bears on it. They see nothing but this and `context` — not the call, not your thread — so write it long rather than short; a brief that leaves them guessing costs a whole run."),context:d.string().describe("The job you were given, quoted, and whatever you have found that bears on this part — exact values, and the paths of files you wrote for them to read. They cannot see your work, your tool output, or the call.")})},j={name:e.TOOL_NAMES.ask_back,description:"Ask the bot that handed you this part. They answer from what they have — the original request, the call it came from, what they found before asking you.",parameters:d.object({question:d.string().describe("One whole question — what you need and why. They cannot take it to the user for you, so ask what they would know.")})},k={name:e.TOOL_NAMES.ask_thursday,description:"Ask Thursday, who handed you this job. The job stops until an answer comes back.",parameters:d.object({question:d.string().describe("One whole question — what you need and why. One or two sentences, in the user's language: she may read it to them out loud, options and all."),options:d.union([d.string().array(),d.string()]).nullish().describe('Only when there really are choices — two or three, each short, as an array: ["Signed in", "Not yet"]. Null for an open question.')})},l=d.string().nullish().describe("What should change in your own instructions before your next job here — something to add, something wrong to correct, something to drop. Your own words, any length; someone else writes it in. Nothing to say is the usual answer, and leaving it out costs nothing: they already say what they say."),m={name:e.TOOL_NAMES.task,description:"Check a job you handed over, answer what it is asking, or cancel it.",parameters:d.object({action:d.enum(["status","answer","cancel"]),task:d.string().nullish().describe("The job, by its label or by the handle a past call's transcript carries. With `status`: null for every job in one line each — that is the list — or name one to get its report in full."),answer:d.string().nullish().describe("With `answer`: what to tell the bot — the answer to its question, a course correction for a job still running, or what to do next on one that finished.")})},n=(0,c.tool)({description:k.description,inputSchema:k.parameters}),o="Not handed back:";async function p(a){let c=[];for(let d of(0,f.pathsIn)(a)){let a=await (0,g.insideWorkspace)(d);a&&(await (0,b.stat)(a).then(a=>a.isFile(),()=>!1)||c.push(d))}return c}a.s(["askBackSpec",0,j,"askBotSpec",0,i,"askThursdayTool",0,n,"createReportTool",0,a=>{let b={name:e.TOOL_NAMES.report,description:"Hand back what the job produced. Calling this ends the job — nothing after it runs.",parameters:d.object({result:d.string().describe("The result itself, in a few lines — what you found or did, not a replay of how. Thursday reads this out loud, so write what a person needs to hear. If you could not do it, say what stopped you."),complete:d.boolean().describe("True when the whole request is done. False when work is left over — the user is then asked whether to keep going, and `result` is what they decide on."),...a?{notes:l}:{}})};return(0,c.tool)({description:b.description,inputSchema:b.parameters,execute:async({result:a,complete:b})=>{let c=await p(a);return c.length?`${o} these files do not exist — ${c.join(", ")}. Write them first, or take the paths out of the result.`:b?"Handed back. The job is closed; nothing further runs.":"Handed back as unfinished. The user decides whether to continue."}})},"delegateSpec",0,h,"reportAccepted",0,a=>"string"!=typeof a||!a.startsWith(o),"taskSpec",0,m])},762008,a=>{"use strict";a.s(["STUDIO_TOOLS",0,{generate_image:"generate_image",generate_speech:"generate_speech",transcribe:"transcribe",generate_video:"generate_video"},"TOOL_NAMES",0,{memory_recall:"memory_recall",memory_remember:"memory_remember",memory_forget:"memory_forget",memory_show:"memory_show",bash:"bash",write_file:"write_file",tool_search:"tool_search",tool_call:"tool_call",load_skill:"load_skill",web_search:"web_search",delegate:"delegate",task:"task",ask_bot:"ask_bot",ask_thursday:"ask_thursday",ask_back:"ask_back",report:"report",end_call:"end_call",tidy_done:"tidy_done",update_notes:"update_notes"}])},84929,a=>a.a(async(b,c)=>{try{var d=a.i(93321),e=a.i(530385),f=a.i(258261),g=a.i(351674),h=a.i(203469),i=a.i(184838),j=a.i(714428),k=a.i(978876),l=a.i(762008),m=a.i(182248),n=a.i(446957),o=b([i]);[i]=o.then?(await o)():o;let L=()=>h.appEvents.emit({type:"tasks"}),M={id:j.taskTable.id,bot:j.taskTable.bot,label:j.taskTable.label,request:j.taskTable.request,status:j.taskTable.status,outcome:j.taskTable.outcome,pending:j.taskTable.pending,reported:j.taskTable.reported,inputTokens:j.taskTable.inputTokens,outputTokens:j.taskTable.outputTokens,contextTokens:j.taskTable.contextTokens,contextBudget:j.taskTable.contextBudget,createdAt:j.taskTable.createdAt,updatedAt:j.taskTable.updatedAt};async function p(a){let{opening:b,...c}=a,[d]=await i.database.insert(j.taskTable).values({id:crypto.randomUUID(),status:"running",...c}).returning();return await A(d.id,0,{bot:null,parent:null,role:"user",content:b}),L(),d}async function q(a,b){await i.database.update(j.taskTable).set({...b,updatedAt:new Date}).where((0,d.eq)(j.taskTable.id,a)),L()}async function r(a){0!==a.length&&(await i.database.update(j.taskTable).set({reported:!0}).where((0,d.inArray)(j.taskTable.id,a)),L())}async function s(a,b,c=null){(b.input||b.output||null!==c)&&(await i.database.update(j.taskTable).set({inputTokens:g.sql`${j.taskTable.inputTokens} + ${b.input}`,outputTokens:g.sql`${j.taskTable.outputTokens} + ${b.output}`,...null===c?{}:{contextTokens:c.tokens,contextBudget:c.budget}}).where((0,d.eq)(j.taskTable.id,a)),L())}async function t(a){let[b]=await i.database.select().from(j.taskTable).where((0,d.eq)(j.taskTable.id,a));return b??null}async function u(a={}){let b=await i.database.select(M).from(j.taskTable).where(a.before?(0,d.lt)(j.taskTable.updatedAt,a.before):void 0).orderBy((0,e.desc)(j.taskTable.updatedAt)).limit(a.limit??n.TASK_HISTORY_PAGE);return E(b)}async function v(a){return a.length?await i.database.select({id:j.taskTable.id,callId:j.taskTable.callId,label:j.taskTable.label,status:j.taskTable.status,outcome:j.taskTable.outcome}).from(j.taskTable).where((0,d.inArray)(j.taskTable.callId,a)).orderBy(j.taskTable.createdAt):[]}async function w(a){let b=await i.database.delete(j.taskTable).where((0,d.eq)(j.taskTable.id,a)).returning({id:j.taskTable.id});return b.length&&L(),b.length>0}async function x(){let a=await i.database.delete(j.taskTable).where((0,d.inArray)(j.taskTable.status,["done","failed"])).returning({id:j.taskTable.id,label:j.taskTable.label});return a.length&&L(),a}async function y(){return(await i.database.select({id:j.taskTable.id}).from(j.taskTable).orderBy((0,e.desc)(j.taskTable.createdAt))).map(a=>a.id)}async function z(a){let b=a.trim();if(!b)return null;let c=await t(b);if(c)return c;let d=b.toLowerCase();return(await i.database.select().from(j.taskTable).orderBy((0,e.desc)(j.taskTable.updatedAt)).limit(20)).find(a=>a.label.toLowerCase()===d)??null}async function A(a,b,c){await i.database.insert(j.taskMessageTable).values({taskId:a,seq:b,...c,compact:c.compact??!1,note:c.note??!1}).onConflictDoUpdate({target:[j.taskMessageTable.taskId,j.taskMessageTable.seq],set:{role:c.role,content:c.content,compact:c.compact??!1,note:c.note??!1}}),L()}async function B(a,b){b.length&&(await i.database.delete(j.taskMessageTable).where((0,d.and)((0,d.eq)(j.taskMessageTable.taskId,a),(0,d.inArray)(j.taskMessageTable.seq,b))),L())}async function C(a){let[b]=await i.database.select({seq:(0,f.max)(j.taskMessageTable.seq)}).from(j.taskMessageTable).where((0,d.eq)(j.taskMessageTable.taskId,a));return b?.seq??-1}async function D(a){let b=await i.database.select({role:j.taskMessageTable.role,content:j.taskMessageTable.content,compact:j.taskMessageTable.compact}).from(j.taskMessageTable).where((0,d.and)((0,d.eq)(j.taskMessageTable.taskId,a),(0,d.isNull)(j.taskMessageTable.parent))).orderBy(j.taskMessageTable.seq),c=b.findLastIndex(a=>a.compact);return b.slice(Math.max(c,0)).map(a=>({role:a.role,content:a.content}))}async function E(a){if(0===a.length)return[];let b=await i.database.select().from(j.taskMessageTable).where((0,d.inArray)(j.taskMessageTable.taskId,a.map(a=>a.id))).orderBy(j.taskMessageTable.seq),c=new Map(a.map(a=>[a.id,a.bot])),e=new Map;for(let a of b){let b=e.get(a.taskId)??[];b.push(...function(a,b){let c={seq:a.seq,bot:a.bot,parent:a.parent,at:a.createdAt},d=b=>`${a.id}-${b}`,e=a.content;if("user"===a.role){if(0===a.seq)return[];let b="string"==typeof e?e:e.flatMap(a=>"text"===a.type&&a.text?[a.text]:[]).join("\n").trim();return b?a.note||a.compact?[{...c,id:d(0),kind:"note",text:b}]:[{...c,id:d(0),kind:"user",text:b}]:[]}if("assistant"===a.role){let e=a.content;if("string"==typeof e)return e.trim()?[{...c,id:d(0),kind:"text",text:e.trim()}]:[];let f=[];return e.forEach((a,e)=>{if("text"===a.type){let b=a.text.trim();b&&f.push({...c,id:d(e),kind:"text",text:b});return}if("tool-result"===a.type)return void f.push(H(c,d(e),a));if("tool-call"!==a.type)return;let g=a.input??{};if(a.toolName===l.TOOL_NAMES.ask_thursday)f.push({...c,id:d(e),kind:"waiting",callId:a.toolCallId,question:String(g.question??""),options:I(g.options)});else if(a.toolName===l.TOOL_NAMES.report){let a=String(g.result??"").trim();a&&f.push({...c,id:d(e),kind:"text",text:a})}else a.toolName===l.TOOL_NAMES.ask_bot?f.push({...c,id:d(e),kind:"ask",callId:a.toolCallId,to:String(g.bot??""),text:String(g.request??"")}):a.toolName===l.TOOL_NAMES.ask_back?f.push({...c,id:d(e),kind:"ask",callId:a.toolCallId,to:b,text:String(g.question??"")}):a.toolName===l.TOOL_NAMES.bash?f.push({...c,id:d(e),kind:"tool",callId:a.toolCallId,name:a.toolName,input:(0,m.clip)(String(g.command??""),120),note:F(g)}):f.push({...c,id:d(e),kind:"tool",callId:a.toolCallId,name:a.toolName,input:G(a.toolName,g),note:F(g),path:a.toolName===l.TOOL_NAMES.write_file?O(g,"path")??null:null})}),f}if("tool"===a.role){let b=[];return a.content.forEach((a,e)=>{if("tool-result"===a.type&&!(a.toolName===l.TOOL_NAMES.report&&(0,k.reportAccepted)(a.output)))if(a.toolName===l.TOOL_NAMES.ask_thursday){let f=J(a.output,4).flatMap(a=>"text"===a.type?[a.text]:[]).join("\n");b.push({...c,id:d(e),kind:"user",text:f})}else if(a.toolName===l.TOOL_NAMES.ask_bot||a.toolName===l.TOOL_NAMES.ask_back){let f=J(a.output,4).flatMap(a=>"text"===a.type?[a.text]:[]).join("\n");b.push({...c,id:d(e),kind:"ask-result",callId:a.toolCallId,text:f})}else b.push(H(c,d(e),a))}),b}return[]}(a,c.get(a.taskId)??"")),e.set(a.taskId,b)}return a.map(a=>(function(a,b){let{pending:c,inputTokens:d,outputTokens:e,...f}=a;return{...f,ask:"waiting"===a.status?{question:a.outcome??"",options:c?.options??[]}:null,tokens:{input:d,output:e},lines:b}})(a,e.get(a.id)??[]))}let N=["query","command","prompt","url","path","pattern","request","question","title","name","task","text"],O=(a,b)=>{let c=a[b];return"string"==typeof c&&c.trim()?c:null};function F(a){let b=O(a,"description");return b?(0,m.clip)(b,120):null}function G(a,b){let c=b??{};if("object"!=typeof c||Array.isArray(c))return(0,m.clip)(String(b??""),120);if(a===l.TOOL_NAMES.bash)return F(c)??(0,m.clip)(String(c.command??""),120);if(a===l.TOOL_NAMES.tool_call||a===l.TOOL_NAMES.tool_search){let a=Array.isArray(c.tools)?c.tools.map(String).join(", "):String(c.tool??""),b=c.args&&"object"==typeof c.args?JSON.stringify(c.args):"";return(0,m.clip)([String(c.server??""),a,b].filter(Boolean).join(" "),120)}for(let a of N){let b=O(c,a);if(b)return(0,m.clip)(b,120)}for(let a of Object.keys(c)){let b=O(c,a);if(b)return(0,m.clip)(b,120)}return Object.keys(c).length?(0,m.clip)(JSON.stringify(c),120):""}function H(a,b,c){let d=J(c.output,5);return{...a,id:b,kind:"tool-result",callId:c.toolCallId,name:c.toolName,results:d.slice(0,4),more:d.length>4}}function I(a){return Array.isArray(a)?a.map(a=>String(a).trim()).filter(Boolean):[]}function J(a,b){if(null==a)return[];if("string"==typeof a)return K(a,b);if("object"!=typeof a)return K(String(a),b);switch(a.type){case"text":case"error-text":return K(String(a.value??""),b);case"json":case"error-json":return J(a.value,b);case"execution-denied":return K("Denied.",b);case"content":{if(!Array.isArray(a.value))return[];let c=[];for(let d of a.value){if("text"===d.type&&"string"==typeof d.text){c.push(...K(d.text,b));continue}let a=function(a){let b=String(a.mediaType??"");if(!b.startsWith("image/"))return null;let c=a.data;return"string"==typeof c?`data:${b};base64,${c}`:c?.type==="url"&&c.url?c.url:c?.type==="data"&&"string"==typeof c.data?`data:${b};base64,${c.data}`:null}(d);a&&c.push({type:"image",src:a})}return c}}return Array.isArray(a.sources)?a.sources.map(a=>String(a?.title??"")).filter(Boolean).slice(0,b).map(a=>({type:"text",text:a})):"string"==typeof a.stdout?K(a.stdout||String(a.stderr??""),b):"string"==typeof a.answer?K(a.answer,b):K(JSON.stringify(a),b)}function K(a,b){return a.split("\n").map(a=>a.trim()).filter(Boolean).slice(0,b).map(a=>({type:"text",text:a}))}a.s(["addTaskUsage",0,s,"deleteFinishedTasks",0,x,"deleteMessages",0,B,"deleteTask",0,w,"findTask",0,t,"insertTask",0,p,"lastSeq",0,C,"listAllTaskIds",0,y,"listCallJobs",0,v,"listTaskHistory",0,u,"listThread",0,D,"markReported",0,r,"optionsOf",0,I,"resolveTask",0,z,"toolLine",0,G,"updateTask",0,q,"upsertMessage",0,A]),c()}catch(a){c(a)}},!1),527990,925034,912735,a=>{"use strict";var b,c,d,e,f,g=a.i(652685),h=a.i(634531),i=a.i(22372);class j extends Error{constructor(a,b){super(a),this.name="ParseError",this.type=b.type,this.field=b.field,this.value=b.value,this.line=b.line}}function k(a){}function l(a,b,c){return 100===c&&97===a.charCodeAt(b+1)&&116===a.charCodeAt(b+2)&&97===a.charCodeAt(b+3)&&58===a.charCodeAt(b+4)}function m(a,b,c){return 101===c&&118===a.charCodeAt(b+1)&&101===a.charCodeAt(b+2)&&110===a.charCodeAt(b+3)&&116===a.charCodeAt(b+4)&&58===a.charCodeAt(b+5)}class n extends TransformStream{constructor({onError:a,onRetry:b,onComment:c,maxBufferSize:d}={}){let e;super({start(f){e=function(a){if("function"==typeof a)throw TypeError("`config` must be an object, got a function instead. Did you mean `createParser({onEvent: fn})`?");let{onEvent:b=k,onError:c=k,onRetry:d=k,onComment:e,maxBufferSize:f}=a,g=[],h=0,i=!0,n,o="",p=0,q,r=!1;function s(){void 0!==f&&(h+o.length<=f||(r=!0,g.length=0,h=0,n=void 0,o="",p=0,q=void 0,c(new j(`Buffered data exceeded max buffer size of ${f} characters`,{type:"max-buffer-size-exceeded"}))))}function t(a){let c=0;if(-1===a.indexOf("\r")){let d=a.indexOf(`
|
|
3
|
+
`),p=a=>{let c=b.coalesce?.keyOf(a)??null;if(null===c)return o(a);let d=l.get(c);d&&clearTimeout(d),l.set(c,setTimeout(()=>{l.delete(c),o(a)},b.coalesce?.ms))},q=a.subscribe(a=>m?m.push(a):p(a)),r=setInterval(()=>n(": ping\n\n"),d);e+=1,b.onWatchers?.(e),h=()=>{if(!k){for(let a of(k=!0,e-=1,b.onWatchers?.(e),q(),clearInterval(r),l.values()))clearTimeout(a);try{i.close()}catch{}}},f.addEventListener("abort",h);try{for(let a of await g?.()??[])o(a)}catch(a){j.logger.error("event stream opening failed",a),h();return}let s=m;for(let a of(m=null,s))p(a)},cancel(){h()}}),{headers:{"Content-Type":"text/event-stream; charset=utf-8","Cache-Control":"no-store","X-Accel-Buffering":"no"}})},get watchers(){return e}}}(m,{coalesce:{ms:150,keyOf:a=>a.type in k?a.type:null},onWatchers:n.track});l.__bootId??=crypto.randomUUID(),a.s(["appEventStream",0,o,"appEvents",0,m,"presence",0,n],203469)},978876,a=>{"use strict";var b=a.i(912714),c=a.i(527990),d=a.i(794219),e=a.i(762008),f=a.i(684321),g=a.i(821415);let h={name:e.TOOL_NAMES.delegate,description:"Hand a job to a bot. Returns immediately; the job runs in the background and its result is put in front of you later.",parameters:d.object({bot:d.string().describe("A name from the bot list."),request:d.string().describe("The whole job. The bot cannot hear the call, so everything it needs goes here — names, paths, what the user actually asked for — in their own language and their own words: it is the only language the bot has, and whatever it writes comes back to them. **Their request, never your reading of it**: a condition, a caution or a smaller goal they did not say is how a job comes back as the wrong thing. When their words leave a real choice open, ask them on the call and put the answer here."),label:d.string().describe("Two or three words naming the job, in the user's language. Used on screen and said out loud.")})},i={name:e.TOOL_NAMES.ask_bot,description:"Hand one part of the job you are holding to another bot and wait for what they bring back. The job stays yours.",parameters:d.object({bot:d.string().describe("A name from the bot list."),request:d.string().describe("The part they take: the outcome you want, the shape to hand it back in (a path, a number, a list), and every name, path, number and limit that bears on it. It reaches them under the job and the call it came from, which are attached for you — write the part, not the job again."),context:d.string().describe("What you have done on the job so far and why this part is theirs — exact values, and the paths of files you wrote for them to read. They see this, the part, the job and the call; not your thread or your tool output, so a value you leave out is one they fetch again.")})},j={name:e.TOOL_NAMES.ask_back,description:"Ask the bot that handed you this part. They answer from what they have — the original request, the call it came from, what they found before asking you.",parameters:d.object({question:d.string().describe("One whole question — what you need and why. They cannot take it to the user for you, so ask what they would know.")})},k={name:e.TOOL_NAMES.ask_thursday,description:"Ask Thursday, who handed you this job. The job stops until an answer comes back.",parameters:d.object({question:d.string().describe("One whole question — what you need and why. One or two sentences, in the user's language: she may read it to them out loud, options and all."),options:d.union([d.string().array(),d.string()]).nullish().describe('Only when there really are choices — two or three, each short, as an array: ["Signed in", "Not yet"]. Null for an open question.')})},l={name:e.TOOL_NAMES.answer,description:"Answer the job you were given. Calling this ends the job — nothing after it runs.",parameters:d.object({result:d.string().describe("The answer itself — what you found or did, not a replay of how. As long as the answer needs and no longer: one number is one line. In the user's language; the thread is on their screen. If you could not do it, say what stopped you.")})},m={name:e.TOOL_NAMES.task,description:"Check a job you handed over, answer what it is asking, or cancel it.",parameters:d.object({action:d.enum(["status","answer","cancel"]),task:d.string().nullish().describe('The job, by its label or by the handle a past call\'s transcript carries. Leave it out with `answer` and it goes to the job that moved last — what "that one" means a moment after it answered. With `status`: null for every job in one line each — that is the list — or name one to get its answer in full.'),answer:d.string().nullish().describe("With `answer`: what to tell the bot — the answer to its question, a course correction for a job still running, or what to do next on one that finished.")})},n=(0,c.tool)({description:k.description,inputSchema:k.parameters}),o=(0,c.tool)({description:l.description,inputSchema:l.parameters,execute:async({result:a})=>{let b=await q(a);return b.length?`${p} these files do not exist — ${b.join(", ")}. Write them first, or take the paths out of the answer.`:"Answered. The job is closed; nothing further runs."}}),p="Not answered:";async function q(a){let c=[];for(let d of(0,f.pathsIn)(a)){let a=await (0,g.insideWorkspace)(d);a&&(await (0,b.stat)(a).then(a=>a.isFile(),()=>!1)||c.push(d))}return c}a.s(["answerAccepted",0,a=>"string"!=typeof a||!a.startsWith(p),"answerTool",0,o,"askBackSpec",0,j,"askBotSpec",0,i,"askThursdayTool",0,n,"delegateSpec",0,h,"isAnswerCall",0,a=>a===e.TOOL_NAMES.answer||"report"===a,"taskSpec",0,m])},84929,a=>a.a(async(b,c)=>{try{var d=a.i(93321),e=a.i(530385),f=a.i(258261),g=a.i(351674),h=a.i(203469),i=a.i(569572),j=a.i(184838),k=a.i(714428),l=a.i(978876),m=a.i(762008),n=a.i(182248),o=a.i(446957),p=b([j]);[j]=p.then?(await p)():p;let R=()=>h.appEvents.emit({type:"tasks"}),S={id:k.taskTable.id,bot:k.taskTable.bot,label:k.taskTable.label,request:k.taskTable.request,status:k.taskTable.status,outcome:k.taskTable.outcome,pending:k.taskTable.pending,seen:k.taskTable.seen,inputTokens:k.taskTable.inputTokens,outputTokens:k.taskTable.outputTokens,contextTokens:k.taskTable.contextTokens,contextBudget:k.taskTable.contextBudget,createdAt:k.taskTable.createdAt,updatedAt:k.taskTable.updatedAt};async function q(a){let{opening:b,...c}=a,[d]=await j.database.insert(k.taskTable).values({id:crypto.randomUUID(),status:"running",...c}).returning();return await G(d.id,0,{bot:null,parent:null,role:"user",content:b}),R(),d}async function r(a,b){await j.database.update(k.taskTable).set({...b,updatedAt:new Date}).where((0,d.eq)(k.taskTable.id,a)),R()}async function s(a){0!==a.length&&(await j.database.update(k.taskTable).set({seen:!0}).where((0,d.inArray)(k.taskTable.id,a)),R())}async function t(a,b,c=null){(b.input||b.output||null!==c)&&(await j.database.update(k.taskTable).set({inputTokens:g.sql`${k.taskTable.inputTokens} + ${b.input}`,outputTokens:g.sql`${k.taskTable.outputTokens} + ${b.output}`,...null===c?{}:{contextTokens:c.tokens,contextBudget:c.budget}}).where((0,d.eq)(k.taskTable.id,a)),R())}async function u(a){let[b]=await j.database.select().from(k.taskTable).where((0,d.eq)(k.taskTable.id,a));return b??null}async function v(){let[a,b]=await Promise.all([j.database.select(S).from(k.taskTable).where((0,d.inArray)(k.taskTable.status,["running","waiting"])).orderBy((0,e.desc)(k.taskTable.updatedAt)),j.database.select(S).from(k.taskTable).where((0,d.inArray)(k.taskTable.status,["done","failed"])).orderBy((0,e.desc)(k.taskTable.updatedAt)).limit(i.INBOX_FINISHED)]),c=[...a,...b].sort((a,b)=>b.updatedAt.getTime()-a.updatedAt.getTime());return K(c)}async function w(a={}){let b=await j.database.select(S).from(k.taskTable).where(a.before?(0,d.lt)(k.taskTable.updatedAt,a.before):void 0).orderBy((0,e.desc)(k.taskTable.updatedAt)).limit(a.limit??o.TASK_HISTORY_PAGE);return K(b)}async function x(a){return a.length?await j.database.select({id:k.taskTable.id,callId:k.taskTable.callId,label:k.taskTable.label,status:k.taskTable.status,outcome:k.taskTable.outcome}).from(k.taskTable).where((0,d.inArray)(k.taskTable.callId,a)).orderBy(k.taskTable.createdAt):[]}async function y(a){let b=await j.database.delete(k.taskTable).where((0,d.eq)(k.taskTable.id,a)).returning({id:k.taskTable.id});return b.length&&R(),b.length>0}async function z(){let a=await j.database.delete(k.taskTable).where((0,d.inArray)(k.taskTable.status,["done","failed"])).returning({id:k.taskTable.id,label:k.taskTable.label});return a.length&&R(),a}async function A(){return(await j.database.select({id:k.taskTable.id}).from(k.taskTable).orderBy((0,e.desc)(k.taskTable.createdAt))).map(a=>a.id)}async function B(a){let b=await j.database.select({role:k.taskMessageTable.role,bot:k.taskMessageTable.bot,note:k.taskMessageTable.note,compact:k.taskMessageTable.compact}).from(k.taskMessageTable).where((0,d.and)((0,d.eq)(k.taskMessageTable.taskId,a),(0,d.isNull)(k.taskMessageTable.parent))).orderBy((0,e.desc)(k.taskMessageTable.seq)),c=0;for(let a of b){if(a.note){a.compact||(c+=1);continue}if(null===a.bot||"user"===a.role)break}return c}async function C(a){let b=await j.database.select({parent:k.taskMessageTable.parent,bot:k.taskMessageTable.bot,content:k.taskMessageTable.content}).from(k.taskMessageTable).where((0,d.and)((0,d.eq)(k.taskMessageTable.taskId,a),(0,d.isNotNull)(k.taskMessageTable.parent),(0,d.eq)(k.taskMessageTable.role,"assistant"))).orderBy(k.taskMessageTable.seq),c=new Map;for(let a of b){if(!a.parent)continue;let b=c.get(a.parent)??{bot:a.bot??"",texts:[],then:null},d=a.content;for(let a of"string"==typeof d?[{type:"text",text:d}]:d)"text"===a.type&&a.text.trim()?(b.texts.push(a.text.trim()),b.then=null):"tool-call"===a.type&&(b.then=`${a.toolName} ${M(a.toolName,a.input)}`.trim());c.set(a.parent,b)}let e=new Map;for(let[a,b]of c){let c=[...b.texts.slice(-3).map(a=>(0,n.clip)(a,600)),b.then?`Then: ${b.then}`:""].filter(Boolean).join("\n\n");c&&e.set(a,{bot:b.bot,tail:c})}return e}function D(a){let b=new Set;for(let c of a)if(Array.isArray(c))for(let a of c){if("tool-call"!==a.type||a.toolName!==m.TOOL_NAMES.write_file)continue;let c=a.input?.path;"string"==typeof c&&c.trim()&&(b.delete(c.trim()),b.add(c.trim()))}return[...b]}async function E(a){let b=await j.database.select({content:k.taskMessageTable.content}).from(k.taskMessageTable).where((0,d.and)((0,d.eq)(k.taskMessageTable.taskId,a),(0,d.eq)(k.taskMessageTable.role,"assistant"))).orderBy(k.taskMessageTable.seq);return D(b.map(a=>a.content))}async function F(a){let b=a.trim();if(!b)return null;let c=await u(b);if(c)return c;let d=b.toLowerCase();return(await j.database.select().from(k.taskTable).orderBy((0,e.desc)(k.taskTable.updatedAt)).limit(20)).find(a=>a.label.toLowerCase()===d)??null}async function G(a,b,c){await j.database.insert(k.taskMessageTable).values({taskId:a,seq:b,...c,compact:c.compact??!1,note:c.note??!1}).onConflictDoUpdate({target:[k.taskMessageTable.taskId,k.taskMessageTable.seq],set:{role:c.role,content:c.content,compact:c.compact??!1,note:c.note??!1}}),R()}async function H(a,b){b.length&&(await j.database.delete(k.taskMessageTable).where((0,d.and)((0,d.eq)(k.taskMessageTable.taskId,a),(0,d.inArray)(k.taskMessageTable.seq,b))),R())}async function I(a){let[b]=await j.database.select({seq:(0,f.max)(k.taskMessageTable.seq)}).from(k.taskMessageTable).where((0,d.eq)(k.taskMessageTable.taskId,a));return b?.seq??-1}async function J(a){let b=await j.database.select({role:k.taskMessageTable.role,content:k.taskMessageTable.content,compact:k.taskMessageTable.compact}).from(k.taskMessageTable).where((0,d.and)((0,d.eq)(k.taskMessageTable.taskId,a),(0,d.isNull)(k.taskMessageTable.parent))).orderBy(k.taskMessageTable.seq),c=b.findLastIndex(a=>a.compact);return(c>0?[b[0],...b.slice(c)]:b).map(a=>({role:a.role,content:a.content}))}async function K(a){if(0===a.length)return[];let b=await j.database.select().from(k.taskMessageTable).where((0,d.inArray)(k.taskMessageTable.taskId,a.map(a=>a.id))).orderBy(k.taskMessageTable.seq),c=new Map(a.map(a=>[a.id,a.bot])),e=new Map;for(let a of b){let b=e.get(a.taskId)??[];b.push(...function(a,b){let c={seq:a.seq,bot:a.bot,parent:a.parent,at:a.createdAt},d=b=>`${a.id}-${b}`,e=a.content;if("user"===a.role){if(0===a.seq)return[];let b="string"==typeof e?e:e.flatMap(a=>"text"===a.type&&a.text?[a.text]:[]).join("\n").trim();if(!b)return[];if(a.compact)return[{...c,id:d(0),kind:"note",text:b}];if(a.note){let a=b.endsWith(V)?b.slice(0,-V.length).trimEnd():b;return[{...c,id:d(0),kind:"stop",text:a}]}return[{...c,id:d(0),kind:"user",text:(0,o.untagSpeaker)(b)}]}if("assistant"===a.role){let e=a.content;if("string"==typeof e)return e.trim()?[{...c,id:d(0),kind:"text",text:e.trim()}]:[];let f=[];return e.forEach((a,e)=>{if("text"===a.type){let b=a.text.trim();b&&f.push({...c,id:d(e),kind:"text",text:b});return}if("tool-result"===a.type)return void f.push(N(c,d(e),a));if("tool-call"!==a.type)return;let g=a.input??{};if(a.toolName===m.TOOL_NAMES.ask_thursday)f.push({...c,id:d(e),kind:"waiting",callId:a.toolCallId,question:String(g.question??""),options:O(g.options)});else if((0,l.isAnswerCall)(a.toolName)){let a=String(g.result??"").trim();a&&f.push({...c,id:d(e),kind:"text",text:a})}else a.toolName===m.TOOL_NAMES.ask_bot?f.push({...c,id:d(e),kind:"ask",callId:a.toolCallId,to:String(g.bot??""),text:String(g.request??"")}):a.toolName===m.TOOL_NAMES.ask_back?f.push({...c,id:d(e),kind:"ask",callId:a.toolCallId,to:b,text:String(g.question??"")}):a.toolName===m.TOOL_NAMES.bash?f.push({...c,id:d(e),kind:"tool",callId:a.toolCallId,name:a.toolName,input:(0,n.clip)(String(g.command??""),120),note:L(g)}):f.push({...c,id:d(e),kind:"tool",callId:a.toolCallId,name:a.toolName,input:M(a.toolName,g),note:L(g),path:a.toolName===m.TOOL_NAMES.write_file?U(g,"path")??null:null})}),f}if("tool"===a.role){let b=[];return a.content.forEach((a,e)=>{if("tool-result"===a.type&&!((0,l.isAnswerCall)(a.toolName)&&(0,l.answerAccepted)(a.output)))if(a.toolName===m.TOOL_NAMES.ask_thursday){let f=P(a.output,4).flatMap(a=>"text"===a.type?[a.text]:[]).join("\n");b.push({...c,id:d(e),kind:"user",text:(0,o.untagSpeaker)(f)})}else if(a.toolName===m.TOOL_NAMES.ask_bot||a.toolName===m.TOOL_NAMES.ask_back){let f=P(a.output,4).flatMap(a=>"text"===a.type?[a.text]:[]).join("\n");b.push({...c,id:d(e),kind:"ask-result",callId:a.toolCallId,text:f})}else b.push(N(c,d(e),a))}),b}return[]}(a,c.get(a.taskId)??"")),e.set(a.taskId,b)}return a.map(a=>(function(a,b){let{pending:c,inputTokens:d,outputTokens:e,...f}=a;return{...f,ask:"waiting"===a.status?{question:a.outcome??"",options:c?.options??[],auto:c?.auto===!0}:null,tokens:{input:d,output:e},lines:b}})(a,e.get(a.id)??[]))}let T=["query","command","prompt","url","path","pattern","request","question","title","name","task","text"],U=(a,b)=>{let c=a[b];return"string"==typeof c&&c.trim()?c:null};function L(a){let b=U(a,"description");return b?(0,n.clip)(b,120):null}function M(a,b){let c=b??{};if("object"!=typeof c||Array.isArray(c))return(0,n.clip)(String(b??""),120);if(a===m.TOOL_NAMES.bash)return L(c)??(0,n.clip)(String(c.command??""),120);if(a===m.TOOL_NAMES.tool_call||a===m.TOOL_NAMES.tool_search){let a=Array.isArray(c.tools)?c.tools.map(String).join(", "):String(c.tool??""),b=c.args&&"object"==typeof c.args?JSON.stringify(c.args):"";return(0,n.clip)([String(c.server??""),a,b].filter(Boolean).join(" "),120)}for(let a of T){let b=U(c,a);if(b)return(0,n.clip)(b,120)}for(let a of Object.keys(c)){let b=U(c,a);if(b)return(0,n.clip)(b,120)}return Object.keys(c).length?(0,n.clip)(JSON.stringify(c),120):""}let V="Anything that was under way — a command, a page loading, a download — may not have finished: check before relying on it, then carry on.";function N(a,b,c){let d=P(c.output,5);return{...a,id:b,kind:"tool-result",callId:c.toolCallId,name:c.toolName,results:d.slice(0,4),more:d.length>4}}function O(a){return Array.isArray(a)?a.map(a=>String(a).trim()).filter(Boolean):[]}function P(a,b){if(null==a)return[];if("string"==typeof a)return Q(a,b);if("object"!=typeof a)return Q(String(a),b);switch(a.type){case"text":case"error-text":return Q(String(a.value??""),b);case"json":case"error-json":return P(a.value,b);case"execution-denied":return Q("Denied.",b);case"content":{if(!Array.isArray(a.value))return[];let c=[];for(let d of a.value){if("text"===d.type&&"string"==typeof d.text){c.push(...Q(d.text,b));continue}let a=function(a){let b=String(a.mediaType??"");if(!b.startsWith("image/"))return null;let c=a.data;return"string"==typeof c?`data:${b};base64,${c}`:c?.type==="url"&&c.url?c.url:c?.type==="data"&&"string"==typeof c.data?`data:${b};base64,${c.data}`:null}(d);a&&c.push({type:"image",src:a})}return c}}return Array.isArray(a.sources)?a.sources.map(a=>String(a?.title??"")).filter(Boolean).slice(0,b).map(a=>({type:"text",text:a})):"string"==typeof a.stdout?Q(a.stdout||String(a.stderr??""),b):"string"==typeof a.answer?Q(a.answer,b):Q(JSON.stringify(a),b)}function Q(a,b){return a.split("\n").map(a=>a.trim()).filter(Boolean).slice(0,b).map(a=>({type:"text",text:a}))}a.s(["addTaskUsage",0,t,"countStopsSinceSpoken",0,B,"deleteFinishedTasks",0,z,"deleteMessages",0,H,"deleteTask",0,y,"findTask",0,u,"insertTask",0,q,"lastSeq",0,I,"listAllTaskIds",0,A,"listBorrowedTails",0,C,"listCallJobs",0,x,"listInboxTasks",0,v,"listTaskHistory",0,w,"listThread",0,J,"listWrittenPaths",0,E,"markSeen",0,s,"optionsOf",0,O,"resolveTask",0,F,"stopNote",0,a=>`${a} ${V}`,"updateTask",0,r,"upsertMessage",0,G,"writtenPathsIn",0,D]),c()}catch(a){c(a)}},!1),527990,925034,912735,a=>{"use strict";var b,c,d,e,f,g=a.i(652685),h=a.i(634531),i=a.i(22372);class j extends Error{constructor(a,b){super(a),this.name="ParseError",this.type=b.type,this.field=b.field,this.value=b.value,this.line=b.line}}function k(a){}function l(a,b,c){return 100===c&&97===a.charCodeAt(b+1)&&116===a.charCodeAt(b+2)&&97===a.charCodeAt(b+3)&&58===a.charCodeAt(b+4)}function m(a,b,c){return 101===c&&118===a.charCodeAt(b+1)&&101===a.charCodeAt(b+2)&&110===a.charCodeAt(b+3)&&116===a.charCodeAt(b+4)&&58===a.charCodeAt(b+5)}class n extends TransformStream{constructor({onError:a,onRetry:b,onComment:c,maxBufferSize:d}={}){let e;super({start(f){e=function(a){if("function"==typeof a)throw TypeError("`config` must be an object, got a function instead. Did you mean `createParser({onEvent: fn})`?");let{onEvent:b=k,onError:c=k,onRetry:d=k,onComment:e,maxBufferSize:f}=a,g=[],h=0,i=!0,n,o="",p=0,q,r=!1;function s(){void 0!==f&&(h+o.length<=f||(r=!0,g.length=0,h=0,n=void 0,o="",p=0,q=void 0,c(new j(`Buffered data exceeded max buffer size of ${f} characters`,{type:"max-buffer-size-exceeded"}))))}function t(a){let c=0;if(-1===a.indexOf("\r")){let d=a.indexOf(`
|
|
4
4
|
`,c);for(;-1!==d;){if(c===d){p>0&&b({id:n,event:q,data:o}),n=void 0,o="",p=0,q=void 0,c=d+1,d=a.indexOf(`
|
|
5
5
|
`,c);continue}let e=a.charCodeAt(c);if(l(a,c,e)){let e=32===a.charCodeAt(c+5)?c+6:c+5,f=a.slice(e,d);if(0===p&&10===a.charCodeAt(d+1)){b({id:n,event:q,data:f}),n=void 0,o="",q=void 0,c=d+2,d=a.indexOf(`
|
|
6
6
|
`,c);continue}o=0===p?f:`${o}
|
|
@@ -25,4 +25,4 @@ Content-Type: ${f}\r
|
|
|
25
25
|
Error message: ${Q(b)}`,cause:b}),this[n]=!0,this.text=a}static isInstance(a){return H.hasMarker(a,ac)}},af="AI_LoadAPIKeyError",ag=`vercel.ai.error.${af}`,ah=Symbol.for(ag),ai=class extends(q=H,p=ah,q){constructor({message:a}){super({name:af,message:a}),this[p]=!0}static isInstance(a){return H.hasMarker(a,ag)}},aj="AI_LoadSettingError",ak=`vercel.ai.error.${aj}`,al=Symbol.for(ak),am=class extends(s=H,r=al,s){constructor({message:a}){super({name:aj,message:a}),this[r]=!0}static isInstance(a){return H.hasMarker(a,ak)}},an="AI_NoContentGeneratedError",ao=`vercel.ai.error.${an}`,ap=Symbol.for(ao),aq=class extends(u=H,t=ap,u){constructor({message:a="No content generated."}={}){super({name:an,message:a}),this[t]=!0}static isInstance(a){return H.hasMarker(a,ao)}},ar="AI_NoSuchModelError",as=`vercel.ai.error.${ar}`,at=Symbol.for(as),au=class extends(w=H,v=at,w){constructor({errorName:a=ar,modelId:b,modelType:c,message:d=`No such ${c}: ${b}`}){super({name:a,message:d}),this[v]=!0,this.modelId=b,this.modelType=c}static isInstance(a){return H.hasMarker(a,as)}},av="AI_NoSuchProviderReferenceError",aw=`vercel.ai.error.${av}`,ax=Symbol.for(aw),ay=class extends(y=H,x=ax,y){constructor({provider:a,reference:b,message:c=`No provider reference found for provider '${a}'. Available providers: ${Object.keys(b).join(", ")}`}){super({name:av,message:c}),this[x]=!0,this.provider=a,this.reference=b}static isInstance(a){return H.hasMarker(a,aw)}},az="AI_TooManyEmbeddingValuesForCallError",aA=`vercel.ai.error.${az}`,aB=Symbol.for(aA),aC=class extends(A=H,z=aB,A){constructor(a){super({name:az,message:`Too many values for a single embedding call. The ${a.provider} model "${a.modelId}" can only embed up to ${a.maxEmbeddingsPerCall} values per call, but ${a.values.length} values were provided.`}),this[z]=!0,this.provider=a.provider,this.modelId=a.modelId,this.maxEmbeddingsPerCall=a.maxEmbeddingsPerCall,this.values=a.values}static isInstance(a){return H.hasMarker(a,aA)}},aD="AI_TypeValidationError",aE=`vercel.ai.error.${aD}`,aF=Symbol.for(aE),aG=class a extends(C=H,B=aF,C){constructor({value:a,cause:b,context:c}){let d="Type validation failed";if((null==c?void 0:c.field)&&(d+=` for ${c.field}`),(null==c?void 0:c.entityName)||(null==c?void 0:c.entityId)){d+=" (";const a=[];c.entityName&&a.push(c.entityName),c.entityId&&a.push(`id: "${c.entityId}"`),d+=a.join(", "),d+=")"}super({name:aD,message:`${d}: Value: ${JSON.stringify(a)}.
|
|
26
26
|
Error message: ${Q(b)}`,cause:b}),this[B]=!0,this.value=a,this.context=c}static isInstance(a){return H.hasMarker(a,aE)}static wrap({value:b,cause:c,context:d}){var e,f,g;return a.isInstance(c)&&c.value===b&&(null==(e=c.context)?void 0:e.field)===(null==d?void 0:d.field)&&(null==(f=c.context)?void 0:f.entityName)===(null==d?void 0:d.entityName)&&(null==(g=c.context)?void 0:g.entityId)===(null==d?void 0:d.entityId)?c:new a({value:b,cause:c,context:d})}},aH="AI_UnsupportedFunctionalityError",aI=`vercel.ai.error.${aH}`,aJ=Symbol.for(aI),aK=class extends(E=H,D=aJ,E){constructor({functionality:a,message:b=`'${a}' functionality not supported.`}){super({name:aH,message:b}),this[D]=!0,this.functionality=a}static isInstance(a){return H.hasMarker(a,aI)}};function aL(a){return null===a||"string"==typeof a||"number"==typeof a||"boolean"==typeof a||(Array.isArray(a)?a.every(aL):"object"==typeof a&&Object.entries(a).every(([a,b])=>"string"==typeof a&&(void 0===b||aL(b))))}a.s(["AISDKError",0,H,"APICallError",0,L,"EmptyResponseBodyError",0,P,"InvalidArgumentError",0,U,"InvalidPromptError",0,Y,"InvalidResponseDataError",0,aa,"JSONParseError",0,ae,"LoadAPIKeyError",0,ai,"LoadSettingError",0,am,"NoContentGeneratedError",0,aq,"NoSuchModelError",0,au,"NoSuchProviderReferenceError",0,ay,"TooManyEmbeddingValuesForCallError",0,aC,"TypeValidationError",0,aG,"UnsupportedFunctionalityError",0,aK,"getErrorMessage",0,Q,"isJSONArray",0,function(a){return Array.isArray(a)&&a.every(aL)},"isJSONObject",0,function(a){return null!=a&&"object"==typeof a&&Object.entries(a).every(([a,b])=>"string"==typeof a&&(void 0===b||aL(b)))}])},258261,a=>{"use strict";var b=a.i(351674),c=a.i(163227),d=a.i(494415);a.s(["max",0,function(a){return b.sql`max(${a})`.mapWith((0,c.is)(a,d.Column)?a:String)}])}];
|
|
27
27
|
|
|
28
|
-
//# sourceMappingURL=
|
|
28
|
+
//# sourceMappingURL=_001_ms1._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[61876,a=>{"use strict";var b=a.i(156757),c=a.i(287702);b.z.object({value:b.z.string().min(1),expires_at:b.z.number()});let d=b.z.enum(["openai","chatgpt","anthropic","google","xai","vercel-ai-gateway"]),e=b.z.object({provider:d,model:b.z.string().trim().min(1,"Model name is required").max(80)}),f=b.z.enum(["openai","xai"]),g=b.z.object({provider:f,voice:b.z.string().trim().min(1).max(64).nullish(),model:b.z.string().trim().min(1).max(80).nullish()}),h=b.z.enum(["openai","google","xai","vercel-ai-gateway"]),i=b.z.object({provider:h,model:b.z.string().trim().min(1,"Model name is required").max(120)}),j={openai:{label:"Open AI",apiKeyName:"OPENAI_API_KEY",models:{image:[{id:"gpt-image-1-mini",label:"GPT Image 1 mini",tier:"small"},{id:"gpt-image-2.5-flare",label:"GPT Image 2.5 Flare",tier:"mid"},{id:"gpt-image-2.5-sunburst",label:"GPT Image 2.5 Sunburst",tier:"large"}],video:[],speech:[{id:"tts-1",label:"TTS 1",tier:"small"},{id:"gpt-4o-mini-tts",label:"4o mini TTS",tier:"mid"},{id:"tts-1-hd",label:"TTS 1 HD",tier:"large"}],transcription:[{id:"gpt-4o-mini-transcribe",label:"4o mini Transcribe",tier:"small"},{id:"gpt-transcribe",label:"GPT Transcribe",tier:"mid"}]}},google:{label:"Gemini",apiKeyName:"GOOGLE_GENERATIVE_AI_API_KEY",models:{image:[{id:"gemini-3.1-flash-lite-image",label:"3.1 Flash Lite Image",tier:"small"},{id:"gemini-3.1-flash-image",label:"3.1 Flash Image",tier:"mid"},{id:"gemini-3-pro-image",label:"3 Pro Image",tier:"large"}],video:[{id:"veo-3.1-lite-generate-preview",label:"Veo 3.1 Lite",tier:"small"},{id:"veo-3.1-fast-generate-preview",label:"Veo 3.1 Fast",tier:"mid"},{id:"veo-3.1-generate-preview",label:"Veo 3.1",tier:"large"}],speech:[{id:"gemini-2.5-flash-preview-tts",label:"2.5 Flash TTS",tier:"small"},{id:"gemini-3.1-flash-tts-preview",label:"3.1 Flash TTS",tier:"mid"},{id:"gemini-2.5-pro-preview-tts",label:"2.5 Pro TTS",tier:"large"}],transcription:[{id:"gemini-3.5-transcribe",label:"3.5 Transcribe",tier:"mid"}]}},xai:{label:"xAI",apiKeyName:"XAI_API_KEY",models:{image:[{id:"grok-imagine-image",label:"Grok Imagine",tier:"small"},{id:"grok-imagine-image-2.0",label:"Grok Imagine 2.0",tier:"mid"}],video:[{id:"grok-imagine-video",label:"Grok Imagine Video",tier:"small"},{id:"grok-imagine-video-1.5",label:"Grok Imagine Video 1.5",tier:"mid"}],speech:[{id:"grok-tts",label:"Grok TTS",tier:"mid"}],transcription:[{id:"grok-stt",label:"Grok STT",tier:"mid"}]}},"vercel-ai-gateway":{label:"Vercel AI GateWay",apiKeyName:"AI_GATEWAY_API_KEY",models:{image:[{id:"bytedance/seedream-5.0-lite",label:"Seedream 5.0 Lite",tier:"small"},{id:"bfl/flux-2-klein-9b",label:"FLUX 2 Klein 9B",tier:"small"},{id:"spacexai/grok-imagine-image-2.0",label:"Grok Imagine 2.0",tier:"small"},{id:"google/gemini-3.1-flash-image",label:"Gemini 3.1 Flash Image",tier:"mid"},{id:"bfl/flux-2-pro",label:"FLUX 2 Pro",tier:"mid"},{id:"bytedance/seedream-5.0-pro",label:"Seedream 5.0 Pro",tier:"mid"},{id:"recraft/recraft-v4.1",label:"Recraft V4.1",tier:"mid"},{id:"google/gemini-3-pro-image",label:"Gemini 3 Pro Image",tier:"large"},{id:"openai/gpt-image-2.5-sunburst",label:"GPT Image 2.5 Sunburst",tier:"large"}],video:[{id:"bytedance/seedance-2.0-mini",label:"Seedance 2.0 Mini",tier:"small"},{id:"google/veo-3.1-lite-generate-001",label:"Veo 3.1 Lite",tier:"small"},{id:"alibaba/wan-v2.6-t2v",label:"Wan 2.6",tier:"small"},{id:"google/veo-3.1-fast-generate-001",label:"Veo 3.1 Fast",tier:"mid"},{id:"bytedance/seedance-2.5",label:"Seedance 2.5",tier:"mid"},{id:"spacexai/grok-imagine-video-1.5",label:"Grok Imagine Video 1.5",tier:"mid"},{id:"klingai/kling-v3.0-t2v",label:"Kling 3.0",tier:"large"},{id:"google/veo-3.1-generate-001",label:"Veo 3.1",tier:"large"}],speech:[{id:"fish-audio/s1",label:"Fish Audio S1",tier:"small"},{id:"openai/tts-1",label:"OpenAI TTS 1",tier:"small"},{id:"spacexai/grok-tts",label:"Grok TTS",tier:"mid"},{id:"fish-audio/s2.1-pro",label:"Fish Audio S2.1 Pro",tier:"mid"},{id:"openai/tts-1-hd",label:"OpenAI TTS 1 HD",tier:"large"}],transcription:[{id:"spacexai/grok-stt",label:"Grok STT",tier:"small"},{id:"fish-audio/transcribe-1",label:"Fish Transcribe 1",tier:"small"},{id:"openai/gpt-4o-mini-transcribe",label:"4o mini Transcribe",tier:"small"},{id:"openai/gpt-4o-transcribe",label:"4o Transcribe",tier:"mid"},{id:"google/gemini-3.5-transcribe",label:"Gemini 3.5 Transcribe",tier:"mid"}]}}},k=Object.keys(j).map(a=>({id:a,...j[a]})),l={openai:{label:"Open AI",apiKeyName:"OPENAI_API_KEY",suggestModels:[{id:"gpt-5.6-luna",label:"5.6 Luna",tier:"small",context:105e4},{id:"gpt-5.6-terra",label:"5.6 Terra",tier:"mid",context:105e4},{id:"gpt-5.6-sol",label:"5.6 Sol",tier:"large",context:105e4},{id:"gpt-6-astra",label:"6 Astra",tier:"large",context:105e4}]},chatgpt:{label:"GPT Subscription",apiKeyName:"CHATGPT_SIGN_IN",signIn:!0,suggestModels:[{id:"gpt-5.6-luna",label:"5.6 Luna",tier:"small",context:272e3},{id:"gpt-5.6-terra",label:"5.6 Terra",tier:"mid",context:272e3},{id:"gpt-5.6-sol",label:"5.6 Sol",tier:"large",context:272e3},{id:"gpt-6-astra",label:"6 Astra",tier:"large",context:272e3}]},anthropic:{label:"Claude",apiKeyName:"ANTHROPIC_API_KEY",suggestModels:[{id:"claude-haiku-4-5",label:"Haiku 4.5",tier:"small"},{id:"claude-sonnet-5",label:"Sonnet 5",tier:"mid",context:1e6},{id:"claude-opus-5",label:"Opus 5",tier:"large",context:1e6},{id:"claude-fable-5-1",label:"Fable 5.1",tier:"large"}]},google:{label:"Gemini",apiKeyName:"GOOGLE_GENERATIVE_AI_API_KEY",suggestModels:[{id:"gemini-3.5-flash-lite",label:"3.5 Flash Lite",tier:"small",context:1e6},{id:"gemini-3.8-flash",label:"3.8 Flash",tier:"mid",context:1e6}]},xai:{label:"xAI",apiKeyName:"XAI_API_KEY",suggestModels:[{id:"grok-4.6",label:"Grok 4.6",tier:"large",context:5e5}]},"vercel-ai-gateway":{label:"Vercel AI GateWay",apiKeyName:"AI_GATEWAY_API_KEY",suggestModels:[{id:"zai/glm-5.3-flash",label:"GLM 5.3 Flash",tier:"small"},{id:"google/gemini-3.8-flash",label:"Gemini 3.8 Flash",tier:"small"},{id:"openai/gpt-5.6-luna",label:"GPT 5.6 Luna",tier:"small",context:105e4},{id:"zai/glm-5.3",label:"GLM 5.3",tier:"mid"},{id:"spacexai/grok-4.6",label:"Grok 4.6",tier:"mid",context:5e5},{id:"anthropic/claude-sonnet-5",label:"Claude Sonnet 5",tier:"mid"},{id:"openai/gpt-5.6-terra",label:"GPT 5.6 Terra",tier:"mid",context:105e4},{id:"moonshotai/kimi-k3",label:"Kimi K3",tier:"mid"},{id:"openai/gpt-5.6-sol",label:"GPT 5.6 Sol",tier:"large",context:105e4},{id:"anthropic/claude-opus-5",label:"Claude Opus 5",tier:"large",context:1e6},{id:"openai/gpt-6-astra",label:"GPT 6 Astra",tier:"large",context:105e4}]}},m={openai:{apiKeyName:l.openai.apiKeyName,label:l.openai.label,keyPrefix:["sk-"],models:[{id:"gpt-realtime-2.1",label:"Realtime 2.1"},{id:"gpt-realtime-2.1-mini",label:"Realtime 2.1 mini"},{id:"gpt-realtime-2",label:"Realtime 2"}],voices:["marin","cedar","alloy","ash","ballad","coral","echo","sage","shimmer","verse"],defaultVoice:"marin"},xai:{apiKeyName:l.xai.apiKeyName,label:l.xai.label,keyPrefix:["xai-"],models:[{id:"grok-voice-think-fast-2.0",label:"Voice Think Fast 2.0"},{id:"grok-voice-latest",label:"Voice latest"}],voices:["eve","ara","leo","rex","sal"],defaultVoice:"eve"}},n=Object.keys(m).map(a=>({id:a,...m[a]})),o=Object.keys(l).map(a=>({id:a,...l[a]}));a.s(["GATEWAY_TEXT",0,"language","GATEWAY_TOOL_USE",0,"tool-use","MEDIA_MODEL_PROVIDERS",0,j,"MEDIA_MODEL_PROVIDER_LIST",0,k,"SPEACH_MODEL_PROVIDERS",0,m,"SPEACH_MODEL_PROVIDER_LIST",0,n,"TEXT_MODEL_PROVIDER_LIST",0,o,"canMakeKind",0,(a,b)=>(j[a]?.models[b]?.length??0)>0,"compactAtFor",0,a=>a&&a>0?Math.round(a*c.BOT_RUN.compactHeadroom):c.BOT_RUN.compactAt,"contextWindowOf",0,function(a,b,c=[]){if("vercel-ai-gateway"===a)return c.find(a=>a.id===b)?.contextWindow??null;let d=l[a].suggestModels;return d.find(a=>a.id===b)?.context??null},"detectSpeachProvider",0,function(a){let b=a.trim();if(!b||b.startsWith("sk-ant-"))return null;let c=null,d=0;for(let a of Object.keys(m))for(let e of m[a].keyPrefix)b.startsWith(e)&&e.length>d&&(c=a,d=e.length);return c},"parseMediaModel",0,function(a){let[b,...c]=(a??"").trim().split("/"),d=i.safeParse({provider:b,model:c.join("/")});return d.success?d.data:null},"parseTextModel",0,function(a){let[b,...c]=(a??"").trim().split("/"),d=e.safeParse({provider:b,model:c.join("/")});return d.success?d.data:null},"speachModelRefSchema",0,g,"textModelProviderSchema",0,d],61876)},509301,a=>{"use strict";var b=a.i(572131),c=a.i(754184),d=a.i(357738),e=a.i(187828),f=a.i(854401),g=a.i(389862),h=a.i(151086),i=a.i(426476),j=a.i(394552),k=a.i(307436),l=a.i(925123),m=a.i(796e3),n=a.i(532186),o=a.i(30116),p=a.i(361813),q=a.i(303889),r=a.i(614209);function s(a){return h.platform.engine.webkit&&0===a.movementX&&0===a.movementY}function t(a,b,c){switch(a){case"vertical":return b;case"horizontal":return c;default:return b||c}}function u(a,b){return t(b,a===n.ARROW_UP||a===n.ARROW_DOWN,a===n.ARROW_LEFT||a===n.ARROW_RIGHT)}function v(a,b,c){return t(b,a===n.ARROW_DOWN,c?a===n.ARROW_LEFT:a===n.ARROW_RIGHT)||"Enter"===a||" "===a||""===a}a.s(["useListNavigation",0,function(a,h){let{listRef:w,activeIndex:x,onNavigate:y=()=>{},enabled:z=!0,selectedIndex:A=null,allowEscape:B=!1,loopFocus:C=!1,nested:D=!1,rtl:E=!1,virtual:F=!1,focusItemOnOpen:G="auto",focusItemOnHover:H=!0,openOnArrowKeyDown:I=!0,disabledIndices:J,orientation:K="vertical",parentOrientation:L,id:M,resetOnPointerLeave:N=!0,externalTree:O,grid:P}=h,Q=null!=P,R="rootStore"in a?a.rootStore:a,S=R.useState("open"),T=R.useState("floatingElement"),U=R.useState("domReferenceElement"),V=R.context.dataRef,W=(0,p.getFloatingFocusElement)(T),X=(0,p.isTypeableCombobox)(U),Y=(0,g.useValueAsRef)(W),Z=(0,l.useFloatingParentNodeId)(),$=(0,l.useFloatingTree)(O),_=b.useRef(G),aa=b.useRef(A??-1),ab=b.useRef(null),ac=b.useRef(!0),ad=(0,f.useStableCallback)(a=>{y(-1===aa.current?null:aa.current,a)}),ae=b.useRef(!!T),af=b.useRef(S),ag=b.useRef(!1),ah=b.useRef(!1),ai=b.useRef(null),aj=(0,g.useValueAsRef)(J),ak=(0,g.useValueAsRef)(S),al=(0,g.useValueAsRef)(A),am=(0,g.useValueAsRef)(N),an=(0,c.useAnimationFrame)(),ao=(0,c.useAnimationFrame)(),ap=(0,f.useStableCallback)(()=>{function a(a){F?$?.events.emit("virtualfocus",a):ai.current=(0,q.enqueueFocus)(a,{sync:ag.current,preventScroll:!0})}let b=w.current[aa.current],c=ah.current;b&&a(b),(ag.current?a=>a():a=>an.request(a))(()=>{let d=w.current[aa.current]||b;!d||(b||a(d),av&&(c||!ac.current)&&d.scrollIntoView?.({block:"nearest",inline:"nearest"}))})});(0,d.useIsoLayoutEffect)(()=>{V.current.orientation=K},[V,K]),(0,d.useIsoLayoutEffect)(()=>{z&&(S&&T?(aa.current=A??-1,_.current&&null!=A&&(ah.current=!0,ad())):ae.current&&(aa.current=-1,ad()))},[z,S,T,A,ad]),(0,d.useIsoLayoutEffect)(()=>{if(z){if(!S){ag.current=!1;return}if(T)if(null==x){if(ag.current=!1,null!=al.current)return;if(ae.current&&(aa.current=-1,ap()),(!af.current||!ae.current)&&_.current&&(null!=ab.current||!0===_.current&&null==ab.current)){let a=0,b=()=>{null==w.current[0]?(a<2&&(a?a=>ao.request(a):queueMicrotask)(b),a+=1):(aa.current=null==ab.current||v(ab.current,K,E)||D?(0,m.getMinListIndex)(w):(0,m.getMaxListIndex)(w),ab.current=null,ad())};b()}}else(0,m.isIndexOutOfListBounds)(w.current,x)||(aa.current=x,ap(),ah.current=!1)}},[z,S,T,x,al,D,w,K,E,ad,ap,ao]),(0,d.useIsoLayoutEffect)(()=>{if(!z||T||!$||F||!ae.current)return;let a=$.nodesRef.current,b=a.find(a=>a.id===Z)?.context?.elements.floating,c=(0,o.activeElement)((0,e.ownerDocument)(U??b??null)),d=a.some(a=>a.context&&(0,o.contains)(a.context.elements.floating,c));b&&!d&&ac.current&&b.focus({preventScroll:!0})},[z,T,U,$,Z,F]),(0,d.useIsoLayoutEffect)(()=>{af.current=S,ae.current=!!T}),(0,d.useIsoLayoutEffect)(()=>{S||(ab.current=null,_.current=G)},[S,G]);let aq=null!=x,ar=(0,f.useStableCallback)(a=>{if(!ak.current)return;let b=w.current.indexOf(a.currentTarget);-1!==b&&(aa.current!==b||x!==b)&&(aa.current=b,ad(a))}),as=(0,f.useStableCallback)(()=>L??$?.nodesRef.current.find(a=>a.id===Z)?.context?.dataRef?.current.orientation),at=(0,f.useStableCallback)(()=>(0,m.getMinListIndex)(w,aj.current)),au=(0,f.useStableCallback)(a=>{var b;let c,d;if(ac.current=!1,ag.current=!0,229===a.which||!ak.current&&a.currentTarget===Y.current)return;if(D&&(b=a.key,c=E?b===n.ARROW_RIGHT:b===n.ARROW_LEFT,d=b===n.ARROW_UP,"both"===K||"horizontal"===K&&Q?"Escape"===b:t(K,c,d))){u(a.key,as())||(0,r.stopEvent)(a),R.setOpen(!1,(0,j.createChangeEventDetails)(k.REASONS.listNavigation,a.nativeEvent)),(0,i.isHTMLElement)(U)&&(F?$?.events.emit("virtualfocus",U):U.focus());return}let e=aa.current,f=(0,m.getMinListIndex)(w,J),g=(0,m.getMaxListIndex)(w,J);if(X||("Home"===a.key&&((0,r.stopEvent)(a),aa.current=f,ad(a)),"End"===a.key&&((0,r.stopEvent)(a),aa.current=g,ad(a))),null!=P){let b=P(a,aa.current,w,K,C,E,J,f,g);if(null!=b&&(aa.current=b,ad(a)),"both"===K)return}if(u(a.key,K)){if((0,r.stopEvent)(a),S&&!F&&(0,o.activeElement)(a.currentTarget.ownerDocument)===a.currentTarget){aa.current=v(a.key,K,E)?f:g,ad(a);return}v(a.key,K,E)?C?e>=g?B&&e!==w.current.length?aa.current=-1:(ag.current=!1,aa.current=f):aa.current=(0,m.findNonDisabledListIndex)(w.current,{startingIndex:e,disabledIndices:J}):aa.current=Math.min(g,(0,m.findNonDisabledListIndex)(w.current,{startingIndex:e,disabledIndices:J})):C?e<=f?B&&-1!==e?aa.current=w.current.length:(ag.current=!1,aa.current=g):aa.current=(0,m.findNonDisabledListIndex)(w.current,{startingIndex:e,decrement:!0,disabledIndices:J}):aa.current=Math.max(f,(0,m.findNonDisabledListIndex)(w.current,{startingIndex:e,decrement:!0,disabledIndices:J})),(0,m.isIndexOutOfListBounds)(w.current,aa.current)&&(aa.current=-1),ad(a)}}),av=b.useMemo(()=>({onFocus(a){ag.current=!0,ar(a)},onClick:({currentTarget:a})=>a.focus({preventScroll:!0}),onMouseMove(a){!s(a)&&(ag.current=!0,ah.current=!1,H&&ar(a))},onPointerLeave(a){if(!ak.current||!ac.current||"touch"===a.pointerType)return;ag.current=!0;let b=a.relatedTarget;if(!(!H||w.current.includes(b))&&am.current&&(ai.current?.(),ai.current=null,aa.current=-1,ad(a),!F)){let a=Y.current,b=(0,o.activeElement)((0,e.ownerDocument)(a));a&&(0,o.contains)(a,b)&&a.focus({preventScroll:!0})}}}),[ar,ak,Y,H,w,ad,am,F]),aw=b.useMemo(()=>F&&S&&aq&&{"aria-activedescendant":`${M}-${x}`},[F,S,aq,M,x]),ax=b.useMemo(()=>({...!X?aw:{},onKeyDown(a){if("Tab"===a.key&&a.shiftKey&&S&&!F){let b=(0,o.getTarget)(a.nativeEvent);if(b&&!(0,o.contains)(Y.current,b))return;(0,r.stopEvent)(a),R.setOpen(!1,(0,j.createChangeEventDetails)(k.REASONS.focusOut,a.nativeEvent)),(0,i.isHTMLElement)(U)&&U.focus();return}au(a)},onPointerMove(a){s(a)||(ac.current=!0)}}),[aw,au,Y,X,R,S,F,U]),ay=b.useMemo(()=>{function a(a){R.setOpen(!0,(0,j.createChangeEventDetails)(k.REASONS.listNavigation,a.nativeEvent,a.currentTarget))}function b(a){"auto"===G&&(0,r.isVirtualClick)(a.nativeEvent)&&(_.current=!F)}function c(a){_.current=G,"auto"===G&&(0,r.isVirtualPointerEvent)(a.nativeEvent)&&(_.current=!0)}return{onKeyDown(b){var c,d;let e=R.select("open");ac.current=!1;let f=b.key.startsWith("Arrow"),g=(c=b.key,d=as(),t(d,E?c===n.ARROW_LEFT:c===n.ARROW_RIGHT,c===n.ARROW_DOWN)),h=u(b.key,K),i=(D?g:h)||"Enter"===b.key||""===b.key.trim();if(F&&e)return au(b);if(e||I||!f){if(i){let a=u(b.key,as());ab.current=D&&a?null:b.key}if(D){g&&((0,r.stopEvent)(b),e?(aa.current=at(),ad(b)):a(b));return}h&&(null!=al.current&&(aa.current=al.current),(0,r.stopEvent)(b),!e&&I?a(b):au(b),e&&ad(b))}},onFocus(a){R.select("open")&&!F&&(aa.current=-1,ad(a))},onPointerDown:c,onPointerEnter:c,onMouseDown:b,onClick:b}},[au,G,at,D,ad,R,I,K,as,E,al,F]),az=b.useMemo(()=>({...aw,...ay}),[aw,ay]);return b.useMemo(()=>z?{reference:az,floating:ax,item:av,trigger:ay}:{},[z,az,ax,ay,av])}])},446355,a=>{"use strict";var b=a.i(572131),c=a.i(357738),d=a.i(854401),e=a.i(736069),f=a.i(524715),g=a.i(796e3),h=a.i(30116),i=a.i(614209);a.s(["useTypeahead",0,function(a,j){let{listRef:k,elementsRef:l,activeIndex:m,onMatch:n,disabledIndices:o,onTyping:p,enabled:q=!0,resetMs:r=750,selectedIndex:s=null}=j,t="rootStore"in a?a.rootStore:a,u=t.useState("open"),v=(0,e.useTimeout)(),w=b.useRef(""),x=b.useRef(s??m??-1),y=b.useRef(null),z=(0,d.useStableCallback)(a=>{function b(a){let b=l?.current[a];return!(b&&!(0,g.isElementVisible)(b)||b?.matches(":disabled"))&&(null==o||!(0,g.isListIndexDisabled)(f.EMPTY_ARRAY,a,o))}function c(a,d,e=0){if(0===a.length)return -1;let f=(e%a.length+a.length)%a.length,g=d.toLowerCase();for(let c=0;c<a.length;c+=1){let d=(f+c)%a.length,e=a[d];if(e?.toLowerCase().startsWith(g)&&b(d))return d}return -1}let d=k.current;if(w.current.length>0&&" "===a.key&&((0,i.stopEvent)(a),p?.(!0)),w.current.length>0&&" "!==w.current[0]&&-1===c(d,w.current)&&" "!==a.key&&p?.(!1),null==d||1!==a.key.length||a.ctrlKey||a.metaKey||a.altKey)return;u&&" "!==a.key&&((0,i.stopEvent)(a),p?.(!0));let e=""===w.current;e&&(x.current=s??m??-1),d.every((a,c)=>!(a&&b(c))||a[0]?.toLowerCase()!==a[1]?.toLowerCase())&&w.current===a.key&&(w.current="",x.current=y.current),w.current+=a.key,v.start(r,()=>{w.current="",x.current=y.current,p?.(!1)});let h=e?s??m??-1:x.current,j=c(d,w.current,(h??0)+1);-1!==j?(n?.(j),y.current=j):" "!==a.key&&(w.current="",p?.(!1))}),A=(0,d.useStableCallback)(a=>{let b=a.relatedTarget,c=t.select("domReferenceElement"),d=t.select("floatingElement");(0,h.contains)(c,b)||(0,h.contains)(d,b)||(v.clear(),w.current="",x.current=y.current,p?.(!1))});(0,c.useIsoLayoutEffect)(()=>{(u||null===s)&&(v.clear(),y.current=null,""!==w.current&&(w.current=""))},[u,s,v]);let B=b.useMemo(()=>({onKeyDown:z,onBlur:A}),[z,A]);return b.useMemo(()=>q?{reference:B,floating:B}:{},[q,B])}])},961892,a=>{"use strict";var b=a.i(744530),c=a.i(151086);a.s(["isMouseWithinBounds",0,function(a,d){let e=function(a){let d=a.getBoundingClientRect(),e=(0,b.ownerWindow)(a);if(c.platform.env.jsdom)return d;let f=e.getComputedStyle(a,"::before"),g=e.getComputedStyle(a,"::after");if("none"===f.content&&"none"===g.content)return d;let h=parseFloat(f.width)||0,i=parseFloat(f.height)||0,j=parseFloat(g.width)||0,k=parseFloat(g.height)||0,l=Math.max(d.width,h,j),m=Math.max(d.height,i,k),n=l-d.width,o=m-d.height;return{left:d.left-n/2,right:d.right+n/2,top:d.top-o/2,bottom:d.bottom+o/2}}(d);return a.clientX>=e.left-5&&a.clientX<=e.right+5&&a.clientY>=e.top-5&&a.clientY<=e.bottom+5}])},402968,a=>{"use strict";var b=a.i(572131),c=a.i(187828),d=a.i(113259),e=a.i(357738);a.s(["useAnchoredPopupScrollLock",0,function(a,f,g,h){let[i,j]=b.useState(!1);(0,e.useIsoLayoutEffect)(()=>{if(!a||!f||null==g)return void j(!1);let b=(0,c.ownerDocument)(g).documentElement.clientWidth,d=g.offsetWidth;j(b>0&&d>0&&d>=b-20)},[a,f,g]),(0,d.useScrollLock)(a&&(!f||i),h)}])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_01n3o0m._.js.map
|