thursday-agent 0.17.2 → 0.18.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 +1 -0
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +3 -3
- package/.next/routes-manifest.json +6 -0
- package/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- 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 +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/artifact/route.js +7 -7
- package/.next/server/app/api/artifact/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/memory/files/route.js +4 -4
- package/.next/server/app/api/bot/memory/files/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/memory/route.js +1 -1
- package/.next/server/app/api/bot/memory/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/route.js +1 -1
- package/.next/server/app/api/bot/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/thread/[id]/route.js +1 -1
- package/.next/server/app/api/bot/thread/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/thread/file/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/bot/thread/file/route/build-manifest.json +12 -0
- package/.next/server/app/api/bot/thread/file/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/bot/thread/file/route.js +29 -0
- package/.next/server/app/api/bot/thread/file/route.js.map +5 -0
- package/.next/server/app/api/bot/thread/file/route.js.nft.json +1 -0
- package/.next/server/app/api/bot/thread/file/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/bot/thread/route.js +1 -1
- package/.next/server/app/api/bot/thread/route.js.nft.json +1 -1
- package/.next/server/app/api/config/route.js +1 -1
- package/.next/server/app/api/config/route.js.nft.json +1 -1
- package/.next/server/app/api/events/route.js +2 -2
- package/.next/server/app/api/events/route.js.nft.json +1 -1
- package/.next/server/app/api/favicon/[host]/route.js.nft.json +1 -1
- package/.next/server/app/api/file/[...path]/route.js +4 -4
- package/.next/server/app/api/file/[...path]/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/automatic/route.js +1 -1
- package/.next/server/app/api/llm-model/automatic/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/catalog/route.js +1 -1
- package/.next/server/app/api/llm-model/catalog/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/credits/route.js +1 -1
- package/.next/server/app/api/llm-model/credits/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/route.js +1 -1
- package/.next/server/app/api/llm-model/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/subscription/route.js +1 -1
- package/.next/server/app/api/llm-model/subscription/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/[name]/route.js +1 -1
- package/.next/server/app/api/mcp/[name]/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/oauth/callback/route.js +2 -2
- package/.next/server/app/api/mcp/oauth/callback/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/route.js +1 -1
- package/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/tools/route.js +1 -1
- package/.next/server/app/api/mcp/tools/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/edit/route.js +1 -1
- package/.next/server/app/api/memory/edit/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/route.js +1 -1
- package/.next/server/app/api/memory/route.js.nft.json +1 -1
- package/.next/server/app/api/reach/route.js +1 -1
- package/.next/server/app/api/reach/route.js.nft.json +1 -1
- package/.next/server/app/api/routine/route.js +1 -1
- package/.next/server/app/api/routine/route.js.nft.json +1 -1
- package/.next/server/app/api/signins/route.js +1 -1
- package/.next/server/app/api/signins/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/[source]/[name]/route.js +1 -1
- package/.next/server/app/api/skills/[source]/[name]/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/route.js +1 -1
- package/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/call/end/route.js +1 -1
- package/.next/server/app/api/thursday/call/end/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/call/route.js +1 -1
- package/.next/server/app/api/thursday/call/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/settings/route.js +1 -1
- package/.next/server/app/api/thursday/settings/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/text/route.js +1 -1
- package/.next/server/app/api/thursday/text/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/tool-call/route.js +1 -1
- package/.next/server/app/api/thursday/tool-call/route.js.nft.json +1 -1
- package/.next/server/app/api/workspace/files/route.js +1 -1
- package/.next/server/app/api/workspace/files/route.js.nft.json +1 -1
- package/.next/server/app/api/workspace/route.js +1 -1
- package/.next/server/app/api/workspace/route.js.nft.json +1 -1
- package/.next/server/app/artifact/[...path]/page/server-reference-manifest.json +94 -6
- package/.next/server/app/artifact/[...path]/page.js +9 -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.nft.json +1 -1
- package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/.next/server/app/page/server-reference-manifest.json +161 -128
- package/.next/server/app/page.js +9 -9
- 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 +1 -0
- package/.next/server/chunks/{[externals]__12stas-._.js → [externals]__178rv3v._.js} +1 -1
- package/.next/server/chunks/[root-of-the-server]__00qyw01._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__02ra64t._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__03xamry._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__04hhvpu._.js +7 -0
- package/.next/server/chunks/[root-of-the-server]__05dp5tr._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0bqveex._.js +1 -1
- package/.next/server/chunks/{[root-of-the-server]__1_h4hf9._.js → [root-of-the-server]__0brmiv2._.js} +4 -4
- package/.next/server/chunks/[root-of-the-server]__0gvdr2h._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__0h656y-._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0lvjz0b._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__0mgyt8p._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0mrk2it._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0my9geo._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0qdoc_9._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__0sm5xvm._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0v_kuor._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__1-rmal0._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__13hng6h._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1_04mcf._.js +2 -2
- package/.next/server/chunks/[root-of-the-server]__1ceammd._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1dth047._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__1etbk64._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1izes4_._.js +7 -0
- package/.next/server/chunks/[root-of-the-server]__1ksm9m-._.js +12 -0
- package/.next/server/chunks/[root-of-the-server]__1m_dmf6._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__1mys2c3._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__1ndi14y._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1p0njle._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__1p47fbb._.js +2 -2
- package/.next/server/chunks/[root-of-the-server]__1ygplx1._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1zn039k._.js +1 -1
- package/.next/server/chunks/_01c32w9._.js +1 -1
- package/.next/server/chunks/_02bov6_._.js +1 -1
- package/.next/server/chunks/_06hnfi8._.js +2 -2
- package/.next/server/chunks/_06u9yo-._.js +1 -1
- package/.next/server/chunks/_07nxi75._.js +42 -41
- package/.next/server/chunks/_08354bn._.js +12 -11
- package/.next/server/chunks/{_08btiir._.js → _08_-9ay._.js} +3 -3
- package/.next/server/chunks/_08s4vft._.js +1 -1
- package/.next/server/chunks/_0bgjf07._.js +5 -0
- package/.next/server/chunks/_0fb6dvr._.js +1 -1
- package/.next/server/chunks/_0hgvg55._.js +1 -1
- package/.next/server/chunks/_0iw19ig._.js +1 -1
- package/.next/server/chunks/_0poi1t2._.js +1 -1
- package/.next/server/chunks/_0srlnvd._.js +6 -6
- package/.next/server/chunks/_0t_7gji._.js +1 -1
- package/.next/server/chunks/_0uzj57i._.js +1 -1
- package/.next/server/chunks/_0wyh244._.js +112 -0
- package/.next/server/chunks/_0xygcxs._.js +42 -41
- package/.next/server/chunks/_1-sk_q4._.js +1 -1
- package/.next/server/chunks/_108gsm8._.js +2 -2
- package/.next/server/chunks/_136j09a._.js +5 -5
- package/.next/server/chunks/_15negpy._.js +2 -2
- package/.next/server/chunks/_1d7og_q._.js +1 -1
- package/.next/server/chunks/_1dxq827._.js +2 -2
- package/.next/server/chunks/_1e54wxa._.js +1 -1
- package/.next/server/chunks/_1gn2r2q._.js +6 -6
- package/.next/server/chunks/_1i3uucm._.js +1 -1
- package/.next/server/chunks/_1jvy78-._.js +5 -0
- package/.next/server/chunks/_1q6e56i._.js +6 -6
- package/.next/server/chunks/_1qgix-j._.js +1 -1
- package/.next/server/chunks/_1wwl_7o._.js +1 -1
- package/.next/server/chunks/_1y8w80a._.js +5 -5
- package/.next/server/chunks/_1yx285_._.js +3 -0
- package/.next/server/chunks/_20qn224._.js +3 -0
- package/.next/server/chunks/_211dn2c._.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_bot_thread_file_route_actions_0q3be0o.js +3 -0
- package/.next/server/chunks/config_ts_1g4sz5o._.js +1 -1
- package/.next/server/chunks/features_bot_08z387_._.js +3 -3
- package/.next/server/chunks/features_workspace_workspace_ts_13h82gv._.js +3 -3
- package/.next/server/chunks/features_workspace_workspace_ts_1iyjroj._.js +3 -3
- package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_04oxl25._.js → node_modules_consola_dist_chunks_prompt_mjs_0yd5xa0._.js} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__04upd5v._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__06knwl5._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__07ehpky._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0h6jo0s._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__128hnrd._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1867koj._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1gzje-h._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__1d7usu0._.js → [root-of-the-server]__1qn0axo._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__1r7tj27._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1tb5vve._.js +46 -0
- package/.next/server/chunks/ssr/{features_bot_1knyan7._.js → _07nmtxo._.js} +2 -2
- package/.next/server/chunks/ssr/{_10-_awu._.js → _0f9hx5p._.js} +2 -2
- package/.next/server/chunks/ssr/_0fo4552._.js +10 -9
- package/.next/server/chunks/ssr/{_123y-ah._.js → _0is8m6y._.js} +2 -2
- package/.next/server/chunks/ssr/{_17a4qyk._.js → _0ixe3g3._.js} +3 -3
- package/.next/server/chunks/ssr/_0j9vh-8._.js +3 -0
- package/.next/server/chunks/ssr/_0l7rjg5._.js +1 -1
- package/.next/server/chunks/ssr/{lib_logger_ts_0-olsze._.js → _0mfgsk-._.js} +4 -2
- package/.next/server/chunks/ssr/_0mpn6q0._.js +5 -0
- package/.next/server/chunks/ssr/{_0e2fnvg._.js → _0osvxkt._.js} +2 -2
- package/.next/server/chunks/ssr/_0p6w0ef._.js +3 -0
- package/.next/server/chunks/ssr/_0pbav_w._.js +3 -0
- package/.next/server/chunks/ssr/{_1aqjk-1._.js → _0wuvkqk._.js} +2 -2
- package/.next/server/chunks/ssr/_0x8ophf._.js +1 -1
- package/.next/server/chunks/ssr/_0x9f717._.js +60 -0
- package/.next/server/chunks/ssr/_1-41lck._.js +1 -1
- package/.next/server/chunks/ssr/_10jtmhl._.js +3 -0
- package/.next/server/chunks/ssr/{_0xfafez._.js → _12jv_41._.js} +2 -2
- package/.next/server/chunks/ssr/{_163dr78._.js → _165wnr4._.js} +2 -2
- package/.next/server/chunks/ssr/_16_7zeo._.js +3 -0
- package/.next/server/chunks/ssr/{_14oirtb._.js → _1_ogjze._.js} +2 -2
- package/.next/server/chunks/ssr/_1bfrntd._.js +6 -0
- package/.next/server/chunks/ssr/_1i2swyr._.js +3 -0
- package/.next/server/chunks/ssr/{_10_ph1t._.js → _1jd8rjm._.js} +2 -2
- package/.next/server/chunks/ssr/_1mdjoak._.js +162 -0
- package/.next/server/chunks/ssr/_1neoj22._.js +1 -1
- package/.next/server/chunks/ssr/{_1dfv66y._.js → _1oafxdu._.js} +2 -2
- package/.next/server/chunks/ssr/_1omom9y._.js +3 -0
- package/.next/server/chunks/ssr/_1pgxh81._.js +271 -0
- package/.next/server/chunks/ssr/{_0vo_oym._.js → _1r4mc3i._.js} +2 -2
- package/.next/server/chunks/ssr/_1soynbw._.js +6 -0
- package/.next/server/chunks/ssr/{_01al00i._.js → _1tx-2k7._.js} +2 -2
- package/.next/server/chunks/ssr/_1w899wx._.js +3 -0
- package/.next/server/chunks/ssr/_1xwtbdz._.js +3 -0
- package/.next/server/chunks/ssr/features_0796o8r._.js +1 -1
- package/.next/server/chunks/ssr/features_bot_0tb4ui-._.js +2 -2
- package/.next/server/chunks/ssr/features_bot_18gqkr_._.js +3 -0
- package/.next/server/chunks/ssr/{features_config_09n-q9q._.js → features_config_1ond01n._.js} +3 -3
- package/.next/server/chunks/ssr/features_connectors_components_mcp-setting_tsx_0jmbgvp._.js +1 -1
- package/.next/server/chunks/ssr/features_memory_components_memory-setting_tsx_0oa43sw._.js +1 -1
- package/.next/server/chunks/ssr/features_routine_components_routine-setting_tsx_055fknz._.js +1 -1
- package/.next/server/chunks/ssr/features_workspace_workspace_ts_1wc7_u_._.js +4 -4
- package/.next/server/chunks/ssr/{node_modules_0msrhxf._.js → node_modules_004qt-z._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0q-klni._.js → node_modules_06m6e97._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_13g-d25._.js → node_modules_09dy7tk._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0gd9hbz._.js → node_modules_0_hy3i2._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1gq3ght._.js → node_modules_0f485jl._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_096up6a._.js → node_modules_0gbx70b._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_13bqv6i._.js → node_modules_0i_v0-m._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_04x5wyv._.js → node_modules_0lrn9ci._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0d6j33x._.js → node_modules_0lxwg2v._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_113l3e5._.js → node_modules_0n2-p5q._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules_0nj36zf._.js +3 -0
- package/.next/server/chunks/ssr/{node_modules_0cjnmzp._.js → node_modules_0ppirau._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0m73b88._.js → node_modules_0pw13ww._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules_0qd7p5f._.js +3 -0
- package/.next/server/chunks/ssr/{node_modules_0nmkv-v._.js → node_modules_0upwx50._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0__0tvm._.js → node_modules_0v__o4h._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1k5i-_9._.js → node_modules_1-4q6is._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_156kv_t._.js → node_modules_10mb0cv._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_10_fv2a._.js → node_modules_16z7p8b._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1lmyts8._.js → node_modules_17o218r._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0k8-y89._.js → node_modules_1gpapfv._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1_8-jcj._.js → node_modules_1hdaxu9._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1ri_eip._.js → node_modules_1hjvwkh._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0nw5jz7._.js → node_modules_1j886a5._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1xb-ndg._.js → node_modules_1srjf5c._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1p_6sq7._.js → node_modules_1tus4vi._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_021lid9._.js → node_modules_1tv_7lk._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1qstb1x._.js → node_modules_20448xv._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0amkw0b._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0lg9pkl._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0zq3l45._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1xgbf5j._.js} +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/middleware.js +1 -1
- 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 +205 -132
- package/.next/static/chunks/{166smhw8v-s3j.js → 05uvci-bk-vgp.js} +1 -1
- package/.next/static/chunks/09y_43y1cy5jw.js +1 -0
- package/.next/static/chunks/0_s4z70lx1tgs.js +1 -0
- package/.next/static/chunks/0oqviw3f55nfp.js +58 -0
- package/.next/static/chunks/0q9b2n6l4flqb.js +1 -0
- package/.next/static/chunks/0ruf3dqs--3ve.js +1 -0
- package/.next/static/chunks/0vggwjufw2-6r.js +1 -0
- package/.next/static/chunks/{3sla-dm1puqd1.js → 0x4m9nj2fazl2.js} +1 -1
- package/.next/static/chunks/{3t2c76awm9k_p.js → 1-1yfu34-3p2p.js} +1 -1
- package/.next/static/chunks/10oyyypxn_cpx.js +1 -0
- package/.next/static/chunks/{1cglo3a2mbeou.js → 17dx6w478vnb0.js} +1 -1
- package/.next/static/chunks/184-r80rv0xay.css +1 -0
- package/.next/static/chunks/1_hgdoungpm0o.js +1 -0
- package/.next/static/chunks/{0obogzscwwekj.js → 1dpg1u4a16ujt.js} +1 -1
- package/.next/static/chunks/{2qgkbdshzpq1c.js → 1h_6rh86q3i4p.js} +1 -1
- package/.next/static/chunks/{3b96xy59nl_gd.js → 1pe7i5yu779ta.js} +1 -1
- package/.next/static/chunks/{2zbl41hed17g3.js → 240nfv2dtidhc.js} +1 -1
- package/.next/static/chunks/{0uxq_vs6uxi-b.js → 27l8qwnk1j66z.js} +1 -1
- package/.next/static/chunks/2gxfy__ef51n9.js +3 -0
- package/.next/static/chunks/2kjwmo70judc2.js +15 -0
- package/.next/static/chunks/{3gsxnqqqphh-1.js → 2lzg4zedtmyic.js} +1 -1
- package/.next/static/chunks/2ug8q1x9e-_j6.js +1 -0
- package/.next/static/chunks/{01l7kw74vfp32.js → 2uk8rdtr-pk58.js} +1 -1
- package/.next/static/chunks/337g9g_ux2gj-.js +1 -0
- package/.next/static/chunks/{0o7o0eb7ihxi6.js → 396enq-m0sss5.js} +1 -1
- package/.next/static/chunks/{0p2f6uv4xytfm.js → 3r7u1y9xjoh-v.js} +1 -1
- package/.next/static/chunks/{3jtcieuk1l6tw.js → 3vg1-oc-zgw_7.js} +1 -1
- package/.next/static/chunks/40re_3ukjulg9.js +1 -0
- package/.next/static/chunks/41ztsnjn4qrn-.js +1 -0
- package/README.md +5 -5
- package/bin/autostart.mjs +32 -2
- package/bin/lock.mjs +85 -4
- package/bin/thursday.mjs +42 -15
- package/bin/tools.mjs +18 -1
- package/database/migrations/20260926021847_thread_cache_tokens/migration.sql +2 -0
- package/database/migrations/20260926021847_thread_cache_tokens/snapshot.json +1949 -0
- package/guide/bots.md +173 -317
- package/guide/calls.md +98 -146
- package/guide/index.md +2 -2
- package/guide/memory.md +14 -18
- package/guide/phone.md +86 -133
- package/guide/setup.md +127 -172
- package/guide/trouble.md +42 -65
- package/package.json +1 -1
- package/seed-skills/concierge/travel/scripts/itinerary.mjs +1 -1
- package/skills/artifact/runtime/shell/shell.js +32 -3
- package/.next/server/chunks/[root-of-the-server]__01ypm_z._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__021dkui._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__09gdscj._.js +0 -7
- package/.next/server/chunks/[root-of-the-server]__0ljizgj._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__0nmust6._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__0svzjwa._.js +0 -7
- package/.next/server/chunks/[root-of-the-server]__1c2kwku._.js +0 -12
- package/.next/server/chunks/[root-of-the-server]__1t02-1p._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1t0jj1j._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__1vlxv19._.js +0 -5
- package/.next/server/chunks/_0j0-gq6._.js +0 -5
- package/.next/server/chunks/_0p6v1fr._.js +0 -5
- package/.next/server/chunks/_1ic3bew._.js +0 -5
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0g87zst._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0-af_o7._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__09f39cp._.js +0 -4
- package/.next/server/chunks/ssr/[root-of-the-server]__0ouu4qp._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0q9g9ea._.js +0 -5
- package/.next/server/chunks/ssr/[root-of-the-server]__17h1ggo._.js +0 -46
- package/.next/server/chunks/ssr/[root-of-the-server]__1jyeu61._.js +0 -5
- package/.next/server/chunks/ssr/_0afrpci._.js +0 -3
- package/.next/server/chunks/ssr/_0bgse1c._.js +0 -162
- package/.next/server/chunks/ssr/_0qsmpcu._.js +0 -3
- package/.next/server/chunks/ssr/_0z38nha._.js +0 -3
- package/.next/server/chunks/ssr/_116lfdc._.js +0 -3
- package/.next/server/chunks/ssr/_14dfh7a._.js +0 -4
- package/.next/server/chunks/ssr/_17qtuv7._.js +0 -3
- package/.next/server/chunks/ssr/_1_5xof_._.js +0 -3
- package/.next/server/chunks/ssr/_1alxym6._.js +0 -3
- package/.next/server/chunks/ssr/_1ou5sj0._.js +0 -3
- package/.next/server/chunks/ssr/_1tmw842._.js +0 -5
- package/.next/server/chunks/ssr/_1uij_rj._.js +0 -3
- package/.next/server/chunks/ssr/_1w9w1ok._.js +0 -3
- package/.next/server/chunks/ssr/_20gq_24._.js +0 -3
- package/.next/server/chunks/ssr/features_bot_0ouemw8._.js +0 -3
- package/.next/server/chunks/ssr/node_modules_@base-ui_react_1j9i1ho._.js +0 -3
- package/.next/static/chunks/0a5_-jqhaktjj.js +0 -1
- package/.next/static/chunks/0npvak0wpgagb.js +0 -1
- package/.next/static/chunks/19l81deo_pyoc.js +0 -1
- package/.next/static/chunks/1bnhw-5fj7aiz.js +0 -1
- package/.next/static/chunks/1in6nxpu33iab.js +0 -1
- package/.next/static/chunks/1u7kg91f9qy3g.js +0 -1
- package/.next/static/chunks/1xv4g10m-cl1s.js +0 -1
- package/.next/static/chunks/2ajs12-fcdwzm.js +0 -1
- package/.next/static/chunks/2i7qtmxc1kuqg.js +0 -1
- package/.next/static/chunks/2kz1f6r59nky0.js +0 -3
- package/.next/static/chunks/31kn4_h2rvf6k.css +0 -1
- package/.next/static/chunks/35jj-5u4te56r.js +0 -1
- package/.next/static/chunks/37ixzapa06xlo.js +0 -1
- package/.next/static/chunks/3k1d8y03t5nax.js +0 -58
- package/.next/static/chunks/3yiqr95d7ybeq.js +0 -15
- /package/.next/static/{8I2hKtciyA9LXvd8txuOz → -IBxB5oqr6e3RuOCCmYtL}/_buildManifest.js +0 -0
- /package/.next/static/{8I2hKtciyA9LXvd8txuOz → -IBxB5oqr6e3RuOCCmYtL}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{8I2hKtciyA9LXvd8txuOz → -IBxB5oqr6e3RuOCCmYtL}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[119663,e=>e.a(async(t,a)=>{try{var r=e.i(443771),i=e.i(440998),n=e.i(91264),o=e.i(53748),s=t([r,i]);[r,i]=s.then?(await s)():s;let l=(0,n.serverRoute)(async e=>{let t=new URL(e.url).searchParams,a=t.get("path")?.trim();a||(0,o.publicError)("Which file?");let[n,s]=await Promise.all([(0,i.readFileVersion)(a),(0,r.readFileThread)(a,t.get("from")||null)]);return{file:n,note:s}});e.s(["GET",0,l]),a()}catch(e){a(e)}},!1),602283,e=>{"use strict";var t=e.i(747909),a=e.i(174017),r=e.i(996250),i=e.i(759756),n=e.i(561916),o=e.i(174677),s=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),f=e.i(626937),R=e.i(10372),w=e.i(193695);e.i(52474);var v=e.i(600220);let g=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/bot/thread/file/route",pathname:"/api/bot/thread/file",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/bot/thread/file/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(119663),...{}}),{workAsyncStorage:m,workUnitAsyncStorage:b,serverHooks:E}=g;async function C(e,t,r){r.requestMeta&&(0,i.setRequestMeta)(e,r.requestMeta),g.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/bot/thread/file/route";m=m.replace(/\/index$/,"")||"/";let b=await g.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!b)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:E,deploymentId:C,params:y,nextConfig:T,parsedUrl:A,isDraftMode:x,prerenderManifest:S,routerServerContext:P,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,resolvedPathname:_,clientReferenceManifest:q,serverActionsManifest:H}=b,I=(0,s.normalizeAppPath)(m),k=!!(S.dynamicRoutes[I]||S.routes[_]),M=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,A,!1):t.end("This page could not be found"),null);if(k&&!x){let e=!!S.routes[_],t=S.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(T.adapterPath)return await M();throw new w.NoFallbackError}}let U=null;!k||g.isDev||x||(U="/index"===(U=_)?"/":U);let D=!0===g.isDev||!k,F=k&&!D;H&&q&&(0,o.setManifestsSingleton)({page:m,clientReferenceManifest:q,serverActionsManifest:H});let $=e.method||"GET",L=(0,n.getTracer)(),B=L.getActiveScopeSpan(),K=!!(null==P?void 0:P.isWrappedByNextServer),j=!!(0,i.getRequestMeta)(e,"minimalMode"),G=(0,i.getRequestMeta)(e,"incrementalCache")||await g.getIncrementalCache(e,T,S,j);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let W={params:y,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!T.experimental.authInterrupts,useCacheTimeout:T.experimental.useCacheTimeout},cacheComponents:!!T.cacheComponents,validationLevel:T.experimental.instantInsights.validationLevel,supportsDynamicResponse:D,incrementalCache:G,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:T.cacheLife,staticPageGenerationTimeout:T.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,i)=>g.onRequestError(e,t,r,i,P)},sharedContext:{buildId:E,deploymentId:C}},V=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t)),z=async({previousCacheEntry:a})=>{try{if(!j&&N&&O&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await g.handle(J,W);e.fetchMetrics=W.renderOpts.fetchMetrics;let n=W.renderOpts.pendingWaitUntil;n&&r.waitUntil&&(r.waitUntil(n),n=void 0);let o=W.renderOpts.collectedTags;if(!k)return await (0,p.sendResponse)(V,X,i,n),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);o&&(t[R.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,r=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=R.INFINITE_CACHE?!1!==a&&a>0?T.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await g.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:N})},!1,P),t}},Z=async(i,o)=>{try{var s,l;let i=await g.handleResponse({req:e,nextConfig:T,cacheKey:U,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,responseGenerator:z,waitUntil:r.waitUntil,isMinimalMode:j});if(!k)return;if((null==i||null==(s=i.value)?void 0:s.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==i||null==(l=i.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});j||t.setHeader("x-nextjs-cache",N?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,h.fromNodeOutgoingHttpHeaders)(i.value.headers);j&&k||n.delete(R.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,f.getCacheControlHeader)(i.cacheControl)),await (0,p.sendResponse)(V,X,new Response(i.value.body,{headers:n,status:i.value.status||200}));return}catch(t){if(t instanceof w.NoFallbackError||await g.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:N})},!1,P),k)throw t;await (0,p.sendResponse)(V,X,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:n.SpanStatusCode.ERROR}),i.setAttribute("error.type",e.toString()));let a=L.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route")||I,s=`${$} ${r}`;i.setAttributes({"next.route":r,"http.route":r,"next.span_name":s}),i.updateName(s),o&&o!==i&&(o.setAttribute("http.route",r),o.updateName(s))})()}};if(K&&B)await Z(B,void 0);else{let t=L.getActiveScopeSpan();await L.withPropagatedContext(e.headers,()=>L.trace(d.BaseServerSpan.handleRequest,{spanName:`${$} ${m}`,kind:n.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},e=>Z(e,t)),void 0,!K)}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:m,workUnitAsyncStorage:b})},"routeModule",0,g,"serverHooks",0,E,"workAsyncStorage",0,m,"workUnitAsyncStorage",0,b])},443771,e=>e.a(async(t,a)=>{try{var r=e.i(912714),i=e.i(687388),n=e.i(771716),o=e.i(629668),s=e.i(786025),l=e.i(53748),u=e.i(41444),d=e.i(265143),c=e.i(585099),p=e.i(39803),h=e.i(944971),f=e.i(742712),R=e.i(378884),w=t([n,d,c,p,f,R]);async function v(e,t=null){let a=await (0,s.insideWorkspace)(e),i=a?await (0,r.stat)(a).catch(()=>null):null;if(!i?.isFile())return{state:"gone"};let o=await g(e,t);if(!o)return{state:"none",bot:await (0,n.botOfArtifact)(e),threadDeleted:null!==t};let p={id:o.id,label:o.label,bot:o.bot};if("waiting"===o.status&&o.pending&&!(0,h.isAppStop)(o.pending))return{state:"asking",thread:p,bot:o.pending.bot??o.bot,question:o.outcome??""};let R=e.split("/")[1]?.toLowerCase(),w=[...new Set((await (0,f.listRoomWork)(o.id)).map(e=>e.bot))].find(e=>e!==o.bot&&(0,s.botFolderName)(e).toLowerCase()===R),m=(w&&await (0,d.findJobBot)(w))??await (0,d.findJobBot)(o.bot);if(!m)return{state:"refused",thread:p,reason:"deleted",why:`${w??o.bot} was deleted, so nobody in this thread can take it up.`};try{await (0,c.resolveModel)(m,{quiet:!0})}catch(e){if(!(0,l.isPublicError)(e))throw e;return{state:"refused",thread:p,reason:"model",why:(0,u.errorToString)(e)}}return{state:"open",thread:p,status:o.status,to:m.name,coordinator:o.bot,paused:"waiting"===o.status&&(0,h.isAppStop)(o.pending)?o.outcome:null}}async function g(e,t){if(t)return(0,R.findThread)(t);let a=function(e){let[t,a,r,...n]=e.split("/");return t===i.PATHS.artifacts&&a&&r&&n.length?`${t}/${a}/${r}`:null}(e),r=await (0,f.listReportsNaming)(a??e),n=async e=>{for(let t of r){if(!(0,o.pathsIn)(t.text).some(e))continue;let a=await (0,R.findThread)(t.threadId);if(a)return a}return null};return await n(t=>t===e)??(a?await n(e=>e.startsWith(`${a}/`)):null)}[n,d,c,p,f,R]=w.then?(await w)():w,e.s(["readFileThread",0,v]),a()}catch(e){a(e)}},!1)];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_1yx285_._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[21124,e=>{"use strict";var t=e.i(687388),a=e.i(393189),r=e.i(91264),n=e.i(53748);let o=(0,r.serverRoute)(async e=>{let r=new URL(e.url).searchParams.get("bot")?.trim();return r||(0,n.publicError)("Which bot?"),(0,a.listBotMemory)(r,t.WORKSPACE_VIEW.rows)});e.s(["GET",0,o])},239818,e=>{"use strict";var t=e.i(747909),a=e.i(174017),r=e.i(996250),n=e.i(759756),o=e.i(561916),i=e.i(174677),s=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),R=e.i(626937),m=e.i(10372),v=e.i(193695);e.i(52474);var f=e.i(600220);let E=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/bot/memory/files/route",pathname:"/api/bot/memory/files",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/bot/memory/files/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(21124),...{}}),{workAsyncStorage:g,workUnitAsyncStorage:w,serverHooks:C}=E;async function x(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),E.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/bot/memory/files/route";g=g.replace(/\/index$/,"")||"/";let w=await E.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:C,deploymentId:x,params:_,nextConfig:y,parsedUrl:A,isDraftMode:b,prerenderManifest:T,routerServerContext:P,isOnDemandRevalidate:S,revalidateOnlyGenerated:N,resolvedPathname:O,clientReferenceManifest:q,serverActionsManifest:H}=w,I=(0,s.normalizeAppPath)(g),M=!!(T.dynamicRoutes[I]||T.routes[O]),k=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,A,!1):t.end("This page could not be found"),null);if(M&&!b){let e=!!T.routes[O],t=T.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await k();throw new v.NoFallbackError}}let U=null;!M||E.isDev||b||(U="/index"===(U=O)?"/":U);let D=!0===E.isDev||!M,j=M&&!D;H&&q&&(0,i.setManifestsSingleton)({page:g,clientReferenceManifest:q,serverActionsManifest:H});let K=e.method||"GET",F=(0,o.getTracer)(),L=F.getActiveScopeSpan(),B=!!(null==P?void 0:P.isWrappedByNextServer),$=!!(0,n.getRequestMeta)(e,"minimalMode"),G=(0,n.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,y,T,$);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let W={params:_,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:D,incrementalCache:G,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>E.onRequestError(e,t,r,n,P)},sharedContext:{buildId:C,deploymentId:x}},V=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),z=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:a})=>{try{if(!$&&S&&N&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await E.handle(z,W);e.fetchMetrics=W.renderOpts.fetchMetrics;let o=W.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let i=W.renderOpts.collectedTags;if(!M)return await (0,p.sendResponse)(V,X,n,o),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);i&&(t[m.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,r=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=m.INFINITE_CACHE?!1!==a&&a>0?y.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:S})},!1,P),t}},J=async(n,i)=>{try{var s,l;let n=await E.handleResponse({req:e,nextConfig:y,cacheKey:U,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:N,responseGenerator:Z,waitUntil:r.waitUntil,isMinimalMode:$});if(!M)return;if((null==n||null==(s=n.value)?void 0:s.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});$||t.setHeader("x-nextjs-cache",S?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);$&&M||o.delete(m.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,R.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(V,X,new Response(n.value.body,{headers:o,status:n.value.status||200}));return}catch(t){if(t instanceof v.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:S})},!1,P),M)throw t;await (0,p.sendResponse)(V,X,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:o.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let a=F.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route")||I,s=`${K} ${r}`;n.setAttributes({"next.route":r,"http.route":r,"next.span_name":s}),n.updateName(s),i&&i!==n&&(i.setAttribute("http.route",r),i.updateName(s))})()}};if(B&&L)await J(L,void 0);else{let t=F.getActiveScopeSpan();await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${K} ${g}`,kind:o.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},e=>J(e,t)),void 0,!B)}}e.s(["handler",0,x,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:g,workUnitAsyncStorage:w})},"routeModule",0,E,"serverHooks",0,C,"workAsyncStorage",0,g,"workUnitAsyncStorage",0,w])},329280,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_node_readline_1u65a-m._.js","server/chunks/node_modules_consola_dist_chunks_prompt_mjs_02axwqv._.js"].map(t=>e.l(t))).then(()=>t(781937)))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_20qn224._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[656446,e=>e.a(async(t,o)=>{try{var r=e.i(666680);e.i(347299);var a=e.i(115737),n=e.i(68356),i=e.i(983477),l=e.i(469719),s=e.i(687388),u=e.i(340698),d=e.i(640911),p=e.i(53748),c=e.i(268486),m=e.i(41444),g=e.i(264079),h=t([u]);[u]=h.then?(await h)():h;let x="thursday",{apiKeyName:S,label:k}=g.TEXT_MODEL_PROVIDERS.chatgpt,T=`${k} is not signed in — sign in from Settings › API keys.`,M=l.z.object({access:l.z.string().min(1),refresh:l.z.string().min(1),expires:l.z.number(),accountId:l.z.string().min(1),plan:l.z.string().nullable()}),C=globalThis,E=C.__chatgptRenewal??=(0,c.createKeyedLock)();async function f(e){let t=await fetch("https://auth.openai.com/oauth/token",{method:"POST",headers:{accept:"application/json","content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams({client_id:"app_EMoamEEZ73f0CkXaXp7hrann",...e})}).catch(e=>{d.logger.warn({cause:e},"chatgpt token endpoint unreachable"),(0,p.publicError)("Could not reach ChatGPT's sign-in")}),o=await t.json().catch(()=>null),r=o?.access_token;if(!t.ok||!r){let e=o?.error,r="string"==typeof e?[e,o?.error_description].filter(Boolean).join(": "):e?.message??e?.code??"";(0,p.publicError)(`ChatGPT's sign-in answered ${t.status}${r?`: ${r}`:""}`)}let a=function(e){try{let t=JSON.parse(Buffer.from(e.split(".")[1]??"","base64url").toString("utf8")),o=t["https://api.openai.com/auth"]??{};return{accountId:"string"==typeof o.chatgpt_account_id?o.chatgpt_account_id:null,plan:"string"==typeof o.chatgpt_plan_type?o.chatgpt_plan_type:null,expires:"number"==typeof t.exp?1e3*t.exp:null}}catch{return{accountId:null,plan:null,expires:null}}}(r),n=o?.refresh_token??e.refresh_token;a.accountId&&n||(0,p.publicError)("ChatGPT's sign-in came back without an account");let i=o?.expires_in;return{access:r,refresh:n,expires:"number"==typeof i?Date.now()+1e3*i:a.expires??Date.now(),accountId:a.accountId,plan:a.plan}}async function y(){let e=await (0,u.readConfig)(S);if(!e)return null;try{return M.parse(JSON.parse(e))}catch{return null}}let j=e=>e.expires-s.CHATGPT_SIGN_IN.renewBeforeMs<=Date.now();async function v(){let e=await y();return(e||(0,p.publicError)(T),j(e))?E(S,async()=>{let e=await y();if(e||(0,p.publicError)(T),!j(e))return e;try{let t=await f({grant_type:"refresh_token",refresh_token:e.refresh});return await (0,u.writeConfig)(S,JSON.stringify(t)),t}catch(e){(0,p.publicError)(`Could not renew the ${k} sign-in (${(0,m.errorToString)(e)}). If it keeps failing, sign in again from Settings › API keys.`)}}):e}async function b(){return(await y())?.plan??null}async function _(){let e;if(!await y())return null;try{e=await v()}catch(e){return{refused:(0,m.errorToString)(e)}}let t=await fetch("https://chatgpt.com/backend-api/wham/usage",{headers:{accept:"application/json",authorization:`Bearer ${e.access}`,"chatgpt-account-id":e.accountId,originator:x}}).catch(e=>{d.logger.warn({cause:e},"chatgpt usage unreachable"),(0,p.publicError)("Could not reach ChatGPT")}),o=await t.json().catch(()=>null);if(401===t.status||403===t.status)return{refused:o?.error?.message??o?.detail??`ChatGPT answered ${t.status}`};t.ok||(0,p.publicError)(`ChatGPT answered ${t.status}`);let r=[o?.rate_limit?.primary_window,o?.rate_limit?.secondary_window].filter(e=>"number"==typeof e?.used_percent).sort((e,t)=>(t.used_percent??0)-(e.used_percent??0))[0];r||(0,p.publicError)("ChatGPT did not say how much of the plan is used");let a=Math.round(r.used_percent??0),n=!!o?.rate_limit?.limit_reached,i=r.reset_at?1e3*r.reset_at:r.reset_after_seconds?Date.now()+1e3*r.reset_after_seconds:null;return{plan:o?.plan_type??e.plan,usedPercent:a,resetsAt:i?new Date(i).toISOString():null,spent:n,high:n||a>=s.CHATGPT_USAGE_HIGH}}async function w(e,t){let o=await v(),r=new Headers(t?.headers);if(r.set("authorization",`Bearer ${o.access}`),r.set("chatgpt-account-id",o.accountId),r.set("originator",x),t?.method!=="POST"||"string"!=typeof t.body||!String(e).endsWith("/responses"))return fetch(e,{...t,headers:r});let a=JSON.parse(t.body),n=!0===a.stream,i=[];a.input=(a.input??[]).filter(e=>"system"!==e.role&&"developer"!==e.role||(i.push("string"==typeof e.content?e.content:(e.content??[]).map(e=>e.text??"").join("\n")),!1)),a.instructions=[a.instructions,...i].filter(Boolean).join("\n\n")||"You are a helpful assistant.",a.store=!1,a.stream=!0,a.max_output_tokens=void 0,r.set("accept","text/event-stream");let l=await fetch(e,{...t,headers:r,body:JSON.stringify(a)});return 429===l.status?z(l):n||!l.ok?l:I(l)}async function z(e){let t=await e.text(),o={};try{o=JSON.parse(t).error??{}}catch{}if(!/usage_limit_reached|usage_not_included/.test(`${o.code} ${o.type}`)){let o=e.headers.get("retry-after");return new Response(t,{status:429,headers:{"content-type":"application/json",...o?{"retry-after":o}:{}}})}let r=o.resets_at?1e3*o.resets_at:o.resets_in_seconds?Date.now()+1e3*o.resets_in_seconds:null,a=o.plan_type?` on the ${o.plan_type} plan`:"",n=r?` It resets in ${(0,i.formatDistanceToNowStrict)(r)}.`:"";return Response.json({error:{message:`${k} usage limit reached${a}.${n}`,code:o.code??o.type}},{status:402})}async function I(e){let t=[],o=null,r=null;for(let a of(await e.text()).replaceAll("\r\n","\n").split("\n\n")){let e,n=a.split("\n").filter(e=>e.startsWith("data:")).map(e=>e.slice(5).trimStart()).join("\n");if(n&&"[DONE]"!==n){try{e=JSON.parse(n)}catch{continue}"response.output_item.done"===e.type?t.push(e.item):"response.completed"===e.type||"response.incomplete"===e.type?o=e.response??{}:"response.failed"===e.type?r=e.response?.error??{message:"The response failed"}:"error"===e.type&&(r={code:e.code,message:e.message})}}return r||!o?Response.json({error:{message:r?.message??"The stream ended before the response finished",code:r?.code}},{status:r?.code==="context_length_exceeded"?400:500}):Response.json({...o,output:o.output?.length?o.output:t})}e.s(["chatGptModel",0,function(e){let t=(0,a.createOpenAI)({baseURL:"https://chatgpt.com/backend-api/codex",apiKey:"signed-in",headers:{"OpenAI-Beta":"responses=experimental"},fetch:w}),o=(0,r.randomUUID)();return(0,n.wrapLanguageModel)({model:t.responses(e),middleware:{transformParams:async({params:e})=>({...e,providerOptions:{...e.providerOptions,openai:{promptCacheKey:o,...e.providerOptions?.openai,store:!1,includeWebSearchSources:!1}}})}})},"chatGptSearch",0,()=>(0,a.createOpenAI)({apiKey:"signed-in"}).tools.webSearch(),"readChatGptPlan",0,b,"readChatGptUsage",0,_]),o()}catch(e){o(e)}},!1),268486,e=>{"use strict";var t=e.i(41444);e.s(["createKeyedLock",0,function(){let e=new Map,o=new Map;return function(r,a){let n=e.get(r);n||(n=(0,t.PromiseChain)(),e.set(r,n)),o.set(r,(o.get(r)??0)+1);let i=()=>{let t=(o.get(r)??1)-1;t>0?o.set(r,t):(o.delete(r),e.delete(r))};return n(a).then(e=>(i(),e),e=>{throw i(),e})}}])},115737,e=>{"use strict";var t,o=e.i(847841),r=e.i(546888),a=e.i(376261),n=e.i(110567),i=e.i(469719),l=i.z.object({error:i.z.object({message:i.z.string(),type:i.z.string().nullish(),param:i.z.any().nullish(),code:i.z.union([i.z.string(),i.z.number()]).nullish()})}),s=(0,o.createJsonErrorResponseHandler)({errorSchema:l,errorToMessage:e=>e.error.message});function u(e){var t,o,r,a,n,i;let l,s=(i=e,null==(l=/^o(\d+)(?:-|$)/.exec(i))?void 0:Number(l[1])),u=function(e){let t=/^gpt-(\d+)(?:\.(\d+))?(?:-(.+))?$/.exec(e);if(null!=t)return{major:Number(t[1]),minor:null==t[2]?void 0:Number(t[2]),variant:t[3]}}(e),d=(null==u?void 0:u.minor)==null&&null!=(o=null==(t=null==u?void 0:u.variant)?void 0:t.startsWith("chat"))&&o,p=null!=(a=null==(r=null==u?void 0:u.variant)?void 0:r.startsWith("nano"))&&a,c=null!=u&&u.major>=6,m="gpt-6-sol"===e||"gpt-6-luna"===e,g=null!=s&&s>=3||null!=u&&u.major>=5&&!d,h=e.startsWith("gpt-4")||null!=u&&u.major>=5&&!p&&!d||null!=s&&s>=3,f=null!=s||null!=u&&u.major>=5&&!d,y=!c&&null!=u&&(u.major>5||5===u.major&&(null!=(n=u.minor)?n:0)>=1);return{supportsFlexProcessing:g,supportsPriorityProcessing:h,supportsConfigurationUpdate:c,supportsAsyncToolCalling:c,supportedReasoningEfforts:m?["none","low","medium","high","xhigh","max"]:c?["low","medium","high","xhigh","max"]:void 0,isReasoningModel:f,systemMessageMode:f?"developer":"system",supportsNonReasoningParameters:y}}function d(e){var t,r;let a=function(e){var t;let o=g(e);if(null==o)return;if("response.failed"===o.type){let e=g(o.response),t=g(null==e?void 0:e.error);return"string"==typeof(null==t?void 0:t.message)?{message:t.message,code:h(t.code),type:"response.failed"}:void 0}let r=null!=(t=g(o.error))?t:o;return"string"==typeof r.message&&(null!=g(o.error)||"string"==typeof r.type||"code"in r||"param"in r)?{message:r.message,code:h(r.code),type:"string"==typeof r.type?r.type:void 0}:void 0}(e);if(null==a)return;let n=function(e){var t,o;let r,a="number"==typeof(r="string"==typeof(t=e.code)&&/^\d{3}$/.test(t)?Number(t):t)&&Number.isInteger(o=r)&&o>=400&&o<=599?r:void 0;if(null!=a)return a;let n=[e.code,e.type].filter(e=>"string"==typeof e||"number"==typeof e).join(" ").toLowerCase();return["insufficient_quota","rate_limit"].some(e=>n.includes(e))?429:n.includes("authentication")?401:n.includes("permission")?403:n.includes("not_found")?404:["invalid","bad_request","context_length"].some(e=>n.includes(e))?400:n.includes("overload")?503:n.includes("timeout")?504:500}(a);return(0,o.createProviderStreamError)({message:a.message,type:null!=(t=a.type)?t:void 0,code:null!=(r=a.code)?r:void 0,statusCode:n,isRetryable:function(e,t){return"insufficient_quota"!==e.code&&"insufficient_quota"!==e.type&&(408===t||409===t||429===t||t>=500)}(a,n),data:e})}async function p({stream:e,getError:t,isOutputChunk:o,isAcceptedChunk:r,acceptedGraceMs:n=50,url:i,requestBodyValues:l,responseHeaders:s}){let[u,g]=e.tee(),h=u.getReader(),f=!1;try{let e=!1;for(;;){let u;if(e){let e=await m(h.read(),n);if(e.timedOut)return g;u=e.value}else u=await h.read();if(u.done)return g;let p=u.value;if(!p.success)return g;let y=t(p.value);if(null!=y)throw f=!0,c(h).catch(()=>{}),c(g.getReader()).catch(()=>{}),function({frame:e,url:t,requestBodyValues:o,responseHeaders:r}){var n,i;let l=d(e);return new a.APICallError({message:null!=(n=null==l?void 0:l.message)?n:"OpenAI stream failed before any output was generated",url:t,requestBodyValues:o,statusCode:null!=(i=null==l?void 0:l.statusCode)?i:500,responseHeaders:r,responseBody:JSON.stringify(e),data:e,isRetryable:null==l?void 0:l.isRetryable})}({frame:y,url:i,requestBodyValues:l,responseHeaders:s});if(o(p.value))return g;e||(null==r?void 0:r(p.value))!==!0||(e=!0)}}finally{f||(h.cancel().catch(()=>{}),h.releaseLock())}}async function c(e){try{for(;!(await e.read()).done;);}catch(e){}finally{e.releaseLock()}}async function m(e,t){let o,r=e.then(e=>({timedOut:!1,value:e}));try{let e=await Promise.race([r,new Promise(e=>{o=setTimeout(()=>e({timedOut:!0}),t)})]);return e.timedOut&&r.catch(()=>{}),e}finally{clearTimeout(o)}}function g(e){return"object"==typeof e&&null!=e?e:void 0}function h(e){return"string"==typeof e||"number"==typeof e?e:void 0}function f(e){var t,r,a,n,i,l,s,u;if(null==e)return(0,o.createNullLanguageModelUsage)();let d=null!=(t=e.prompt_tokens)?t:0,p=null!=(r=e.completion_tokens)?r:0,c=null!=(n=null==(a=e.prompt_tokens_details)?void 0:a.cached_tokens)?n:0,m=null!=(l=null==(i=e.prompt_tokens_details)?void 0:i.cache_write_tokens)?l:void 0,g=null!=(u=null==(s=e.completion_tokens_details)?void 0:s.reasoning_tokens)?u:0;return{inputTokens:{total:d,noCache:d-c-(null!=m?m:0),cacheRead:c,cacheWrite:m},outputTokens:{total:p,text:Math.max(0,p-g),reasoning:g},raw:e}}function y(e){var t;return null==(t=null==e?void 0:e.openai)?void 0:t.promptCacheBreakpoint}function v({id:e,model:t,created:r}){return(0,o.createLanguageModelResponseMetadata)({id:e,model:t,created:r||void 0})}function b(e){switch(e){case"stop":return"stop";case"length":return"length";case"content_filter":return"content-filter";case"function_call":case"tool_calls":return"tool-calls";default:return"other"}}var _=(0,o.lazySchema)(()=>(0,o.zodSchema)(i.z.object({id:i.z.string().nullish(),created:i.z.number().nullish(),model:i.z.string().nullish(),choices:i.z.array(i.z.object({message:i.z.object({role:i.z.literal("assistant").nullish(),content:i.z.string().nullish(),audio:i.z.object({transcript:i.z.string().nullish()}).nullish(),tool_calls:i.z.array(i.z.object({id:i.z.string().nullish(),type:i.z.literal("function"),function:i.z.object({name:i.z.string(),arguments:i.z.string()})})).nullish(),annotations:i.z.array(i.z.object({type:i.z.literal("url_citation"),url_citation:i.z.object({start_index:i.z.number(),end_index:i.z.number(),url:i.z.string(),title:i.z.string()})})).nullish()}),index:i.z.number(),logprobs:i.z.object({content:i.z.array(i.z.object({token:i.z.string(),logprob:i.z.number(),top_logprobs:i.z.array(i.z.object({token:i.z.string(),logprob:i.z.number()}))})).nullish()}).nullish(),finish_reason:i.z.string().nullish()})),usage:i.z.object({prompt_tokens:i.z.number().nullish(),completion_tokens:i.z.number().nullish(),total_tokens:i.z.number().nullish(),prompt_tokens_details:i.z.object({cached_tokens:i.z.number().nullish(),cache_write_tokens:i.z.number().nullish()}).nullish(),completion_tokens_details:i.z.object({reasoning_tokens:i.z.number().nullish(),accepted_prediction_tokens:i.z.number().nullish(),rejected_prediction_tokens:i.z.number().nullish()}).nullish()}).nullish()}))),w=(0,o.lazySchema)(()=>(0,o.zodSchema)(i.z.union([i.z.object({id:i.z.string().nullish(),created:i.z.number().nullish(),model:i.z.string().nullish(),choices:i.z.array(i.z.object({delta:i.z.object({role:i.z.enum(["assistant"]).nullish(),content:i.z.string().nullish(),tool_calls:i.z.array(i.z.object({index:i.z.number(),id:i.z.string().nullish(),type:i.z.literal("function").nullish(),function:i.z.object({name:i.z.string().nullish(),arguments:i.z.string().nullish()})})).nullish(),annotations:i.z.array(i.z.object({type:i.z.literal("url_citation"),url_citation:i.z.object({start_index:i.z.number(),end_index:i.z.number(),url:i.z.string(),title:i.z.string()})})).nullish()}).nullish(),logprobs:i.z.object({content:i.z.array(i.z.object({token:i.z.string(),logprob:i.z.number(),top_logprobs:i.z.array(i.z.object({token:i.z.string(),logprob:i.z.number()}))})).nullish()}).nullish(),finish_reason:i.z.string().nullish(),index:i.z.number()})),usage:i.z.object({prompt_tokens:i.z.number().nullish(),completion_tokens:i.z.number().nullish(),total_tokens:i.z.number().nullish(),prompt_tokens_details:i.z.object({cached_tokens:i.z.number().nullish(),cache_write_tokens:i.z.number().nullish()}).nullish(),completion_tokens_details:i.z.object({reasoning_tokens:i.z.number().nullish(),accepted_prediction_tokens:i.z.number().nullish(),rejected_prediction_tokens:i.z.number().nullish()}).nullish()}).nullish()}),l]))),z=(0,o.lazySchema)(()=>(0,o.zodSchema)(i.z.object({logitBias:i.z.record(i.z.coerce.number(),i.z.number()).optional(),logprobs:i.z.union([i.z.boolean(),i.z.number()]).optional(),parallelToolCalls:i.z.boolean().optional(),user:i.z.string().optional(),reasoningEffort:i.z.enum(["none","minimal","low","medium","high","xhigh","max"]).optional(),maxCompletionTokens:i.z.number().optional(),store:i.z.boolean().optional(),metadata:i.z.record(i.z.string().max(64),i.z.string().max(512)).optional(),prediction:i.z.record(i.z.string(),i.z.any()).optional(),serviceTier:i.z.enum(["auto","flex","priority","fast","ultrafast","default"]).optional(),strictJsonSchema:i.z.boolean().optional(),textVerbosity:i.z.enum(["low","medium","high"]).optional(),promptCacheKey:i.z.string().optional(),promptCacheOptions:i.z.object({mode:i.z.enum(["implicit","explicit"]).optional(),ttl:i.z.literal("30m").optional()}).optional(),promptCacheRetention:i.z.enum(["in_memory","24h"]).optional(),safetyIdentifier:i.z.string().optional(),systemMessageMode:i.z.enum(["system","developer","remove"]).optional(),forceReasoning:i.z.boolean().optional()})));function I(e){let t=!1,o=!1,r=i(e),n=[];return t&&n.push({type:"compatibility",feature:"JSON Schema propertyNames",details:"OpenAI does not support JSON Schema propertyNames. It was removed before sending the schema, so OpenAI will not enforce property-name constraints."}),o&&n.push({type:"compatibility",feature:"JSON Schema pattern with regex lookaround",details:"OpenAI does not support regex lookaround in JSON Schema patterns. The pattern was removed before sending the schema, so OpenAI will not enforce that constraint."}),{schema:r,warnings:n};function i(e){let r=e.propertyNames;if(null!=r){if("boolean"==typeof r||"string"!==r.type)throw new a.UnsupportedFunctionalityError({functionality:"JSON Schema propertyNames that does not use a string schema"});t=!0}let n={...e};for(let e of(delete n.propertyNames,null!=n.pattern&&function(e){let t=!1,o=!1;for(let r=0;r<e.length;r++){let a=e[r];if(t){t=!1;continue}if("\\"===a){t=!0;continue}if("["===a){o=!0;continue}if("]"===a){o=!1;continue}if(!o&&"("===a&&"?"===e[r+1]){let t=e[r+2];if("="===t||"!"===t||"<"===t&&("="===e[r+3]||"!"===e[r+3]))return!0}}return!1}(n.pattern)&&(delete n.pattern,o=!0),null!=n.properties&&(n.properties=l(n.properties)),null!=n.patternProperties&&(n.patternProperties=l(n.patternProperties)),null!=n.additionalProperties&&(n.additionalProperties=s(n.additionalProperties)),null!=n.additionalItems&&(n.additionalItems=s(n.additionalItems)),null!=n.items&&(n.items=Array.isArray(n.items)?n.items.map(s):s(n.items)),null!=n.contains&&(n.contains=s(n.contains)),null!=n.not&&(n.not=s(n.not)),null!=n.allOf&&(n.allOf=n.allOf.map(s)),null!=n.anyOf&&(n.anyOf=n.anyOf.map(s)),null!=n.oneOf&&(n.oneOf=n.oneOf.map(s)),null!=n.definitions&&(n.definitions=l(n.definitions)),null!=n.$defs&&(n.$defs=l(n.$defs)),null!=n.dependencies&&(n.dependencies=Object.fromEntries(Object.entries(n.dependencies).map(([e,t])=>[e,Array.isArray(t)?t:s(t)]))),["if","then","else"])){let t=n[e];null!=t&&(n[e]=s(t))}return n}function l(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,s(t)]))}function s(e){return"boolean"==typeof e?e:i(e)}}var x=class e{constructor(e,t){this.specificationVersion="v4",this.supportedUrls={"image/*":[/^https?:\/\/.*$/]},this.modelId=e,this.config=t}static[n.WORKFLOW_SERIALIZE](e){return(0,o.serializeModelOptions)({modelId:e.modelId,config:e.config})}static[n.WORKFLOW_DESERIALIZE](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}async getArgs({prompt:e,maxOutputTokens:t,temperature:r,topP:n,topK:i,frequencyPenalty:l,presencePenalty:s,stopSequences:d,responseFormat:p,seed:c,tools:m,toolChoice:g,reasoning:h,providerOptions:f}){var v,b,_,w,x,S;let k=[],T=null!=(v=await (0,o.parseProviderOptions)({provider:"openai",providerOptions:f,schema:z}))?v:{},M=u(this.modelId),C=null!=(b=T.reasoningEffort)?b:(0,o.isCustomReasoning)(h)?h:void 0;null==C||null==M.supportedReasoningEfforts||M.supportedReasoningEfforts.includes(C)||(k.push({type:"unsupported",feature:"reasoningEffort",details:`${this.modelId} only supports the following reasoning efforts: ${M.supportedReasoningEfforts.join(", ")}`}),C=void 0);let E=null!=(_=T.forceReasoning)?_:M.isReasoningModel;null!=i&&k.push({type:"unsupported",feature:"topK"});let{messages:j,warnings:O}=function({prompt:e,systemMessageMode:t="system"}){var r,n,i;let l=[],s=[];for(let{role:u,content:d,providerOptions:p}of e)switch(u){case"system":switch(t){case"system":{let e=y(p);l.push({role:"system",content:null==e?d:[{type:"text",text:d,prompt_cache_breakpoint:e}]});break}case"developer":{let e=y(p);l.push({role:"developer",content:null==e?d:[{type:"text",text:d,prompt_cache_breakpoint:e}]});break}case"remove":s.push({type:"other",message:"system messages are removed for this model"});break;default:throw Error(`Unsupported system message mode: ${t}`)}break;case"user":if(1===d.length&&"text"===d[0].type&&null==y(d[0].providerOptions)){l.push({role:"user",content:d[0].text});break}l.push({role:"user",content:d.map((e,t)=>{var r,n,i;switch(e.type){case"text":{let t=y(e.providerOptions);return{type:"text",text:e.text,...null!=t&&{prompt_cache_breakpoint:t}}}case"file":{let l=y(e.providerOptions);switch(e.data.type){case"reference":return{type:"file",file:{file_id:(0,o.resolveProviderReference)({reference:e.data.reference,provider:"openai"})},...null!=l&&{prompt_cache_breakpoint:l}};case"text":throw new a.UnsupportedFunctionalityError({functionality:"text file parts"});case"url":case"data":{let s=(0,o.getTopLevelMediaType)(e.mediaType);if("image"===s)return{type:"image_url",image_url:{url:"url"===e.data.type?e.data.url.toString():`data:${(0,o.resolveFullMediaType)({part:e})};base64,${(0,o.convertToBase64)(e.data.data)}`,detail:null==(n=null==(r=e.providerOptions)?void 0:r.openai)?void 0:n.imageDetail},...null!=l&&{prompt_cache_breakpoint:l}};if("audio"===s){if("url"===e.data.type)throw new a.UnsupportedFunctionalityError({functionality:"audio file parts with URLs"});let t=(0,o.resolveFullMediaType)({part:e});switch(t){case"audio/wav":return{type:"input_audio",input_audio:{data:(0,o.convertToBase64)(e.data.data),format:"wav"},...null!=l&&{prompt_cache_breakpoint:l}};case"audio/mp3":case"audio/mpeg":return{type:"input_audio",input_audio:{data:(0,o.convertToBase64)(e.data.data),format:"mp3"},...null!=l&&{prompt_cache_breakpoint:l}};default:throw new a.UnsupportedFunctionalityError({functionality:`audio content parts with media type ${t}`})}}{let r=(0,o.resolveFullMediaType)({part:e});if("application/pdf"!==r)throw new a.UnsupportedFunctionalityError({functionality:`file part media type ${r}`});if("url"===e.data.type)throw new a.UnsupportedFunctionalityError({functionality:"PDF file parts with URLs"});return{type:"file",file:{filename:null!=(i=e.filename)?i:`part-${t}.pdf`,file_data:`data:application/pdf;base64,${(0,o.convertToBase64)(e.data.data)}`},...null!=l&&{prompt_cache_breakpoint:l}}}}}}}})});break;case"assistant":{let e="",t=[],o=!1,r=[];for(let a of d)switch(a.type){case"text":{let r=y(a.providerOptions);e+=a.text,t.push({type:"text",text:a.text,...null!=r&&{prompt_cache_breakpoint:r}}),o||(o=null!=r);break}case"tool-call":r.push({id:a.toolCallId,type:"function",function:{name:a.toolName,arguments:JSON.stringify("object"!=typeof(i=a.input)||null===i||Array.isArray(i)?{}:i)}})}l.push({role:"assistant",content:o?t:r.length>0?e||null:e,tool_calls:r.length>0?r:void 0});break}case"tool":for(let e of d){let t;if("tool-approval-response"===e.type)continue;let o=e.output,a=null!=(r="content"===o.type?o.value.map(e=>y(e.providerOptions)).find(e=>null!=e):y(o.providerOptions))?r:y(e.providerOptions);switch(o.type){case"text":case"error-text":t=o.value;break;case"execution-denied":t=null!=(n=o.reason)?n:"Tool call execution denied.";break;case"content":case"json":case"error-json":t=JSON.stringify(o.value)}l.push({role:"tool",tool_call_id:e.toolCallId,content:null==a?t:[{type:"text",text:t,prompt_cache_breakpoint:a}]})}break;default:throw Error(`Unsupported role: ${u}`)}return{messages:l,warnings:s}}({prompt:e,systemMessageMode:null!=(w=T.systemMessageMode)?w:E?"developer":M.systemMessageMode});k.push(...O);let R=null==(x=T.strictJsonSchema)||x,A=(null==p?void 0:p.type)==="json"&&null!=p.schema?I(p.schema):void 0;null!=A&&k.push(...A.warnings);let N={model:this.modelId,logit_bias:T.logitBias,logprobs:!0===T.logprobs||"number"==typeof T.logprobs||void 0,top_logprobs:"number"==typeof T.logprobs?T.logprobs:"boolean"==typeof T.logprobs&&T.logprobs?0:void 0,user:T.user,parallel_tool_calls:T.parallelToolCalls,max_tokens:t,temperature:r,top_p:n,frequency_penalty:l,presence_penalty:s,response_format:(null==p?void 0:p.type)==="json"?null!=A?{type:"json_schema",json_schema:{schema:A.schema,strict:R,name:null!=(S=p.name)?S:"response",description:p.description}}:{type:"json_object"}:void 0,stop:d,seed:c,verbosity:T.textVerbosity,max_completion_tokens:T.maxCompletionTokens,store:T.store,metadata:T.metadata,prediction:T.prediction,reasoning_effort:C,service_tier:T.serviceTier,prompt_cache_key:T.promptCacheKey,prompt_cache_options:T.promptCacheOptions,prompt_cache_retention:T.promptCacheRetention,safety_identifier:T.safetyIdentifier,messages:j};null!=M.supportedReasoningEfforts&&null!=N.prompt_cache_retention&&(N.prompt_cache_retention=void 0,k.push({type:"unsupported",feature:"promptCacheRetention",details:"promptCacheRetention is not supported by GPT-6 and later models; use promptCacheOptions instead"})),E?("none"===C&&M.supportsNonReasoningParameters||(null!=N.temperature&&(N.temperature=void 0,k.push({type:"unsupported",feature:"temperature",details:"temperature is not supported for reasoning models"})),null!=N.top_p&&(N.top_p=void 0,k.push({type:"unsupported",feature:"topP",details:"topP is not supported for reasoning models"})),null!=N.logprobs&&(N.logprobs=void 0,k.push({type:"other",message:"logprobs is not supported for reasoning models"}))),null!=N.frequency_penalty&&(N.frequency_penalty=void 0,k.push({type:"unsupported",feature:"frequencyPenalty",details:"frequencyPenalty is not supported for reasoning models"})),null!=N.presence_penalty&&(N.presence_penalty=void 0,k.push({type:"unsupported",feature:"presencePenalty",details:"presencePenalty is not supported for reasoning models"})),null!=N.logit_bias&&(N.logit_bias=void 0,k.push({type:"other",message:"logitBias is not supported for reasoning models"})),null!=N.top_logprobs&&(N.top_logprobs=void 0,k.push({type:"other",message:"topLogprobs is not supported for reasoning models"})),null!=N.max_tokens&&(null==N.max_completion_tokens&&(N.max_completion_tokens=N.max_tokens),N.max_tokens=void 0)):(this.modelId.startsWith("gpt-4o-search-preview")||this.modelId.startsWith("gpt-4o-mini-search-preview"))&&null!=N.temperature&&(N.temperature=void 0,k.push({type:"unsupported",feature:"temperature",details:"temperature is not supported for the search preview models and has been removed."})),"flex"!==T.serviceTier||M.supportsFlexProcessing||(k.push({type:"unsupported",feature:"serviceTier",details:"flex processing is only available for o3, o4-mini, and gpt-5 models"}),N.service_tier=void 0),"priority"!==T.serviceTier&&"fast"!==T.serviceTier||M.supportsPriorityProcessing||(k.push({type:"unsupported",feature:"serviceTier",details:"priority processing is only available for supported models (gpt-4, gpt-5, gpt-5-mini, o3, o4-mini) and requires Enterprise access. gpt-5-nano is not supported"}),N.service_tier=void 0);let{tools:P,toolChoice:q,toolWarnings:$}=function({tools:e,toolChoice:t}){e=(null==e?void 0:e.length)?e:void 0;let o=[];if(null==e)return{tools:void 0,toolChoice:void 0,toolWarnings:o};let r=[];for(let t of e)if("function"===t.type){let e=I(t.inputSchema);o.push(...e.warnings),r.push({type:"function",function:{name:t.name,description:t.description,parameters:e.schema,...null!=t.strict?{strict:t.strict}:{}}})}else o.push({type:"unsupported",feature:`tool type: ${t.type}`});if(null==t)return{tools:r,toolChoice:void 0,toolWarnings:o};let n=t.type;switch(n){case"auto":case"none":case"required":return{tools:r,toolChoice:n,toolWarnings:o};case"tool":return{tools:r,toolChoice:{type:"function",function:{name:t.toolName}},toolWarnings:o};default:throw new a.UnsupportedFunctionalityError({functionality:`tool choice type: ${n}`})}}({tools:m,toolChoice:g});return{args:{...N,tools:P,tool_choice:q},warnings:[...k,...$]}}async doGenerate(e){var t,r,n,i,l,u,d,p;let{args:c,warnings:m}=await this.getArgs(e),{responseHeaders:g,value:h,rawValue:y}=await (0,o.postJsonToApi)({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:(0,o.combineHeaders)(null==(r=(t=this.config).headers)?void 0:r.call(t),e.headers),body:c,failedResponseHandler:s,successfulResponseHandler:(0,o.createJsonResponseHandler)(_),abortSignal:e.abortSignal,fetch:this.config.fetch}),w=h.choices[0];if(null==w)throw new a.InvalidResponseDataError({data:y,message:"Response did not contain any choices."});let z=[],I=null!=w.message.content&&w.message.content.length>0?w.message.content:null==(n=w.message.audio)?void 0:n.transcript;for(let e of(null!=I&&I.length>0&&z.push({type:"text",text:I}),null!=(i=w.message.tool_calls)?i:[]))z.push({type:"tool-call",toolCallId:e.id||(0,o.generateId)(),toolName:e.function.name,input:e.function.arguments});for(let e of null!=(l=w.message.annotations)?l:[])z.push({type:"source",sourceType:"url",id:(0,o.generateId)(),url:e.url_citation.url,title:e.url_citation.title});let x=null==(u=h.usage)?void 0:u.completion_tokens_details,S={openai:{}};return(null==x?void 0:x.accepted_prediction_tokens)!=null&&(S.openai.acceptedPredictionTokens=null==x?void 0:x.accepted_prediction_tokens),(null==x?void 0:x.rejected_prediction_tokens)!=null&&(S.openai.rejectedPredictionTokens=null==x?void 0:x.rejected_prediction_tokens),(null==(d=w.logprobs)?void 0:d.content)!=null&&(S.openai.logprobs=w.logprobs.content),{content:z,finishReason:{unified:b(w.finish_reason),raw:null!=(p=w.finish_reason)?p:void 0},usage:f(h.usage),request:{body:c},response:{...v(h),headers:g,body:y},warnings:m,providerMetadata:S}}async doStream(e){var t,r;let a,n,{args:i,warnings:l}=await this.getArgs(e),u={...i,stream:!0,stream_options:{include_usage:!0}},c=this.config.url({path:"/chat/completions",modelId:this.modelId}),{responseHeaders:m,value:g}=await (0,o.postJsonToApi)({url:c,headers:(0,o.combineHeaders)(null==(r=(t=this.config).headers)?void 0:r.call(t),e.headers),body:u,failedResponseHandler:s,successfulResponseHandler:(0,o.createEventSourceResponseHandler)(w),abortSignal:e.abortSignal,fetch:this.config.fetch}),h=await p({stream:g,getError:e=>"error"in e?e.error:void 0,isOutputChunk:S,url:c,requestBodyValues:u,responseHeaders:m}),y={unified:"other",raw:void 0},_=!1,z=!1,I={openai:{}};return{stream:h.pipeThrough(new TransformStream({start(e){a=new o.StreamingToolCallTracker(e,{generateId:o.generateId,typeValidation:"if-present"}),e.enqueue({type:"stream-start",warnings:l})},transform(t,r){var i,l,s,u,p,c;if(e.includeRawChunks&&r.enqueue({type:"raw",rawValue:t.rawValue}),!t.success){y={unified:"error",raw:void 0},r.enqueue({type:"error",error:t.error});return}let m=t.value;if("error"in m){y={unified:"error",raw:void 0},r.enqueue({type:"error",error:null!=(i=d(m.error))?i:m.error});return}!_&&Object.values(v(m)).some(Boolean)&&(_=!0,r.enqueue({type:"response-metadata",...v(m)})),null!=m.usage&&(n=m.usage,(null==(l=m.usage.completion_tokens_details)?void 0:l.accepted_prediction_tokens)!=null&&(I.openai.acceptedPredictionTokens=null==(s=m.usage.completion_tokens_details)?void 0:s.accepted_prediction_tokens),(null==(u=m.usage.completion_tokens_details)?void 0:u.rejected_prediction_tokens)!=null&&(I.openai.rejectedPredictionTokens=null==(p=m.usage.completion_tokens_details)?void 0:p.rejected_prediction_tokens));let g=m.choices[0];if((null==g?void 0:g.finish_reason)!=null&&(y={unified:b(g.finish_reason),raw:g.finish_reason}),(null==(c=null==g?void 0:g.logprobs)?void 0:c.content)!=null&&(I.openai.logprobs=g.logprobs.content),(null==g?void 0:g.delta)==null)return;let h=g.delta;if(null!=h.content&&(z||(r.enqueue({type:"text-start",id:"0"}),z=!0),r.enqueue({type:"text-delta",id:"0",delta:h.content})),null!=h.tool_calls)for(let e of h.tool_calls)a.processDelta(e);if(null!=h.annotations)for(let e of h.annotations)r.enqueue({type:"source",sourceType:"url",id:(0,o.generateId)(),url:e.url_citation.url,title:e.url_citation.title})},flush(e){z&&e.enqueue({type:"text-end",id:"0"}),a.flush(),e.enqueue({type:"finish",finishReason:y,usage:f(n),...null!=I?{providerMetadata:I}:{}})}})),request:{body:u},response:{headers:m}}}};function S(e){return!("error"in e)&&e.choices.some(e=>{let t=e.delta;return(null==t?void 0:t.content)!=null&&t.content.length>0||(null==t?void 0:t.tool_calls)!=null&&t.tool_calls.length>0||(null==t?void 0:t.annotations)!=null&&t.annotations.length>0})}function k(e){var t,r,a,n;if(null==e)return(0,o.createNullLanguageModelUsage)();let i=null!=(t=e.prompt_tokens)?t:0,l=null!=(r=e.completion_tokens)?r:0;return{inputTokens:{total:null!=(a=e.prompt_tokens)?a:void 0,noCache:i,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:null!=(n=e.completion_tokens)?n:void 0,text:l,reasoning:void 0},raw:e}}function T(e){switch(e){case"stop":return"stop";case"length":return"length";case"content_filter":return"content-filter";case"function_call":case"tool_calls":return"tool-calls";default:return"other"}}var M=(0,o.lazySchema)(()=>(0,o.zodSchema)(i.z.object({id:i.z.string().nullish(),created:i.z.number().nullish(),model:i.z.string().nullish(),choices:i.z.array(i.z.object({text:i.z.string(),finish_reason:i.z.string(),logprobs:i.z.object({tokens:i.z.array(i.z.string()),token_logprobs:i.z.array(i.z.number()),top_logprobs:i.z.array(i.z.record(i.z.string(),i.z.number())).nullish()}).nullish()})),usage:i.z.object({prompt_tokens:i.z.number(),completion_tokens:i.z.number(),total_tokens:i.z.number()}).nullish()}))),C=(0,o.lazySchema)(()=>(0,o.zodSchema)(i.z.union([i.z.object({id:i.z.string().nullish(),created:i.z.number().nullish(),model:i.z.string().nullish(),choices:i.z.array(i.z.object({text:i.z.string(),finish_reason:i.z.string().nullish(),index:i.z.number(),logprobs:i.z.object({tokens:i.z.array(i.z.string()),token_logprobs:i.z.array(i.z.number()),top_logprobs:i.z.array(i.z.record(i.z.string(),i.z.number())).nullish()}).nullish()})),usage:i.z.object({prompt_tokens:i.z.number(),completion_tokens:i.z.number(),total_tokens:i.z.number()}).nullish()}),l]))),E=(0,o.lazySchema)(()=>(0,o.zodSchema)(i.z.object({echo:i.z.boolean().optional(),logitBias:i.z.record(i.z.string(),i.z.number()).optional(),suffix:i.z.string().optional(),user:i.z.string().optional(),logprobs:i.z.union([i.z.boolean(),i.z.number()]).optional()}))),j=class e{constructor(e,t){this.specificationVersion="v4",this.supportedUrls={},this.modelId=e,this.config=t}get providerOptionsName(){return this.config.provider.split(".")[0].trim()}static[n.WORKFLOW_SERIALIZE](e){return(0,o.serializeModelOptions)({modelId:e.modelId,config:e.config})}static[n.WORKFLOW_DESERIALIZE](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}async getArgs({prompt:e,maxOutputTokens:t,temperature:r,topP:n,topK:i,frequencyPenalty:l,presencePenalty:s,stopSequences:u,responseFormat:d,tools:p,toolChoice:c,seed:m,providerOptions:g}){let h=[],f={...await (0,o.parseProviderOptions)({provider:"openai",providerOptions:g,schema:E}),...await (0,o.parseProviderOptions)({provider:this.providerOptionsName,providerOptions:g,schema:E})};null!=i&&h.push({type:"unsupported",feature:"topK"}),(null==p?void 0:p.length)&&h.push({type:"unsupported",feature:"tools"}),null!=c&&h.push({type:"unsupported",feature:"toolChoice"}),null!=d&&"text"!==d.type&&h.push({type:"unsupported",feature:"responseFormat",details:"JSON response format is not supported."});let{prompt:y,stopSequences:v}=function({prompt:e,user:t="user",assistant:o="assistant"}){let r="";for(let{role:n,content:i}of("system"===e[0].role&&(r+=`${e[0].content}
|
|
1
|
+
module.exports=[656446,e=>e.a(async(t,o)=>{try{var r=e.i(666680);e.i(347299);var a=e.i(115737),n=e.i(68356),i=e.i(983477),l=e.i(469719),s=e.i(687388),u=e.i(340698),d=e.i(640911),p=e.i(53748),c=e.i(268486),m=e.i(41444),g=e.i(264079),h=t([u]);[u]=h.then?(await h)():h;let S="thursday",{apiKeyName:k,label:T}=g.TEXT_MODEL_PROVIDERS.chatgpt,M=`${T} is not signed in — sign in from Settings › API keys.`,C=l.z.object({access:l.z.string().min(1),refresh:l.z.string().min(1),expires:l.z.number(),accountId:l.z.string().min(1),plan:l.z.string().nullable()}),E=globalThis,j=E.__chatgptRenewal??=(0,c.createKeyedLock)();async function f(e){let t=await fetch("https://auth.openai.com/oauth/token",{method:"POST",headers:{accept:"application/json","content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams({client_id:"app_EMoamEEZ73f0CkXaXp7hrann",...e})}).catch(e=>{d.logger.warn({cause:e},"chatgpt token endpoint unreachable"),(0,p.publicError)("Could not reach ChatGPT's sign-in")}),o=await t.json().catch(()=>null),r=o?.access_token;if(!t.ok||!r){let e=o?.error,r="string"==typeof e?[e,o?.error_description].filter(Boolean).join(": "):e?.message??e?.code??"";(0,p.publicError)(`ChatGPT's sign-in answered ${t.status}${r?`: ${r}`:""}`)}let a=function(e){try{let t=JSON.parse(Buffer.from(e.split(".")[1]??"","base64url").toString("utf8")),o=t["https://api.openai.com/auth"]??{};return{accountId:"string"==typeof o.chatgpt_account_id?o.chatgpt_account_id:null,plan:"string"==typeof o.chatgpt_plan_type?o.chatgpt_plan_type:null,expires:"number"==typeof t.exp?1e3*t.exp:null}}catch{return{accountId:null,plan:null,expires:null}}}(r),n=o?.refresh_token??e.refresh_token;a.accountId&&n||(0,p.publicError)("ChatGPT's sign-in came back without an account");let i=o?.expires_in;return{access:r,refresh:n,expires:"number"==typeof i?Date.now()+1e3*i:a.expires??Date.now(),accountId:a.accountId,plan:a.plan}}async function y(){let e=await (0,u.readConfig)(k);if(!e)return null;try{return C.parse(JSON.parse(e))}catch{return null}}let O=e=>e.expires-s.CHATGPT_SIGN_IN.renewBeforeMs<=Date.now();async function v(){let e=await y();return(e||(0,p.publicError)(M),O(e))?j(k,async()=>{let e=await y();if(e||(0,p.publicError)(M),!O(e))return e;try{let t=await f({grant_type:"refresh_token",refresh_token:e.refresh});return await (0,u.writeConfig)(k,JSON.stringify(t)),t}catch(e){(0,p.publicError)(`Could not renew the ${T} sign-in (${(0,m.errorToString)(e)}). If it keeps failing, sign in again from Settings › API keys.`)}}):e}async function b(){return(await y())?.plan??null}async function _(){let e;if(!await y())return null;try{e=await v()}catch(e){return{refused:(0,m.errorToString)(e)}}let t=await fetch("https://chatgpt.com/backend-api/wham/usage",{headers:{accept:"application/json",authorization:`Bearer ${e.access}`,"chatgpt-account-id":e.accountId,originator:S}}).catch(e=>{d.logger.warn({cause:e},"chatgpt usage unreachable"),(0,p.publicError)("Could not reach ChatGPT")}),o=await t.json().catch(()=>null);if(401===t.status||403===t.status)return{refused:o?.error?.message??o?.detail??`ChatGPT answered ${t.status}`};t.ok||(0,p.publicError)(`ChatGPT answered ${t.status}`);let r=[o?.rate_limit?.primary_window,o?.rate_limit?.secondary_window].filter(e=>"number"==typeof e?.used_percent).sort((e,t)=>(t.used_percent??0)-(e.used_percent??0))[0];r||(0,p.publicError)("ChatGPT did not say how much of the plan is used");let a=Math.round(r.used_percent??0),n=!!o?.rate_limit?.limit_reached,i=r.reset_at?1e3*r.reset_at:r.reset_after_seconds?Date.now()+1e3*r.reset_after_seconds:null;return{plan:o?.plan_type??e.plan,usedPercent:a,resetsAt:i?new Date(i).toISOString():null,spent:n,high:n||a>=s.CHATGPT_USAGE_HIGH}}async function w(e,t){let o=await v(),r=new Headers(t?.headers);if(r.set("authorization",`Bearer ${o.access}`),r.set("chatgpt-account-id",o.accountId),r.set("originator",S),t?.method!=="POST"||"string"!=typeof t.body||!String(e).endsWith("/responses"))return fetch(e,{...t,headers:r});let a=JSON.parse(t.body),n=!0===a.stream;a.prompt_cache_key&&r.set("session-id",a.prompt_cache_key);let i=[];a.input=(a.input??[]).filter(e=>"system"!==e.role&&"developer"!==e.role||(i.push("string"==typeof e.content?e.content:(e.content??[]).map(e=>e.text??"").join("\n")),!1)),a.instructions=[a.instructions,...i].filter(Boolean).join("\n\n")||"You are a helpful assistant.",a.store=!1,a.stream=!0,a.max_output_tokens=void 0,r.set("accept","text/event-stream");let l=await fetch(e,{...t,headers:r,body:JSON.stringify(a)});return 429===l.status?I(l):l.ok?n?l:x(l):z(l)}async function z(e){let t=await e.clone().json().catch(()=>null);if("string"!=typeof t?.detail)return e;let o=e.headers.get("retry-after");return Response.json({error:{message:t.detail}},{status:e.status,headers:o?{"retry-after":o}:{}})}async function I(e){let t=await e.text(),o={};try{o=JSON.parse(t).error??{}}catch{}if(!/usage_limit_reached|usage_not_included/.test(`${o.code} ${o.type}`)){let o=e.headers.get("retry-after");return new Response(t,{status:429,headers:{"content-type":"application/json",...o?{"retry-after":o}:{}}})}let r=o.resets_at?1e3*o.resets_at:o.resets_in_seconds?Date.now()+1e3*o.resets_in_seconds:null,a=o.plan_type?` on the ${o.plan_type} plan`:"",n=r?` It resets in ${(0,i.formatDistanceToNowStrict)(r)}.`:"";return Response.json({error:{message:`${T} usage limit reached${a}.${n}`,code:o.code??o.type}},{status:402})}async function x(e){let t=[],o=null,r=null;for(let a of(await e.text()).replaceAll("\r\n","\n").split("\n\n")){let e,n=a.split("\n").filter(e=>e.startsWith("data:")).map(e=>e.slice(5).trimStart()).join("\n");if(n&&"[DONE]"!==n){try{e=JSON.parse(n)}catch{continue}"response.output_item.done"===e.type?t.push(e.item):"response.completed"===e.type||"response.incomplete"===e.type?o=e.response??{}:"response.failed"===e.type?r=e.response?.error??{message:"The response failed"}:"error"===e.type&&(r={code:e.code,message:e.message})}}return r||!o?Response.json({error:{message:r?.message??"The stream ended before the response finished",code:r?.code}},{status:r?.code==="context_length_exceeded"?400:500}):Response.json({...o,output:o.output?.length?o.output:t})}e.s(["chatGptModel",0,function(e){let t=(0,a.createOpenAI)({baseURL:"https://chatgpt.com/backend-api/codex",apiKey:"signed-in",headers:{"OpenAI-Beta":"responses=experimental"},fetch:w}),o=(0,r.randomUUID)();return(0,n.wrapLanguageModel)({model:t.responses(e),middleware:{transformParams:async({params:e})=>({...e,providerOptions:{...e.providerOptions,openai:{promptCacheKey:o,...e.providerOptions?.openai,store:!1,includeWebSearchSources:!1}}})}})},"chatGptSearch",0,()=>(0,a.createOpenAI)({apiKey:"signed-in"}).tools.webSearch(),"readChatGptPlan",0,b,"readChatGptUsage",0,_]),o()}catch(e){o(e)}},!1),268486,e=>{"use strict";var t=e.i(41444);e.s(["createKeyedLock",0,function(){let e=new Map,o=new Map;return function(r,a){let n=e.get(r);n||(n=(0,t.PromiseChain)(),e.set(r,n)),o.set(r,(o.get(r)??0)+1);let i=()=>{let t=(o.get(r)??1)-1;t>0?o.set(r,t):(o.delete(r),e.delete(r))};return n(a).then(e=>(i(),e),e=>{throw i(),e})}}])},115737,e=>{"use strict";var t,o=e.i(847841),r=e.i(546888),a=e.i(376261),n=e.i(110567),i=e.i(469719),l=i.z.object({error:i.z.object({message:i.z.string(),type:i.z.string().nullish(),param:i.z.any().nullish(),code:i.z.union([i.z.string(),i.z.number()]).nullish()})}),s=(0,o.createJsonErrorResponseHandler)({errorSchema:l,errorToMessage:e=>e.error.message});function u(e){var t,o,r,a,n,i;let l,s=(i=e,null==(l=/^o(\d+)(?:-|$)/.exec(i))?void 0:Number(l[1])),u=function(e){let t=/^gpt-(\d+)(?:\.(\d+))?(?:-(.+))?$/.exec(e);if(null!=t)return{major:Number(t[1]),minor:null==t[2]?void 0:Number(t[2]),variant:t[3]}}(e),d=(null==u?void 0:u.minor)==null&&null!=(o=null==(t=null==u?void 0:u.variant)?void 0:t.startsWith("chat"))&&o,p=null!=(a=null==(r=null==u?void 0:u.variant)?void 0:r.startsWith("nano"))&&a,c=null!=u&&u.major>=6,m="gpt-6-sol"===e||"gpt-6-luna"===e,g=null!=s&&s>=3||null!=u&&u.major>=5&&!d,h=e.startsWith("gpt-4")||null!=u&&u.major>=5&&!p&&!d||null!=s&&s>=3,f=null!=s||null!=u&&u.major>=5&&!d,y=!c&&null!=u&&(u.major>5||5===u.major&&(null!=(n=u.minor)?n:0)>=1);return{supportsFlexProcessing:g,supportsPriorityProcessing:h,supportsConfigurationUpdate:c,supportsAsyncToolCalling:c,supportedReasoningEfforts:m?["none","low","medium","high","xhigh","max"]:c?["low","medium","high","xhigh","max"]:void 0,isReasoningModel:f,systemMessageMode:f?"developer":"system",supportsNonReasoningParameters:y}}function d(e){var t,r;let a=function(e){var t;let o=g(e);if(null==o)return;if("response.failed"===o.type){let e=g(o.response),t=g(null==e?void 0:e.error);return"string"==typeof(null==t?void 0:t.message)?{message:t.message,code:h(t.code),type:"response.failed"}:void 0}let r=null!=(t=g(o.error))?t:o;return"string"==typeof r.message&&(null!=g(o.error)||"string"==typeof r.type||"code"in r||"param"in r)?{message:r.message,code:h(r.code),type:"string"==typeof r.type?r.type:void 0}:void 0}(e);if(null==a)return;let n=function(e){var t,o;let r,a="number"==typeof(r="string"==typeof(t=e.code)&&/^\d{3}$/.test(t)?Number(t):t)&&Number.isInteger(o=r)&&o>=400&&o<=599?r:void 0;if(null!=a)return a;let n=[e.code,e.type].filter(e=>"string"==typeof e||"number"==typeof e).join(" ").toLowerCase();return["insufficient_quota","rate_limit"].some(e=>n.includes(e))?429:n.includes("authentication")?401:n.includes("permission")?403:n.includes("not_found")?404:["invalid","bad_request","context_length"].some(e=>n.includes(e))?400:n.includes("overload")?503:n.includes("timeout")?504:500}(a);return(0,o.createProviderStreamError)({message:a.message,type:null!=(t=a.type)?t:void 0,code:null!=(r=a.code)?r:void 0,statusCode:n,isRetryable:function(e,t){return"insufficient_quota"!==e.code&&"insufficient_quota"!==e.type&&(408===t||409===t||429===t||t>=500)}(a,n),data:e})}async function p({stream:e,getError:t,isOutputChunk:o,isAcceptedChunk:r,acceptedGraceMs:n=50,url:i,requestBodyValues:l,responseHeaders:s}){let[u,g]=e.tee(),h=u.getReader(),f=!1;try{let e=!1;for(;;){let u;if(e){let e=await m(h.read(),n);if(e.timedOut)return g;u=e.value}else u=await h.read();if(u.done)return g;let p=u.value;if(!p.success)return g;let y=t(p.value);if(null!=y)throw f=!0,c(h).catch(()=>{}),c(g.getReader()).catch(()=>{}),function({frame:e,url:t,requestBodyValues:o,responseHeaders:r}){var n,i;let l=d(e);return new a.APICallError({message:null!=(n=null==l?void 0:l.message)?n:"OpenAI stream failed before any output was generated",url:t,requestBodyValues:o,statusCode:null!=(i=null==l?void 0:l.statusCode)?i:500,responseHeaders:r,responseBody:JSON.stringify(e),data:e,isRetryable:null==l?void 0:l.isRetryable})}({frame:y,url:i,requestBodyValues:l,responseHeaders:s});if(o(p.value))return g;e||(null==r?void 0:r(p.value))!==!0||(e=!0)}}finally{f||(h.cancel().catch(()=>{}),h.releaseLock())}}async function c(e){try{for(;!(await e.read()).done;);}catch(e){}finally{e.releaseLock()}}async function m(e,t){let o,r=e.then(e=>({timedOut:!1,value:e}));try{let e=await Promise.race([r,new Promise(e=>{o=setTimeout(()=>e({timedOut:!0}),t)})]);return e.timedOut&&r.catch(()=>{}),e}finally{clearTimeout(o)}}function g(e){return"object"==typeof e&&null!=e?e:void 0}function h(e){return"string"==typeof e||"number"==typeof e?e:void 0}function f(e){var t,r,a,n,i,l,s,u;if(null==e)return(0,o.createNullLanguageModelUsage)();let d=null!=(t=e.prompt_tokens)?t:0,p=null!=(r=e.completion_tokens)?r:0,c=null!=(n=null==(a=e.prompt_tokens_details)?void 0:a.cached_tokens)?n:0,m=null!=(l=null==(i=e.prompt_tokens_details)?void 0:i.cache_write_tokens)?l:void 0,g=null!=(u=null==(s=e.completion_tokens_details)?void 0:s.reasoning_tokens)?u:0;return{inputTokens:{total:d,noCache:d-c-(null!=m?m:0),cacheRead:c,cacheWrite:m},outputTokens:{total:p,text:Math.max(0,p-g),reasoning:g},raw:e}}function y(e){var t;return null==(t=null==e?void 0:e.openai)?void 0:t.promptCacheBreakpoint}function v({id:e,model:t,created:r}){return(0,o.createLanguageModelResponseMetadata)({id:e,model:t,created:r||void 0})}function b(e){switch(e){case"stop":return"stop";case"length":return"length";case"content_filter":return"content-filter";case"function_call":case"tool_calls":return"tool-calls";default:return"other"}}var _=(0,o.lazySchema)(()=>(0,o.zodSchema)(i.z.object({id:i.z.string().nullish(),created:i.z.number().nullish(),model:i.z.string().nullish(),choices:i.z.array(i.z.object({message:i.z.object({role:i.z.literal("assistant").nullish(),content:i.z.string().nullish(),audio:i.z.object({transcript:i.z.string().nullish()}).nullish(),tool_calls:i.z.array(i.z.object({id:i.z.string().nullish(),type:i.z.literal("function"),function:i.z.object({name:i.z.string(),arguments:i.z.string()})})).nullish(),annotations:i.z.array(i.z.object({type:i.z.literal("url_citation"),url_citation:i.z.object({start_index:i.z.number(),end_index:i.z.number(),url:i.z.string(),title:i.z.string()})})).nullish()}),index:i.z.number(),logprobs:i.z.object({content:i.z.array(i.z.object({token:i.z.string(),logprob:i.z.number(),top_logprobs:i.z.array(i.z.object({token:i.z.string(),logprob:i.z.number()}))})).nullish()}).nullish(),finish_reason:i.z.string().nullish()})),usage:i.z.object({prompt_tokens:i.z.number().nullish(),completion_tokens:i.z.number().nullish(),total_tokens:i.z.number().nullish(),prompt_tokens_details:i.z.object({cached_tokens:i.z.number().nullish(),cache_write_tokens:i.z.number().nullish()}).nullish(),completion_tokens_details:i.z.object({reasoning_tokens:i.z.number().nullish(),accepted_prediction_tokens:i.z.number().nullish(),rejected_prediction_tokens:i.z.number().nullish()}).nullish()}).nullish()}))),w=(0,o.lazySchema)(()=>(0,o.zodSchema)(i.z.union([i.z.object({id:i.z.string().nullish(),created:i.z.number().nullish(),model:i.z.string().nullish(),choices:i.z.array(i.z.object({delta:i.z.object({role:i.z.enum(["assistant"]).nullish(),content:i.z.string().nullish(),tool_calls:i.z.array(i.z.object({index:i.z.number(),id:i.z.string().nullish(),type:i.z.literal("function").nullish(),function:i.z.object({name:i.z.string().nullish(),arguments:i.z.string().nullish()})})).nullish(),annotations:i.z.array(i.z.object({type:i.z.literal("url_citation"),url_citation:i.z.object({start_index:i.z.number(),end_index:i.z.number(),url:i.z.string(),title:i.z.string()})})).nullish()}).nullish(),logprobs:i.z.object({content:i.z.array(i.z.object({token:i.z.string(),logprob:i.z.number(),top_logprobs:i.z.array(i.z.object({token:i.z.string(),logprob:i.z.number()}))})).nullish()}).nullish(),finish_reason:i.z.string().nullish(),index:i.z.number()})),usage:i.z.object({prompt_tokens:i.z.number().nullish(),completion_tokens:i.z.number().nullish(),total_tokens:i.z.number().nullish(),prompt_tokens_details:i.z.object({cached_tokens:i.z.number().nullish(),cache_write_tokens:i.z.number().nullish()}).nullish(),completion_tokens_details:i.z.object({reasoning_tokens:i.z.number().nullish(),accepted_prediction_tokens:i.z.number().nullish(),rejected_prediction_tokens:i.z.number().nullish()}).nullish()}).nullish()}),l]))),z=(0,o.lazySchema)(()=>(0,o.zodSchema)(i.z.object({logitBias:i.z.record(i.z.coerce.number(),i.z.number()).optional(),logprobs:i.z.union([i.z.boolean(),i.z.number()]).optional(),parallelToolCalls:i.z.boolean().optional(),user:i.z.string().optional(),reasoningEffort:i.z.enum(["none","minimal","low","medium","high","xhigh","max"]).optional(),maxCompletionTokens:i.z.number().optional(),store:i.z.boolean().optional(),metadata:i.z.record(i.z.string().max(64),i.z.string().max(512)).optional(),prediction:i.z.record(i.z.string(),i.z.any()).optional(),serviceTier:i.z.enum(["auto","flex","priority","fast","ultrafast","default"]).optional(),strictJsonSchema:i.z.boolean().optional(),textVerbosity:i.z.enum(["low","medium","high"]).optional(),promptCacheKey:i.z.string().optional(),promptCacheOptions:i.z.object({mode:i.z.enum(["implicit","explicit"]).optional(),ttl:i.z.literal("30m").optional()}).optional(),promptCacheRetention:i.z.enum(["in_memory","24h"]).optional(),safetyIdentifier:i.z.string().optional(),systemMessageMode:i.z.enum(["system","developer","remove"]).optional(),forceReasoning:i.z.boolean().optional()})));function I(e){let t=!1,o=!1,r=i(e),n=[];return t&&n.push({type:"compatibility",feature:"JSON Schema propertyNames",details:"OpenAI does not support JSON Schema propertyNames. It was removed before sending the schema, so OpenAI will not enforce property-name constraints."}),o&&n.push({type:"compatibility",feature:"JSON Schema pattern with regex lookaround",details:"OpenAI does not support regex lookaround in JSON Schema patterns. The pattern was removed before sending the schema, so OpenAI will not enforce that constraint."}),{schema:r,warnings:n};function i(e){let r=e.propertyNames;if(null!=r){if("boolean"==typeof r||"string"!==r.type)throw new a.UnsupportedFunctionalityError({functionality:"JSON Schema propertyNames that does not use a string schema"});t=!0}let n={...e};for(let e of(delete n.propertyNames,null!=n.pattern&&function(e){let t=!1,o=!1;for(let r=0;r<e.length;r++){let a=e[r];if(t){t=!1;continue}if("\\"===a){t=!0;continue}if("["===a){o=!0;continue}if("]"===a){o=!1;continue}if(!o&&"("===a&&"?"===e[r+1]){let t=e[r+2];if("="===t||"!"===t||"<"===t&&("="===e[r+3]||"!"===e[r+3]))return!0}}return!1}(n.pattern)&&(delete n.pattern,o=!0),null!=n.properties&&(n.properties=l(n.properties)),null!=n.patternProperties&&(n.patternProperties=l(n.patternProperties)),null!=n.additionalProperties&&(n.additionalProperties=s(n.additionalProperties)),null!=n.additionalItems&&(n.additionalItems=s(n.additionalItems)),null!=n.items&&(n.items=Array.isArray(n.items)?n.items.map(s):s(n.items)),null!=n.contains&&(n.contains=s(n.contains)),null!=n.not&&(n.not=s(n.not)),null!=n.allOf&&(n.allOf=n.allOf.map(s)),null!=n.anyOf&&(n.anyOf=n.anyOf.map(s)),null!=n.oneOf&&(n.oneOf=n.oneOf.map(s)),null!=n.definitions&&(n.definitions=l(n.definitions)),null!=n.$defs&&(n.$defs=l(n.$defs)),null!=n.dependencies&&(n.dependencies=Object.fromEntries(Object.entries(n.dependencies).map(([e,t])=>[e,Array.isArray(t)?t:s(t)]))),["if","then","else"])){let t=n[e];null!=t&&(n[e]=s(t))}return n}function l(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,s(t)]))}function s(e){return"boolean"==typeof e?e:i(e)}}var x=class e{constructor(e,t){this.specificationVersion="v4",this.supportedUrls={"image/*":[/^https?:\/\/.*$/]},this.modelId=e,this.config=t}static[n.WORKFLOW_SERIALIZE](e){return(0,o.serializeModelOptions)({modelId:e.modelId,config:e.config})}static[n.WORKFLOW_DESERIALIZE](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}async getArgs({prompt:e,maxOutputTokens:t,temperature:r,topP:n,topK:i,frequencyPenalty:l,presencePenalty:s,stopSequences:d,responseFormat:p,seed:c,tools:m,toolChoice:g,reasoning:h,providerOptions:f}){var v,b,_,w,x,S;let k=[],T=null!=(v=await (0,o.parseProviderOptions)({provider:"openai",providerOptions:f,schema:z}))?v:{},M=u(this.modelId),C=null!=(b=T.reasoningEffort)?b:(0,o.isCustomReasoning)(h)?h:void 0;null==C||null==M.supportedReasoningEfforts||M.supportedReasoningEfforts.includes(C)||(k.push({type:"unsupported",feature:"reasoningEffort",details:`${this.modelId} only supports the following reasoning efforts: ${M.supportedReasoningEfforts.join(", ")}`}),C=void 0);let E=null!=(_=T.forceReasoning)?_:M.isReasoningModel;null!=i&&k.push({type:"unsupported",feature:"topK"});let{messages:j,warnings:O}=function({prompt:e,systemMessageMode:t="system"}){var r,n,i;let l=[],s=[];for(let{role:u,content:d,providerOptions:p}of e)switch(u){case"system":switch(t){case"system":{let e=y(p);l.push({role:"system",content:null==e?d:[{type:"text",text:d,prompt_cache_breakpoint:e}]});break}case"developer":{let e=y(p);l.push({role:"developer",content:null==e?d:[{type:"text",text:d,prompt_cache_breakpoint:e}]});break}case"remove":s.push({type:"other",message:"system messages are removed for this model"});break;default:throw Error(`Unsupported system message mode: ${t}`)}break;case"user":if(1===d.length&&"text"===d[0].type&&null==y(d[0].providerOptions)){l.push({role:"user",content:d[0].text});break}l.push({role:"user",content:d.map((e,t)=>{var r,n,i;switch(e.type){case"text":{let t=y(e.providerOptions);return{type:"text",text:e.text,...null!=t&&{prompt_cache_breakpoint:t}}}case"file":{let l=y(e.providerOptions);switch(e.data.type){case"reference":return{type:"file",file:{file_id:(0,o.resolveProviderReference)({reference:e.data.reference,provider:"openai"})},...null!=l&&{prompt_cache_breakpoint:l}};case"text":throw new a.UnsupportedFunctionalityError({functionality:"text file parts"});case"url":case"data":{let s=(0,o.getTopLevelMediaType)(e.mediaType);if("image"===s)return{type:"image_url",image_url:{url:"url"===e.data.type?e.data.url.toString():`data:${(0,o.resolveFullMediaType)({part:e})};base64,${(0,o.convertToBase64)(e.data.data)}`,detail:null==(n=null==(r=e.providerOptions)?void 0:r.openai)?void 0:n.imageDetail},...null!=l&&{prompt_cache_breakpoint:l}};if("audio"===s){if("url"===e.data.type)throw new a.UnsupportedFunctionalityError({functionality:"audio file parts with URLs"});let t=(0,o.resolveFullMediaType)({part:e});switch(t){case"audio/wav":return{type:"input_audio",input_audio:{data:(0,o.convertToBase64)(e.data.data),format:"wav"},...null!=l&&{prompt_cache_breakpoint:l}};case"audio/mp3":case"audio/mpeg":return{type:"input_audio",input_audio:{data:(0,o.convertToBase64)(e.data.data),format:"mp3"},...null!=l&&{prompt_cache_breakpoint:l}};default:throw new a.UnsupportedFunctionalityError({functionality:`audio content parts with media type ${t}`})}}{let r=(0,o.resolveFullMediaType)({part:e});if("application/pdf"!==r)throw new a.UnsupportedFunctionalityError({functionality:`file part media type ${r}`});if("url"===e.data.type)throw new a.UnsupportedFunctionalityError({functionality:"PDF file parts with URLs"});return{type:"file",file:{filename:null!=(i=e.filename)?i:`part-${t}.pdf`,file_data:`data:application/pdf;base64,${(0,o.convertToBase64)(e.data.data)}`},...null!=l&&{prompt_cache_breakpoint:l}}}}}}}})});break;case"assistant":{let e="",t=[],o=!1,r=[];for(let a of d)switch(a.type){case"text":{let r=y(a.providerOptions);e+=a.text,t.push({type:"text",text:a.text,...null!=r&&{prompt_cache_breakpoint:r}}),o||(o=null!=r);break}case"tool-call":r.push({id:a.toolCallId,type:"function",function:{name:a.toolName,arguments:JSON.stringify("object"!=typeof(i=a.input)||null===i||Array.isArray(i)?{}:i)}})}l.push({role:"assistant",content:o?t:r.length>0?e||null:e,tool_calls:r.length>0?r:void 0});break}case"tool":for(let e of d){let t;if("tool-approval-response"===e.type)continue;let o=e.output,a=null!=(r="content"===o.type?o.value.map(e=>y(e.providerOptions)).find(e=>null!=e):y(o.providerOptions))?r:y(e.providerOptions);switch(o.type){case"text":case"error-text":t=o.value;break;case"execution-denied":t=null!=(n=o.reason)?n:"Tool call execution denied.";break;case"content":case"json":case"error-json":t=JSON.stringify(o.value)}l.push({role:"tool",tool_call_id:e.toolCallId,content:null==a?t:[{type:"text",text:t,prompt_cache_breakpoint:a}]})}break;default:throw Error(`Unsupported role: ${u}`)}return{messages:l,warnings:s}}({prompt:e,systemMessageMode:null!=(w=T.systemMessageMode)?w:E?"developer":M.systemMessageMode});k.push(...O);let R=null==(x=T.strictJsonSchema)||x,A=(null==p?void 0:p.type)==="json"&&null!=p.schema?I(p.schema):void 0;null!=A&&k.push(...A.warnings);let N={model:this.modelId,logit_bias:T.logitBias,logprobs:!0===T.logprobs||"number"==typeof T.logprobs||void 0,top_logprobs:"number"==typeof T.logprobs?T.logprobs:"boolean"==typeof T.logprobs&&T.logprobs?0:void 0,user:T.user,parallel_tool_calls:T.parallelToolCalls,max_tokens:t,temperature:r,top_p:n,frequency_penalty:l,presence_penalty:s,response_format:(null==p?void 0:p.type)==="json"?null!=A?{type:"json_schema",json_schema:{schema:A.schema,strict:R,name:null!=(S=p.name)?S:"response",description:p.description}}:{type:"json_object"}:void 0,stop:d,seed:c,verbosity:T.textVerbosity,max_completion_tokens:T.maxCompletionTokens,store:T.store,metadata:T.metadata,prediction:T.prediction,reasoning_effort:C,service_tier:T.serviceTier,prompt_cache_key:T.promptCacheKey,prompt_cache_options:T.promptCacheOptions,prompt_cache_retention:T.promptCacheRetention,safety_identifier:T.safetyIdentifier,messages:j};null!=M.supportedReasoningEfforts&&null!=N.prompt_cache_retention&&(N.prompt_cache_retention=void 0,k.push({type:"unsupported",feature:"promptCacheRetention",details:"promptCacheRetention is not supported by GPT-6 and later models; use promptCacheOptions instead"})),E?("none"===C&&M.supportsNonReasoningParameters||(null!=N.temperature&&(N.temperature=void 0,k.push({type:"unsupported",feature:"temperature",details:"temperature is not supported for reasoning models"})),null!=N.top_p&&(N.top_p=void 0,k.push({type:"unsupported",feature:"topP",details:"topP is not supported for reasoning models"})),null!=N.logprobs&&(N.logprobs=void 0,k.push({type:"other",message:"logprobs is not supported for reasoning models"}))),null!=N.frequency_penalty&&(N.frequency_penalty=void 0,k.push({type:"unsupported",feature:"frequencyPenalty",details:"frequencyPenalty is not supported for reasoning models"})),null!=N.presence_penalty&&(N.presence_penalty=void 0,k.push({type:"unsupported",feature:"presencePenalty",details:"presencePenalty is not supported for reasoning models"})),null!=N.logit_bias&&(N.logit_bias=void 0,k.push({type:"other",message:"logitBias is not supported for reasoning models"})),null!=N.top_logprobs&&(N.top_logprobs=void 0,k.push({type:"other",message:"topLogprobs is not supported for reasoning models"})),null!=N.max_tokens&&(null==N.max_completion_tokens&&(N.max_completion_tokens=N.max_tokens),N.max_tokens=void 0)):(this.modelId.startsWith("gpt-4o-search-preview")||this.modelId.startsWith("gpt-4o-mini-search-preview"))&&null!=N.temperature&&(N.temperature=void 0,k.push({type:"unsupported",feature:"temperature",details:"temperature is not supported for the search preview models and has been removed."})),"flex"!==T.serviceTier||M.supportsFlexProcessing||(k.push({type:"unsupported",feature:"serviceTier",details:"flex processing is only available for o3, o4-mini, and gpt-5 models"}),N.service_tier=void 0),"priority"!==T.serviceTier&&"fast"!==T.serviceTier||M.supportsPriorityProcessing||(k.push({type:"unsupported",feature:"serviceTier",details:"priority processing is only available for supported models (gpt-4, gpt-5, gpt-5-mini, o3, o4-mini) and requires Enterprise access. gpt-5-nano is not supported"}),N.service_tier=void 0);let{tools:P,toolChoice:q,toolWarnings:$}=function({tools:e,toolChoice:t}){e=(null==e?void 0:e.length)?e:void 0;let o=[];if(null==e)return{tools:void 0,toolChoice:void 0,toolWarnings:o};let r=[];for(let t of e)if("function"===t.type){let e=I(t.inputSchema);o.push(...e.warnings),r.push({type:"function",function:{name:t.name,description:t.description,parameters:e.schema,...null!=t.strict?{strict:t.strict}:{}}})}else o.push({type:"unsupported",feature:`tool type: ${t.type}`});if(null==t)return{tools:r,toolChoice:void 0,toolWarnings:o};let n=t.type;switch(n){case"auto":case"none":case"required":return{tools:r,toolChoice:n,toolWarnings:o};case"tool":return{tools:r,toolChoice:{type:"function",function:{name:t.toolName}},toolWarnings:o};default:throw new a.UnsupportedFunctionalityError({functionality:`tool choice type: ${n}`})}}({tools:m,toolChoice:g});return{args:{...N,tools:P,tool_choice:q},warnings:[...k,...$]}}async doGenerate(e){var t,r,n,i,l,u,d,p;let{args:c,warnings:m}=await this.getArgs(e),{responseHeaders:g,value:h,rawValue:y}=await (0,o.postJsonToApi)({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:(0,o.combineHeaders)(null==(r=(t=this.config).headers)?void 0:r.call(t),e.headers),body:c,failedResponseHandler:s,successfulResponseHandler:(0,o.createJsonResponseHandler)(_),abortSignal:e.abortSignal,fetch:this.config.fetch}),w=h.choices[0];if(null==w)throw new a.InvalidResponseDataError({data:y,message:"Response did not contain any choices."});let z=[],I=null!=w.message.content&&w.message.content.length>0?w.message.content:null==(n=w.message.audio)?void 0:n.transcript;for(let e of(null!=I&&I.length>0&&z.push({type:"text",text:I}),null!=(i=w.message.tool_calls)?i:[]))z.push({type:"tool-call",toolCallId:e.id||(0,o.generateId)(),toolName:e.function.name,input:e.function.arguments});for(let e of null!=(l=w.message.annotations)?l:[])z.push({type:"source",sourceType:"url",id:(0,o.generateId)(),url:e.url_citation.url,title:e.url_citation.title});let x=null==(u=h.usage)?void 0:u.completion_tokens_details,S={openai:{}};return(null==x?void 0:x.accepted_prediction_tokens)!=null&&(S.openai.acceptedPredictionTokens=null==x?void 0:x.accepted_prediction_tokens),(null==x?void 0:x.rejected_prediction_tokens)!=null&&(S.openai.rejectedPredictionTokens=null==x?void 0:x.rejected_prediction_tokens),(null==(d=w.logprobs)?void 0:d.content)!=null&&(S.openai.logprobs=w.logprobs.content),{content:z,finishReason:{unified:b(w.finish_reason),raw:null!=(p=w.finish_reason)?p:void 0},usage:f(h.usage),request:{body:c},response:{...v(h),headers:g,body:y},warnings:m,providerMetadata:S}}async doStream(e){var t,r;let a,n,{args:i,warnings:l}=await this.getArgs(e),u={...i,stream:!0,stream_options:{include_usage:!0}},c=this.config.url({path:"/chat/completions",modelId:this.modelId}),{responseHeaders:m,value:g}=await (0,o.postJsonToApi)({url:c,headers:(0,o.combineHeaders)(null==(r=(t=this.config).headers)?void 0:r.call(t),e.headers),body:u,failedResponseHandler:s,successfulResponseHandler:(0,o.createEventSourceResponseHandler)(w),abortSignal:e.abortSignal,fetch:this.config.fetch}),h=await p({stream:g,getError:e=>"error"in e?e.error:void 0,isOutputChunk:S,url:c,requestBodyValues:u,responseHeaders:m}),y={unified:"other",raw:void 0},_=!1,z=!1,I={openai:{}};return{stream:h.pipeThrough(new TransformStream({start(e){a=new o.StreamingToolCallTracker(e,{generateId:o.generateId,typeValidation:"if-present"}),e.enqueue({type:"stream-start",warnings:l})},transform(t,r){var i,l,s,u,p,c;if(e.includeRawChunks&&r.enqueue({type:"raw",rawValue:t.rawValue}),!t.success){y={unified:"error",raw:void 0},r.enqueue({type:"error",error:t.error});return}let m=t.value;if("error"in m){y={unified:"error",raw:void 0},r.enqueue({type:"error",error:null!=(i=d(m.error))?i:m.error});return}!_&&Object.values(v(m)).some(Boolean)&&(_=!0,r.enqueue({type:"response-metadata",...v(m)})),null!=m.usage&&(n=m.usage,(null==(l=m.usage.completion_tokens_details)?void 0:l.accepted_prediction_tokens)!=null&&(I.openai.acceptedPredictionTokens=null==(s=m.usage.completion_tokens_details)?void 0:s.accepted_prediction_tokens),(null==(u=m.usage.completion_tokens_details)?void 0:u.rejected_prediction_tokens)!=null&&(I.openai.rejectedPredictionTokens=null==(p=m.usage.completion_tokens_details)?void 0:p.rejected_prediction_tokens));let g=m.choices[0];if((null==g?void 0:g.finish_reason)!=null&&(y={unified:b(g.finish_reason),raw:g.finish_reason}),(null==(c=null==g?void 0:g.logprobs)?void 0:c.content)!=null&&(I.openai.logprobs=g.logprobs.content),(null==g?void 0:g.delta)==null)return;let h=g.delta;if(null!=h.content&&(z||(r.enqueue({type:"text-start",id:"0"}),z=!0),r.enqueue({type:"text-delta",id:"0",delta:h.content})),null!=h.tool_calls)for(let e of h.tool_calls)a.processDelta(e);if(null!=h.annotations)for(let e of h.annotations)r.enqueue({type:"source",sourceType:"url",id:(0,o.generateId)(),url:e.url_citation.url,title:e.url_citation.title})},flush(e){z&&e.enqueue({type:"text-end",id:"0"}),a.flush(),e.enqueue({type:"finish",finishReason:y,usage:f(n),...null!=I?{providerMetadata:I}:{}})}})),request:{body:u},response:{headers:m}}}};function S(e){return!("error"in e)&&e.choices.some(e=>{let t=e.delta;return(null==t?void 0:t.content)!=null&&t.content.length>0||(null==t?void 0:t.tool_calls)!=null&&t.tool_calls.length>0||(null==t?void 0:t.annotations)!=null&&t.annotations.length>0})}function k(e){var t,r,a,n;if(null==e)return(0,o.createNullLanguageModelUsage)();let i=null!=(t=e.prompt_tokens)?t:0,l=null!=(r=e.completion_tokens)?r:0;return{inputTokens:{total:null!=(a=e.prompt_tokens)?a:void 0,noCache:i,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:null!=(n=e.completion_tokens)?n:void 0,text:l,reasoning:void 0},raw:e}}function T(e){switch(e){case"stop":return"stop";case"length":return"length";case"content_filter":return"content-filter";case"function_call":case"tool_calls":return"tool-calls";default:return"other"}}var M=(0,o.lazySchema)(()=>(0,o.zodSchema)(i.z.object({id:i.z.string().nullish(),created:i.z.number().nullish(),model:i.z.string().nullish(),choices:i.z.array(i.z.object({text:i.z.string(),finish_reason:i.z.string(),logprobs:i.z.object({tokens:i.z.array(i.z.string()),token_logprobs:i.z.array(i.z.number()),top_logprobs:i.z.array(i.z.record(i.z.string(),i.z.number())).nullish()}).nullish()})),usage:i.z.object({prompt_tokens:i.z.number(),completion_tokens:i.z.number(),total_tokens:i.z.number()}).nullish()}))),C=(0,o.lazySchema)(()=>(0,o.zodSchema)(i.z.union([i.z.object({id:i.z.string().nullish(),created:i.z.number().nullish(),model:i.z.string().nullish(),choices:i.z.array(i.z.object({text:i.z.string(),finish_reason:i.z.string().nullish(),index:i.z.number(),logprobs:i.z.object({tokens:i.z.array(i.z.string()),token_logprobs:i.z.array(i.z.number()),top_logprobs:i.z.array(i.z.record(i.z.string(),i.z.number())).nullish()}).nullish()})),usage:i.z.object({prompt_tokens:i.z.number(),completion_tokens:i.z.number(),total_tokens:i.z.number()}).nullish()}),l]))),E=(0,o.lazySchema)(()=>(0,o.zodSchema)(i.z.object({echo:i.z.boolean().optional(),logitBias:i.z.record(i.z.string(),i.z.number()).optional(),suffix:i.z.string().optional(),user:i.z.string().optional(),logprobs:i.z.union([i.z.boolean(),i.z.number()]).optional()}))),j=class e{constructor(e,t){this.specificationVersion="v4",this.supportedUrls={},this.modelId=e,this.config=t}get providerOptionsName(){return this.config.provider.split(".")[0].trim()}static[n.WORKFLOW_SERIALIZE](e){return(0,o.serializeModelOptions)({modelId:e.modelId,config:e.config})}static[n.WORKFLOW_DESERIALIZE](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}async getArgs({prompt:e,maxOutputTokens:t,temperature:r,topP:n,topK:i,frequencyPenalty:l,presencePenalty:s,stopSequences:u,responseFormat:d,tools:p,toolChoice:c,seed:m,providerOptions:g}){let h=[],f={...await (0,o.parseProviderOptions)({provider:"openai",providerOptions:g,schema:E}),...await (0,o.parseProviderOptions)({provider:this.providerOptionsName,providerOptions:g,schema:E})};null!=i&&h.push({type:"unsupported",feature:"topK"}),(null==p?void 0:p.length)&&h.push({type:"unsupported",feature:"tools"}),null!=c&&h.push({type:"unsupported",feature:"toolChoice"}),null!=d&&"text"!==d.type&&h.push({type:"unsupported",feature:"responseFormat",details:"JSON response format is not supported."});let{prompt:y,stopSequences:v}=function({prompt:e,user:t="user",assistant:o="assistant"}){let r="";for(let{role:n,content:i}of("system"===e[0].role&&(r+=`${e[0].content}
|
|
2
2
|
|
|
3
3
|
`,e=e.slice(1)),e))switch(n){case"system":throw new a.InvalidPromptError({message:"Unexpected system message in prompt: ${content}",prompt:e});case"user":{let e=i.map(e=>{if("text"===e.type)return e.text}).filter(Boolean).join("");r+=`${t}:
|
|
4
4
|
${e}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[333925,e=>{"use strict";let s=process.env.THURSDAY_APP_DIR?.trim()||process.cwd(),t=process.env.THURSDAY_HOME?.trim()||process.cwd(),r=process.env.THURSDAY_URL?.trim()||`http://localhost:${process.env.PORT?.trim()||3e3}`,o=`${t}/local.db`,a=`file:${o}`,_=".ai-workspace",E={workspace:_,artifacts:"artifacts",projects:"projects",scratch:"scratch",bots:"bots",output:".output",signIns:".sign-ins",skills:{default:"skills",custom:`${_}/.agents/skills`,own:".agents/skills",runtime:"runtime",seeds:"seed-skills"}},i="artifact";e.s(["APP_DIR",0,s,"APP_NAME",0,"Thursday","APP_URL",0,r,"ARTIFACT_SKILL",0,i,"BOT_MEMORY_LIMITS",0,{files:20,chars:1e4},"BOT_RUN",0,{steps:100,compactAt:5e5,compactHeadroom:.8,summaryWords:{min:600,max:3e3,perTokens:200},participants:12,concurrent:4,turns:120,queuedMessages:200,silenceMs:3e5,overflowShrink:.6,retryMs:1e4,compactFiles:40},"BOT_WORK",0,{open:5,recent:5,said:80,files:2,reads:2,asked:400,readChars:4e3},"BROWSER_CLI",0,{readMs:15e3,loadMs:3e4},"BROWSER_GONE_MS",0,1e4,"BROWSER_VIEWPORT",0,"700x700","CALL_EXEC_TIMEOUT_MS",0,15e3,"CALL_RELAY",0,{quietMs:2e3,perTurn:3,readMs:15e3,chars:600},"CHATGPT_SIGN_IN",0,{waitMs:6e5,renewBeforeMs:3e5},"COMMON_VALIDATE",0,{name:{max:16},shortDescription:{max:60},description:{max:100},prompt:{max:4e3}},"CONNECTED_TOOL_TIMEOUT_MS",0,6e5,"DATA_DIR",0,t,"DB_FILE_NAME",0,a,"DB_PATH",0,o,"DECK",0,{slides:30,shotsMs:9e4},"EXEC_KILL_GRACE_MS",0,5e3,"EXEC_TIMEOUT_MS",0,18e4,"FINISHED_NOTICE",0,{rows:5,shown:1,words:240},"FULL_RESULT_LINES",0,400,"GATEWAY_CATALOG_MS",0,6e5,"GIVEN_FILES",0,{dir:"inbox",maxBytes:0x1900000,perMessage:8},"HISTORY_KEEP",0,{forMs:7776e6,sweepEveryMs:216e5},"INBOX_FINISHED",0,5,"IS_DEV",0,!1,"JOB_FOLDER_WALK",0,500,"LIVE_CALL",0,{startupMs:3e4,closeMs:15e3,transcriptGapMs:1500,transcriptSaveMs:500,appendMs:15e3,backendOutputTokens:4096,reasoningCheckMs:5e3,keyCheckMs:5e3},"LOOK",0,{maxBytes:4194304},"MARKETING_SKILL",0,"marketing","MAX_PINNED_TOOLS",0,10,"MCP_IDLE_MS",0,18e5,"MEMORY_LIMITS",0,{facts:400,factsPerNote:50,descriptionChars:100},"PATHS",0,E,"PROMPT_BUDGET",0,6e3,"PROMPT_LINE",0,{skill:90,toolArgs:30,jobOutcome:160,botMemory:100,threadStatus:200,routineRequest:300,routineOutcome:200},"REACH",0,{pollSeconds:50,retryMs:5e3,idleMs:6e5,messages:40,trimTo:30,oldChars:1e3,files:3,fileBytes:0x2d00000,rateRetries:3,rateWaitMs:3e4,codeDigits:4,held:5,pictures:9,drawMs:6e4,lookMs:2e3},"RECENT_CALL",0,{rows:20,tokens:600},"ROUTINE",0,{tickMs:3e4,max:12,minHours:1,runsShown:5},"SEARCH",0,{sources:3,excerptChars:1200,timeoutMs:3e4},"SIGNAL_PACE_MS",0,150,"SKILLS_FOLDED",0,{design:i,"picture-book":i,"interactive-page":i},"SKILL_FILES_LISTED",0,50,"STUDIO_SERVER",0,"studio","TEXT_CALL",0,{maxSteps:12,model:"text",autoTurns:10},"THREAD_LABEL_REACH",0,20,"THREAD_STATUS_LIMIT",0,10,"TOOL_OUTPUT",0,{max:8e3,head:5500,tail:1500},"TOOL_SEARCH_SCHEMAS",0,8,"TRAVEL_SKILL",0,"travel","WORKSPACE_KEEP",0,{forMs:2592e5,sweepEveryMs:36e5}])}];
|
|
1
|
+
module.exports=[333925,e=>{"use strict";let s=process.env.THURSDAY_APP_DIR?.trim()||process.cwd(),t=process.env.THURSDAY_HOME?.trim()||process.cwd(),r=process.env.THURSDAY_URL?.trim()||`http://localhost:${process.env.PORT?.trim()||3e3}`,o=`${t}/local.db`,a=`file:${o}`,_=".ai-workspace",E={workspace:_,artifacts:"artifacts",projects:"projects",scratch:"scratch",bots:"bots",output:".output",signIns:".sign-ins",skills:{default:"skills",custom:`${_}/.agents/skills`,own:".agents/skills",runtime:"runtime",seeds:"seed-skills"}},i="artifact";e.s(["APP_DIR",0,s,"APP_NAME",0,"Thursday","APP_URL",0,r,"ARTIFACT_SKILL",0,i,"BOT_MEMORY_LIMITS",0,{files:20,chars:1e4},"BOT_RUN",0,{steps:100,compactAt:5e5,compactHeadroom:.8,summaryWords:{min:600,max:3e3,perTokens:200},participants:12,concurrent:4,turns:120,queuedMessages:200,silenceMs:3e5,overflowShrink:.6,retryMs:1e4,compactFiles:40},"BOT_WORK",0,{open:5,recent:5,said:80,files:2,reads:2,asked:400,readChars:4e3},"BROWSER_CLI",0,{readMs:15e3,loadMs:3e4},"BROWSER_GONE_MS",0,1e4,"BROWSER_VIEWPORT",0,"700x700","CALL_EXEC_TIMEOUT_MS",0,15e3,"CALL_RELAY",0,{quietMs:2e3,perTurn:3,readMs:15e3,chars:600},"CHATGPT_SIGN_IN",0,{waitMs:6e5,renewBeforeMs:3e5},"COMMON_VALIDATE",0,{name:{max:16},shortDescription:{max:60},description:{max:100},prompt:{max:4e3}},"CONNECTED_TOOL_TIMEOUT_MS",0,6e5,"DATA_DIR",0,t,"DB_FILE_NAME",0,a,"DB_PATH",0,o,"DECK",0,{slides:30,shotsMs:9e4},"EXEC_KILL_GRACE_MS",0,5e3,"EXEC_TIMEOUT_MS",0,18e4,"FINISHED_NOTICE",0,{rows:5,shown:1,words:240},"FULL_RESULT_LINES",0,400,"GATEWAY_CATALOG_MS",0,6e5,"GIVEN_FILES",0,{dir:"inbox",maxBytes:0x1900000,perMessage:8},"HISTORY_KEEP",0,{forMs:7776e6,sweepEveryMs:216e5},"INBOX_FINISHED",0,5,"IS_DEV",0,!1,"JOB_FOLDER_WALK",0,500,"LIVE_CALL",0,{startupMs:3e4,closeMs:15e3,transcriptGapMs:1500,transcriptSaveMs:500,appendMs:15e3,backendOutputTokens:4096,reasoningCheckMs:5e3,keyCheckMs:5e3,openingHoldMs:3e3},"LOOK",0,{maxBytes:4194304},"MARKETING_SKILL",0,"marketing","MAX_PINNED_TOOLS",0,10,"MCP_IDLE_MS",0,18e5,"MEMORY_LIMITS",0,{facts:400,factsPerNote:50,descriptionChars:100},"PATHS",0,E,"PROMPT_BUDGET",0,6e3,"PROMPT_LINE",0,{skill:90,toolArgs:30,jobOutcome:160,botMemory:100,threadStatus:200,routineRequest:300,routineOutcome:200},"REACH",0,{pollSeconds:50,retryMs:5e3,idleMs:6e5,messages:40,trimTo:30,oldChars:1e3,files:3,fileBytes:0x2d00000,rateRetries:3,rateWaitMs:3e4,codeDigits:4,held:5,pictures:9,drawMs:6e4,lookMs:2e3},"RECENT_CALL",0,{rows:20,tokens:600},"ROUTINE",0,{tickMs:3e4,max:12,minHours:1,runsShown:5},"SEARCH",0,{sources:3,excerptChars:1200,timeoutMs:3e4},"SIGNAL_PACE_MS",0,150,"SKILLS_FOLDED",0,{design:i,"picture-book":i,"interactive-page":i},"SKILL_FILES_LISTED",0,50,"STUDIO_SERVER",0,"studio","TEXT_CALL",0,{maxSteps:12,model:"text",autoTurns:10},"THREAD_LABEL_REACH",0,20,"THREAD_STATUS_LIMIT",0,10,"TOOL_OUTPUT",0,{max:8e3,head:5500,tail:1500},"TOOL_SEARCH_SCHEMAS",0,8,"TRAVEL_SKILL",0,"travel","WORKSPACE_KEEP",0,{forMs:2592e5,sweepEveryMs:36e5}])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=config_ts_1g4sz5o._.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
module.exports=[742712,e=>e.a(async(t,a)=>{try{var r=e.i(666680),d=e.i(875225),n=e.i(
|
|
1
|
+
module.exports=[742712,e=>e.a(async(t,a)=>{try{var r=e.i(666680),d=e.i(875225),n=e.i(349129),l=e.i(260338),i=e.i(518899),o=e.i(380690),s=e.i(687388),h=e.i(528790),u=e.i(613240),b=e.i(353885),c=e.i(53748),T=e.i(944971),p=e.i(889034),w=t([h]);[h]=w.then?(await w)():w;let H=()=>o.appEvents.emit({type:"threads"}),L=e=>"done"===e||"cancelled"===e,Y=(e,t,a)=>`message:${(0,r.createHash)("sha256").update(JSON.stringify([e,t,a])).digest("hex")}`;async function f(e,t,a){let[r]=await e.select({id:u.threadWorkTable.id}).from(u.threadWorkTable).where((0,d.and)((0,d.eq)(u.threadWorkTable.threadId,t),(0,d.eq)(u.threadWorkTable.state,"external"),(0,d.eq)(u.threadWorkTable.caller,a))).limit(1);return!!r}async function y(e,t,a){let r=a.flatMap(e=>"assistant"===e.role&&Array.isArray(e.content)?e.content.flatMap(e=>"tool-call"===e.type&&e.toolName===b.TOOL_NAMES.send_message?[e.toolCallId]:[]):[]),n=r.map(a=>Y(e,t,a)),l=new Map;if(!n.length)return l;let[i,o]=await Promise.all([h.database.select({key:u.threadWorkTable.id,to:u.threadWorkTable.bot}).from(u.threadWorkTable).where((0,d.and)((0,d.eq)(u.threadWorkTable.threadId,e),(0,d.inArray)(u.threadWorkTable.id,n))),h.database.select({key:u.threadDeliveryTable.key,to:u.threadWorkTable.bot}).from(u.threadDeliveryTable).innerJoin(u.threadWorkTable,(0,d.eq)(u.threadWorkTable.id,u.threadDeliveryTable.workId)).where((0,d.and)((0,d.eq)(u.threadDeliveryTable.threadId,e),(0,d.inArray)(u.threadDeliveryTable.key,n)))]),s=new Map([...i,...o].map(e=>[e.key,e.to]));for(let[e,t]of r.entries()){let a=s.get(n[e]);a&&l.set(t,{messageId:n[e],to:a})}return l}async function g(e,t,a){let[r]=await e.select({seq:(0,l.max)(u.threadMessageTable.seq)}).from(u.threadMessageTable).where((0,d.eq)(u.threadMessageTable.threadId,t)),n=(r?.seq??-1)+1;return await e.insert(u.threadMessageTable).values({threadId:t,seq:n,...a}),n}let j=(e,t)=>({bot:e.bot,parent:e.id,role:"user",content:`${t} ${p.RESUME_CHECK}`,note:!0});async function m(e,t){await k(e.threadId,j(e,t))}async function k(e,t){let a=await h.database.transaction(a=>g(a,e,t));return H(),a}async function q(e){return h.database.select().from(u.threadWorkTable).where((0,d.eq)(u.threadWorkTable.threadId,e)).orderBy(u.threadWorkTable.createdAt,u.threadWorkTable.id)}async function I(e,t){let[a]=await h.database.select({budget:i.sql`min(nullif(${u.threadWorkTable.contextBudget}, 0))`}).from(u.threadWorkTable).where((0,d.and)((0,d.eq)(u.threadWorkTable.threadId,e),(0,d.eq)(u.threadWorkTable.bot,t)));return a?.budget??void 0}async function W(e,t){await h.database.transaction(async a=>{await A(a,e),await a.update(u.threadWorkTable).set({contextBudget:t}).where((0,d.eq)(u.threadWorkTable.id,e.id))}),H()}async function A(e,t){let[a]=await e.select().from(u.threadWorkTable).where((0,d.and)((0,d.eq)(u.threadWorkTable.id,t.id),(0,d.eq)(u.threadWorkTable.generation,t.generation),(0,d.eq)(u.threadWorkTable.state,"running")));return a||(0,c.publicError)("This turn is no longer running."),a}async function R(e,t){await e.insert(u.threadDeliveryTable).values(t).onConflictDoNothing();let[a]=await e.select({bot:u.threadWorkTable.bot}).from(u.threadWorkTable).where((0,d.eq)(u.threadWorkTable.id,t.workId));a&&await f(e,t.threadId,a.bot)||await e.update(u.threadWorkTable).set({state:"queued"}).where((0,d.and)((0,d.eq)(u.threadWorkTable.id,t.workId),(0,d.inArray)(u.threadWorkTable.state,["waiting","done"])))}async function v(e,t){let a={...p.RoomMessageSchema.parse(t),id:t.id};"question"===a.kind&&a.to!==p.ROOM_THURSDAY&&(0,c.publicError)("Address user questions to Thursday; use a message to contact another bot."),a.options?.length&&"question"!==a.kind&&(0,c.publicError)("Offer answer choices only with a user question.");let r=await h.database.transaction(async t=>{await A(t,e);let r=Y(e.threadId,e.bot,a.id),[n]=await t.select().from(u.threadWorkTable).where((0,d.eq)(u.threadWorkTable.id,r));if(n)return{messageId:r,to:n.bot};let[l]=await t.select({to:u.threadWorkTable.bot}).from(u.threadDeliveryTable).innerJoin(u.threadWorkTable,(0,d.eq)(u.threadWorkTable.id,u.threadDeliveryTable.workId)).where((0,d.eq)(u.threadDeliveryTable.key,r));if(l)return{messageId:r,to:l.to};a.to===e.bot&&(0,c.publicError)("Continue your own work directly; choose another recipient."),a.to!==p.ROOM_THURSDAY&&a.to===e.caller&&(0,c.publicError)(`${a.to} is who you are answering. End your turn and your final text goes to ${a.to}: the answer, or the question you need settled first.`);let i=await t.select().from(u.threadWorkTable).where((0,d.eq)(u.threadWorkTable.threadId,e.threadId)),o=i.filter(t=>t.bot===a.to&&t.caller===e.bot&&a.to!==p.ROOM_THURSDAY&&!L(t.state)),h=o.find(e=>"running"===e.state)??o[0];if(h){let n=await f(t,e.threadId,a.to);return await R(t,{key:r,threadId:e.threadId,workId:h.id,speaker:e.bot,text:a.text}),await t.update(u.threadTable).set({wrapped:!1,updatedAt:new Date}).where((0,d.eq)(u.threadTable.id,e.threadId)),{messageId:r,to:a.to,note:n?`${a.to} is waiting for the user's answer and reads this after it.`:`${a.to} is already working for you and reads this before its next step. Its one answer covers both.`}}let b=new Set(i.map(e=>e.bot).filter(e=>e!==p.ROOM_THURSDAY));a.to!==p.ROOM_THURSDAY&&!b.has(a.to)&&b.size>=s.BOT_RUN.participants&&(0,c.publicError)("This thread has reached its participant limit."),i.filter(e=>!L(e.state)).length>=s.BOT_RUN.queuedMessages&&(0,c.publicError)("This thread has reached its pending message limit.");let T=a.to!==p.ROOM_THURSDAY&&await f(t,e.threadId,a.to);return await t.insert(u.threadWorkTable).values({id:r,threadId:e.threadId,bot:a.to,caller:e.bot,parentId:e.id,state:a.to===p.ROOM_THURSDAY?"question"===a.kind?"external":"done":T?"waiting":"queued",result:a.to===p.ROOM_THURSDAY?a.text:null,options:[...new Set(a.options??[])]}),a.to===p.ROOM_THURSDAY?await t.insert(u.threadRelayTable).values({key:r,threadId:e.threadId,bot:e.bot,text:a.text,kind:a.kind,messageId:"question"===a.kind?r:null}):await R(t,{key:r,threadId:e.threadId,workId:r,speaker:e.bot,text:a.text}),await t.update(u.threadTable).set({wrapped:!1,updatedAt:new Date}).where((0,d.eq)(u.threadTable.id,e.threadId)),{messageId:r,to:a.to,...T?{note:`${a.to} is waiting for the user's answer and reads this after it.`}:{}}});return H(),r}async function x(e){let t=!1,a=await h.database.transaction(async a=>{let[r]=await a.select().from(u.threadTable).where((0,d.eq)(u.threadTable.id,e));if(!r||"running"!==r.status)return null;let n=await a.select().from(u.threadWorkTable).where((0,d.eq)(u.threadWorkTable.threadId,e)).orderBy(i.sql`${u.threadWorkTable}.rowid`),l=new Set(n.filter(e=>"external"===e.state).map(e=>e.caller));for(let e of n)"queued"===e.state&&l.has(e.bot)&&(await a.update(u.threadWorkTable).set({state:"waiting"}).where((0,d.eq)(u.threadWorkTable.id,e.id)),e.state="waiting",t=!0);let o=n.filter(e=>"running"===e.state);if(o.length>=s.BOT_RUN.concurrent)return null;let h=n.find(e=>"queued"===e.state&&!o.some(t=>t.bot===e.bot));if(!h)return null;if(r.turns>=s.BOT_RUN.turns)return await a.update(u.threadWorkTable).set({state:"paused"}).where((0,d.and)((0,d.eq)(u.threadWorkTable.threadId,e),(0,d.eq)(u.threadWorkTable.state,"queued"))),null;let[b]=await a.update(u.threadWorkTable).set({state:"running",generation:h.generation+1}).where((0,d.eq)(u.threadWorkTable.id,h.id)).returning();return await a.update(u.threadTable).set({turns:r.turns+1}).where((0,d.eq)(u.threadTable.id,e)),b});return(a||t)&&H(),a}async function O(e){let t=await h.database.transaction(async t=>{await A(t,e);let a=await t.select().from(u.threadDeliveryTable).where((0,d.and)((0,d.eq)(u.threadDeliveryTable.workId,e.id),(0,d.eq)(u.threadDeliveryTable.consumed,!1))).orderBy(u.threadDeliveryTable.id);for(let r of a){let a=D(r);await g(t,e.threadId,{bot:e.bot,parent:e.id,role:"user",content:a,hidden:!r.visible}),await t.update(u.threadDeliveryTable).set({consumed:!0}).where((0,d.eq)(u.threadDeliveryTable.id,r.id))}return a.map(D)});return t.length&&H(),t}function D(e){return e.visible?(0,T.tagSpeaker)(e.speaker===p.ROOM_USER?"user":"thursday",e.text):`${e.speaker}:
|
|
2
2
|
|
|
3
|
-
${e.text}`}async function D(e,t){await s.database.transaction(async a=>{await W(a,e);let r=await a.select().from(h.threadWorkTable).where((0,d.eq)(h.threadWorkTable.parentId,e.id)),n=await a.select({id:h.threadDeliveryTable.id}).from(h.threadDeliveryTable).where((0,d.and)((0,d.eq)(h.threadDeliveryTable.workId,e.id),(0,d.eq)(h.threadDeliveryTable.consumed,!1))).limit(1),l=await w(a,e.threadId,e.bot),i=n.length&&!l?"queued":n.length||r.some(e=>!C(e.state))?"waiting":"done";if(await a.update(h.threadWorkTable).set({state:i,result:t}).where((0,d.eq)(h.threadWorkTable.id,e.id)),"done"!==i)return;if(e.parentId){let[r]=await a.select().from(h.threadWorkTable).where((0,d.eq)(h.threadWorkTable.id,e.parentId)),[n]=t?[]:await a.select({id:h.threadDeliveryTable.id}).from(h.threadDeliveryTable).where((0,d.and)((0,d.eq)(h.threadDeliveryTable.workId,e.parentId),(0,d.eq)(h.threadDeliveryTable.speaker,e.bot),(0,d.eq)(h.threadDeliveryTable.consumed,!1))).limit(1);r&&"cancelled"!==r.state&&!n&&await A(a,{key:`return:${e.id}:${e.generation}`,threadId:e.threadId,workId:r.id,speaker:e.bot,text:t||"This turn ended without a message."})}let[o]=await a.select().from(h.threadTable).where((0,d.eq)(h.threadTable.id,e.threadId)),s=await a.select().from(h.threadWorkTable).where((0,d.eq)(h.threadWorkTable.threadId,e.threadId));o&&e.bot===o.bot&&!e.parentId&&s.every(e=>C(e.state))&&(await a.update(h.threadTable).set({status:t?"done":"waiting",outcome:t||"The room is idle. Send a message to continue.",pending:t?null:{options:[c.THREAD_CONTINUE]},wrapped:!0,endedAt:t?new Date:null,seen:!1,updatedAt:new Date}).where((0,d.eq)(h.threadTable.id,e.threadId)),t&&await a.insert(h.threadRelayTable).values({key:`report:${e.threadId}:${o.generation}`,threadId:e.threadId,bot:e.bot,text:t,kind:"report"}).onConflictDoNothing())}),B()}async function M(e){await s.database.transaction(async t=>{let[a]=await t.select().from(h.threadTable).where((0,d.eq)(h.threadTable.id,e));if(!a||"running"!==a.status)return;let r=await t.select().from(h.threadWorkTable).where((0,d.eq)(h.threadWorkTable.threadId,e));if(r.some(e=>"queued"===e.state||"running"===e.state))return;let n=r.find(e=>"external"===e.state);if(n)return void await t.update(h.threadTable).set({status:"waiting",outcome:n.result,pending:{options:n.options,messageId:n.id,bot:n.caller},updatedAt:new Date}).where((0,d.eq)(h.threadTable.id,e));if(r.some(e=>!C(e.state))||a.wrapped)return void await t.update(h.threadTable).set({status:"waiting",outcome:a.turns>=o.BOT_RUN.turns?"The room reached its automatic turn limit. Continue from the saved conversation.":"Work is paused. Continue from the saved conversation.",pending:{options:[c.THREAD_CONTINUE]},updatedAt:new Date}).where((0,d.eq)(h.threadTable.id,e));let l=crypto.randomUUID();await t.insert(h.threadWorkTable).values({id:l,threadId:e,bot:a.bot,caller:T.ROOM_THURSDAY,state:"queued"}),await A(t,{key:l,threadId:e,workId:l,speaker:"Thread activity",text:"The participants have finished their current turns. Bring together the results you received for Thursday, including anything still unresolved."}),await t.update(h.threadTable).set({wrapped:!0}).where((0,d.eq)(h.threadTable.id,e))}),B()}async function S(e,t){await s.database.transaction(async a=>{let r=await a.select().from(h.threadWorkTable).where((0,d.eq)(h.threadWorkTable.threadId,e));for(let n of r.filter(e=>"running"===e.state||"queued"===e.state))await a.update(h.threadWorkTable).set({state:"paused",generation:n.generation+1}).where((0,d.eq)(h.threadWorkTable.id,n.id)),await y(a,e,L(n,t));await a.update(h.threadTable).set({status:"waiting",outcome:t,pending:{options:[c.THREAD_CONTINUE]},seen:!1,endedAt:null,updatedAt:new Date}).where((0,d.eq)(h.threadTable.id,e)),await a.insert(h.threadRelayTable).values({key:crypto.randomUUID(),threadId:e,bot:r.find(e=>!e.parentId)?.bot??"Bot",text:t,kind:"interrupted"})}),B()}async function _(e){await s.database.transaction(async t=>{await t.update(h.threadWorkTable).set({state:"queued"}).where((0,d.and)((0,d.eq)(h.threadWorkTable.threadId,e),(0,d.eq)(h.threadWorkTable.state,"paused"))),await t.update(h.threadTable).set({status:"running",generation:l.sql`${h.threadTable.generation} + 1`,turns:0,pending:null,outcome:null,endedAt:null,updatedAt:new Date}).where((0,d.eq)(h.threadTable.id,e)),await t.update(h.threadRelayTable).set({accepted:!0}).where((0,d.and)((0,d.eq)(h.threadRelayTable.threadId,e),(0,d.eq)(h.threadRelayTable.kind,"interrupted")))}),B()}async function E(e,t,a){let r=e.select({workId:h.threadDeliveryTable.workId}).from(h.threadDeliveryTable).where((0,d.and)((0,d.eq)(h.threadDeliveryTable.threadId,t),(0,d.eq)(h.threadDeliveryTable.consumed,!1)));await e.update(h.threadWorkTable).set({state:"queued"}).where((0,d.and)((0,d.eq)(h.threadWorkTable.threadId,t),(0,d.eq)(h.threadWorkTable.bot,a),(0,d.inArray)(h.threadWorkTable.state,["waiting","done"]),(0,d.inArray)(h.threadWorkTable.id,r)))}async function U(e,t,a,r,n,i=!0){let o=await s.database.transaction(async o=>{let[s]=await o.select().from(h.threadTable).where((0,d.eq)(h.threadTable.id,e));s||(0,b.publicError)("No such thread.");let u=await o.select().from(h.threadWorkTable).where((0,d.eq)(h.threadWorkTable.threadId,e)).orderBy(h.threadWorkTable.createdAt),c=u.filter(e=>"external"===e.state),p=n?c.find(e=>e.id===n)??(0,b.publicError)("That question is no longer waiting for an answer."):i?function(e,t){let a=t?e.filter(e=>e.caller===t):e;if(a.length<=1)return a[0];(0,b.publicError)(`Several questions are waiting for an answer: ${a.map(e=>`${e.caller} (replyTo ${e.id}): “${(e.result??"").slice(0,160)}”`).join("; ")}. Answer one of them by its replyTo.`)}(c,r):void 0,f=p?.caller??r??s.bot,y=p?u.find(e=>e.id===p.parentId):u.find(e=>e.bot===f&&"running"===e.state)??u.find(e=>e.bot===f&&!C(e.state)&&"external"!==e.state);if(p&&(await o.update(h.threadWorkTable).set({state:"done",result:t}).where((0,d.eq)(h.threadWorkTable.id,p.id)),await o.update(h.threadRelayTable).set({accepted:!0}).where((0,d.eq)(h.threadRelayTable.messageId,p.id))),!y){let t=null;if(f!==s.bot){let a=u.findLast(e=>e.bot===s.bot&&!e.parentId&&"cancelled"!==e.state);a?"done"===a.state&&await o.update(h.threadWorkTable).set({state:"waiting"}).where((0,d.eq)(h.threadWorkTable.id,a.id)):a=(await o.insert(h.threadWorkTable).values({id:crypto.randomUUID(),threadId:e,bot:s.bot,caller:T.ROOM_THURSDAY,state:"waiting"}).returning())[0],t=a.id}y=(await o.insert(h.threadWorkTable).values({id:crypto.randomUUID(),threadId:e,bot:f,caller:t?s.bot:T.ROOM_THURSDAY,parentId:t,state:"queued"}).returning())[0]}p&&await A(o,{key:`answer:${p.id}`,threadId:e,workId:y.id,speaker:"Thread activity",text:`The next message answers your question to the user: “${p.result??""}”`});let g=crypto.randomUUID();return await A(o,{key:g,threadId:e,workId:y.id,speaker:a,text:t,visible:!0}),p&&!await w(o,e,f)&&await E(o,e,f),await o.update(h.threadWorkTable).set({state:"queued"}).where((0,d.and)((0,d.eq)(h.threadWorkTable.threadId,e),(0,d.eq)(h.threadWorkTable.state,"paused"))),await o.update(h.threadTable).set({status:"running",generation:l.sql`${h.threadTable.generation} + 1`,turns:0,wrapped:!1,pending:null,outcome:null,endedAt:null,seen:!1,updatedAt:new Date}).where((0,d.eq)(h.threadTable.id,e)),await o.update(h.threadRelayTable).set({accepted:!0}).where((0,d.and)((0,d.eq)(h.threadRelayTable.threadId,e),(0,d.inArray)(h.threadRelayTable.kind,["interrupted","report"]))),{key:g,to:f,answered:p?{bot:p.caller,question:p.result??""}:null}});return B(),o}async function N(e){await s.database.transaction(async t=>{await t.update(h.threadWorkTable).set({state:"cancelled",generation:l.sql`${h.threadWorkTable.generation} + 1`}).where((0,d.and)((0,d.eq)(h.threadWorkTable.threadId,e),(0,d.inArray)(h.threadWorkTable.state,["queued","running","waiting","external","paused"]))),await t.update(h.threadRelayTable).set({accepted:!0}).where((0,d.eq)(h.threadRelayTable.threadId,e))}),B()}async function $(e,t){let[a]=await s.database.select({bot:h.threadTable.bot}).from(h.threadTable).where((0,d.eq)(h.threadTable.id,e)),r=await s.database.select().from(h.threadMessageTable).where((0,d.and)((0,d.eq)(h.threadMessageTable.threadId,e),(0,d.or)((0,d.eq)(h.threadMessageTable.bot,t),a?.bot===t?l.sql`${h.threadMessageTable.bot} is null AND ${h.threadMessageTable.parent} is null`:void 0))).orderBy(h.threadMessageTable.seq),n=r.findLastIndex(e=>e.compact);return(n>0?[r[0],...r.slice(n)]:r).map(e=>({role:e.role,content:e.content}))}e.s(["appendRoomMessage",0,m,"cancelRoom",0,N,"claimRoomWork",0,v,"consumeRoomInbox",0,O,"finishRoomWork",0,D,"listParticipantTranscript",0,$,"listRoomReceipts",0,f,"listRoomWork",0,k,"lowerRoomContextBudget",0,I,"messageKey",0,H,"noteRoomBreak",0,g,"pauseRoom",0,S,"resumeRoom",0,_,"roomContextBudget",0,q,"sendRoomMessage",0,R,"settleRoom",0,M,"tellRoom",0,U]),a()}catch(e){a(e)}},!1),378884,e=>e.a(async(t,a)=>{try{var r=e.i(875225),d=e.i(349129),n=e.i(518899),l=e.i(380690),i=e.i(175936),o=e.i(687388),s=e.i(528790),h=e.i(613240),u=e.i(353885),b=e.i(41444),c=e.i(944971),T=e.i(742712),p=e.i(889034),w=t([s,T]);[s,T]=w.then?(await w)():w;let K=()=>l.appEvents.emit({type:"threads"}),P={id:h.threadTable.id,bot:h.threadTable.bot,label:h.threadTable.label,request:h.threadTable.request,status:h.threadTable.status,outcome:h.threadTable.outcome,pending:h.threadTable.pending,seen:h.threadTable.seen,routineId:h.threadTable.routineId,inputTokens:h.threadTable.inputTokens,outputTokens:h.threadTable.outputTokens,contextTokens:h.threadTable.contextTokens,contextBudget:h.threadTable.contextBudget,createdAt:h.threadTable.createdAt,updatedAt:h.threadTable.updatedAt};async function f(e){let{opening:t,...a}=e,r=await s.database.transaction(async e=>{let[r]=await e.insert(h.threadTable).values({id:crypto.randomUUID(),status:"running",...a}).returning();return await e.insert(h.threadMessageTable).values({threadId:r.id,seq:0,bot:null,parent:null,role:"user",content:t,compact:!1,note:!1}),await e.insert(h.threadWorkTable).values({id:crypto.randomUUID(),threadId:r.id,bot:r.bot,caller:p.ROOM_THURSDAY,state:"queued"}),r});return K(),r}async function y(e,t){await s.database.update(h.threadTable).set({...t,updatedAt:new Date}).where((0,r.eq)(h.threadTable.id,e)),K()}async function g(e){0!==e.length&&(await s.database.transaction(async t=>{await t.update(h.threadTable).set({seen:!0}).where((0,r.inArray)(h.threadTable.id,e)),await t.update(h.threadRelayTable).set({accepted:!0}).where((0,r.inArray)(h.threadRelayTable.threadId,e))}),K())}async function m(e,t,a=null){(t.input||t.output||null!==a)&&(await s.database.update(h.threadTable).set({inputTokens:n.sql`${h.threadTable.inputTokens} + ${t.input}`,outputTokens:n.sql`${h.threadTable.outputTokens} + ${t.output}`,...null===a?{}:{contextTokens:a.tokens,contextBudget:a.budget}}).where((0,r.eq)(h.threadTable.id,e)),K())}async function k(e){let[t]=await s.database.select(P).from(h.threadTable).where((0,r.eq)(h.threadTable.id,e));if(!t)return null;let[a]=await $([t]);return a??null}async function q(e){let[t]=await s.database.select().from(h.threadTable).where((0,r.eq)(h.threadTable.id,e));return t??null}let F=e=>"running"===e||"waiting"===e;async function I(){let[e,t,a,n]=await Promise.all([s.database.select(P).from(h.threadTable).where((0,r.inArray)(h.threadTable.status,["running","waiting"])).orderBy((0,d.desc)(h.threadTable.updatedAt)),s.database.select(P).from(h.threadTable).where((0,r.inArray)(h.threadTable.status,["done","cancelled"])).orderBy((0,d.desc)(h.threadTable.updatedAt)).limit(o.INBOX_FINISHED),s.database.select(P).from(h.threadTable).where((0,r.and)((0,r.inArray)(h.threadTable.status,["done","cancelled"]),(0,r.eq)(h.threadTable.seen,!1))),s.database.select(P).from(h.threadTable).where((0,r.inArray)(h.threadTable.id,s.database.select({id:h.threadRelayTable.threadId}).from(h.threadRelayTable).where((0,r.eq)(h.threadRelayTable.accepted,!1))))]),l=[...new Map([...e,...t,...a,...n].map(e=>[e.id,e])).values()].sort((e,t)=>t.updatedAt.getTime()-e.updatedAt.getTime());return $(l,e=>F(e.status))}async function W(){let e=await s.database.select(P).from(h.threadTable).orderBy(n.sql`case when ${h.threadTable.status} in ('running', 'waiting') then 0 else 1 end`,(0,d.desc)(h.threadTable.updatedAt),(0,d.desc)(h.threadTable.id)).limit(o.THREAD_STATUS_LIMIT);return $(e)}async function A(e={}){let t=await s.database.select(P).from(h.threadTable).where(e.before?(0,r.lt)(h.threadTable.updatedAt,e.before):void 0).orderBy((0,d.desc)(h.threadTable.updatedAt)).limit(e.limit??o.PAGE_SIZE);return $(t,e=>F(e.status))}async function R(e){return e.length?await s.database.select({id:h.threadTable.id,callId:h.threadTable.callId,label:h.threadTable.label,status:h.threadTable.status,outcome:h.threadTable.outcome}).from(h.threadTable).where((0,r.inArray)(h.threadTable.callId,e)).orderBy(h.threadTable.createdAt):[]}async function v(e,t){let a=(a,n)=>s.database.select({id:h.threadTable.id,owner:h.threadTable.bot,label:h.threadTable.label,status:h.threadTable.status,pending:h.threadTable.pending,updatedAt:h.threadTable.updatedAt}).from(h.threadTable).where((0,r.and)((0,r.inArray)(h.threadTable.status,a),t?(0,r.ne)(h.threadTable.id,t):void 0,(0,r.inArray)(h.threadTable.id,s.database.select({id:h.threadWorkTable.threadId}).from(h.threadWorkTable).where((0,r.eq)(h.threadWorkTable.bot,e))))).orderBy((0,d.desc)(h.threadTable.updatedAt)).limit(n),[n,l]=await Promise.all([a(["running","waiting"],o.BOT_WORK.open),a(["done","cancelled"],o.BOT_WORK.recent)]),i=[...n,...l].map(e=>e.id);if(!i.length)return{open:[],recent:[]};let u=await s.database.select({id:h.threadWorkTable.id,threadId:h.threadWorkTable.threadId,result:h.threadWorkTable.result}).from(h.threadWorkTable).where((0,r.and)((0,r.eq)(h.threadWorkTable.bot,e),(0,r.inArray)(h.threadWorkTable.threadId,i),(0,r.isNotNull)(h.threadWorkTable.result))).orderBy((0,d.desc)(h.threadWorkTable.createdAt)),b=new Map;for(let{id:e,threadId:t,result:a}of u)a?.trim()&&!b.has(t)&&b.set(t,{workId:e,words:a});let c=({pending:e,...t})=>{let a=b.get(t.id);return{...t,workId:a?.workId??null,asking:"waiting"===t.status&&!!e?.messageId,said:a?.words??null,cut:!!a&&a.words.replace(/\s+/g," ").trim().length>o.BOT_WORK.said}};return{open:n.map(c),recent:l.map(c)}}async function O(e,t){if(t.owner===e){let[e]=await s.database.select({request:h.threadTable.request}).from(h.threadTable).where((0,r.eq)(h.threadTable.id,t.id));return e?.request??""}return t.workId?(await s.database.select({text:h.threadDeliveryTable.text}).from(h.threadDeliveryTable).where((0,r.eq)(h.threadDeliveryTable.workId,t.workId)).orderBy(h.threadDeliveryTable.id)).map(e=>e.text).join("\n\n"):""}async function x(e){let t=await s.database.delete(h.threadTable).where((0,r.eq)(h.threadTable.id,e)).returning({id:h.threadTable.id});return t.length&&K(),t.length>0}async function D(){return(await s.database.select({id:h.threadTable.id}).from(h.threadTable).where((0,r.eq)(h.threadTable.status,"running"))).map(e=>e.id)}async function M(){return await s.database.select({id:h.threadTable.id,label:h.threadTable.label,status:h.threadTable.status,endedAt:h.threadTable.endedAt,updatedAt:h.threadTable.updatedAt}).from(h.threadTable)}function S(e){let t=new Set;for(let a of e)if(Array.isArray(a))for(let e of a){if("tool-call"!==e.type||e.toolName!==u.TOOL_NAMES.write_file)continue;let a=e.input?.path;"string"==typeof a&&a.trim()&&(t.delete(a.trim()),t.add(a.trim()))}return[...t]}async function _(e){let t=await s.database.select({content:h.threadMessageTable.content}).from(h.threadMessageTable).where((0,r.and)((0,r.eq)(h.threadMessageTable.threadId,e),(0,r.eq)(h.threadMessageTable.role,"assistant"))).orderBy(h.threadMessageTable.seq);return S(t.map(e=>e.content))}async function E(e){let t=e.trim();if(!t)return null;let a=await q(t);if(a)return a;let r=t.toLowerCase();return(await s.database.select().from(h.threadTable).orderBy((0,d.desc)(h.threadTable.updatedAt)).limit(o.THREAD_LABEL_REACH)).find(e=>e.label.toLowerCase()===r)??null}async function U(e,t,a){await s.database.insert(h.threadMessageTable).values({threadId:e,seq:t,...a,compact:a.compact??!1,note:a.note??!1}).onConflictDoUpdate({target:[h.threadMessageTable.threadId,h.threadMessageTable.seq],set:{role:a.role,content:a.content,compact:a.compact??!1,note:a.note??!1}}),K()}async function N(e,t){t.length&&(await s.database.delete(h.threadMessageTable).where((0,r.and)((0,r.eq)(h.threadMessageTable.threadId,e),(0,r.inArray)(h.threadMessageTable.seq,t))),K())}async function $(e,t=()=>!0){if(0===e.length)return[];let a=e.filter(t).map(e=>e.id),d=a.length?await s.database.select().from(h.threadMessageTable).where((0,r.inArray)(h.threadMessageTable.threadId,a)).orderBy(h.threadMessageTable.seq):[],n=e.map(e=>e.id),[l,i,o]=await Promise.all([s.database.select().from(h.threadWorkTable).where((0,r.inArray)(h.threadWorkTable.threadId,n)),s.database.select().from(h.threadDeliveryTable).where((0,r.and)((0,r.inArray)(h.threadDeliveryTable.threadId,n),(0,r.eq)(h.threadDeliveryTable.visible,!0))),s.database.select().from(h.threadRelayTable).where((0,r.and)((0,r.inArray)(h.threadRelayTable.threadId,n),(0,r.eq)(h.threadRelayTable.accepted,!1)))]),w=new Map(e.map(e=>[e.id,e.bot])),f=new Map(l.map(e=>[e.id,e.caller])),y=new Map;for(let e of d){let t=y.get(e.threadId)??[];t.push(...function(e,t){if(e.hidden)return[];let a={seq:e.seq,bot:e.bot,parent:e.parent,to:"user"===e.role?e.bot:t,at:e.createdAt},r=t=>`${e.id}-${t}`,d=e.content;if("user"===e.role){if(0===e.seq)return[];let t="string"==typeof d?d:d.flatMap(e=>"text"===e.type&&e.text?[e.text]:[]).join("\n").trim();if(!t)return[];if(e.compact)return[{...a,id:r(0),kind:"note",text:t}];if(e.note){let e=t.endsWith(p.RESUME_CHECK)?t.slice(0,-p.RESUME_CHECK.length).trimEnd():t;return[{...a,id:r(0),kind:"stop",text:e}]}return[{...a,id:r(0),kind:"user",text:(0,c.untagSpeaker)(t)}]}if("assistant"===e.role){let t=e.content;if("string"==typeof t)return t.trim()?[{...a,id:r(0),kind:"text",text:t.trim()}]:[];let d=[];return t.forEach((t,n)=>{if("text"===t.type){let e=t.text.trim();e&&d.push({...a,id:r(n),kind:"text",text:e});return}if("tool-result"===t.type)return void d.push(Y(a,r(n),t));if("tool-call"!==t.type)return;let l=t.input??{};if(t.toolName===u.TOOL_NAMES.send_message){let i;d.push({...a,id:r(n),kind:"ask",callId:t.toolCallId,to:(i=String(l.to??"").trim()).toLowerCase()===p.ROOM_THURSDAY.toLowerCase()?p.ROOM_THURSDAY:i,text:String(l.text??""),question:"question"===l.kind,..."question"===l.kind&&e.bot?{questionId:(0,T.messageKey)(e.threadId,e.bot,t.toolCallId)}:{}})}else t.toolName===u.TOOL_NAMES.bash?d.push({...a,id:r(n),kind:"tool",callId:t.toolCallId,name:t.toolName,input:(0,b.clip)(String(l.command??""),120),note:B(l)}):d.push({...a,id:r(n),kind:"tool",callId:t.toolCallId,name:t.toolName,input:C(t.toolName,l),note:B(l),path:t.toolName===u.TOOL_NAMES.write_file?z(l,"path")??null:null})}),d}if("tool"===e.role){let t=[];return e.content.forEach((e,d)=>{"tool-result"!==e.type||(e.toolName!==u.TOOL_NAMES.send_message||"error-text"===e.output.type)&&t.push(Y(a,r(d),e))}),t}return[]}(e,(e.parent?f.get(e.parent):null)??w.get(e.threadId)??"")),y.set(e.threadId,t)}return e.map(e=>{let t=l.filter(t=>t.threadId===e.id),a=["running","queued","paused","waiting","done","cancelled"],r=[...new Set(t.map(e=>e.bot))].filter(e=>e!==p.ROOM_THURSDAY).map(e=>({bot:e,state:t.filter(t=>t.bot===e).sort((e,t)=>a.indexOf(e.state)-a.indexOf(t.state))[0].state}));return{...function(e,t){let{pending:a,inputTokens:r,outputTokens:d,...n}=e;return{...n,ask:"waiting"===e.status?{question:e.outcome??"",options:a?.options??[],messageId:a?.messageId,bot:a?.bot}:null,tokens:{input:r,output:d},lines:t}}(e,y.get(e.id)??[]),room:{participants:r,questions:t.filter(e=>"external"===e.state).map(e=>({id:e.id,bot:e.caller,text:e.result??"",options:e.options})),deliveries:i.filter(t=>t.threadId===e.id).map(a=>({id:a.key,bot:t.find(e=>e.id===a.workId)?.bot??e.bot,text:a.text,delivered:a.consumed})),relays:o.filter(t=>t.threadId===e.id)}}})}let V=["query","command","prompt","url","path","pattern","request","question","title","name","thread","text"],z=(e,t)=>{let a=e[t];return"string"==typeof a&&a.trim()?a:null};function B(e){let t=z(e,"description");return t?(0,b.clip)(t,120):null}function C(e,t){let a=t??{};if("object"!=typeof a||Array.isArray(a))return(0,b.clip)(String(t??""),120);if(e===u.TOOL_NAMES.bash)return B(a)??(0,b.clip)(String(a.command??""),120);if(e===u.TOOL_NAMES.tool_call||e===u.TOOL_NAMES.tool_search){let e=Array.isArray(a.tools)?a.tools.map(String).join(", "):String(a.tool??""),t=a.args??null,r=t&&"object"==typeof t?String(a.server??"")===o.STUDIO_SERVER?H(t):JSON.stringify(t):"";return(0,b.clip)([String(a.server??""),e,r].filter(Boolean).join(" "),120)}let r=H(a);return r?(0,b.clip)(r,120):Object.keys(a).length?(0,b.clip)(JSON.stringify(a),120):""}function H(e){for(let t of V){let a=z(e,t);if(a)return a}for(let t of Object.keys(e)){let a=z(e,t);if(a)return a}return""}async function L(e,t){for(let a of(await s.database.select({role:h.threadMessageTable.role,content:h.threadMessageTable.content}).from(h.threadMessageTable).where((0,r.and)((0,r.eq)(h.threadMessageTable.threadId,e),(0,r.inArray)(h.threadMessageTable.role,["tool","assistant"])))))if("string"!=typeof a.content){for(let e of a.content)if("tool-result"===e.type&&e.toolCallId===t)return j(e.output,o.FULL_RESULT_LINES,!0)}return null}let G=/https?:\/\/\S+(?: · \d{4}-\d{2}-\d{2})?\s*$/,X=" — ";function Y(e,t,a){let r=a.toolName===u.TOOL_NAMES.web_search,d=j(a.output,r?o.FULL_RESULT_LINES:5),n=d.flatMap(e=>"text"===e.type?[e.text]:[]),l=r?n.filter(e=>G.test(e)):[],i=(l.length?l:n).slice(0,4);return{...e,id:t,kind:"tool-result",callId:a.toolCallId,name:a.toolName,results:i.map(e=>({type:"text",text:l.length?function(e){let t=e.replace(/\s+/g," ").trim(),a=G.exec(t);if(!a||t.length<=200)return(0,b.clip)(t,200);let r=a[0].trim(),d=t.slice(0,a.index).replace(/[\s—-]+$/,""),n=200-r.length-X.length;return d&&n>1?`${(0,b.clip)(d,n)}${X}${r}`:r}(e):(0,b.clip)(e,200)})),more:n.length>i.length||d.length>n.length||i.some(e=>e.length>200)}}function j(e,t,a=!1){var r;if(null==e)return[];if("string"==typeof e)return J(e,t,a);if("object"!=typeof e)return J(String(e),t,a);switch(e.type){case"text":case"error-text":return J(String(e.value??""),t,a);case"json":case"error-json":return j(e.value,t,a);case"execution-denied":return J("Denied.",t,a);case"content":{if(!Array.isArray(e.value))return[];let r=[];for(let d of e.value){if("text"===d.type&&"string"==typeof d.text){r.push(...J(d.text,t,a));continue}let e=function(e){let t=String(e.mediaType??"");if(!t.startsWith("image/"))return null;let a=e.data;return"string"==typeof a?`data:${t};base64,${a}`:a?.type==="url"&&a.url?a.url:a?.type==="data"&&"string"==typeof a.data?`data:${t};base64,${a.data}`:null}(d);e&&r.push({type:"image",src:e})}return r}}return"string"==typeof e.path&&String(e.mediaType??"").startsWith("image/")?[{type:"text",text:e.path},{type:"image",src:i.queryKey.file(e.path)}]:Array.isArray(e.sources)?e.sources.map(e=>String(e?.title??"")).filter(Boolean).slice(0,t).map(e=>({type:"text",text:e})):"string"==typeof e.stdout?J(e.stdout||String(e.stderr??""),t,a):"string"==typeof e.answer?J(e.answer,t,a):J(a?(r=e,Array.isArray(r)?JSON.stringify(r,null,2):Object.entries(r).map(([e,t])=>"string"==typeof t&&t.includes("\n")?`${e}:
|
|
4
|
-
${t}`:`${e}: ${JSON.stringify(t,null,2)}`).join("\n")):JSON.stringify(e),t,a)}function J(e,t,a=!1){if(a){let a=e.split("\n"),r=a.slice(0,t);a.length>t&&r.push(`… ${a.length-t} more lines`);let d=r.join("\n").trimEnd();return d?[{type:"text",text:d}]:[]}return e.split("\n").map(e=>e.trim()).filter(Boolean).slice(0,t).map(e=>({type:"text",text:e}))}e.s(["addThreadUsage",0,m,"argumentLine",0,C,"deleteMessages",0,
|
|
3
|
+
${e.text}`}async function M(e,t){await h.database.transaction(async a=>{await A(a,e);let r=await a.select().from(u.threadWorkTable).where((0,d.eq)(u.threadWorkTable.parentId,e.id)),n=await a.select({id:u.threadDeliveryTable.id}).from(u.threadDeliveryTable).where((0,d.and)((0,d.eq)(u.threadDeliveryTable.workId,e.id),(0,d.eq)(u.threadDeliveryTable.consumed,!1))).limit(1),l=await f(a,e.threadId,e.bot),i=n.length&&!l?"queued":n.length||r.some(e=>!L(e.state))?"waiting":"done";if(await a.update(u.threadWorkTable).set({state:i,result:t}).where((0,d.eq)(u.threadWorkTable.id,e.id)),"done"!==i)return;if(e.parentId){let[r]=await a.select().from(u.threadWorkTable).where((0,d.eq)(u.threadWorkTable.id,e.parentId)),[n]=t?[]:await a.select({id:u.threadDeliveryTable.id}).from(u.threadDeliveryTable).where((0,d.and)((0,d.eq)(u.threadDeliveryTable.workId,e.parentId),(0,d.eq)(u.threadDeliveryTable.speaker,e.bot),(0,d.eq)(u.threadDeliveryTable.consumed,!1))).limit(1);r&&"cancelled"!==r.state&&!n&&await R(a,{key:`return:${e.id}:${e.generation}`,threadId:e.threadId,workId:r.id,speaker:e.bot,text:t||"This turn ended without a message."})}let[o]=await a.select().from(u.threadTable).where((0,d.eq)(u.threadTable.id,e.threadId)),s=await a.select().from(u.threadWorkTable).where((0,d.eq)(u.threadWorkTable.threadId,e.threadId));o&&e.bot===o.bot&&!e.parentId&&s.every(e=>L(e.state))&&(await a.update(u.threadTable).set({status:t?"done":"waiting",outcome:t||"The room is idle. Send a message to continue.",pending:t?null:{options:[T.THREAD_CONTINUE]},wrapped:!0,endedAt:t?new Date:null,seen:!1,updatedAt:new Date}).where((0,d.eq)(u.threadTable.id,e.threadId)),t&&await a.insert(u.threadRelayTable).values({key:`report:${e.threadId}:${o.generation}`,threadId:e.threadId,bot:e.bot,text:t,kind:"report"}).onConflictDoNothing())}),H()}async function S(e){await h.database.transaction(async t=>{let[a]=await t.select().from(u.threadTable).where((0,d.eq)(u.threadTable.id,e));if(!a||"running"!==a.status)return;let r=await t.select().from(u.threadWorkTable).where((0,d.eq)(u.threadWorkTable.threadId,e));if(r.some(e=>"queued"===e.state||"running"===e.state))return;let n=r.find(e=>"external"===e.state);if(n)return void await t.update(u.threadTable).set({status:"waiting",outcome:n.result,pending:{options:n.options,messageId:n.id,bot:n.caller},updatedAt:new Date}).where((0,d.eq)(u.threadTable.id,e));if(r.some(e=>!L(e.state))||a.wrapped)return void await t.update(u.threadTable).set({status:"waiting",outcome:a.turns>=s.BOT_RUN.turns?"The room reached its automatic turn limit. Continue from the saved conversation.":"Work is paused. Continue from the saved conversation.",pending:{options:[T.THREAD_CONTINUE]},updatedAt:new Date}).where((0,d.eq)(u.threadTable.id,e));let l=crypto.randomUUID();await t.insert(u.threadWorkTable).values({id:l,threadId:e,bot:a.bot,caller:p.ROOM_THURSDAY,state:"queued"}),await R(t,{key:l,threadId:e,workId:l,speaker:"Thread activity",text:"The participants have finished their current turns. Bring together the results you received for Thursday, including anything still unresolved."}),await t.update(u.threadTable).set({wrapped:!0}).where((0,d.eq)(u.threadTable.id,e))}),H()}async function _(e,t){await h.database.transaction(async a=>{let r=await a.select().from(u.threadWorkTable).where((0,d.eq)(u.threadWorkTable.threadId,e));for(let n of r.filter(e=>"running"===e.state||"queued"===e.state))await a.update(u.threadWorkTable).set({state:"paused",generation:n.generation+1}).where((0,d.eq)(u.threadWorkTable.id,n.id)),await g(a,e,j(n,t));await a.update(u.threadTable).set({status:"waiting",outcome:t,pending:{options:[T.THREAD_CONTINUE]},seen:!1,endedAt:null,updatedAt:new Date}).where((0,d.eq)(u.threadTable.id,e)),await a.insert(u.threadRelayTable).values({key:crypto.randomUUID(),threadId:e,bot:r.find(e=>!e.parentId)?.bot??"Bot",text:t,kind:"interrupted"})}),H()}async function E(e){await h.database.transaction(async t=>{await t.update(u.threadWorkTable).set({state:"queued"}).where((0,d.and)((0,d.eq)(u.threadWorkTable.threadId,e),(0,d.eq)(u.threadWorkTable.state,"paused"))),await t.update(u.threadTable).set({status:"running",generation:i.sql`${u.threadTable.generation} + 1`,turns:0,pending:null,outcome:null,endedAt:null,updatedAt:new Date}).where((0,d.eq)(u.threadTable.id,e)),await t.update(u.threadRelayTable).set({accepted:!0}).where((0,d.and)((0,d.eq)(u.threadRelayTable.threadId,e),(0,d.eq)(u.threadRelayTable.kind,"interrupted")))}),H()}async function $(e,t,a){let r=e.select({workId:u.threadDeliveryTable.workId}).from(u.threadDeliveryTable).where((0,d.and)((0,d.eq)(u.threadDeliveryTable.threadId,t),(0,d.eq)(u.threadDeliveryTable.consumed,!1)));await e.update(u.threadWorkTable).set({state:"queued"}).where((0,d.and)((0,d.eq)(u.threadWorkTable.threadId,t),(0,d.eq)(u.threadWorkTable.bot,a),(0,d.inArray)(u.threadWorkTable.state,["waiting","done"]),(0,d.inArray)(u.threadWorkTable.id,r)))}async function U(e,t,a,r,n,l=!0){let o=await h.database.transaction(async o=>{let[s]=await o.select().from(u.threadTable).where((0,d.eq)(u.threadTable.id,e));s||(0,c.publicError)("No such thread.");let h=await o.select().from(u.threadWorkTable).where((0,d.eq)(u.threadWorkTable.threadId,e)).orderBy(u.threadWorkTable.createdAt),b=h.filter(e=>"external"===e.state),T=n?b.find(e=>e.id===n)??(0,c.publicError)("That question is no longer waiting for an answer."):l?function(e,t){let a=t?e.filter(e=>e.caller===t):e;if(a.length<=1)return a[0];(0,c.publicError)(`Several questions are waiting for an answer: ${a.map(e=>`${e.caller} (replyTo ${e.id}): “${(e.result??"").slice(0,160)}”`).join("; ")}. Answer one of them by its replyTo.`)}(b,r):void 0,w=T?.caller??r??s.bot,y=T?h.find(e=>e.id===T.parentId):h.find(e=>e.bot===w&&"running"===e.state)??h.find(e=>e.bot===w&&!L(e.state)&&"external"!==e.state);if(T&&(await o.update(u.threadWorkTable).set({state:"done",result:t}).where((0,d.eq)(u.threadWorkTable.id,T.id)),await o.update(u.threadRelayTable).set({accepted:!0}).where((0,d.eq)(u.threadRelayTable.messageId,T.id))),!y){let t=null;if(w!==s.bot){let a=h.findLast(e=>e.bot===s.bot&&!e.parentId&&"cancelled"!==e.state);a?"done"===a.state&&await o.update(u.threadWorkTable).set({state:"waiting"}).where((0,d.eq)(u.threadWorkTable.id,a.id)):a=(await o.insert(u.threadWorkTable).values({id:crypto.randomUUID(),threadId:e,bot:s.bot,caller:p.ROOM_THURSDAY,state:"waiting"}).returning())[0],t=a.id}y=(await o.insert(u.threadWorkTable).values({id:crypto.randomUUID(),threadId:e,bot:w,caller:t?s.bot:p.ROOM_THURSDAY,parentId:t,state:"queued"}).returning())[0]}T&&await R(o,{key:`answer:${T.id}`,threadId:e,workId:y.id,speaker:"Thread activity",text:`The next message answers your question to the user: “${T.result??""}”`});let g=crypto.randomUUID();return await R(o,{key:g,threadId:e,workId:y.id,speaker:a,text:t,visible:!0}),T&&!await f(o,e,w)&&await $(o,e,w),await o.update(u.threadWorkTable).set({state:"queued"}).where((0,d.and)((0,d.eq)(u.threadWorkTable.threadId,e),(0,d.eq)(u.threadWorkTable.state,"paused"))),await o.update(u.threadTable).set({status:"running",generation:i.sql`${u.threadTable.generation} + 1`,turns:0,wrapped:!1,pending:null,outcome:null,endedAt:null,seen:!1,updatedAt:new Date}).where((0,d.eq)(u.threadTable.id,e)),await o.update(u.threadRelayTable).set({accepted:!0}).where((0,d.and)((0,d.eq)(u.threadRelayTable.threadId,e),(0,d.inArray)(u.threadRelayTable.kind,["interrupted","report"]))),{key:g,to:w,answered:T?{bot:T.caller,question:T.result??""}:null}});return H(),o}async function N(e){await h.database.transaction(async t=>{await t.update(u.threadWorkTable).set({state:"cancelled",generation:i.sql`${u.threadWorkTable.generation} + 1`}).where((0,d.and)((0,d.eq)(u.threadWorkTable.threadId,e),(0,d.inArray)(u.threadWorkTable.state,["queued","running","waiting","external","paused"]))),await t.update(u.threadRelayTable).set({accepted:!0}).where((0,d.eq)(u.threadRelayTable.threadId,e))}),H()}async function B(e,t){let[a]=await h.database.select({bot:u.threadTable.bot}).from(u.threadTable).where((0,d.eq)(u.threadTable.id,e)),r=await h.database.select().from(u.threadMessageTable).where((0,d.and)((0,d.eq)(u.threadMessageTable.threadId,e),(0,d.or)((0,d.eq)(u.threadMessageTable.bot,t),a?.bot===t?i.sql`${u.threadMessageTable.bot} is null AND ${u.threadMessageTable.parent} is null`:void 0))).orderBy(u.threadMessageTable.seq),n=r.findLastIndex(e=>e.compact);return(n>0?[r[0],...r.slice(n)]:r).map(e=>({role:e.role,content:e.content}))}async function C(e){return h.database.select({threadId:u.threadRelayTable.threadId,text:u.threadRelayTable.text}).from(u.threadRelayTable).where((0,d.and)((0,d.eq)(u.threadRelayTable.kind,"report"),i.sql`instr(${u.threadRelayTable.text}, ${e}) > 0`)).orderBy((0,n.desc)(u.threadRelayTable.id))}e.s(["appendRoomMessage",0,k,"cancelRoom",0,N,"claimRoomWork",0,x,"consumeRoomInbox",0,O,"finishRoomWork",0,M,"listParticipantTranscript",0,B,"listReportsNaming",0,C,"listRoomReceipts",0,y,"listRoomWork",0,q,"lowerRoomContextBudget",0,W,"messageKey",0,Y,"noteRoomBreak",0,m,"pauseRoom",0,_,"resumeRoom",0,E,"roomContextBudget",0,I,"sendRoomMessage",0,v,"settleRoom",0,S,"tellRoom",0,U]),a()}catch(e){a(e)}},!1),378884,e=>e.a(async(t,a)=>{try{var r=e.i(875225),d=e.i(349129),n=e.i(518899),l=e.i(380690),i=e.i(175936),o=e.i(687388),s=e.i(528790),h=e.i(613240),u=e.i(353885),b=e.i(41444),c=e.i(944971),T=e.i(742712),p=e.i(889034),w=t([s,T]);[s,T]=w.then?(await w)():w;let K=()=>l.appEvents.emit({type:"threads"}),P={id:h.threadTable.id,bot:h.threadTable.bot,label:h.threadTable.label,request:h.threadTable.request,status:h.threadTable.status,outcome:h.threadTable.outcome,pending:h.threadTable.pending,seen:h.threadTable.seen,routineId:h.threadTable.routineId,inputTokens:h.threadTable.inputTokens,outputTokens:h.threadTable.outputTokens,contextTokens:h.threadTable.contextTokens,contextBudget:h.threadTable.contextBudget,createdAt:h.threadTable.createdAt,updatedAt:h.threadTable.updatedAt};async function f(e){let{opening:t,...a}=e,r=await s.database.transaction(async e=>{let[r]=await e.insert(h.threadTable).values({id:crypto.randomUUID(),status:"running",...a}).returning();return await e.insert(h.threadMessageTable).values({threadId:r.id,seq:0,bot:null,parent:null,role:"user",content:t,compact:!1,note:!1}),await e.insert(h.threadWorkTable).values({id:crypto.randomUUID(),threadId:r.id,bot:r.bot,caller:p.ROOM_THURSDAY,state:"queued"}),r});return K(),r}async function y(e,t){await s.database.update(h.threadTable).set({...t,updatedAt:new Date}).where((0,r.eq)(h.threadTable.id,e)),K()}async function g(e){0!==e.length&&(await s.database.transaction(async t=>{await t.update(h.threadTable).set({seen:!0}).where((0,r.inArray)(h.threadTable.id,e)),await t.update(h.threadRelayTable).set({accepted:!0}).where((0,r.inArray)(h.threadRelayTable.threadId,e))}),K())}async function m(e,t,a=null){(t.input||t.output||null!==a)&&(await s.database.update(h.threadTable).set({inputTokens:n.sql`${h.threadTable.inputTokens} + ${t.input}`,outputTokens:n.sql`${h.threadTable.outputTokens} + ${t.output}`,cacheReadTokens:n.sql`${h.threadTable.cacheReadTokens} + ${t.cacheRead}`,cacheWriteTokens:n.sql`${h.threadTable.cacheWriteTokens} + ${t.cacheWrite}`,...null===a?{}:{contextTokens:a.tokens,contextBudget:a.budget}}).where((0,r.eq)(h.threadTable.id,e)),K())}async function k(e){let[t]=await s.database.select(P).from(h.threadTable).where((0,r.eq)(h.threadTable.id,e));if(!t)return null;let[a]=await N([t]);return a??null}async function q(e){let[t]=await s.database.select().from(h.threadTable).where((0,r.eq)(h.threadTable.id,e));return t??null}let F=e=>"running"===e||"waiting"===e;async function I(){let[e,t,a,n]=await Promise.all([s.database.select(P).from(h.threadTable).where((0,r.inArray)(h.threadTable.status,["running","waiting"])).orderBy((0,d.desc)(h.threadTable.updatedAt)),s.database.select(P).from(h.threadTable).where((0,r.inArray)(h.threadTable.status,["done","cancelled"])).orderBy((0,d.desc)(h.threadTable.updatedAt)).limit(o.INBOX_FINISHED),s.database.select(P).from(h.threadTable).where((0,r.and)((0,r.inArray)(h.threadTable.status,["done","cancelled"]),(0,r.eq)(h.threadTable.seen,!1))),s.database.select(P).from(h.threadTable).where((0,r.inArray)(h.threadTable.id,s.database.select({id:h.threadRelayTable.threadId}).from(h.threadRelayTable).where((0,r.eq)(h.threadRelayTable.accepted,!1))))]),l=[...new Map([...e,...t,...a,...n].map(e=>[e.id,e])).values()].sort((e,t)=>t.updatedAt.getTime()-e.updatedAt.getTime());return N(l,e=>F(e.status))}async function W(){let e=await s.database.select(P).from(h.threadTable).orderBy(n.sql`case when ${h.threadTable.status} in ('running', 'waiting') then 0 else 1 end`,(0,d.desc)(h.threadTable.updatedAt),(0,d.desc)(h.threadTable.id)).limit(o.THREAD_STATUS_LIMIT);return N(e)}async function A(e={}){let t=await s.database.select(P).from(h.threadTable).where(e.before?(0,r.lt)(h.threadTable.updatedAt,e.before):void 0).orderBy((0,d.desc)(h.threadTable.updatedAt)).limit(e.limit??o.PAGE_SIZE);return N(t,e=>F(e.status))}async function R(e){return e.length?await s.database.select({id:h.threadTable.id,callId:h.threadTable.callId,label:h.threadTable.label,status:h.threadTable.status,outcome:h.threadTable.outcome}).from(h.threadTable).where((0,r.inArray)(h.threadTable.callId,e)).orderBy(h.threadTable.createdAt):[]}async function v(e,t){let a=(a,n)=>s.database.select({id:h.threadTable.id,owner:h.threadTable.bot,label:h.threadTable.label,status:h.threadTable.status,pending:h.threadTable.pending,updatedAt:h.threadTable.updatedAt}).from(h.threadTable).where((0,r.and)((0,r.inArray)(h.threadTable.status,a),t?(0,r.ne)(h.threadTable.id,t):void 0,(0,r.inArray)(h.threadTable.id,s.database.select({id:h.threadWorkTable.threadId}).from(h.threadWorkTable).where((0,r.eq)(h.threadWorkTable.bot,e))))).orderBy((0,d.desc)(h.threadTable.updatedAt)).limit(n),[n,l]=await Promise.all([a(["running","waiting"],o.BOT_WORK.open),a(["done","cancelled"],o.BOT_WORK.recent)]),i=[...n,...l].map(e=>e.id);if(!i.length)return{open:[],recent:[]};let u=await s.database.select({id:h.threadWorkTable.id,threadId:h.threadWorkTable.threadId,result:h.threadWorkTable.result}).from(h.threadWorkTable).where((0,r.and)((0,r.eq)(h.threadWorkTable.bot,e),(0,r.inArray)(h.threadWorkTable.threadId,i),(0,r.isNotNull)(h.threadWorkTable.result))).orderBy((0,d.desc)(h.threadWorkTable.createdAt)),b=new Map;for(let{id:e,threadId:t,result:a}of u)a?.trim()&&!b.has(t)&&b.set(t,{workId:e,words:a});let c=({pending:e,...t})=>{let a=b.get(t.id);return{...t,workId:a?.workId??null,asking:"waiting"===t.status&&!!e?.messageId,said:a?.words??null,cut:!!a&&a.words.replace(/\s+/g," ").trim().length>o.BOT_WORK.said}};return{open:n.map(c),recent:l.map(c)}}async function x(e,t){if(t.owner===e){let[e]=await s.database.select({request:h.threadTable.request}).from(h.threadTable).where((0,r.eq)(h.threadTable.id,t.id));return e?.request??""}return t.workId?(await s.database.select({text:h.threadDeliveryTable.text}).from(h.threadDeliveryTable).where((0,r.eq)(h.threadDeliveryTable.workId,t.workId)).orderBy(h.threadDeliveryTable.id)).map(e=>e.text).join("\n\n"):""}async function O(e){let t=await s.database.delete(h.threadTable).where((0,r.eq)(h.threadTable.id,e)).returning({id:h.threadTable.id});return t.length&&K(),t.length>0}async function D(){return(await s.database.select({id:h.threadTable.id}).from(h.threadTable).where((0,r.eq)(h.threadTable.status,"running"))).map(e=>e.id)}async function M(){return await s.database.select({id:h.threadTable.id,label:h.threadTable.label,status:h.threadTable.status,endedAt:h.threadTable.endedAt,updatedAt:h.threadTable.updatedAt}).from(h.threadTable)}function S(e){let t=new Set;for(let a of e)if(Array.isArray(a))for(let e of a){if("tool-call"!==e.type||e.toolName!==u.TOOL_NAMES.write_file)continue;let a=e.input?.path;"string"==typeof a&&a.trim()&&(t.delete(a.trim()),t.add(a.trim()))}return[...t]}async function _(e){let t=await s.database.select({content:h.threadMessageTable.content}).from(h.threadMessageTable).where((0,r.and)((0,r.eq)(h.threadMessageTable.threadId,e),(0,r.eq)(h.threadMessageTable.role,"assistant"))).orderBy(h.threadMessageTable.seq);return S(t.map(e=>e.content))}async function E(e){let t=e.trim();if(!t)return null;let a=await q(t);if(a)return a;let r=t.toLowerCase();return(await s.database.select().from(h.threadTable).orderBy((0,d.desc)(h.threadTable.updatedAt)).limit(o.THREAD_LABEL_REACH)).find(e=>e.label.toLowerCase()===r)??null}async function $(e,t,a){await s.database.insert(h.threadMessageTable).values({threadId:e,seq:t,...a,compact:a.compact??!1,note:a.note??!1}).onConflictDoUpdate({target:[h.threadMessageTable.threadId,h.threadMessageTable.seq],set:{role:a.role,content:a.content,compact:a.compact??!1,note:a.note??!1}}),K()}async function U(e,t){t.length&&(await s.database.delete(h.threadMessageTable).where((0,r.and)((0,r.eq)(h.threadMessageTable.threadId,e),(0,r.inArray)(h.threadMessageTable.seq,t))),K())}async function N(e,t=()=>!0){if(0===e.length)return[];let a=e.filter(t).map(e=>e.id),d=a.length?await s.database.select().from(h.threadMessageTable).where((0,r.inArray)(h.threadMessageTable.threadId,a)).orderBy(h.threadMessageTable.seq):[],n=e.map(e=>e.id),[l,i,o]=await Promise.all([s.database.select().from(h.threadWorkTable).where((0,r.inArray)(h.threadWorkTable.threadId,n)),s.database.select().from(h.threadDeliveryTable).where((0,r.and)((0,r.inArray)(h.threadDeliveryTable.threadId,n),(0,r.eq)(h.threadDeliveryTable.visible,!0))),s.database.select().from(h.threadRelayTable).where((0,r.and)((0,r.inArray)(h.threadRelayTable.threadId,n),(0,r.eq)(h.threadRelayTable.accepted,!1)))]),w=new Map(e.map(e=>[e.id,e.bot])),f=new Map(l.map(e=>[e.id,e.caller])),y=new Map;for(let e of d){let t=y.get(e.threadId)??[];t.push(...function(e,t){if(e.hidden)return[];let a={seq:e.seq,bot:e.bot,parent:e.parent,to:"user"===e.role?e.bot:t,at:e.createdAt},r=t=>`${e.id}-${t}`,d=e.content;if("user"===e.role){if(0===e.seq)return[];let t="string"==typeof d?d:d.flatMap(e=>"text"===e.type&&e.text?[e.text]:[]).join("\n").trim();if(!t)return[];if(e.compact)return[{...a,id:r(0),kind:"note",text:t}];if(e.note){let e=t.endsWith(p.RESUME_CHECK)?t.slice(0,-p.RESUME_CHECK.length).trimEnd():t;return[{...a,id:r(0),kind:"stop",text:e}]}return[{...a,id:r(0),kind:"user",text:(0,c.untagSpeaker)(t)}]}if("assistant"===e.role){let t=e.content;if("string"==typeof t)return t.trim()?[{...a,id:r(0),kind:"text",text:t.trim()}]:[];let d=[];return t.forEach((t,n)=>{if("text"===t.type){let e=t.text.trim();e&&d.push({...a,id:r(n),kind:"text",text:e});return}if("tool-result"===t.type)return void d.push(Y(a,r(n),t));if("tool-call"!==t.type)return;let l=t.input??{};if(t.toolName===u.TOOL_NAMES.send_message){let i;d.push({...a,id:r(n),kind:"ask",callId:t.toolCallId,to:(i=String(l.to??"").trim()).toLowerCase()===p.ROOM_THURSDAY.toLowerCase()?p.ROOM_THURSDAY:i,text:String(l.text??""),question:"question"===l.kind,..."question"===l.kind&&e.bot?{questionId:(0,T.messageKey)(e.threadId,e.bot,t.toolCallId)}:{}})}else t.toolName===u.TOOL_NAMES.bash?d.push({...a,id:r(n),kind:"tool",callId:t.toolCallId,name:t.toolName,input:(0,b.clip)(String(l.command??""),120),note:B(l)}):d.push({...a,id:r(n),kind:"tool",callId:t.toolCallId,name:t.toolName,input:C(t.toolName,l),note:B(l),path:t.toolName===u.TOOL_NAMES.write_file?z(l,"path")??null:null})}),d}if("tool"===e.role){let t=[];return e.content.forEach((e,d)=>{"tool-result"!==e.type||(e.toolName!==u.TOOL_NAMES.send_message||"error-text"===e.output.type)&&t.push(Y(a,r(d),e))}),t}return[]}(e,(e.parent?f.get(e.parent):null)??w.get(e.threadId)??"")),y.set(e.threadId,t)}return e.map(e=>{let t=l.filter(t=>t.threadId===e.id),a=["running","queued","paused","waiting","done","cancelled"],r=[...new Set(t.map(e=>e.bot))].filter(e=>e!==p.ROOM_THURSDAY).map(e=>({bot:e,state:t.filter(t=>t.bot===e).sort((e,t)=>a.indexOf(e.state)-a.indexOf(t.state))[0].state}));return{...function(e,t){let{pending:a,inputTokens:r,outputTokens:d,...n}=e;return{...n,ask:"waiting"===e.status?{question:e.outcome??"",options:a?.options??[],messageId:a?.messageId,bot:a?.bot}:null,tokens:{input:r,output:d},lines:t}}(e,y.get(e.id)??[]),room:{participants:r,questions:t.filter(e=>"external"===e.state).map(e=>({id:e.id,bot:e.caller,text:e.result??"",options:e.options})),deliveries:i.filter(t=>t.threadId===e.id).map(a=>({id:a.key,bot:t.find(e=>e.id===a.workId)?.bot??e.bot,text:a.text,delivered:a.consumed})),relays:o.filter(t=>t.threadId===e.id)}}})}let V=["query","command","prompt","url","path","pattern","request","question","title","name","thread","text"],z=(e,t)=>{let a=e[t];return"string"==typeof a&&a.trim()?a:null};function B(e){let t=z(e,"description");return t?(0,b.clip)(t,120):null}function C(e,t){let a=t??{};if("object"!=typeof a||Array.isArray(a))return(0,b.clip)(String(t??""),120);if(e===u.TOOL_NAMES.bash)return B(a)??(0,b.clip)(String(a.command??""),120);if(e===u.TOOL_NAMES.tool_call||e===u.TOOL_NAMES.tool_search){let e=Array.isArray(a.tools)?a.tools.map(String).join(", "):String(a.tool??""),t=a.args??null,r=t&&"object"==typeof t?String(a.server??"")===o.STUDIO_SERVER?H(t):JSON.stringify(t):"";return(0,b.clip)([String(a.server??""),e,r].filter(Boolean).join(" "),120)}let r=H(a);return r?(0,b.clip)(r,120):Object.keys(a).length?(0,b.clip)(JSON.stringify(a),120):""}function H(e){for(let t of V){let a=z(e,t);if(a)return a}for(let t of Object.keys(e)){let a=z(e,t);if(a)return a}return""}async function L(e,t){for(let a of(await s.database.select({role:h.threadMessageTable.role,content:h.threadMessageTable.content}).from(h.threadMessageTable).where((0,r.and)((0,r.eq)(h.threadMessageTable.threadId,e),(0,r.inArray)(h.threadMessageTable.role,["tool","assistant"])))))if("string"!=typeof a.content){for(let e of a.content)if("tool-result"===e.type&&e.toolCallId===t)return j(e.output,o.FULL_RESULT_LINES,!0)}return null}let G=/https?:\/\/\S+(?: · \d{4}-\d{2}-\d{2})?\s*$/,X=" — ";function Y(e,t,a){let r=a.toolName===u.TOOL_NAMES.web_search,d=j(a.output,r?o.FULL_RESULT_LINES:5),n=d.flatMap(e=>"text"===e.type?[e.text]:[]),l=r?n.filter(e=>G.test(e)):[],i=(l.length?l:n).slice(0,4);return{...e,id:t,kind:"tool-result",callId:a.toolCallId,name:a.toolName,results:i.map(e=>({type:"text",text:l.length?function(e){let t=e.replace(/\s+/g," ").trim(),a=G.exec(t);if(!a||t.length<=200)return(0,b.clip)(t,200);let r=a[0].trim(),d=t.slice(0,a.index).replace(/[\s—-]+$/,""),n=200-r.length-X.length;return d&&n>1?`${(0,b.clip)(d,n)}${X}${r}`:r}(e):(0,b.clip)(e,200)})),more:n.length>i.length||d.length>n.length||i.some(e=>e.length>200)}}function j(e,t,a=!1){var r;if(null==e)return[];if("string"==typeof e)return J(e,t,a);if("object"!=typeof e)return J(String(e),t,a);switch(e.type){case"text":case"error-text":return J(String(e.value??""),t,a);case"json":case"error-json":return j(e.value,t,a);case"execution-denied":return J("Denied.",t,a);case"content":{if(!Array.isArray(e.value))return[];let r=[];for(let d of e.value){if("text"===d.type&&"string"==typeof d.text){r.push(...J(d.text,t,a));continue}let e=function(e){let t=String(e.mediaType??"");if(!t.startsWith("image/"))return null;let a=e.data;return"string"==typeof a?`data:${t};base64,${a}`:a?.type==="url"&&a.url?a.url:a?.type==="data"&&"string"==typeof a.data?`data:${t};base64,${a.data}`:null}(d);e&&r.push({type:"image",src:e})}return r}}return"string"==typeof e.path&&String(e.mediaType??"").startsWith("image/")?[{type:"text",text:e.path},{type:"image",src:i.queryKey.file(e.path)}]:Array.isArray(e.sources)?e.sources.map(e=>String(e?.title??"")).filter(Boolean).slice(0,t).map(e=>({type:"text",text:e})):"string"==typeof e.stdout?J(e.stdout||String(e.stderr??""),t,a):"string"==typeof e.answer?J(e.answer,t,a):J(a?(r=e,Array.isArray(r)?JSON.stringify(r,null,2):Object.entries(r).map(([e,t])=>"string"==typeof t&&t.includes("\n")?`${e}:
|
|
4
|
+
${t}`:`${e}: ${JSON.stringify(t,null,2)}`).join("\n")):JSON.stringify(e),t,a)}function J(e,t,a=!1){if(a){let a=e.split("\n"),r=a.slice(0,t);a.length>t&&r.push(`… ${a.length-t} more lines`);let d=r.join("\n").trimEnd();return d?[{type:"text",text:d}]:[]}return e.split("\n").map(e=>e.trim()).filter(Boolean).slice(0,t).map(e=>({type:"text",text:e}))}e.s(["addThreadUsage",0,m,"argumentLine",0,C,"deleteMessages",0,U,"deleteThread",0,O,"findThread",0,q,"findThreadView",0,k,"insertThread",0,f,"listBotWork",0,v,"listCallJobs",0,R,"listInboxThreads",0,I,"listRunningThreadIds",0,D,"listThreadFolders",0,M,"listThreadHistory",0,A,"listThreadOverview",0,W,"listWrittenPaths",0,_,"markSeen",0,g,"readBotAsk",0,x,"readToolResult",0,L,"resolveThread",0,E,"updateThread",0,y,"upsertMessage",0,$,"writtenPathsIn",0,S]),a()}catch(e){a(e)}},!1)];
|
|
5
5
|
|
|
6
6
|
//# sourceMappingURL=features_bot_08z387_._.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
module.exports=[786025,211644,t=>{"use strict";var e=t.i(666680),a=t.i(902157),r=t.i(912714),i=t.i(660526),n=t.i(750227),o=t.i(
|
|
2
|
-
[${t}]`,m("SIGTERM"),u=setTimeout(()=>{w+="\n[Killed: it did not exit on SIGTERM]",m("SIGKILL"),h=setTimeout(()=>{
|
|
1
|
+
module.exports=[786025,211644,t=>{"use strict";var e=t.i(666680),a=t.i(902157),r=t.i(912714),i=t.i(660526),n=t.i(750227),o=t.i(380690),s=t.i(687388),l=t.i(554199);let c=2*Math.PI,u=t=>Math.round(100*t)/100;function h(t){let e=t>>>0;return()=>{let t=Math.imul((e=e+0x6d2b79f5>>>0)^e>>>15,1|e);return(((t=t+Math.imul(t^t>>>7,61|t)^t)^t>>>14)>>>0)/0x100000000}}function f(t,e){return[t[0]-e[0],t[1]-e[1]]}function d(t){let e=Math.hypot(t[0],t[1])||1;return[t[0]/e,t[1]/e]}let p={shape:"blob",sides:3,corner:.74,rotation:0,squircle:4.6,wobble:.2,seed:113,autofit:!0,color:"currentColor",fill:!0,strokeWidth:14,eyeLen:51,eyeWidth:38,eyeBend:-1,eyeTaper:.35,eyeTilt:-90,eyeSkew:0,eyeGap:88,eyeY:100,gazeRange:7,follow:!0,ripple:9,pulse:7,punch:.05,bandEase:.019,bobRate:1,stretch:15,idle:!0,liveliness:55,float:7,breathe:3.7,speed:1.7,blink:!0,notify:!1,notifyAngle:41,notifyDist:109,notifyR:25,notifyRing:11};function w(t,e,a=.035){let r=h(12139^e),i=[2,3,5].map(t=>({k:t,a:(2*r()-1)/t,p:r()*c})),n=t.map((t,e)=>{let a=e/128*c,r=0;for(let t of i)r+=t.a*Math.sin(t.k*a+t.p);return r}),o=Math.max(...n.map(Math.abs))||1;return t.map((t,e)=>t*(1+a*n[e]/o))}let m=new Map;var S=t.i(640911),y=t.i(874533),T=s;let M=["/bin/bash","/usr/bin/bash","/usr/local/bin/bash"].find(t=>(0,a.existsSync)(t))??null,A=new Set(["node_modules",".git",".next","dist","build",".venv","__pycache__",".turbo","coverage"]);async function*$(t){let e;try{e=await (0,r.readdir)(t,{withFileTypes:!0})}catch{return}for(let a of e){if(A.has(a.name)||a.name.startsWith("."))continue;let e=(0,n.join)(t,a.name);a.isDirectory()?yield*$(e):a.isFile()&&(yield e)}}let b=/^(PORT|HOSTNAME|NODE_ENV|INIT_CWD|NEXT_MANUAL_SIG_HANDLE)$|^_*NEXT_|^TURBOPACK|^npm_|^THURSDAY_/i,_=({workingDirectory:t,spill:e,toolPath:a})=>{let i=(0,n.resolve)(t),o=(a??[]).filter(Boolean).join(":"),s=t=>t.startsWith("/")||/^[A-Za-z]:/.test(t)?t:(0,n.resolve)(i,t);return{cwd:i,resolve:s,readFile:(t,e)=>(0,r.readFile)(s(t),e),async writeFile(t,e){let a=s(t);await (0,r.mkdir)((0,n.join)(a,".."),{recursive:!0}),await (0,r.writeFile)(a,e)},readdir:(t,e)=>(0,r.readdir)(s(t),e),fold:(t,a="output")=>P(t,a,i,e),async listFiles(t,{limit:e=200,skip:a=[]}={}){let r=s(t),i=[];for await(let t of $(r)){let e=(0,n.relative)(r,t).split(n.sep).join("/");a.includes(e.split("/")[0]??"")||i.push(e)}return i.sort((t,e)=>t.split("/").length-e.split("/").length||(t<e?-1:+(t>e))),{files:i.slice(0,e),total:i.length}},exec:(t,{cwd:a,timeoutMs:r=T.EXEC_TIMEOUT_MS,signal:n,env:l}={})=>new Promise(c=>{let u,h,f=function(){let t={...process.env};for(let e of Object.keys(t))(b.test(e)||/KEY|TOKEN|SECRET|PASS|_PWD|CREDENTIAL|_AUTH|_DSN|DATABASE_URL/i.test(e))&&delete t[e];return t.TERM="dumb",t.PAGER="cat",t.GIT_PAGER="cat",t}();o&&(f.PATH=`${f.PATH??""}:${o}`);let d=(0,y.spawn)(t,{shell:M??!0,cwd:a?s(a):i,env:{...f,...l},detached:!0}),p="",w="";d.stdout?.on("data",t=>p+=t),d.stderr?.on("data",t=>w+=t);let m=t=>{try{d.pid&&process.kill(-d.pid,t)}catch{d.kill(t)}},S=!1,A=async t=>{S||(S=!0,clearTimeout(_),clearTimeout(u),clearTimeout(h),n?.removeEventListener("abort",E),c({...t,stdout:await P(t.stdout,"stdout",i,e),stderr:await P(t.stderr,"stderr",i,e)}))},$=t=>{u||S||(w+=`
|
|
2
|
+
[${t}]`,m("SIGTERM"),u=setTimeout(()=>{w+="\n[Killed: it did not exit on SIGTERM]",m("SIGKILL"),h=setTimeout(()=>{d.stdout?.destroy(),d.stderr?.destroy(),A({stdout:p,stderr:w,exitCode:-1})},1e3)},T.EXEC_KILL_GRACE_MS))},_=setTimeout(()=>$(`Timed out after ${r}ms`),r),E=()=>$("Aborted");n?.aborted?E():n?.addEventListener("abort",E,{once:!0}),d.on("close",t=>A({stdout:p,stderr:w,exitCode:t??-1})),d.on("error",t=>A({stdout:p,stderr:w+String(t),exitCode:-1}))})}};async function P(t,e,a,i){if(t.length<=i.max)return t;let o=(0,n.join)(a,i.dir),s=(0,n.join)(o,`${new Date().toISOString().replace(/[:.]/g,"-")}-${e.replace(/[^a-zA-Z0-9_-]+/g,"_")}.txt`),l=s;try{await (0,r.mkdir)(o,{recursive:!0}),await (0,r.writeFile)(s,t),l=(0,n.relative)(a,s)||s}catch{l="(could not be written to a file)"}let c=(t.match(/\n/g)?.length??0)+1;return`${t.slice(0,i.head).trimEnd()}
|
|
3
3
|
|
|
4
4
|
[${e} cut at ${i.max.toLocaleString("en")} chars — the whole thing (${c} lines) is at ${l}. Read the part you need with \`sed -n\`.]
|
|
5
5
|
|
|
6
|
-
${t.slice(-i.tail).trimStart()}`}t.s(["BASH",0,y,"createSandBox",0,b,"walkFiles",0,A],211644);var P=t.i(41444);let g=o.APP_DIR,E=(0,n.join)(o.DATA_DIR,o.PATHS.workspace),R=(process.env.THURSDAY_TOOL_PATH?.split(":")??[(0,n.join)(g,"node_modules",".bin")]).filter(Boolean),I=(0,n.join)(E,o.PATHS.artifacts),v=[o.PATHS.artifacts,o.PATHS.projects,o.PATHS.scratch,o.PATHS.bots],H=new Set([...v,".agents"]),L=".playwright-cli",O=(t,e)=>e===t||e.startsWith(t+n.sep),j=t=>(0,r.realpath)(t).catch(()=>null);async function k(t){let e=await j(E)??E,a=(0,n.resolve)(E,t);if(!O(E,a))return null;let r=a,i=await j(r);for(;null===i&&(0,n.dirname)(r)!==r;)r=(0,n.dirname)(r),i=await j(r);if(null===i)return null;let o=(0,n.relative)(r,a),s=o?(0,n.join)(i,o):i;return O(e,s)?s:null}function W(t,e){return`${o.PATHS.scratch}/${(0,P.slug)(e)||"job"}-${t.slice(0,6)}`}let D=t=>t.replace(/[^\p{L}\p{N}_-]+/gu,"-"),C=t=>`${o.PATHS.bots}/${D(t)}`,x=t=>`${o.PATHS.artifacts}/${D(t)}`;async function F(t){let e=C(t),a=x(t);return await Promise.all([e,a].map(t=>(0,r.mkdir)((0,n.join)(E,t),{recursive:!0}))),{own:e,artifacts:a}}async function B(t,e){let a=W(t,e);return await (0,r.mkdir)((0,n.join)(E,a),{recursive:!0}),a}let N=t=>({PLAYWRIGHT_MCP_BROWSER:"chromium",...t?{PLAYWRIGHT_CLI_SESSION:`thread-${t}`,PLAYWRIGHT_MCP_VIEWPORT_SIZE:o.BROWSER_VIEWPORT}:{}}),U={runtimes:["node","python3","uv","bun","deno"],managers:["pnpm","npm","yarn"]};async function Y(t){let e=Object.values(U).flat(),{stdout:a}=await t.exec(e.map(t=>`command -v ${t} >/dev/null 2>&1 && printf '%s ' ${t}`).join("; "),{timeoutMs:1e4}),r=new Set(a.trim().split(/\s+/).filter(Boolean)),i=t=>({found:t.filter(t=>r.has(t)),missing:t.filter(t=>!r.has(t))});return{runtimes:i(U.runtimes),managers:i(U.managers),browser:null}}async function G(){await tt(),await Q()}async function K(t,e){let{browsers:a}=JSON.parse((await t.exec("playwright-cli list --json",{env:e,timeoutMs:o.BROWSER_CLI.readMs})).stdout||"{}");return a??[]}async function J(t){await Z(t,await V(t,!1))}async function q(t){await V(t,!0)}async function X(t){await Z(t,await V(t,!0))}async function Z(t,e){let a=await z(),i=N(t).PLAYWRIGHT_CLI_SESSION;for(let t of(await (0,r.readdir)(a).catch(()=>[]))){let o=t.startsWith("ud-")?t.slice(3):t;(o===i||o.startsWith(`${i}-`)||o.startsWith(`${i}.`))&&(e.some(t=>o===t||o.startsWith(`${t}-`)||o.startsWith(`${t}.`))||await (0,r.rm)((0,n.join)(a,t),{recursive:!0,force:!0}).catch(e=>m.logger.warn(`browser data ${t}: ${String(e)}`)))}}async function z(){let t=process.env.XDG_CACHE_HOME||(0,n.join)((0,i.homedir)(),".cache"),a=await (0,r.realpath)(E).catch(()=>E);return(0,n.join)(t,"ms-playwright","daemon",(0,e.createHash)("sha1").update(a).digest("hex").slice(0,16))}async function V(t,e){let r=await tn(),i=N(t),n=await K(r,i).then(t=>t.filter(t=>t.name===i.PLAYWRIGHT_CLI_SESSION||t.name.startsWith(`${i.PLAYWRIGHT_CLI_SESSION}-`))).catch(()=>[]),s=n.length?await z():"";s&&!(0,a.existsSync)(s)&&m.logger.warn(`playwright-cli keeps this workspace's browsers somewhere other than ${s}: removing a thread will leave its browser profiles on disk`);let l=[];for(let t of n){if(t.attached||!e&&!1!==t.headed){l.push(t.name);continue}await r.exec("playwright-cli close",{env:{...i,PLAYWRIGHT_CLI_SESSION:t.name},timeoutMs:o.BROWSER_CLI.readMs}).catch(()=>{})}return await G(),l}let Q=()=>te(o.PATHS.output),tt=()=>te(L);async function te(t){let e=(0,n.join)(E,t),a=await (0,r.readdir)(e,{withFileTypes:!0}).catch(()=>[]),i=Date.now()-o.WORKSPACE_KEEP.forMs;for(let t of a){if(!t.isFile())continue;let a=(0,n.join)(e,t.name),o=await (0,r.stat)(a).catch(()=>null);o&&o.mtimeMs<i&&await (0,r.unlink)(a).catch(()=>{})}}async function ta(){return(await (0,r.readdir)((0,n.join)(E,o.PATHS.scratch),{withFileTypes:!0}).catch(()=>[])).filter(t=>t.isDirectory()).map(t=>`${o.PATHS.scratch}/${t.name}`)}async function tr(t){let e=Date.now()-o.WORKSPACE_KEEP.forMs,a=[];for(let i of t){let t=(0,n.join)(E,i),o=await (0,r.stat)(t).catch(()=>null);o?.isDirectory()&&!(o.mtimeMs>=e)&&(await (0,r.rm)(t,{recursive:!0,force:!0}).catch(()=>{}),a.push(i))}return a}let ti={"pnpm-workspace.yaml":"packages:\n - '**'\n",".npmrc":"recursive-install=false\n"};async function tn(){for(let t of[...v,".playwright"])await (0,r.mkdir)((0,n.join)(E,t),{recursive:!0});for(let[t,e]of Object.entries(ti))await (0,r.writeFile)((0,n.join)(E,t),e,{flag:"wx"}).catch(()=>{});return b({workingDirectory:E,spill:{dir:o.PATHS.output,...o.TOOL_OUTPUT},toolPath:R})}async function to(t,e){let a=t.map(t=>(0,n.resolve)(E,t));if(e){let t=0;for await(let r of A((0,n.join)(E,e)))if(a.push(r),(t+=1)>=o.JOB_FOLDER_WALK)break}let i=new Map;for(let t of a){let e=await (0,r.stat)(t).catch(()=>null);if(!e?.isFile())continue;let a=(0,n.relative)(E,t);i.set(a&&!a.startsWith("..")?a:t,e.mtimeMs)}return[...i].sort((t,e)=>t[1]-e[1]).map(([t])=>t)}async function ts(t,e){let a=W(t,e);await (0,r.rm)((0,n.join)(E,a),{recursive:!0,force:!0}).catch(t=>m.logger.warn(`job folder ${a}: ${String(t)}`))}t.s(["ARTIFACTS",0,I,"DELETED_BOT_MARK",0,".deleted-bot.json","WORKSPACE",0,E,"botArtifacts",0,x,"botBrowserSession",0,(t,a)=>`${t}-bot-${(0,e.createHash)("sha256").update(a.trim().toLowerCase()).digest("hex").slice(0,20)}`,"botFolder",0,C,"botFolderName",0,D,"botShellEnv",0,(t,e)=>({THURSDAY_BOT:t,THURSDAY_BOT_MARK:JSON.stringify(function(t,e){let{head:a,eyes:r}=function(t,e=f.shape){let a=(t,e)=>(function(t){let e=t.tilt*Math.PI/180,a=Math.cos(e),r=Math.sin(e),i=(e,i)=>[t.cx+e*a-i*r,t.cy+e*r+i*a],n=-t.len/2,o=t.len/2,s=[],l=[];for(let e=0;e<=30;e++){let a=e/30,r=1-a,c=r*r*n+a*a*o,u=-(2*r*a*t.bend),h=-(2*r*n)+2*a*o,d=-(2*r*t.bend)+2*a*t.bend,f=Math.hypot(h,d)||1,p=-d/f,w=h/f,m=t.width/2*Math.sin(Math.PI*a)**t.taper;s.push(i(c+p*m,u+w*m)),l.push(i(c-p*m,u-w*m))}let u=`M${c(s[0][0])} ${c(s[0][1])}`;for(let t=1;t<=30;t++)u+=`L${c(s[t][0])} ${c(s[t][1])}`;for(let t=29;t>=0;t--)u+=`L${c(l[t][0])} ${c(l[t][1])}`;return`${u}Z`})({len:f.eyeLen,width:f.eyeWidth,bend:f.eyeBend,taper:f.eyeTaper,tilt:e,cx:t,cy:f.eyeY});return{head:function(t){let e=t.map((t,e)=>{let a=e/128*l;return[120+Math.cos(a)*t,120+Math.sin(a)*t]}),a=`M${c(e[0][0])} ${c(e[0][1])}`;for(let t=0;t<128;t++){let r=e[(t-1+128)%128],i=e[t],n=e[(t+1)%128],o=e[(t+2)%128],s=i[0]+(n[0]-r[0])/6,l=i[1]+(n[1]-r[1])/6,u=n[0]-(o[0]-i[0])/6,h=n[1]-(o[1]-i[1])/6;a+=`C${c(s)} ${c(l)} ${c(u)} ${c(h)} ${c(n[0])} ${c(n[1])}`}return`${a}Z`}(function(t,e,a){var r,i,n;let o=`${"poly"===e?`poly|${t.sides}|${t.corner}|${t.rotation}|${a}`:"squircle"===e?`squircle|${t.squircle}|${a}`:"heart"===e?`heart|${a}`:`blob|${t.wobble}|${a}`}|${t.autofit}`,s=w.get(o);if(s)return s;let c=function(t){let e=Array(128);for(let a=0;a<128;a++){let r=a/128*l,i=Math.cos(r),n=Math.sin(r),o=0;for(let e=0;e<t.length;e++){let a=t[e],r=t[(e+1)%t.length],s=r[0]-a[0],l=r[1]-a[1],c=i*l-n*s;if(1e-9>Math.abs(c))continue;let u=a[0]-120,h=a[1]-120,d=(u*l-h*s)/c,f=(u*n-h*i)/c;d>o&&f>=-1e-9&&f<=1+1e-9&&(o=d)}e[a]=o||112}return e}((r=t,i=e,n=a,"squircle"===i?function(t){let e=[],a=2/t;for(let t=0;t<360;t++){let r=t/360*l,i=Math.cos(r),n=Math.sin(r);e.push([120+Math.sign(i)*Math.abs(i)**a*112,120+Math.sign(n)*Math.abs(n)**a*112])}return e}(r.squircle):"poly"===i?function(t,e,a){let r=a*Math.PI/180-Math.PI/2,i=[];for(let e=0;e<t;e++){let a=r+e/t*l;i.push([120+112*Math.cos(a),120+112*Math.sin(a)])}let n=(Math.PI-l/t)/2,o=224*Math.sin(Math.PI/t)/2*Math.tan(n)*Math.min(1,Math.max(.001,e)),s=o/Math.tan(n),c=[];for(let e=0;e<t;e++){let a=i[e],r=i[(e-1+t)%t],u=i[(e+1)%t],f=d(h(r,a)),p=d(h(u,a)),w=[a[0]+f[0]*s,a[1]+f[1]*s],m=d([f[0]+p[0],f[1]+p[1]]),S=[a[0]+m[0]*o/Math.sin(n),a[1]+m[1]*o/Math.sin(n)],T=Math.atan2(w[1]-S[1],w[0]-S[0]),y=[a[0]+p[0]*s,a[1]+p[1]*s],M=Math.atan2(y[1]-S[1],y[0]-S[0])-T;for(;M>Math.PI;)M-=l;for(;M<-Math.PI;)M+=l;for(let t=0;t<=20;t++){let e=T+t/20*M;c.push([S[0]+Math.cos(e)*o,S[1]+Math.sin(e)*o])}}return c}(r.sides,r.corner,r.rotation):"heart"===i?function(){let t=[];for(let e=0;e<400;e++){let a=e/400*l,r=16*Math.sin(a)**3,i=13*Math.cos(a)-5*Math.cos(2*a)-2*Math.cos(3*a)-Math.cos(4*a);t.push([120+6.6*r,120-(i+2.2)*7.26])}return t}():function(t,e){let a=u(t),r=[1,2,3,4,5].map(t=>({k:t,a:(2*a()-1)/t,p:a()*l})),i=[],n=0;for(let t=0;t<360;t++){let e=t/360*l,a=0;for(let t of r)a+=t.a*Math.sin(t.k*e+t.p);i.push(a),n=Math.max(n,Math.abs(a))}let o=n>0?e/n:0;return i.map((t,e)=>{let a=e/360*l,r=112*(1+t*o);return[120+Math.cos(a)*r,120+Math.sin(a)*r]})}(n,r.wobble))),f="blob"===e?c:"heart"===e?function(t,e){let a=t;for(let t=0;t<2;t++){let t=a;a=t.map((e,a)=>{let r=0;for(let e=-3;e<=3;e++)r+=t[(a+e+128)%128];return r/7})}let r=a.reduce((t,e)=>t+e,0)/128,i=p(a.map(t=>.95*t+.05*r),e,.05),n=Math.round((2*u(20977^e)()-1)*3);return n?i.map((t,e)=>i[(e-n+256)%128]):i}(c,a):p(c,a),m=t.autofit?function(t){let e=l/128,a=0,r=0;for(let i of t)a+=.5*i*i*e,i>r&&(r=i);if(a<=0)return t;let i=Math.min(Math.sqrt(112*Math.PI*112/a),130/r);return t.map(t=>t*i)}(f):f;return w.size>400&&w.clear(),w.set(o,m),m}(f,e,function(t){if("number"==typeof t)return t;let e=0x811c9dc5;for(let a=0;a<t.length;a++)e=Math.imul(e^t.charCodeAt(a),0x1000193);return(e>>>0)%1e4}(t))),eyes:[a(120-f.eyeGap/2,f.eyeTilt),a(120+f.eyeGap/2,f.eyeTilt+f.eyeSkew)]}}(t,e?.shape??f.shape),i=e?.paint?s.MARK_PAINTS[e.paint]:null;return{head:a,eyes:r,ink:(0,s.markInk)(e?.color??s.MARK_SYSTEM,!1),paint:i?"aurora"===i.look?i.colors.slice(0,2):[...i.colors]:null,outline:e?.outline===!0}}(t,e)),THURSDAY_ARTIFACTS:(0,n.join)(E,x(t)),THURSDAY_SKILLS:(0,n.join)(o.APP_DIR,o.PATHS.skills.default),THURSDAY_TOOL_OUTPUT:String(o.TOOL_OUTPUT.max),DISABLE_TELEMETRY:"1"}),"browserStateFile",0,()=>`${L}/state-${crypto.randomUUID()}.json`,"closeHiddenBrowser",0,J,"closeJobShell",0,q,"filesOnDisk",0,to,"insideWorkspace",0,k,"jobScratch",0,W,"jobShellEnv",0,N,"listBrowsers",0,K,"listScratchFolders",0,ta,"openBotFolders",0,F,"openJobScratch",0,B,"openWorkspace",0,tn,"pruneJobFiles",0,G,"readMachineTools",0,Y,"removeJobBrowsers",0,X,"removeJobScratch",0,ts,"removeUnchangedFolders",0,tr,"saveBrowserState",0,t=>`mkdir -p ${L} && playwright-cli state-save ${t}`,"writeRefusal",0,function(t,e){if(O(E,t)){let r=(0,n.relative)(E,t),[i,s]=r.split(n.sep);return i&&H.has(i)?e&&i===o.PATHS.artifacts&&s&&s.toLowerCase()!==D(e).toLowerCase()&&!(0,a.existsSync)((0,n.join)(I,s))?`Not written: ${r} would sit loose at the top of ${o.PATHS.artifacts}/. Your finished work goes in ${x(e)}/.`:null:`Not written: ${r||"the workspace root"} is outside the workspace's folders. Finished work goes under ${e?x(e):o.PATHS.artifacts}/, code under ${o.PATHS.projects}/, your own kit under ${o.PATHS.bots}/, and this job's working material under ${o.PATHS.scratch}/.`}return O(g,t)?`Not written: ${t} is inside the app that is running you, not the user's files. Work in ${E}; outside it, write only where the user pointed you.`:null}],786025)}];
|
|
6
|
+
${t.slice(-i.tail).trimStart()}`}t.s(["BASH",0,M,"createSandBox",0,_,"walkFiles",0,$],211644);var E=t.i(41444);let g=s.APP_DIR,R=(0,n.join)(s.DATA_DIR,s.PATHS.workspace),I=(process.env.THURSDAY_TOOL_PATH?.split(":")??[(0,n.join)(g,"node_modules",".bin")]).filter(Boolean),v=(0,n.join)(R,s.PATHS.artifacts),H=[s.PATHS.artifacts,s.PATHS.projects,s.PATHS.scratch,s.PATHS.bots],L=new Set([...H,".agents"]),O=".playwright-cli",j=(t,e)=>e===t||e.startsWith(t+n.sep),k=t=>(0,r.realpath)(t).catch(()=>null);async function W(t){let e=await k(R)??R,a=(0,n.resolve)(R,t);if(!j(R,a))return null;let r=a,i=await k(r);for(;null===i&&(0,n.dirname)(r)!==r;)r=(0,n.dirname)(r),i=await k(r);if(null===i)return null;let o=(0,n.relative)(r,a),s=o?(0,n.join)(i,o):i;return j(e,s)?s:null}function D(t,e){return`${s.PATHS.scratch}/${(0,E.slug)(e)||"job"}-${t.slice(0,6)}`}let C=t=>t.replace(/[^\p{L}\p{N}_-]+/gu,"-"),x=t=>`${s.PATHS.bots}/${C(t)}`,F=t=>`${s.PATHS.artifacts}/${C(t)}`;async function B(t){let e=x(t),a=F(t);return await Promise.all([e,a].map(t=>(0,r.mkdir)((0,n.join)(R,t),{recursive:!0}))),{own:e,artifacts:a}}async function N(t,e){let a=D(t,e);return await (0,r.mkdir)((0,n.join)(R,a),{recursive:!0}),a}let U=t=>({PLAYWRIGHT_MCP_BROWSER:"chromium",...t?{PLAYWRIGHT_CLI_SESSION:`thread-${t}`,PLAYWRIGHT_MCP_VIEWPORT_SIZE:s.BROWSER_VIEWPORT}:{}}),Y={runtimes:["node","python3","uv","bun","deno"],managers:["pnpm","npm","yarn"]};async function G(t){let e=Object.values(Y).flat(),{stdout:a}=await t.exec(e.map(t=>`command -v ${t} >/dev/null 2>&1 && printf '%s ' ${t}`).join("; "),{timeoutMs:1e4}),r=new Set(a.trim().split(/\s+/).filter(Boolean)),i=t=>({found:t.filter(t=>r.has(t)),missing:t.filter(t=>!r.has(t))});return{runtimes:i(Y.runtimes),managers:i(Y.managers),browser:null}}async function K(){await te(),await tt()}async function J(t,e){let{browsers:a}=JSON.parse((await t.exec("playwright-cli list --json",{env:e,timeoutMs:s.BROWSER_CLI.readMs})).stdout||"{}");return a??[]}async function q(t){await z(t,await Q(t,!1))}async function X(t){await Q(t,!0)}async function Z(t){await z(t,await Q(t,!0))}async function z(t,e){let a=await V(),i=U(t).PLAYWRIGHT_CLI_SESSION;for(let t of(await (0,r.readdir)(a).catch(()=>[]))){let o=t.startsWith("ud-")?t.slice(3):t;(o===i||o.startsWith(`${i}-`)||o.startsWith(`${i}.`))&&(e.some(t=>o===t||o.startsWith(`${t}-`)||o.startsWith(`${t}.`))||await (0,r.rm)((0,n.join)(a,t),{recursive:!0,force:!0}).catch(e=>S.logger.warn(`browser data ${t}: ${String(e)}`)))}}async function V(){let t=process.env.XDG_CACHE_HOME||(0,n.join)((0,i.homedir)(),".cache"),a=await (0,r.realpath)(R).catch(()=>R);return(0,n.join)(t,"ms-playwright","daemon",(0,e.createHash)("sha1").update(a).digest("hex").slice(0,16))}async function Q(t,e){let r=await to(),i=U(t),n=await J(r,i).then(t=>t.filter(t=>t.name===i.PLAYWRIGHT_CLI_SESSION||t.name.startsWith(`${i.PLAYWRIGHT_CLI_SESSION}-`))).catch(()=>[]),o=n.length?await V():"";o&&!(0,a.existsSync)(o)&&S.logger.warn(`playwright-cli keeps this workspace's browsers somewhere other than ${o}: removing a thread will leave its browser profiles on disk`);let l=[];for(let t of n){if(t.attached||!e&&!1!==t.headed){l.push(t.name);continue}await r.exec("playwright-cli close",{env:{...i,PLAYWRIGHT_CLI_SESSION:t.name},timeoutMs:s.BROWSER_CLI.readMs}).catch(()=>{})}return await K(),l}let tt=()=>ta(s.PATHS.output),te=()=>ta(O);async function ta(t){let e=(0,n.join)(R,t),a=await (0,r.readdir)(e,{withFileTypes:!0}).catch(()=>[]),i=Date.now()-s.WORKSPACE_KEEP.forMs;for(let t of a){if(!t.isFile())continue;let a=(0,n.join)(e,t.name),o=await (0,r.stat)(a).catch(()=>null);o&&o.mtimeMs<i&&await (0,r.unlink)(a).catch(()=>{})}}async function tr(){return(await (0,r.readdir)((0,n.join)(R,s.PATHS.scratch),{withFileTypes:!0}).catch(()=>[])).filter(t=>t.isDirectory()).map(t=>`${s.PATHS.scratch}/${t.name}`)}async function ti(t){let e=Date.now()-s.WORKSPACE_KEEP.forMs,a=[];for(let i of t){let t=(0,n.join)(R,i),o=await (0,r.stat)(t).catch(()=>null);o?.isDirectory()&&!(o.mtimeMs>=e)&&(await (0,r.rm)(t,{recursive:!0,force:!0}).catch(()=>{}),a.push(i))}return a}let tn={"pnpm-workspace.yaml":"packages:\n - '**'\n",".npmrc":"recursive-install=false\n"};async function to(){for(let t of[...H,".playwright"])await (0,r.mkdir)((0,n.join)(R,t),{recursive:!0});for(let[t,e]of Object.entries(tn))await (0,r.writeFile)((0,n.join)(R,t),e,{flag:"wx"}).catch(()=>{});let t=_({workingDirectory:R,spill:{dir:s.PATHS.output,...s.TOOL_OUTPUT},toolPath:I}),e=()=>o.appEvents.emit({type:"files"});return{...t,exec:(a,r)=>t.exec(a,r).finally(e),writeFile:(a,r)=>t.writeFile(a,r).finally(e)}}async function ts(t,e){let a=t.map(t=>(0,n.resolve)(R,t));if(e){let t=0;for await(let r of $((0,n.join)(R,e)))if(a.push(r),(t+=1)>=s.JOB_FOLDER_WALK)break}let i=new Map;for(let t of a){let e=await (0,r.stat)(t).catch(()=>null);if(!e?.isFile())continue;let a=(0,n.relative)(R,t);i.set(a&&!a.startsWith("..")?a:t,e.mtimeMs)}return[...i].sort((t,e)=>t[1]-e[1]).map(([t])=>t)}async function tl(t,e){let a=D(t,e);await (0,r.rm)((0,n.join)(R,a),{recursive:!0,force:!0}).catch(t=>S.logger.warn(`job folder ${a}: ${String(t)}`))}t.s(["ARTIFACTS",0,v,"DELETED_BOT_MARK",0,".deleted-bot.json","WORKSPACE",0,R,"botArtifacts",0,F,"botBrowserSession",0,(t,a)=>`${t}-bot-${(0,e.createHash)("sha256").update(a.trim().toLowerCase()).digest("hex").slice(0,20)}`,"botFolder",0,x,"botFolderName",0,C,"botShellEnv",0,(t,e)=>({THURSDAY_BOT:t,THURSDAY_BOT_MARK:JSON.stringify(function(t,e){let{head:a,eyes:r}=function(t,e=p.shape){let a=(t,e)=>(function(t){let e=t.tilt*Math.PI/180,a=Math.cos(e),r=Math.sin(e),i=(e,i)=>[t.cx+e*a-i*r,t.cy+e*r+i*a],n=-t.len/2,o=t.len/2,s=[],l=[];for(let e=0;e<=30;e++){let a=e/30,r=1-a,c=r*r*n+a*a*o,u=-(2*r*a*t.bend),h=-(2*r*n)+2*a*o,f=-(2*r*t.bend)+2*a*t.bend,d=Math.hypot(h,f)||1,p=-f/d,w=h/d,m=t.width/2*Math.sin(Math.PI*a)**t.taper;s.push(i(c+p*m,u+w*m)),l.push(i(c-p*m,u-w*m))}let c=`M${u(s[0][0])} ${u(s[0][1])}`;for(let t=1;t<=30;t++)c+=`L${u(s[t][0])} ${u(s[t][1])}`;for(let t=29;t>=0;t--)c+=`L${u(l[t][0])} ${u(l[t][1])}`;return`${c}Z`})({len:p.eyeLen,width:p.eyeWidth,bend:p.eyeBend,taper:p.eyeTaper,tilt:e,cx:t,cy:p.eyeY});return{head:function(t){let e=t.map((t,e)=>{let a=e/128*c;return[120+Math.cos(a)*t,120+Math.sin(a)*t]}),a=`M${u(e[0][0])} ${u(e[0][1])}`;for(let t=0;t<128;t++){let r=e[(t-1+128)%128],i=e[t],n=e[(t+1)%128],o=e[(t+2)%128],s=i[0]+(n[0]-r[0])/6,l=i[1]+(n[1]-r[1])/6,c=n[0]-(o[0]-i[0])/6,h=n[1]-(o[1]-i[1])/6;a+=`C${u(s)} ${u(l)} ${u(c)} ${u(h)} ${u(n[0])} ${u(n[1])}`}return`${a}Z`}(function(t,e,a){var r,i,n;let o=`${"poly"===e?`poly|${t.sides}|${t.corner}|${t.rotation}|${a}`:"squircle"===e?`squircle|${t.squircle}|${a}`:"heart"===e?`heart|${a}`:`blob|${t.wobble}|${a}`}|${t.autofit}`,s=m.get(o);if(s)return s;let l=function(t){let e=Array(128);for(let a=0;a<128;a++){let r=a/128*c,i=Math.cos(r),n=Math.sin(r),o=0;for(let e=0;e<t.length;e++){let a=t[e],r=t[(e+1)%t.length],s=r[0]-a[0],l=r[1]-a[1],c=i*l-n*s;if(1e-9>Math.abs(c))continue;let u=a[0]-120,h=a[1]-120,f=(u*l-h*s)/c,d=(u*n-h*i)/c;f>o&&d>=-1e-9&&d<=1+1e-9&&(o=f)}e[a]=o||112}return e}((r=t,i=e,n=a,"squircle"===i?function(t){let e=[],a=2/t;for(let t=0;t<360;t++){let r=t/360*c,i=Math.cos(r),n=Math.sin(r);e.push([120+Math.sign(i)*Math.abs(i)**a*112,120+Math.sign(n)*Math.abs(n)**a*112])}return e}(r.squircle):"poly"===i?function(t,e,a){let r=a*Math.PI/180-Math.PI/2,i=[];for(let e=0;e<t;e++){let a=r+e/t*c;i.push([120+112*Math.cos(a),120+112*Math.sin(a)])}let n=(Math.PI-c/t)/2,o=224*Math.sin(Math.PI/t)/2*Math.tan(n)*Math.min(1,Math.max(.001,e)),s=o/Math.tan(n),l=[];for(let e=0;e<t;e++){let a=i[e],r=i[(e-1+t)%t],u=i[(e+1)%t],h=d(f(r,a)),p=d(f(u,a)),w=[a[0]+h[0]*s,a[1]+h[1]*s],m=d([h[0]+p[0],h[1]+p[1]]),S=[a[0]+m[0]*o/Math.sin(n),a[1]+m[1]*o/Math.sin(n)],y=Math.atan2(w[1]-S[1],w[0]-S[0]),T=[a[0]+p[0]*s,a[1]+p[1]*s],M=Math.atan2(T[1]-S[1],T[0]-S[0])-y;for(;M>Math.PI;)M-=c;for(;M<-Math.PI;)M+=c;for(let t=0;t<=20;t++){let e=y+t/20*M;l.push([S[0]+Math.cos(e)*o,S[1]+Math.sin(e)*o])}}return l}(r.sides,r.corner,r.rotation):"heart"===i?function(){let t=[];for(let e=0;e<400;e++){let a=e/400*c,r=16*Math.sin(a)**3,i=13*Math.cos(a)-5*Math.cos(2*a)-2*Math.cos(3*a)-Math.cos(4*a);t.push([120+6.6*r,120-(i+2.2)*7.26])}return t}():function(t,e){let a=h(t),r=[1,2,3,4,5].map(t=>({k:t,a:(2*a()-1)/t,p:a()*c})),i=[],n=0;for(let t=0;t<360;t++){let e=t/360*c,a=0;for(let t of r)a+=t.a*Math.sin(t.k*e+t.p);i.push(a),n=Math.max(n,Math.abs(a))}let o=n>0?e/n:0;return i.map((t,e)=>{let a=e/360*c,r=112*(1+t*o);return[120+Math.cos(a)*r,120+Math.sin(a)*r]})}(n,r.wobble))),u="blob"===e?l:"heart"===e?function(t,e){let a=t;for(let t=0;t<2;t++){let t=a;a=t.map((e,a)=>{let r=0;for(let e=-3;e<=3;e++)r+=t[(a+e+128)%128];return r/7})}let r=a.reduce((t,e)=>t+e,0)/128,i=w(a.map(t=>.95*t+.05*r),e,.05),n=Math.round((2*h(20977^e)()-1)*3);return n?i.map((t,e)=>i[(e-n+256)%128]):i}(l,a):w(l,a),p=t.autofit?function(t){let e=c/128,a=0,r=0;for(let i of t)a+=.5*i*i*e,i>r&&(r=i);if(a<=0)return t;let i=Math.min(Math.sqrt(112*Math.PI*112/a),130/r);return t.map(t=>t*i)}(u):u;return m.size>400&&m.clear(),m.set(o,p),p}(p,e,function(t){if("number"==typeof t)return t;let e=0x811c9dc5;for(let a=0;a<t.length;a++)e=Math.imul(e^t.charCodeAt(a),0x1000193);return(e>>>0)%1e4}(t))),eyes:[a(120-p.eyeGap/2,p.eyeTilt),a(120+p.eyeGap/2,p.eyeTilt+p.eyeSkew)]}}(t,e?.shape??p.shape),i=e?.paint?l.MARK_PAINTS[e.paint]:null;return{head:a,eyes:r,ink:(0,l.markInk)(e?.color??l.MARK_SYSTEM,!1),paint:i?"aurora"===i.look?i.colors.slice(0,2):[...i.colors]:null,outline:e?.outline===!0}}(t,e)),THURSDAY_ARTIFACTS:(0,n.join)(R,F(t)),THURSDAY_SKILLS:(0,n.join)(s.APP_DIR,s.PATHS.skills.default),THURSDAY_TOOL_OUTPUT:String(s.TOOL_OUTPUT.max),DISABLE_TELEMETRY:"1"}),"browserStateFile",0,()=>`${O}/state-${crypto.randomUUID()}.json`,"closeHiddenBrowser",0,q,"closeJobShell",0,X,"filesOnDisk",0,ts,"insideWorkspace",0,W,"jobScratch",0,D,"jobShellEnv",0,U,"listBrowsers",0,J,"listScratchFolders",0,tr,"openBotFolders",0,B,"openJobScratch",0,N,"openWorkspace",0,to,"pruneJobFiles",0,K,"readMachineTools",0,G,"removeJobBrowsers",0,Z,"removeJobScratch",0,tl,"removeUnchangedFolders",0,ti,"saveBrowserState",0,t=>`mkdir -p ${O} && playwright-cli state-save ${t}`,"writeRefusal",0,function(t,e){if(j(R,t)){let r=(0,n.relative)(R,t),[i,o]=r.split(n.sep);return i&&L.has(i)?e&&i===s.PATHS.artifacts&&o&&o.toLowerCase()!==C(e).toLowerCase()&&!(0,a.existsSync)((0,n.join)(v,o))?`Not written: ${r} would sit loose at the top of ${s.PATHS.artifacts}/. Your finished work goes in ${F(e)}/.`:null:`Not written: ${r||"the workspace root"} is outside the workspace's folders. Finished work goes under ${e?F(e):s.PATHS.artifacts}/, code under ${s.PATHS.projects}/, your own kit under ${s.PATHS.bots}/, and this job's working material under ${s.PATHS.scratch}/.`}return j(g,t)?`Not written: ${t} is inside the app that is running you, not the user's files. Work in ${R}; outside it, write only where the user pointed you.`:null}],786025)}];
|
|
7
7
|
|
|
8
8
|
//# sourceMappingURL=features_workspace_workspace_ts_13h82gv._.js.map
|