thursday-agent 0.1.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +5 -1
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +5 -5
- package/.next/routes-manifest.json +27 -3
- package/.next/server/app/_global-error/page.js +2 -2
- package/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +2 -2
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +2 -2
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +14 -14
- package/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +12 -12
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/artifact/route.js +3 -3
- package/.next/server/app/api/artifact/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/memory/files/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/bot/memory/files/route.js +10 -0
- package/.next/server/app/api/bot/memory/files/route.js.nft.json +1 -0
- package/.next/server/app/api/bot/memory/files/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/bot/memory/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/bot/memory/route/build-manifest.json +12 -0
- package/.next/server/app/api/bot/memory/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/bot/memory/route.js +14 -0
- package/.next/server/app/api/bot/memory/route.js.map +5 -0
- package/.next/server/app/api/bot/memory/route.js.nft.json +1 -0
- package/.next/server/app/api/bot/memory/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/bot/route.js +7 -7
- package/.next/server/app/api/bot/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/task/[id]/route.js +9 -9
- package/.next/server/app/api/bot/task/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/task/route.js +8 -8
- package/.next/server/app/api/bot/task/route.js.nft.json +1 -1
- package/.next/server/app/api/config/route.js +6 -6
- package/.next/server/app/api/config/route.js.nft.json +1 -1
- package/.next/server/app/api/events/route.js +4 -5
- package/.next/server/app/api/events/route.js.nft.json +1 -1
- package/.next/server/app/api/file/[...path]/route.js +3 -3
- package/.next/server/app/api/file/[...path]/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/catalog/route.js +10 -9
- package/.next/server/app/api/llm-model/catalog/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/credits/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/llm-model/credits/route/build-manifest.json +12 -0
- package/.next/server/app/api/llm-model/credits/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/llm-model/credits/route.js +16 -0
- package/.next/server/app/api/llm-model/credits/route.js.map +5 -0
- package/.next/server/app/api/llm-model/credits/route.js.nft.json +1 -0
- package/.next/server/app/api/llm-model/credits/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/llm-model/route.js +10 -8
- package/.next/server/app/api/llm-model/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/subscription/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/llm-model/subscription/route/build-manifest.json +12 -0
- package/.next/server/app/api/llm-model/subscription/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/llm-model/subscription/route.js +15 -0
- package/.next/server/app/api/llm-model/subscription/route.js.map +5 -0
- package/.next/server/app/api/llm-model/subscription/route.js.nft.json +1 -0
- package/.next/server/app/api/llm-model/subscription/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/mcp/[name]/route.js +5 -5
- package/.next/server/app/api/mcp/[name]/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/oauth/callback/route.js +6 -6
- package/.next/server/app/api/mcp/oauth/callback/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/route.js +5 -5
- package/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/tools/route.js +5 -5
- package/.next/server/app/api/mcp/tools/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/edit/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/memory/edit/route/build-manifest.json +12 -0
- package/.next/server/app/api/memory/edit/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/memory/edit/route.js +24 -0
- package/.next/server/app/api/memory/edit/route.js.map +5 -0
- package/.next/server/app/api/memory/edit/route.js.nft.json +1 -0
- package/.next/server/app/api/memory/{tidy → edit}/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/memory/route.js +7 -8
- package/.next/server/app/api/memory/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/[source]/[name]/route.js +3 -3
- package/.next/server/app/api/skills/[source]/[name]/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/route.js +3 -3
- package/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/call/route.js +9 -7
- package/.next/server/app/api/thursday/call/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/skills/route.js +9 -7
- package/.next/server/app/api/thursday/skills/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/tool-call/route.js +16 -15
- package/.next/server/app/api/thursday/tool-call/route.js.nft.json +1 -1
- package/.next/server/app/api/workspace/route.js +4 -5
- package/.next/server/app/api/workspace/route.js.nft.json +1 -1
- package/.next/server/app/artifact/[...path]/page/server-reference-manifest.json +1 -1
- package/.next/server/app/artifact/[...path]/page.js +5 -6
- package/.next/server/app/artifact/[...path]/page.js.nft.json +1 -1
- package/.next/server/app/artifact/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/favicon.ico/route.js +3 -4
- package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/.next/server/app/favicon.ico.body +0 -0
- package/.next/server/app/page/server-reference-manifest.json +66 -77
- package/.next/server/app/page.js +11 -11
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +5 -1
- package/.next/server/chunks/[externals]__0dzuk6_._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__01dkp4a._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__02va5wz._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__02xjoto._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__04q--0f._.js +8 -0
- package/.next/server/chunks/[root-of-the-server]__0bl-e63._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0ce8nf8._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__0ffbg85._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0j7z0r3._.js +12 -0
- package/.next/server/chunks/[root-of-the-server]__0jq4ohy._.js +8 -0
- package/.next/server/chunks/[root-of-the-server]__0ls6_8y._.js +8 -0
- package/.next/server/chunks/[root-of-the-server]__0ncs9uu._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0pa2n68._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0q0vvt2._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__1-ga0kh._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__11n256_._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__12cabg9._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1339jnv._.js +8 -0
- package/.next/server/chunks/[root-of-the-server]__15bjnu5._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__18_teo8._.js +8 -0
- package/.next/server/chunks/[root-of-the-server]__1_04mcf._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__1anc1p9._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1ccon1w._.js +10 -0
- package/.next/server/chunks/[root-of-the-server]__1fizn31._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1llj3-b._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1orn-5b._.js +11 -0
- package/.next/server/chunks/[root-of-the-server]__1p8m3f4._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1wa1k7r._.js +8 -0
- package/.next/server/chunks/{_1hzrsvg._.js → _0-73of8._.js} +6 -6
- package/.next/server/chunks/{_1cbk7ms._.js → _0-fjql4._.js} +10 -10
- package/.next/server/chunks/_00xh_q0._.js +27 -0
- package/.next/server/chunks/{_0y8is-s._.js → _03a0897._.js} +1 -1
- package/.next/server/chunks/{_0pppbb5._.js → _03kp0jp._.js} +166 -35
- package/.next/server/chunks/_051qh8u._.js +3 -0
- package/.next/server/chunks/{node_modules_next_04q-o58._.js → _05dla15._.js} +2 -2
- package/.next/server/chunks/_05h2cii._.js +1 -1
- package/.next/server/chunks/_0c9j6rb._.js +49 -0
- package/.next/server/chunks/_0fzqt2y._.js +74 -44
- package/.next/server/chunks/{_0kl37zl._.js → _0ioz3nd._.js} +1 -1
- package/.next/server/chunks/_0iwfby5._.js +3 -0
- package/.next/server/chunks/{_0hin38_._.js → _0khihjk._.js} +5 -5
- package/.next/server/chunks/_0mecv0f._.js +26 -0
- package/.next/server/chunks/_0mh8j4m._.js +3 -0
- package/.next/server/chunks/{_1icgbi8._.js → _0n74zsf._.js} +2 -2
- package/.next/server/chunks/_0obojvv._.js +3 -0
- package/.next/server/chunks/_0recufk._.js +49 -0
- package/.next/server/chunks/{_1t8fv7b._.js → _0rnf-6n._.js} +2 -2
- package/.next/server/chunks/_0sb7tlz._.js +3 -0
- package/.next/server/chunks/{_0jgm3b8._.js → _0u10wmw._.js} +6 -6
- package/.next/server/chunks/{_12nr4xc._.js → _0u4aiy2._.js} +2 -2
- package/.next/server/chunks/_0wp4le3._.js +1 -1
- package/.next/server/chunks/_0y5fg-x._.js +1 -1
- package/.next/server/chunks/_1230wbx._.js +10 -0
- package/.next/server/chunks/_12nheja._.js +3 -0
- package/.next/server/chunks/_13510xh._.js +3 -0
- package/.next/server/chunks/_15hq89o._.js +1 -1
- package/.next/server/chunks/_17l5ygt._.js +49 -0
- package/.next/server/chunks/{_0ks6_sg._.js → _18-1wcc._.js} +6 -6
- package/.next/server/chunks/_1_5mnq4._.js +18 -0
- package/.next/server/chunks/{_0tzfesa._.js → _1_9mjx-._.js} +1 -1
- package/.next/server/chunks/_1d0j961._.js +6 -0
- package/.next/server/chunks/_1d5zmy8._.js +1 -1
- package/.next/server/chunks/_1drgfx4._.js +18 -0
- package/.next/server/chunks/{_1skgy7b._.js → _1e48czp._.js} +5 -5
- package/.next/server/chunks/_1f46eie._.js +3 -0
- package/.next/server/chunks/_1h5_8sk._.js +3 -0
- package/.next/server/chunks/_1hdnxb7._.js +3 -0
- package/.next/server/chunks/_1j8k_j5._.js +3 -0
- package/.next/server/chunks/{_10qam6o._.js → _1kg70wc._.js} +5 -5
- package/.next/server/chunks/_1krd9rf._.js +3 -0
- package/.next/server/chunks/_1nc0eui._.js +11 -0
- package/.next/server/chunks/_1nula3v._.js +3 -0
- package/.next/server/chunks/_1pf4qe-._.js +3 -0
- package/.next/server/chunks/_1php4eq._.js +1 -1
- package/.next/server/chunks/_1qxheoa._.js +3 -0
- package/.next/server/chunks/_1x6kd1r._.js +3 -0
- package/.next/server/chunks/_1yuv4vp._.js +1 -1
- package/.next/server/chunks/_1zjrdag._.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_bot_memory_files_route_actions_1_xd_8f.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_bot_memory_route_actions_1a8xfr7.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_llm-model_credits_route_actions_0v424pb.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_llm-model_subscription_route_actions_0-udcm5.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_memory_edit_route_actions_02sfnmr.js +3 -0
- package/.next/server/chunks/config_ts_1g4sz5o._.js +1 -1
- package/.next/server/chunks/features_0rpfxbk._.js +3 -0
- package/.next/server/chunks/features_1qf3cei._.js +3 -0
- package/.next/server/chunks/features_bot_0zt92oh._.js +3 -0
- package/.next/server/chunks/features_bot_bot_query_ts_12mgkl2._.js +1 -1
- package/.next/server/chunks/features_memory_1uqvksn._.js +6 -0
- package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0tf290y._.js → node_modules_consola_dist_chunks_prompt_mjs_0i7cvml._.js} +1 -1
- package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0228f43._.js → node_modules_consola_dist_chunks_prompt_mjs_0icqaqw._.js} +1 -1
- package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0ir-vo2._.js → node_modules_consola_dist_chunks_prompt_mjs_0j61-ma._.js} +1 -1
- package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0otw8ef._.js → node_modules_consola_dist_chunks_prompt_mjs_0r28-sm._.js} +1 -1
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0v_7drq._.js +3 -0
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_11zjo-1._.js +3 -0
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1pycqsq._.js +3 -0
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1xoq2rl._.js +3 -0
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1y49572._.js +3 -0
- package/.next/server/chunks/ssr/[externals]__0dizgek._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__09q9med._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0_69wqr._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0hg5gib._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0i8ie7f._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__0jsmmb-._.js → [root-of-the-server]__0mz33a7._.js} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0tbkdlx._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0vnmv-s._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__0f6s48x._.js → [root-of-the-server]__0xpcv9w._.js} +3 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0xtssj3._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0zkv7z_._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__10-dz5o._.js +57 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__15_uhip._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__16jc196._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1cyjywu._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1eh7hid._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1gtlw6v._.js +43 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1mzi-ju._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1ox7hbk._.js +4 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1pduf5n._.js +3 -0
- package/.next/server/chunks/ssr/{_1mznrxk._.js → _001_ms1._.js} +3 -3
- package/.next/server/chunks/ssr/_01_6m32._.js +3 -0
- package/.next/server/chunks/ssr/_01n3o0m._.js +3 -0
- package/.next/server/chunks/ssr/_07uchnc._.js +3 -0
- package/.next/server/chunks/ssr/_0ap2fzn._.js +3 -0
- package/.next/server/chunks/ssr/_0c-ql2m._.js +3 -0
- package/.next/server/chunks/ssr/_0h42fze._.js +3 -0
- package/.next/server/chunks/ssr/_0h7zdni._.js +1 -1
- package/.next/server/chunks/ssr/_0i_6q1w._.js +41 -0
- package/.next/server/chunks/ssr/_0kbkmar._.js +3 -0
- package/.next/server/chunks/ssr/_0lu1n_x._.js +3 -0
- package/.next/server/chunks/ssr/{_077-g6s._.js → _0mb8zc8._.js} +3 -3
- package/.next/server/chunks/ssr/_0mo2w06._.js +3 -0
- package/.next/server/chunks/ssr/{_13punpm._.js → _0q0zan6._.js} +2 -2
- package/.next/server/chunks/ssr/{_0gd4vaa._.js → _0u2jv_x._.js} +94 -58
- package/.next/server/chunks/ssr/_0y0tiht._.js +4 -0
- package/.next/server/chunks/ssr/_0zhoc3r._.js +3 -0
- package/.next/server/chunks/ssr/_1-teee5._.js +3 -3
- package/.next/server/chunks/ssr/_13fke0x._.js +3 -0
- package/.next/server/chunks/ssr/{_0q_2f2x._.js → _13z3f85._.js} +2 -2
- package/.next/server/chunks/ssr/_14_lw10._.js +3 -0
- package/.next/server/chunks/ssr/_15j2_8f._.js +3 -0
- package/.next/server/chunks/ssr/{_0lc_7c8._.js → _1eoqg_g._.js} +2 -2
- package/.next/server/chunks/ssr/_1sji22n._.js +3 -0
- package/.next/server/chunks/ssr/_1spzm8z._.js +3 -0
- package/.next/server/chunks/ssr/{_19_o9d-._.js → _1vi_uo7._.js} +2 -2
- package/.next/server/chunks/ssr/_1vyd1ji._.js +3 -0
- package/.next/server/chunks/ssr/_1xvgn77._.js +3 -0
- package/.next/server/chunks/ssr/_20kd_n0._.js +42 -0
- package/.next/server/chunks/ssr/features_bot_1s_-2vj._.js +3 -0
- package/.next/server/chunks/ssr/features_config_components_config-setting_tsx_0xfwqdg._.js +1 -1
- package/.next/server/chunks/ssr/features_connectors_components_mcp-setting_tsx_0jmbgvp._.js +1 -1
- package/.next/server/chunks/ssr/lib_date-like_ts_02is0pw._.js +3 -0
- package/.next/server/chunks/ssr/lib_realtime_12wg_dd._.js +27 -0
- package/.next/server/chunks/ssr/lib_realtime_15h_v1v._.js +27 -0
- package/.next/server/chunks/ssr/{node_modules_1d-is1o._.js → node_modules_063xwpp._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1ub40gk._.js → node_modules_0bvraul._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1nhw9qg._.js → node_modules_0eu1va6._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0xwx4u-._.js → node_modules_0h50b8n._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_043-236._.js → node_modules_0h5hnr1._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1t0y5jt._.js → node_modules_0h7u60n._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1k29j1j._.js → node_modules_0lm7_vm._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_16i4o_3._.js → node_modules_0mwym0g._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1y8_3vg._.js → node_modules_0rjg6t1._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules_0x3-ply._.js +3 -0
- package/.next/server/chunks/ssr/{node_modules_108wd2o._.js → node_modules_0y_cded._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1jatz7w._.js → node_modules_0z5tsu8._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0ls96je._.js → node_modules_0zp9r92._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_06kvvuo._.js → node_modules_1-hc6uv._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1_588_4._.js → node_modules_113tz0l._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0ipn1ho._.js → node_modules_124bue5._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules_17bwo43._.js +55 -0
- package/.next/server/chunks/ssr/{node_modules_0_j7-g4._.js → node_modules_1_n3ztw._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_20ynonm._.js → node_modules_1bc7gu8._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1hn_sd5._.js → node_modules_1bgb6-f._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0bue6gy._.js → node_modules_1h4a4pp._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0fbw5-u._.js → node_modules_1i7u1ia._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1ee8gav._.js → node_modules_1juq3hs._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0_fvxnt._.js → node_modules_1l0qtdu._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_13f2md6._.js → node_modules_1t9cyee._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0y2-av4._.js → node_modules_1uuj9x1._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_00d6675._.js → node_modules_1vqb6po._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1v0077l._.js → node_modules_1xx28h1._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_092s8nx._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0d3skpl._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1nvexgu._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0i44kk5._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules_@vercel_oidc_dist_0qe30a_._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_consola_dist_chunks_prompt_mjs_05cwqv2._.js +47 -0
- package/.next/server/chunks/ssr/{node_modules_next_dist_0w6mzq5._.js → node_modules_next_dist_0drixxt._.js} +4 -4
- package/.next/server/chunks/ssr/node_modules_next_dist_1n3w9lb._.js +2 -2
- package/.next/server/instrumentation.js +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +67 -78
- package/.next/static/chunks/{31ttnjt6g35a0.js → 0ev4hyghq0mbb.js} +1 -1
- package/.next/static/chunks/0r5qcctujhxli.js +1 -0
- package/.next/static/chunks/0tmgrnlje14-s.js +3 -0
- package/.next/static/chunks/0x79tx04dxbpp.js +1 -0
- package/.next/static/chunks/0xzgvc0fkdb6t.js +1 -0
- package/.next/static/chunks/10teww7wt-f6h.js +1 -0
- package/.next/static/chunks/14hgtsjg-kael.css +1 -0
- package/.next/static/chunks/17donp69y4do7.js +40 -0
- package/.next/static/chunks/1dkjg87pxk0n9.js +28 -0
- package/.next/static/chunks/1ekc7ul556kbl.js +1 -0
- package/.next/static/chunks/{1khakdu_iuedc.js → 1grhjo7a5a0_-.js} +1 -1
- package/.next/static/chunks/1kq8h8wi_e0bc.js +53 -0
- package/.next/static/chunks/1okqiww3pnwka.js +1 -0
- package/.next/static/chunks/26-pr2c9ro222.js +1 -0
- package/.next/static/chunks/{2ihkf6l2jowo9.js → 280t0_e99i276.js} +3 -3
- package/.next/static/chunks/28cizcdaabd4h.js +1 -0
- package/.next/static/chunks/2a0k6jlq0_v1u.js +2 -0
- package/.next/static/chunks/2fzs9fm8yarvq.js +1 -0
- package/.next/static/chunks/2h0sd2vumhb15.js +1 -0
- package/.next/static/chunks/2hw2f6zmt7fmt.js +1 -0
- package/.next/static/chunks/2t4vhi3m8ahya.js +1 -0
- package/.next/static/chunks/2tigdtz3dpcy8.js +1 -0
- package/.next/static/chunks/3111pj5wnjgos.js +1 -0
- package/.next/static/chunks/3786h5vayt80-.js +28 -0
- package/.next/static/chunks/{3aquirz5h71da.js → 3agpgkwaa321p.js} +1 -1
- package/.next/static/chunks/3cfi_q6d_wtci.js +1 -0
- package/.next/static/chunks/3ok9_x74rip3v.js +1 -0
- package/.next/static/chunks/3xk7yqgomx7yq.js +1 -0
- package/.next/static/chunks/3xpbkl66ssib5.js +38 -0
- package/.next/static/media/favicon.37o1pjldwi2uc.ico +0 -0
- package/README.md +6 -4
- package/app/api/bot/memory/files/route.ts +14 -0
- package/app/api/bot/memory/route.ts +5 -0
- package/app/api/events/app-event.client.ts +24 -0
- package/app/api/events/app-event.server.ts +45 -0
- package/app/api/events/app-event.ts +42 -0
- package/app/api/llm-model/catalog/route.ts +12 -0
- package/app/api/llm-model/credits/route.ts +11 -0
- package/app/api/llm-model/route.ts +26 -0
- package/app/api/llm-model/subscription/route.ts +11 -0
- package/app/api/memory/edit/route.ts +7 -0
- package/app/api/memory/route.ts +21 -0
- package/app/api/query-key.ts +159 -0
- package/app/api/thursday/tool-call/route.ts +67 -0
- package/bin/thursday.mjs +3 -0
- package/components/ui/button-group.tsx +45 -0
- package/components/ui/custom-icon.tsx +259 -0
- package/components/ui/dropdown-menu.tsx +271 -0
- package/components/ui/folded-text.tsx +68 -0
- package/components/ui/input-group.tsx +157 -0
- package/components/ui/json-view.tsx +240 -0
- package/components/ui/shiny-text.tsx +55 -0
- package/components/ui/text-type.tsx +213 -0
- package/components/ui/theme-sync.tsx +9 -0
- package/database/migrations/{20260908030742_rainy_marvel_zombies → 20260910173049_numerous_spirit}/migration.sql +30 -33
- package/database/migrations/{20260908030742_rainy_marvel_zombies → 20260910173049_numerous_spirit}/snapshot.json +124 -145
- package/database/migrations/20260911030320_opposite_jack_power/migration.sql +1 -0
- package/database/migrations/20260911030320_opposite_jack_power/snapshot.json +1158 -0
- package/docs/how-it-works.md +59 -0
- package/docs/images/keeps-going.png +0 -0
- package/docs/images/task-thread.png +0 -0
- package/docs/images/two-minds.png +0 -0
- package/features/ai/chatgpt.ts +617 -0
- package/features/ai/components/chatgpt-sign-in.tsx +66 -0
- package/features/ai/components/model-picker.tsx +17 -1
- package/features/ai/components/provider-icon.tsx +1 -0
- package/features/ai/load-tools.ts +105 -39
- package/features/ai/model.schema.ts +232 -34
- package/features/ai/model.ts +169 -24
- package/features/ai/prompts/bot.prompt.ts +245 -59
- package/features/ai/prompts/memory-edit.prompt.ts +33 -0
- package/features/ai/prompts/prompt-helper.ts +75 -30
- package/features/ai/prompts/thursday.prompt.ts +42 -17
- package/features/ai/tools/bot.tool.ts +32 -30
- package/features/ai/tools/connected.ts +17 -4
- package/features/ai/tools/mcp.tool.ts +5 -5
- package/features/ai/tools/memory.tool.ts +142 -74
- package/features/ai/tools/search.tool.ts +136 -47
- package/features/ai/tools/studio.tool.ts +5 -5
- package/features/ai/tools/tool-name.ts +2 -3
- package/features/ai/tools/workspace.tool.ts +33 -4
- package/features/bot/bot.action.ts +24 -7
- package/features/bot/bot.memory.ts +89 -0
- package/features/bot/bot.query.ts +41 -6
- package/features/bot/bot.run.ts +516 -210
- package/features/bot/bot.runner.ts +463 -93
- package/features/bot/bot.schema.ts +84 -7
- package/features/bot/bot.seed.ts +89 -16
- package/features/bot/components/bot-mark.tsx +122 -20
- package/features/bot/components/bot-room.tsx +519 -391
- package/features/bot/components/bot-setting.tsx +832 -341
- package/features/bot/components/bot-tool.tsx +2 -6
- package/features/bot/components/mark-palette.tsx +54 -0
- package/features/bot/components/path-chips.tsx +1 -1
- package/features/bot/components/task-badge.tsx +26 -6
- package/features/bot/components/task-reply.tsx +22 -33
- package/features/bot/components/task-setting.tsx +20 -17
- package/features/bot/task.query.ts +233 -33
- package/features/bot/task.store.ts +53 -9
- package/features/config/components/config-setting.tsx +265 -34
- package/features/config/components/models-badge.tsx +42 -0
- package/features/config/config.action.ts +12 -0
- package/features/config/config.const.ts +38 -2
- package/features/connectors/mcp.manager.ts +10 -2
- package/features/intro/components/intro.tsx +47 -46
- package/features/memory/components/memory-edit.tsx +338 -0
- package/features/memory/components/memory-setting.tsx +86 -79
- package/features/memory/memory.action.ts +3 -43
- package/features/memory/memory.edit.ts +87 -0
- package/features/memory/memory.query.ts +33 -44
- package/features/memory/memory.schema.ts +50 -97
- package/features/settings/components/settings.tsx +2 -0
- package/features/settings/settings.alert.ts +3 -1
- package/features/skills/components/skills-setting.tsx +9 -1
- package/features/thursday/components/ascii-orb.tsx +106 -90
- package/features/thursday/components/boot.tsx +7 -0
- package/features/thursday/components/call-log.tsx +219 -92
- package/features/thursday/components/face.tsx +6 -4
- package/features/thursday/components/tab-state.tsx +97 -0
- package/features/thursday/components/thursday-mark.tsx +4 -1
- package/features/thursday/components/thursday-setting.tsx +17 -47
- package/features/thursday/components/thursday.tsx +208 -95
- package/features/thursday/thursday.action.ts +12 -17
- package/features/thursday/thursday.query.ts +61 -70
- package/features/thursday/thursday.schema.ts +20 -7
- package/features/thursday/tool-line.ts +85 -11
- package/features/thursday/use-thursday.ts +86 -59
- package/features/workspace/components/file-view.tsx +4 -2
- package/features/workspace/workspace.ts +230 -13
- package/hooks/use-draft.ts +37 -0
- package/hooks/use-hotkey.ts +105 -0
- package/hooks/use-object-state.ts +51 -0
- package/hooks/use-on-visible.ts +72 -0
- package/hooks/use-theme.ts +106 -0
- package/hooks/use-wake-word.ts +262 -0
- package/lib/limits.ts +1 -1
- package/lib/oauth-page.ts +27 -0
- package/lib/realtime/openai.ts +2 -2
- package/lib/realtime/realtime.driver.ts +34 -1
- package/lib/realtime/realtime.protocol.ts +7 -1
- package/lib/realtime/realtime.tap.ts +122 -0
- package/lib/sandbox.ts +60 -29
- package/lib/tokens.ts +19 -0
- package/package.json +1 -1
- package/skills/browser/SKILL.md +55 -34
- package/.next/server/app/api/memory/tidy/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/memory/tidy/route.js +0 -23
- package/.next/server/app/api/memory/tidy/route.js.nft.json +0 -1
- package/.next/server/chunks/[root-of-the-server]__019dx9f._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__02_2sm-._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__02kt8yn._.js +0 -10
- package/.next/server/chunks/[root-of-the-server]__05luceg._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__06t77t4._.js +0 -11
- package/.next/server/chunks/[root-of-the-server]__0bed6hu._.js +0 -8
- package/.next/server/chunks/[root-of-the-server]__0dupqt7._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__0h59di-._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__0j_n5l3._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0le4d-p._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0m8ywyo._.js +0 -10
- package/.next/server/chunks/[root-of-the-server]__0nfuugi._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__0phdgco._.js +0 -8
- package/.next/server/chunks/[root-of-the-server]__0qjqtwo._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__0t_dqaj._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0wvgrsl._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0yk6s3w._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__0z3gelv._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__10qshki._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__113fqg5._.js +0 -12
- package/.next/server/chunks/[root-of-the-server]__11w_7_3._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__16thabu._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__173nhwf._.js +0 -8
- package/.next/server/chunks/[root-of-the-server]__1_0q_9w._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1_aoyr9._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1bqhuh9._.js +0 -8
- package/.next/server/chunks/[root-of-the-server]__1cqizfq._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__1dow0bz._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1e-ci13._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1gmn1cs._.js +0 -10
- package/.next/server/chunks/[root-of-the-server]__1lr7j9t._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__1mzp_el._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1txedx6._.js +0 -8
- package/.next/server/chunks/[root-of-the-server]__1u_qvc7._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1zgpz1w._.js +0 -3
- package/.next/server/chunks/_012yhfm._.js +0 -39
- package/.next/server/chunks/_06mxlgn._.js +0 -3
- package/.next/server/chunks/_07rtlxv._.js +0 -3
- package/.next/server/chunks/_0a351g7._.js +0 -6
- package/.next/server/chunks/_0kjjmag._.js +0 -3
- package/.next/server/chunks/_0zmestz._.js +0 -55
- package/.next/server/chunks/_0zuzmt_._.js +0 -39
- package/.next/server/chunks/_12bbv5i._.js +0 -96
- package/.next/server/chunks/_15q1pig._.js +0 -3
- package/.next/server/chunks/_1drv2et._.js +0 -36
- package/.next/server/chunks/_1ic3bew._.js +0 -5
- package/.next/server/chunks/_1mxn_lb._.js +0 -3
- package/.next/server/chunks/_1uj4_io._.js +0 -10
- package/.next/server/chunks/_1x7p319._.js +0 -6
- package/.next/server/chunks/_1yldgo4._.js +0 -55
- package/.next/server/chunks/_2050gwn._.js +0 -255
- package/.next/server/chunks/_next-internal_server_app_api_memory_tidy_route_actions_0_cfuom.js +0 -3
- package/.next/server/chunks/features_0scmr4i._.js +0 -3
- package/.next/server/chunks/features_bot_task_query_ts_11xuzl3._.js +0 -3
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0vorg6w._.js +0 -3
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0ykklj0._.js +0 -3
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1ryg3wh._.js +0 -3
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1vmaq9f._.js +0 -3
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1vwbnq_._.js +0 -3
- package/.next/server/chunks/ssr/[externals]_node_crypto_1kn79-7._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__01id-v3._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0b-0i32._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0dfwvr4._.js +0 -4
- package/.next/server/chunks/ssr/[root-of-the-server]__0iuoa-r._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1-mnhyd._.js +0 -90
- package/.next/server/chunks/ssr/[root-of-the-server]__185grso._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1minz8_._.js +0 -3
- package/.next/server/chunks/ssr/_0-mc7ro._.js +0 -3
- package/.next/server/chunks/ssr/_01p5r6-._.js +0 -3
- package/.next/server/chunks/ssr/_09-0k3z._.js +0 -3
- package/.next/server/chunks/ssr/_0ay6b01._.js +0 -3
- package/.next/server/chunks/ssr/_0cvjbuz._.js +0 -3
- package/.next/server/chunks/ssr/_0fafgvl._.js +0 -3
- package/.next/server/chunks/ssr/_0j4v8of._.js +0 -3
- package/.next/server/chunks/ssr/_0l81bzy._.js +0 -3
- package/.next/server/chunks/ssr/_0nso8tp._.js +0 -3
- package/.next/server/chunks/ssr/_0sf1isi._.js +0 -3
- package/.next/server/chunks/ssr/_0ti51xc._.js +0 -3
- package/.next/server/chunks/ssr/_0y84qo6._.js +0 -3
- package/.next/server/chunks/ssr/_10uvw3l._.js +0 -3
- package/.next/server/chunks/ssr/_1dcxzqe._.js +0 -3
- package/.next/server/chunks/ssr/_1e-dgz0._.js +0 -4
- package/.next/server/chunks/ssr/_1fq7zgb._.js +0 -3
- package/.next/server/chunks/ssr/_1jbv7m1._.js +0 -3
- package/.next/server/chunks/ssr/features_bot_components_bot-setting_tsx_01ajft6._.js +0 -4
- package/.next/server/chunks/ssr/features_config_components_14jqgy4._.js +0 -3
- package/.next/server/chunks/ssr/features_memory_components_memory-setting_tsx_0oa43sw._.js +0 -4
- package/.next/server/chunks/ssr/lib_realtime_0aetuyp._.js +0 -24
- package/.next/server/chunks/ssr/lib_realtime_18k_aj-._.js +0 -24
- package/.next/server/chunks/ssr/node_modules_zod_v4_classic_errors_05xv7vp.js +0 -3
- package/.next/server/chunks/ssr/node_modules_zod_v4_classic_external_15fmmz3.js +0 -55
- package/.next/static/chunks/0f9sq-7q_yxyl.js +0 -1
- package/.next/static/chunks/0tydnn2kybibk.js +0 -1
- package/.next/static/chunks/0yysv1gzin17t.js +0 -1
- package/.next/static/chunks/1fr5m75pwtyic.js +0 -1
- package/.next/static/chunks/1gy3bbv7usnjo.js +0 -1
- package/.next/static/chunks/1keib_gt066gc.js +0 -1
- package/.next/static/chunks/1ytnip8wdng93.js +0 -1
- package/.next/static/chunks/21rk8w7bda-su.js +0 -1
- package/.next/static/chunks/247d-r95j8xs0.js +0 -1
- package/.next/static/chunks/28g42tw8tsvhd.js +0 -1
- package/.next/static/chunks/29gyb3nubj51j.js +0 -53
- package/.next/static/chunks/2cwjgkt_hoyhj.js +0 -22
- package/.next/static/chunks/2fq_86jvq9ymq.js +0 -2
- package/.next/static/chunks/2rbf1fpd8n80-.js +0 -22
- package/.next/static/chunks/2ukj8k69y89um.js +0 -1
- package/.next/static/chunks/2uxum7qbyeyxd.js +0 -1
- package/.next/static/chunks/2wngeetfnzxkp.js +0 -2
- package/.next/static/chunks/388-t2v72jh39.css +0 -1
- package/.next/static/chunks/3fqvc0cg-atq_.js +0 -1
- package/.next/static/chunks/3p4egvfjxpatb.js +0 -1
- package/.next/static/chunks/3qe1w1ei-huhl.js +0 -1
- package/.next/static/chunks/3xxa2j56-f3nm.js +0 -3
- package/.next/static/chunks/3y40riycdip-i.js +0 -1
- package/.next/static/chunks/45a6zbtkelph9.js +0 -1
- package/.next/static/media/favicon.2vob68tjqpejf.ico +0 -0
- package/features/ai/prompts/memory-tidy.prompt.ts +0 -123
- package/features/ai/tools/tidy.tool.ts +0 -22
- package/features/memory/components/memory-tidy.tsx +0 -395
- package/features/memory/memory.tidy.ts +0 -332
- package/features/memory/tidy.query.ts +0 -135
- package/features/thursday/use-call-title.ts +0 -31
- /package/.next/server/app/api/{memory/tidy → bot/memory/files}/route/build-manifest.json +0 -0
- /package/.next/server/app/api/{memory/tidy → bot/memory/files}/route/server-reference-manifest.json +0 -0
- /package/.next/server/app/api/{memory/tidy → bot/memory/files}/route.js.map +0 -0
- /package/.next/static/{X34BUd9bfdH27ripuwwBm → x1cCqY0kWpR_VcYx_lWO5}/_buildManifest.js +0 -0
- /package/.next/static/{X34BUd9bfdH27ripuwwBm → x1cCqY0kWpR_VcYx_lWO5}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{X34BUd9bfdH27ripuwwBm → x1cCqY0kWpR_VcYx_lWO5}/_ssgManifest.js +0 -0
|
@@ -1,92 +1,122 @@
|
|
|
1
|
-
module.exports=[851372,
|
|
1
|
+
module.exports=[851372,e=>e.a(async(t,o)=>{try{var a=e.i(687388),n=e.i(353885),s=e.i(393189),r=e.i(265143),i=e.i(148831),l=e.i(619898),h=e.i(636882),u=e.i(786025),d=e.i(640911),c=e.i(41444),p=e.i(660948),w=e.i(54282),y=t([r,i,l,p]);async function m(e,t,o,y){var m,g,S,x,A,E,M,_,j;let I,B,C,P,L,W=await (0,u.openWorkspace)(),q=e.trim(),R=o?.askedBy??null,[U,H,Y,F,D,J,G,K,z]=await Promise.all([(0,h.loadSkills)(W),(0,l.listNoteIndex)(),(0,l.listAlwaysLoaded)(),(0,p.listConnectedToolNames)(),(0,i.findPinnedTools)(q),(0,r.listJobBots)(),(0,s.listBotMemory)(q),(0,r.readBotMemoryOn)(),(0,u.readMachineTools)(W)]),Q=o&&!o.canBorrow?[]:J.filter(e=>e.name!==q&&!o?.above.includes(e.name)),V=[R?(m=q,g=R,[`You are ${m}, a worker. ${g} has handed you one part of a job Thursday handed over; your first message says who holds it and how it reached you. The user speaks to Thursday and to nobody else; you never address them, and what you hand back goes into ${g}'s answer as-is. This thread is drawn on their screen while you work: not written to them, but not private either. ${(0,w.nowLine)()}`,f,b].join("\n\n")):(S=q,[`You are ${S}, a worker. Thursday handed you a job while she keeps talking to the user — they speak to her and to nobody else, and what she says out of your answer is the only part of this that reaches them. You are not in that conversation and never address the user. This thread is drawn on their screen while you work, though: not written to them, but not private either. ${(0,w.nowLine)()}`,f,b].join("\n\n")),(x=H,A=Y,I=`## The user's memory
|
|
2
2
|
|
|
3
|
-
What the user
|
|
3
|
+
What Thursday knows about the user, kept as she talks with them. Every bot reads it; none writes to it. Open a note with \`${n.TOOL_NAMES.memory_recall}\` when the job needs something about them — the address they sign in with, the name to book under — and put what you find out about them in your answer; she decides what to keep. It describes them, not you: how they are named and spoken to is hers to use. What you learn about the work goes in your own memory, below.`,B=A.length?`Already known:
|
|
4
4
|
|
|
5
|
-
${(0,
|
|
5
|
+
${(0,w.carriedLines)(A)}`:"",C=`path — what is under it (facts) "what the user calls it"
|
|
6
6
|
|
|
7
|
-
${(0,
|
|
7
|
+
${(0,w.noteLines)(x)}
|
|
8
8
|
|
|
9
|
-
A topic not listed is one nobody knows anything about.`,[
|
|
9
|
+
A topic not listed is one nobody knows anything about.`,[I,B,C].filter(Boolean).join("\n\n")),K?(E=(0,s.botMemoryFolder)(q),P=(M=G).entries.length?M.entries.map(({file:e,line:t})=>t?`- ${e} — ${(0,c.clip)(t,a.PROMPT_LINE.botMemory)}`:`- ${e}`).join("\n"):"Empty.",L=M.total>M.entries.length?`
|
|
10
10
|
|
|
11
|
-
${
|
|
11
|
+
The newest ${M.entries.length} of ${M.total}; \`ls ${E}\` for the rest.`:"",`## Your memory
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
What you kept from your own earlier jobs, in \`${E}/\`: one topic per file, its first line saying what it holds, read by no other bot. Keep what a later job would otherwise have to find out again — how a site signs in, the way through its screens, a command that turned out right — and fix or delete a file that proved wrong. No passwords, keys or codes.
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
${P}${L}`):"",function(e,t){let o=new Set(t.map(e=>`${e.server}/${e.name}`)),a=e.filter(e=>!o.has(`${e.server}/${e.name}`));if(0===a.length)return"";let s=o.size?" What is not listed above you are already holding — it is in your tools.":"";return`## Connected tools
|
|
16
16
|
|
|
17
|
-
${(0,
|
|
17
|
+
${(0,w.mcpToolLines)(a)}
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
Names only: \`${n.TOOL_NAMES.tool_search}\` returns what each one takes, \`${n.TOOL_NAMES.tool_call}\` runs one.${s}`}(F,D),(_=U,0===_.length?"":`## Skills
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
${B}`),{text:B,peers:q.map(t=>t.name),opening:null}}[n,i,r,c]=y.then?(await y)():y;let m=`**You are on a real computer — the user's own.** You have a shell and a filesystem, and the job is done, not described: where there is no tool for something, write one — in \`node\` unless they asked for another language, the runtime this app itself runs on. Reach for \`${s.TOOL_NAMES.bash}\` before concluding that something cannot be done, but after the roster, not instead of it: a script you write to do another bot's job is the long way round.
|
|
21
|
+
Written-down methods. When the job is one of these, read it with \`${n.TOOL_NAMES.load_skill}\` before starting.
|
|
23
22
|
|
|
24
|
-
|
|
23
|
+
${(0,w.skillLines)(_)}`),T(W.cwd,z,y),(j=Q,0===j.length?"":`## Bots
|
|
25
24
|
|
|
26
|
-
|
|
25
|
+
${j.map(e=>`- **${e.name}** — ${e.description}`).join("\n")}
|
|
26
|
+
|
|
27
|
+
These lines were written for the user, who reads them on their own screen: where one says "you" it means them, not you.
|
|
28
|
+
|
|
29
|
+
A part of your job another bot is for goes to \`${n.TOOL_NAMES.ask_bot}\`, because their tools and their practice are the reason they exist. What you build is made of what they bring back, so send for it before you build. A part you could finish in a couple of commands is yours; one that would take a run of its own is theirs. What you were handed stays yours and you answer for it. They get the job, the call it came from and what you write them — not this thread.`),R?v(R):$,R?O(R):N,k(t)].filter(Boolean).join("\n\n");return(0,w.logPromptSize)("bot",V),d.logger.debug(`bot prompt
|
|
30
|
+
${V}`),{text:V,peers:Q.map(e=>e.name),opening:null}}[r,i,l,p]=y.then?(await y)():y;let f=`**You are on a real computer — the user's own.** You have a shell and a filesystem, and the job is done, not described: where there is no tool for something, write one — in \`node\` unless they asked for another language, the runtime this app itself runs on. Reach for \`${n.TOOL_NAMES.bash}\` before concluding that something cannot be done, but after the roster, not instead of it: a script you write to do another bot's job is the long way round.
|
|
31
|
+
|
|
32
|
+
**What is missing gets installed**, onto the machine once they say yes. What is already there is nobody's question — Environment says what this machine has.
|
|
33
|
+
|
|
34
|
+
**Bring back the thing itself** — their own machine, their own accounts, their own copy of whatever they sent you for — not a smaller safer version of it, and not a note on why you did not.`,b="**Never present a guess as a result.** She says it out loud as fact. Say which part is unverified and why.",k=e=>e?.trim()?`## Owner's instructions
|
|
27
35
|
|
|
28
36
|
Written by the person this bot works for. Where these and anything above disagree, these win.
|
|
29
37
|
|
|
30
|
-
${
|
|
38
|
+
${e.trim()}`:"",T=(e,t,o)=>{var s;let r,i;return`## Environment
|
|
31
39
|
|
|
32
|
-
Current Cwd: ${
|
|
40
|
+
Current Cwd: ${e}
|
|
33
41
|
Platform: ${process.platform}
|
|
42
|
+
${s=t,r=(e,t)=>`${e}: ${t.found.length?t.found.join(", "):"none"}.${t.missing.length?` Not here: ${t.missing.join(", ")}.`:""}`,i=s.managers.found.includes("pnpm")?" Use pnpm, not npm — this workspace is fenced for it (`pnpm-workspace.yaml`, `.npmrc`).":"",[r("Runtimes",s.runtimes),`${r("Package managers",s.managers)}${i}`,null===s.browser?"":s.browser?"Browser: installed.":"Browser: not installed — `playwright-cli install-browser chromium` puts one there."].filter(Boolean).join("\n")}
|
|
43
|
+
|
|
44
|
+
Read off this machine as the job opened, so it is current: reach for what is here instead of checking for it.
|
|
45
|
+
|
|
46
|
+
Your workspace — \`${n.TOOL_NAMES.bash}\` runs here. Everything you write goes in one of these, and they are kept apart because what is in them lives for different lengths of time:
|
|
34
47
|
|
|
35
|
-
|
|
48
|
+
- \`${a.PATHS.artifacts}/\` — finished work the user opens, one entry per result. Theirs, and it stays.
|
|
49
|
+
- \`${a.PATHS.projects}/\` — code you build, one folder each. It outlives this job, and a project's dependencies install inside it, never at the workspace root.
|
|
50
|
+
- \`${o?.scratch??a.PATHS.scratch}/\` — this job's working material, one folder for every bot on the job: what another bot on it wrote is here too. It is cleared ${Math.round(a.WORKSPACE_KEEP.forMs/864e5)} days after the job ends, so nothing here is worth keeping.
|
|
51
|
+
- \`${o?.own??a.PATHS.bots}/\` — yours, across every job you run here: your memory, a script you wrote once and will want again, a table you built.
|
|
36
52
|
|
|
37
|
-
|
|
53
|
+
Never the directory above — that is the app you run in; outside the workspace, only where the user pointed you.`},$=`## Asking
|
|
54
|
+
|
|
55
|
+
What you cannot get for yourself — a decision between real options, a detail only the conversation has, a go-ahead before deleting or sending — goes to \`${n.TOOL_NAMES.ask_thursday}\`, once, with everything in it. Ask before you start, not after an hour; never ask what one command would tell you.
|
|
38
56
|
|
|
39
57
|
A job that arrives without its shape — several ways to do it, no telling what it is for, a scale nobody named — is planned before it is built: put the plan up in two or three lines with what you need decided. A job asked for as one thing is built, not proposed.
|
|
40
58
|
|
|
41
|
-
|
|
59
|
+
Only what is theirs alone stops the job: a password, a one-time code, a passkey, a permission on their machine. Set it up one action away, ask, and carry on when the answer comes back.`,v=e=>`## Asking
|
|
60
|
+
|
|
61
|
+
What you cannot get for yourself goes to \`${n.TOOL_NAMES.ask_back}\`: ${e} handed you this part and answers from what they have. They cannot take a question to the user, so for what is the user's alone take the safer reading and say so in what you hand back. Ask before you start, once, whole.`,N=`## Answering
|
|
62
|
+
|
|
63
|
+
Every job ends with \`${n.TOOL_NAMES.answer}\`. **Answer what was asked, at the size it was asked**: a question ends in its answer — one number is one line — and a thing to make comes back made, an action done, photos in a page, a comparison in a table. Once you have what they asked for the job is done; the next thing you would go and check is theirs to ask for.
|
|
42
64
|
|
|
43
|
-
|
|
65
|
+
You are answering Thursday, not the user: she is on the call and picks what to say out of this. Write it plainly, in the user's language — the thread is on their screen as you write it. Anything past a few lines is a file under \`${a.PATHS.artifacts}/\`, and the answer names its path — it becomes a link on their screen. In a \`.md\`, images only by absolute route (\`/api/file/${a.PATHS.artifacts}/…\`).`,O=e=>`## Answering
|
|
44
66
|
|
|
45
|
-
Every
|
|
67
|
+
Every part ends with \`${n.TOOL_NAMES.answer}\`; what you hand back goes into ${e}'s own answer. Hand back what the brief asked for, in the shape it asked for, with everything you learned that bears on it — exact values, the paths of files you wrote, what did not work. They cannot see your thread, so long is right here.`;function g(e){let t=e.length-1,o=e.map((o,a)=>{if(0===a)return a===t?`- **${o} (you)** — Thursday handed you this job. You answer to Thursday, and your answer is the only part of it that reaches the user.`:`- **${o}** — holds the job Thursday handed over, and answers for it.`;let n=e[a-1];return a===t?`- **${o} (you)** — ${n} handed you one part of it: the last section below. You answer to ${n}; nobody else hears from you.`:`- **${o}** — ${n} handed them one part of it.`});return`## Who is who on this job
|
|
46
68
|
|
|
47
|
-
|
|
69
|
+
- **The user** — talks only to Thursday, on a voice call. No bot addresses them.
|
|
70
|
+
- **Thursday** — the user's assistant on that call. Hands jobs to bots and tells the user what comes back.
|
|
71
|
+
${o.join("\n")}`}e.s(["OPENING_TURNS",0,10,"buildHandoff",0,function(e){let t=e.bots.at(-1)??"",o=e.bots.at(-2)??"",a=e.did?.trim()?`## ${o} → ${t}: what ${o} has done, and why this part is ${t}'s
|
|
48
72
|
|
|
49
|
-
|
|
73
|
+
${e.did.trim()}`:"",n=`## ${o} → ${t}: the part
|
|
50
74
|
|
|
51
|
-
|
|
75
|
+
${e.part.trim()}`;return[{type:"text",text:g(e.bots)},{type:"text",text:[e.chain,a,n].filter(Boolean).join("\n\n")}]},"buildTaskOpening",0,function(e){let t=e.conversation.filter(e=>e.text.trim()),o=`## Thursday → ${e.bot}: the job
|
|
52
76
|
|
|
53
|
-
|
|
77
|
+
${e.request.trim()}`,n=t.length?`## The call the job came from — its last ${t.length} turns, verbatim
|
|
54
78
|
|
|
55
|
-
|
|
79
|
+
A detail missing from the job may be here — a name, a number, which of two. Where the two disagree the job wins, unless they asked out loud for something to be done and the job only asks about it: then the doing is the job.
|
|
56
80
|
|
|
57
|
-
|
|
81
|
+
${t.map(e=>`${"user"===e.role?"user":"thursday"}: ${(0,c.clip)(e.text,a.PROMPT_LINE.callTurn)}`).join("\n")}`:"";return[{type:"text",text:g([e.bot])},{type:"text",text:[o,n].filter(Boolean).join("\n\n")}]},"chainOf",0,function(e){return e?.role!=="user"?"":"string"==typeof e.content?e.content:e.content.flatMap(e=>"text"===e.type?[e.text]:[]).at(-1)??""},"loadBotPrompt",0,m]),o()}catch(e){o(e)}},!1),585099,e=>e.a(async(t,o)=>{try{var a=e.i(68356),n=e.i(847841),s=e.i(687388),r=e.i(159479),i=e.i(386075),l=e.i(851372),h=e.i(316172),u=e.i(353885),d=e.i(944971),c=e.i(786025),p=e.i(640911),w=e.i(53748),y=e.i(388439),m=e.i(265143),g=e.i(780274),f=t([r,i,l,m,g]);[r,i,l,m,g]=f.then?(await f)():f;let O=s.BOT_RUN.steps;async function b(e,t){var o,w,f;let b,$,A,E,M,_,j,I,B=t.depth??0,C=t.parent??null,P=e.bot.trim(),L=e=>t.emit({...e,bot:P,parent:C}),W=await (0,m.findJobBot)(P);if(!W)return void await L({type:"error",message:`No bot named "${e.bot}". Use a name from the list.`,failure:"fatal"});if(W.disabled&&"request"in e)return void await L({type:"error",message:`${W.name} is switched off. Use a name from the list.`,failure:"fatal"});let q=await ((o=W).provider&&o.model?(0,i.getTextModel)({provider:o.provider,model:o.model}):(0,i.resolveDefaultModel)().then(i.getTextModel)),R=t.taskId?await (0,g.findTask)(t.taskId):null,[U,H]=await Promise.all([t.taskId?(0,c.openJobScratch)(t.taskId,R?.label??"job"):null,(0,c.openBotFolder)(P)]),[Y,F]=await Promise.all([(0,l.loadBotPrompt)(P,W.systemPrompt,"askedBy"in e?{askedBy:e.askedBy,above:e.above,canBorrow:B<s.BOT_RUN.depth}:null,{scratch:U,own:H}),(0,r.loadTools)({target:"bot",bot:P,session:t.session??t.taskId,model:q})]),D=Math.min(await (0,i.compactBudget)(q.ref,W.compactAt),("askedBy"in e?0:R?.contextBudget)||1/0),J="messages"in e?e.messages:[{role:"user",content:(0,l.buildHandoff)({chain:e.chain,bots:[...e.above,P],did:e.context??null,part:e.request})}],G={left:s.BOT_RUN.askBack},K="askedBy"in e?function(e,t,o){let a={...e};delete a[u.TOOL_NAMES.ask_thursday];let{answer:s}=o;return s?{...a,[u.TOOL_NAMES.ask_back]:(0,n.tool)({description:h.askBackSpec.description,inputSchema:h.askBackSpec.parameters,execute:async({question:e})=>(t.left-=1,s(e))})}:a}(F,G,t):F,z=B<s.BOT_RUN.depth?function(e,t){if(0===t.peers.length)return e;let o={...e,[u.TOOL_NAMES.ask_bot]:(0,n.tool)({description:h.askBotSpec.description,inputSchema:h.askBotSpec.parameters,execute:async({bot:e,request:a,context:n},s)=>{if(e===t.name||t.above.includes(e))return`${e} is already on this job, above you and waiting on your part. Pick another bot, or do it yourself.`;let r=t.options.taskId?`${t.options.session??t.options.taskId}-${s.toolCallId.slice(0,8)}`:null,i=[],l=async n=>{let r=await N({model:t.model,instructions:t.instructions,tools:o,messages:s.messages,asked:{bot:e,request:a},question:n,signal:t.options.signal});return await t.emit({type:"answered",question:n,...r}),i.push({question:n,answer:r.text}),r.text};try{var h;let o=await v({bot:e,request:a,context:n,askedBy:t.name,chain:t.chain,above:[...t.above,t.name]},{...t.options,signal:s.abortSignal??t.options.signal,depth:t.depth+1,parent:s.toolCallId,session:r,answer:l});return i.length?`${o}
|
|
58
82
|
|
|
59
|
-
${
|
|
83
|
+
${h=e,i.map(({question:e,answer:t})=>`(On the way ${h} asked you: "${e}" — you answered: "${t}")`).join("\n")}`:o}finally{r&&(0,c.closeHiddenBrowser)(r)}}})};return o}(K,{name:P,model:q.model,instructions:Y.text,peers:Y.peers,depth:B,chain:(0,l.chainOf)(J[0]),above:"askedBy"in e?e.above:[],options:t,emit:L}):K,Q={compact:null,interjections:[]},V=(w=s.BOT_RUN.silenceMs,$=new AbortController,A=0,E=!1,M=()=>{clearTimeout(b),b=void 0,E||A>0||(b=setTimeout(()=>{$.abort(new DOMException(`The model sent nothing for ${Math.round(w/6e4)} minutes.`,"TimeoutError"))},w))},{signal:$.signal,touch:M,hold:()=>{A+=1,M()},release:()=>{A=Math.max(0,A-1),M()},end:()=>{E=!0,M()}}),X=0,Z=new a.ToolLoopAgent({model:q.model,instructions:Y.text,tools:z,stopWhen:[(0,a.stepCountIs)(O),S,(0,a.hasToolCall)(u.TOOL_NAMES.ask_thursday)],prepareStep:async({stepNumber:e,steps:o,messages:a})=>{let n=e<O-1?{}:{activeTools:[u.TOOL_NAMES.answer],toolChoice:{type:"tool",toolName:u.TOOL_NAMES.answer}};!n.activeTools&&G.left<=0&&(n={...n,activeTools:Object.keys(z).filter(e=>e!==u.TOOL_NAMES.ask_back)});let s=o.at(-1)?.usage.inputTokens??0,r=Math.max(s,a.reduce((e,t)=>e+(0,y.estimateTokens)("string"==typeof t.content?t.content:JSON.stringify(t.content))+4,0));X=r;let i=a;if(r>D&&a.length>2){V.hold();let e=await T(q.model,z,a,{signal:t.signal,budget:D}).finally(V.release);p.logger.debug(`compacted ${a.length} messages at ${r} tokens (budget ${D})`);let o=`${e.text}${await k(R?.id??null,a,U)}`;Q.compact={type:"compact",text:o,usage:e.usage,messages:a.length,tokens:r},i=[a[0],{role:"user",content:o}]}let l=e>0?t.notes?.()??[]:[];return(l.length&&(Q.interjections.push(...l),i=[...i,...l.map(e=>({role:"user",content:e}))]),i===a)?n:{...n,messages:i}}}),ee=(_=[],j=[],I=!1,{push(e){let t=j.shift();t?t(e):_.push(e)},take(){let e=_.shift();return e?Promise.resolve(e):I?Promise.resolve(null):new Promise(e=>j.push(e))},end(){for(let e of(I=!0,j.splice(0)))e(null)}}),et=t.signal?AbortSignal.any([t.signal,V.signal]):V.signal;V.touch();let eo=await Z.stream({messages:J,abortSignal:et,onStepEnd:e=>ee.push({messages:e.response.messages,usage:x(e.usage)})}),ea="",en=null,es=null,er=null,ei=-1,el=null,eh=new Set,eu=e=>{let t=(0,i.modelFailureOf)(e),o=(0,i.modelErrorToString)(e);if("overflow"!==t)return{type:"error",message:o,failure:t};let a=Math.floor(Math.min(D,X||D)*s.BOT_RUN.overflowShrink);return{type:"error",message:o,failure:t,budget:Math.max(d.COMPACT_AT_MIN,a)}};et.addEventListener("abort",()=>ee.end(),{once:!0});try{for await(let e of eo.fullStream)switch(V.touch(),e.type){case"start-step":for(let e of(ei+=1,Q.compact&&(await L(Q.compact),Q.compact=null),Q.interjections.splice(0)))await L({type:"interjection",text:e});break;case"text-delta":ea+=e.text;break;case"text-end":{let e=ea.trim();if(ea="",!e)break;en=e,await L({type:"text",text:e});break}case"tool-call":if(e.toolName===u.TOOL_NAMES.ask_thursday){let t=e.input;es={id:e.toolCallId,question:String(t.question??""),options:(0,g.optionsOf)(t.options)}}else if(e.toolName===u.TOOL_NAMES.answer){let t=e.input;er={text:String(t.result??"").trim(),stopped:ei>=O-1}}e.providerExecuted||e.toolName===u.TOOL_NAMES.ask_thursday||(eh.add(e.toolCallId),V.hold()),await L({type:"tool",id:e.toolCallId,name:e.toolName,input:e.input});break;case"tool-result":eh.delete(e.toolCallId)&&V.release(),e.toolName===u.TOOL_NAMES.answer&&er&&!(0,h.answerAccepted)(e.output)&&(er={text:`${er.text}
|
|
60
84
|
|
|
61
|
-
${
|
|
85
|
+
${f=e.output,"string"==typeof f?f:f&&"object"==typeof f&&"value"in f?"string"==typeof f.value?f.value:JSON.stringify(f.value??""):JSON.stringify(f??"")}`,stopped:!0}),await L({type:"tool-result",id:e.toolCallId,name:e.toolName,output:e.output});break;case"tool-error":eh.delete(e.toolCallId)&&V.release(),await L({type:"tool-result",id:e.toolCallId,name:e.toolName,output:(0,i.modelErrorToString)(e.error),error:!0});break;case"finish-step":{el=e.finishReason;let t=await ee.take();t&&await L({type:"step",...t,budget:D});break}case"abort":if(t.signal?.aborted)return;await L({type:"error",message:e.reason??"The model stopped sending.",failure:"transient"});return;case"error":await L(eu(e.error));return}}finally{ee.end(),V.end()}try{await eo.response}catch(e){if(t.signal?.aborted)return;await L(eu(e));return}es?await L({type:"waiting",...es}):er?await L({type:"answer",...er}):"content-filter"===el?await L({type:"error",message:"The provider's content filter stopped the response.",failure:"fatal"}):await L({type:"answer",text:en??"Stopped without handing anything back.",stopped:null===en||"length"===el||ei>=O-1})}let S=({steps:e})=>e.at(-1)?.toolResults.some(e=>e.toolName===u.TOOL_NAMES.answer&&(0,h.answerAccepted)(e.output))??!1;async function k(e,t,o){try{let a=e?await (0,g.listWrittenPaths)(e):(0,g.writtenPathsIn)(t.map(e=>e.content)),n=await (0,c.filesOnDisk)(a,o);if(!n.length)return"";let r=n.slice(-s.BOT_RUN.compactFiles),i=n.length-r.length,l=r.map(e=>`- ${e}`);return i&&l.unshift(`- …and ${i} older ones`),`
|
|
62
86
|
|
|
63
|
-
|
|
87
|
+
Files this job has on disk now — open one rather than fetching again what is in it:
|
|
88
|
+
${l.join("\n")}`}catch(e){return p.logger.warn("files under the summary could not be listed",e),""}}async function T(e,t,o,n){let s;try{return await $(e,t,o,n)}catch(e){if(n.signal?.aborted)throw e;s=e}if("overflow"===(0,i.modelFailureOf)(s)){let r=(0,a.pruneMessages)({messages:o,toolCalls:"before-last-4-messages",emptyMessages:"remove"});try{return await $(e,t,r,n)}catch(e){if(n.signal?.aborted)throw e;s=e}}throw Error(`Could not compact the context (${(0,i.modelErrorToString)(s)}).`,{cause:s})}async function $(e,t,o,n){let r,{text:i,usage:l}=await (0,a.generateText)({model:e,tools:t,toolChoice:"none",messages:[...o,{role:"user",content:(r=(e=>{let{min:t,max:o,perTokens:a}=s.BOT_RUN.summaryWords;return Math.min(o,Math.max(t,Math.round(e/a)))})(n.budget),`Compact your context. The first message above — the job, the call it came from, and anything handed over with it — stays exactly as it is. Everything after it is replaced by what you write now, and you carry on from that first message and this alone; nothing else above can be read again. Write it for a fresh copy of you that has your tools, your instructions and that first message, but has seen none of the rest.
|
|
64
89
|
|
|
65
|
-
|
|
66
|
-
- What you have done and what you found, with the exact values: numbers, names, urls, dates, ids, error messages.
|
|
67
|
-
- Files you wrote or read, by path, and what each holds.
|
|
68
|
-
- What is still left to do, in order, and any decision or answer you are waiting on.
|
|
69
|
-
- What did not work, so it is not tried again.
|
|
90
|
+
Cover all of it, and prefer a fact over a description of a fact:
|
|
70
91
|
|
|
71
|
-
|
|
92
|
+
- **Where the job stands against that first message.** Do not restate the job or the call; say what has changed since — a choice made, a detail settled, an answer that came back, a correction, anything you are still waiting on.
|
|
93
|
+
- **What is already true.** Every value you have — numbers, names, dates, ids, urls, prices, times — written out, not referred to. A value you leave out is one the next steps go and fetch again.
|
|
94
|
+
- **Where you are.** Which page the browser is on by url, whether you are signed in and to what, what is running, what you were in the middle of. Element refs do not survive this: name what to look for, never a ref.
|
|
95
|
+
- **Files.** Every path you wrote or read, and one line on what each holds.
|
|
96
|
+
- **What did not work**, and why: the url that 404s, the endpoint that needs POST not GET, the selector that is not there, the site that refuses a headless browser, the argument a tool rejected. This is the part that stops the next steps repeating an hour of yours.
|
|
97
|
+
- **What is left**, in the order you would do it.
|
|
72
98
|
|
|
73
|
-
${
|
|
99
|
+
Plain text, under ${r} words. No preamble, no headings about the summary itself, no account of how you have been going.`)}],abortSignal:n.signal,timeout:s.BOT_RUN.silenceMs}),h=i.trim();if(!h)throw Object.assign(Error("The summary of the context came back empty, so there is nothing to carry on from."),{isRetryable:!0});return{text:`Everything between the first message and here was compacted. Below is your own summary of it; carry on from the first message and this.
|
|
74
100
|
|
|
75
|
-
(
|
|
101
|
+
${h}`,usage:x(l)}}let x=e=>({input:e.inputTokens??0,output:e.outputTokens??0});async function v(e,t){let o="",a=null;return await b(e,{...t,emit:async e=>{"answer"===e.type&&(o=e.stopped?`${e.text}
|
|
76
102
|
|
|
77
|
-
|
|
103
|
+
(As far as they got — they stopped before finishing.)`:e.text),"error"===e.type&&(a=e.message),await t.emit(e)}}),a&&(0,w.publicError)(a),o}async function N(e){try{let t,o,{text:n,usage:r}=await (0,a.generateText)({model:e.model,system:e.instructions,tools:e.tools,toolChoice:"none",messages:[...e.messages,{role:"user",content:(t=e.asked,o=e.question,`You handed one part of your job to ${t.bot}:
|
|
104
|
+
|
|
105
|
+
> ${t.request.trim()}
|
|
78
106
|
|
|
79
107
|
Before going on, they ask you:
|
|
80
108
|
|
|
81
109
|
> ${o.trim()}
|
|
82
110
|
|
|
83
|
-
Answer from what you already have — the request as it reached you, the call it came out of, what you found before asking them. A few lines, plain text, and nothing else: no tools run here. If it is not in what you have, say so rather than guess, and say which way to go without it.`)}],abortSignal:
|
|
111
|
+
Answer from what you already have — the request as it reached you, the call it came out of, what you found before asking them. A few lines, plain text, and nothing else: no tools run here. If it is not in what you have, say so rather than guess, and say which way to go without it.`)}],abortSignal:e.signal,timeout:s.BOT_RUN.silenceMs});return{text:n.trim()||"They had nothing to add. Go on with your best reading, and say what you assumed in what you hand back.",usage:x(r)}}catch(t){if(e.signal?.aborted)throw t;return p.logger.warn(`ask_back: ${(0,i.modelErrorToString)(t)}`),{text:`No answer came back (${(0,i.modelErrorToString)(t)}). Go on with your best reading, and say what you assumed in what you hand back.`,usage:d.NO_TOKENS}}}e.s(["resumeThread",0,function(e,t=new Map){let o=new Set;for(let t of e)if(("tool"===t.role||"assistant"===t.role)&&"string"!=typeof t.content)for(let e of t.content)"tool-result"===e.type&&o.add(e.toolCallId);let a=[],n=[];for(let s of e){if(n.length&&"tool"===s.role){a.push({...s,content:[...n,...s.content]}),n=[];continue}n.length&&(a.push({role:"tool",content:n}),n=[]),a.push(s),"assistant"===s.role&&"string"!=typeof s.content&&(n=s.content.flatMap(e=>"tool-call"!==e.type||o.has(e.toolCallId)?[]:[{type:"tool-result",toolCallId:e.toolCallId,toolName:e.toolName,output:{type:"text",value:function(e,t){let o=e.toolName===u.TOOL_NAMES.ask_bot?t.get(e.toolCallId):void 0;return o?`No result: the run was stopped before ${o.bot} answered, and they are not working on it any more. What they had written by then:
|
|
112
|
+
|
|
113
|
+
${o.tail}
|
|
84
114
|
|
|
85
|
-
|
|
115
|
+
Check what they did before relying on it, then finish the part yourself or hand them what is left.`:"No result: the run was stopped before this call returned. Check what it did before relying on it."}(e,t)}}]))}return n.length&&a.push({role:"tool",content:n}),a},"runBot",0,b]),o()}catch(e){o(e)}},!1),39803,e=>e.a(async(t,o)=>{try{var a=e.i(380690),n=e.i(687388),s=e.i(386075),r=e.i(851372),i=e.i(353885),l=e.i(22676),h=e.i(629668),u=e.i(786025),d=e.i(167004),c=e.i(640911),p=e.i(53748),w=e.i(268486),y=e.i(585099),m=e.i(944971),g=e.i(780274),f=t([s,r,l,y,g]);[s,r,l,y,g]=f.then?(await f)():f;let _=globalThis.__botRuns??=new Map,j=globalThis.__botTaskLock??=(0,w.createKeyedLock)(),I=globalThis.__botResumes??=new Map;async function b(e){let t=e.callId?await (0,l.listCallTurns)(e.callId,r.OPENING_TURNS):[],o=(0,r.buildTaskOpening)({bot:e.bot,request:e.request,conversation:t}),a=await (0,g.insertTask)({...e,opening:o});return x(a.id,{bot:e.bot,messages:[{role:"user",content:o}]}),a.id}async function k(e,t){return j(e,async()=>{let o=await (0,g.findTask)(e);o||(0,p.publicError)("No such job.");let a=_.get(e);if(a&&"running"===o.status&&a.note(t))return void c.logger.debug(`task ${e}: interjection queued`);a&&(a.stop.abort(),await a.done),$(e);let n=await (0,g.listThread)(e),{reply:s,as:r}=function(e,t,o){var a;let n,s,r="waiting"===e.status?e.pending:null,l=r?.toolCallId?(a=r.toolCallId,n=new Set(o.flatMap(e=>"tool"===e.role?e.content.flatMap(e=>"tool-result"===e.type?[e.toolCallId]:[]):[])),s=o.findLast(e=>"assistant"===e.role&&"string"!=typeof e.content&&e.content.some(e=>"tool-call"===e.type&&e.toolCallId===a)),(s?.role==="assistant"&&"string"!=typeof s.content?s.content.flatMap(e=>"tool-call"===e.type&&e.toolName===i.TOOL_NAMES.ask_thursday?[e.toolCallId]:[]):[a]).filter(e=>!n.has(e))):[];return l.length?{as:"answer",reply:{role:"tool",content:l.map(e=>({type:"tool-result",toolCallId:e,toolName:i.TOOL_NAMES.ask_thursday,output:{type:"text",value:t}}))}}:{as:"running"===e.status?"interruption":"waiting"===e.status?"answer":"follow-up",reply:{role:"user",content:t}}}(o,t,n);c.logger.debug(`task ${e}: ${r}`),await (0,g.upsertMessage)(e,await (0,g.lastSeq)(e)+1,{bot:null,parent:null,...s}),await (0,g.updateTask)(e,{status:"running",outcome:null,pending:null,seen:!1,endedAt:null}),x(e,{bot:o.bot,messages:(0,y.resumeThread)([...n,s],await (0,g.listBorrowedTails)(e))})})}async function T(e){return j(e,async()=>{let t=await (0,g.findTask)(e);t||(0,p.publicError)("No such job."),t.endedAt&&(0,p.publicError)("That job has already ended."),$(e),_.get(e)?.stop.abort(),await (0,g.updateTask)(e,{status:"failed",outcome:"Cancelled.",pending:null,seen:!0,endedAt:new Date}),(0,u.closeJobShell)(e)})}function $(e){clearTimeout(I.get(e)),I.delete(e)}async function v(e){a.presence.watching&&await j(e,async()=>{let t=await (0,g.findTask)(e);if(!t||"waiting"!==t.status||!t.pending?.auto||_.has(e))return;c.logger.debug(`task ${e}: picking back up`);let o=await (0,g.listThread)(e);await (0,g.updateTask)(e,{status:"running",outcome:null,pending:null,seen:!1,endedAt:null}),x(e,{bot:t.bot,messages:(0,y.resumeThread)(o,await (0,g.listBorrowedTails)(e))})})}async function N(e,t){let o=await (0,g.countStopsSinceSpoken)(e),a=o<n.BOT_RUN.autoResumes,s=n.BOT_RUN.retryAfterMs,r=a&&t.retry?s[Math.min(o,s.length-1)]:0;await O(e,`${t.why} ${B}`).catch(t=>c.logger.warn(`task ${e}: stop not written`,t)),await S(e,{status:"waiting",outcome:a?`${t.why} ${r?`It tries again in ${C(r)}.`:"It picks back up by itself."}`:`${t.why} It has stopped ${o+1} times in a row, so it waits for you. Everything it had done is still here.`,pending:{toolCallId:null,options:[m.TASK_CONTINUE],...a?{auto:!0,retryAt:Date.now()+r}:{}},...t.budget?{contextBudget:t.budget}:{},seen:!1,endedAt:null}),a&&($(e),I.set(e,setTimeout(()=>{I.delete(e),v(e).catch(t=>c.logger.error(`task ${e}: resume`,t))},Math.max(0,r))))}globalThis.__botPausing??={current:Promise.resolve()};let B="Anything that was under way — a command, a page loading, a download — may not have finished: check before relying on it, then carry on.",C=e=>e<6e4?`${Math.round(e/1e3)} seconds`:`${Math.round(e/6e4)} minutes`;async function O(e,t){await (0,g.upsertMessage)(e,await (0,g.lastSeq)(e)+1,{bot:null,parent:null,role:"user",content:t,note:!0})}async function S(e,t){for(let o of[1e3,3e3,null])try{await (0,g.updateTask)(e,t);return}catch(t){if(null===o)throw t;c.logger.warn(`task ${e}: ending not written, trying again`,t),await new Promise(e=>setTimeout(e,o))}}function x(e,t){let o=new AbortController,a=()=>{},n=new Promise(e=>{a=e}),s=[];_.set(e,{stop:o,done:n,note:t=>!!_.has(e)&&(s.push(t),!0)}),A(e,t,o.signal,s).catch(t=>{c.logger.error(`task ${e}`,t)}).finally(a)}class P{taskId;seq;steps;closed;constructor(e,t){this.taskId=e,this.steps=new Map,this.closed=!1,this.seq=t}close(){this.closed=!0}async note(e){await (0,g.upsertMessage)(this.taskId,++this.seq,{bot:null,parent:null,role:"user",content:e,note:!0})}step(e){let t=`${e.bot} ${e.parent??""}`,o=this.steps.get(t);return o||(o={assistant:null,tool:null,parts:{assistant:[],tool:[]}},this.steps.set(t,o)),o}write(e,t,o,a={}){let n={bot:t.bot,parent:t.parent,role:o.role,content:o.content,compact:a.compact??!1,note:a.note??!1};return(0,g.upsertMessage)(this.taskId,e,n)}async on(e){if(this.closed)return;let t=this.step(e);switch(e.type){case"text":return t.assistant??=++this.seq,t.parts.assistant.push({type:"text",text:e.text}),this.write(t.assistant,e,{role:"assistant",content:t.parts.assistant});case"tool":return t.assistant??=++this.seq,t.parts.assistant.push({type:"tool-call",toolCallId:e.id,toolName:e.name,input:e.input}),this.write(t.assistant,e,{role:"assistant",content:t.parts.assistant});case"tool-result":return t.assistant??=++this.seq,t.tool??=++this.seq,t.parts.tool.push({type:"tool-result",toolCallId:e.id,toolName:e.name,output:e.error?{type:"error-text",value:String(e.output)}:"string"==typeof e.output?{type:"text",value:e.output}:{type:"json",value:e.output}}),this.write(t.tool,e,{role:"tool",content:t.parts.tool});case"step":{let o=[t.assistant,t.tool];this.steps.delete(`${e.bot} ${e.parent??""}`);let a=new Set;for(let[t,n]of e.messages.entries()){let s=o[t]??++this.seq;a.add(s),await this.write(s,e,n)}let n=o.filter(e=>null!==e&&!a.has(e));n.length&&await (0,g.deleteMessages)(this.taskId,n);return}case"compact":return this.write(++this.seq,e,{role:"user",content:e.text},{compact:!0,note:!0});case"interjection":return this.write(++this.seq,e,{role:"user",content:e.text});default:return}}}async function A(e,t,o,r){let i=new P(e,await (0,g.lastSeq)(e)),l=null,d=null;try{await (0,y.runBot)(t,{signal:o,taskId:e,notes:()=>r.splice(0),emit:async t=>{await i.on(t),"step"===t.type&&await (0,g.addTaskUsage)(e,t.usage,t.parent?null:{tokens:t.usage.input,budget:t.budget}),("compact"===t.type||"answered"===t.type)&&await (0,g.addTaskUsage)(e,t.usage),t.parent||("waiting"===t.type?l={status:"waiting",outcome:t.question,pending:{toolCallId:t.id,options:t.options}}:"answer"===t.type?l=t.stopped?{status:"waiting",outcome:t.text,pending:{toolCallId:null,options:[m.TASK_CONTINUE]}}:{status:"done",outcome:t.text,pending:null}:"error"===t.type&&(d={message:t.message,failure:t.failure,budget:t.budget},l={status:"failed",outcome:E(t.message),pending:null}))}})}catch(e){d={message:(0,s.modelErrorToString)(e),failure:(0,s.modelFailureOf)(e)},l={status:"failed",outcome:E(d.message),pending:null}}finally{i.close(),_.delete(e)}if(o.aborted)return;let p=l??{status:"failed",outcome:"Stopped without handing anything back.",pending:null},w=d&&"fatal"!==d.failure?d:null;try{w?await N(e,{why:"overflow"===w.failure?`The model refused the context as too long (${w.message}); it is compacted before going on.`:`The model call failed (${w.message}).`,retry:"transient"===w.failure,budget:w.budget}):("failed"===p.status&&await i.note(`The run stopped here: ${d?.message??p.outcome}`).catch(t=>c.logger.warn(`task ${e}: break not written`,t)),await S(e,{...p,seen:!1,endedAt:"waiting"===p.status?null:new Date}))}catch(t){c.logger.error(`task ${e}: could not record how it ended`,t);return}w||"waiting"===p.status?(0,u.pruneJobFiles)():(0,u.closeHiddenBrowser)(e);let f=await (0,g.findTask)(e);if(f){if(r.length){let t=r.splice(0).join("\n\n");c.logger.debug(`task ${e}: interjection after the run ended — resuming`),k(e,t).catch(t=>{c.logger.error(`task ${e}: late interjection`,t)});return}if(!w&&(await M(f.label,p),"done"===p.status)){var b;let t,o=(b=p.outcome,(t=(0,h.pathsIn)(b)).find(e=>e.startsWith(`${n.PATHS.artifacts}/`))??t[0]??null);o&&a.appEvents.emit({type:"artifact",taskId:e,label:f.label,path:o})}}}function E(e){return`The run broke: ${e}
|
|
86
116
|
|
|
87
|
-
Everything it had done is still here — answer to pick it back up.`}async function
|
|
117
|
+
Everything it had done is still here — answer to pick it back up.`}async function M(e,t){if(0!==a.appEventStream.watchers&&await (0,l.isAnyCallLive)())return;let o="waiting"===t.status?`${e} — needs you`:e;(0,d.desktopNotify)(o,t.outcome)}e.s(["answerTask",0,k,"cancelTask",0,T,"startTask",0,b]),o()}catch(e){o(e)}},!1),167004,e=>{"use strict";var t=e.i(874533),o=e.i(687388);let a=`on run argv
|
|
88
118
|
display notification (item 2 of argv) with title (item 1 of argv)
|
|
89
|
-
end run`,
|
|
119
|
+
end run`,n=`
|
|
90
120
|
$ErrorActionPreference = 'Stop'
|
|
91
121
|
[void][Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime]
|
|
92
122
|
$xml = [Windows.UI.Notifications.ToastNotificationManager]::GetTemplateContent([Windows.UI.Notifications.ToastTemplateType]::ToastText02)
|
|
@@ -95,6 +125,6 @@ $text = $xml.GetElementsByTagName('text')
|
|
|
95
125
|
[void]$text.Item(1).AppendChild($xml.CreateTextNode($env:NOTIFY_BODY))
|
|
96
126
|
$id = '{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\\WindowsPowerShell\\v1.0\\powershell.exe'
|
|
97
127
|
[Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier($id).Show([Windows.UI.Notifications.ToastNotification]::new($xml))
|
|
98
|
-
`,
|
|
128
|
+
`,s={darwin:(e,t)=>["osascript",["-e",a,"--",e,t]],win32:()=>["powershell.exe",["-NoProfile","-NonInteractive","-Command",n]],linux:(e,t)=>["notify-send",["--app-name",o.APP_NAME,"--",e,t]]};e.s(["desktopNotify",0,function(e,o){let a=e.slice(0,80),n=o.slice(0,200),r=s[process.platform]?.(a,n);if(!r)return;let[i,l]=r;(0,t.execFile)(i,l,{env:{...process.env,NOTIFY_TITLE:a,NOTIFY_BODY:n},timeout:1e4,windowsHide:!0},()=>{})}])}];
|
|
99
129
|
|
|
100
130
|
//# sourceMappingURL=_0fzqt2y._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
module.exports=[844411,e=>e.a(async(t,a)=>{try{var r=e.i(386075),n=e.i(91264),o=t([r]);[r]=o.then?(await o)():o;let i=(0,n.serverRoute)(async()=>(0,r.readGatewayCatalog)());e.s(["GET",0,i]),a()}catch(e){a(e)}},!1),860213,e=>{"use strict";var t=e.i(747909),a=e.i(174017),r=e.i(996250),n=e.i(759756),o=e.i(561916),i=e.i(174677),s=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),R=e.i(626937),v=e.i(10372),m=e.i(193695);e.i(52474);var g=e.i(600220);let E=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/llm-model/catalog/route",pathname:"/api/llm-model/catalog",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/llm-model/catalog/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(844411),...{}}),{workAsyncStorage:f,workUnitAsyncStorage:w,serverHooks:C}=E;async function _(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),E.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/llm-model/catalog/route";f=f.replace(/\/index$/,"")||"/";let w=await E.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:C,deploymentId:_,params:x,nextConfig:A,parsedUrl:y,isDraftMode:T,prerenderManifest:P,routerServerContext:S,isOnDemandRevalidate:b,revalidateOnlyGenerated:N,resolvedPathname:O,clientReferenceManifest:q,serverActionsManifest:H}=w,k=(0,s.normalizeAppPath)(f),I=!!(P.dynamicRoutes[k]||P.routes[O]),M=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,y,!1):t.end("This page could not be found"),null);if(I&&!T){let e=!!P.routes[O],t=P.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await M();throw new m.NoFallbackError}}let U=null;!I||E.isDev||T||(U="/index"===(U=O)?"/":U);let D=!0===E.isDev||!I,j=I&&!D;H&&q&&(0,i.setManifestsSingleton)({page:f,clientReferenceManifest:q,serverActionsManifest:H});let F=e.method||"GET",K=(0,o.getTracer)(),G=K.getActiveScopeSpan(),L=!!(null==S?void 0:S.isWrappedByNextServer),$=!!(0,n.getRequestMeta)(e,"minimalMode"),B=(0,n.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,A,P,$);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let V={params:x,previewProps:P.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts,useCacheTimeout:A.experimental.useCacheTimeout},cacheComponents:!!A.cacheComponents,validationLevel:A.experimental.instantInsights.validationLevel,supportsDynamicResponse:D,incrementalCache:B,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:A.cacheLife,staticPageGenerationTimeout:A.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>E.onRequestError(e,t,r,n,S)},sharedContext:{buildId:C,deploymentId:_}},X=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),z=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:a})=>{try{if(!$&&b&&N&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await E.handle(z,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let o=V.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let i=V.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(X,W,n,o),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);i&&(t[v.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,r=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=v.INFINITE_CACHE?!1!==a&&a>0?A.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:b})},!1,S),t}},J=async(n,i)=>{try{var s,l;let n=await E.handleResponse({req:e,nextConfig:A,cacheKey:U,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:N,responseGenerator:Z,waitUntil:r.waitUntil,isMinimalMode:$});if(!I)return;if((null==n||null==(s=n.value)?void 0:s.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});$||t.setHeader("x-nextjs-cache",b?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);$&&I||o.delete(v.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,R.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(X,W,new Response(n.value.body,{headers:o,status:n.value.status||200}));return}catch(t){if(t instanceof m.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:b})},!1,S),I)throw t;await (0,p.sendResponse)(X,W,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:o.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let a=K.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route")||k,s=`${F} ${r}`;n.setAttributes({"next.route":r,"http.route":r,"next.span_name":s}),n.updateName(s),i&&i!==n&&(i.setAttribute("http.route",r),i.updateName(s))})()}};if(L&&G)await J(G,void 0);else{let t=K.getActiveScopeSpan();await K.withPropagatedContext(e.headers,()=>K.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${f}`,kind:o.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>J(e,t)),void 0,!L)}}e.s(["handler",0,_,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:f,workUnitAsyncStorage:w})},"routeModule",0,E,"serverHooks",0,C,"workAsyncStorage",0,f,"workUnitAsyncStorage",0,w])},967030,e=>{e.v(e=>Promise.resolve().then(()=>e(783697)))},683671,e=>{e.v(t=>Promise.all(["server/chunks/node_modules_@vercel_oidc_dist_token_1o4m7ms.js"].map(t=>e.l(t))).then(()=>t(390391)))},329280,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_node_readline_1u65a-m._.js","server/chunks/node_modules_consola_dist_chunks_prompt_mjs_02axwqv._.js"].map(t=>e.l(t))).then(()=>t(781937)))}];
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=_0ioz3nd._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[519902,e=>{"use strict";var t=e.i(91264),a=e.i(380690);let r=(0,t.serverRoute)(e=>Promise.resolve(a.appEventStream.respond(e.signal,async()=>[{type:"hello",boot:a.BOOT_ID}])));e.s(["GET",0,r])},178449,e=>{"use strict";var t=e.i(747909),a=e.i(174017),r=e.i(996250),n=e.i(759756),o=e.i(561916),i=e.i(174677),s=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),v=e.i(626937),R=e.i(10372),m=e.i(193695);e.i(52474);var g=e.i(600220);let E=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/events/route",pathname:"/api/events",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/events/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(519902),...{}}),{workAsyncStorage:f,workUnitAsyncStorage:w,serverHooks:C}=E;async function x(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),E.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/events/route";f=f.replace(/\/index$/,"")||"/";let w=await E.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:C,deploymentId:x,params:_,nextConfig:A,parsedUrl:T,isDraftMode:y,prerenderManifest:P,routerServerContext:S,isOnDemandRevalidate:b,revalidateOnlyGenerated:N,resolvedPathname:O,clientReferenceManifest:q,serverActionsManifest:H}=w,I=(0,s.normalizeAppPath)(f),k=!!(P.dynamicRoutes[I]||P.routes[O]),M=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,T,!1):t.end("This page could not be found"),null);if(k&&!y){let e=!!P.routes[O],t=P.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await M();throw new m.NoFallbackError}}let U=null;!k||E.isDev||y||(U="/index"===(U=O)?"/":U);let D=!0===E.isDev||!k,j=k&&!D;H&&q&&(0,i.setManifestsSingleton)({page:f,clientReferenceManifest:q,serverActionsManifest:H});let F=e.method||"GET",K=(0,o.getTracer)(),B=K.getActiveScopeSpan(),L=!!(null==S?void 0:S.isWrappedByNextServer),$=!!(0,n.getRequestMeta)(e,"minimalMode"),G=(0,n.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,A,P,$);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let V={params:_,previewProps:P.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts,useCacheTimeout:A.experimental.useCacheTimeout},cacheComponents:!!A.cacheComponents,validationLevel:A.experimental.instantInsights.validationLevel,supportsDynamicResponse:D,incrementalCache:G,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:A.cacheLife,staticPageGenerationTimeout:A.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>E.onRequestError(e,t,r,n,S)},sharedContext:{buildId:C,deploymentId:x}},X=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),z=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:a})=>{try{if(!$&&b&&N&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await E.handle(z,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let o=V.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let i=V.renderOpts.collectedTags;if(!k)return await (0,p.sendResponse)(X,W,n,o),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);i&&(t[R.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,r=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=R.INFINITE_CACHE?!1!==a&&a>0?A.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:b})},!1,S),t}},J=async(n,i)=>{try{var s,l;let n=await E.handleResponse({req:e,nextConfig:A,cacheKey:U,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:N,responseGenerator:Z,waitUntil:r.waitUntil,isMinimalMode:$});if(!k)return;if((null==n||null==(s=n.value)?void 0:s.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});$||t.setHeader("x-nextjs-cache",b?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),y&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);$&&k||o.delete(R.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,v.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(X,W,new Response(n.value.body,{headers:o,status:n.value.status||200}));return}catch(t){if(t instanceof m.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:b})},!1,S),k)throw t;await (0,p.sendResponse)(X,W,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:o.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let a=K.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route")||I,s=`${F} ${r}`;n.setAttributes({"next.route":r,"http.route":r,"next.span_name":s}),n.updateName(s),i&&i!==n&&(i.setAttribute("http.route",r),i.updateName(s))})()}};if(L&&B)await J(B,void 0);else{let t=K.getActiveScopeSpan();await K.withPropagatedContext(e.headers,()=>K.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${f}`,kind:o.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>J(e,t)),void 0,!L)}}e.s(["handler",0,x,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:f,workUnitAsyncStorage:w})},"routeModule",0,E,"serverHooks",0,C,"workAsyncStorage",0,f,"workUnitAsyncStorage",0,w])},329280,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_node_readline_1u65a-m._.js","server/chunks/node_modules_consola_dist_chunks_prompt_mjs_02axwqv._.js"].map(t=>e.l(t))).then(()=>t(781937)))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_0iwfby5._.js.map
|