thursday-agent 0.15.0 → 0.16.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/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +4 -4
- 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 +13 -13
- package/.next/server/app/_not-found.segments/_full.segment.rsc +13 -13
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +11 -11
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/artifact/route.js +8 -8
- package/.next/server/app/api/artifact/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/memory/files/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/memory/route.js +3 -3
- package/.next/server/app/api/bot/memory/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/route.js +3 -3
- package/.next/server/app/api/bot/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/thread/[id]/route.js +7 -7
- package/.next/server/app/api/bot/thread/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/thread/route.js +6 -6
- package/.next/server/app/api/bot/thread/route.js.nft.json +1 -1
- package/.next/server/app/api/config/route.js +5 -5
- package/.next/server/app/api/config/route.js.nft.json +1 -1
- package/.next/server/app/api/events/route.js +1 -1
- package/.next/server/app/api/events/route.js.nft.json +1 -1
- package/.next/server/app/api/favicon/[host]/route.js +1 -1
- package/.next/server/app/api/favicon/[host]/route.js.nft.json +1 -1
- package/.next/server/app/api/file/[...path]/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/catalog/route.js +7 -7
- package/.next/server/app/api/llm-model/catalog/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/credits/route.js +7 -7
- package/.next/server/app/api/llm-model/credits/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/route.js +4 -4
- package/.next/server/app/api/llm-model/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/subscription/route.js +4 -4
- package/.next/server/app/api/llm-model/subscription/route.js.nft.json +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.nft.json +1 -1
- package/.next/server/app/api/mcp/tools/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/edit/route.js +14 -15
- package/.next/server/app/api/memory/edit/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/route.js.nft.json +1 -1
- package/.next/server/app/api/reach/route.js +18 -19
- package/.next/server/app/api/reach/route.js.nft.json +1 -1
- package/.next/server/app/api/routine/route.js +3 -3
- 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 +8 -5
- package/.next/server/app/api/skills/[source]/[name]/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/route.js +8 -5
- package/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/call/route.js +7 -7
- package/.next/server/app/api/thursday/call/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/settings/route.js +7 -7
- package/.next/server/app/api/thursday/settings/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/text/route.js +15 -16
- package/.next/server/app/api/thursday/text/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/tool-call/route.js +12 -13
- package/.next/server/app/api/thursday/tool-call/route.js.nft.json +1 -1
- package/.next/server/app/api/workspace/files/route.js +7 -7
- package/.next/server/app/api/workspace/files/route.js.nft.json +1 -1
- package/.next/server/app/api/workspace/route.js +7 -7
- package/.next/server/app/api/workspace/route.js.nft.json +1 -1
- package/.next/server/app/artifact/[...path]/page/server-reference-manifest.json +3 -3
- package/.next/server/app/artifact/[...path]/page.js +4 -4
- 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 +60 -60
- 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/chunks/[root-of-the-server]__00qyw01._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__03b09q0._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__03vunn6._.js +1 -1
- package/.next/server/chunks/{[root-of-the-server]__0adz-25._.js → [root-of-the-server]__05dp5tr._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__05n-hql._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__06nspyt._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0aijj66._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0g38-aj._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__0h656y-._.js +11 -0
- package/.next/server/chunks/{[root-of-the-server]__0g67-oo._.js → [root-of-the-server]__0j_nz36._.js} +1 -1
- package/.next/server/chunks/[root-of-the-server]__0ljizgj._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0mrk2it._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0sm5xvm._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0tsded0._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__0tvoct-._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1-tdj60._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__0132c27._.js → [root-of-the-server]__10_7vqz._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__10xnb7e._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__118qjk_._.js +3 -3
- package/.next/server/chunks/[root-of-the-server]__11g20j-._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__13hng6h._.js +1 -1
- package/.next/server/chunks/{[root-of-the-server]__0o-w4t4._.js → [root-of-the-server]__16yw3mb._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__18e65_-._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__18k8s-z._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1_04mcf._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1b8tp42._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__1c2kwku._.js +12 -0
- package/.next/server/chunks/[root-of-the-server]__1ceammd._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1ep-pao._.js +7 -0
- package/.next/server/chunks/[root-of-the-server]__1gamvcz._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1gzcbda._.js +1 -1
- package/.next/server/chunks/{[root-of-the-server]__20tvhdf._.js → [root-of-the-server]__1mbd2w_._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__1ndi14y._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1p47fbb._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1qcn1ti._.js +3 -3
- package/.next/server/chunks/[root-of-the-server]__1t0jj1j._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__1v7x5ym._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1vlxv19._.js +1 -1
- package/.next/server/chunks/{[root-of-the-server]__0ei2xnb._.js → [root-of-the-server]__1voqqyc._.js} +1 -1
- package/.next/server/chunks/[root-of-the-server]__1ygplx1._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1zn039k._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1zrwxis._.js +3 -0
- package/.next/server/chunks/_01t8da9._.js +1 -1
- package/.next/server/chunks/_02fn1o3._.js +3 -0
- package/.next/server/chunks/_05sa7xl._.js +1 -1
- package/.next/server/chunks/_06u9yo-._.js +1 -1
- package/.next/server/chunks/_07nxi75._.js +250 -0
- package/.next/server/chunks/_08354bn._.js +107 -0
- package/.next/server/chunks/_0caua_s._.js +1 -1
- package/.next/server/chunks/_0j0-gq6._.js +5 -0
- package/.next/server/chunks/_0nn99o2._.js +1 -1
- package/.next/server/chunks/_0p-h6xe._.js +5 -0
- package/.next/server/chunks/_0p6v1fr._.js +5 -0
- package/.next/server/chunks/_0qoush_._.js +3 -0
- package/.next/server/chunks/_0srlnvd._.js +1 -1
- package/.next/server/chunks/_0t_7gji._.js +1 -1
- package/.next/server/chunks/_0uir6hb._.js +9 -9
- package/.next/server/chunks/_0uzj57i._.js +1 -1
- package/.next/server/chunks/_0xm040x._.js +1 -1
- package/.next/server/chunks/_0xx3ryc._.js +2 -2
- package/.next/server/chunks/_0xygcxs._.js +250 -0
- package/.next/server/chunks/{_0ol42w-._.js → _1-sk_q4._.js} +2 -2
- package/.next/server/chunks/_146mcip._.js +1 -1
- package/.next/server/chunks/_19kea1l._.js +8 -8
- package/.next/server/chunks/_1d5zmy8._.js +1 -1
- package/.next/server/chunks/_1dxq827._.js +5 -0
- package/.next/server/chunks/{_0ejoy4d._.js → _1e54wxa._.js} +2 -2
- package/.next/server/chunks/_1gn2r2q._.js +12 -12
- package/.next/server/chunks/_1gxankq._.js +2 -2
- package/.next/server/chunks/_1hyvcgk._.js +5 -0
- package/.next/server/chunks/_1m88lkh._.js +9 -9
- package/.next/server/chunks/_1mfu9a3._.js +5 -0
- package/.next/server/chunks/_1mx9sfo._.js +1 -1
- package/.next/server/chunks/_1ozcb6o._.js +27 -0
- package/.next/server/chunks/_1q6e56i._.js +12 -12
- package/.next/server/chunks/_1qgix-j._.js +1 -1
- package/.next/server/chunks/_1w6uf9k._.js +3 -0
- package/.next/server/chunks/_1wl2g8_._.js +2 -2
- package/.next/server/chunks/_1wwl_7o._.js +1 -1
- package/.next/server/chunks/_1xcnogc._.js +6 -0
- package/.next/server/chunks/_1zfxb7j._.js +1 -1
- package/.next/server/chunks/_20oecmn._.js +6 -0
- package/.next/server/chunks/_211dn2c._.js +1 -1
- package/.next/server/chunks/config_ts_1g4sz5o._.js +1 -1
- package/.next/server/chunks/features_0wm-ujw._.js +6 -0
- package/.next/server/chunks/features_workspace_workspace_ts_13h82gv._.js +4 -4
- package/.next/server/chunks/features_workspace_workspace_ts_1iyjroj._.js +3 -3
- package/.next/server/chunks/{node_modules_1osf6vs._.js → node_modules_0dctjy-._.js} +1 -1
- package/.next/server/chunks/{node_modules_1821h5r._.js → node_modules_0mquap1._.js} +1 -1
- package/.next/server/chunks/{node_modules_1bfhxob._.js → node_modules_1er1u8w._.js} +1 -1
- package/.next/server/chunks/{node_modules_1i11kg5._.js → node_modules_1rosz79._.js} +1 -1
- package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_035jiu9._.js → node_modules_consola_dist_chunks_prompt_mjs_0_nz09c._.js} +1 -1
- package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0736s17._.js → node_modules_consola_dist_chunks_prompt_mjs_0rx6rvb._.js} +1 -1
- package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_07szfwb._.js → node_modules_consola_dist_chunks_prompt_mjs_128pb4i._.js} +1 -1
- package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0rzuf5j._.js → node_modules_consola_dist_chunks_prompt_mjs_1x3bsmx._.js} +1 -1
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_20s275p._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__0670az2._.js → [root-of-the-server]__02jdtqa._.js} +3 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__0rnjkw2._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__10eb-1x._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__17h1ggo._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1867koj._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1d7usu0._.js +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__00ro8qe._.js → [root-of-the-server]__1jyeu61._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__1y5_1cv._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1y8_-v1._.js +3 -0
- package/.next/server/chunks/ssr/{_1zdizo8._.js → _0-ou1b0._.js} +2 -2
- package/.next/server/chunks/ssr/{_02u485c._.js → _0afrpci._.js} +2 -2
- package/.next/server/chunks/ssr/_0cd6g3l._.js +5 -5
- package/.next/server/chunks/ssr/{_0trt3zp._.js → _0fo4552._.js} +17 -19
- package/.next/server/chunks/ssr/{_168tvri._.js → _0l1-xc6._.js} +2 -2
- package/.next/server/chunks/ssr/{_1rxpx-u._.js → _0ncuqct._.js} +2 -2
- package/.next/server/chunks/ssr/_0qsmpcu._.js +1 -1
- package/.next/server/chunks/ssr/{_0c1h0l9._.js → _0r0g9ki._.js} +3 -3
- package/.next/server/chunks/ssr/_0rvbegp._.js +7 -0
- package/.next/server/chunks/ssr/{_1_n8qpv._.js → _0w8r7o7._.js} +2 -2
- package/.next/server/chunks/ssr/{_074hv3s._.js → _0wupyvd._.js} +2 -2
- package/.next/server/chunks/ssr/_0x8ophf._.js +1 -1
- package/.next/server/chunks/ssr/{_0z0scn4._.js → _0y28gl3._.js} +3 -3
- package/.next/server/chunks/ssr/{node_modules_0vi73_6._.js → _10-_awu._.js} +2 -2
- package/.next/server/chunks/ssr/{_06m66w8._.js → _10fwcz_._.js} +2 -2
- package/.next/server/chunks/ssr/{_0ze-0vs._.js → _11pnnvd._.js} +4 -4
- package/.next/server/chunks/ssr/_17ble8k._.js +162 -0
- package/.next/server/chunks/ssr/_17qtuv7._.js +3 -0
- package/.next/server/chunks/ssr/{_1xq-4on._.js → _1dqaksc._.js} +2 -2
- package/.next/server/chunks/ssr/{_20lwjif._.js → _1f6s34p._.js} +2 -2
- package/.next/server/chunks/ssr/_1g48r6t._.js +3 -0
- package/.next/server/chunks/ssr/_1k0efi3._.js +3 -0
- package/.next/server/chunks/ssr/_1neoj22._.js +1 -1
- package/.next/server/chunks/ssr/_1u5vsy-._.js +3 -0
- package/.next/server/chunks/ssr/_1uij_rj._.js +3 -0
- package/.next/server/chunks/ssr/{_1r0tx3q._.js → _1umbr78._.js} +3 -3
- package/.next/server/chunks/ssr/_1w9w1ok._.js +3 -0
- package/.next/server/chunks/ssr/_1z586yw._.js +3 -0
- package/.next/server/chunks/ssr/features_0796o8r._.js +3 -0
- package/.next/server/chunks/ssr/features_133mpna._.js +6 -0
- package/.next/server/chunks/ssr/features_bot_1k25jdg._.js +3 -0
- package/.next/server/chunks/ssr/{features_config_13cg2cx._.js → features_config_11dpa7r._.js} +3 -3
- package/.next/server/chunks/ssr/features_connectors_components_mcp-setting_tsx_0jmbgvp._.js +3 -3
- 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 -3
- package/.next/server/chunks/ssr/{node_modules_1lmv1ux._.js → node_modules_0-8r9yw._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1-20i0r._.js → node_modules_0-ew8f8._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1us2bdc._.js → node_modules_02uwbwp._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1vx7yq2._.js → node_modules_097cl9f._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_16oefzh._.js → node_modules_0bas34k._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0v6s4c8._.js → node_modules_0bbwe-u._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1ngj__4._.js → node_modules_0etz1i0._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0den7sw._.js → node_modules_0ka8te1._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_10t4pbm._.js → node_modules_0ld7p-1._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_09eqoqr._.js → node_modules_0mark4f._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_01uutx9._.js → node_modules_0n1js5k._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0t93862._.js → node_modules_0sdjzae._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1x2-bh1._.js → node_modules_0u24mg0._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_15ksxpk._.js → node_modules_0uibk9z._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0r6leyg._.js → node_modules_0x_2io2._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1_gizvz._.js → node_modules_0y5uubt._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1j59xrt._.js → node_modules_138kcrz._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_20d3gsv._.js → node_modules_156m1qh._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_19d6gup._.js → node_modules_18yn_bs._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_218nu70._.js → node_modules_1dzye0n._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1gdff1c._.js → node_modules_1o9n7_n._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0yslr-j._.js → node_modules_1ozyial._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_16op-wf._.js → node_modules_1r5o-bo._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1uil5qp._.js → node_modules_1tj7_9z._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0h3dnyw._.js → node_modules_1xua-g1._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_03hfcze._.js → node_modules_1zkzksd._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0wbgrv5._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_133hjui._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_15680yt._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1b3vwd3._.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 +61 -61
- package/.next/static/chunks/00d54fcfm-lko.js +1 -0
- package/.next/static/chunks/05scfrgo_a_5_.js +58 -0
- package/.next/static/chunks/{1rjn_x_ty28qc.js → 0609ejkwuy4sf.js} +2 -2
- package/.next/static/chunks/{3w3v100tg-tun.js → 07vcuxousbmy1.js} +1 -1
- package/.next/static/chunks/{3r1p-za3kwq6b.js → 0cl_fgkphk1oz.js} +1 -1
- package/.next/static/chunks/0gjlsu6vrfzod.js +1 -0
- package/.next/static/chunks/0npvak0wpgagb.js +1 -0
- package/.next/static/chunks/{1wkrzv0y4qx48.js → 0o7o0eb7ihxi6.js} +1 -1
- package/.next/static/chunks/0q4ws7qd21chx.js +35 -0
- package/.next/static/chunks/{2q33y6q5_4yxf.js → 0unonxbajyknw.js} +1 -1
- package/.next/static/chunks/17yqt1p_svv13.js +1 -0
- package/.next/static/chunks/19l81deo_pyoc.js +1 -0
- package/.next/static/chunks/1ub9obhgfm4jl.js +1 -0
- package/.next/static/chunks/203pbwecfs3tm.js +1 -0
- package/.next/static/chunks/{30_2pay06oou4.js → 23tx-2paw9qa6.js} +3 -3
- package/.next/static/chunks/{22djpz2dakws5.js → 245_cp14iz637.js} +1 -1
- package/.next/static/chunks/2jbjyazqfqyoh.js +1 -0
- package/.next/static/chunks/2oa4gpkzjtpni.js +1 -0
- package/.next/static/chunks/2uraofiaoy32s.js +1 -0
- package/.next/static/chunks/{1ln0zczby868j.js → 2xjr5b-yk_h3o.js} +2 -2
- package/.next/static/chunks/314szf8yer-3n.js +2 -0
- package/.next/static/chunks/{38srd01ofppmn.css → 31kn4_h2rvf6k.css} +1 -1
- package/.next/static/chunks/39miwvg4k-b2d.js +1 -0
- package/.next/static/chunks/3ghvoe_mlljzs.js +15 -0
- package/.next/static/chunks/{2-9ybn1k9el1e.js → 3gn7dubb4-pwy.js} +1 -1
- package/.next/static/chunks/3j-l8un0d77v7.js +18 -0
- package/.next/static/chunks/{1iezy4u4v9kl7.js → 3ro66d9dc70bc.js} +1 -1
- package/.next/static/chunks/3vwjs5kq11417.js +1 -0
- package/.next/static/chunks/42m371fn687r5.js +1 -0
- package/README.md +3 -1
- package/guide/bots.md +3 -2
- package/guide/calls.md +16 -15
- package/guide/index.md +1 -1
- package/guide/setup.md +19 -10
- package/guide/trouble.md +12 -2
- package/package.json +2 -2
- package/public/sounds/NOTICE +213 -0
- package/public/sounds/end_voice.ogg +0 -0
- package/public/sounds/ring.ogg +0 -0
- package/public/sounds/start_voice.ogg +0 -0
- package/seed-skills/concierge/travel/SKILL.md +4 -4
- package/seed-skills/marketer/marketing/references/copywriting-copy-frameworks.md +3 -10
- package/seed-skills/marketer/marketing/references/copywriting.md +2 -2
- package/seed-skills/marketer/marketing/references/social-platforms.md +5 -5
- package/skills/artifact/SKILL.md +2 -1
- package/skills/artifact/references/book.md +2 -3
- package/skills/artifact/references/deck.md +4 -0
- package/skills/artifact/runtime/app/kit/vite.config.ts +6 -3
- package/skills/artifact/runtime/app/page/index.html +1 -1
- package/skills/artifact/runtime/book/book.html +1 -1
- package/skills/artifact/runtime/canvas/canvas.html +1 -1
- package/skills/artifact/runtime/deck/deck.html +1 -1
- package/skills/artifact/runtime/document/quick.html +1 -1
- package/skills/artifact/scripts/chart.mjs +122 -14
- package/skills/artifact/scripts/document.mjs +3 -2
- package/skills/daily-brief/scripts/story.mjs +13 -1
- package/skills/media-digest/SKILL.md +4 -2
- package/skills/media-digest/references/no-captions.md +2 -1
- package/skills/media-digest/scripts/audio.mjs +7 -2
- package/.next/server/chunks/[root-of-the-server]__0876r42._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0brcw76._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0c_j_qe._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0grmfwp._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__0kv916d._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0tkqhnc._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0vffrja._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__0vn91fr._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__0vxvcj4._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0zbo906._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__10ep3hy._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__10iry08._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__11d0tvc._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__19sv9or._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__1_1zysn._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1e0f7he._.js +0 -7
- package/.next/server/chunks/[root-of-the-server]__1fdpwcm._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1hgdkzg._.js +0 -11
- package/.next/server/chunks/[root-of-the-server]__1ksm9m-._.js +0 -12
- package/.next/server/chunks/[root-of-the-server]__1l_nubj._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1pmsv_6._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1tdudkf._.js +0 -5
- package/.next/server/chunks/_02lipqs._.js +0 -5
- package/.next/server/chunks/_034lk-r._.js +0 -3
- package/.next/server/chunks/_04ynt0z._.js +0 -252
- package/.next/server/chunks/_171rt-v._.js +0 -109
- package/.next/server/chunks/_17esum5._.js +0 -5
- package/.next/server/chunks/_1p8rzg_._.js +0 -252
- package/.next/server/chunks/_1v5g4kx._.js +0 -3
- package/.next/server/chunks/_1vxrw1q._.js +0 -5
- package/.next/server/chunks/features_0-cnt0l._.js +0 -4
- package/.next/server/chunks/features_0hdaci0._.js +0 -4
- package/.next/server/chunks/features_0p85gv6._.js +0 -3
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0ta6hsy._.js +0 -3
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0tok7g7._.js +0 -3
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_187uwe9._.js +0 -3
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1cu9mam._.js +0 -3
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1g1et-d._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__099tvf0._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0dxszdt._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0ihvne0._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__11hcjwx._.js +0 -3
- package/.next/server/chunks/ssr/_018vrx-._.js +0 -3
- package/.next/server/chunks/ssr/_0afqubz._.js +0 -162
- package/.next/server/chunks/ssr/_0ayihi5._.js +0 -3
- package/.next/server/chunks/ssr/_0gv5wzb._.js +0 -3
- package/.next/server/chunks/ssr/_0kkdx7t._.js +0 -3
- package/.next/server/chunks/ssr/_0yjztzi._.js +0 -3
- package/.next/server/chunks/ssr/_14fdswx._.js +0 -3
- package/.next/server/chunks/ssr/_1ajl6hf._.js +0 -5
- package/.next/server/chunks/ssr/_1o_i8-d._.js +0 -7
- package/.next/server/chunks/ssr/_1ri-y7z._.js +0 -4
- package/.next/server/chunks/ssr/features_0ctqq63._.js +0 -4
- package/.next/server/chunks/ssr/features_bot_0v6r-lh._.js +0 -3
- package/.next/static/chunks/0j8_qql4enu93.js +0 -1
- package/.next/static/chunks/0mr03ivl4_fxd.js +0 -1
- package/.next/static/chunks/13qwyo9-jd5kw.js +0 -1
- package/.next/static/chunks/17_b97pj_av_t.js +0 -1
- package/.next/static/chunks/18id2dgl_39_1.js +0 -18
- package/.next/static/chunks/1lp02y2nmddxg.js +0 -1
- package/.next/static/chunks/249i2g6ele3t2.js +0 -1
- package/.next/static/chunks/249wisxmxrwa9.js +0 -1
- package/.next/static/chunks/27dovttmtqjhi.js +0 -15
- package/.next/static/chunks/2k1rwhz_x2lej.js +0 -1
- package/.next/static/chunks/2p2pqpub-48me.js +0 -58
- package/.next/static/chunks/34-6gj9kheq74.js +0 -2
- package/.next/static/chunks/3a29oqdmvp25o.js +0 -35
- package/.next/static/chunks/3c_bgfr_z4peu.js +0 -1
- package/.next/static/chunks/3gyqds2iodotb.js +0 -1
- package/.next/static/chunks/3hxors_gsfsut.js +0 -1
- package/.next/static/chunks/3q-3lu8gpr4-h.js +0 -1
- package/.next/static/chunks/3qkm3p4g4ajku.js +0 -3
- package/.next/static/chunks/3w3mgbz8nuug2.js +0 -1
- package/app/api/bot/memory/files/route.ts +0 -14
- package/app/api/bot/memory/route.ts +0 -5
- package/app/api/events/app-event.client.ts +0 -30
- package/app/api/events/app-event.server.ts +0 -47
- package/app/api/events/app-event.ts +0 -78
- package/app/api/llm-model/catalog/route.ts +0 -12
- package/app/api/llm-model/credits/route.ts +0 -11
- package/app/api/llm-model/route.ts +0 -26
- package/app/api/llm-model/subscription/route.ts +0 -11
- package/app/api/memory/edit/route.ts +0 -7
- package/app/api/memory/route.ts +0 -8
- package/app/api/query-key.ts +0 -192
- package/app/api/thursday/tool-call/route.ts +0 -76
- package/biome.json +0 -72
- package/components/ui/button-group.tsx +0 -45
- package/components/ui/custom-icon.tsx +0 -199
- package/components/ui/dropdown-menu.tsx +0 -271
- package/components/ui/folded-text.tsx +0 -68
- package/components/ui/input-group.tsx +0 -157
- package/components/ui/json-view.tsx +0 -240
- package/components/ui/radio-group.tsx +0 -37
- package/components/ui/shiny-text.tsx +0 -68
- package/components/ui/site-icon.tsx +0 -45
- package/components/ui/source-chips.tsx +0 -54
- package/components/ui/theme-sync.tsx +0 -9
- package/components.json +0 -25
- package/docs/how-it-works.md +0 -76
- package/docs/images/errands-dark.png +0 -0
- package/docs/images/errands-light.png +0 -0
- package/docs/images/hero-dark.png +0 -0
- package/docs/images/hero-light.png +0 -0
- package/docs/images/keeps-going.png +0 -0
- package/docs/images/more-dark.png +0 -0
- package/docs/images/more-light.png +0 -0
- package/docs/images/results-dark.png +0 -0
- package/docs/images/results-light.png +0 -0
- package/docs/images/talk-dark.png +0 -0
- package/docs/images/talk-light.png +0 -0
- package/docs/images/team-dark.png +0 -0
- package/docs/images/team-light.png +0 -0
- package/docs/images/two-minds.png +0 -0
- package/features/ai/chatgpt.ts +0 -638
- package/features/ai/components/chatgpt-sign-in.tsx +0 -66
- package/features/ai/components/effort-switch.tsx +0 -112
- package/features/ai/components/gateway-mark.tsx +0 -188
- package/features/ai/components/model-browser.tsx +0 -324
- package/features/ai/components/model-picker.tsx +0 -336
- package/features/ai/components/provider-icon.tsx +0 -162
- package/features/ai/guide.ts +0 -44
- package/features/ai/live.schema.ts +0 -150
- package/features/ai/load-tools.ts +0 -495
- package/features/ai/model.schema.ts +0 -985
- package/features/ai/model.ts +0 -662
- package/features/ai/prompts/bot.prompt.ts +0 -418
- package/features/ai/prompts/call-standing.ts +0 -43
- package/features/ai/prompts/live.prompt.ts +0 -197
- package/features/ai/prompts/memory-edit.prompt.ts +0 -33
- package/features/ai/prompts/persona.ts +0 -114
- package/features/ai/prompts/prompt-helper.ts +0 -287
- package/features/ai/prompts/thursday.prompt.ts +0 -281
- package/features/ai/tools/bot.tool.ts +0 -183
- package/features/ai/tools/call.tool.ts +0 -50
- package/features/ai/tools/connected.ts +0 -199
- package/features/ai/tools/deck.tool.ts +0 -518
- package/features/ai/tools/look.tool.ts +0 -65
- package/features/ai/tools/mcp.tool.ts +0 -187
- package/features/ai/tools/memory.tool.ts +0 -296
- package/features/ai/tools/routine.tool.ts +0 -214
- package/features/ai/tools/search.tool.ts +0 -248
- package/features/ai/tools/self.tool.ts +0 -58
- package/features/ai/tools/signin.tool.ts +0 -138
- package/features/ai/tools/skills.tool.ts +0 -109
- package/features/ai/tools/studio.tool.ts +0 -360
- package/features/ai/tools/tool-name.ts +0 -56
- package/features/ai/tools/workspace.tool.ts +0 -126
- package/features/ai/words.ts +0 -60
- package/features/artifact/artifact.action.ts +0 -12
- package/features/artifact/artifact.query.ts +0 -218
- package/features/artifact/artifact.schema.ts +0 -58
- package/features/artifact/components/artifact-setting.tsx +0 -513
- package/features/bot/bot.action.ts +0 -195
- package/features/bot/bot.memory.ts +0 -206
- package/features/bot/bot.query.ts +0 -293
- package/features/bot/bot.run.ts +0 -909
- package/features/bot/bot.runner.ts +0 -595
- package/features/bot/bot.schema.ts +0 -501
- package/features/bot/bot.seed.ts +0 -160
- package/features/bot/components/attachments.tsx +0 -225
- package/features/bot/components/bot-badge.tsx +0 -21
- package/features/bot/components/bot-mark.tsx +0 -1678
- package/features/bot/components/bot-room.tsx +0 -439
- package/features/bot/components/bot-roster.tsx +0 -43
- package/features/bot/components/bot-setting.tsx +0 -1698
- package/features/bot/components/bot-tip.tsx +0 -48
- package/features/bot/components/bot-tool.tsx +0 -644
- package/features/bot/components/crew-motion.ts +0 -168
- package/features/bot/components/mark-palette.tsx +0 -57
- package/features/bot/components/room-conversation.tsx +0 -1208
- package/features/bot/components/room-list.tsx +0 -539
- package/features/bot/components/room-pill.tsx +0 -1045
- package/features/bot/components/thread-badge.tsx +0 -37
- package/features/bot/components/thread-reply.tsx +0 -780
- package/features/bot/components/thread-setting.tsx +0 -718
- package/features/bot/components/write-orb.tsx +0 -298
- package/features/bot/mark.const.ts +0 -164
- package/features/bot/room.query.ts +0 -922
- package/features/bot/room.schema.ts +0 -78
- package/features/bot/seed-bots.ts +0 -44
- package/features/bot/thread.query.ts +0 -1175
- package/features/bot/thread.store.ts +0 -726
- package/features/config/components/config-badge.tsx +0 -28
- package/features/config/components/config-setting.tsx +0 -881
- package/features/config/components/models-badge.tsx +0 -42
- package/features/config/components/voice-key.tsx +0 -321
- package/features/config/config.action.ts +0 -67
- package/features/config/config.const.ts +0 -356
- package/features/config/config.query.ts +0 -43
- package/features/connectors/components/mcp-badge.tsx +0 -17
- package/features/connectors/components/mcp-mark.tsx +0 -4
- package/features/connectors/components/mcp-setting.tsx +0 -1028
- package/features/connectors/mcp.action.ts +0 -93
- package/features/connectors/mcp.const.ts +0 -336
- package/features/connectors/mcp.manager.ts +0 -497
- package/features/connectors/mcp.query.ts +0 -256
- package/features/connectors/mcp.schema.ts +0 -122
- package/features/intro/components/echoes.tsx +0 -563
- package/features/intro/components/intro.tsx +0 -964
- package/features/intro/intro-voice.ts +0 -174
- package/features/memory/components/memory-edit.tsx +0 -333
- package/features/memory/components/memory-mark.tsx +0 -4
- package/features/memory/components/memory-setting.tsx +0 -662
- package/features/memory/memory.action.ts +0 -75
- package/features/memory/memory.edit.ts +0 -79
- package/features/memory/memory.query.ts +0 -513
- package/features/memory/memory.schema.ts +0 -196
- package/features/reach/channel.ts +0 -127
- package/features/reach/chat-text.ts +0 -364
- package/features/reach/components/reach-ask.tsx +0 -94
- package/features/reach/components/reach-badge.tsx +0 -22
- package/features/reach/components/reach-guide.tsx +0 -777
- package/features/reach/discord.ts +0 -308
- package/features/reach/pictures.ts +0 -88
- package/features/reach/reach.action.ts +0 -30
- package/features/reach/reach.schema.ts +0 -80
- package/features/reach/reach.ts +0 -946
- package/features/reach/slack.ts +0 -319
- package/features/reach/socket.ts +0 -63
- package/features/reach/telegram.ts +0 -323
- package/features/routine/components/routine-mark.tsx +0 -7
- package/features/routine/components/routine-setting.tsx +0 -1078
- package/features/routine/routine.action.ts +0 -31
- package/features/routine/routine.clock.ts +0 -102
- package/features/routine/routine.query.ts +0 -207
- package/features/routine/routine.schema.ts +0 -157
- package/features/settings/components/install-app.tsx +0 -153
- package/features/settings/components/setting-ui.tsx +0 -482
- package/features/settings/components/settings.tsx +0 -464
- package/features/settings/settings.alert.ts +0 -42
- package/features/settings/settings.store.ts +0 -44
- package/features/signins/components/signin-ask.tsx +0 -51
- package/features/signins/components/signins-setting.tsx +0 -261
- package/features/signins/signins.action.ts +0 -22
- package/features/signins/signins.query.ts +0 -261
- package/features/signins/signins.schema.ts +0 -26
- package/features/skills/components/skills-mark.tsx +0 -4
- package/features/skills/components/skills-setting.tsx +0 -736
- package/features/skills/skills.action.ts +0 -118
- package/features/skills/skills.discover.ts +0 -146
- package/features/skills/skills.query.ts +0 -363
- package/features/skills/skills.schema.ts +0 -105
- package/features/thursday/ascii.const.ts +0 -218
- package/features/thursday/call-signal.ts +0 -41
- package/features/thursday/components/ascii-orb.tsx +0 -1523
- package/features/thursday/components/boot.tsx +0 -24
- package/features/thursday/components/call-log.tsx +0 -503
- package/features/thursday/components/caption-words.tsx +0 -117
- package/features/thursday/components/connect-wave.tsx +0 -266
- package/features/thursday/components/face.tsx +0 -137
- package/features/thursday/components/side-captions.tsx +0 -347
- package/features/thursday/components/tab-state.tsx +0 -108
- package/features/thursday/components/thursday-mark.tsx +0 -168
- package/features/thursday/components/thursday-setting.tsx +0 -1084
- package/features/thursday/components/thursday.tsx +0 -1823
- package/features/thursday/components/voice-picker.tsx +0 -254
- package/features/thursday/components/write-line.tsx +0 -714
- package/features/thursday/expressions.ts +0 -1278
- package/features/thursday/eyes.ts +0 -274
- package/features/thursday/face-words.ts +0 -44
- package/features/thursday/face.const.ts +0 -6
- package/features/thursday/face.store.ts +0 -62
- package/features/thursday/field.ts +0 -93
- package/features/thursday/open-work.ts +0 -180
- package/features/thursday/screen-act.ts +0 -15
- package/features/thursday/silent-voice.ts +0 -14
- package/features/thursday/smoke.ts +0 -510
- package/features/thursday/thursday.action.ts +0 -266
- package/features/thursday/thursday.query.ts +0 -382
- package/features/thursday/thursday.schema.ts +0 -251
- package/features/thursday/thursday.store.ts +0 -129
- package/features/thursday/thursday.text.ts +0 -567
- package/features/thursday/tool-call.ts +0 -42
- package/features/thursday/tool-line.ts +0 -333
- package/features/thursday/use-call-ring.ts +0 -194
- package/features/thursday/use-live-settings.ts +0 -66
- package/features/thursday/use-text-call.ts +0 -551
- package/features/thursday/use-thursday.ts +0 -1231
- package/features/thursday/wash.ts +0 -116
- package/features/thursday/work-chip.tsx +0 -64
- package/features/workspace/components/artifact-view.tsx +0 -510
- package/features/workspace/components/file-thumb.tsx +0 -253
- package/features/workspace/components/file-view.tsx +0 -875
- package/features/workspace/components/given-files.tsx +0 -195
- package/features/workspace/components/workspace-mark.tsx +0 -4
- package/features/workspace/components/workspace-setting.tsx +0 -454
- package/features/workspace/file-kind.ts +0 -190
- package/features/workspace/workspace.action.ts +0 -88
- package/features/workspace/workspace.query.ts +0 -220
- package/features/workspace/workspace.schema.ts +0 -58
- package/features/workspace/workspace.ts +0 -553
- package/hooks/use-draft.ts +0 -38
- package/hooks/use-hotkey.ts +0 -171
- package/hooks/use-object-state.ts +0 -22
- package/hooks/use-on-visible.ts +0 -72
- package/hooks/use-theme.ts +0 -120
- package/hooks/use-wake-word.ts +0 -262
- package/knip.json +0 -7
- package/lib/date-like.ts +0 -37
- package/lib/desktop-notify.ts +0 -81
- package/lib/favicon.ts +0 -88
- package/lib/json-schema.ts +0 -42
- package/lib/live/live.schema.ts +0 -36
- package/lib/live/live.server.ts +0 -188
- package/lib/live/live.session.ts +0 -712
- package/lib/live/live.tap.ts +0 -288
- package/lib/live/live.transport.ts +0 -152
- package/lib/live/ring.ts +0 -62
- package/lib/logger.ts +0 -14
- package/lib/oauth-page.ts +0 -27
- package/lib/protocol/events.client.ts +0 -89
- package/lib/protocol/events.server.ts +0 -158
- package/lib/protocol/events.ts +0 -53
- package/lib/protocol/presence.ts +0 -65
- package/lib/protocol/result.ts +0 -63
- package/lib/protocol/server-action.ts +0 -13
- package/lib/protocol/server-route.ts +0 -20
- package/lib/protocol/to-result.ts +0 -46
- package/lib/protocol/use-server-action.ts +0 -105
- package/lib/protocol/use-server-pages.ts +0 -117
- package/lib/protocol/use-server-route.ts +0 -165
- package/lib/public-error.ts +0 -19
- package/lib/queue.ts +0 -79
- package/lib/reveal-path.ts +0 -46
- package/lib/sandbox.ts +0 -269
- package/lib/theme.ts +0 -9
- package/lib/tokens.ts +0 -35
- package/lib/utils.ts +0 -163
- package/release-please-config.json +0 -21
- package/scripts/artifact-paths.test.mts +0 -56
- package/scripts/bot-context.test.mts +0 -2122
- package/scripts/intro-voice.mts +0 -65
- package/scripts/live-history.test.mts +0 -115
- package/scripts/live-session.test.mts +0 -1286
- package/scripts/memory-tools.test.mts +0 -177
- package/scripts/page-edits.test.mts +0 -319
- package/scripts/reach-channels.test.mts +0 -524
- package/scripts/skill-files.test.mts +0 -225
- package/scripts/text-call.test.mts +0 -540
- package/skills-lock.json +0 -23
- package/tsconfig.json +0 -44
- /package/.next/static/{0yrnAMu4F_o69_DY3W-ho → RtLRT9EEaGn-OqwpMFdYg}/_buildManifest.js +0 -0
- /package/.next/static/{0yrnAMu4F_o69_DY3W-ho → RtLRT9EEaGn-OqwpMFdYg}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{0yrnAMu4F_o69_DY3W-ho → RtLRT9EEaGn-OqwpMFdYg}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
module.exports=[60052,a=>{"use strict";var b=a.i(187924),c=a.i(400187),d=a.i(497895);let e=(0,c.cva)("flex w-fit items-stretch has-[>[data-slot=button-group]]:gap-1.5 [&>*]:relative [&>*]:focus-visible:z-10",{variants:{orientation:{horizontal:"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none",vertical:"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none"}},defaultVariants:{orientation:"horizontal"}});a.s(["ButtonGroup",0,function({className:a,orientation:c="horizontal",...f}){return(0,b.jsx)("div",{"data-slot":"button-group","data-orientation":c,role:"group",className:(0,d.cn)(e({orientation:c}),a),...f})}])},511576,a=>{"use strict";var b=a.i(187924),c=a.i(572131);let d=new Intl.Segmenter(void 0,{granularity:"grapheme"});function e({wait:a,children:d}){let[f]=(0,c.useState)(a);return(0,b.jsx)("span",{style:{animationDelay:`${f}ms`},className:"animate-letter motion-reduce:animate-none",children:d})}a.s(["Letters",0,function({text:a,wraps:f=[]}){let g=(0,c.useMemo)(()=>Array.from(d.segment(a),a=>a.segment),[a]),h=(0,c.useRef)([]),i=0;for(;i<g.length&&g[i]===h.current[i];)i++;(0,c.useEffect)(()=>{h.current=g},[g]);let j=a=>(0,b.jsx)(e,{wait:25*Math.max(0,a-i),children:g[a]},`${g[a]}${a}`),k=[];for(let a=0;a<g.length;){let d=f.find(b=>b.from===a&&b.to>a);if(!d){k.push(j(a)),a+=1;continue}let e=Math.min(d.to,g.length),h=[];for(let b=a;b<e;b++)h.push(j(b));k.push((0,b.jsx)(c.Fragment,{children:d.render(h)},`wrap${a}`)),a=e}return(0,b.jsx)("span",{children:k})}])},364434,995032,886297,569587,240608,566778,a=>{"use strict";var b=a.i(187924),c=a.i(767561),d=a.i(619477),e=a.i(759497);function f(){let{data:a}=(0,e.useServerRoute)(c.queryKey.bot);return a&&0===a.length?"waiting":null}a.s(["BotBadge",0,function(){return f()?(0,b.jsx)(d.NavBadge,{tone:"waiting"}):null},"useBotAlert",0,f],364434);var g=a.i(411509);function h(){let{data:a}=(0,e.useServerRoute)(c.queryKey.threads);return{owed:(a??[]).filter(a=>(0,g.needsThreadReply)(a)||(0,g.isUnread)(a)).length}}a.s(["ThreadBadge",0,function(){return(0,b.jsx)(d.NavBadge,{tone:"waiting",count:h().owed})},"useThreadAlert",0,function(){return h().owed>0?"waiting":null},"useThreadReport",0,h],995032);var i=a.i(478978);function j(){let{data:a,isLoading:b}=(0,e.useServerRoute)(c.queryKey.config);if(b)return null;let d=b=>(0,i.isConfigSet)(a,b);return i.CONFIG_GROUPS.some(a=>"keys"===a.section&&!(0,i.groupSatisfied)(a,d))?"waiting":null}a.s(["ConfigBadge",0,function(){return j()?(0,b.jsx)(d.NavBadge,{tone:"waiting"}):null},"useConfigAlert",0,j],886297);let k=i.CONFIG_GROUPS.filter(a=>"models"===a.section).flatMap(a=>a.entries.filter(a=>a.kind).map(a=>a.key));function l(){let{data:a,isLoading:b}=(0,e.useServerRoute)(c.queryKey.config);return b||!a?null:k.every(b=>!(0,i.isConfigSet)(a,b))?"waiting":null}function m(){let{data:a}=(0,e.useServerRoute)(c.queryKey.mcp);return a?.some(a=>a.lastError)?"red":null}function n(){let{data:a}=(0,e.useServerRoute)(c.queryKey.reach);return a?.channels.some(a=>a.refused)?"red":null}a.s(["ModelsBadge",0,function(){return l()?(0,b.jsx)(d.NavBadge,{tone:"waiting"}):null},"useModelsAlert",0,l],569587),a.s(["McpBadge",0,function(){return m()?(0,b.jsx)(d.NavBadge,{tone:"red"}):null},"useMcpAlert",0,m],240608),a.s(["ReachBadge",0,function(){return n()?(0,b.jsx)(d.NavBadge,{tone:"red"}):null},"useReachAlert",0,n],566778)},984202,a=>{"use strict";var b=a.i(187924),c=a.i(654816),d=a.i(913834);a.s(["BotTip",0,function({bot:a,icon:e,line:f,children:g}){return(0,b.jsxs)(c.Tooltip,{children:[(0,b.jsx)(c.TooltipTrigger,{render:(0,b.jsx)("span",{}),children:g}),(0,b.jsxs)(c.TooltipContent,{className:"flex items-center gap-2 py-1 pr-2.5 pl-1",children:[(0,b.jsxs)("span",{className:"flex items-center gap-1.5 rounded-full bg-background/15 py-0.5 pr-2 pl-1",children:[(0,b.jsx)(d.BotMark,{size:15,seed:a,color:e?.color,shape:e?.shape,outline:e?.outline,paint:e?.paint}),(0,b.jsx)("span",{className:"font-medium text-[11px]",children:a})]}),f&&(0,b.jsx)("span",{className:"text-[11.5px] opacity-80",children:f})]})]})}])},997206,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(497895);let e=[[0,[21,117,208]],[.4,[90,157,222]],[.75,[179,210,239]],[1,[252,252,254]]],f=e[0][1],g=[{pace:.075,wide:.75,tall:1.15,seed:3.1,gustWide:.4,gustTall:.2,sky:1},{pace:.16,wide:1.3,tall:2.2,seed:11.7,gustWide:0,gustTall:0,sky:1},{pace:.3,wide:2.4,tall:4,seed:19.3,gustWide:0,gustTall:0,sky:1},{pace:.21,wide:1.65,tall:2.9,seed:27.7,gustWide:0,gustTall:0,sky:1.3}],h=(a,b,c)=>a<b?b:a>c?c:a,i=a=>a*a*(3-2*a),j=(a,b,c)=>i(h((c-a)/(b-a),0,1)),k=(a,b)=>{let c=0x165667b1*a+0x27d4eb2f*b|0;return(((c=(c^c>>>13)*0x4bf19f61)^c>>>16)>>>0)/0xffffffff},l=(a,b)=>{let c=Math.floor(a),d=Math.floor(b),e=i(a-c),f=i(b-d);return(k(c,d)*(1-e)+k(c+1,d)*e)*(1-f)+(k(c,d+1)*(1-e)+k(c+1,d+1)*e)*f},m=(a,b,c)=>.74*l(a+c,b+.7*c)+.26*l(2.2*a+c,2.2*b+1.3*c);a.s(["WriteOrb",0,function({on:a,className:i}){let k=(0,c.useRef)(null),[n,o]=(0,c.useState)(a),[p,q]=(0,c.useState)(!1);return((0,c.useEffect)(()=>{if(a){o(!0);let a=requestAnimationFrame(()=>q(!0));return()=>cancelAnimationFrame(a)}q(!1);let b=setTimeout(()=>o(!1),200);return()=>clearTimeout(b)},[a]),(0,c.useEffect)(()=>{let a=k.current,b=a?.getContext("2d");if(!a||!b)return;a.width=48,a.height=48;let c=b.createImageData(48,48),d=c.data,i=[0,0,0],n=900*Math.random(),o=400*Math.random(),p=a=>{let k=a+n,p=k+1.7*Math.sin(.33*k),q=(.5+.5*Math.sin(.27*k))**2*.72+(.5+.5*Math.sin(.41*k+2.1))**3*.28,r=.1*Math.sin(.19*k),s=g.map(a=>({seed:a.seed,shift:p*a.pace,wide:a.wide*(1-a.gustWide*q),tall:a.tall*(1+a.gustTall*q),sky:o*a.sky})),t=0;for(let a=0;a<48;a+=1){let b=(a+.5)/48*2-1;for(let a=0;a<48;a+=1,t+=4){let c=(a+.5)/48*2-1,g=l(.55*c+.03*k,.55*b+o)-.5,n=l(.55*c+9.1+o,.55*b-.024*k)-.5,p=c+1.15*g,q=b+ +n+r,[u,v,w,x]=s.map(a=>m((p-a.shift)*a.wide+a.sky,q*a.tall,a.seed)),y=h((.52-u)/.34,0,1);y*=.7+.6*h((.56-v)/.4,0,1);let z=.97-.92*(y=h(y+(.5-w)*.42,0,1))**1.2-.1*h((.5-w)/.6,0,1)+(x-.5)*.38,A=Math.sqrt(c*c+b*b);!function(a,b){let c=h(a,0,1),d=1;for(;d<e.length-1&&c>e[d][0];)d+=1;let[f,g]=e[d-1],[i,j]=e[d],k=(c-f)/(i-f);b[0]=g[0]+(j[0]-g[0])*k,b[1]=g[1]+(j[1]-g[1])*k,b[2]=g[2]+(j[2]-g[2])*k}(z+=.16*h(1-Math.hypot(c+.42,b+.48)/1.5,0,1)+j(.84,1,A)*h(.15+.85*(.8*b+.45*c),0,1)*.45,i);let B=h(A,0,1)**2.4*.26;d[t]=i[0]+(f[0]-i[0])*B,d[t+1]=i[1]+(f[1]-i[1])*B,d[t+2]=i[2]+(f[2]-i[2])*B,d[t+3]=255*(1-j(.94,1,A))}}b.putImageData(c,0,0)},q=performance.now();if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return void p(6);let r=0,s=0,t=a=>{r=requestAnimationFrame(t),a-s<33||(s=a,p((a-q)/1e3))};return r=requestAnimationFrame(t),()=>cancelAnimationFrame(r)},[n]),n)?(0,b.jsx)("canvas",{ref:k,"aria-hidden":!0,className:(0,d.cn)("pointer-events-none absolute inset-0 size-full transition-opacity",p?"opacity-100":"opacity-0",i),style:{transitionDuration:"200ms"}}):null}])},36304,a=>{"use strict";var b=a.i(572131);let c={wave:740,done:740,ask:820,took:740,give:900,take:520,stop:1150,read:560},d={wave:{body:"animate-crew-hop",shape:"animate-crew-hop-shape"},took:{body:"animate-crew-hop",shape:"animate-crew-hop-shape"},done:{body:"animate-crew-hop",shape:"animate-crew-hop-shape",turn:"animate-crew-spin"},ask:{body:"animate-crew-hop",shape:"animate-crew-hop-shape",turn:"animate-crew-ask-turn"},give:{turn:"animate-crew-give"},take:{body:"animate-crew-take",shape:"animate-crew-take-shape"},stop:{body:"animate-crew-sink",shape:"animate-crew-sink-shape"},read:{body:"animate-crew-nod",shape:"animate-crew-nod-shape"}},e={key:0,body:"",shape:"animate-crew-breath",turn:"",delayMs:0};a.s(["motionOf",0,function(a,b){if(!a)return{...e,delayMs:-370*b};let c=d[a.gesture];return{key:a.id,body:c.body??"",shape:c.shape??"animate-crew-breath",turn:c.turn??"",delayMs:"wave"===a.gesture?70*b:0}},"useCrewGestures",0,function(){let[a,d]=(0,b.useState)(new Map),e=(0,b.useRef)(new Map),f=(0,b.useRef)(0);return(0,b.useEffect)(()=>{let a=e.current;return()=>{for(let b of a.values())clearTimeout(b);a.clear()}},[]),[a,(0,b.useCallback)(a=>{a.length&&d(b=>{let g=new Map(b);for(let{bot:b,gesture:h}of a){f.current+=1,g.set(b,{gesture:h,id:f.current});let a=e.current.get(b);a&&clearTimeout(a),e.current.set(b,setTimeout(()=>{e.current.delete(b),d(a=>{let c=new Map(a);return c.delete(b),c})},c[h]+1400*("wave"===h)))}return g})},[])]}])},813535,a=>a.a(async(b,c)=>{try{var d=a.i(187924),e=a.i(256711),f=a.i(20984),g=a.i(912402),h=a.i(11065),i=a.i(707963),j=a.i(231500),k=a.i(875160),l=a.i(572131),m=a.i(340695),n=a.i(545097),o=a.i(950463),p=a.i(621958),q=a.i(411509),r=a.i(913834),s=a.i(42380),t=a.i(988422),u=a.i(156819),v=a.i(199169),w=a.i(497895),x=a.i(135432),y=a.i(181809),z=b([t,y]);function A(){return(0,d.jsxs)("div",{className:"flex items-center gap-2.5 px-2 py-1.5",children:[(0,d.jsx)(o.Skeleton,{className:"size-8 shrink-0 rounded-[10px]"}),(0,d.jsxs)("span",{className:"flex h-9 min-w-0 flex-1 flex-col justify-center gap-1.5",children:[(0,d.jsx)(o.Skeleton,{className:"h-3.5 w-2/5"}),(0,d.jsx)(o.Skeleton,{className:"h-2.5 w-3/5"})]})]})}[t,y]=z.then?(await z)():z;let C=[{id:"needsYou",label:"needs you"},{id:"working",label:"working"}];function B({thread:a,onPick:b,lines:c=1}){let e=(0,q.needsThreadReply)(a),f=a.lines.at(-1),g=(0,l.useMemo)(()=>(function(a){let b=a.room.questions[0];if(b)return{text:(0,w.plainText)(b.text),tone:"text-foreground"};if("waiting"===a.status&&a.ask)return{text:(0,q.isAppStop)(a.ask)?(0,w.plainText)(a.outcome??a.ask.question):a.ask.question,tone:w.WAITING_INK};let c=a.seen;if("cancelled"===a.status)return{text:"Stopped",tone:"text-muted-foreground"};if("done"===a.status)return{text:(0,w.plainText)(a.outcome??"Done"),tone:c?"text-muted-foreground":"text-foreground"};let d=(0,x.lastSaid)(a);return d?{text:"tool"===d.kind&&d.tool?d.tool.note??`${d.tool.name} \xb7 ${d.tool.input}`:d.text,tone:"text-muted-foreground"}:{text:`${a.bot.name} is taking it on…`,tone:"text-muted-foreground italic"}})(a),[a.status,a.outcome,a.seen,a.ask,a.room.questions,f?.id]),[h,i]=(0,t.useAnswerThread)(),[o,p]=(0,l.useState)(null),y=a.room.questions[0],z=y?y.options??[]:"waiting"===a.status&&(0,q.isAppStop)(a.ask)?a.ask?.options??[]:[];return(0,d.jsxs)("div",{className:"rounded-xl transition-colors hover:bg-muted/60",children:[(0,d.jsxs)("button",{type:"button",onClick:b,className:"flex w-full items-center gap-2.5 rounded-xl px-2 py-1.5 text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,d.jsx)("span",{className:"relative flex size-8 shrink-0 items-center justify-center overflow-visible",title:a.bot.name,children:(0,d.jsx)(r.BotMark,{size:32,seed:a.bot.name,color:a.bot.icon?.color,shape:a.bot.icon?.shape,outline:a.bot.icon?.outline,paint:a.bot.icon?.paint,state:"working"===a.status?"thinking":"idle",notify:e||(0,q.isUnread)(a),crossed:"cancelled"===a.status})}),(0,d.jsxs)("span",{className:"min-w-0 flex-1",children:[e&&!y&&(0,q.isAppStop)(a.ask)&&(0,d.jsx)("span",{className:"block font-mono text-[10px] tracking-wide text-muted-foreground",children:"Paused"}),(0,d.jsxs)("span",{className:"flex items-center justify-between gap-2",children:[(0,d.jsx)("span",{className:(0,w.cn)("min-w-0 truncate text-[14px] leading-5 tracking-[-0.15px]",e?"text-foreground":"text-foreground/80",(e||(0,q.isUnread)(a))&&"font-medium"),children:a.label}),a.routineId&&(0,d.jsx)("span",{title:"Started by a routine",className:"shrink-0",children:(0,d.jsx)(u.RoutineMark,{className:"size-3 text-muted-foreground/80"})}),(0,d.jsx)(s.BotRoster,{bots:a.roster}),(0,d.jsx)("span",{className:"flex-1"}),(0,d.jsx)("span",{className:"shrink-0 font-mono text-[11px] leading-4 text-muted-foreground/70 tabular-nums",children:(0,v.shortAgo)(a.updatedAt)})]}),(0,d.jsxs)("span",{className:(0,w.cn)("mt-px flex items-center gap-1.5",1===c&&"h-4"),children:["working"===a.status&&(0,d.jsx)(k.Loader2,{className:"size-3 shrink-0 animate-spin text-muted-foreground/70"}),"working"===a.status||y?(0,d.jsx)(n.ShinyText,{text:g.text,speed:y?3.4:2.2,tone:y?"reading":void 0,className:(0,w.cn)("min-w-0 flex-1 text-[12px] leading-4",1===c?"truncate":"line-clamp-2",g.tone.includes("italic")&&"italic")}):(0,d.jsx)("span",{className:(0,w.cn)("min-w-0 flex-1 text-[12px] leading-4",1===c?"truncate":"line-clamp-2",g.tone),children:g.text})]})]})]}),z.length>0&&(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5 pt-0.5 pr-2 pb-2 pl-12.5",children:z.map(b=>(0,d.jsxs)(m.Button,{size:"sm",variant:"secondary",loading:o===b,disabled:i,onClick:async()=>{p(b),await h(a,b,y?.bot,y?.id),p(null)},className:"h-7 gap-1.5 rounded-full px-3 text-[12px]",children:[b===q.THREAD_CONTINUE&&(0,d.jsx)(j.ChevronsRight,{className:"size-3.5"}),b]},b))})]})}a.s(["Empty",0,function({bots:a}){return(0,d.jsx)("p",{className:"px-6 pt-4 pb-5 text-center text-[12px] text-muted-foreground",children:a?.length?"Nothing handed over yet — ask for something that takes a while.":`Thursday hands work to ${q.DEFAULT_BOT.name} until you make bots of your own in Settings › Bots.`})},"HistoryList",0,function({pages:a,threads:b,scroll:c,onPick:i}){let j=(0,l.useCallback)(a=>{a&&(a.scrollTop=c.current)},[c]),k=[];for(let a of b){let b=function(a){let b=(0,v.toDate)(a);return(0,g.isToday)(b)?"today":(0,h.isYesterday)(b)?"yesterday":(0,e.format)(b,(0,f.isThisYear)(b)?"MMM d":"MMM d, yyyy").toLowerCase()}(a.updatedAt),c=k.at(-1);c?.day===b?c.rows.push(a):k.push({day:b,rows:[a]})}return(0,d.jsx)("div",{ref:j,onScroll:a=>{c.current=a.currentTarget.scrollTop},className:"flex max-h-[50vh] min-h-0 flex-1 flex-col gap-0.5 overflow-y-auto px-2 pt-1 pb-2 scrollbar-none",children:a.error?(0,d.jsx)("p",{className:"px-2.5 py-3 text-[12px] text-destructive",children:a.error.message}):a.isLoading?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"flex h-6 items-center px-2.5 pt-1",children:(0,d.jsx)(o.Skeleton,{className:"h-2.5 w-16"})}),(0,d.jsx)(A,{})]}):(0,d.jsxs)(d.Fragment,{children:[k.map((a,b)=>(0,d.jsxs)(l.Fragment,{children:[(0,d.jsxs)("p",{className:(0,w.cn)("px-2.5 pb-1 font-mono text-[10px] text-muted-foreground",0===b?"pt-1":"pt-3"),children:[a.day," · ",a.rows.length]}),a.rows.map(a=>(0,d.jsx)(B,{thread:a,onPick:()=>i(a.id)},a.id))]},a.day)),a.hasMore?(0,d.jsx)("div",{ref:a.sentinelRef,children:(0,d.jsx)(A,{})}):0===k.length&&(0,d.jsx)("p",{className:"px-6 pt-3 pb-4 text-center text-[12px] text-muted-foreground",children:"Nothing has ended yet."})]})})},"ListHeader",0,function({tab:a,current:b,onTab:c,onClose:e}){return(0,d.jsxs)("div",{className:"flex items-center gap-2 pt-3 pr-3.5 pb-1.5 pl-2.5",children:[(0,d.jsx)(p.Tabs,{value:a,onValueChange:a=>c(a),className:"gap-0",children:(0,d.jsxs)(p.TabsList,{className:"gap-1 rounded-none bg-transparent p-0 group-data-horizontal/tabs:h-auto",children:[(0,d.jsxs)(p.TabsTrigger,{value:"now",className:y.TAB,children:["Now",b>0&&(0,d.jsx)("span",{className:"font-mono text-[10px] font-normal text-muted-foreground tabular-nums",children:b})]}),(0,d.jsx)(p.TabsTrigger,{value:"history",className:y.TAB,children:"History"})]})}),(0,d.jsx)("span",{className:"flex-1"}),(0,d.jsx)(y.FoldButton,{onClick:e})]})},"Quiet",0,function(){return(0,d.jsx)("p",{className:"px-6 pt-4 pb-5 text-center text-[12px] text-muted-foreground",children:"Nothing running or waiting."})},"ThreadList",0,function({threads:a,onPick:b}){let c=new Map;for(let b of a){let a=(0,q.standOf)(b),d=c.get(a);d?d.push(b):c.set(a,[b])}return(0,d.jsx)("div",{className:"flex max-h-[50vh] min-h-0 flex-1 flex-col gap-0.5 overflow-y-auto px-2 pt-1 pb-1 scrollbar-none",children:C.map((a,e)=>{let f=c.get(a.id)??[];return f.length?(0,d.jsxs)(l.Fragment,{children:[(0,d.jsxs)("p",{className:(0,w.cn)("px-2.5 pb-1 font-mono text-[10px] text-muted-foreground",0===e?"pt-1":"pt-3"),children:[a.label," · ",f.length]}),f.map(a=>(0,d.jsx)(B,{thread:a,onPick:()=>b(a.id)},a.id))]},a.id):null})})},"ThreadLoading",0,function({onBack:a,onClose:b}){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 px-3 pt-3 pb-1",children:[(0,d.jsx)("button",{type:"button",onClick:a,"aria-label":"Back to the list",className:"shrink-0 rounded-md p-1 text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:(0,d.jsx)(i.ChevronLeft,{className:"size-4"})}),(0,d.jsx)(o.Skeleton,{className:"size-5.5 shrink-0 rounded-md"}),(0,d.jsx)("span",{className:"flex min-w-0 flex-1",children:(0,d.jsx)(o.Skeleton,{className:"h-3.5 w-2/5"})}),(0,d.jsx)(y.FoldButton,{onClick:b})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 px-4 py-4",children:[(0,d.jsx)(o.Skeleton,{className:"h-3 w-4/5"}),(0,d.jsx)(o.Skeleton,{className:"h-3 w-3/5"}),(0,d.jsx)(o.Skeleton,{className:"h-3 w-2/3"})]})]})},"ThreadRow",0,B,"useWaitingRows",0,function(){let a=(0,x.useBotThreads)(),b=(0,x.useRingingThreads)();return(0,l.useMemo)(()=>[...a].reverse().filter(a=>!b.includes(a.id)&&(0,q.needsThreadReply)(a)),[a,b])}]),c()}catch(a){c(a)}},!1),991991,a=>a.a(async(b,c)=>{try{var d=a.i(187924),e=a.i(752562),f=a.i(167594),g=a.i(802550),h=a.i(875160),i=a.i(403512),j=a.i(748819),k=a.i(474215),l=a.i(572131),m=a.i(545097),n=a.i(654816),o=a.i(411509),p=a.i(913834),q=a.i(984202),r=a.i(36304),s=a.i(997206),t=a.i(346075),u=a.i(497895),v=a.i(324835),w=a.i(135432),x=a.i(181809),y=a.i(813535),z=b([x,y]);[x,y]=z.then?(await z)():z;let J={done:e.Check,cancelled:k.X,question:g.CircleQuestionMark,stopped:f.CirclePause,resumed:j.RotateCw},K={question:u.WAITING_INK,stopped:u.WAITING_INK},L=a=>{let b=(0,u.plainText)(a).replace(/\s+/g," ").trim();return b.length>28?`${b.slice(0,27)}…`:b};function A({crew:a,more:b,bubble:c,playing:e,side:f,label:g,onClick:h,onWrite:j,writing:k}){return(0,d.jsxs)("div",{className:"flex shrink-0 items-center gap-2 py-1.5 pr-3 pl-1.5",children:[(0,d.jsxs)(n.Tooltip,{children:[(0,d.jsxs)(n.TooltipTrigger,{render:(0,d.jsx)("button",{type:"button",onClick:j,"aria-label":"Write to Thursday or a bot","aria-pressed":k,className:(0,u.cn)("relative grid size-7 shrink-0 place-items-center overflow-hidden rounded-full outline-none transition-[background-color,box-shadow] duration-300 focus-visible:ring-3 focus-visible:ring-ring/50",k?"shadow-[0_6px_14px_-7px_color-mix(in_oklab,var(--brand)_60%,transparent)]":"bg-muted text-foreground hover:bg-accent")}),children:[(0,d.jsx)(s.WriteOrb,{on:!!k}),(0,d.jsx)(i.Plus,{className:(0,u.cn)("size-3.5 transition-opacity duration-200",k?"opacity-0":"opacity-100")})]}),(0,d.jsxs)(n.TooltipContent,{children:["Write to Thursday or a bot",(0,d.jsx)("kbd",{"data-slot":"kbd",className:"bg-background/20 px-1.5 font-mono text-[10px]",children:"/"})]})]}),(0,d.jsxs)("button",{type:"button",onClick:h,"aria-label":g,className:"flex min-w-0 flex-1 items-center gap-2 rounded-full text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,d.jsx)(C,{crew:a,more:b,bubble:c,playing:e}),f]})]})}function B(a){let b=function({busy:a,pending:b,grown:c}){return b>0?{text:1===b?"waiting on you":`${b} waiting on you`,shine:!0}:a>0?{text:"working",shine:!0,spin:!0}:c?null:{text:"Need a hand?",shine:!1}}(a);return b?(0,d.jsxs)("span",{className:"ml-auto flex h-7 min-w-0 shrink items-center gap-1.5",children:[b.shine?(0,d.jsx)(m.ShinyText,{text:b.text,speed:2.6,className:"block truncate text-[14px] leading-5 tracking-[-0.15px]"}):(0,d.jsx)("span",{className:"block animate-in truncate text-[14px] leading-5 tracking-[-0.15px] text-muted-foreground fade-in duration-300",children:b.text},b.text),b.spin&&(0,d.jsx)(h.Loader2,{className:"size-4 shrink-0 animate-spin text-muted-foreground/70"})]}):null}let M=["alto","brio","cinder","delta"].map((a,b,c)=>({name:a,icon:{color:v.MARK_PALETTE[Math.floor(b*v.MARK_PALETTE.length/c.length)],shape:v.MARK_SHAPES[b%v.MARK_SHAPES.length]},awake:!1,waiting:!1,unread:!1,word:null,standIn:!0}));function C({crew:a,more:b,bubble:c,playing:e}){return(0,d.jsxs)("span",{className:"flex min-w-0 shrink items-center",children:[a.map((b,f)=>{let g=b.standIn?a.every(a=>a.standIn)?"No bots yet":null:b.waiting?"Waiting on you":b.word?b.word:b.unread?"Left you a result":b.awake?"Working":"Idle",h=(0,d.jsx)("span",{className:(0,u.cn)("flex transition-transform duration-500 ease-out",b.awake&&"-translate-y-0.5 scale-110"),children:(0,d.jsx)(D,{face:b,motion:(0,r.motionOf)(e.get(b.name),f)})});return(0,d.jsxs)(l.Fragment,{children:[(0,d.jsxs)("span",{className:(0,u.cn)("relative shrink-0 transition-[margin] duration-500 ease-out",f>0&&!a[f-1].word&&"-ml-2",b.standIn&&"opacity-35"),style:{zIndex:a.length-f},children:[null===g?(0,d.jsx)("span",{children:h}):(0,d.jsx)(q.BotTip,{bot:b.name,icon:b.icon,line:g,children:h}),c?.at===b.name&&(0,d.jsx)(F,{handoff:c})]}),b.word&&(0,d.jsx)("span",{className:"mx-2.5 min-w-0 shrink truncate",children:(0,d.jsx)(m.ShinyText,{text:b.word,speed:2.6,className:"truncate text-[13px] leading-5 tracking-[-0.1px]"})})]},b.name)}),b>0&&(0,d.jsx)("span",{className:"ml-2 flex h-[18px] shrink-0 items-center rounded-full bg-brand/10 px-2 font-mono text-[10.5px] leading-none font-medium text-brand",title:`${b} more`,children:"+"})]})}function D({face:a,motion:b}){let c=b.delayMs?{animationDelay:`${b.delayMs}ms`}:void 0;return(0,d.jsx)("span",{"data-crew-motion":!0,className:(0,u.cn)("flex",b.body),style:c,children:(0,d.jsx)("span",{"data-crew-motion":!0,className:(0,u.cn)("flex origin-bottom",b.shape),style:c,children:(0,d.jsx)("span",{"data-crew-motion":!0,className:(0,u.cn)("flex",b.turn),style:c,children:(0,d.jsx)(E,{face:a})})})},b.key)}function E({face:a}){return(0,d.jsx)(p.BotMark,{size:28,seed:a.name,color:a.icon?.color,shape:a.icon?.shape,outline:a.icon?.outline,paint:a.icon?.paint,notify:a.waiting||a.unread})}function F({handoff:a}){return(0,d.jsxs)("span",{className:"pointer-events-none absolute bottom-[calc(100%+10px)] left-1/2 flex w-max -translate-x-1/2 animate-in flex-col items-center fade-in zoom-in-95 duration-200",children:[(0,d.jsx)("span",{className:"flex rounded-full bg-background py-2 pr-3.5 pl-2.5 shadow-lg shadow-black/10 ring-1 ring-border",children:(0,d.jsx)(G,{handoff:a})}),(0,d.jsx)("span",{className:"-mt-px size-0 border-x-[6px] border-t-[7px] border-x-transparent border-t-border"}),(0,d.jsx)("span",{className:"-mt-[7.5px] size-0 border-x-[6px] border-t-[7px] border-x-transparent border-t-background"})]})}function G({handoff:a}){let b=a.sign?J[a.sign]:null,c=a.sign?K[a.sign]:void 0;return(0,d.jsxs)("span",{className:(0,u.cn)("flex min-w-0 items-center gap-2 text-[13px] leading-[18px] tracking-[-0.1px] whitespace-nowrap",c),children:[(0,d.jsx)(H,{from:a.from,to:a.to}),b&&(0,d.jsx)(b,{className:(0,u.cn)("size-3.5 shrink-0",!c&&"text-muted-foreground/70")}),a.shine?(0,d.jsx)(m.ShinyText,{text:a.text,speed:2.2,className:"min-w-0 truncate"}):(0,d.jsx)("span",{className:"min-w-0 truncate",children:a.text})]})}function H({from:a,to:b}){let c=[a,...b];return(0,d.jsx)("span",{className:"flex shrink-0 items-center",children:c.map((a,b)=>(0,d.jsx)("span",{className:(0,u.cn)("relative flex",b>0&&"-ml-1.25"),style:{zIndex:c.length-b},children:(0,d.jsx)(I,{bot:a})},a.name))})}function I({bot:a}){return a.name===x.THURSDAY.name?(0,d.jsx)(t.ThursdayMark,{size:18,className:"shrink-0"}):(0,d.jsx)(p.BotMark,{size:18,seed:a.name,color:a.icon?.color,shape:a.icon?.shape,outline:a.icon?.outline,paint:a.icon?.paint,notify:!1,className:"shrink-0"})}a.s(["Chip",0,function({crew:a,more:b,bubble:c,rows:e,count:f,busy:g,pending:h,playing:i,onPick:j,onOpen:k}){let l=(0,w.useWriteLineUp)(),m=e.length>0&&!l;return(0,d.jsxs)("div",{className:(0,u.cn)("pointer-events-auto w-fit max-w-full bg-background/78 ring-1 ring-border/50 backdrop-blur-md transition-shadow duration-300",m?"w-132 rounded-3xl shadow-lg shadow-black/8":"rounded-full shadow-sm shadow-black/3"),children:[(0,d.jsx)("div",{className:(0,u.cn)("grid overflow-hidden contain-inline-size transition-[grid-template-rows] duration-300 ease-out",m?"grid-rows-[1fr]":"grid-rows-[0fr]"),children:(0,d.jsxs)("div",{className:"min-h-0 overflow-hidden",inert:!m,children:[(0,d.jsxs)("p",{className:"px-3 py-2 font-mono text-[10px] tracking-wide text-muted-foreground",children:[h," ",1===h?"needs":"need"," a reply"]}),(0,d.jsx)("div",{className:"max-h-[34vh] overflow-y-auto px-1.5 pb-2",children:(0,d.jsx)("div",{children:e.map((a,b)=>(0,d.jsx)("div",{style:{animationDelay:`${120+60*b}ms`},className:"animate-in duration-300 fill-mode-backwards fade-in slide-in-from-bottom-1",children:(0,d.jsx)(y.ThreadRow,{thread:a,onPick:()=>j(a.id)})},a.id))},String(m))}),(0,d.jsx)("span",{className:"block h-1.5"})]})}),(0,d.jsx)(A,{crew:a,more:b,bubble:m?null:c,label:f?`Threads (${f})`:"Bots",onClick:k,playing:i,side:(0,d.jsx)(B,{busy:g,pending:h,grown:m}),onWrite:w.writeLine.open,writing:l})]})},"CrewRow",0,A,"Moment",0,function({handoff:a}){return(0,d.jsx)("span",{className:"ml-auto flex h-7 min-w-0 shrink animate-in items-center pl-4 fade-in duration-200",children:(0,d.jsx)(G,{handoff:a})})},"RoomState",0,B,"crewOf",0,function(a,b){let c=new Set(b.filter(o.isUnread).map(a=>a.bot.name)),d=function(a){let b=new Map;for(let d of a){let a=new Set(d.room.questions.map(a=>a.bot));for(let e of("waiting"!==d.status||a.size||a.add(d.bot.name),d.room.participants)){var c;if(a.has(e.bot)){b.set(e.bot,{waiting:!0,word:null});continue}if(b.get(e.bot)?.waiting||"running"!==e.state&&"queued"!==e.state)continue;let f="running"===e.state?d.lines.findLast(a=>a.bot.name===e.bot&&"user"!==a.kind&&"note"!==a.kind&&"stop"!==a.kind):null;b.set(e.bot,{waiting:!1,word:(c=f??null,c?.kind==="tool"||c?.kind==="say"?L((0,x.stepOf)(c)):null)})}}return b}(b),e=new Map;for(let b of a??[])e.set(b.name,{name:b.name,icon:b.icon,awake:d.has(b.name),waiting:d.get(b.name)?.waiting??!1,unread:c.has(b.name),word:d.get(b.name)?.word??null});for(let[a,b]of d)e.has(a)||e.set(a,{name:a,icon:null,awake:!0,waiting:b.waiting,unread:c.has(a),word:b.word});let f=[...e.values()];if(!f.length)return{crew:M.slice(0,3),more:0};for(let a of M){if(f.length>=3)break;e.has(a.name)||f.push(a)}let g=a=>a.waiting?0:a.awake?1:a.unread?2:a.standIn?4:3,h=f.map((a,b)=>({face:a,at:b})).sort((a,b)=>g(a.face)-g(b.face)||a.at-b.at).map(a=>a.face);return{crew:h.slice(0,14),more:Math.max(0,h.length-14)}},"happenedIn",0,function(a,b,c,d,e){let f=a.bot,g=[];if(!b)return"working"===a.status?{moments:[{rank:1,at:f.name,from:x.THURSDAY,to:[f],text:`took on “${L(a.label)}”`}],gestures:[{bot:f.name,gesture:"took"}]}:{moments:[],gestures:[]};let h=[],i=a.lines.filter(a=>!c.has(a.id)),j=new Map;for(let a of i)"user"===a.kind?(a.steppedIn?g.push({bot:a.bot.name,gesture:"read"}):g.push({bot:a.bot.name,gesture:"took"}),h.push(a.steppedIn?{rank:1,at:a.bot.name,from:a.bot,to:[],text:"Step-in · read"}:{rank:1,at:a.bot.name,from:x.THURSDAY,to:[a.bot],text:L(a.text)})):"stop"===a.kind?(g.push({bot:a.bot.name,gesture:"stop"}),h.push({rank:3,at:a.bot.name,from:a.bot,to:[],sign:"stopped",text:(0,x.leadOf)(a.text)})):"ask"===a.kind&&a.to?.name===x.THURSDAY.name?(a.question&&g.push({bot:a.bot.name,gesture:"ask"}),h.push(a.question?{rank:4,at:a.bot.name,from:a.bot,to:[],sign:"question",text:`asks you \xb7 ${L(a.text)}`}:{rank:2,at:a.bot.name,from:a.bot,to:[x.THURSDAY],text:L(a.text)})):"ask"===a.kind&&a.to&&j.set(a.bot.name,[...j.get(a.bot.name)??[],a]);for(let[a,b]of j){let c=new Map;for(let a of b)a.to&&c.set(a.to.name,a.to);for(let b of(g.push({bot:a,gesture:"give"}),c.values()))g.push({bot:b.name,gesture:"take"});h.push({rank:2,at:a,from:b[0].bot,to:[...c.values()],text:1===b.length?L(b[0].text):`sent ${b.length} parts out`})}for(let b of a.roster){let c=`${a.id}
|
|
2
|
+
${b.name}`;b.name===f.name||"running"!==d.get(c)||"done"!==e.get(c)||i.some(a=>a.bot.name===b.name&&("ask"===a.kind||"say"===a.kind))||(g.push({bot:b.name,gesture:"done"}),h.push({rank:1,at:b.name,from:b,to:[],sign:"done",text:"finished its part"}))}if(b===a.status)return{moments:h,gestures:g};let k=L(a.label);return"cancelled"===a.status?(g.push({bot:f.name,gesture:"stop"}),h.push({rank:3,at:f.name,from:f,to:[],sign:"cancelled",text:`stopped \xb7 ${k}`})):"done"===a.status?g.push({bot:f.name,gesture:"done"}):"working"===a.status?i.some(a=>"user"===a.kind)||(g.push({bot:f.name,gesture:"took"}),h.push({rank:1,at:f.name,from:f,to:[],sign:"resumed",text:"picked it back up"})):(0,o.isAppStop)(a.ask)&&!h.some(a=>"question"===a.sign||"stopped"===a.sign)&&(g.push({bot:f.name,gesture:"stop"}),h.push({rank:3,at:f.name,from:f,to:[],sign:"stopped",text:"paused"})),{moments:h,gestures:g}},"participantStates",0,function(a){let b=new Map;for(let c of a)for(let a of c.room.participants)b.set(`${c.id}
|
|
3
|
+
${a.bot}`,a.state);return b},"useHandoff",0,function(){let[a,b]=(0,l.useState)(null),c=(0,l.useRef)(null);(0,l.useEffect)(()=>()=>{c.current&&clearTimeout(c.current)},[]);let d=(0,l.useCallback)(a=>{b(a),c.current&&clearTimeout(c.current),c.current=setTimeout(()=>{c.current=null,b(null)},3400)},[]);return[a,d]},"waitingStepIn",0,function(a,b){for(let c of a){if("working"!==c.status)continue;let a=c.room.deliveries.find(a=>!a.delivered&&c.room.participants.some(b=>b.bot===a.bot&&"running"===b.state));if(a)return{at:a.bot,from:b(a.bot),to:[],text:"Step-in · waits for its next step",shine:!0}}return null}]),c()}catch(a){c(a)}},!1),467268,a=>a.a(async(b,c)=>{try{var d=a.i(187924),e=a.i(818783),f=a.i(572131),g=a.i(986368),h=a.i(767561),i=a.i(287702),j=a.i(411509),k=a.i(36304),l=a.i(988422),m=a.i(346075),n=a.i(332033),o=a.i(199169),p=a.i(862966),q=a.i(759497),r=a.i(497895),s=a.i(135432),t=a.i(181809),u=a.i(813535),v=a.i(991991),w=b([l,t,u,v]);[l,t,u,v]=w.then?(await w)():w;let y=(0,f.memo)(function(){let a=(0,s.useBotThreads)(),b=(0,u.useWaitingRows)(),{data:c}=(0,q.useServerRoute)(h.queryKey.bot),[e,m]=(0,f.useState)(!1),[w,y]=(0,f.useState)(null),z=e&&null!==w;(0,f.useEffect)(()=>(s.roomOpen.set(e?z?"thread":"list":null),()=>s.roomOpen.set(null)),[e,z]);let[A,B]=(0,f.useState)({}),[C,D]=(0,f.useState)("now"),E=(0,f.useRef)(0),F=[...a].reverse(),G=F.filter(a=>"finished"!==(0,j.standOf)(a)),H=e&&"history"===C,I=(0,p.useServerPages)({key:(a,b)=>{if(!H)return null;if(0===a)return h.queryKey.threadHistory(null);let c=b?.at(-1);return c?h.queryKey.threadHistory((0,o.toDate)(c.updatedAt).toISOString()):null},size:i.PAGE_SIZE}),{refresh:J}=I,K=(0,f.useRef)(!1);K.current=I.items.length>0,(0,f.useEffect)(()=>{H&&K.current&&J()},[H,J]);let L=(0,f.useMemo)(()=>I.items.filter(a=>"done"===a.status||"cancelled"===a.status).map(a=>(0,s.threadFromRow)(a,c)),[I.items,c]),M=w?F.find(a=>a.id===w)??L.find(a=>a.id===w)??null:null,{data:N,isLoading:O}=(0,q.useServerRoute)(w?h.queryKey.thread(w):null),P=(0,f.useMemo)(()=>N&&N.id===w?(0,s.threadFromRow)(N,c):null,[N,w,c])??(M?.lines.length?M:null),[Q,R]=(0,v.useHandoff)(),S=(0,f.useMemo)(()=>Q??(0,v.waitingStepIn)(a,a=>({name:a,icon:c?.find(b=>b.name===a)?.icon??null})),[Q,a,c]),{crew:T,more:U}=(0,f.useMemo)(()=>(0,v.crewOf)(c,a),[c,a]),[V,W]=(0,k.useCrewGestures)(),X=(0,f.useRef)(!1);(0,f.useEffect)(()=>{!X.current&&c?.length&&(X.current=!0,W(c.map(a=>({bot:a.name,gesture:"wave"}))))},[c,W]);let Y=(0,f.useRef)(null),Z=(0,f.useRef)(new Map),$=(0,f.useRef)(new Set);(0,f.useEffect)(()=>{if(!s.botThreads.primed())return;let b=Y.current;Y.current=new Map(a.map(a=>[a.id,a.status]));let c=Z.current;Z.current=(0,v.participantStates)(a);let d=$.current;if($.current=new Set(a.flatMap(a=>a.lines.map(a=>a.id))),!b)return;let e=null,f=[];for(let g of a){let{moments:a,gestures:h}=(0,v.happenedIn)(g,b.get(g.id),d,c,Z.current);for(let b of(f.push(...h),a))(!e||b.rank>=e.rank)&&(e=b)}e&&R(e),W(f)},[a,R,W]),(0,s.useSeenOnDetail)(e?P:null),(0,g.useAppEvent)({showThread:a=>{y(a.threadId),m(!0)}}),(0,f.useEffect)(()=>s.roomOpens.subscribe(a=>{y(a),D("now"),m(!0)}),[]);let _=a.filter(a=>"working"===a.status).length,aa=F.filter(j.needsThreadReply).length,ab=(0,f.useMemo)(()=>T.map(a=>({...a,word:null})),[T]),ac=()=>{m(!1),y(null),D("now"),E.current=0},ad=(0,s.useCallWaits)();(0,n.useEscape)(e,()=>z?y(null):ac());let ae=(0,f.useRef)(ac);ae.current=ac,(0,f.useEffect)(()=>s.writeLine.subscribe(()=>ae.current()),[]);let af=(0,f.useRef)(null);return(0,f.useEffect)(()=>{if(!z)return;let a=a=>{if("/"!==a.key||a.metaKey||a.ctrlKey||a.altKey||!(0,n.windowKey)(a))return;let b=af.current?.querySelector("textarea:not(:disabled)");b&&(a.preventDefault(),b.focus())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[z]),(0,d.jsx)("div",{className:(0,r.cn)("pointer-events-none flex min-h-0 items-end justify-end",e?"col-span-3 row-start-1 self-stretch":"col-span-3 row-start-2"),children:e?(0,d.jsxs)("div",{ref:af,"data-room":!0,className:"pointer-events-auto flex max-h-full w-160 max-w-full animate-in flex-col overflow-hidden rounded-3xl bg-background/75 shadow-2xl shadow-black/6 ring-1 ring-border/50 backdrop-blur-xl fade-in slide-in-from-bottom-1 duration-200",children:[ad&&(0,d.jsx)(x,{onBack:ac}),!P&&w&&O?(0,d.jsx)(u.ThreadLoading,{onBack:()=>y(null),onClose:ac}):P?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(t.ThreadHeader,{thread:P,onBack:()=>y(null),onClose:ac}),(0,d.jsx)(t.Conversation,{thread:P,tab:A[P.id]??null,onTab:a=>B(b=>({...b,[P.id]:a})),className:"min-h-0 flex-1"}),(0,d.jsx)(l.ThreadReply,{thread:{id:P.id,label:P.label,bot:P.bot.name,ask:P.ask,room:P.room},status:"working"===P.status?"running":P.status,faces:P.roster,to:A[P.id]??P.bot.name,className:"mx-3 mb-2 shrink-0"})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(u.ListHeader,{tab:C,current:G.length,onTab:D,onClose:ac}),"history"===C?(0,d.jsx)(u.HistoryList,{pages:I,threads:L,scroll:E,onPick:y}):G.length?(0,d.jsx)(u.ThreadList,{threads:G,onPick:y}):F.length?(0,d.jsx)(u.Quiet,{}):(0,d.jsx)(u.Empty,{bots:c}),(0,d.jsx)(v.CrewRow,{crew:ab,more:U,bubble:null,playing:V,label:"Fold the room away",onClick:ac,onWrite:s.writeLine.open,side:S?(0,d.jsx)(v.Moment,{handoff:S}):(0,d.jsx)(v.RoomState,{busy:_,pending:aa,grown:!0})})]})]}):(0,d.jsx)(v.Chip,{crew:T,more:U,bubble:S,playing:V,rows:b,count:a.length,busy:_,pending:aa,onPick:a=>{y(a),m(!0)},onOpen:()=>m(!0)})})});function x({onBack:a}){return(0,d.jsxs)("button",{type:"button",onClick:a,className:"group/waits flex shrink-0 items-center gap-2.5 bg-brand/8 py-2.5 pr-3 pl-4 text-left outline-none transition-colors hover:bg-brand/12 focus-visible:ring-3 focus-visible:ring-ring/50 dark:bg-brand/14 dark:hover:bg-brand/20",children:[(0,d.jsx)(m.ThursdayMark,{size:22,className:"shrink-0"}),(0,d.jsxs)("span",{className:"min-w-0 flex-1 text-[13px] leading-5",children:[(0,d.jsx)("span",{className:"font-medium",children:"Thursday is still on the line"}),(0,d.jsxs)("span",{className:"text-muted-foreground",children:[" ","— in writing. She is here when this closes."]})]}),(0,d.jsxs)("span",{className:"flex h-7 shrink-0 items-center gap-1 rounded-full px-2.5 font-medium text-[12.5px] text-brand ring-1 ring-brand/40 transition-colors group-hover/waits:bg-brand/10",children:["Back to her",(0,d.jsx)(e.ArrowRight,{className:"size-3.5"})]})]})}a.s(["BotRoom",0,y]),c()}catch(a){c(a)}},!1),650303,a=>{"use strict";var b=a.i(405050);let c=(0,b.createServerReference)("7fd743bd9196963fc11764662e753a8b93a196309c",b.callServer,void 0,b.findSourceMapURL,"startThreadAction");a.s(["startThreadAction",0,c])},468805,a=>{"use strict";var b=a.i(405050);let c=(0,b.createServerReference)("7f38f4b1c8b170774d6010a8ace594aa01e2eaf54a",b.callServer,void 0,b.findSourceMapURL,"acceptThreadRelaysAction");a.s(["acceptThreadRelaysAction",0,c])},143367,a=>{"use strict";var b=a.i(767561),c=a.i(864037),d=a.i(576271),e=a.i(759497),f=a.i(497895),g=a.i(574299),h=a.i(398026);a.s(["installSeedBots",0,function(a){let i=a??h.BOT_SEEDS.map(a=>({name:a.name}));i.length&&(0,g.createSeedBotsAction)(i).then(d.unwrapResult).then(()=>(0,e.revalidate)(b.queryKey.bot)).catch(a=>c.toast.add({type:"warning",title:"Could not set up the bots",description:(0,f.errorToString)(a)}))}])},892633,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(647509),e=a.i(590513),f=a.i(510072),g=a.i(661779),h=a.i(539341),i=a.i(730357);let j=[{radii:5,px:64,density:1.05},{radii:3.2,px:40,density:1.1},{radii:2.1,px:26,density:1.2},{radii:1.45,px:16,density:1.3}],k=[.2,1.6,2.5,3.1,3.55],l=[2,3,1],m=[[],["🤍"],["🤍","☁️"],["☁️","🤍"],["☁️","🕊️"],["🕊️","☁️"],["🕊️","🦢"],["🦢","🕊️","☁️"],["🦢","🤍"],["🤍","⚪","🦢"],["🤍","⚪"],["⚪","🤍"]],n=[[],["🤍","⚪"],["🤍","⚪","🦢"],["🦢","🤍","🕊️"],["🦢","🕊️","☁️"],["🕊️","🦢","☁️"],["🕊️","☁️"],["☁️","🕊️"],["☁️","🖤"],["⚫","🖤","☁️"],["🖤","⚫"],["🖤","⚫"]],o=j[0].px;a.s(["Echoes",0,function({anchor:a,charset:p,onArrive:q,onHello:r,onDone:s}){let t=(0,c.useRef)(null),u=(0,i.useIsDark)(),v=(0,c.useRef)({charset:p,dark:u,onArrive:q,onHello:r,onDone:s});return v.current={charset:p,dark:u,onArrive:q,onHello:r,onDone:s},(0,c.useEffect)(()=>{let b=t.current,c=a.current,i={arrive:!1,hello:!1,done:!1},p=a=>{i[a]||(i[a]=!0,"arrive"===a?v.current.onArrive():"hello"===a?v.current.onHello():v.current.onDone())};if(!b||!c||window.matchMedia("(prefers-reduced-motion: reduce)").matches){p("arrive"),p("hello"),p("done");return}let q=b.getContext("2d");if(!q){p("arrive"),p("hello"),p("done");return}let r=k.map((a,b)=>a+(b>0?(Math.random()-.5)*.12:0)),s=50*Math.random(),u=Math.min(2,window.devicePixelRatio||1),w=function(a,b){let c=Math.round(o*b),d=Math.ceil(1.3*c),f=document.createElement("canvas");f.width=12*d,f.height=d*Math.ceil(a.length/12);let g=f.getContext("2d");if(!g)return null;g.textAlign="center",g.textBaseline="middle",g.font=(0,e.GLYPH_FONT)(c);let h=new Map;return a.forEach((a,b)=>{h.set(a,b),g.fillText(a,b%12*d+d/2,Math.floor(b/12)*d+d/2)}),{canvas:f,at:h,slot:d,scale:d/b/o}}([...new Set([...d.EMOJI_POOL,...m.flat(),...n.flat(),...l.flatMap(a=>h.WASH_SETS[a-1].emoji)])],u),x=d.RAMP.length-1,y=[],z=null,A=()=>{let a=window.innerWidth,f=window.innerHeight;b.width=Math.round(a*u),b.height=Math.round(f*u),q.setTransform(u,0,0,u,0,0),q.textAlign="center",q.textBaseline="middle",z=null;let g=c.getBoundingClientRect(),h=Number.parseFloat(getComputedStyle(c).getPropertyValue("--face-bleed"))/100||0,i=g.width*(1+2*h),k=g.left+g.width/2,m=g.top+g.height/2,n=e.DESIGN/i;y=j.map((b,c)=>{let g=.95*b.px/b.density,h=1.25*b.px/b.density,i=.12*c,j=Math.cos(i),o=Math.sin(i),p=70+26*c,q=[];for(let i=0;i*h<f;i++)for(let f=0;f*g<a;f++){let a=f*g+g/2,r=i*h+h/2,t=(a-k)*n,u=(r-m)*n,v=(t*j-u*o)/e.REST_R/b.radii,w=(t*o+u*j)/e.REST_R/b.radii,x=Math.hypot(v,w);if(x>2.6)continue;let y=Math.floor((Math.atan2(w,v)+Math.PI)/(2*Math.PI)*p),z=(0,d.hash)(y+13*c,3.1+s),A=(0,d.hash)(1.3*y,11.1+s);q.push({x:a,y:r,r:x,dx:v*e.REST_R,dy:w*e.REST_R,drift:.02+.14*z*z,go:.15+.9*(0,d.hash)(y,7.7+c),carry:A<.13?l[Math.floor(23*A)%l.length]:0,nx:t*(8/b.px)*.05,ny:u*(8/b.px)*.05,seed:(0,d.hash)(f+101*c,i),grain:(0,d.hash)(5.7*f+19+c,2.3*i+53),gap:.05+.3*(0,d.hash)(7.3*f+11,3.1*i+5+c),roll:(0,d.hash)(2.7*f+31,5.9*i+17+c)})}let r=q.length;return{px:b.px,cells:q,fast:new Float32Array(r),slow:new Float32Array(r),wasLevel:new Int8Array(r).fill(-9),turn:new Int32Array(r).fill(-9),pick:new Int32Array(r),pool:new Int8Array(r),poolFor:new Float32Array(r),ascii:Array.from({length:x+1},()=>new Int32Array(r)),emoji:Array.from({length:x+1},()=>new Int32Array(r)),asciiN:new Int32Array(x+1),emojiN:new Int32Array(x+1),glyph:Array(r),over:!1}})};A(),window.addEventListener("resize",A);let B=(0,g.createSmoke)(),C=90*Math.random(),D={dx:0,dy:0,dist:0},E=performance.now(),F=E,G=0,H=0,I=a=>{let c=(a-E)/1e3,i=Math.min(.05,Math.max(0,(a-F)/1e3));F=a,G+=i;let{charset:j,dark:k}=v.current,l="emojiOnly"===j,o=l?e.CHURN_EMOJI:e.CHURN_ASCII,s=k?m:n;z!==k&&(z=k,q.fillStyle=getComputedStyle(b).color),(0,g.stepSmoke)(B,G,i,0,0,-1);let t=(0,f.windAt)(G,C),A=Math.exp(-i/e.TRAIL_FAST),J=Math.exp(-i/1.4);q.clearRect(0,0,b.width/u,b.height/u);let K=0;if(y.forEach((a,b)=>{let f=r[b],k=r[b+1];if(a.over||c<f)return;let m=c-k,n=m<=0?(0,d.smoothstep)(0,1,(c-f)/(0===b?1.2:.35)):1,p=m>0?(0,d.smoothstep)(0,.3,m):0,u=m>.05,v=G+31*b;a.asciiN.fill(0),a.emojiN.fill(0);let y=0,z=a.cells;for(let b=0;b<z.length;b++){let c=z[b],f=0,k=0;if(m<=0)n>0&&c.r<2.6&&(D.dx=c.dx,D.dy=c.dy,D.dist=c.r*e.REST_R,f=(0,g.restValue)(D,v,0,e.REST_R,n,B,t));else{let a=c.r-c.drift*m**.8,b=(1+(1.5*((0,d.smoothstep)(.6,.88,Math.abs(a))*(1-(0,d.smoothstep)(1.2,1.55,Math.abs(a))))-1)*p)*(1-(0,d.smoothstep)(c.go,c.go+.4,m));if(b>0){let d=c.r>0?a/c.r:0;D.dx=c.dx*d,D.dy=c.dy*d,D.dist=Math.abs(a)*e.REST_R,(f=(0,g.restValue)(D,v,0,e.REST_R,1,B,t)*b)>.04&&p>.5&&(k=c.carry)}}(f*=(.66+.72*c.grain)*(.8+.4*(0,d.hash)(Math.floor(c.nx+.5*G),Math.floor(c.ny-.3*G))))>.3&&(0,d.hash)(31.7*Math.floor(1.6*G),613*c.seed)>.992&&(f=Math.max(f,.9)),k?(a.pool[b]=k,a.poolFor[b]=.35*(.5+c.grain)):a.poolFor[b]>0?(a.poolFor[b]-=i,a.poolFor[b]<=0&&(a.pool[b]=0)):a.pool[b]=0;let q=a.fast[b]=f>a.fast[b]*A?f:a.fast[b]*A,r=a.slow[b]=f>a.slow[b]*J?f:a.slow[b]*J;if((f=q>.55*r?q:.55*r)<c.gap+.05*Math.sin(.28*G+6.283*c.seed))continue;let C=(f>1?1:f)*x|0;if(0===C)continue;y++;let E=G*o+7*c.seed|0;(E!==a.turn[b]||C-a.wasLevel[b]>=2||a.wasLevel[b]-C>=2)&&(a.turn[b]=E,a.wasLevel[b]=C,a.pick[b]=(997*c.seed|0)+E+C);let F=a.pick[b],H=a.pool[b]?h.WASH_SETS[a.pool[b]-1]:null;if((l||"emoji"===j&&(null!==H||c.roll<d.EMOJI_RATIO&&C>=d.EMOJI_MIN_LEVEL))&&w){let c=H?H.emoji:u?s[C]:d.EMOJI_POOL;a.glyph[b]=c[F%c.length],a.emoji[C][a.emojiN[C]++]=b}else{let c=H?H.ascii:d.RAMP[C];a.glyph[b]=c[F%c.length],a.ascii[C][a.asciiN[C]++]=b}}K+=y,m>1.45&&0===y&&(a.over=!0),q.font=(0,e.GLYPH_FONT)(a.px);for(let b=1;b<=x;b++){let c=a.asciiN[b];if(0===c)continue;q.globalAlpha=d.ALPHA_TOP*(b/x);let e=a.ascii[b];for(let b=0;b<c;b++){let c=z[e[b]];q.fillText(a.glyph[e[b]],c.x,c.y)}}if(w)for(let b=1;b<=x;b++){let c=a.emojiN[b];if(0===c)continue;q.globalAlpha=(0,d.emojiAlpha)(b,x,l);let e=a.px*w.scale*(l?.5+.5*(0,d.emojiWeight)(b,x):1),f=a.emoji[b];for(let b=0;b<c;b++){let c=z[f[b]],d=w.at.get(a.glyph[f[b]])??0;q.drawImage(w.canvas,d%12*w.slot,Math.floor(d/12)*w.slot,w.slot,w.slot,c.x-e/2,c.y-e/2,e,e)}}}),q.globalAlpha=1,c>=r[4]&&p("arrive"),c>=4.7&&p("hello"),c>r[4]+1.6&&0===K){q.clearRect(0,0,b.width/u,b.height/u),p("done");return}H=requestAnimationFrame(I)};return H=requestAnimationFrame(I),()=>{cancelAnimationFrame(H),window.removeEventListener("resize",A)}},[a]),(0,b.jsx)("canvas",{ref:t,"aria-hidden":!0,className:"pointer-events-none absolute inset-0 size-full text-foreground"})}])},102928,a=>a.a(async(b,c)=>{try{var d=a.i(187924),e=a.i(752562),f=a.i(707963),g=a.i(141146),h=a.i(540990),i=a.i(402276),j=a.i(564322),k=a.i(50944),l=a.i(572131),m=a.i(767561),n=a.i(340695),o=a.i(545097),p=a.i(280281),q=a.i(654816),r=a.i(287702),s=a.i(608902),t=a.i(61876),u=a.i(905441),v=a.i(398026),w=a.i(913834),x=a.i(143367),y=a.i(405593),z=a.i(249049),A=a.i(204449),B=a.i(251939),C=a.i(478978),D=a.i(892633),E=a.i(674169),F=a.i(444324),G=a.i(445432),H=a.i(587479),I=a.i(137079),J=a.i(152659),K=a.i(650485),L=a.i(359006),M=a.i(926919),N=a.i(645323),O=a.i(548328),P=a.i(483253),Q=a.i(313237),R=a.i(759497),S=a.i(497895),T=b([H,I,N]);[H,I,N]=T.then?(await T)():T;let ab=["key","mic","bots","models","style","call"];function U({children:a}){return(0,d.jsxs)("p",{className:"text-[17px] leading-[1.675] tracking-[0.3px]",children:[(0,d.jsx)("span",{className:"mr-4 inline-block size-2.5 rounded-full bg-foreground align-middle opacity-55"}),a]})}let ac=({children:a})=>(0,d.jsx)("p",{className:"font-mono text-[11px] leading-relaxed text-pretty text-muted-foreground/70",children:a});function V({children:a,tail:b}){return(0,d.jsxs)("p",{className:"flex items-center gap-2.5 text-sm",children:[(0,d.jsx)("span",{className:"grid size-5 shrink-0 animate-in place-items-center rounded-full bg-primary text-primary-foreground duration-300 zoom-in-50",children:(0,d.jsx)(e.Check,{className:"size-3"})}),(0,d.jsx)("span",{className:"animate-in delay-150 duration-300 fill-mode-backwards fade-in slide-in-from-left-1",children:a}),b&&(0,d.jsx)("span",{className:"truncate font-mono text-[11px] text-muted-foreground/70",children:b})]})}function W({keyed:a,onSaved:b}){return a?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(V,{children:"OpenAI key saved"}),(0,d.jsx)(ac,{children:"Change it any time in Settings › API keys."})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(U,{children:"Paste your OpenAI API key"}),(0,d.jsx)(z.VoiceKeys,{dense:!0,plain:!0,autoFocus:!0,onSaved:b}),(0,d.jsx)(z.GetKeyLink,{}),(0,d.jsx)("ol",{className:"flex flex-col gap-1.75 text-[13px] text-muted-foreground",children:["Sign in, or make an account","Create new secret key, and copy it","Paste it here"].map((a,b)=>(0,d.jsxs)("li",{className:"flex items-center gap-2.5",children:[(0,d.jsx)("span",{className:"grid size-4.5 shrink-0 place-items-center rounded font-mono text-[10px] text-foreground bg-secondary",children:b+1}),a]},a))}),(0,d.jsx)(ac,{children:"OpenAI bills it by the minute of call, separately from ChatGPT."})]})}function X({mic:a}){let b=(0,L.useThursdayStore)(a=>a.wake),c=(0,L.useThursdayStore)(a=>a.patch),[f,g]=(0,l.useState)(!1),[i,j]=(0,l.useState)(null);return((0,O.useWakeWord)({enabled:a.on&&b.enabled&&!i,phrases:[b.phrase],onWake:()=>g(!0),onError:j}),a.on)?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(V,{children:"Microphone is on"}),(0,d.jsxs)("label",{className:"mt-1.5 flex cursor-pointer items-start gap-3",children:[(0,d.jsxs)("span",{className:"flex flex-1 flex-col gap-0.75",children:[(0,d.jsx)("span",{className:"text-sm",children:"Wake her by voice"}),(0,d.jsxs)(ac,{children:["Say ",(0,d.jsxs)("span",{className:"text-foreground",children:['"',b.phrase,'"']})," and she picks up. The microphone stays open for as long as this tab is."]}),b.enabled&&!i&&(f?(0,d.jsxs)("span",{className:"mt-1.5 flex items-center gap-2 text-[13px]",children:[(0,d.jsx)("span",{className:"grid size-5 shrink-0 animate-in place-items-center rounded-full bg-foreground text-background duration-300 zoom-in-50",children:(0,d.jsx)(e.Check,{className:"size-3"})}),"Heard you. That is how you call her."]}):(0,d.jsxs)("span",{className:"mt-1.5 flex items-center gap-2 text-[13px]",children:[(0,d.jsx)(h.Mic,{className:"size-4 shrink-0"}),(0,d.jsx)(o.ShinyText,{text:`Try it now: say "${b.phrase}"`,speed:2.2})]})),i&&(0,d.jsx)(ac,{children:i})]}),(0,d.jsx)(p.Switch,{checked:b.enabled,onCheckedChange:a=>c({wake:{...b,enabled:a}})})]})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(U,{children:"Turn on the microphone"}),(0,d.jsxs)(n.Button,{onClick:()=>void a.turnOn(),className:"h-11 self-start rounded-full px-5 pl-4 text-sm",children:[(0,d.jsx)(h.Mic,{className:""}),"Turn it on"]}),a.failed?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("p",{className:(0,S.cn)("text-[13px] leading-normal",S.WAITING_INK),children:a.failed.what}),(0,d.jsx)(ac,{children:a.failed.next})]}):(0,d.jsx)(ac,{children:"Used on a call, and nowhere else unless you switch on waking her by voice."})]})}function Y({picked:a,face:b,onToggle:c}){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(U,{children:"Pick who comes along"}),(0,d.jsx)("div",{className:"flex flex-col",children:v.BOT_SEEDS.map(e=>{let f=!!a[e.name];return(0,d.jsxs)("label",{className:"flex h-9.5 cursor-pointer items-center gap-2.75",children:[(0,d.jsx)(w.BotMark,{size:24,seed:e.name,...b(e),notify:!1,className:(0,S.cn)("shrink-0 transition-opacity",!f&&"opacity-40")}),(0,d.jsx)("span",{className:(0,S.cn)("w-17.5 shrink-0 text-[13.5px] font-medium",!f&&"text-muted-foreground"),children:e.name}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate text-xs text-muted-foreground",children:e.hint}),(0,d.jsx)(p.Switch,{checked:f,onCheckedChange:()=>c(e.name)})]},e.name)})}),(0,d.jsx)(ac,{children:"Every one comes along. Switch off any you will not use: Settings › Bots has them all, and you can make your own."})]})}function Z(){let{settings:a,patch:b}=(0,M.useLiveSettings)(),c=Math.max(0,u.PERSONAS.findIndex(b=>b.id===a?.persona)),e=u.PERSONAS[c],f=a=>b({persona:u.PERSONAS[(c+a+u.PERSONAS.length)%u.PERSONAS.length].id});return(0,d.jsxs)("div",{className:"flex w-full max-w-md flex-col gap-4",children:[(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)("div",{className:"text-2xl font-semibold",children:e.label}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:e.about})]}),(0,d.jsx)("p",{className:"min-h-20 text-left text-sm leading-relaxed text-foreground/80",children:e.lines}),(0,d.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,d.jsx)(n.Button,{variant:"outline",size:"sm",onClick:()=>f(-1),children:"Someone else"}),(0,d.jsx)(n.Button,{variant:"outline",size:"sm",onClick:()=>f(1),children:"Next"})]}),(0,d.jsx)("div",{className:"flex justify-center gap-1.5",children:u.PERSONAS.map((a,b)=>(0,d.jsx)("span",{className:(0,S.cn)("h-0.5 w-5 rounded-full",b===c?"bg-foreground":"bg-border")},a.id))})]})}function $(){let{data:a}=(0,R.useServerRoute)(m.queryKey.config),b=(0,t.parseTextModel)(a?.find(a=>a.key===C.DEFAULT_MODEL_KEY)?.value),c=a?.find(a=>a.key===C.DEFAULT_EFFORT_KEY)?.value,[e,f]=(0,l.useState)(null),[g]=(0,Q.useServerAction)(B.setConfigAction,{onOk:()=>(0,R.revalidate)(m.queryKey.config)}),[h]=(0,Q.useServerAction)(A.removeConfigAction,{onOk:()=>(0,R.revalidate)(m.queryKey.config)});return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(U,{children:"Pick what they think with"}),(0,d.jsx)(y.AccountsSetup,{withoutVoice:!0}),(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)("span",{className:"shrink-0 text-[13px] text-muted-foreground",children:"Bots think with"}),(0,d.jsx)("div",{className:"min-w-0 flex-1",children:(0,d.jsx)(s.ModelPicker,{provider:e??b?.provider??null,model:e?"":b?.model??"",unset:"Automatic",onChange:a=>{if(!a.model.trim())return f(a.provider);f(null),g(C.DEFAULT_MODEL_KEY,`${a.provider}/${a.model.trim()}`)},onUnset:()=>{f(null),b&&(h(C.DEFAULT_MODEL_KEY),c&&h(C.DEFAULT_EFFORT_KEY))}})})]})]})}function _({mic:a,bots:b}){let c=["voice",a?"microphone":null,b>0?`${b} ${1===b?"bot":"bots"}`:null].filter(a=>null!==a);return(0,d.jsx)("span",{className:"flex items-center gap-2 text-xs",children:c.map((a,b)=>(0,d.jsxs)("span",{style:{animationDelay:`${300+260*b}ms`},className:"flex animate-in items-center gap-2 duration-300 fill-mode-backwards fade-in slide-in-from-bottom-1",children:[b>0&&(0,d.jsx)("span",{className:"text-muted-foreground/40",children:"·"}),(0,d.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,d.jsx)(e.Check,{className:"size-3.25"}),a]})]},a))})}let ad={ask:"Find me flights to Osaka in October.",onIt:`On it. ${v.ERRANDS_BOT} is looking. Keep talking, I will say when it is back.`,back:`${v.ERRANDS_BOT} is back. The Tuesday morning flight is the pick. The page is on your screen.`},ae={threadId:"demo",label:"Osaka flights, October",bot:v.ERRANDS_BOT,words:"Three fares compared. The Tuesday morning one is the pick: direct, and the cheapest by a little.",paths:[]};function aa({stage:a,icons:b}){return(0,d.jsxs)(d.Fragment,{children:["landed"===a&&(0,d.jsx)("div",{className:"pointer-events-none absolute bottom-5 left-5 w-90 text-left",children:(0,d.jsx)(N.FinishedCard,{row:ae,bot:{icon:b[v.BOT_SEEDS.findIndex(a=>a.name===ae.bot)]},onOpen:()=>{},onClose:()=>{}})}),(0,d.jsxs)("div",{className:"absolute right-5 bottom-5 flex h-10 items-center gap-2.5 rounded-full bg-background pr-3.5 pl-2.5 ring-1 ring-border",children:[(0,d.jsx)("span",{className:"flex",children:v.BOT_SEEDS.map((c,e)=>(0,d.jsx)(w.BotMark,{size:22,seed:c.name,...b[e],state:"working"===a&&c.name===v.ERRANDS_BOT?"thinking":"idle",notify:!1,className:(0,S.cn)("shrink-0",e>0&&"-ml-1.5")},c.name))}),(0,d.jsx)("span",{className:"w-40 truncate text-left text-[13px] text-muted-foreground",children:"working"===a?`${v.ERRANDS_BOT} \xb7 reading fares`:"landed"===a?`${v.ERRANDS_BOT} finished`:"Need a hand?"})]})]})}a.s(["Intro",0,function({ready:a,firstRun:b,forced:c,icons:e}){let h=b||c,m=(0,k.useRouter)(),[o,p]=(0,l.useState)("hello"),[s,t]=(0,l.useState)(!1),[u,w]=(0,l.useState)(!1),[y,z]=(0,l.useState)(a),[A,B]=(0,l.useState)(null),[C,L]=(0,l.useState)(()=>Object.fromEntries(v.BOT_SEEDS.map(a=>[a.name,!0]))),[M,N]=(0,l.useState)("echoes"),O="hello"===M||"over"===M,Q=(0,l.useRef)(null),R=function(a){let[b,c]=(0,l.useState)("off"),[d,e]=(0,l.useState)(!1),[f,g]=(0,l.useState)(""),h=(0,l.useRef)(null),i=(0,l.useRef)(null),j=(0,l.useCallback)(()=>{for(let a of i.current?.getTracks()??[])a.stop();i.current=null},[]);(0,l.useEffect)(()=>{a||(j(),c(a=>"on"===a?"off":a))},[a,j]),(0,l.useEffect)(()=>j,[j]);let k=(0,l.useCallback)(async()=>{try{let a=await navigator.mediaDevices.getUserMedia({audio:!0});i.current=a,h.current??=(0,P.createAudioTap)(),h.current.open(),h.current.hear?.(a),g(a.getAudioTracks()[0]?.label??""),c("on"),e(!0)}catch(a){c(function(a){let b=a instanceof DOMException?a.name:"";if("NotAllowedError"===b)return{what:"This page is not allowed the microphone yet.",next:"The icon at the left of the address bar opens the site's settings: set Microphone to Allow and come back. Or just go on."};if("NotFoundError"===b)return{what:"No microphone was found.",next:"Plug one in or switch it on, then turn it on here again. Or just go on."};if("NotReadableError"===b)return{what:"The microphone would not start.",next:"Another app may be using it: close that app and turn it on here again. Or just go on."};let c=a instanceof Error&&a.message||b||String(a);return{what:"The microphone did not open.",next:`The browser said "${c}". Or just go on.`}}(a))}},[]),m=(0,l.useCallback)(()=>h.current?.readMic()??[],[]);return{on:"on"===b,failed:"object"==typeof b?b:null,allowed:d,label:f,turnOn:k,spectrum:m}}("mic"===o&&!s),T=function(a){let[b,c]=(0,l.useState)(0);(0,l.useEffect)(()=>{if(!a)return;let b=performance.now(),d=setInterval(()=>c((performance.now()-b)%16e3),120);return()=>clearInterval(d)},[a]);let d=(a,b,c)=>({id:a,role:b,text:c}),e=[];b>900&&e.push(d("ask","user",ad.ask)),b>4700&&e.push(d("onIt","assistant",ad.onIt)),b>11500&&e.push(d("back","assistant",ad.back));let f=b>4700&&b<8300||b>11500&&b<14500;return{turns:e,status:f?"speaking":b>900&&b<4700?"listening":"idle",stage:b>9600?"landed":b>5400?"working":b>900?"asked":"rest",saying:f,voice:K.silentVoice}}("hello"===o&&h&&!s&&O),U=h&&!s;(0,l.useEffect)(()=>(F.callSignal.hold(U),()=>F.callSignal.hold(!1)),[U]),(0,l.useEffect)(()=>{if(!s)return;let a=setTimeout(()=>w(!0),700);return()=>clearTimeout(a)},[s]);let V=ab.indexOf(o),ac=(0,l.useMemo)(()=>{var a,b,c;let d,e;return a=o,b=y,c=R.on,d=(a,b)=>({id:a,role:"assistant",text:b}),e=[],"hello"===a||(e.push(d("key","I am Thursday. My voice comes from OpenAI, so the first thing I need is a key: paste one and I wake up. No key yet? Go on without it, and I will ask again when you call.")),b&&e.push(d("awake","There, I am awake, and that key is everything a call needs. From here on it is quick: your microphone, who works for you, and what they think with.")),"key"===a||(e.push(d("mic","Now let me hear you. Your browser asks before it opens the microphone: say yes, then say anything at all and watch the line under me move. It is only open on a call, unless you ask for more.")),c&&e.push(d("heard","I hear you: that line is your voice. If you would rather wake me by saying my name than by tapping me, switch it on here and try it once.")),"mic"===a||(e.push(d("bots","Long work goes to bots, so we can keep talking while they are at it. They work on this computer, with a shell, a browser and your files, and signing in or paying always stays with you.")),"bots"===a||(e.push(d("models","Bots think with a model you choose. Start small: a small model is quick and costs little, and any bot can move up later. An OpenAI key already covers it; a GPT subscription or one Vercel key opens far more.")),"models"===a||(e.push(d("style","One more, and it is the fun one: who I am to you. Ten of them, and the only difference is how I talk — pick whoever sounds like someone you would call, and change your mind whenever you like.")),"style"===a||e.push(b?d("call","That is everything I need. Call me, tell me what to call you, and ask for one thing, anything you would ask a person at the next desk. I will show you the rest as we go."):d("asleep","I still have no voice of my own, so there is no call yet, but everything else works. Look around; tap me whenever you have a key and I will take it from there."))))))),e},[o,y,R.on]),ae="hello"===o?T.turns:ac,af=(0,H.useTurnFocus)(ae,!0),ag=(0,E.useIntroVoice)(s?null:ac.at(-1)?.id??null);if(u||!h)return null;let ah=a=>e[v.BOT_SEEDS.indexOf(a)],ai=a=>{ag.hush(),t(!0),y&&(0,x.installSeedBots)(v.BOT_SEEDS.filter(a=>C[a.name]).map(a=>({name:a.name,icon:ah(a)}))),a&&F.callSignal.place(),m.replace("/"),m.refresh()},aj="hello"===o?T.status:ag.speaking?"speaking":"mic"===o&&R.on?"listening":"idle",ak="call"===o;return(0,d.jsxs)("div",{className:(0,S.cn)("fixed inset-0 z-40 bg-background transition-opacity duration-700",s&&"pointer-events-none opacity-0"),children:["over"!==M&&(0,d.jsx)(D.Echoes,{anchor:Q,charset:r.ASCII_FACE.charset,onArrive:()=>N("her"),onHello:()=>N("hello"),onDone:()=>N("over")}),O&&(0,d.jsx)(q.TooltipProvider,{children:(0,d.jsxs)(q.Tooltip,{children:[(0,d.jsx)(q.TooltipTrigger,{render:(0,d.jsx)(n.Button,{size:"icon",variant:"ghost",onClick:ag.toggle,"aria-label":ag.muted?"Let her speak":"Mute her","aria-pressed":ag.muted,className:"absolute top-5 right-5 z-10 text-muted-foreground hover:text-foreground"}),children:ag.muted?(0,d.jsx)(j.VolumeX,{}):(0,d.jsx)(i.Volume2,{})}),(0,d.jsx)(q.TooltipContent,{side:"bottom",children:ag.muted?"Let her speak":"Mute her voice"})]})}),(0,d.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-5 pt-[7vh]",children:[(0,d.jsxs)("div",{ref:Q,className:"relative w-[min(20rem,52vw,37.5vh)] [--face-bleed:19.5%]",children:[(0,d.jsx)("button",{type:"button",disabled:!ak||!y,onClick:()=>ai(!0),"aria-label":ak&&y?"Call Thursday":void 0,className:(0,S.cn)("block w-full rounded-full outline-none transition-all duration-700 ease-out focus-visible:ring-3 focus-visible:ring-ring/50","hello"!==o&&!y&&"opacity-35"),children:"echoes"!==M?(0,d.jsx)(G.Face,{status:aj,failed:!1,word:A,getSpectrum:"hello"===o?T.voice:ag.spectrum,waking:!0,className:"-m-(--face-bleed) w-[calc(100%+2*var(--face-bleed))] max-w-none"}):(0,d.jsx)("div",{className:"aspect-square w-full"})}),(0,d.jsx)(H.SideCaptions,{turns:ae,pinned:af.pinned,live:"hello"===o?T.saying:ag.speaking,onPick:af.pick}),"hello"!==o&&(0,d.jsxs)("div",{className:"absolute top-1/2 left-full ml-[calc(var(--face-bleed)+0.375rem)] flex w-[min(22rem,26vw)] -translate-y-1/2 animate-in flex-col gap-4 text-left fade-in slide-in-from-bottom-1 duration-300",children:["key"===o&&(0,d.jsx)(W,{keyed:y,onSaved:()=>{z(!0),B((0,J.awake)())}}),"mic"===o&&(0,d.jsx)(X,{mic:R}),"bots"===o&&(0,d.jsx)(Y,{picked:C,face:ah,onToggle:a=>L(b=>({...b,[a]:!b[a]}))}),"models"===o&&(0,d.jsx)($,{}),"style"===o&&(0,d.jsx)(Z,{})]},o)]}),(0,d.jsxs)("div",{className:"flex w-full max-w-3xl flex-col items-center gap-4 px-6 text-center",children:[(0,d.jsx)("div",{className:"flex h-14 items-center gap-2 text-[13px] text-muted-foreground",children:"hello"===o?O&&(0,d.jsx)("p",{className:"max-w-130 animate-in text-[20px] leading-[1.5] text-balance text-foreground duration-700 fill-mode-backwards fade-in slide-in-from-bottom-2",children:"Just talk to her. She gets it done on this computer, and tells you when it is ready."}):"mic"===o&&R.on?(0,d.jsx)(I.Ear,{live:!0,getMicSpectrum:R.spectrum}):y?ak?(0,d.jsx)(_,{mic:R.allowed,bots:v.BOT_SEEDS.filter(a=>C[a.name]).length}):null:"Asleep"}),"hello"!==o||O?(0,d.jsxs)(n.Button,{variant:"brand",onClick:()=>{"hello"===o?(ag.say("hello",y?"awake":"key"),p("key")):ak?ai(y):p(ab[V+1])},className:(0,S.cn)("h-12 px-7 pl-8 text-[15px]","hello"===o&&"animate-in delay-300 duration-700 fill-mode-backwards fade-in slide-in-from-bottom-2"),children:["hello"===o?"Start":ak?y?"Call her":"Look around":"Continue",(0,d.jsx)(g.ChevronRight,{})]}):(0,d.jsx)("div",{className:"h-12"}),(0,d.jsx)("p",{className:"h-4 font-mono text-[11px] text-muted-foreground/70",children:"hello"===o?O&&(0,d.jsx)("span",{className:"block animate-in delay-500 duration-700 fill-mode-backwards fade-in",children:"two minutes · every step can wait"}):"key"!==o||y?"mic"!==o||R.on?ak&&y?"or tap her":"":"or allow it when the first call asks":"no key is fine — it can go in from the call screen"})]})]}),"hello"===o?O&&(0,d.jsx)(aa,{stage:T.stage,icons:e}):(0,d.jsxs)("div",{className:"absolute inset-x-0 bottom-6 grid grid-cols-[1fr_auto_1fr] items-center gap-4.5 font-mono text-[11px] text-muted-foreground/70 [@media(max-height:720px)]:bottom-3",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>p(V>0?ab[V-1]:"hello"),className:"flex items-center gap-1 justify-self-end rounded-md outline-none hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,d.jsx)(f.ChevronLeft,{className:"size-3"}),"Back"]}),(0,d.jsxs)("span",{className:"flex items-center gap-4.5",children:[(0,d.jsx)("span",{className:"flex items-center gap-1.75",children:ab.map((a,b)=>(0,d.jsx)("span",{className:(0,S.cn)("h-1.75 rounded-full transition-all duration-300",b===V?"w-5.5 bg-foreground":"w-1.75",b<V&&"bg-foreground/40",b>V&&"bg-border")},a))}),(0,d.jsxs)("span",{children:[V+1," of ",ab.length]})]}),ak&&!y?(0,d.jsx)("span",{}):(0,d.jsx)("button",{type:"button",onClick:()=>ai(!1),className:(0,S.cn)("justify-self-start rounded-md outline-none hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",ak&&"text-muted-foreground"),children:ak?"Look around first":"Skip all"})]})]})}]),c()}catch(a){c(a)}},!1),674169,a=>{"use strict";var b=a.i(572131),c=a.i(483253);let d={hello:"Hi, I'm Thursday. One thing first: this is a recording. You'll hear my real voice on our first call.",key:"My real voice comes from OpenAI, and it needs a key — think of it as a password. Paste one in, and I wake up. Don't have one yet? No problem, skip ahead. I'll ask again later.",awake:"There we go — I'm awake. That key is all a call needs. The rest is quick: your microphone, who does the work for you, and what they think with.",mic:"Now let me hear you. Your browser will ask before it turns the microphone on. Say yes, then say anything — and watch the line under me move. It's only on during a call, unless you ask for more.",heard:"I hear you — that line is your voice. If you'd rather wake me by saying my name instead of tapping, switch that on here and give it a try.",bots:"Big jobs go to my helper bots, so you and I can keep talking while they work. They work right here on your computer, with a browser and your files. Signing in and paying always stay with you.",models:"Every bot runs on an A.I. model that you pick. Start small: a small one is fast and cheap, and you can move any bot up later. Your OpenAI key already covers it. A GPT subscription, or a Vercel key, opens up a lot more.",style:"One more, and it's the fun one: who I am to you. There are ten of me, and the only difference is how I talk. Pick whoever sounds like someone you'd call — you can change your mind anytime.",call:"That's everything. Call me, tell me what to call you, and ask for one thing — anything you'd ask someone sitting next to you. From here on, it's my real voice. I'll show you the rest as we go.",asleep:"I still don't have a voice of my own, so no calls yet — but everything else works. Have a look around. When you have a key, tap me, and I'll take it from there."},e=Array(c.SPECTRUM_BANDS).fill(0),f="thursday.intro.muted";a.s(["useIntroVoice",0,function(a){let g=(0,b.useRef)(null),h=(0,b.useRef)(new Set),i=(0,b.useRef)([]),j=(0,b.useRef)(!1),[k,l]=(0,b.useState)(!1),[m,n]=(0,b.useState)(!1),o=(0,b.useRef)(!1);(0,b.useEffect)(()=>{try{let a="1"===window.localStorage.getItem(f);o.current=a,n(a)}catch{}},[]);let p=(0,b.useCallback)(()=>{i.current=[],g.current?.audio.pause()},[]),q=(0,b.useCallback)(()=>{let a=i.current.shift();if(!a||!g.current)return;let{audio:b,clip:c}=g.current;c.resume(),b.src=`/voices/intro/${a}-${function(a){let b=0x811c9dc5;for(let c of`marin|${a}`)b^=c.codePointAt(0)??0,b=Math.imul(b,0x1000193);return(b>>>0).toString(16).padStart(8,"0")}(d[a])}.ogg`,b.play().catch(()=>{})},[]),r=(0,b.useCallback)((...a)=>{let b=a.filter(a=>!h.current.has(a));if(!o.current&&b.length){if(!g.current){let a=new Audio,b=a=>()=>{j.current=a,l(a)};for(let c of(a.addEventListener("playing",b(!0)),["pause","ended","error"]))a.addEventListener(c,b(!1));a.addEventListener("ended",q),a.addEventListener("error",q),g.current={audio:a,clip:(0,c.createClipTap)(a)}}for(let a of b)h.current.add(a);i.current=b,q()}},[q]);(0,b.useEffect)(()=>{a&&g.current&&r(a)},[a,r]),(0,b.useEffect)(()=>()=>{g.current?.audio.pause(),g.current?.clip.close(),g.current=null},[]);let s=(0,b.useCallback)(()=>{let b=!o.current;o.current=b,n(b);try{window.localStorage.setItem(f,b?"1":"0")}catch{}if(b)return p();a&&(h.current.delete(a),r(a))},[p,a,r]);return{say:r,hush:p,speaking:k,muted:m,toggle:s,spectrum:(0,b.useCallback)(()=>g.current&&j.current?g.current.clip.read():e,[])}}])},484267,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(986368),e=a.i(767561),f=a.i(446181),g=a.i(864037),h=a.i(576271),i=a.i(759497),j=a.i(497895),k=a.i(405050);let l=(0,k.createServerReference)("7fe1575409673a99b04954fb8c34b743a3849bd8e8",k.callServer,void 0,k.findSourceMapURL,"allowReachAction"),m=(0,k.createServerReference)("7fc86e727e9ee8636de3979259a9037cc4b2bd51b2",k.callServer,void 0,k.findSourceMapURL,"declineReachAction");var n=a.i(907602);a.s(["ReachAsk",0,function(){let{data:a}=(0,i.useServerRoute)(e.queryKey.reach);(0,d.useAppEvent)({reach:()=>void(0,i.revalidate)(e.queryKey.reach)});let k=(0,c.useRef)(null),o=a?.channels.find(a=>a.asking)??null,p=o?.asking??null,q=o?.name??null,r=p&&q?`${q}:${p.chat}:${p.code}`:null;return(0,c.useEffect)(()=>{if(k.current?.key===r||(k.current?.close.abort(),k.current=null,!r||!p||!q))return;let a=new AbortController;k.current={key:r,close:a};let c={chat:p.chat,code:p.code};f.notify.confirm({title:`Let ${p.name} reach Thursday from a phone?`,description:(0,b.jsxs)("span",{className:"line-clamp-2",children:[[n.REACH_LABEL[q],p.name,p.handle].filter(Boolean).join(" · "),p.said&&` wrote “${p.said}”`]}),body:(0,b.jsxs)("div",{className:"grid gap-4",children:[(0,b.jsxs)("div",{className:"grid place-items-center gap-1.5 rounded-lg bg-muted p-4",children:[(0,b.jsx)("span",{className:"pl-[0.32em] font-mono text-3xl font-medium tracking-[0.32em]",children:p.code}),(0,b.jsx)("span",{className:"font-mono text-[11px] text-muted-foreground",children:"the code their phone was sent"})]}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"Allow only if the phone in your hand shows this code. Whoever you let in can talk to Thursday from there — and through her, start work on this computer."})]}),okText:"Allow",cancelText:"Not them",cautious:!0,signal:a.signal}).then(b=>{if(!a.signal.aborted)return(b?l(q,c):m(q,c)).then(h.unwrapResult).catch(a=>g.toast.add({type:"error",title:b?`Could not let ${p.name} in`:`Could not turn ${p.name} away`,description:(0,j.errorToString)(a)}))})},[r,p,q]),null}],484267)},471375,a=>{"use strict";var b=a.i(187924),c=a.i(164831);let d={name:"app-window-mac",size:24,node:[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"M6 8h.01",key:"x9i8wu"}],["path",{d:"M10 8h.01",key:"1r9ogq"}],["path",{d:"M14 8h.01",key:"1primd"}]]};d.node;let e=(0,c.default)(d);var f=a.i(823319),g=a.i(572131),h=a.i(340695);let i="thursday.install-asked",j=null,k=new Set;function l(){return(0,g.useSyncExternalStore)(a=>(k.add(a),()=>k.delete(a)),()=>j,()=>null)}async function m(){let a=j;if(a){for(let a of(j=null,k))a();await a.prompt(),await a.userChoice.catch(()=>void 0)}}a.s(["InstallButton",0,function(){return null===l()?null:(0,b.jsx)("button",{type:"button",onClick:()=>void m(),className:"group/install flex w-full items-start gap-2.5 rounded-xl px-3 py-2.5 text-left outline-none transition-colors hover:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50",children:(0,b.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("span",{className:"flex items-center gap-1 text-sm font-medium",children:["Install app",(0,b.jsx)(f.ArrowUpRight,{className:"ml-auto size-3.5 text-muted-foreground transition-transform group-hover/install:translate-x-px group-hover/install:-translate-y-px"})]}),(0,b.jsx)("span",{className:"block text-xs leading-snug text-muted-foreground",children:"Its own window, apart from your tabs"})]})})},"InstallNudge",0,function({hidden:a}){let c=null!==l(),[d,f]=(0,g.useState)(!0);if((0,g.useEffect)(()=>{try{f(null!==window.localStorage.getItem(i))}catch{}},[]),!c||d||a)return null;let j=()=>{f(!0);try{window.localStorage.setItem(i,"1")}catch{}};return(0,b.jsxs)("div",{className:"flex w-76 animate-in items-start gap-3 rounded-2xl bg-background p-3.5 shadow-[0_22px_44px_-20px_rgb(0_0_0/0.22)] ring-1 ring-border duration-300 fade-in slide-in-from-top-1",children:[(0,b.jsx)("span",{className:"grid size-8 shrink-0 place-items-center rounded-lg bg-muted",children:(0,b.jsx)(e,{className:"size-4"})}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 space-y-2.5",children:[(0,b.jsxs)("p",{className:"text-[13px] leading-snug",children:[(0,b.jsx)("span",{className:"block font-medium",children:"Keep her in her own window"}),(0,b.jsx)("span",{className:"block text-muted-foreground",children:"Install Thursday as an app, with its own icon. A closed tab no longer takes her calls with it."})]}),(0,b.jsxs)("div",{className:"flex gap-1.5",children:[(0,b.jsx)(h.Button,{size:"sm",className:"rounded-full px-3.5",onClick:()=>{j(),m()},children:"Install"}),(0,b.jsx)(h.Button,{size:"sm",variant:"ghost",className:"rounded-full px-3 text-muted-foreground",onClick:j,children:"Not now"})]})]})]})}],471375)},594257,a=>{"use strict";var b=a.i(187924),c=a.i(164831);let d={name:"aperture",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m14.31 8 5.74 9.94",key:"1y6ab4"}],["path",{d:"M9.69 8h11.48",key:"1wxppr"}],["path",{d:"m7.38 12 5.74-9.94",key:"1grp0k"}],["path",{d:"M9.69 16 3.95 6.06",key:"libnyf"}],["path",{d:"M14.31 16H2.83",key:"x5fava"}],["path",{d:"m16.62 12-5.74 9.94",key:"1vwawt"}]]};d.node;let e=(0,c.default)(d);var f=a.i(126766),g=a.i(62140),h=a.i(474896);let i={name:"monitor",size:24,node:[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]};i.node;let j=(0,c.default)(i),k={name:"moon",size:24,node:[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]};k.node;let l=(0,c.default)(k),m={name:"smartphone",size:24,node:[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]};m.node;let n=(0,c.default)(m),o={name:"sun",size:24,node:[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]};o.node;let p=(0,c.default)(o);var q=a.i(819721),r=a.i(572131),s=a.i(340695),t=a.i(965733),u=a.i(777794),v=a.i(364434),w=a.i(913834),x=a.i(995032),y=a.i(886297),z=a.i(569587),A=a.i(240608),B=a.i(107340),C=a.i(86922),D=a.i(566778),E=a.i(156819),F=a.i(600154),G=a.i(346075);let H=a.i(844561).FolderOpen;var I=a.i(730357),J=a.i(682823),K=a.i(497895),L=a.i(28996);function M({d:a,className:c}){return(0,b.jsx)("svg",{viewBox:"-2 -2 28 28","aria-hidden":!0,className:c,children:(0,b.jsx)("path",{d:a,fill:"currentColor"})})}let N=[{label:"Ask on Discord",href:"https://discord.gg/Qmysdh9Fy8",mark:"M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z"},{label:"GitHub",href:"https://github.com/cgoinglove/thursday",mark:"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"}];function O(){return(0,b.jsx)("div",{className:"flex flex-col gap-0.5",children:N.map(a=>(0,b.jsxs)("a",{href:a.href,target:"_blank",rel:"noreferrer",className:(0,K.cn)((0,s.buttonVariants)({variant:"ghost"}),"justify-start text-muted-foreground"),children:[(0,b.jsx)(M,{d:a.mark,className:"mr-1"}),(0,b.jsx)("span",{className:"truncate text-sm",children:a.label})]},a.href))})}var P=a.i(471375),Q=a.i(619477);let R=(a,c=Q.SettingSkeleton)=>(0,q.default)(a,{loading:()=>(0,b.jsx)(c,{})}),S=R(()=>a.A(277297).then(a=>({default:a.MemorySetting}))),T=R(()=>a.A(348436).then(a=>({default:a.BotSetting})),Q.SettingPanesSkeleton),U=R(()=>a.A(315458).then(a=>({default:a.ThreadSetting}))),V=R(()=>a.A(553433).then(a=>({default:a.RoutineSetting}))),W=R(()=>a.A(228887).then(a=>({default:a.ModelsSetting}))),X=R(()=>a.A(228887).then(a=>({default:a.KeysSetting}))),Y=R(()=>a.A(228887).then(a=>({default:a.PhoneSetting}))),Z=R(()=>a.A(502073).then(a=>({default:a.ThursdaySetting}))),$=R(()=>a.A(436788).then(a=>({default:a.ArtifactSetting})),Q.SettingPanesSkeleton),_=R(()=>a.A(895186).then(a=>({default:a.WorkspaceSetting})),Q.SettingPanesSkeleton),aa=R(()=>a.A(479648).then(a=>({default:a.SkillsSetting}))),ab=R(()=>a.A(930209).then(a=>({default:a.McpSetting}))),ac=R(()=>a.A(15022).then(a=>({default:a.SignInsSetting})));function ad({tabs:a}){let[c,d]=(0,r.useState)(0),e=a[c].Component;return(0,b.jsxs)("div",{className:"flex h-full min-h-0 flex-col",children:[(0,b.jsx)("div",{className:"shrink-0 px-8 pt-5",children:(0,b.jsx)(Q.SettingColumn,{children:(0,b.jsx)(u.Segmented,{view:!0,"aria-label":"Screens of this section",options:a.map((a,b)=>({value:String(b),label:a.label})),value:String(c),onChange:a=>d(Number(a))})})}),(0,b.jsx)("div",{className:"min-h-0 flex-1",children:(0,b.jsx)(e,{})})]})}let ae=[{label:"Finished",Component:$},{label:"All files",Component:_}],af=["call","work","app"],ag="px-3 pt-3 pb-1 font-mono text-[10px] text-muted-foreground/60",ah=[{id:"thursday",label:"Thursday",group:"call",hint:"Captions, models, and how a call starts",icon:G.ThursdayMark,Component:Z},{id:"memory",label:"Memory",group:"call",hint:"What Thursday remembers about you",icon:C.MemoryMark,Component:S},{id:"bot",label:"Bots",group:"work",hint:"Who Thursday hands work to",icon:w.BotsMark,Component:T,Badge:v.BotBadge},{id:"threads",label:"Threads",group:"work",hint:"Work the bots were handed",icon:g.ListChecks,Component:U,Badge:x.ThreadBadge},{id:"routines",label:"Routines",group:"work",hint:"Work that starts by itself, on a schedule",icon:E.RoutineMark,Component:V},{id:"files",label:"Files",group:"work",hint:"What the bots finished, and everything else they wrote",icon:H,Component:()=>(0,b.jsx)(ad,{tabs:ae})},{id:"skills",label:"Skills",group:"work",hint:"Instructions the bots load on demand",icon:F.SkillsMark,Component:aa},{id:"mcp",label:"Connectors",group:"work",hint:"Apps the bots can use, from MCP servers",icon:B.McpMark,Component:ab,Badge:A.McpBadge},{id:"signins",label:"Sign-ins",group:"work",hint:"The sites you signed in to, and the bots that may use each",icon:h.LogIn,Component:ac},{id:"models",label:"Models",group:"app",hint:"What bots think with, and what they draw, film and speak with",icon:e,Component:W,Badge:z.ModelsBadge},{id:"keys",label:"API keys",group:"app",hint:"The accounts the app runs on",icon:f.KeyRound,Component:X,Badge:y.ConfigBadge},{id:"phone",label:"Phone",group:"app",hint:"Write to Thursday from a chat app",icon:n,Component:Y,Badge:D.ReachBadge}],ai={system:{label:"System",icon:j},light:{label:"Light",icon:p},dark:{label:"Dark",icon:l}};function aj(){let a=(0,I.useTheme)();return(0,b.jsx)(u.Segmented,{"aria-label":"Theme",className:"w-full gap-0.5 *:flex-1 *:py-1.5",options:J.THEMES.map(a=>{let{label:c,icon:d}=ai[a];return{value:a,title:c,label:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d,{className:"size-3.5"}),(0,b.jsx)("span",{className:"sr-only",children:c})]})}}),value:a,onChange:I.setTheme})}a.s(["SECTIONS",0,ah,"Settings",0,function({children:a}){let c=(0,L.useSettingsStore)(a=>a.open),d=(0,L.useSettingsStore)(a=>a.section),e=(0,L.useSettingsStore)(a=>a.show),f=(0,L.useSettingsStore)(a=>a.hide),g=(0,L.useSettingsStore)(a=>a.pick),h=(0,r.useRef)(null),i=ah.find(a=>a.id===d)??ah[0];return(0,r.useEffect)(()=>{if(!c)return;let a=a=>{if(!a.metaKey&&!a.ctrlKey)return;if("k"===a.key){let b=h.current?.querySelector("[data-setting-filter]");if(!b)return;a.preventDefault(),b.focus(),b.select();return}let b=Number(a.key);Number.isInteger(b)&&b>=1&&b<=ah.length&&(a.preventDefault(),g(ah[b-1].id))};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[c,g]),(0,b.jsxs)(t.Dialog,{open:c,onOpenChange:a=>a?e():f(),children:[a&&(0,b.jsx)(t.DialogTrigger,{render:a}),(0,b.jsxs)(t.DialogContent,{className:"block h-[min(52rem,calc(100vh-3rem))] overflow-hidden p-0 sm:max-w-[min(80rem,calc(100vw-3rem))]",children:[(0,b.jsx)(t.DialogTitle,{className:"sr-only",children:"Settings"}),(0,b.jsxs)("div",{className:"flex h-full min-h-0",children:[(0,b.jsxs)("nav",{"aria-label":"Settings sections",onKeyDown:a=>{let b,c="ArrowDown"===a.key?1:"ArrowUp"===a.key?-1:0;if(!c)return;a.preventDefault();let e=(b=(ah.findIndex(a=>a.id===d)+c+ah.length)%ah.length,ah[b].id);g(e),a.currentTarget.querySelector(`[data-section="${e}"]`)?.focus()},className:"flex w-52 shrink-0 flex-col gap-0.5 overflow-y-auto border-r border-border/60 bg-muted/30 p-3",children:[af.map(a=>(0,b.jsxs)(r.Fragment,{children:[(0,b.jsx)("span",{className:ag,children:a}),ah.filter(b=>b.group===a).map(a=>(0,b.jsxs)(s.Button,{"data-section":a.id,onClick:()=>g(a.id),variant:a.id===d?"secondary":"ghost",className:(0,K.cn)("justify-start",a.id===d?"text-foreground bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)]":"text-muted-foreground"),children:[(0,b.jsx)(a.icon,{className:(0,K.cn)("mr-1")}),(0,b.jsx)("span",{className:"truncate text-sm",children:a.label}),a.Badge&&(0,b.jsx)("span",{className:"ml-auto flex items-center",children:(0,b.jsx)(a.Badge,{})})]},a.id))]},a)),(0,b.jsx)("span",{className:ag,children:"community"}),(0,b.jsx)(O,{}),(0,b.jsxs)("div",{className:"mt-auto flex flex-col gap-2 pt-3",children:[(0,b.jsx)(P.InstallButton,{}),(0,b.jsx)("div",{className:"px-1",children:(0,b.jsx)(aj,{})})]})]}),(0,b.jsxs)("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col",children:[(0,b.jsx)("div",{className:"shrink-0 px-8 pt-10",children:(0,b.jsxs)(Q.SettingColumn,{className:"animate-in space-y-0.5 fade-in slide-in-from-bottom-1 duration-300",children:[(0,b.jsx)("p",{className:"truncate text-2xl font-semibold",children:i.label}),(0,b.jsx)("p",{className:"truncate text-xs text-muted-foreground",children:i.hint})]},i.id)}),(0,b.jsx)("div",{ref:h,className:"min-h-0 min-w-0 flex-1",children:(0,b.jsx)(i.Component,{})})]})]})]})]})}],594257)},363970,a=>{"use strict";var b=a.i(364434),c=a.i(995032),d=a.i(886297),e=a.i(569587),f=a.i(240608),g=a.i(566778);a.s(["useSectionAlerts",0,function(){let a=(0,b.useBotAlert)(),h=(0,c.useThreadAlert)(),i=(0,f.useMcpAlert)(),j=(0,d.useConfigAlert)();return{bot:a,threads:h,mcp:i,keys:j,models:(0,e.useModelsAlert)(),phone:(0,g.useReachAlert)()}},"worstAlert",0,function(a){return a.includes("red")?"red":a.includes("waiting")?"waiting":null}])},444324,a=>{"use strict";var b=a.i(572131);let c=!1,d=new Set,e=new Set;a.s(["callSignal",0,{hold(a){if(a!==c)for(let b of(c=a,d))b()},place(){for(let a of e)a()},onPlace:a=>(e.add(a),()=>{e.delete(a)})},"useCallHeld",0,function(){return(0,b.useSyncExternalStore)(a=>(d.add(a),()=>d.delete(a)),()=>c,()=>!1)}])},72962,a=>{"use strict";var b=a.i(187924),c=a.i(572131);a.s(["Boot",0,function(){let[a,d]=(0,c.useState)(!1);return((0,c.useEffect)(()=>d(!0),[]),a)?null:(0,b.jsx)("p",{"aria-hidden":!0,className:"pointer-events-none fixed inset-x-0 bottom-16 z-50 animate-stalled text-center text-[13px] text-muted-foreground opacity-0",children:"The page did not start. Reload it."})}])},526496,a=>a.a(async(b,c)=>{try{var d=a.i(187924),e=a.i(572131),f=a.i(767561),g=a.i(511576),h=a.i(135432),i=a.i(369768),j=a.i(559553),k=a.i(667395),l=a.i(313237),m=a.i(497895),n=b([i]);[i]=n.then?(await n)():n;let p=new Intl.Segmenter(void 0,{granularity:"grapheme"}),q=a=>Array.from(p.segment(a)).length,r="pointer-events-auto underline decoration-current/35 underline-offset-4 transition-colors hover:decoration-current";function o({href:a,children:b}){let[c]=(0,l.useServerAction)(k.openFileAction);if(/^https?:\/\//i.test(a))return(0,d.jsx)("a",{href:a,target:"_blank",rel:"noreferrer",className:r,onClick:a=>a.stopPropagation(),children:b});let e=(0,j.workspaceRelative)(a);return e?(0,d.jsx)("a",{href:f.queryKey.fileView(e),className:r,onClick:b=>{b.preventDefault(),b.stopPropagation();let d=(0,i.fileTarget)(a);"os"===d.how?c(a):h.fileOpens.open(d.path)||window.open(f.queryKey.fileView(d.path),"_blank")},children:b}):b}a.s(["CaptionWords",0,function({text:a,animate:b}){let{shown:c,links:f}=(0,e.useMemo)(()=>{let b=[],c="",d=0;for(let e of a.matchAll(m.MARKDOWN_LINK)){c+=a.slice(d,e.index);let f=q(c);c+=e[1],b.push({from:f,to:q(c),href:e[2]}),d=e.index+e[0].length}return{shown:c+a.slice(d),links:b}},[a]);if(b)return(0,d.jsx)(g.Letters,{text:c,wraps:f.map(a=>({from:a.from,to:a.to,render:b=>(0,d.jsx)(o,{href:a.href,children:b})}))});let h=Array.from(p.segment(c),a=>a.segment),i=[],j=0;for(let a of f)i.push(h.slice(j,a.from).join("")),i.push((0,d.jsx)(o,{href:a.href,children:h.slice(a.from,a.to).join("")},a.from)),j=a.to;return i.push(h.slice(j).join("")),(0,d.jsx)(d.Fragment,{children:i})}]),c()}catch(a){c(a)}},!1),751513,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(935112),e=a.i(647509);let f="700 9px ui-monospace, SFMono-Regular, Menlo, monospace",g=Math.ceil(13.5);function h(a){let b=document.createElement("canvas");b.width=g*a.length,b.height=g;let c=b.getContext("2d");return c?(c.textAlign="center",c.textBaseline="middle",c.font=f,a.forEach((a,b)=>{c.fillText(a,b*g+g/2,g/2)}),b):null}a.s(["ConnectWave",0,function({status:a,charset:i}){let j=(0,c.useRef)(null),k=(0,c.useRef)(null),l=(0,c.useRef)(a),[m,n]=(0,c.useState)(!1),o=(0,c.useRef)(null);return(0,c.useEffect)(()=>{o.current="ascii"===i?null:h(e.EMOJI_POOL)},[i]),(0,c.useEffect)(()=>{let b=l.current;l.current=a,"connecting"!==b||"connecting"===a||"idle"===a||"ending"===a||window.matchMedia("(prefers-reduced-motion: reduce)").matches||n(!0)},[a]),(0,c.useEffect)(()=>{let a=k.current,b=j.current?.getBoundingClientRect();if(!m||!a||!b)return;let c=window.innerWidth,d=window.innerHeight,l=b.left+b.width/2,p=b.top+b.height/2,q=Math.hypot(Math.max(l,c-l),Math.max(p,d-p)),r=Math.ceil(c/11),s=Math.ceil(d/11),t=[];for(let a=0;a<s;a++)for(let b=0;b<r;b++){if((0,e.hash)(b+53,a+5)>.4)continue;let c=11*b+5.5,d=11*a+5.5,f=Math.atan2(d-p,c-l),g=(0,e.hash)(b+31,a+17),h=Math.hypot(c-l,d-p)/q*(1+.1*Math.sin(3*f+1.3)+.05*Math.sin(7*f-.7)+(g-.5)*.1);h<.1||t.push({x:c,y:d,dd:h,seed:(0,e.hash)(b,a),grain:g,speck:(0,e.hash)(b+7,a+101),roll:(0,e.hash)(b+211,a+89)})}t.sort((a,b)=>a.dd-b.dd);let u=a=>{let b=0,c=t.length;for(;b<c;){let d=b+c>>1;t[d].dd<a?b=d+1:c=d}return b};a.width=c,a.height=d;let v=a.getContext("2d"),w="ascii"===i?null:o.current??h(e.EMOJI_POOL);if(!v||"ascii"!==i&&!w)return;v.textAlign="center",v.textBaseline="middle",v.font=f,v.fillStyle=getComputedStyle(a).color;let x=e.RAMP.length-1,y=(a,b)=>"emojiOnly"===i||"emoji"===i&&a.roll<e.EMOJI_RATIO&&b>=e.EMOJI_MIN_LEVEL,z="emojiOnly"===i?e.EMOJI_CHAR_RATE:e.CHAR_RATE,A=g/2,B=performance.now(),C=0,D=0,E=()=>{let a=(performance.now()-B)/1e3;if(a>1.9736842105263157)return n(!1);if(D=requestAnimationFrame(E),C++%2)return;let b=.95*a;v.clearRect(0,0,c,d);for(let c=u(b-.2-.475);c<t.length;c++){let d=t[c],f=b-d.dd;if(f<-.03)break;let h=(0,e.smoothstep)(-.03,.02,f)*(1-(0,e.smoothstep)(.02,.2,f))*(.72+.28*Math.sin(46*d.dd-7*a+6.283*d.seed));if(d.speck<.06){let a=.18+.32*d.grain,b=(f-.2)/.95;h=Math.max(h,(.3+.4*d.grain)*(1-(0,e.smoothstep)(.4*a,a,b)))}let j=Math.round(h*x);if(j<1)continue;let k=Math.floor(a*z+10*d.seed);if(w&&y(d,j)){v.globalAlpha=(0,e.emojiAlpha)(j,x,"emojiOnly"===i);let a=Math.floor((0,e.hash)(97*d.seed,k)*e.EMOJI_POOL.length);v.drawImage(w,a*g,0,g,g,d.x-A,d.y-A,g,g);continue}v.globalAlpha=e.ALPHA_TOP*(j/x);let l=e.RAMP[j];v.fillText(l[Math.floor((0,e.hash)(131*d.seed,k)*l.length)],d.x,d.y)}v.globalAlpha=1};return D=requestAnimationFrame(E),()=>cancelAnimationFrame(D)},[m,i]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{ref:j,"aria-hidden":!0,className:"pointer-events-none absolute inset-0"}),m&&(0,d.createPortal)((0,b.jsx)("canvas",{ref:k,"aria-hidden":!0,className:"pointer-events-none fixed inset-0 z-30 size-full text-foreground"}),document.body)]})}])},587479,a=>a.a(async(b,c)=>{try{var d=a.i(187924),e=a.i(572131),f=a.i(332033),g=a.i(497895),h=a.i(526496),i=b([h]);[h]=i.then?(await i)():i;let k={assistant:null,user:null},l="(under)";function j({role:a,turns:b,pinned:c,saying:f,onPick:i,under:k,ahead:m,workOf:n,whole:o}){let p="user"===a,[q,r]=(0,e.useState)({}),s=(0,e.useRef)(null);(0,e.useEffect)(()=>()=>s.current?.disconnect(),[]);let t=(0,e.useCallback)(a=>{if(a)return s.current??=new ResizeObserver(a=>{r(b=>{let c=b;for(let d of a){let a=d.target,e=a.dataset.turn;e&&b[e]!==a.offsetHeight&&(c===b&&(c={...b}),c[e]=a.offsetHeight)}return c})}),s.current.observe(a),()=>s.current?.unobserve(a)},[]),u=b.length-1,v=null===c&&(m||!b.length)?b.length:Math.min(c??u,u),w=(0,e.useRef)(null);if((0,e.useEffect)(()=>{let a=w.current;a&&(a.scrollTop=a.scrollHeight)},[b[v]?.text]),!b.length&&!k)return null;let x=a=>1150/(1150+700*Math.abs(a-v)),y=a=>a===v?1:.78,z=a=>(q[b[a].id]??28.475)*x(a)*y(a),A=v===b.length?k:n?.(b[v].id)??null,B=Array(b.length+1).fill(0);B[v]=-28.475/2;for(let a=v-1;a>=0;a--)B[a]=B[a+1]-49-z(a);let C=A&&v<b.length?(q[l]??0)+8:0;for(let a=v+1;a<b.length;a++)B[a]=B[a-1]+z(a-1)+49+(a-1===v?C:0);let D=A?v===b.length?B[v]:B[v]+(q[b[v].id]??28.475)+8:null;return(0,d.jsxs)("div",{className:(0,g.cn)("pointer-events-none absolute h-0 w-[min(21.25rem,24vw)]",p?"left-full ml-[calc(var(--face-bleed,0px)+0.375rem)] [perspective-origin:0_0]":"right-full mr-[calc(var(--face-bleed,0px)+0.375rem)] [perspective-origin:100%_0]"),style:{top:"calc(50% + -40px)",perspective:1150},children:[b.map((a,c)=>{let e=Math.abs(c-v),j=c<v?v-c<=2:c-v<=2,k=c===v,l=j?k?1:.56*.6**(e-1):0,m=j&&!k,n=14*e*(p?-1:1)/x(c),q=B[c]/x(c);return(0,d.jsx)("div",{ref:t,"data-turn":a.id,"aria-hidden":!j,onClick:m?()=>i(c):void 0,style:{transform:`translate(${n.toFixed(1)}px, ${q.toFixed(1)}px) translateZ(${-700*e}px) scale(${y(c)})`,"--ink":l,"--lift":Math.max(l,.9)},className:(0,g.cn)("group/turn absolute top-0 w-max max-w-full text-[17px] leading-[1.675] tracking-[0.3px] text-foreground transition-transform duration-[520ms] ease-[cubic-bezier(0.22,1,0.36,1)] motion-reduce:transition-none",o&&c===b.length-1&&"animate-in fade-in duration-200 motion-reduce:animate-none",p?"left-0 origin-top-left":"right-0 origin-top-right",!j&&"invisible",m&&"pointer-events-auto cursor-pointer",k&&"pointer-events-auto"),children:(0,d.jsxs)("p",{ref:k?w:void 0,className:(0,g.cn)("break-keep wrap-anywhere text-pretty whitespace-pre-line opacity-(--ink) transition-opacity duration-[520ms] motion-reduce:transition-none",!k&&"line-clamp-4",k&&"overflow-y-auto overscroll-contain scrollbar-none",m&&"group-hover/turn:opacity-(--lift)"),style:k?{maxHeight:284.75}:void 0,children:[k&&(0,d.jsx)("span",{className:(0,g.cn)("mr-4 inline-block size-2.5 rounded-full align-middle",a.id===f?"animate-pulse motion-reduce:animate-none":"opacity-55",p?"bg-foreground":"bg-brand")}),(0,d.jsx)(h.CaptionWords,{text:a.text,animate:c===b.length-1&&!o})]})},a.id)}),A&&(0,d.jsx)("div",{ref:t,"data-turn":l,style:{transform:`translateY(${(D??0).toFixed(1)}px)`},className:"absolute inset-x-0 top-0 transition-transform duration-[520ms] ease-[cubic-bezier(0.22,1,0.36,1)] motion-reduce:transition-none",children:A})]})}a.s(["SideCaptions",0,function({turns:a,pinned:b,live:c,onPick:e,under:f=null,ahead:g=!1,workOf:h,typed:i=!1}){let k=a.at(-1);return(0,d.jsx)(d.Fragment,{children:["assistant","user"].map(l=>(0,d.jsx)(j,{role:l,turns:a.filter(a=>a.role===l),pinned:b[l],saying:c?k?.id:void 0,onPick:a=>e(l,a),under:"assistant"===l?f:null,ahead:"assistant"===l&&g,workOf:"assistant"===l?h:void 0,whole:i&&"user"===l},l))})},"turnsOf",0,function(a){let b=[];for(let c of a){let a=b.at(-1);a?.role!==c.role||c.fresh?b.push({id:c.id,role:c.role,text:c.text}):a.text=`${a.text} ${c.text}`}return b},"useTurnFocus",0,function(a,b){let[c,d]=(0,e.useState)(k);(0,e.useEffect)(()=>{b||d(k)},[b]),(0,e.useEffect)(()=>{if(!b)return;let a=a=>{"ArrowDown"!==a.key||a.altKey||a.ctrlKey||a.metaKey||a.shiftKey||(0,f.windowKey)(a)&&(a.preventDefault(),d(k))};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[b]);let g=(0,e.useCallback)((b,c)=>{let e=a.filter(a=>a.role===b).length-1;d(a=>({...a,[b]:c>=e?null:c}))},[a]);return{pinned:c,pick:g,back:null!==c.assistant||null!==c.user}}]),c()}catch(a){c(a)}},!1),4854,a=>{"use strict";var b=a.i(572131),c=a.i(287702),d=a.i(913834),e=a.i(995032),f=a.i(363970),g=a.i(346075);let h=["▁▄▇▄","▂▆▆▂","▄▇▄▁","▆▆▂▂","▇▄▁▄","▆▂▂▆","▄▁▄▇","▂▂▆▆"];a.s(["TabState",0,function({live:a,ringing:i}){let{owed:j}=(0,e.useThreadReport)(),k=(0,f.useSectionAlerts)(),l=(0,f.worstAlert)(Object.values(k).map(a=>a??null)),m="waiting"===l?null:l;return(0,b.useEffect)(()=>{let b=i?`${c.APP_NAME} is calling`:c.APP_NAME,d=j>0?`(${j}) ${b}`:b;if(!a){document.title=d;return}let e=0;document.title=`${d} ${h[e]}`;let f=setInterval(()=>{e=(e+1)%h.length,document.title=`${d} ${h[e]}`},100);return()=>clearInterval(f)},[a,j,i]),(0,b.useEffect)(()=>{let a=document.head.querySelector("link[data-tab-icon]");a||((a=document.createElement("link")).rel="icon",a.type="image/svg+xml",a.setAttribute("sizes","any"),a.dataset.tabIcon="",document.head.append(a)),a.href=`data:image/svg+xml,${encodeURIComponent(function(a){let{head:b,eyes:c}=(0,d.markAtRest)(g.THURSDAY_SEED),e=a?`<circle cx="200" cy="200" r="${66}"/>`:"",f=a?`<circle class="${a}" cx="200" cy="200" r="46"/>`:"";return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="-6 -6 252 252"><style>.ink{fill:#0a0a0a}.red{fill:#e7000b}@media (prefers-color-scheme:dark){.ink{fill:#fafafa}.red{fill:#ff6467}}</style><mask id="m" maskUnits="userSpaceOnUse"><path d="${b}" fill="#fff"/><path d="${c[0]}"/><path d="${c[1]}"/>${e}</mask><path class="ink" d="${b}" mask="url(#m)"/>${f}</svg>`}(m))}`},[m]),null}])},787037,a=>{"use strict";var b=a.i(164831);let c={name:"arrow-down-to-line",size:24,node:[["path",{d:"M12 17V3",key:"1cwfxf"}],["path",{d:"m6 11 6 6 6-6",key:"12ii2o"}],["path",{d:"M19 21H5",key:"150jfl"}]]};c.node;let d=(0,b.default)(c);a.s(["ArrowDownToLine",0,d],787037)},526587,a=>a.a(async(b,c)=>{try{var d=a.i(187924),e=a.i(787037),f=a.i(327598),g=a.i(589027),h=a.i(127774),i=a.i(748819),j=a.i(572131),k=a.i(767561),l=a.i(340695),m=a.i(630342),n=a.i(546893),o=a.i(608902),p=a.i(61876),q=a.i(650303),r=a.i(411509),s=a.i(913834),t=a.i(813535),u=a.i(983874),v=a.i(135432),w=a.i(28996),x=a.i(444324),y=a.i(359006),z=a.i(866460),A=a.i(332033),B=a.i(313237),C=a.i(759497),D=a.i(497895),E=a.i(346075),F=b([t,z]);[t,z]=F.then?(await F)():F;let K={name:u.ROOM_THURSDAY,description:"A call in writing — she answers here"},L="thursday.write.to",M=a=>/^@(\S*)$/.exec(a.split(/\s/,1)[0]);function G({runsOn:a}){let b=p.TEXT_MODEL_PROVIDERS.chatgpt.label,c=(0,d.jsx)(o.ModelPicker,{compact:!0,provider:a?.provider??null,model:a?.model??"",unset:"pick a model",onChange:a=>y.useThursdayStore.getState().patch({textModel:a})});return a?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{children:"runs on"}),c]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("span",{children:["Writing to her needs a ",b,", an OpenAI key, or"]}),c,(0,d.jsx)(N,{}),(0,d.jsx)(H,{children:"API keys"})]})}let N=()=>(0,d.jsx)("span",{className:"text-muted-foreground/40",children:"·"});function H({children:a}){return(0,d.jsx)("button",{type:"button",onClick:()=>(0,w.openSettings)("keys"),className:"rounded-sm text-foreground/80 underline underline-offset-3 outline-none hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:a})}function I({bot:a,size:b}){return a===K?(0,d.jsx)(E.ThursdayMark,{size:b,className:"shrink-0"}):(0,d.jsx)(s.BotMark,{size:b,seed:a.name,color:a.icon?.color,shape:a.icon?.shape,outline:a.icon?.outline,paint:a.icon?.paint,notify:!1,className:"shrink-0"})}function J({children:a}){return(0,d.jsx)("kbd",{className:"rounded-md border border-border bg-background px-1.5 py-0.5 font-mono text-[10px] text-foreground/80 shadow-[0_1px_0_var(--border)]",children:a})}a.s(["WriteLine",0,function({written:a,onCall:b=!1}){let{data:c}=(0,C.useServerRoute)(k.queryKey.bot),o=(0,j.useMemo)(()=>[...a?[K]:[],...c?.length?c.filter(a=>!a.disabled).map(({name:a,icon:b,description:c})=>({name:a,icon:b,description:c})):[r.DEFAULT_BOT]],[c,a]),[p,s]=(0,j.useState)(!1),[u,w]=(0,j.useState)(!1),[E,F]=(0,j.useState)(!1),[O,P]=(0,j.useState)(null),[Q,R]=(0,j.useState)(""),S=(0,j.useRef)(b);S.current=b;let T=(0,z.useGivenFiles)({onKept:a=>{if(S.current)return v.screenActs.announce({kind:"gave",paths:a}),"she knows it is here"}}),U=(0,j.useRef)(null),V=(0,j.useRef)(null);(0,j.useEffect)(()=>{try{P(window.localStorage.getItem(L))}catch{}},[]);let W=!!a?.on,[X,Y]=(0,j.useState)(null);(0,j.useEffect)(()=>{W||Y(null)},[W]);let Z=W?o.find(a=>a.name===X)??K:o.find(a=>a.name===O)??o[0],$=Z===K,_=(0,x.useCallHeld)(),aa=(0,j.useCallback)(()=>{_||(s(!0),requestAnimationFrame(()=>U.current?.focus()))},[_]),ab=(0,v.useRoomOpen)(),{take:ac}=T,ad=(0,j.useCallback)(a=>{v.writeLine.open(),ac(a)},[ac]);(0,j.useEffect)(()=>v.writeLine.subscribe(aa),[aa]),(0,j.useEffect)(()=>{if("thread"===ab)return;let a=a=>{"/"!==a.key||a.metaKey||a.ctrlKey||a.altKey||(0,A.windowKey)(a)&&(a.preventDefault(),v.writeLine.open())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[ab]),(0,j.useEffect)(()=>{if(_)return;let a=a=>!!a.dataTransfer?.types.includes("Files"),b=b=>{a(b)&&(b.preventDefault(),F(!0))},c=a=>{null===a.relatedTarget&&F(!1)},d=b=>{if(!a(b))return;b.preventDefault(),F(!1);let c=[...b.dataTransfer?.files??[]];z.roomDrop.offer(b.target,c)||ad(c)};return window.addEventListener("dragover",b),window.addEventListener("dragleave",c),window.addEventListener("drop",d),()=>{window.removeEventListener("dragover",b),window.removeEventListener("dragleave",c),window.removeEventListener("drop",d)}},[ad,_]);let[ae,af]=(0,B.useServerAction)(q.startThreadAction,{onOk:({id:a})=>{(0,C.revalidate)(k.queryKey.threads),R(""),T.clear(),s(!1),Y(null),v.roomOpens.open(a)}}),[ag,ah]=(0,j.useState)(0),[ai,aj]=(0,j.useState)(!1),ak=a=>{if(w(!1),R(a=>M(a)?a.replace(/^@\S*\s?/,""):a),ah(0),U.current?.focus(),W)return Y(a.name===K.name?null:a.name);P(a.name);try{window.localStorage.setItem(L,a.name)}catch{}},al=ai?null:M(Q),am=al?o.filter(a=>a.name.toLowerCase().startsWith(al[1].toLowerCase())):o,an=am.length?ag%am.length:0,[ao,ap]=(0,j.useState)(!1),aq=af||ao,ar=!!Q.trim()&&!al&&!T.arriving&&!aq&&!($&&!a?.runsOn),as=()=>{if(!ar)return;let b=T.withPaths(Q);$?a&&(ap(!0),a.say(b).then(()=>{R(""),T.clear()}).catch(()=>{}).finally(()=>ap(!1))):ae(Z.name,b)},at=()=>{if(W&&!$)return Y(null);W&&a?.end(),s(!1)},au=(0,j.useRef)(b);(0,j.useEffect)(()=>{let a=b&&!au.current;au.current=b,!a||Q.trim()||T.files.length||s(!1)},[b,Q,T.files.length]);let av=(p||E||W)&&!ab;(0,A.useEscape)(av,at);let aw=af||ao;(0,j.useEffect)(()=>{av&&!aw&&U.current?.focus()},[av,aw]),(0,j.useEffect)(()=>(v.writeLine.shown(av),()=>v.writeLine.shown(!1)),[av]);let ax=W&&!!ab;(0,j.useEffect)(()=>(v.writeLine.waits(ax),()=>v.writeLine.waits(!1)),[ax]);let ay=(0,t.useWaitingRows)(),[az,aA]=(0,j.useState)(av);return((0,j.useEffect)(()=>{if(av)return void aA(!0);let a=setTimeout(()=>aA(!1),200);return()=>clearTimeout(a)},[av]),az)?(0,d.jsxs)(d.Fragment,{children:[E&&(0,d.jsx)("div",{"aria-hidden":!0,className:"pointer-events-none fixed inset-0 bg-background/60",children:(0,d.jsx)("div",{className:"absolute inset-3 rounded-3xl border-[1.5px] border-dashed border-foreground/30"})}),(0,d.jsx)("div",{className:"col-start-2 row-start-1 flex min-w-0 items-end justify-center",children:(0,d.jsxs)("div",{className:(0,D.cn)("flex w-160 max-w-full flex-col gap-2",av?"pointer-events-auto animate-in duration-200 fade-in slide-in-from-bottom-2":"pointer-events-none animate-out duration-200 fade-out fill-mode-forwards slide-out-to-bottom-2"),children:[ay.length>0&&(0,d.jsxs)("div",{className:"rounded-3xl bg-background/78 p-1.5 shadow-sm shadow-black/3 ring-1 ring-border/50 backdrop-blur-md",children:[(0,d.jsxs)("p",{className:"px-3 pt-1 pb-1 font-mono text-[10px] tracking-wide text-muted-foreground",children:[ay.length," ",1===ay.length?"needs":"need"," a reply"]}),(0,d.jsx)("div",{className:"max-h-[30vh] overflow-y-auto",children:ay.map(a=>(0,d.jsx)(t.ThreadRow,{thread:a,lines:2,onPick:()=>v.roomOpens.open(a.id)},a.id))})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-[26px] bg-background p-2 shadow-[0_22px_44px_-20px_rgb(0_0_0/0.22)] ring-1 ring-border",children:[(T.files.length>0||E)&&(0,d.jsx)(z.GivenFiles,{files:T.files,onRemove:T.remove,className:"px-0.5 pt-0.5",children:E&&(0,d.jsxs)("span",{className:"flex h-13 items-center gap-2 rounded-[14px] border-[1.5px] border-dashed border-foreground/60 px-4 text-[13px]",children:[(0,d.jsx)(e.ArrowDownToLine,{className:"size-4"}),"Let go — it waits here"]})}),(0,d.jsxs)("form",{onSubmit:a=>{a.preventDefault(),as()},className:"flex items-end gap-2",children:[(0,d.jsxs)(m.Popover,{open:u||!!al,onOpenChange:w,children:[(0,d.jsxs)(m.PopoverTrigger,{render:(0,d.jsx)("button",{type:"button","aria-label":`To ${Z.name}. Choose someone else`,className:"flex h-9 shrink-0 items-center gap-1.5 rounded-full bg-muted pr-2.5 pl-1.5 text-[13px] font-medium outline-none transition-colors hover:bg-accent focus-visible:ring-3 focus-visible:ring-ring/50"}),children:[(0,d.jsx)(I,{bot:Z,size:22}),Z.name,(0,d.jsx)(g.ChevronDown,{className:"size-3 text-muted-foreground"})]}),(0,d.jsxs)(m.PopoverContent,{side:"top",align:"start",sideOffset:14,initialFocus:!al&&void 0,className:"w-90 gap-0 rounded-[18px] p-1.5",children:[(0,d.jsx)("p",{className:"px-2.5 pt-1.5 pb-1 font-mono text-[10px] text-muted-foreground",children:"to"}),am.map((a,b)=>(0,d.jsxs)("button",{type:"button",onClick:()=>ak(a),className:(0,D.cn)("flex h-11.5 w-full items-center gap-2.5 rounded-xl px-2.5 text-left outline-none hover:bg-muted focus-visible:bg-muted",(al?b===an:a.name===Z.name)&&"bg-muted"),children:[(0,d.jsx)(I,{bot:a,size:24}),(0,d.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col",children:[(0,d.jsx)("span",{className:"text-[13.5px] leading-4.5 font-medium",children:a.name}),(0,d.jsx)("span",{className:"truncate text-xs leading-4 text-muted-foreground",children:a.description})]})]},a.name)),0===am.length&&(0,d.jsx)("p",{className:"px-2.5 py-2 text-[13px] text-muted-foreground",children:"Nobody by that name."})]})]}),(0,d.jsx)(n.Textarea,{ref:U,value:Q,rows:1,disabled:af||ao,onChange:a=>{let b=a.target.value;R(b),ah(0),M(b)||aj(!1)},onPaste:a=>{let b=[...a.clipboardData.files];b.length&&(a.preventDefault(),ad(b))},onKeyDown:a=>{let b=(0,A.composing)(a);if("Escape"===a.key&&!b)return(a.preventDefault(),al)?aj(!0):at();let c="ArrowDown"===a.key||"ArrowUp"===a.key;if(al&&c&&!b){let b;return a.preventDefault(),b="ArrowDown"===a.key?1:-1,ah(a=>am.length?(a+b+am.length)%am.length:0)}if("Enter"===a.key&&!a.shiftKey&&!b){if(a.preventDefault(),al){am[an]&&ak(am[an]);return}as()}},placeholder:T.files.length?"Say what to do with them":W&&$?"Write back":$?"Write to her instead of calling":`Say the whole job — ${Z.name} cannot hear the call`,"aria-label":`Message for ${Z.name}`,className:"max-h-36 min-h-9 flex-1 resize-none border-0 bg-transparent px-0 py-1.5 text-[15px] leading-6 shadow-none focus-visible:ring-0 dark:bg-transparent"}),(0,d.jsx)("input",{ref:V,type:"file",multiple:!0,hidden:!0,onChange:a=>{ad([...a.target.files??[]]),a.target.value=""}}),(0,d.jsx)("button",{type:"button","aria-label":"Add files",onClick:()=>V.current?.click(),className:"grid size-9 shrink-0 place-items-center rounded-full text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:(0,d.jsx)(h.Paperclip,{className:"size-4"})}),(0,d.jsx)("button",{type:"submit","aria-label":"Send",disabled:!ar,className:(0,D.cn)("grid size-9 shrink-0 place-items-center rounded-full outline-none transition-colors focus-visible:ring-3 focus-visible:ring-ring/50",ar?"bg-primary text-primary-foreground hover:bg-primary/85":"bg-muted text-muted-foreground/40"),children:aq?(0,d.jsx)("span",{className:"size-3.5 animate-spin rounded-full border-2 border-current/30 border-t-current"}):(0,d.jsx)(f.ArrowUp,{className:"size-4"})})]})]}),$&&a?.error&&(0,d.jsx)("p",{className:"px-4 text-center text-xs leading-5 text-destructive",children:a.error}),$&&a?.error&&(0,d.jsxs)("div",{className:"flex items-center justify-center gap-3",children:[(0,d.jsxs)(l.Button,{type:"button",size:"sm",variant:"brand",disabled:a.busy,onClick:()=>{a.fallback&&y.useThursdayStore.getState().patch({textModel:a.fallback}),a.again()},children:[(0,d.jsx)(i.RotateCw,{}),a.fallback?"Send it again on your OpenAI key":"Send it again"]}),(0,d.jsx)("span",{className:"font-mono text-[10.5px] text-muted-foreground/70",children:(0,d.jsx)(H,{children:"API keys"})})]}),(0,d.jsx)("p",{className:"flex flex-wrap items-center justify-center gap-x-2 gap-y-1 font-mono text-[10.5px] text-muted-foreground/70",children:al?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(J,{children:"↑↓"})," walk",(0,d.jsx)(N,{}),(0,d.jsx)(J,{children:"Enter"})," take",(0,d.jsx)(N,{}),(0,d.jsx)(J,{children:"Esc"})," close the list"]}):(0,d.jsxs)(d.Fragment,{children:[$&&!a?.runsOn?(0,d.jsx)(G,{runsOn:null}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(J,{children:"Enter"})," send",(0,d.jsx)(N,{}),(0,d.jsx)(J,{children:"@"})," ",$?"a bot":"pick a bot",$&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(N,{}),(0,d.jsx)(G,{runsOn:a?.runsOn??null})]})]}),(0,d.jsx)(N,{}),(0,d.jsx)(J,{children:"Esc"})," ",W?$?"to end":"back to her":"close"]})})]})})]}):null}]),c()}catch(a){c(a)}},!1),137079,a=>a.a(async(b,c)=>{try{var d=a.i(187924),e=a.i(830988),f=a.i(589027),g=a.i(113608),h=a.i(925039),i=a.i(540990),j=a.i(20917),k=a.i(127748),l=a.i(639466),m=a.i(474215),n=a.i(572131),o=a.i(767561),p=a.i(340695),q=a.i(60052),r=a.i(511576),s=a.i(545097),t=a.i(446334),u=a.i(654816),v=a.i(287702),w=a.i(96340),x=a.i(61876),y=a.i(411509),z=a.i(913834),A=a.i(467268),B=a.i(8468),C=a.i(988422),D=a.i(143367),E=a.i(249049),F=a.i(478978),G=a.i(471375),H=a.i(594257),I=a.i(363970),J=a.i(28996),K=a.i(650485),L=a.i(461512),M=a.i(359006),N=a.i(926919),O=a.i(446382),P=a.i(411845),Q=a.i(645323),R=a.i(332033),S=a.i(571302),T=a.i(759497),U=a.i(497895),V=a.i(526496),W=a.i(751513),X=a.i(445432),Y=a.i(587479),Z=a.i(4854),$=a.i(526587),_=b([A,B,C,P,Q,V,Y,$]);function aa({status:a,failed:b=!1,messages:c,tool:e,thinkingSince:f=null,thinkingTitle:g=null,ended:h=null,faceWord:i=null,onTap:j,ringing:k=null,onDecline:l,wakePhrase:m=null,hotkeyLabel:o=null,idleLeft:p=null,since:q=null,getSpectrum:r,getMicSpectrum:s,captionView:t="sides",callable:u=!0,written:w=null}){var x;let[y,z]=(0,n.useState)(!1),B=!u&&"idle"===a,C="connecting"===a||"ending"===a,D=!!w?.on,E="idle"!==a&&!C&&!D,F=c.findLast(a=>"assistant"===a.role)?.text??"",H=(x=ax,(0,n.useSyncExternalStore)(a=>{let b=window.matchMedia(`(min-width: ${x}px)`);return b.addEventListener("change",a),()=>b.removeEventListener("change",a)},()=>window.matchMedia(`(min-width: ${x}px)`).matches,()=>!0)),I="sides"===t&&"idle"!==a&&H,J=(0,n.useMemo)(()=>(0,Y.turnsOf)(c),[c]),K=(0,Y.useTurnFocus)(J,I),L=J.at(-1)?.role,M=function(a,b){let[c,d]=(0,n.useState)(a),e=(0,n.useRef)(a?[a]:[]),f=(0,n.useRef)(Date.now()),g=(0,n.useRef)(!1),h=(0,n.useRef)(null),i=(0,n.useCallback)(()=>{if(h.current&&clearTimeout(h.current),h.current=null,!(e.current.length>1||g.current)||!e.current.length)return;let a=Math.max(0,f.current+v.CALL_LINE.dwellMs-Date.now());h.current=setTimeout(()=>{e.current.shift(),f.current=Date.now(),d(e.current[0]??null),i()},a)},[]);return(0,n.useEffect)(()=>{if(!a){g.current=!0,e.current.length<=1&&(e.current=[],d(null)),i();return}g.current=!1;let b=e.current.findIndex(b=>b.id===a.id);b>=0?(e.current[b]=a,0===b&&d(a)):(e.current=[...e.current.map((a,b)=>0===b?a:{...a,done:!0}),a],1===e.current.length&&(f.current=Date.now(),d(a))),i()},[a,i]),(0,n.useEffect)(()=>{if(!b)return;let a=e.current.at(-1);e.current=a&&!g.current?[a]:[],f.current=Date.now(),d(e.current[0]??null),i()},[b,i]),(0,n.useEffect)(()=>()=>{h.current&&clearTimeout(h.current)},[]),c}(e,"speaking"===a),N=function(a,b){let c=null!==a||b,[d,e]=(0,n.useState)([]),[f,g]=(0,n.useState)(c);return(0,n.useEffect)(()=>{e(b=>{let c=b.some(a=>!a.done)?b.map(a=>a.done?a:{...a,done:!0}):b;if(!a)return c;let d=b.findIndex(b=>aA(b)===aA(a));return d>=0?b.map((b,c)=>c===d?a:b):[...c,a].slice(-4)})},[a]),(0,n.useEffect)(()=>{if(c)return void g(!0);let a=setTimeout(()=>{g(!1),e([])},300);return()=>clearTimeout(a)},[c]),{lines:d,on:c,held:f}}(M,null!==f),[O,P]=(0,n.useState)(!1);(0,n.useEffect)(()=>{"user"!==L?P(!1):N.on&&P(!0)},[L,N.on]);let R=function(a,b,c){let[d,e]=(0,n.useState)(aB),f=a.findLast(a=>"assistant"===a.role),g=f?.id??null,h=f?`${f.id}:${f.text.length}`:null,i=!c&&a.at(-1)?.role==="assistant";(0,n.useEffect)(()=>{e(a=>{let c=a;for(let a of b){let b=aA(a),d=c.owner[b];if(void 0===d){let a=b in c.seen?c.seen[b]:h;if(b in c.seen||(c={...c,seen:{...c.seen,[b]:h}}),!g||a===h&&!i)continue;d=g,c={...c,owner:{...c.owner,[b]:d}}}let e=c.turns[d]??[],f=e.findIndex(a=>aA(a)===b);f>=0&&e[f]===a||(c={...c,turns:{...c.turns,[d]:f>=0?e.map((b,c)=>c===f?a:b):[...e,a]}})}return c})},[b,h,g,i]),(0,n.useEffect)(()=>{a.length||e(aB)},[a.length]);let j=(0,n.useMemo)(()=>b.filter(a=>void 0===d.owner[aA(a)]),[b,d.owner]);return{turns:d.turns,pending:j,latest:g}}(J,N.lines,N.on),T="assistant"===L&&"speaking"===a||"user"===L&&"listening"===a&&!D,V=null!==k&&null===k.missedAt,Z=function(a){let[b,c]=(0,n.useState)(null);return(0,n.useEffect)(()=>{if(!a)return void c(null);let b=()=>c({...aC,at:Date.now()});b();let d=setInterval(b,S.RING_CYCLE_MS);return()=>clearInterval(d)},[a]),b}(V);return(0,d.jsxs)("div",{className:"relative flex h-full flex-col",children:[(0,d.jsxs)("div",{className:"absolute top-5 right-5 z-10 flex flex-col items-end gap-3",children:[(0,d.jsx)(ad,{}),(0,d.jsx)(G.InstallNudge,{hidden:"idle"!==a||null!==k||D})]}),(0,d.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col items-center justify-center gap-5 pt-[7vh]",children:[(0,d.jsxs)("div",{className:"relative w-[min(20rem,52vw,37.5vh)] [--face-bleed:19.5%]",children:[(0,d.jsx)("button",{type:"button",disabled:C,onClick:B?()=>z(!0):D&&!u?void 0:j,"aria-label":B?"Add a speech key":E?"End the call":V?"Answer Thursday":"Call Thursday",className:(0,U.cn)("block w-full rounded-full outline-none transition-all duration-700 ease-out focus-visible:ring-3 focus-visible:ring-ring/50 enabled:active:scale-[0.99] disabled:opacity-70",B&&"opacity-35"),children:(0,d.jsx)("span",{className:"block",children:(0,d.jsx)(X.Face,{status:a,failed:b,word:Z??i,getSpectrum:r,className:"-m-(--face-bleed) w-[calc(100%+2*var(--face-bleed))] max-w-none"})})}),(0,d.jsx)(W.ConnectWave,{status:a,charset:v.ASCII_FACE.charset}),I&&(0,d.jsx)(Y.SideCaptions,{turns:J,pinned:K.pinned,live:T,onPick:K.pick,under:N.held&&R.pending.length>0?(0,d.jsx)(al,{lines:R.pending,shown:N.on}):null,ahead:O&&N.held&&R.pending.length>0,typed:D,workOf:a=>{let b=[...R.turns[a]??[],...a===R.latest&&"assistant"===L?R.pending:[]];return b.length?(0,d.jsx)(al,{lines:b,shown:!0}):null}})]}),(0,d.jsxs)("div",{className:"relative flex w-full max-w-3xl flex-col items-center gap-2 px-6 text-center",children:[k&&(0,d.jsx)(am,{ringing:k,wakePhrase:m,onAnswer:j,onDecline:()=>l?.()}),(0,d.jsxs)("div",{className:(0,U.cn)("contents",k&&"*:invisible"),children:[(0,d.jsx)(ak,{tool:I?null:M,toolUp:null!==M,thinkingSince:f,thinkingTitle:g,micOpen:!D&&("listening"===a||"working"===a||"delegating"===a),getMicSpectrum:s}),(0,d.jsx)(ae,{text:I||"idle"===a?"":F,fadeIn:!0,className:"w-full max-w-160 text-center text-base"}),(0,d.jsx)("div",{className:(0,U.cn)("flex flex-col items-center","idle"===a&&"order-first"),children:B?(0,d.jsx)(at,{open:y,onOpen:()=>z(!0),onClose:()=>z(!1)}):D?(0,d.jsx)("span",{className:"h-6"}):(0,d.jsx)(aq,{status:a,idleLeft:p,since:q,ended:h,behind:I&&K.back,wakePhrase:m,hotkeyLabel:o})})]})]})]}),(0,d.jsxs)(ab,{children:[(0,d.jsx)(Q.ArtifactView,{}),(0,d.jsx)($.WriteLine,{written:w,onCall:E}),(0,d.jsx)(A.BotRoom,{})]})]})}function ab({children:a}){return(0,d.jsx)("div",{className:"pointer-events-none absolute inset-0 z-10 grid grid-cols-[minmax(0,1fr)_auto_minmax(0,1fr)] grid-rows-[minmax(0,1fr)_auto] items-end gap-x-4 gap-y-2 p-5",children:a})}[A,B,C,P,Q,V,Y,$]=_.then?(await _)():_;let aw=["thursday","memory","bot"];function ac({alert:a}){return a?(0,d.jsx)("span",{"aria-hidden":!0,className:(0,U.cn)("absolute top-0.5 right-0.5 size-1.5 rounded-full ring-2 ring-background","red"===a?"bg-destructive":"bg-waiting")}):null}let ax=1e3;function ad(){let a=(0,I.useSectionAlerts)(),b=(0,I.worstAlert)(H.SECTIONS.filter(a=>!aw.includes(a.id)).map(b=>a[b.id]??null));return(0,d.jsxs)(u.TooltipProvider,{children:[(0,d.jsxs)(q.ButtonGroup,{className:"bg-background/75 backdrop-blur-md",children:[(0,d.jsx)(q.ButtonGroup,{children:aw.map(b=>{let c=H.SECTIONS.find(a=>a.id===b);return c?(0,d.jsxs)(u.Tooltip,{children:[(0,d.jsxs)(u.TooltipTrigger,{render:(0,d.jsx)(p.Button,{size:"icon",variant:"outline","aria-label":c.label,onClick:()=>(0,J.openSettings)(b)}),children:[(0,d.jsx)(c.icon,{className:"text-muted-foreground"}),(0,d.jsx)(ac,{alert:a[b]??null})]}),(0,d.jsx)(u.TooltipContent,{side:"bottom",children:c.label})]},b):null})}),(0,d.jsx)(q.ButtonGroup,{children:(0,d.jsxs)(p.Button,{variant:"outline",onClick:()=>(0,J.openSettings)(),className:"gap-1.5 px-2.5 text-[12.5px] font-normal",children:[(0,d.jsx)(l.Settings2,{className:"text-muted-foreground"}),"Settings",(0,d.jsx)(ac,{alert:b})]})})]}),(0,d.jsx)(H.Settings,{})]})}function ae({text:a,lines:b=3,fadeIn:c=!1,className:e}){let h=(0,n.useRef)(null),[i,j]=(0,n.useState)(b),[k,l]=(0,n.useState)(0),[m,o]=(0,n.useState)(a);m!==a&&(o(a),l(0)),(0,n.useEffect)(()=>{let a=h.current;if(!a)return;let b=()=>{let b=Number.parseFloat(getComputedStyle(a).lineHeight);b&&j(Math.max(1,Math.round(a.scrollHeight/b)))};b();let c=new ResizeObserver(b);return c.observe(a),()=>c.disconnect()},[a]);let p=Math.ceil(Math.max(0,i-b)/b),q=Math.max(0,i-b-Math.min(k,p)*b),r=`calc(${b} * 1.625em)`,s=(0,d.jsx)("p",{ref:h,style:{lineHeight:1.625,transform:`translateY(-${1.625*q}em)`},className:"break-keep wrap-anywhere whitespace-pre-line transition-transform duration-200",children:(0,d.jsx)(V.CaptionWords,{text:a,animate:c})});return(0,d.jsxs)("div",{className:"relative flex w-full justify-center",children:[(0,d.jsx)("div",{style:{height:r},onClick:p>0?()=>l(a=>a>=p?0:a+1):void 0,className:(0,U.cn)("overflow-hidden",p>0&&"cursor-pointer",e),children:s}),p>0&&(0,d.jsxs)("div",{className:"absolute top-1/2 right-0 flex -translate-y-1/2 flex-col items-center gap-0.5",children:[(0,d.jsx)(af,{look:g.ChevronUp,label:"Earlier lines",shown:k<p,onPick:()=>l(a=>Math.min(p,a+1))}),(0,d.jsx)(af,{look:f.ChevronDown,label:"Later lines",shown:k>0,onPick:()=>l(a=>Math.max(0,a-1))})]})]})}function af({look:a,label:b,shown:c,onPick:e}){return(0,d.jsx)("button",{type:"button","aria-label":b,"aria-hidden":!c,tabIndex:c?void 0:-1,onClick:a=>{a.stopPropagation(),e()},className:(0,U.cn)("grid size-7 place-items-center rounded-full text-muted-foreground/60 outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",!c&&"invisible"),children:(0,d.jsx)(a,{className:"size-3.5"})})}let ay=[{id:"a",from:0,to:1,gain:.8},{id:"b",from:1,to:3,gain:1},{id:"c",from:3,to:5,gain:1.15},{id:"d",from:5,to:6,gain:1.35},{id:"e",from:6,to:8,gain:1.55}];function ag({live:a,getMicSpectrum:b}){let c=(0,n.useRef)({}),e=(0,n.useRef)(ay.map(()=>0));return(0,n.useEffect)(()=>{if(!a||!b)return;let d=requestAnimationFrame(function a(){let f=b();ay.forEach((a,b)=>{let d=0;for(let b=a.from;b<a.to;b++)d=Math.max(d,f[b]??0);let g=Math.min(1,(d*a.gain)**.8),h=e.current[b],i=h+(g-h)*(g>h?.6:.16);e.current[b]=i;let j=c.current[a.id];j&&(j.style.height=`${2+12*i}px`)}),d=requestAnimationFrame(a)});return()=>cancelAnimationFrame(d)},[a,b]),(0,d.jsx)("span",{"aria-hidden":!0,className:"flex h-3.5 w-[18px] shrink-0 items-center gap-0.5",children:ay.map(a=>(0,d.jsx)("span",{ref:b=>{c.current[a.id]=b},style:{height:2},className:"w-0.5 rounded-full bg-muted-foreground/70"},a.id))})}function ah({live:a,getMicSpectrum:b}){return(0,d.jsxs)("span",{className:"flex items-center gap-1.5 text-[13px] leading-5 text-muted-foreground",children:[(0,d.jsx)(ag,{live:a,getMicSpectrum:b}),"Listening"]})}function ai({tool:a}){let b="relay"===a.kind?h.Flag:(0,B.toolIcon)(a.name),c=a.line??a.name,e=a.line?"min-w-0 truncate text-[13px] leading-5 break-keep":"min-w-0 truncate font-mono text-xs leading-5",f=(0,T.useServerRoute)(o.queryKey.bot).data,g=a.bot?f?.find(b=>b.name===a.bot)??null:null;return(0,d.jsxs)("span",{className:"flex max-w-full items-center gap-1.5",children:[(0,d.jsxs)("span",{className:"relative grid size-[18px] shrink-0 place-items-center",children:[(0,d.jsx)(aj,{tool:a,bot:g,icon:b}),!a.done&&(0,d.jsx)("span",{className:"absolute inset-0 grid animate-ink place-items-center",children:(0,d.jsx)(aj,{tool:a,bot:g,icon:b,running:!0})})]}),a.done&&a.sources?.length?(0,d.jsx)(t.SourceChips,{sources:a.sources,limit:2,className:"flex-nowrap"}):a.done?(0,d.jsx)("span",{className:(0,U.cn)(e,"text-muted-foreground"),children:c}):(0,d.jsx)(s.ShinyText,{text:c,className:e})]})}function aj({tool:a,bot:b,icon:c,running:e}){return a.bot?(0,d.jsx)("span",{className:(0,U.cn)("flex",!e&&!a.done&&"opacity-40"),children:(0,d.jsx)(z.BotMark,{size:16,seed:a.bot,color:b?.icon?.color,shape:b?.icon?.shape,outline:b?.icon?.outline,paint:b?.icon?.paint,notify:!1})}):(0,d.jsx)(c,{className:(0,U.cn)("size-3.5",e?"text-foreground":"text-muted-foreground",!e&&!a.done&&"opacity-40")})}function ak({tool:a,toolUp:b,thinkingSince:c,thinkingTitle:e,micOpen:f,getMicSpectrum:g}){let[h,i]=(0,n.useState)(a);(0,n.useEffect)(()=>{a&&i(a)},[a]);let{thought:j,title:k}=function(a,b){let[c,d]=(0,n.useState)(null!==a),[e,f]=(0,n.useState)(b);return(0,n.useEffect)(()=>{null!==a&&(d(!0),f(b))},[a,b]),{thought:c,title:e}}(c,e),l=null!==a,m=null!==c&&!b,o=f&&!l&&!m,p=a=>f&&(0,d.jsx)(ag,{live:a,getMicSpectrum:g});return(0,d.jsx)("div",{className:"flex h-7 max-w-full items-center justify-center",children:(0,d.jsxs)("div",{className:"grid min-w-0 items-center justify-items-center",children:[h&&(0,d.jsx)(ap,{at:"col-start-1 row-start-1 max-w-full",shown:l,children:(0,d.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[p(l),(0,d.jsx)(ai,{tool:h})]})}),j&&(0,d.jsx)(ap,{at:"col-start-1 row-start-1 max-w-full",shown:m,children:(0,d.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[p(m),(0,d.jsx)(au,{title:k})]})}),(0,d.jsx)(ap,{at:"col-start-1 row-start-1",shown:o,children:(0,d.jsx)(ah,{live:o,getMicSpectrum:g})})]})})}let az=[1,.7,.45],aA=a=>a.id??`${a.kind??"tool"}:${a.name}`,aB={turns:{},owner:{},seen:{}};function al({lines:a,shown:b}){let c=Math.max(0,a.length-3),e=a.length-c;return(0,d.jsx)("div",{"aria-hidden":!b,className:(0,U.cn)("pointer-events-auto relative w-full transition-opacity duration-300 ease-out",!b&&"pointer-events-none opacity-0"),style:{height:26*e},children:a.map((b,e)=>{let f=e-c;return(0,d.jsx)("div",{style:{transform:`translateY(${26*f}px)`,opacity:f<0?0:az[a.length-1-e],height:26},className:"absolute inset-x-0 top-0 flex items-center transition-[transform,opacity] duration-300 ease-out motion-reduce:transition-none",children:(0,d.jsx)("div",{className:"flex min-w-0 animate-in duration-300 fade-in slide-in-from-bottom-1 motion-reduce:animate-none",children:(0,d.jsx)(ai,{tool:b})})},aA(b))})})}let aC={text:"CALL",hold:1.5},aD="rounded-md border border-border bg-background px-1.5 py-0.5 font-mono text-[10px] text-foreground/80 shadow-[0_1px_0_var(--border)]";function am({ringing:a,wakePhrase:b,onAnswer:c,onDecline:e}){let f=(0,T.useServerRoute)(o.queryKey.bot).data,g=(a,b)=>{let c=f?.find(b=>b.name===a.bot)?.icon;return(0,d.jsx)(z.BotMark,{size:b,seed:a.bot,color:c?.color,shape:c?.shape,outline:c?.outline,paint:c?.paint,notify:!1,className:"shrink-0"})},{first:h,others:i,missedAt:j}=a,[l,m]=(0,C.useAnswerThread)(),[q,r]=(0,n.useState)(null);if(null!==j){let a=[h,...i];return(0,d.jsxs)("div",{className:"absolute inset-x-0 -top-20 z-10 flex animate-in flex-col items-center px-6 fade-in duration-300",children:[(0,d.jsxs)("div",{className:"flex w-full max-w-140 flex-col text-left",children:[(0,d.jsxs)("p",{className:"mb-1.5 flex items-center gap-2 font-mono text-[11px] text-muted-foreground",children:[(0,d.jsx)(k.PhoneMissed,{className:"size-3"}),(0,d.jsxs)("span",{children:["Missed · ",(0,d.jsx)(an,{at:j})]}),(0,d.jsxs)("button",{type:"button",onClick:e,className:"ml-auto flex items-center gap-1.5 rounded-md outline-none hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,d.jsx)("kbd",{className:aD,children:"Esc"}),"clear"]})]}),a.slice(0,3).map(a=>(0,d.jsxs)("div",{className:"flex h-8.5 items-center gap-2.5",children:[g(a,20),(0,d.jsx)("span",{className:"w-32 shrink-0 truncate text-[13.5px]",children:a.label}),(0,d.jsx)("span",{className:"w-14 shrink-0 font-mono text-[10.5px] text-muted-foreground",children:aE[a.kind]}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate text-[13px] text-muted-foreground",children:(0,U.plainText)(a.text)})]},a.id)),a.length>3&&(0,d.jsxs)("p",{className:"mt-1 font-mono text-[10.5px] text-muted-foreground/70",children:["+",a.length-3," more in the room"]})]}),(0,d.jsx)(p.Button,{variant:"brand",onClick:c,className:"mt-5 h-12 px-8 text-[15px]",children:"Call back"}),b&&(0,d.jsxs)("span",{className:"mt-3 flex items-center gap-1.5 font-mono text-[11px] text-muted-foreground/70",children:["or say ",(0,d.jsx)(ao,{phrase:b})]})]})}return(0,d.jsxs)("div",{className:"absolute inset-x-0 -top-20 z-10 flex animate-in flex-col items-center gap-3 px-6 fade-in duration-300",children:[(0,d.jsxs)("span",{className:"flex max-w-full items-center gap-2 text-sm",children:[g(h,18),(0,d.jsx)("span",{children:h.bot}),(0,d.jsx)("span",{className:"text-muted-foreground/40",children:"·"}),(0,d.jsx)("span",{className:"truncate text-muted-foreground",children:h.label})]}),(0,d.jsx)("p",{className:"line-clamp-3 max-w-150 text-base/relaxed text-pretty break-keep wrap-anywhere [@media(min-height:860px)]:line-clamp-5",children:(0,U.plainText)(h.text)}),h.options.length>0&&(0,d.jsx)("span",{className:"flex max-w-full flex-wrap justify-center gap-1.5",children:h.options.map(a=>(0,d.jsx)(p.Button,{size:"sm",variant:"secondary",loading:q===a,disabled:m,onClick:async()=>{r(a),await l(h,a,h.bot,h.questionId??void 0),r(null)},className:"h-7 max-w-60 rounded-full px-3 text-[12.5px]",children:(0,d.jsx)("span",{className:"truncate",children:a})},a))}),(0,d.jsx)(p.Button,{variant:"brand",onClick:c,className:"mt-3 h-12 px-8 text-[15px]",children:"Answer"}),i.length>0&&(0,d.jsxs)("span",{className:"flex max-w-full flex-wrap items-center justify-center gap-x-4.5 gap-y-1 text-[13px] text-muted-foreground",children:[i.slice(0,2).map(a=>(0,d.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[g(a,16),(0,d.jsx)("span",{className:"max-w-44 truncate text-foreground",children:a.label}),aE[a.kind]]},a.id)),i.length>2&&(0,d.jsxs)("span",{children:["+",i.length-2]})]}),(0,d.jsxs)("span",{className:"mt-1 flex items-center gap-3 font-mono text-[11px] text-muted-foreground/70",children:[b&&(0,d.jsxs)("span",{className:"flex items-center gap-1.5",children:["say ",(0,d.jsx)(ao,{phrase:b})," to answer"]}),(0,d.jsxs)("button",{type:"button",onClick:e,className:"flex items-center gap-2 rounded-md outline-none hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,d.jsx)("kbd",{className:aD,children:"Esc"}),"not now"]})]})]})}function an({at:a}){let[b,c]=(0,n.useState)(()=>Date.now());return(0,n.useEffect)(()=>{let a=setInterval(()=>c(Date.now()),3e4);return()=>clearInterval(a)},[]),b-a<6e4?"just now":(0,e.formatDistanceStrict)(a,b,{addSuffix:!0})}function ao({phrase:a}){return(0,d.jsxs)("span",{className:"flex items-center gap-1 rounded-full bg-muted px-2 py-0.5 text-foreground/80",children:[(0,d.jsx)(i.Mic,{className:"size-3"}),a]})}let aE={question:"asks",done:"finished",stopped:"stopped"};function ap({at:a,shown:b,children:c}){return(0,d.jsx)("span",{"aria-hidden":!b,className:(0,U.cn)("flex transition-opacity duration-300 ease-out",a,b?"opacity-100":"pointer-events-none opacity-0"),children:c})}let aF={quiet:`${v.CALL_IDLE.hangUpMs/1e3}s of quiet`,hungUp:"Thursday hung up",closed:"Live closed the call",dropped:"the connection dropped"};function aq({status:a,idleLeft:b,since:c,ended:e,behind:f,wakePhrase:g,hotkeyLabel:h}){let i,j,k="connecting"===a||"ending"===a,l="idle"!==a&&!k;return k?(j=a,i=(0,d.jsx)(s.ShinyText,{text:"connecting"===a?"Connecting…":"Ending…",className:"text-muted-foreground/70"})):l&&null!==b?(j="quiet",i=`Quiet — ending in ${b}s. Say anything to stay.`):l?(j=f?"behind":"live",i=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{children:"Tap Thursday to end"}),(0,d.jsx)("span",{className:"text-muted-foreground/40",children:"·"}),f?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("kbd",{className:aD,children:"↓"}),(0,d.jsx)("span",{children:"back to now"})]}):(0,d.jsx)(av,{since:c})]})):e?(j=`ended:${e}`,i=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("span",{children:["Ended — ",aF[e]]}),(0,d.jsx)("span",{className:"text-muted-foreground/40",children:"·"}),(0,d.jsx)("span",{children:"Tap to call again"})]})):g?(j=`wake:${g}`,i=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(r.Letters,{text:"Tap Thursday, or say"}),(0,d.jsx)(ar,{at:500,children:(0,d.jsx)(ao,{phrase:g})}),(0,d.jsx)(ar,{at:aG,children:(0,d.jsx)(as,{})})]})):h?(j=`key:${h}`,i=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(r.Letters,{text:"Tap Thursday, or press"}),(0,d.jsx)(ar,{at:550,children:(0,d.jsx)("kbd",{className:aD,children:h})}),(0,d.jsx)(ar,{at:aG,children:(0,d.jsx)(as,{})})]})):(j="tap",i=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(r.Letters,{text:"Tap Thursday to talk"}),(0,d.jsx)(ar,{at:aG,children:(0,d.jsx)(as,{})})]})),(0,d.jsx)("span",{className:"flex h-6 animate-in items-center gap-1.5 font-mono text-[11px] text-muted-foreground fade-in duration-700",children:i},j)}let aG=900;function ar({at:a,children:b}){return(0,d.jsx)("span",{style:{animationDelay:`${a}ms`},className:"flex animate-in items-center gap-1.5 duration-700 fill-mode-backwards fade-in",children:b})}function as(){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"px-1.5 text-muted-foreground/30",children:"·"}),(0,d.jsx)("span",{className:"text-muted-foreground/70",children:"/ to write"})]})}function at({open:a,onOpen:b,onClose:c}){return a?(0,d.jsxs)("div",{className:"w-[min(26rem,84vw)] animate-in space-y-2.5 rounded-2xl bg-background/80 p-3 ring-1 ring-border/60 backdrop-blur-md fade-in duration-300",children:[(0,d.jsxs)("div",{className:"flex h-6 items-center justify-between gap-2 pl-0.5",children:[(0,d.jsx)("span",{className:"text-[13px] font-medium",children:"Paste your OpenAI API key"}),(0,d.jsx)(p.Button,{type:"button",size:"icon",variant:"ghost","aria-label":"Not now",onClick:c,className:"-my-1 size-6",children:(0,d.jsx)(m.X,{className:"size-3.5"})})]}),(0,d.jsx)(E.VoiceKeys,{dense:!0,plain:!0,autoFocus:!0,onSaved:()=>(0,D.installSeedBots)()}),(0,d.jsx)(E.GetKeyLink,{})]}):(0,d.jsxs)("span",{className:"flex animate-in items-center gap-2 rounded-full bg-muted/60 py-1 pr-1 pl-1.5 ring-1 ring-border/60 fade-in duration-500",children:[(0,d.jsxs)("span",{className:"relative flex size-6 shrink-0 items-center justify-center",children:[(0,d.jsx)(z.BotMark,{size:24,seed:y.DEFAULT_BOT.name,color:y.DEFAULT_BOT.icon?.color,shape:y.DEFAULT_BOT.icon?.shape,outline:y.DEFAULT_BOT.icon?.outline,notify:!1}),(0,d.jsx)(j.MicOff,{className:"absolute -right-0.5 -bottom-0.5 size-2.5 rounded-full bg-muted text-muted-foreground"})]}),(0,d.jsx)("span",{className:"text-[13px] text-muted-foreground break-keep wrap-anywhere",children:"Calls need one speech key. Everything else here already works."}),(0,d.jsx)(p.Button,{size:"sm",variant:"brand",onClick:b,className:"h-7 px-3.5",children:"Add key"})]})}function au({title:a}){let b=a?`Thinking \xb7 ${a}`:"Thinking";return(0,d.jsx)("span",{className:"flex max-w-full items-center text-[13px] leading-5",children:(0,d.jsx)(s.ShinyText,{text:b,className:"min-w-0 animate-in truncate fade-in duration-300"},b)})}function av({since:a}){let[b,c]=(0,n.useState)(()=>Date.now());if((0,n.useEffect)(()=>{if(null===a)return;let b=setInterval(()=>c(Date.now()),1e3);return()=>clearInterval(b)},[a]),null===a)return null;let e=Math.max(0,Math.floor((b-a)/1e3)),f=String(Math.floor(e/60)).padStart(2,"0"),g=String(e%60).padStart(2,"0");return(0,d.jsxs)("span",{className:"tabular-nums",children:[f,":",g]})}a.s(["Ear",0,ah,"Thursday",0,function({ready:a}){let b=(0,O.useTextCall)(),{status:c,failed:e,messages:f,tool:g,thinkingSince:h,thinkingTitle:i,ended:j,faceWord:k,idleLeft:l,since:m,call:p,ringing:q,decline:r,getSpectrum:s,getMicSpectrum:t,wakePhrase:u,hotkey:v}=(0,P.useThursday)(b.on),y=(0,R.useHotkeyLabel)(v),z=(0,M.useThursdayStore)(a=>a.captionView),{data:A}=(0,T.useServerRoute)(o.queryKey.config),B=A?(0,F.isConfigSet)(A,w.LIVE_PROVIDER.apiKeyName):a,C="idle"!==c,D=b.end;(0,n.useEffect)(()=>{C&&b.on&&D()},[C,b.on,D]);let E=b.on&&!C,G=(0,M.useThursdayStore)(a=>a.textModel),{settings:H}=(0,N.useLiveSettings)(),I=H?.backendModel??w.LIVE_DEFAULTS.backendModel,J=(0,n.useMemo)(()=>{let a=a=>(0,F.isConfigSet)(A,a),c=(0,L.textCallRunsOn)(a),d=G&&a(x.TEXT_MODEL_PROVIDERS[G.provider].apiKeyName)?G:c?{provider:c,model:I}:null;return{on:E,busy:b.busy,error:b.error,say:b.say,again:b.again,end:b.end,runsOn:d,fallback:d?.provider!=="openai"&&a(x.TEXT_MODEL_PROVIDERS.openai.apiKeyName)?{provider:"openai",model:I}:null}},[E,b.busy,b.error,b.say,b.again,b.end,A,G,I]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(Z.TabState,{live:"idle"!==c,ringing:null!==q}),(0,d.jsx)(aa,{status:E?b.status:c,failed:E?null!==b.error:e,messages:E?b.messages:f,tool:E?b.tool:g,thinkingSince:E?b.thinkingSince:h,thinkingTitle:E?b.thinkingTitle:i,ended:j,faceWord:k,onTap:p,ringing:B?q:null,onDecline:r,wakePhrase:u,hotkeyLabel:y,idleLeft:l,since:m,getSpectrum:E?K.silentVoice:s,getMicSpectrum:t,captionView:z,callable:B,written:C?null:J})]})}]),c()}catch(a){c(a)}},!1),550851,a=>{"use strict";var b=a.i(405050);let c=(0,b.createServerReference)("7fe16ffc7b6d1f335ead173b88776e4627729912eb",b.callServer,void 0,b.findSourceMapURL,"openCallAction");a.s(["openCallAction",0,c])},280268,a=>{"use strict";var b=a.i(405050);let c=(0,b.createServerReference)("7fdf0f799a1e1972104c242cbbe27690c8d1d17c40",b.callServer,void 0,b.findSourceMapURL,"saveThoughtAction");a.s(["saveThoughtAction",0,c])},273774,a=>{"use strict";var b=a.i(405050);let c=(0,b.createServerReference)("7f8105c6bb04b07750d2690acbc52559da64ddb9aa",b.callServer,void 0,b.findSourceMapURL,"saveTurnsAction");a.s(["saveTurnsAction",0,c])},571302,a=>{"use strict";a.s(["RING_CYCLE_MS",0,2600,"ringOnce",0,function(){let a=new Audio("/sounds/ring.ogg");return a.play().catch(()=>{}),()=>a.pause()}])},478895,a=>{"use strict";var b=a.i(572131),c=a.i(287702),d=a.i(135432),e=a.i(332033),f=a.i(199169),g=a.i(571302),h=a.i(359006);a.s(["useCallRing",0,function({threads:a,resting:i,writing:j}){let k=(0,b.useRef)(Date.now()),[l,m]=(0,b.useState)([]),[n,o]=(0,b.useState)(null),p=l.length>0,q=(0,h.useThursdayStore)(a=>a.callBack);(0,b.useEffect)(()=>{if(!a)return;let b=new Set(a.filter(a=>{let b,c;return b=a,"off"!==(c=q)&&!b.seen&&(b.room.questions.length>0||"any"===c&&"running"!==b.status)}).map(a=>a.id));if(m(a=>a.every(a=>b.has(a))?a:a.filter(a=>b.has(a))),!i||j)return;let c=k.current,d=a.filter(a=>b.has(a.id)&&(0,f.toDate)(a.updatedAt).getTime()>c);d.length&&(k.current=Math.max(...d.map(a=>(0,f.toDate)(a.updatedAt).getTime())),o(null),m(a=>[...a,...d.map(a=>a.id).filter(b=>!a.includes(b))]))},[a,q,i,j]),(0,b.useEffect)(()=>{j?(m([]),o(null)):k.current=Date.now()},[j]);let r=(0,b.useCallback)(()=>{m([]),o(null)},[]);(0,e.useEscape)(p,r),(0,b.useEffect)(()=>{if(!p||null!==n)return;let a=setTimeout(()=>o(Date.now()),c.CALL_BACK.ringMs);return()=>clearTimeout(a)},[p,n]),(0,b.useEffect)(()=>{if(p&&null===n)return(0,g.ringOnce)()},[p,n]);let s=(0,b.useMemo)(()=>{let[b,...c]=l.flatMap(b=>{let c=a?.find(a=>a.id===b);if(!c)return[];let d=c.room.questions[0];return[{id:c.id,bot:d?.bot??c.bot,kind:d?"question":"done"===c.status?"done":"stopped",label:c.label,text:d?.text??c.outcome??c.ask?.question??c.label,options:d?.options??[],questionId:d?.id??null}]});return b?{first:b,others:c,missedAt:n}:null},[l,a,n]);return(0,b.useEffect)(()=>{d.ringingThreads.set(l)},[l]),{ringing:s,isRinging:p,ringingFor:l,answered:(0,b.useCallback)(()=>{m([]),o(null)},[]),settle:(0,b.useCallback)(()=>{k.current=Date.now()},[]),decline:r}}])},411845,a=>a.a(async(b,c)=>{try{var d=a.i(572131),e=a.i(986368),f=a.i(767561),g=a.i(864037),h=a.i(287702),i=a.i(96340),j=a.i(421042),k=a.i(468805),l=a.i(135432),m=a.i(904523),n=a.i(645323),o=a.i(332033),p=a.i(548328),q=a.i(946454),r=a.i(483253),s=a.i(576271),t=a.i(759497),u=a.i(670479),v=a.i(497895),w=a.i(647509),x=a.i(444324),y=a.i(152659),z=a.i(61667),A=a.i(890999),B=a.i(790615),C=a.i(550851),D=a.i(280268),E=a.i(273774),F=a.i(359006),G=a.i(27418),H=a.i(478895),I=b([n]);[n]=I.then?(await I)():I;let L=Array(r.SPECTRUM_BANDS).fill(0),M=!1;function J(a){let b=a.replace(/\[[^\]]*\]?|\]/g,"").trim();return/[\p{L}\p{N}]/u.test(b)?b:""}function K(a,b,c="This call is not being saved"){a.failures>=h.CALL_PAGE.saveFailures||b().then(a=>(0,s.unwrapResult)(a)).catch(b=>{a.failures+=1,a.failures===h.CALL_PAGE.saveFailures&&g.toast.add({type:"warning",title:c,description:(0,v.errorToString)(b)})})}a.s(["useThursday",0,function(a=!1){let b=(0,d.useRef)(null),c=(0,d.useRef)(null),I=(0,d.useRef)(null),[N,O]=(0,d.useState)("idle"),[P,Q]=(0,d.useState)(!1),R=(0,d.useRef)(null),S=(0,d.useCallback)(a=>{R.current&&clearTimeout(R.current),R.current=a?setTimeout(()=>Q(!1),6e3):null,Q(a)},[]),[T,U]=(0,d.useState)([]),[V,W]=(0,d.useState)(null),[X,Y]=(0,d.useState)(null),[Z,$]=(0,d.useState)(null),[_,aa]=(0,d.useState)(null),[ab,ac]=(0,d.useState)(null),[ad,ae]=(0,d.useState)(null),[af,ag]=(0,d.useState)(null),ah=(0,d.useRef)(null),ai=(0,d.useRef)(null),aj=(0,d.useRef)({on:!1,spoke:!1,giveUp:null}),ak=(0,d.useRef)(null),al=(0,d.useRef)(0),am=(0,d.useRef)(null),an=(0,d.useRef)(!1),ao=(0,d.useRef)(null),ap=(0,d.useRef)(null),aq=(0,d.useRef)(z.toldWork),ar=(0,d.useRef)(new Set),as=(0,d.useRef)(new Set),at=(0,d.useRef)([]),au=(0,d.useRef)([]),av=(0,d.useRef)(0),aw=(0,d.useRef)(null),ax=(0,d.useRef)(0),ay=(0,d.useRef)(!1),az=(0,d.useRef)(!1),aA=(0,d.useRef)(void 0),aB=(0,d.useRef)(null),aC=aB.current??=(0,u.createOutbox)(),aD=(0,d.useRef)(!1),aE=(0,d.useRef)(!1),aF=(0,d.useRef)(!1),aG=(0,d.useRef)(0),aH=(0,d.useCallback)(a=>{am.current&&clearTimeout(am.current),an.current=!1;let b=(0,G.toolBot)(a.name,a.arguments,aA.current);W({id:a.id,name:a.name,line:(0,G.toolLine)(a.name,a.arguments,b),bot:b,done:!1})},[]),aI=(0,d.useCallback)((a,b)=>{let c=(0,G.toolBot)(a.name,a.arguments,aA.current,b);c&&W(b=>b?.id===a.id&&b.bot!==c?{...b,bot:c,line:(0,G.toolLine)(a.name,a.arguments,c)}:b)},[]),aJ=(0,d.useCallback)(a=>{am.current&&clearTimeout(am.current),an.current=!0,W({...a,done:!1})},[]),aK=(0,d.useCallback)(a=>{W(b=>b?.id===a?{...b,done:!0}:b),am.current&&clearTimeout(am.current),am.current=setTimeout(()=>W(a=>a?.done?null:a),h.CALL_LINE.lingerMs)},[]),aL=(0,d.useCallback)(()=>{if(aj.current.giveUp&&clearTimeout(aj.current.giveUp),aj.current.spoke){for(let a of at.current)ar.current.delete(a);let a=au.current;a.length&&(0,k.acceptThreadRelaysAction)(a).then(s.unwrapResult).catch(a=>g.toast.add({type:"error",title:"Could not record relay delivery",description:(0,v.errorToString)(a)}))}au.current=[],at.current=[],aj.current={on:!1,spoke:!1,giveUp:null},an.current&&(an.current=!1,W(a=>a?.kind==="relay"?{...a,done:!0}:a),am.current&&clearTimeout(am.current),am.current=setTimeout(()=>W(a=>a?.kind==="relay"?null:a),h.CALL_LINE.relayLingerMs))},[]),aM=(0,d.useCallback)(()=>{aj.current.giveUp&&clearTimeout(aj.current.giveUp),aj.current={on:!0,spoke:!1,giveUp:setTimeout(aL,h.CALL_RELAY.readMs)}},[aL]),aN=(0,d.useCallback)(a=>{ah.current=a,ac(a),ae(null)},[]),aO=(0,d.useCallback)((a,b)=>{let c=()=>{ai.current&&clearTimeout(ai.current),ai.current=null};if(b){c(),null!==ah.current&&aN(null);return}if(a){c(),null===ah.current&&aN(Date.now());return}null===ah.current||ai.current||(ai.current=setTimeout(()=>{ai.current=null,aN(null)},h.CALL_LINE.thinkingTailMs))},[aN]),aP=(0,d.useCallback)(()=>{let a=b.current,c=aA.current;if(!a||!c||aj.current.on||az.current||null!==ah.current||aw.current)return;let d=ay.current;if(ay.current=!1,!d&&Date.now()-ax.current<h.CALL_RELAY.quietMs)return;let e=(0,z.openWork)(c).filter(a=>!aq.current.has(a.key)&&!as.current.has(a.key)),f=e[0];if(!f)return;let g=e.filter(a=>a.kind===f.kind).slice(0,h.CALL_RELAY.perTurn),i=g.map(a=>a.line);for(let a of g)aq.current.add(a.key),ar.current.add(a.key);f.key.startsWith("done:")&&ag((0,y.finished)()),aM(),at.current=g.map(a=>a.key),au.current=g.flatMap(a=>a.relayIds),aJ((g.at(-1)??f).show),a.append("commentary",1===i.length?i.join(""):`[${i.length} updates.]
|
|
4
|
+
|
|
5
|
+
${i.join("\n\n")}`).then(a=>{a||(au.current=[],aL())})},[aM,aL,aJ]),aQ=(0,d.useRef)(N);(0,d.useEffect)(()=>{aQ.current=N},[N]);let aR=(0,d.useRef)("listening"),aS=(0,d.useRef)(null),aT=(0,d.useCallback)(()=>{aS.current&&clearTimeout(aS.current),aS.current=null},[]),aU=(0,d.useCallback)(a=>{aQ.current=a,O(a)},[]),aV=(0,d.useCallback)(a=>{aR.current=a;let b=aQ.current;if("speaking"===a){aT(),aU(a);return}let c="working"===a||"delegating"===a;if(c&&("working"===b||"delegating"===b)){aT(),aU(a);return}c||"listening"!==b?aS.current||(aS.current=setTimeout(()=>{aS.current=null,aU(aR.current)},c?800:600)):aT()},[aT,aU]),aW="idle"!==N&&"connecting"!==N&&"ending"!==N,{data:aX}=(0,t.useServerRoute)(f.queryKey.threads,{refreshInterval:h.INBOX_POLL_MS}),aY=(0,d.useRef)(!1);(0,e.useAppEvent)({hello:()=>{if(!aY.current){aY.current=!0;return}(0,t.revalidateAll)()},threads:()=>void(0,t.revalidate)(f.queryKey.threads),routines:()=>void(0,t.revalidate)(f.queryKey.routines),memory:()=>void(0,t.revalidate)(f.queryKey.memory),mcp:()=>{(0,t.revalidate)(f.queryKey.mcp),(0,t.revalidate)(f.queryKey.mcpTools)},config:()=>{(0,t.revalidate)(f.queryKey.config),(0,t.revalidate)(f.queryKey.llmModel)}});let{data:aZ}=(0,t.useServerRoute)(f.queryKey.bot);(0,d.useEffect)(()=>{aX&&l.botThreads.sync(aX,aZ)},[aX,aZ]),(0,d.useEffect)(()=>{aA.current=aX},[aX]);let a$=(0,H.useCallRing)({threads:aX,resting:"idle"===N,writing:a}),{answered:a_,settle:a0}=a$;(0,d.useEffect)(()=>l.screenActs.subscribe(a=>{aD.current&&aC.send((0,A.screenActLine)(a))}),[aC]);let a1=(0,d.useCallback)(async(a=null)=>{if(aF.current)return;aF.current=!0,aw.current&&clearInterval(aw.current),aw.current=null,aG.current+=1;let c=b.current,d=ap.current;for(let a of(b.current=null,ap.current=null,aD.current=!1,aE.current=!1,ay.current=!1,ar.current))aq.current.delete(a);ar.current.clear(),aC.close(),aC.clear(),ao.current?.abort(),ao.current=null,aL(),am.current&&clearTimeout(am.current),aT(),a0(),$(null),Y(null),O(c?"ending":"idle"),c&&ag((0,y.goodbye)()),U([]),W(null),aN(null),ai.current&&clearTimeout(ai.current),ai.current=null,an.current=!1,await c?.close();let e=ak.current;ak.current=null,aF.current=!1,O("idle"),c&&aa(a),d&&(0,B.endCallAction)(d,e),c&&I.current&&(I.current.currentTime=0,I.current.play().catch(()=>{}))},[aC,aT,aL,aN]);(0,d.useEffect)(()=>()=>{aG.current+=1,b.current?.close(),b.current=null;let a=ap.current;for(let b of(ap.current=null,aD.current=!1,aE.current=!1,a&&(0,B.endCallAction)(a),ar.current))aq.current.delete(b);ar.current.clear(),ao.current?.abort(),ao.current=null,am.current&&clearTimeout(am.current),aS.current&&clearTimeout(aS.current),aj.current.giveUp&&clearTimeout(aj.current.giveUp),ai.current&&clearTimeout(ai.current),R.current&&clearTimeout(R.current),aw.current&&clearInterval(aw.current)},[]);let a2=(0,d.useCallback)(()=>{if(aw.current)return;let a=Date.now();aw.current=setInterval(()=>{let b=Date.now();((av.current>a-h.CALL_END.unsaidMs?b-Math.max(av.current,a)>=h.CALL_END.quietMs:b-a>=h.CALL_END.unsaidMs)||b-a>=h.CALL_END.maxMs)&&a1("hungUp")},100)},[a1]);(0,d.useEffect)(()=>{if(!aW)return;al.current=Date.now();let a=setInterval(()=>{if(!b.current)return;let a=h.CALL_IDLE.hangUpMs-(Date.now()-al.current);$(a<=h.CALL_IDLE.warnMs?Math.max(0,Math.ceil(a/1e3)):null),a<=0&&a1("quiet")},1e3);return()=>clearInterval(a)},[aW,a1]),(0,d.useEffect)(()=>{if(!aW)return;let a=setInterval(aP,1e3);return()=>clearInterval(a)},[aW,aP]);let a3=(0,d.useCallback)(async()=>{let a=a$.isRinging;if(aE.current||aF.current)return;if(aD.current||"idle"!==N)return a1();a_(),(0,n.askToNotify)(),O("connecting"),aa(null),S(!1),aE.current=!0,aD.current=!0,ak.current=null,aC.clear(),aG.current+=1;let d=aG.current,e=()=>aD.current&&aG.current===d;try{c.current??=(0,r.createAudioTap)(),function(a){if("suspended"!==a.state||M)return;M=!0;let b=()=>{M=!1,window.removeEventListener("pointerdown",b),window.removeEventListener("keydown",b),a.resume().catch(()=>{})};window.addEventListener("pointerdown",b),window.addEventListener("keydown",b),g.toast.add({type:"warning",title:"Tap anywhere to hear her",description:"This call opened on its own, so the browser is holding the audio."})}(c.current.open().context);let d=new Audio("/sounds/start_voice.ogg");I.current??=new Audio("/sounds/end_voice.ogg");let f=new AbortController;ao.current=f;let k={failures:0},l={failures:0},n={callId:"",opening:null,standing:null,opened:{webSearch:i.LIVE_DEFAULTS.webSearch,readSkills:i.LIVE_DEFAULTS.readSkills}},o=new Map,p=new Map,t=null,u=a=>{let b={query:a.query,sources:a.sources};return K(k,()=>(0,E.saveTurnsAction)(n.callId,[{id:a.row,role:"tool",tool:j.TOOL_NAMES.web_search,text:JSON.stringify(b),seq:Math.max(0,Math.round(a.seq)),fragments:null}])),!!a.sources.length&&t===a.id&&(am.current&&clearTimeout(am.current),W(c=>c&&c.id!==a.id?c:{id:a.id,name:j.TOOL_NAMES.web_search,line:(0,G.toolLine)(j.TOOL_NAMES.web_search,JSON.stringify(b)),done:!0,bot:null,sources:a.sources}),!0)},v=await (0,q.openLiveSession)({initialize:async b=>{let c=(0,s.unwrapResult)(await (0,C.openCallAction)(b,a));if(!e())throw(0,B.endCallAction)(c.callId),Error("The call closed during startup.");return ap.current=c.callId,n.callId=c.callId,n.opening=c.opening,n.standing=c.standing,n.opened=c.opened,c.sdp},audio:c.current,on:{runTool:async a=>{if(a.name===j.TOOL_NAMES.end_call)return a2(),"Ending the call.";if(a.name===j.TOOL_NAMES.emote){let{word:b,reply:c}=function(a){let b="";try{let c=JSON.parse(a);c&&"object"==typeof c&&"text"in c&&(b=String(c.text??"").trim())}catch{b=""}let c=Array.from(b).length;if(!c)return{word:null,reply:"Nothing was shown: text is empty."};if(c>w.FACE_WORD_MAX)return{word:null,reply:`Too long: ${c} characters, ${w.FACE_WORD_MAX} at most. Nothing was shown.`};let d=(0,w.undrawable)(b);return d?{word:null,reply:`Cannot draw "${d}"; use only the characters \`text\` lists. Nothing was shown.`}:{word:b.toUpperCase(),reply:"Shown."}}(a.arguments);return b&&ag({text:b,at:Date.now()}),c}aH(a);let b=a.name===j.TOOL_NAMES.web_search;b&&(t=a.id);let c=!1;try{let d=await (0,m.runRemoteTool)(n.callId,a,n.opened,f.signal);return aI(a,d),b&&(c=u({id:a.id,row:a.item??a.id,query:(0,G.searchQueryOf)(a.arguments),sources:(0,G.searchSourcesOf)(d),seq:0})),d}finally{c||aK(a.id)}},search:a=>{if(!a.done){t=a.id,aH({id:a.id,name:j.TOOL_NAMES.web_search,arguments:JSON.stringify({query:a.query})});return}let b={id:a.id,row:a.id,query:a.query,sources:a.sources,seq:a.seq};p.set(a.responseId,b),u(b)||aK(b.id)},cited:(a,b)=>{let c=p.get(a);if(!c)return;let d=new Set(c.sources.map(a=>a.url));c.sources=[...c.sources.map(a=>b.find(b=>b.url===a.url)??a),...b.filter(a=>!d.has(a.url))],u(c)},reasoning:a=>{let b=(0,G.reasoningTitle)(a.text);b&&ae(b),K(l,()=>(0,D.saveThoughtAction)(n.callId,{...a,seq:Math.max(0,Math.round(a.seq))}),"The backend's thinking is not being saved")},turn:a=>{let b="tool"===a.role?"":J(a.text),c=!!b&&b!==J(o.get(a.id)?.text??"");if(c&&(ax.current=Date.now()),c&&"user"===a.role&&(al.current=Date.now(),t)){let a=t;t=null,W(b=>b?.id===a?null:b)}"tool"!==a.role&&ap.current===n.callId&&(o.set(a.id,{seq:a.seq,id:a.id,role:a.role,text:a.text}),U([...o.values()].sort((a,b)=>a.seq-b.seq).slice(-h.CALL_PAGE.scrollback))),a.done&&K(k,()=>(0,E.saveTurnsAction)(n.callId,[{id:a.id,role:a.role,tool:a.tool,text:a.text,seq:Math.max(0,Math.round(a.seq)),fragments:a.fragments??null}]))},activity:a=>{var b;aV((b=a).speaking?"speaking":b.working||b.tools.length?b.tools.includes(j.TOOL_NAMES.thread_start)?"delegating":"working":"listening");let c=a.working||a.tools.length>0;az.current=c,aO(c,a.speaking),a.speaking&&(av.current=Date.now()),(a.speaking&&!aj.current.on||a.working||a.tools.length)&&(al.current=Date.now()),aj.current.on&&(a.speaking?aj.current.spoke=!0:aj.current.spoke&&aL())},finalized:a=>{ak.current=a},warn:a=>g.toast.add({type:"warning",title:"Call warning",description:a}),failed:a=>{g.toast.add({type:"error",title:"Call failed",description:a}),S(!0),a1(ak.current?"closed":"dropped")}}});if(!e())return void await v.close();b.current=v,aE.current=!1,ay.current=a,as.current=a?new Set:(0,z.stoodBefore)(aA.current??[]),aC.open(a=>void v.append("thinking",a)),ax.current=Date.now(),n.opening&&(aM(),v.append("instructions",n.opening).then(a=>{a||aL()})),n.standing&&v.brief(n.standing),aU("listening"),Y(Date.now()),d.play().catch(()=>{})}catch(a){if(e()&&(g.toast.add({type:"error",title:"Could not start the call",description:(0,v.errorToString)(a)}),S(!0)),aG.current!==d)return;ap.current&&(0,B.endCallAction)(ap.current),ap.current=null,aE.current=!1,aD.current=!1,ao.current=null,aC.clear(),O("idle")}},[N,a1,aH,aI,aK,aV,aU,aC,aM,aL,aO,S,a2,a$.isRinging,a$.ringingFor,a_]);(0,d.useEffect)(()=>{if(!_)return;let a=setTimeout(()=>aa(null),h.CALL_ENDED_MS);return()=>clearTimeout(a)},[_]);let a4=(0,d.useCallback)(()=>c.current?.read()??L,[]),a5=(0,d.useCallback)(()=>c.current?.readMic()??L,[]),a6=(0,F.useThursdayStore)(a=>a.wake),[a7,a8]=(0,d.useState)(!1),a9=(0,x.useCallHeld)();(0,d.useEffect)(()=>x.callSignal.onPlace(()=>void a3()),[a3]),(0,p.useWakeWord)({enabled:"idle"===N&&a6.enabled&&!a7&&!a9,phrases:[a6.phrase],onWake:()=>void a3(),onError:a=>{a8(!0),g.toast.add({type:"error",title:"Wake word off",description:a})}});let ba=(0,F.useThursdayStore)(a=>a.hotkey),bb="connecting"===N||"ending"===N;return(0,o.useHotkey)({enabled:ba.enabled&&!bb&&!a9,combo:ba.enabled&&(0,o.isCombo)(ba.combo)?ba.combo:null,onPress:()=>void a3()}),{status:N,failed:P,messages:T,tool:V,ended:_,thinkingSince:ab,thinkingTitle:ad,faceWord:af,idleLeft:Z,since:X,call:a3,ringing:a$.ringing,decline:a$.decline,getSpectrum:a4,getMicSpectrum:a5,wakePhrase:a6.enabled&&!a7?a6.phrase:null,hotkey:ba.enabled&&(0,o.isCombo)(ba.combo)?ba.combo:null}}]),c()}catch(a){c(a)}},!1),152659,a=>{"use strict";let b=["NIGHT","G'NIGHT","NITE","SLEEP ♥","ZZZ","BYE"],c=[[22,b],[17,["BYE","SEE YA","LATER","SO LONG","BYE ♥","CIAO"]],[11,["BYE","SEE YA","LATER","CIAO","BYE BYE","PEACE"]],[5,["ENJOY!","SEE YA","BYE","LATER","CIAO"]],[0,b]],d=(a,b)=>({text:a,at:Date.now(),hold:b});a.s(["awake",0,()=>d("HI",1.6),"finished",0,()=>d("OK",1),"goodbye",0,function(a=new Date){let b,e=a.getHours();return d((b=c.find(([a])=>e>=a)?.[1]??["BYE"])[Math.floor(Math.random()*b.length)],1.6)}])},61667,a=>{"use strict";var b=a.i(287702),c=a.i(411509),d=a.i(199169);let e=new Set,f={message:"says",question:"asks",report:"reports",interrupted:"was cut off"},g={question:0,stopped:1,done:2,progress:3};function h(a){let c=a.trim();if(c.length<=b.CALL_RELAY.chars)return c;let d=c.slice(0,b.CALL_RELAY.chars),e=Math.max(d.lastIndexOf("\n\n"),d.lastIndexOf(". "),d.lastIndexOf(".\n"),d.lastIndexOf("。")),f=(e>b.CALL_RELAY.chars/3?d.slice(0,e+1):d).trim();return`${f}
|
|
6
|
+
[The message goes on; the rest is in its thread on screen.]`}let i=a=>`question:${a}`;function j(a){let b=[];for(let e of a){let{relays:a,questions:j}=e.room,k=(0,d.toDate)(e.updatedAt).getTime(),l=(a,b)=>`[${a} → Thursday, thread "${e.label}" (${e.id}), ${b}.]`,m=(a,b)=>({kind:"relay",name:e.label,line:b,done:!0,bot:a});for(let c of j){let d=c.options?.length?` Options: ${c.options.join(" / ")}.`:"";b.push({rank:g.question,key:i(c.id),kind:"question",line:`${l(c.bot,"question")}
|
|
7
|
+
${h(c.text)}${d}`,relayIds:a.filter(a=>a.messageId===c.id).map(a=>a.id),threadId:e.id,text:c.text,show:m(c.bot,`${c.bot} asks`)})}let n=a.filter(a=>!j.some(b=>b.id===a.messageId)),o="done"===e.status,p="waiting"===e.status&&(0,c.isAppStop)(e.ask);if(o||p){if(e.seen)continue;let a=p?"stopped":"done",c=(p?e.ask?.question:null)??e.outcome??"",d="stopped"===a?`It stopped before finishing. Where it got to: ${h(c)}`:`Done. Its answer: ${h(c)}`;b.push({rank:g[a],key:`${a}:${e.id}@${k}`,kind:"ending",line:`${l(e.bot,a)}
|
|
8
|
+
${d}`,relayIds:n.map(a=>a.id),threadId:e.id,text:c,show:m(e.bot,"stopped"===a?`${e.bot} stopped`:`${e.bot} finished`)});continue}for(let a of n)b.push({rank:g.progress,key:`progress:${a.id}`,kind:"progress",line:`${l(a.bot,a.kind)}
|
|
9
|
+
${h(a.text)}`,relayIds:[a.id],threadId:e.id,text:a.text,show:m(a.bot,`${a.bot} ${f[a.kind]}`)})}return b.sort((a,b)=>a.rank-b.rank)}a.s(["openWork",0,j,"stoodBefore",0,a=>new Set(j(a).filter(a=>"question"!==a.kind).map(a=>a.key)),"toldWork",0,e])},890999,a=>{"use strict";a.s(["screenActLine",0,function(a){return"answered"===a.kind?`The user sent a message on screen to ${a.recipient??"the coordinator"} in thread "${a.label}" (${a.id})${a.replyTo?`, replying to ${a.replyTo}`:""}: ${a.answer}. It has reached that participant.`:"stopped"===a.kind?`The user stopped thread "${a.label}" on screen. It is no longer running.`:`The user put ${1===a.paths.length?"a file":`${a.paths.length} files`} down on screen, kept on this computer at ${a.paths.join(", ")}.`}])},790615,a=>{"use strict";var b=a.i(405050);let c=(0,b.createServerReference)("7f2282b0dda67ebce3fba747b6d6b261b1c03be14a",b.callServer,void 0,b.findSourceMapURL,"endCallAction");a.s(["endCallAction",0,c])},650485,a=>{"use strict";var b=a.i(483253);a.s(["silentVoice",0,function(){let a=performance.now()/1e3;return Array.from({length:b.SPECTRUM_BANDS},(b,c)=>.18+.16*Math.sin(a*(5+.9*c)+1.7*c)**2)}])},446382,a=>{"use strict";var b=a.i(275086),c=a.i(172654),d=a.i(572131),e=a.i(767561),f=a.i(864037),g=a.i(287702),h=a.i(421042),i=a.i(468805),j=a.i(135432),k=a.i(576271),l=a.i(313237),m=a.i(759497),n=a.i(497895),o=a.i(61667),p=a.i(890999),q=a.i(790615),r=a.i(405050);let s=(0,r.createServerReference)("7f4b48bfcdcd6116f5658e5c1ab2d71baf0a511d7a",r.callServer,void 0,r.findSourceMapURL,"openTextCallAction"),t=(0,r.createServerReference)("7f20582110b536448e221014743ed81c3cbafee8f2",r.callServer,void 0,r.findSourceMapURL,"tellTextCallAction");var u=a.i(461512),v=a.i(359006),w=a.i(27418);let x=new c.DefaultChatTransport({api:e.queryKey.textCall}),y=()=>v.useThursdayStore.getState().textModel,z=a=>({type:`data-${u.TEXT_CALL_NOTE}`,id:a.id,data:a});a.s(["useTextCall",0,function(){let[a,r]=(0,d.useState)(null),v=(0,d.useRef)(a);v.current=a;let A=(0,d.useRef)(new Set),[B]=(0,l.useServerAction)(s),C=(0,d.useRef)(null),D=(0,d.useRef)([]),[E,F]=(0,d.useState)([]),G=(0,d.useCallback)(a=>{D.current=a,F(a)},[]),H=(0,d.useRef)(new Map),I=(0,d.useRef)(0),[J,K]=(0,d.useState)(null),L=(0,d.useRef)(()=>{}),{messages:M,sendMessage:N,setMessages:O,status:P,stop:Q,error:R,clearError:S}=(0,b.useChat)({transport:x,onFinish:a=>L.current(a)}),T="submitted"===P||"streaming"===P,U=(0,d.useRef)(M);U.current=M;let V=(0,d.useRef)(R);V.current=R;let W=(0,d.useRef)(""),X=(0,d.useCallback)(a=>{let b=v.current;if(!b)return;let c=D.current;G([]);let d=crypto.randomUUID();C.current=d;let e=y();W.current=JSON.stringify(e??null);let f=[...c.map(z),...a?[{type:"text",text:a}]:[]];N(f.length?{parts:f}:void 0,{body:{callId:b.callId,standing:b.standing,runsOn:e,turn:d}})},[N,G]),Y=(0,d.useCallback)(()=>{let a=v.current;if(a){for(let a of(v.current=null,r(null),C.current=null,H.current.values()))o.toldWork.delete(a.key);H.current.clear(),G([]),I.current=0,K(null),Q(),O([]),S(),(0,q.endCallAction)(a.callId).then(k.unwrapResult).finally(()=>(0,m.revalidate)(e.queryKey.callHistory(null)))}},[Q,O,S,G]),Z=(0,d.useRef)(Y);Z.current=Y,(0,d.useEffect)(()=>()=>Z.current(),[]);let $=(0,d.useCallback)(a=>{G([...D.current,a]);let b=v.current,c=C.current;b&&c&&t(b.callId,c,a).then(k.unwrapResult).catch(()=>{})},[G]);(0,d.useEffect)(()=>j.screenActs.subscribe(a=>{v.current&&$({id:crypto.randomUUID(),text:(0,p.screenActLine)(a),said:!1})}),[$]);let _=(0,d.useCallback)(async a=>{let b=v.current;if(b||(v.current=b={...await B(y()),at:Date.now()},A.current=(0,o.stoodBefore)(ac.current??[]),r(b)),I.current=0,C.current)return $({id:crypto.randomUUID(),text:a,said:!0});S(),X(a)},[B,$,S,X]),aa=(0,d.useCallback)(()=>{let a=U.current,b=a.at(-1);if(v.current&&b){if("assistant"===b.role){let d=W.current!==JSON.stringify(y()??null)?-1:b.parts.findLastIndex(a=>(0,c.isToolUIPart)(a)&&!a.providerExecuted&&("output-available"===a.state||"output-error"===a.state));G([...(0,u.notesIn)([{...b,parts:b.parts.slice(d+1)}]),...D.current]),O(d<0?a.slice(0,-1):[...a.slice(0,-1),{...b,parts:b.parts.slice(0,d+1)}])}S(),X(null)}},[X,O,S,G]),{data:ab}=(0,m.useServerRoute)(e.queryKey.threads),ac=(0,d.useRef)(ab);ac.current=ab;let ad=(0,d.useCallback)(()=>{if(!v.current||!ac.current)return;let a=(0,o.openWork)(ac.current),b=new Set(a.map(a=>a.key)),c=D.current.filter(a=>{let c=H.current.get(a.id);return void 0!==c&&!b.has(c.key)});if(c.length){for(let a of c){let b=H.current.get(a.id);b&&o.toldWork.delete(b.key),H.current.delete(a.id)}G(D.current.filter(a=>!c.includes(a)))}for(let b of a){if(o.toldWork.has(b.key)||A.current.has(b.key))continue;o.toldWork.add(b.key);let a={id:crypto.randomUUID(),text:b.line,said:!1};H.current.set(a.id,{key:b.key,rows:b.relayIds,show:b.show}),C.current&&K(b.show),$(a)}if(C.current||V.current||I.current>=g.TEXT_CALL.autoTurns)return;let d=D.current.filter(a=>H.current.has(a.id)),e=d.length?H.current.get(d[d.length-1].id):null;e&&(I.current+=1,K(e.show),X(null))},[G,$,X]),ae=null!==a;(0,d.useEffect)(()=>{ae&&ab&&ad()},[ae,ab,ad]),L.current=({message:a,messages:b,isAbort:c,isError:d,isDisconnect:e})=>{if(c||!v.current)return;C.current=null;let g=new Set((0,u.notesIn)([a]).map(a=>a.id));if(G(D.current.filter(a=>!g.has(a.id))),d||e)return;let h=new Set((0,u.notesIn)(b).map(a=>a.id)),j=[];for(let[a,b]of H.current)h.has(a)&&(j.push(...b.rows),H.current.delete(a));if(j.length&&(0,i.acceptThreadRelaysAction)(j).then(k.unwrapResult).catch(a=>f.toast.add({type:"error",title:"Could not record relay delivery",description:(0,n.errorToString)(a)})),D.current.some(a=>a.said))return X(null);ad()},(0,d.useEffect)(()=>{if(T||!J)return;let a=setTimeout(()=>K(null),g.CALL_LINE.lingerMs);return()=>clearTimeout(a)},[T,J]);let af=M.at(-1)?.role==="assistant"?M.at(-1):null,ag=af?.parts??[],ah=ag.at(-1),ai=(0,d.useMemo)(()=>{let a=[],b=!1,c=(c,d,e)=>{if(!e)return;let f=b&&"assistant"===d;"assistant"===d&&(b=!1),a.push({id:c,role:d,text:e,...f?{fresh:!0}:{}})};for(let a of M){if("system"===a.role)continue;let d=a.role,e=[],f=0,g=()=>{let b=e.join("\n\n").trim();e=[],c(`${a.id}:${f++}`,d,"assistant"===d?(0,n.captionText)(b):b)};for(let d of a.parts){"text"===d.type&&e.push(d.text);let a=(0,u.noteOf)(d);a&&(g(),a.said?c(a.id,"user",a.text):b=!0)}g()}let d=new Set((0,u.notesIn)(M).map(a=>a.id));for(let a of E)a.said&&!d.has(a.id)&&c(a.id,"user",a.text);return a},[M,E]),aj=[...ag].reverse().find(c.isToolUIPart),ak=aj?.toolCallId??null,al=aj?(0,c.getToolName)(aj):null,am=aj?.state==="output-available"||aj?.state==="output-error",an=aj?.output,ao=(0,d.useMemo)(()=>am&&al===h.TOOL_NAMES.web_search?(0,w.searchSourcesOf)(JSON.stringify(an??null)):[],[am,al,an]),ap=an?.action?.query,aq=JSON.stringify({..."string"==typeof ap?{query:ap}:{},...aj?.input??{}}),ar=al?(0,w.toolBot)(al,aq,ac.current,void 0===an?void 0:JSON.stringify(an)):null,as=al?(0,w.toolLine)(al,aq,ar):null,at=ah?.type==="text",au=(0,d.useMemo)(()=>ak&&al&&(!at||ao.length)?{id:ak,name:al,line:as,bot:ar,done:am,...ao.length?{sources:ao}:{}}:null,[ak,al,as,ar,am,ao,at]),[av,aw]=(0,d.useState)(null),ax=au?.done&&!au.sources?au.id:null;(0,d.useEffect)(()=>{if(!ax)return;let a=setTimeout(()=>aw(ax),g.CALL_LINE.lingerMs);return()=>clearTimeout(a)},[ax]);let ay=au&&au.id!==av?au:J,az=!!T&&ah?.type!=="text"&&(!au||!!au.done),[aA,aB]=(0,d.useState)(null);(0,d.useEffect)(()=>{aB(az?Date.now():null)},[az]);let aC=[...ag].reverse().find(a=>"reasoning"===a.type),aD=az&&aC?.type==="reasoning"&&(0,w.reasoningTitle)(aC.text)||null,aE=a?T?ah?.type==="text"?"speaking":au&&!au.done&&au.name===h.TOOL_NAMES.thread_start?"delegating":"working":"listening":"idle";return{on:null!==a,busy:T,status:aE,messages:ai,tool:ay,thinkingSince:aA,thinkingTitle:aD,since:a?.at??null,error:R?R.message:null,say:_,again:aa,end:Y}}],446382)},904523,a=>{"use strict";var b=a.i(767561),c=a.i(576271),d=a.i(497895);async function e(a,e,f,g){try{let d=await fetch(b.queryKey.toolCall,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({toolCallId:e.id,callId:a,...f,name:e.name,input:e.arguments?JSON.parse(e.arguments):{}}),signal:g}),{output:h}=(0,c.unwrapResult)(await d.json());return"string"==typeof h?h:JSON.stringify(h??null)}catch(a){return`Error: ${(0,d.errorToString)(a)}`}}a.s(["runRemoteTool",0,e])},645323,a=>a.a(async(b,c)=>{try{var d=a.i(187924),e=a.i(474215),f=a.i(572131),g=a.i(986368),h=a.i(767561),i=a.i(340695),j=a.i(864037),k=a.i(287702),l=a.i(852632),m=a.i(411509),n=a.i(321799),o=a.i(913834),p=a.i(135432),q=a.i(38793),r=a.i(559553),s=a.i(199169),t=a.i(576271),u=a.i(759497),v=a.i(497895),w=a.i(369768),x=b([n,q,w]);[n,q,w]=x.then?(await x)():x;let F={2:"grid-cols-2",3:"grid-cols-3",4:"grid-cols-4"},G="thursday.corner-dismissed";function y(){try{let a=JSON.parse(window.localStorage.getItem(G)??"[]");return Array.isArray(a)?a:[]}catch{return[]}}function z(a){try{let b=[...a,...y().filter(b=>!a.includes(b))].slice(0,50);window.localStorage.setItem(G,JSON.stringify(b))}catch{}}function A(a){return{threadId:a.id,label:a.label,bot:a.bot.name,words:(0,v.plainText)(a.outcome??"").slice(0,k.FINISHED_NOTICE.words),paths:(0,r.leadFirst)((0,r.pathsIn)(a.outcome??"")),unchecked:!0}}function B({row:a,children:b}){let c=a.unchecked&&a.paths.length>0,{data:d}=(0,u.useServerRoute)(c?h.queryKey.workspaceFiles(a.paths):null);if(!c)return b(a);if(!d)return null;let e=new Set(d.map(a=>a.path));return b({...a,paths:(0,r.leadFirst)(a.paths.filter(a=>e.has(a)))})}function C(){let[a,b]=(0,f.useState)([]),{data:c}=(0,u.useServerRoute)(h.queryKey.bot),e=(0,p.useBotThreads)(),i=(0,w.useOpenFile)();(0,f.useEffect)(()=>p.fileOpens.subscribe(a=>{i(a)}),[i]),(0,g.useAppEvent)({showFile:a=>i(a.paths[0],a.paths.filter(a=>"image"===(0,r.viewKindOf)(a)),!0),finished:a=>{!function(a,b,c){if(!("u"<typeof Notification)&&"granted"===Notification.permission&&!("visible"===document.visibilityState&&document.hasFocus()))try{let d=new Notification(b,{body:c,tag:a,icon:"/icon.svg"});d.onclick=()=>{window.focus(),d.close()}}catch{}}(a.threadId,a.label,a.words),b(b=>[{threadId:a.threadId,label:a.label,bot:a.bot,words:a.words,paths:a.paths},...b.filter(b=>b.threadId!==a.threadId)].slice(0,k.FINISHED_NOTICE.rows))}});let n=(0,f.useRef)(new Set);(0,f.useEffect)(()=>{if(!p.botThreads.primed())return;for(let a of e)("done"===a.status||"cancelled"===a.status)&&n.current.add(a.id);let a=new Set(y()),c=e.filter(b=>(0,m.isUnread)(b)&&!a.has(b.id)).sort((a,b)=>(0,s.toDate)(b.updatedAt).getTime()-(0,s.toDate)(a.updatedAt).getTime()),d=new Set(c.map(a=>a.id));b(a=>{let b=a.filter(a=>!n.current.has(a.threadId)||d.has(a.threadId)),e=[...c.filter(a=>!b.some(b=>b.threadId===a.id)).map(A),...b].slice(0,k.FINISHED_NOTICE.rows);return e.length===a.length&&e.every((b,c)=>b.threadId===a[c].threadId)?a:e})},[e]);let o=a=>{z([a]),b(b=>b.filter(b=>b.threadId!==a))};if(!a.length)return null;let q=a.slice(0,k.FINISHED_NOTICE.shown),x=a.slice(k.FINISHED_NOTICE.shown),C=a=>{z(a),b(b=>b.filter(b=>!a.includes(b.threadId))),(0,l.markSeenAction)(a).then(t.unwrapResult).then(()=>(0,u.revalidate)(h.queryKey.threads)).catch(b=>j.toast.add({type:"error",title:a.length>1?"Could not mark the threads as read":"Could not mark the thread as read",description:(0,v.errorToString)(b)}))};return(0,d.jsx)("div",{className:"pointer-events-none relative col-start-1 row-start-2 w-82 max-w-full",children:(0,d.jsxs)("div",{className:"pointer-events-auto absolute bottom-0 left-0 -m-2 flex max-h-[80vh] w-82 max-w-full flex-col-reverse gap-2 overflow-y-auto p-2 scrollbar-none",children:[q.map(a=>(0,d.jsx)(B,{row:a,children:a=>(0,d.jsx)(E,{row:a,bot:c?.find(b=>b.name===a.bot),onOpen:b=>{b?(i(b,a.paths.filter(a=>"image"===(0,r.viewKindOf)(a))),C([a.threadId])):(p.roomOpens.open(a.threadId),o(a.threadId))},onClose:()=>o(a.threadId)})},a.threadId)),x.map(a=>(0,d.jsx)(B,{row:a,children:a=>(0,d.jsx)(D,{row:a,bot:c?.find(b=>b.name===a.bot),onOpen:()=>{p.roomOpens.open(a.threadId),o(a.threadId)},onClose:()=>o(a.threadId)})},a.threadId)),a.length>1&&(0,d.jsxs)("p",{className:"flex shrink-0 items-center gap-2 px-1.5 font-mono text-[10px] text-muted-foreground",children:[(0,d.jsxs)("span",{children:[a.length," new"]}),(0,d.jsx)("span",{className:"flex-1"}),(0,d.jsx)("button",{type:"button",onClick:()=>C(a.map(a=>a.threadId)),className:"rounded-md px-1 font-sans text-[11px] outline-none hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:"Clear all"})]})]})})}function D({row:a,bot:b,onOpen:c,onClose:f}){let g=a.paths.length-3;return(0,d.jsxs)("div",{className:"flex shrink-0 animate-in items-center gap-2 rounded-2xl bg-background py-1.5 pr-1.5 pl-2.5 shadow-black/8 shadow-md ring-1 ring-border fade-in slide-in-from-bottom-1 duration-300",children:[(0,d.jsxs)("button",{type:"button",onClick:c,className:"flex min-w-0 flex-1 items-center gap-2 rounded-lg text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,d.jsx)(o.BotMark,{size:18,seed:a.bot,color:b?.icon?.color,shape:b?.icon?.shape,outline:b?.icon?.outline,paint:b?.icon?.paint,notify:!1,className:"shrink-0"}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate text-[12.5px] leading-5",children:a.label}),a.paths.length>0&&(0,d.jsxs)("span",{className:"flex shrink-0 items-center gap-1",children:[a.paths.slice(0,3).map(a=>(0,d.jsx)(q.FileThumb,{path:a,glyph:"size-2.5",className:"size-5 rounded-[6px] ring-1 ring-border"},a)),g>0&&(0,d.jsxs)("span",{className:"font-mono text-[10px] text-muted-foreground",children:["+",g]})]})]}),(0,d.jsx)(i.Button,{variant:"ghost",size:"icon-sm","aria-label":"Dismiss",onClick:f,className:"shrink-0 text-muted-foreground",children:(0,d.jsx)(e.X,{})})]})}function E({row:a,bot:b,onOpen:c,onClose:f}){let g,h=(g=a.paths.length)<=2?2:3===g?3:4,j=a.paths.slice(0,h),k=a.paths.length-j.length;return(0,d.jsxs)("div",{className:"flex shrink-0 animate-in gap-2.5 rounded-[20px] bg-background py-2.5 pr-2 pl-2.5 shadow-black/10 shadow-lg ring-1 ring-border fade-in slide-in-from-bottom-2 duration-300",children:[(0,d.jsx)(o.BotMark,{size:32,seed:a.bot,color:b?.icon?.color,shape:b?.icon?.shape,outline:b?.icon?.outline,paint:b?.icon?.paint,notify:!1,className:"shrink-0"}),(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-1.5",children:[(0,d.jsxs)("div",{className:"flex items-start gap-1",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>c(a.paths[0]??null),className:"flex min-w-0 flex-1 flex-col gap-1.5 rounded-lg text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,d.jsxs)("span",{className:"flex min-h-8 flex-col justify-center",children:[(0,d.jsx)("span",{className:"truncate font-medium text-[14px] leading-5 tracking-[-0.15px]",children:a.label}),(0,d.jsx)("span",{className:"truncate font-mono text-[10px] leading-[13px] text-muted-foreground",children:a.bot})]}),a.words&&(0,d.jsx)("span",{className:"line-clamp-2 break-keep wrap-anywhere text-[12.5px] leading-normal text-muted-foreground",children:(0,n.shortenPaths)(a.words)})]}),(0,d.jsx)(i.Button,{variant:"ghost",size:"icon-sm","aria-label":"Dismiss",onClick:f,className:"shrink-0 text-muted-foreground",children:(0,d.jsx)(e.X,{})})]}),j.length>0&&(0,d.jsx)("div",{className:(0,v.cn)("grid gap-1.5 pt-0.5",F[h]),children:j.map((a,b)=>(0,d.jsxs)("button",{type:"button",title:a.split("/").pop(),onClick:()=>c(a),className:"relative rounded-[10px] outline-none focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,d.jsx)(q.FileThumb,{path:a,glyph:2===h?"size-6":"size-4",className:"aspect-square w-full rounded-[10px] ring-1 ring-border"}),k>0&&b===j.length-1&&(0,d.jsxs)("span",{className:"absolute inset-0 grid place-items-center rounded-[10px] bg-black/45 font-medium text-[14px] text-white",children:["+",k]})]},a))})]})]})}a.s(["ArtifactView",0,function(){return(0,d.jsx)(w.FileViewer,{children:(0,d.jsx)(C,{})})},"FinishedCard",0,E,"askToNotify",0,function(){"u"<typeof Notification||"default"===Notification.permission&&Notification.requestPermission().catch(()=>void 0)}]),c()}catch(a){c(a)}},!1),548328,a=>{"use strict";var b=a.i(572131),c=a.i(287702);let d={"not-allowed":"The microphone is not allowed","service-not-allowed":"The microphone is not allowed","audio-capture":"There is no microphone","language-not-supported":"This browser cannot listen in that language"},e=a=>a.toLowerCase().replace(/[^a-z0-9 ]/g,"").split(/\s+/).filter(Boolean),f=(a,b,c)=>Math.abs(a.length-b.length)<=c&&function(a,b){let c=Array.from({length:a.length+1},(a,b)=>b),d=Array(a.length+1).fill(0);for(let e=1;e<=b.length;e++){d[0]=e;for(let f=1;f<=a.length;f++){let g=c[f-1]+ +(b[e-1]!==a[f-1]);d[f]=Math.min(g,c[f]+1,d[f-1]+1)}[c,d]=[d,c]}return c[a.length]}(a,b)<=c;a.s(["useWakeWord",0,function({enabled:a,onWake:g,phrases:h,onError:i}){let j=(0,b.useRef)({onWake:g,onError:i,phrases:h});j.current={onWake:g,onError:i,phrases:h},(0,b.useEffect)(()=>{if(!a)return;let b=window,g=b.SpeechRecognition??b.webkitSpeechRecognition;if(!g)return void j.current.onError?.("This browser cannot listen for a wake word");let h=new g,i=!0,k=!0,l=null,m=300;h.lang="en-US",h.continuous=!0,h.interimResults=!0,h.maxAlternatives=3;let n=()=>{if(i){k=!0;try{h.start()}catch{}}};return h.onresult=({resultIndex:a,results:b})=>{if(!i||!k)return;m=300;let{phrases:d,onWake:g}=j.current,l=d.map(e).filter(a=>a.length);for(let d=a;d<b.length;d++){let a=b[d];for(let b=0;b<a.length;b++){let d=a[b].transcript,i=e(d);if(l.some(a=>(function(a,b,c){for(let d=0;d<a.length;d++)if(function a(b,c,d,e,g){if(e===d.length)return!0;if(c>=b.length)return!1;let h=d[e],i=Math.max(1,Math.round(h.length*g));return!!(f(b[c],h,i)&&a(b,c+1,d,e+1,g))||c+1<b.length&&f(b[c]+b[c+1],h,i)&&a(b,c+2,d,e+1,g)}(a,d,b,0,c))return!0;return!1})(i,a,c.WAKE_TOLERANCE))){k=!1,h.abort(),g(d.trim());return}}}},h.onerror=({error:a})=>{let b=d[a];b?(i=!1,j.current.onError?.(b)):"network"===a&&(m=Math.min(2*m,1e4))},h.onend=()=>{i&&(l=setTimeout(n,m))},n(),()=>{i=!1,l&&clearTimeout(l),h.onresult=null,h.onerror=null,h.onend=null,h.abort()}},[a])}])},946454,a=>{"use strict";var b,c,d=a.i(287702);let e={silent:{level:-1},fatal:{level:0},error:{level:0},warn:{level:1},log:{level:2},info:{level:3},success:{level:3},fail:{level:3},ready:{level:3},start:{level:3},box:{level:3},debug:{level:4},trace:{level:5},verbose:{level:1/0}};function f(a){if(null===a||"object"!=typeof a)return!1;let b=Object.getPrototypeOf(a);return(null===b||b===Object.prototype||null===Object.getPrototypeOf(b))&&!(Symbol.iterator in a)&&(!(Symbol.toStringTag in a)||"[object Module]"===Object.prototype.toString.call(a))}let g=!1,h=[];class i{options;_lastLog;_mockFn;constructor(a={}){const b=a.types||e;for(const c in this.options=((...a)=>a.reduce((a,b)=>(function a(b,c,d=".",e){if(!f(c))return a(b,{},d,e);let g=Object.assign({},c);for(let c in b){if("__proto__"===c||"constructor"===c)continue;let h=b[c];null!=h&&(e&&e(g,c,h,d)||(Array.isArray(h)&&Array.isArray(g[c])?g[c]=[...h,...g[c]]:f(h)&&f(g[c])?g[c]=a(h,g[c],(d?`${d}.`:"")+c.toString(),e):g[c]=h))}return g})(a,b,"",void 0),{}))({...a,defaults:{...a.defaults},level:j(a.level,b),reporters:[...a.reporters||[]]},{types:e,throttle:1e3,throttleMin:5,formatOptions:{date:!0,colors:!1,compact:!0}}),b){const a={type:c,...this.options.defaults,...b[c]};this[c]=this._wrapLogFn(a),this[c].raw=this._wrapLogFn(a,!0)}this.options.mockFn&&this.mockTypes(),this._lastLog={}}get level(){return this.options.level}set level(a){this.options.level=j(a,this.options.types,this.options.level)}prompt(a,b){if(!this.options.prompt)throw Error("prompt is not supported!");return this.options.prompt(a,b)}create(a){let b=new i({...this.options,...a});return this._mockFn&&b.mockTypes(this._mockFn),b}withDefaults(a){return this.create({...this.options,defaults:{...this.options.defaults,...a}})}withTag(a){return this.withDefaults({tag:this.options.defaults.tag?this.options.defaults.tag+":"+a:a})}addReporter(a){return this.options.reporters.push(a),this}removeReporter(a){if(a){let b=this.options.reporters.indexOf(a);if(-1!==b)return this.options.reporters.splice(b,1)}else this.options.reporters.splice(0);return this}setReporters(a){return this.options.reporters=Array.isArray(a)?a:[a],this}wrapAll(){this.wrapConsole(),this.wrapStd()}restoreAll(){this.restoreConsole(),this.restoreStd()}wrapConsole(){for(let a in this.options.types)console["__"+a]||(console["__"+a]=console[a]),console[a]=this[a].raw}restoreConsole(){for(let a in this.options.types)console["__"+a]&&(console[a]=console["__"+a],delete console["__"+a])}wrapStd(){this._wrapStream(this.options.stdout,"log"),this._wrapStream(this.options.stderr,"log")}_wrapStream(a,b){a&&(a.__write||(a.__write=a.write),a.write=a=>{this[b].raw(String(a).trim())})}restoreStd(){this._restoreStream(this.options.stdout),this._restoreStream(this.options.stderr)}_restoreStream(a){a&&a.__write&&(a.write=a.__write,delete a.__write)}pauseLogs(){g=!0}resumeLogs(){for(let a of(g=!1,h.splice(0)))a[0]._logFn(a[1],a[2])}mockTypes(a){let b=a||this.options.mockFn;if(this._mockFn=b,"function"==typeof b)for(let a in this.options.types)this[a]=b(a,this.options.types[a])||this[a],this[a].raw=this[a]}_wrapLogFn(a,b){return(...c)=>g?void h.push([this,a,c,b]):this._logFn(a,c,b)}_logFn(a,b,c){var d,e;if((a.level||0)>this.level)return!1;let f={date:new Date,args:[],...a,level:j(a.level,this.options.types)};c||1!==b.length||+(e=d=b[0],"[object Object]"!==Object.prototype.toString.call(e)||!d.message&&!d.args||!!d.stack)?f.args=[...b]:Object.assign(f,b[0]),f.message&&(f.args.unshift(f.message),delete f.message),f.additional&&(Array.isArray(f.additional)||(f.additional=f.additional.split("\n")),f.args.push("\n"+f.additional.join("\n")),delete f.additional),f.type="string"==typeof f.type?f.type.toLowerCase():"log",f.tag="string"==typeof f.tag?f.tag:"";let g=(a=!1)=>{let b=(this._lastLog.count||0)-this.options.throttleMin;if(this._lastLog.object&&b>0){let a=[...this._lastLog.object.args];b>1&&a.push(`(repeated ${b} times)`),this._log({...this._lastLog.object,args:a}),this._lastLog.count=1}a&&(this._lastLog.object=f,this._log(f))};clearTimeout(this._lastLog.timeout);let h=this._lastLog.time&&f.date?f.date.getTime()-this._lastLog.time.getTime():0;if(this._lastLog.time=f.date,h<this.options.throttle)try{let a=JSON.stringify([f.type,f.tag,f.args]),b=this._lastLog.serialized===a;if(this._lastLog.serialized=a,b&&(this._lastLog.count=(this._lastLog.count||0)+1,this._lastLog.count>this.options.throttleMin)){this._lastLog.timeout=setTimeout(g,this.options.throttle);return}}catch{}g(!0)}_log(a){for(let b of this.options.reporters)b.log(a,{options:this.options})}}function j(a,b={},c=3){return void 0===a?c:"number"==typeof a?a:b[a]&&void 0!==b[a].level?b[a].level:c}i.prototype.add=i.prototype.addReporter,i.prototype.remove=i.prototype.removeReporter,i.prototype.clear=i.prototype.removeReporter,i.prototype.withScope=i.prototype.withTag,i.prototype.mock=i.prototype.mockTypes,i.prototype.pause=i.prototype.pauseLogs,i.prototype.resume=i.prototype.resumeLogs;var k=a.i(812057),l=a.i(750227);function m(a,b){let c=process.cwd()+l.sep;return a.split("\n").splice(b.split("\n").length).map(a=>a.trim().replace("file://","").replace(c,""))}let n=a=>a?`[${a}]`:"";class o{formatStack(a,b,c){let d=" ".repeat((c?.errorLevel||0)+1);return d+m(a,b).join(`
|
|
10
|
+
${d}`)}formatError(a,b){let c=a.message??(0,k.formatWithOptions)(b,a),d=a.stack?this.formatStack(a.stack,c,b):"",e=b?.errorLevel||0;return(e>0?`${" ".repeat(e)}[cause]: `:"")+c+"\n"+d+(a.cause?"\n\n"+this.formatError(a.cause,{...b,errorLevel:e+1}):"")}formatArgs(a,b){let c=a.map(a=>a&&"string"==typeof a.stack?this.formatError(a,b):a);return(0,k.formatWithOptions)(b,...c)}formatDate(a,b){return b.date?a.toLocaleTimeString():""}filterAndJoin(a){return a.filter(Boolean).join(" ")}formatLogObj(a,b){let c=this.formatArgs(a.args,b);return"box"===a.type?"\n"+[n(a.tag),a.title&&a.title,...c.split("\n")].filter(Boolean).map(a=>" > "+a).join("\n")+"\n":this.filterAndJoin([n(a.type),n(a.tag),c])}log(a,b){var c,d;return c=this.formatLogObj(a,{columns:b.options.stdout.columns||0,...b.options.formatOptions})+"\n",((d=a.level<2?b.options.stderr||process.stderr:b.options.stdout||process.stdout).__write||d.write).call(d,c)}}var p=a.i(59639),q=a.i(509656);let{env:r={},argv:s=[],platform:t=""}="u"<typeof process?{}:process,u="NO_COLOR"in r||s.includes("--no-color"),v="FORCE_COLOR"in r||s.includes("--color"),w="dumb"===r.TERM,x=q&&q.isatty&&q.isatty(1)&&r.TERM&&!w,y="CI"in r&&("GITHUB_ACTIONS"in r||"GITLAB_CI"in r||"CIRCLECI"in r),z=!u&&(v||"win32"===t&&!w||x||y);function A(a,b,c){return function(a,b,c=a,d=a.length+1){return e=>{var f;return e||""!==e&&void 0!==e?(f=(""+e).indexOf(b,d),f<0?a+e+b:a+function a(b,c,d,e,f=c.slice(0,Math.max(0,b))+e,g=c.slice(Math.max(0,b+d.length)),h=g.indexOf(d)){return f+(h<0?g:a(h,g,d,e))}(f,e,b,c)+b):""}}(`\x1b[${a}m`,`\x1b[${b}m`,c)}let B={reset:A(0,0),bold:A(1,22,"\x1b[22m\x1b[1m"),dim:A(2,22,"\x1b[22m\x1b[2m"),italic:A(3,23),underline:A(4,24),inverse:A(7,27),hidden:A(8,28),strikethrough:A(9,29),black:A(30,39),red:A(31,39),green:A(32,39),yellow:A(33,39),blue:A(34,39),magenta:A(35,39),cyan:A(36,39),white:A(37,39),gray:A(90,39),bgBlack:A(40,49),bgRed:A(41,49),bgGreen:A(42,49),bgYellow:A(43,49),bgBlue:A(44,49),bgMagenta:A(45,49),bgCyan:A(46,49),bgWhite:A(47,49),blackBright:A(90,39),redBright:A(91,39),greenBright:A(92,39),yellowBright:A(93,39),blueBright:A(94,39),magentaBright:A(95,39),cyanBright:A(96,39),whiteBright:A(97,39),bgBlackBright:A(100,49),bgRedBright:A(101,49),bgGreenBright:A(102,49),bgYellowBright:A(103,49),bgBlueBright:A(104,49),bgMagentaBright:A(105,49),bgCyanBright:A(106,49),bgWhiteBright:A(107,49)},C=function(a=z){return a?B:Object.fromEntries(Object.keys(B).map(a=>[a,String]))}();function D(a,b="reset"){return C[a]||C[b]}let E=[String.raw`[\u001B\u009B][[\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\d\/#&.:=?%@~_]+)*|[a-zA-Z\d]+(?:;[-a-zA-Z\d\/#&.:=?%@~_]*)*)?\u0007)`,String.raw`(?:(?:\d{1,4}(?:;\d{0,4})*)?[\dA-PR-TZcf-nq-uy=><~]))`].join("|");function F(a){return a.replace(RegExp(E,"g"),"")}let G={solid:{tl:"┌",tr:"┐",bl:"└",br:"┘",h:"─",v:"│"},double:{tl:"╔",tr:"╗",bl:"╚",br:"╝",h:"═",v:"║"},doubleSingle:{tl:"╓",tr:"╖",bl:"╙",br:"╜",h:"─",v:"║"},doubleSingleRounded:{tl:"╭",tr:"╮",bl:"╰",br:"╯",h:"─",v:"║"},singleThick:{tl:"┏",tr:"┓",bl:"┗",br:"┛",h:"━",v:"┃"},singleDouble:{tl:"╒",tr:"╕",bl:"╘",br:"╛",h:"═",v:"│"},singleDoubleRounded:{tl:"╭",tr:"╮",bl:"╰",br:"╯",h:"═",v:"│"},rounded:{tl:"╭",tr:"╮",bl:"╰",br:"╯",h:"─",v:"│"}},H={borderColor:"white",borderStyle:"rounded",valign:"center",padding:2,marginLeft:1,marginTop:1,marginBottom:1};var I={get url(){return a.F("node_modules/consola/dist/index.mjs")},env:{DEV:!1,PROD:!0,MODE:"production",BASE_URL:"/",SSR:!0}};let J=Object.create(null),K=a=>globalThis.process?.env||I.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(a?J:globalThis),L=new Proxy(J,{get:(a,b)=>K()[b]??J[b],has:(a,b)=>b in K()||b in J,set:(a,b,c)=>(K(!0)[b]=c,!0),deleteProperty(a,b){if(!b)return!1;let c=K(!0);return delete c[b],!0},ownKeys:()=>Object.keys(K(!0))}),M="u">typeof process&&process.env&&"production"||"",N=[["APPVEYOR"],["AWS_AMPLIFY","AWS_APP_ID",{ci:!0}],["AZURE_PIPELINES","SYSTEM_TEAMFOUNDATIONCOLLECTIONURI"],["AZURE_STATIC","INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN"],["APPCIRCLE","AC_APPCIRCLE"],["BAMBOO","bamboo_planKey"],["BITBUCKET","BITBUCKET_COMMIT"],["BITRISE","BITRISE_IO"],["BUDDY","BUDDY_WORKSPACE_ID"],["BUILDKITE"],["CIRCLE","CIRCLECI"],["CIRRUS","CIRRUS_CI"],["CLOUDFLARE_PAGES","CF_PAGES",{ci:!0}],["CODEBUILD","CODEBUILD_BUILD_ARN"],["CODEFRESH","CF_BUILD_ID"],["DRONE"],["DRONE","DRONE_BUILD_EVENT"],["DSARI"],["GITHUB_ACTIONS"],["GITLAB","GITLAB_CI"],["GITLAB","CI_MERGE_REQUEST_ID"],["GOCD","GO_PIPELINE_LABEL"],["LAYERCI"],["HUDSON","HUDSON_URL"],["JENKINS","JENKINS_URL"],["MAGNUM"],["NETLIFY"],["NETLIFY","NETLIFY_LOCAL",{ci:!1}],["NEVERCODE"],["RENDER"],["SAIL","SAILCI"],["SEMAPHORE"],["SCREWDRIVER"],["SHIPPABLE"],["SOLANO","TDDIUM"],["STRIDER"],["TEAMCITY","TEAMCITY_VERSION"],["TRAVIS"],["VERCEL","NOW_BUILDER"],["VERCEL","VERCEL",{ci:!1}],["VERCEL","VERCEL_ENV",{ci:!1}],["APPCENTER","APPCENTER_BUILD_ID"],["CODESANDBOX","CODESANDBOX_SSE",{ci:!1}],["CODESANDBOX","CODESANDBOX_HOST",{ci:!1}],["STACKBLITZ"],["STORMKIT"],["CLEAVR"],["ZEABUR"],["CODESPHERE","CODESPHERE_APP_ID",{ci:!0}],["RAILWAY","RAILWAY_PROJECT_ID"],["RAILWAY","RAILWAY_SERVICE_ID"],["DENO-DEPLOY","DENO_DEPLOYMENT_ID"],["FIREBASE_APP_HOSTING","FIREBASE_APP_HOSTING",{ci:!0}]],O=function(){if(globalThis.process?.env)for(let a of N){let b=a[1]||a[0];if(globalThis.process?.env[b])return{name:a[0].toLowerCase(),...a[2]}}return globalThis.process?.env?.SHELL==="/bin/jsh"&&globalThis.process?.versions?.webcontainer?{name:"stackblitz",ci:!1}:{name:"",ci:!1}}();function P(a){return!!a&&"false"!==a}O.name;let Q=globalThis.process?.platform||"",R=P(L.CI)||!1!==O.ci,S=P(globalThis.process?.stdout&&globalThis.process?.stdout.isTTY),T=P(L.DEBUG),U="test"===M||P(L.TEST);P(L.MINIMAL);let V=/^win/i.test(Q);!P(L.NO_COLOR)&&(P(L.FORCE_COLOR)||(S||V)&&L.TERM);let W=(globalThis.process?.versions?.node||"").replace(/^v/,"")||null;W?.split(".")[0];let X=globalThis.process||Object.create(null),Y={versions:{}};new Proxy(X,{get:(a,b)=>"env"===b?L:b in a?a[b]:b in Y?Y[b]:void 0});let Z=globalThis.process?.release?.name==="node",$=!!globalThis.Bun||!!globalThis.process?.versions?.bun,_=!!globalThis.Deno,aa=!!globalThis.fastly,ab=[[!!globalThis.Netlify,"netlify"],[!!globalThis.EdgeRuntime,"edge-light"],[globalThis.navigator?.userAgent==="Cloudflare-Workers","workerd"],[aa,"fastly"],[_,"deno"],[$,"bun"],[Z,"node"]],ac=function(){let a=ab.find(a=>a[0]);if(a)return{name:a[1]}}();ac?.name;let ad=function({onlyFirst:a=!1}={}){return RegExp("[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))|(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))",a?void 0:"g")}(),ae=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g,af=globalThis.Intl?.Segmenter?new Intl.Segmenter:{segment:a=>a.split("")},ag=/^\p{Default_Ignorable_Code_Point}$/u,ah={info:"cyan",fail:"red",success:"green",ready:"green",start:"magenta"},ai={0:"red",1:"yellow"},aj=function(){let{env:a}=p.default,{TERM:b,TERM_PROGRAM:c}=a;return"win32"!==p.default.platform?"linux"!==b:!!a.WT_SESSION||!!a.TERMINUS_SUBLIME||"{cmd::Cmder}"===a.ConEmuTask||"Terminus-Sublime"===c||"vscode"===c||"xterm-256color"===b||"alacritty"===b||"rxvt-unicode"===b||"rxvt-unicode-256color"===b||"JetBrains-JediTerm"===a.TERMINAL_EMULATOR}(),ak=(a,b)=>aj?a:b,al={error:ak("✖","×"),fatal:ak("✖","×"),ready:ak("✔","√"),warn:ak("⚠","‼"),info:ak("ℹ","i"),success:ak("✔","√"),debug:ak("⚙","D"),trace:ak("→","→"),fail:ak("✖","×"),start:ak("◐","o"),log:""};function am(a){return"object"==typeof Intl&&Intl.Segmenter?function(a,b={}){if("string"!=typeof a||0===a.length)return 0;let{ambiguousIsNarrow:c=!0,countAnsiEscapeCodes:d=!1}=b;if(d||(a=function(a){if("string"!=typeof a)throw TypeError(`Expected a \`string\`, got \`${typeof a}\``);return a.replace(ad,"")}(a)),0===a.length)return 0;let e=0,f={ambiguousAsWide:!c};for(let{segment:b}of af.segment(a)){let a=b.codePointAt(0);if(!(a<=31)&&(!(a>=127)||!(a<=159))&&(!(a>=8203)||!(a<=8207))&&65279!==a&&(!(a>=768)||!(a<=879))&&(!(a>=6832)||!(a<=6911))&&(!(a>=7616)||!(a<=7679))&&(!(a>=8400)||!(a<=8447))&&(!(a>=65056)||!(a<=65071))&&(!(a>=55296)||!(a<=57343))&&(!(a>=65024)||!(a<=65039))&&!ag.test(b)){if(ae().test(b)){e+=2;continue}e+=function(a,{ambiguousAsWide:b=!1}={}){var c;if(!Number.isSafeInteger(a))throw TypeError(`Expected a code point, got \`${typeof a}\`.`);return 12288===a||a>=65281&&a<=65376||a>=65504&&a<=65510||(c=a)>=4352&&c<=4447||8986===c||8987===c||9001===c||9002===c||c>=9193&&c<=9196||9200===c||9203===c||9725===c||9726===c||9748===c||9749===c||c>=9776&&c<=9783||c>=9800&&c<=9811||9855===c||c>=9866&&c<=9871||9875===c||9889===c||9898===c||9899===c||9917===c||9918===c||9924===c||9925===c||9934===c||9940===c||9962===c||9970===c||9971===c||9973===c||9978===c||9981===c||9989===c||9994===c||9995===c||10024===c||10060===c||10062===c||c>=10067&&c<=10069||10071===c||c>=10133&&c<=10135||10160===c||10175===c||11035===c||11036===c||11088===c||11093===c||c>=11904&&c<=11929||c>=11931&&c<=12019||c>=12032&&c<=12245||c>=12272&&c<=12287||c>=12289&&c<=12350||c>=12353&&c<=12438||c>=12441&&c<=12543||c>=12549&&c<=12591||c>=12593&&c<=12686||c>=12688&&c<=12773||c>=12783&&c<=12830||c>=12832&&c<=12871||c>=12880&&c<=42124||c>=42128&&c<=42182||c>=43360&&c<=43388||c>=44032&&c<=55203||c>=63744&&c<=64255||c>=65040&&c<=65049||c>=65072&&c<=65106||c>=65108&&c<=65126||c>=65128&&c<=65131||c>=94176&&c<=94180||94192===c||94193===c||c>=94208&&c<=100343||c>=100352&&c<=101589||c>=101631&&c<=101640||c>=110576&&c<=110579||c>=110581&&c<=110587||110589===c||110590===c||c>=110592&&c<=110882||110898===c||c>=110928&&c<=110930||110933===c||c>=110948&&c<=110951||c>=110960&&c<=111355||c>=119552&&c<=119638||c>=119648&&c<=119670||126980===c||127183===c||127374===c||c>=127377&&c<=127386||c>=127488&&c<=127490||c>=127504&&c<=127547||c>=127552&&c<=127560||127568===c||127569===c||c>=127584&&c<=127589||c>=127744&&c<=127776||c>=127789&&c<=127797||c>=127799&&c<=127868||c>=127870&&c<=127891||c>=127904&&c<=127946||c>=127951&&c<=127955||c>=127968&&c<=127984||127988===c||c>=127992&&c<=128062||128064===c||c>=128066&&c<=128252||c>=128255&&c<=128317||c>=128331&&c<=128334||c>=128336&&c<=128359||128378===c||128405===c||128406===c||128420===c||c>=128507&&c<=128591||c>=128640&&c<=128709||128716===c||c>=128720&&c<=128722||c>=128725&&c<=128727||c>=128732&&c<=128735||128747===c||128748===c||c>=128756&&c<=128764||c>=128992&&c<=129003||129008===c||c>=129292&&c<=129338||c>=129340&&c<=129349||c>=129351&&c<=129535||c>=129648&&c<=129660||c>=129664&&c<=129673||c>=129679&&c<=129734||c>=129742&&c<=129756||c>=129759&&c<=129769||c>=129776&&c<=129784||c>=131072&&c<=196605||c>=196608&&c<=262141||b&&(161===a||164===a||167===a||168===a||170===a||173===a||174===a||a>=176&&a<=180||a>=182&&a<=186||a>=188&&a<=191||198===a||208===a||215===a||216===a||a>=222&&a<=225||230===a||a>=232&&a<=234||236===a||237===a||240===a||242===a||243===a||a>=247&&a<=250||252===a||254===a||257===a||273===a||275===a||283===a||294===a||295===a||299===a||a>=305&&a<=307||312===a||a>=319&&a<=322||324===a||a>=328&&a<=331||333===a||338===a||339===a||358===a||359===a||363===a||462===a||464===a||466===a||468===a||470===a||472===a||474===a||476===a||593===a||609===a||708===a||711===a||a>=713&&a<=715||717===a||720===a||a>=728&&a<=731||733===a||735===a||a>=768&&a<=879||a>=913&&a<=929||a>=931&&a<=937||a>=945&&a<=961||a>=963&&a<=969||1025===a||a>=1040&&a<=1103||1105===a||8208===a||a>=8211&&a<=8214||8216===a||8217===a||8220===a||8221===a||a>=8224&&a<=8226||a>=8228&&a<=8231||8240===a||8242===a||8243===a||8245===a||8251===a||8254===a||8308===a||8319===a||a>=8321&&a<=8324||8364===a||8451===a||8453===a||8457===a||8467===a||8470===a||8481===a||8482===a||8486===a||8491===a||8531===a||8532===a||a>=8539&&a<=8542||a>=8544&&a<=8555||a>=8560&&a<=8569||8585===a||a>=8592&&a<=8601||8632===a||8633===a||8658===a||8660===a||8679===a||8704===a||8706===a||8707===a||8711===a||8712===a||8715===a||8719===a||8721===a||8725===a||8730===a||a>=8733&&a<=8736||8739===a||8741===a||a>=8743&&a<=8748||8750===a||a>=8756&&a<=8759||8764===a||8765===a||8776===a||8780===a||8786===a||8800===a||8801===a||a>=8804&&a<=8807||8810===a||8811===a||8814===a||8815===a||8834===a||8835===a||8838===a||8839===a||8853===a||8857===a||8869===a||8895===a||8978===a||a>=9312&&a<=9449||a>=9451&&a<=9547||a>=9552&&a<=9587||a>=9600&&a<=9615||a>=9618&&a<=9621||9632===a||9633===a||a>=9635&&a<=9641||9650===a||9651===a||9654===a||9655===a||9660===a||9661===a||9664===a||9665===a||a>=9670&&a<=9672||9675===a||a>=9678&&a<=9681||a>=9698&&a<=9701||9711===a||9733===a||9734===a||9737===a||9742===a||9743===a||9756===a||9758===a||9792===a||9794===a||9824===a||9825===a||a>=9827&&a<=9829||a>=9831&&a<=9834||9836===a||9837===a||9839===a||9886===a||9887===a||9919===a||a>=9926&&a<=9933||a>=9935&&a<=9939||a>=9941&&a<=9953||9955===a||9960===a||9961===a||a>=9963&&a<=9969||9972===a||a>=9974&&a<=9977||9979===a||9980===a||9982===a||9983===a||10045===a||a>=10102&&a<=10111||a>=11094&&a<=11097||a>=12872&&a<=12879||a>=57344&&a<=63743||a>=65024&&a<=65039||65533===a||a>=127232&&a<=127242||a>=127248&&a<=127277||a>=127280&&a<=127337||a>=127344&&a<=127373||127375===a||127376===a||a>=127387&&a<=127404||a>=917760&&a<=917999||a>=983040&&a<=1048573||a>=1048576&&a<=1114109)?2:1}(a,f)}}return e}(a):F(a).length}class an extends o{formatStack(a,b,c){let d=" ".repeat((c?.errorLevel||0)+1);return`
|
|
11
|
+
${d}`+m(a,b).map(a=>" "+a.replace(/^at +/,a=>C.gray(a)).replace(/\((.+)\)/,(a,b)=>`(${C.cyan(b)})`)).join(`
|
|
12
|
+
${d}`)}formatType(a,b,c){let d=ah[a.type]||ai[a.level]||"gray";if(b)return(function(a="bgWhite"){return C[`bg${a[0].toUpperCase()}${a.slice(1)}`]||C.bgWhite})(d)(C.black(` ${a.type.toUpperCase()} `));let e="string"==typeof al[a.type]?al[a.type]:a.icon||a.type;return e?(function(a="white"){return C[a]||C.white})(d)(e):""}formatLogObj(a,b){let c,[d,...e]=this.formatArgs(a.args,b).split("\n");if("box"===a.type)return function(a,b={}){let c={...b,style:{...H,...b.style}},d=a.split("\n"),e=[],f=D(c.style.borderColor),g={..."string"==typeof c.style.borderStyle?G[c.style.borderStyle]||G.solid:c.style.borderStyle};if(f)for(let a in g)g[a]=f(g[a]);let h=c.style.padding%2==0?c.style.padding:c.style.padding+1,i=d.length+h,j=Math.max(...d.map(a=>F(a).length),c.title?F(c.title).length:0)+h,k=j+h,l=c.style.marginLeft>0?" ".repeat(c.style.marginLeft):"";if(c.style.marginTop>0&&e.push("".repeat(c.style.marginTop)),c.title){let a=f?f(c.title):c.title,b=g.h.repeat(Math.floor((j-F(c.title).length)/2)),d=g.h.repeat(j-F(c.title).length-F(b).length+h);e.push(`${l}${g.tl}${b}${a}${d}${g.tr}`)}else e.push(`${l}${g.tl}${g.h.repeat(k)}${g.tr}`);let m="center"===c.style.valign?Math.floor((i-d.length)/2):"top"===c.style.valign?i-d.length-h:i-d.length;for(let a=0;a<i;a++)if(a<m||a>=m+d.length)e.push(`${l}${g.v}${" ".repeat(k)}${g.v}`);else{let b=d[a-m],c=" ".repeat(h),f=" ".repeat(j-F(b).length);e.push(`${l}${g.v}${c}${b}${f}${g.v}`)}return e.push(`${l}${g.bl}${g.h.repeat(k)}${g.br}`),c.style.marginBottom>0&&e.push("".repeat(c.style.marginBottom)),e.join("\n")}(ao(d+(e.length>0?"\n"+e.join("\n"):"")),{title:a.title?ao(a.title):void 0,style:a.style});let f=this.formatDate(a.date,b),g=f&&C.gray(f),h=a.badge??a.level<2,i=this.formatType(a,h,b),j=a.tag?C.gray(a.tag):"",k=this.filterAndJoin([i,ao(d)]),l=this.filterAndJoin(b.columns?[j,g]:[j]),m=(b.columns||0)-am(k)-am(l)-2;if(c=(m>0&&(b.columns||0)>=80?k+" ".repeat(m)+l:(l?`${C.gray(`[${l}]`)} `:"")+k)+ao(e.length>0?"\n"+e.join("\n"):""),"trace"===a.type){let b=Error("Trace: "+a.message);c+=this.formatStack(b.stack||"",b.message)}return h?"\n"+c+"\n":c}}function ao(a){return a.replace(/`([^`]+)`/gm,(a,b)=>C.cyan(b)).replace(/\s+_([^_]+)_\s+/gm,(a,b)=>` ${C.underline(b)} `)}function ap(b={}){let c=T?4:U?1:3;return process.env.CONSOLA_LEVEL&&(c=Number.parseInt(process.env.CONSOLA_LEVEL)??c),function(a={}){return new i(a)}({level:c,defaults:{level:c},stdout:process.stdout,stderr:process.stderr,prompt:(...b)=>a.A(715837).then(a=>a.prompt(...b)),reporters:b.reporters||[b.fancy??!(R||U)?new an:new o],...b})}ap();let aq=ap({level:d.IS_DEV?4:3}),ar=(b=d.APP_NAME,aq.withDefaults({message:(c=`${b}: `,D("blackBright")(c))}));var as=a.i(497895),at=a.i(249890);let au={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0},av=new TextEncoder;async function aw(a){let b=ax(a);try{return await b.connect(),b}catch(a){throw await b.close(),a}}let ax=({initialize:a,audio:b,on:c})=>{let e,f,g,h,i,j,k,l,m=!1,n=!1,o=!1,p=0,q=0,r="",s=[],t=new Set,u=new Set,v=new Set,w=new Map,x=!1,y=new Map,z=new Map,A=[],B=null,C=-1/0,D=()=>{for(let a of(clearTimeout(k),k=void 0,t))c.turn({...a.turn,fragments:[...a.fragments],done:!0});t.clear()},E=()=>{if(!o){for(let a of(o=!0,clearTimeout(i),clearTimeout(l),clearInterval(j),D(),B=null,A.splice(0)))a.settle(!1);M.close(),g?.()}},F=a=>{f?.(Error(a)),E(),m&&!n?c.failed(a):n&&c.warn(a)},G=-1/0,H=()=>{if(o||n)return;let a=performance.now(),d=b.levels?.();d&&d.output>.01&&(C=a);let e={speaking:a-C<300,working:[...w.values()].some(a=>!a.terminal)||z.size>0||a-G<5e3,tools:[...z.values()]},f=JSON.stringify(e);(f!==r||e.speaking||e.working)&&(r=f,c.activity(e))},I=()=>{if(!m||o||n||B||!A.length)return;let[a]=A;B=crypto.randomUUID(),M.send({type:`session.${a.kind}.append`,event_id:B,delegation_id:null,content:a.chunks[0]}),l=setTimeout(()=>{c.warn("Live did not acknowledge the conversation update; delivery is unknown."),J(!1)},d.LIVE_CALL.appendMs)},J=a=>{clearTimeout(l),B=null;let[b]=A;b&&(a&&b.chunks.shift(),a&&b.chunks.length||(A.shift(),b.settle(a)),I())},K=(a,b)=>{if(!a.delta||void 0===a.start_ms||void 0===a.end_ms)return;let e=a.start_ms,f=a.end_ms,g=s.findLast(a=>a.turn.role===b&&e>=a.turn.seq-d.LIVE_CALL.transcriptGapMs&&e<=a.end+d.LIVE_CALL.transcriptGapMs&&("user"===b||!s.some(b=>"user"===b.turn.role&&b.turn.seq>a.turn.seq&&b.turn.seq<e)));g||(g={turn:{id:`live-${q++}`,role:b,text:"",seq:e,done:!1},end:f,fragments:[]},s.push(g)),g.fragments.push({start:e,end:f,text:a.delta}),g.fragments.sort((a,b)=>a.start-b.start),g.end=Math.max(g.end,f),g.turn.text=g.fragments.map(a=>a.text).join(""),c.turn({...g.turn,done:!1}),t.add(g),k??=setTimeout(D,d.LIVE_CALL.transcriptSaveMs)},L=async a=>{a.terminal&&!a.continued&&a.calls.size&&(a.continued=!0,await Promise.all(a.calls.values()),n||o||(G=performance.now(),M.send({type:"response.create",event_id:crypto.randomUUID()})),H())},M=function({negotiate:a,audio:b,on:c}){let d,e,f=null,g=null,h=null,i=!1,j=!1,k=!1,l=a=>{for(let b of a?.getTracks()??[])b.stop()};return{async connect(){let m=new RTCPeerConnection;f=m;let n=m.createDataChannel("oai-events");g=n;let o=new Promise((a,b)=>{d=b;let e=a=>{i||k||(k=!0,j?c.dropped(a):b(Error(a)))};n.onopen=()=>{j=!0,a()},n.onclose=()=>e("The connection to OpenAI Live closed."),n.onerror=()=>e("The connection to OpenAI Live dropped."),m.onconnectionstatechange=()=>{["failed","closed"].includes(m.connectionState)&&e("Could not reach OpenAI Live.")}});o.catch(()=>{}),n.onmessage=({data:a})=>{let b;if(!i&&"string"==typeof a){try{b=JSON.parse(a)}catch{c.dropped("OpenAI Live sent an unreadable event.");return}c.event(b)}},m.ontrack=a=>{if(i)return;let c=a.streams[0]??new MediaStream([a.track]);b.element.srcObject=c,b.listen(c)};let p=await navigator.mediaDevices.getUserMedia({audio:au});if(i)throw l(p),Error("The call closed before connecting.");for(let a of(h=p,b.hear?.(p),p.getAudioTracks()))m.addTrack(a,p);await m.setLocalDescription(await m.createOffer()),"complete"!==m.iceGatheringState&&await new Promise((a,b)=>{let c=c=>{clearTimeout(f),m.removeEventListener("icegatheringstatechange",d),e=void 0,c?b(c):a()},d=()=>{"complete"===m.iceGatheringState&&c()},f=setTimeout(()=>c(Error("ICE gathering timed out.")),1e4);e=()=>c(Error("The call closed before connecting.")),m.addEventListener("icegatheringstatechange",d),d()});let q=m.localDescription?.sdp;if(!q||i)throw Error("No live SDP offer is available.");let r=await a(q);if(i)throw Error("The call closed before connecting.");await m.setRemoteDescription({type:"answer",sdp:r}),await o},send(a){i||g?.readyState!=="open"||g.send(JSON.stringify(a))},close:()=>{i||(i=!0,d?.(Error("The call closed before connecting.")),e?.(),l(h),h=null,g?.close(),f?.close(),b.element.srcObject=null)}}}({audio:b,negotiate:async b=>{let c=await a(b);if(!c)throw Error("OpenAI Live returned no SDP answer.");return c},on:{event:a=>{if(!o){if(a.event_id){if(u.has(a.event_id))return;u.add(a.event_id)}switch(p=Math.max(p,a.offset_ms??0,a.end_ms??0),a.type){case"session.started":m=!0,e?.(),I();break;case"session.closed":c.finalized?.({reason:a.reason??"closed",seconds:a.usage?.seconds??null}),ar.info("Live session closed",{reason:a.reason,seconds:a.usage?.seconds}),f?.(Error("OpenAI Live closed before startup completed.")),E(),n||c.failed(`The Live call ended (${a.reason??"closed"}).`);break;case"session.input_transcript.delta":K(a,"user");break;case"session.output_transcript.delta":K(a,"assistant");break;case"session.instructions.appended":case"session.commentary.appended":case"session.thinking.appended":B&&a.client_event_id===B&&J(!0);break;case"error":{let b=a.error?.message??"OpenAI Live reported an error.";if(!m){F(b);break}c.warn(b),B&&a.error?.client_event_id===B&&J(!1);break}case"response.event":{let b=a.event;if(!b||n)break;"response.created"===b.type&&(G=-1/0),"response.created"===b.type&&b.response&&a.delegation_id&&y.set(a.delegation_id,b.response.id);let d=b.response?.id??b.response_id??(a.delegation_id?y.get(a.delegation_id):void 0);if(!d)break;let e=w.get(d);if(e||(e={calls:new Map,terminal:!1,continued:!1},w.set(d,e)),"response.reasoning_summary_text.done"===b.type&&c.reasoning?.({id:`${b.item_id}:${b.summary_index??0}`,text:b.text??"",seq:p}),("response.output_item.added"===b.type||"response.output_item.done"===b.type)&&b.item?.type===at.LIVE_HOSTED_TOOLS.webSearch.item){let a=b.item,e="response.output_item.done"===b.type;e&&ar.debug("Live web search",a),c.search?.({id:a.id,responseId:d,query:(a.action?.query??a.action?.queries?.join(" · "))?.trim()||null,sources:[...new Set((a.action?.sources??[]).flatMap(a=>a.url?[a.url]:[]))].map(a=>({url:a})),done:e,seq:p})}if("response.output_item.done"===b.type&&b.item?.type==="message"){let a=function(a){let b=new Map;for(let c of a??[])for(let a of c.annotations??[])"url_citation"===a.type&&a.url&&!b.has(a.url)&&b.set(a.url,{url:a.url,...a.title?{title:a.title}:{}});return[...b.values()]}(b.item.content);a.length&&c.cited?.(d,a)}if("response.output_item.done"===b.type&&b.item?.type==="function_call"){let a=b.item;if(v.has(a.call_id))break;if(v.add(a.call_id),"incomplete"===a.status){e.terminal=!0,ar.warn("Live backend call cut off; not run",{responseId:d,name:a.name,arguments:a.arguments.slice(0,200)}),e.calls.size&&!x?(x=!0,L(e)):e.continued=!0;break}c.turn({id:a.id,role:"tool",tool:a.name,text:a.arguments,seq:p,done:!0}),D(),z.set(a.call_id,a.name);let f=Promise.resolve().then(()=>c.runTool({id:a.call_id,name:a.name,arguments:a.arguments,item:a.id})).catch(a=>`Error: ${(0,as.errorToString)(a)}`).then(b=>{z.delete(a.call_id),o||n||M.send({type:"response.item.create",event_id:crypto.randomUUID(),item:{type:"function_call_output",call_id:a.call_id,output:b}}),H()});e.calls.set(a.call_id,f),L(e)}["response.completed","response.failed","response.incomplete","response.cancelled"].includes(b.type)&&(e.terminal=!0,"response.completed"===b.type?(x=!1,ar.debug("Live backend usage",{responseId:d,usage:b.response?.usage}),L(e)):"response.incomplete"===b.type&&e.calls.size&&!x?(x=!0,ar.warn("Live backend response incomplete; continuing once",{responseId:d}),L(e)):(x=!1,e.continued=!0,c.warn(b.response?.error?.message??`The Live backend ${b.type.slice(9)}.`)))}}H()}},dropped:F}});return{async connect(){b.element.muted=!1;let a=new Promise((a,b)=>{e=a,f=b});a.catch(()=>{});let c=setTimeout(()=>F("OpenAI Live did not start in time."),d.LIVE_CALL.startupMs);try{if(await Promise.all([M.connect(),a]),o)throw Error("The Live call closed during startup.");j=setInterval(H,100)}catch(a){throw E(),a}finally{clearTimeout(c),f=void 0}},close:()=>h||(o?Promise.resolve():(n=!0,D(),m)?(h=new Promise(a=>{g=a}),i=setTimeout(()=>{c.warn("Live disconnected without confirming final session usage."),E()},d.LIVE_CALL.closeMs),b.element.muted=!0,M.send({type:"session.close",event_id:crypto.randomUUID()}),h):(E(),Promise.resolve())),append(a,b){let c=function(a){let b=[],c="",d=0,e=a=>{let e=av.encode(a).length;if(d+e>480&&c&&(b.push(c),c="",d=0),e<=480){c+=a,d+=e;return}for(let e of a){let a=av.encode(e).length;d+a>480&&(b.push(c),c="",d=0),c+=e,d+=a}};for(let b of a.split(/(?<=\s)/))e(b);return c&&b.push(c),b}(b);return o||n||!c.length?Promise.resolve(!1):new Promise(b=>{A.push({kind:a,chunks:c,settle:b}),I()})},brief(a){let b=a.trim();o||n||!b||M.send({type:"response.item.create",event_id:crypto.randomUUID(),item:{type:"message",role:"developer",content:[{type:"input_text",text:b}]}})}}};a.s(["openLiveSession",0,aw],946454)},670479,a=>{"use strict";a.s(["createOutbox",0,function(){let a=[],b=null;return{send(c){b?b(c):a.push(c)},open(c){b=c;let d=a;for(let b of(a=[],d))c(b)},close(){b=null},clear(){let b=a;return a=[],b}}}])},20984,a=>{"use strict";var b=a.i(42724),c=a.i(934754),d=a.i(57270);a.s(["isThisYear",0,function(a,e){return function(a,b){let[c,e]=(0,d.normalizeDates)(void 0,a,b);return c.getFullYear()===e.getFullYear()}((0,b.constructFrom)(e?.in||a,a),(0,c.constructNow)(e?.in||a))}],20984)},818783,a=>{"use strict";var b=a.i(164831);let c={name:"arrow-right",size:24,node:[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]};c.node;let d=(0,b.default)(c);a.s(["ArrowRight",0,d],818783)},113608,a=>{"use strict";var b=a.i(164831);let c={name:"chevron-up",size:24,node:[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]};c.node;let d=(0,b.default)(c);a.s(["ChevronUp",0,d],113608)},925039,a=>{"use strict";var b=a.i(164831);let c={name:"flag",size:24,node:[["path",{d:"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",key:"1jaruq"}]]};c.node;let d=(0,b.default)(c);a.s(["Flag",0,d],925039)},167594,a=>{"use strict";var b=a.i(164831);let c={name:"circle-pause",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"10",x2:"10",y1:"15",y2:"9",key:"c1nkhi"}],["line",{x1:"14",x2:"14",y1:"15",y2:"9",key:"h65svq"}]],aliases:["pause-circle"]};c.node;let d=(0,b.default)(c);a.s(["CirclePause",0,d],167594)},20917,a=>{"use strict";var b=a.i(164831);let c={name:"mic-off",size:24,node:[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M15 9.34V5a3 3 0 0 0-5.68-1.33",key:"1gzdoj"}],["path",{d:"M16.95 16.95A7 7 0 0 1 5 12v-2",key:"cqa7eg"}],["path",{d:"M18.89 13.23A7 7 0 0 0 19 12v-2",key:"16hl24"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v3a3 3 0 0 0 5.12 2.12",key:"r2i35w"}]]};c.node;let d=(0,b.default)(c);a.s(["MicOff",0,d],20917)},127748,a=>{"use strict";var b=a.i(164831);let c={name:"phone-missed",size:24,node:[["path",{d:"m16 2 6 6",key:"1gw87d"}],["path",{d:"m22 2-6 6",key:"6f0sa0"}],["path",{d:"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",key:"9njp5v"}]]};c.node;let d=(0,b.default)(c);a.s(["PhoneMissed",0,d],127748)},639466,a=>{"use strict";var b=a.i(164831);let c={name:"settings-2",size:24,node:[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]};c.node;let d=(0,b.default)(c);a.s(["Settings2",0,d],639466)},540990,a=>{"use strict";var b=a.i(164831);let c={name:"mic",size:24,node:[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3",key:"s6n7sd"}]]};c.node;let d=(0,b.default)(c);a.s(["Mic",0,d],540990)},402276,a=>{"use strict";var b=a.i(164831);let c={name:"volume-2",size:24,node:[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]]};c.node;let d=(0,b.default)(c);a.s(["Volume2",0,d],402276)},564322,a=>{"use strict";var b=a.i(164831);let c={name:"volume-x",size:24,node:[["path",{d:"M11 4.702a.7.7 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.7.7 0 0 0 11 19.298z",key:"1p7khw"}],["path",{d:"m16.5 14.5 5-5",key:"cul3yw"}],["path",{d:"m16.5 9.5 5 5",key:"1akey5"}]]};c.node;let d=(0,b.default)(c);a.s(["VolumeX",0,d],564322)},222099,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={getRedirectError:function(){return i},getRedirectStatusCodeFromError:function(){return n},getRedirectTypeFromError:function(){return m},getURLFromRedirectError:function(){return l},permanentRedirect:function(){return k},redirect:function(){return j}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(615128),g=a.r(111026),h=a.r(869789);function i(a,b,c=f.RedirectStatusCode.TemporaryRedirect){let d=Object.defineProperty(Error(g.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return d.digest=`${g.REDIRECT_ERROR_CODE};${b};${a};${c};`,d}function j(a,b){throw i(a,b??=h.actionAsyncStorage?.getStore()?.isAction?"push":"replace",f.RedirectStatusCode.TemporaryRedirect)}function k(a,b="replace"){throw i(a,b,f.RedirectStatusCode.PermanentRedirect)}function l(a){return(0,g.isRedirectError)(a)?a.digest.split(";").slice(2,-2).join(";"):null}function m(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return a.digest.split(";",2)[1]}function n(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(a.digest.split(";").at(-2))}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},8535,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={HTTPAccessErrorStatus:function(){return f},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return h},getAccessFallbackErrorTypeByStatus:function(){return k},getAccessFallbackHTTPStatus:function(){return j},isHTTPAccessFallbackError:function(){return i}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},g=new Set(Object.values(f)),h="NEXT_HTTP_ERROR_FALLBACK";function i(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let[b,c]=a.digest.split(";");return b===h&&g.has(Number(c))}function j(a){return Number(a.digest.split(";")[1])}function k(a){switch(a){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},228102,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"notFound",{enumerable:!0,get:function(){return f}});let d=a.r(8535),e=`${d.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function f(){let a=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E1041",enumerable:!1,configurable:!0});throw a.digest=e,a}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},364177,(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"forbidden",{enumerable:!0,get:function(){return d}}),a.r(8535).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},688213,(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unauthorized",{enumerable:!0,get:function(){return d}}),a.r(8535).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},731101,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isPostpone",{enumerable:!0,get:function(){return e}});let d=Symbol.for("react.postpone");function e(a){return"object"==typeof a&&null!==a&&a.$$typeof===d}},477747,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isNextRouterError",{enumerable:!0,get:function(){return f}});let d=a.r(8535),e=a.r(111026);function f(a){return(0,e.isRedirectError)(a)||(0,d.isHTTPAccessFallbackError)(a)}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},247083,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b)||(0,h.isPrerenderInterruptedError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=a.r(935710),e=a.r(731101),f=a.r(441997),g=a.r(477747),h=a.r(154110),i=a.r(903326);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},521066,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ReadonlyURLSearchParams:function(){return f.ReadonlyURLSearchParams},RedirectType:function(){return m},forbidden:function(){return i.forbidden},notFound:function(){return h.notFound},permanentRedirect:function(){return g.permanentRedirect},redirect:function(){return g.redirect},unauthorized:function(){return j.unauthorized},unstable_isUnrecognizedActionError:function(){return l},unstable_rethrow:function(){return k.unstable_rethrow}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(475718),g=a.r(222099),h=a.r(228102),i=a.r(364177),j=a.r(688213),k=a.r(247083);function l(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}let m={push:"push",replace:"replace"};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},874137,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ReadonlyURLSearchParams:function(){return h.ReadonlyURLSearchParams},RedirectType:function(){return m.RedirectType},ServerInsertedHTMLContext:function(){return k.ServerInsertedHTMLContext},forbidden:function(){return m.forbidden},notFound:function(){return m.notFound},permanentRedirect:function(){return m.permanentRedirect},redirect:function(){return m.redirect},unauthorized:function(){return m.unauthorized},unstable_isUnrecognizedActionError:function(){return l.unstable_isUnrecognizedActionError},unstable_rethrow:function(){return m.unstable_rethrow},useParams:function(){return t},usePathname:function(){return r},useRouter:function(){return s},useSearchParams:function(){return q},useSelectedLayoutSegment:function(){return v},useSelectedLayoutSegments:function(){return u},useServerInsertedHTML:function(){return k.useServerInsertedHTML}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(346058)._(a.r(572131)),g=a.r(909270),h=a.r(736313),i=a.r(739118),j=a.r(549842),k=a.r(818341),l=a.r(857997),m=a.r(521066),{instrumentParamsForClientValidation:n,instrumentSearchParamsForClientValidation:o,expectCompleteParamsInClientValidation:p}={};function q(){j.useDynamicSearchParams?.("useSearchParams()");let a=(0,f.useContext)(h.SearchParamsContext);return(0,f.useMemo)(()=>a?new h.ReadonlyURLSearchParams(a):null,[a])}function r(){return j.useDynamicRouteParams?.("usePathname()"),(0,f.useContext)(h.PathnameContext)}function s(){let a=(0,f.useContext)(g.AppRouterContext);if(null===a)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});let b=(0,f.useContext)(g.LayoutRouterContext),c=b?.parentCacheNode.bfcacheId??0;return(0,f.useMemo)(()=>({back:a.back,forward:a.forward,refresh:a.refresh,hmrRefresh:a.hmrRefresh,push:a.push,replace:a.replace,prefetch:a.prefetch,experimental_gesturePush:a.experimental_gesturePush,bfcacheId:"_b_"+c+"_"}),[a,c])}function t(){return j.useDynamicRouteParams?.("useParams()"),(0,f.useContext)(h.PathParamsContext)}function u(a="children"){j.useDynamicRouteParams?.("useSelectedLayoutSegments()");let b=(0,f.useContext)(g.LayoutRouterContext);return b?(0,i.getSelectedLayoutSegmentPath)(b.parentTree,a):null}function v(a="children"){j.useDynamicRouteParams?.("useSelectedLayoutSegment()"),(0,f.useContext)(h.NavigationPromisesContext);let b=u(a);return(0,i.computeSelectedLayoutSegment)(b,a)}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},50944,(a,b,c)=>{b.exports=a.r(874137)},857997,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={UnrecognizedActionError:function(){return f},unstable_isUnrecognizedActionError:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});class f extends Error{constructor(...a){super(...a),this.name="UnrecognizedActionError"}}function g(a){return!!(a&&"object"==typeof a&&a instanceof f)}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},475718,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return e}});class d extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams"),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1174",enumerable:!1,configurable:!0})}}class e extends URLSearchParams{append(){throw new d}delete(){throw new d}set(){throw new d}sort(){throw new d}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},615128,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"RedirectStatusCode",{enumerable:!0,get:function(){return e}});var d,e=((d={})[d.SeeOther=303]="SeeOther",d[d.TemporaryRedirect=307]="TemporaryRedirect",d[d.PermanentRedirect=308]="PermanentRedirect",d);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},111026,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={REDIRECT_ERROR_CODE:function(){return g},isRedirectError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(615128),g="NEXT_REDIRECT";function h(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let b=a.digest.split(";"),[c,d]=b,e=b.slice(2,-2).join(";"),h=Number(b.at(-2));return c===g&&("replace"===d||"push"===d)&&"string"==typeof e&&!isNaN(h)&&h in f.RedirectStatusCode}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},308117,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={createDynamicBodyError:function(){return g},createDynamicBodyErrorInNavigation:function(){return j},createDynamicMetadataError:function(){return n},createDynamicOrRuntimeBodyError:function(){return k},createDynamicOrRuntimeMetadataError:function(){return s},createDynamicOrRuntimeViewportError:function(){return r},createDynamicViewportError:function(){return q},createLinkBodyErrorInNavigation:function(){return i},createLinkMetadataError:function(){return l},createLinkViewportError:function(){return o},createRuntimeBodyError:function(){return f},createRuntimeBodyErrorInNavigation:function(){return h},createRuntimeMetadataError:function(){return m},createRuntimeViewportError:function(){return p},logBuildDebugHint:function(){return t}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a){return Object.defineProperty(Error(`Route "${a}": Next.js encountered runtime data during prerendering.
|
|
13
|
+
|
|
14
|
+
\`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` accessed outside of \`<Suspense>\` prevents the route from being prerendered, blocking the page load and leading to a slower user experience.
|
|
15
|
+
|
|
16
|
+
Ways to fix this:
|
|
17
|
+
- [stream] Provide a placeholder with \`<Suspense fallback={...}>\` around the data access
|
|
18
|
+
- [block] Set \`export const instant = false\` to allow a blocking route
|
|
19
|
+
|
|
20
|
+
Learn more: https://nextjs.org/docs/messages/blocking-prerender-runtime`),"__NEXT_ERROR_CODE",{value:"E1427",enumerable:!1,configurable:!0})}function g(a){return Object.defineProperty(Error(`Route "${a}": Next.js encountered uncached data during prerendering.
|
|
21
|
+
|
|
22
|
+
\`fetch(...)\` or \`connection()\` accessed outside of \`<Suspense>\` prevents the route from being prerendered, blocking the page load and leading to a slower user experience.
|
|
23
|
+
|
|
24
|
+
Ways to fix this:
|
|
25
|
+
- [stream] Provide a placeholder with \`<Suspense fallback={...}>\` around the data access
|
|
26
|
+
- [cache] Cache the data access with \`"use cache"\` (does not apply to \`connection()\`)
|
|
27
|
+
- [block] Set \`export const instant = false\` to allow a blocking route
|
|
28
|
+
|
|
29
|
+
Learn more: https://nextjs.org/docs/messages/blocking-prerender-dynamic`),"__NEXT_ERROR_CODE",{value:"E1440",enumerable:!1,configurable:!0})}function h(a){return Object.defineProperty(Error(`Route "${a}": Next.js encountered runtime data during prerendering or a navigation.
|
|
30
|
+
|
|
31
|
+
\`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` accessed outside of \`<Suspense>\` prevents the route from being prerendered or the navigation from being instant, leading to a slower user experience.
|
|
32
|
+
|
|
33
|
+
Ways to fix this:
|
|
34
|
+
- [stream] Provide a placeholder with \`<Suspense fallback={...}>\` around the data access
|
|
35
|
+
- [block] Set \`export const instant = false\` to allow a blocking route
|
|
36
|
+
|
|
37
|
+
Learn more: https://nextjs.org/docs/messages/blocking-prerender-runtime`),"__NEXT_ERROR_CODE",{value:"E1430",enumerable:!1,configurable:!0})}function i(a){return Object.defineProperty(Error(`Route "${a}": Next.js encountered URL data during prerendering or a navigation.
|
|
38
|
+
|
|
39
|
+
\`params\` or \`searchParams\` accessed outside of \`<Suspense>\` may prevent the navigation from being instant, leading to a slower user experience.
|
|
40
|
+
|
|
41
|
+
Ways to fix this:
|
|
42
|
+
- [stream] Provide a placeholder with \`<Suspense fallback={...}>\` around the data access
|
|
43
|
+
- [block] Set \`export const instant = false\` to allow a blocking route
|
|
44
|
+
|
|
45
|
+
Learn more: https://nextjs.org/docs/messages/instant-shell-url-data`),"__NEXT_ERROR_CODE",{value:"E1439",enumerable:!1,configurable:!0})}function j(a){return Object.defineProperty(Error(`Route "${a}": Next.js encountered uncached data during prerendering or a navigation.
|
|
46
|
+
|
|
47
|
+
\`fetch(...)\` or \`connection()\` accessed outside of \`<Suspense>\` prevents the route from being prerendered or the navigation from being instant, leading to a slower user experience.
|
|
48
|
+
|
|
49
|
+
Ways to fix this:
|
|
50
|
+
- [stream] Provide a placeholder with \`<Suspense fallback={...}>\` around the data access
|
|
51
|
+
- [cache] Cache the data access with \`"use cache"\` (does not apply to \`connection()\`)
|
|
52
|
+
- [block] Set \`export const instant = false\` to allow a blocking route
|
|
53
|
+
|
|
54
|
+
Learn more: https://nextjs.org/docs/messages/blocking-prerender-dynamic`),"__NEXT_ERROR_CODE",{value:"E1437",enumerable:!1,configurable:!0})}function k(a){return Object.defineProperty(Error(`Route "${a}": Next.js encountered uncached or runtime data during prerendering.
|
|
55
|
+
|
|
56
|
+
\`fetch(...)\`, \`cookies()\`, \`headers()\`, \`params\`, \`searchParams\`, or \`connection()\` accessed outside of \`<Suspense>\` prevents the route from being prerendered, blocking the page load and leading to a slower user experience.
|
|
57
|
+
|
|
58
|
+
Ways to fix this:
|
|
59
|
+
- [stream] Provide a placeholder with \`<Suspense fallback={...}>\` around the data access
|
|
60
|
+
- [cache] For uncached data (\`fetch\`, database calls): cache the access with \`"use cache"\` (does not apply to \`connection()\`)
|
|
61
|
+
- [block] Set \`export const instant = false\` to allow a blocking route
|
|
62
|
+
|
|
63
|
+
Learn more: https://nextjs.org/docs/messages/blocking-prerender-dynamic`),"__NEXT_ERROR_CODE",{value:"E1428",enumerable:!1,configurable:!0})}function l(a){return Object.defineProperty(Error(`Route "${a}": Next.js encountered URL data in \`generateMetadata()\`.
|
|
64
|
+
|
|
65
|
+
This route's metadata is blocked, but the rest of its content can be prefetched. \`params\` or \`searchParams\` accessed in \`generateMetadata()\` prevent it from being prefetched.
|
|
66
|
+
|
|
67
|
+
Ways to fix this:
|
|
68
|
+
- [static] Use a static metadata export instead of \`generateMetadata()\`
|
|
69
|
+
- [dynamic] Render a marker component that calls \`await connection()\` inside \`<Suspense>\` on the page
|
|
70
|
+
|
|
71
|
+
Learn more: https://nextjs.org/docs/messages/blocking-prerender-metadata-runtime`),"__NEXT_ERROR_CODE",{value:"E1429",enumerable:!1,configurable:!0})}function m(a){return Object.defineProperty(Error(`Route "${a}": Next.js encountered runtime data in \`generateMetadata()\`.
|
|
72
|
+
|
|
73
|
+
This route's metadata is blocked, but the rest of its content can be prerendered. \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` accessed in \`generateMetadata()\` cause it to run dynamically.
|
|
74
|
+
|
|
75
|
+
Ways to fix this:
|
|
76
|
+
- [static] Use a static metadata export instead of \`generateMetadata()\`
|
|
77
|
+
- [dynamic] Render a marker component that calls \`await connection()\` inside \`<Suspense>\` on the page
|
|
78
|
+
|
|
79
|
+
Learn more: https://nextjs.org/docs/messages/blocking-prerender-metadata-runtime`),"__NEXT_ERROR_CODE",{value:"E1423",enumerable:!1,configurable:!0})}function n(a){return Object.defineProperty(Error(`Route "${a}": Next.js encountered uncached data in \`generateMetadata()\`.
|
|
80
|
+
|
|
81
|
+
This route's metadata is blocked, but the rest of its content can be prerendered. \`fetch(...)\` or \`connection()\` accessed in \`generateMetadata()\` cause it to run dynamically.
|
|
82
|
+
|
|
83
|
+
Ways to fix this:
|
|
84
|
+
- [cache] Cache the metadata with \`"use cache"\` in \`generateMetadata()\` (does not apply to \`connection()\`)
|
|
85
|
+
- [dynamic] Render a marker component that calls \`await connection()\` inside \`<Suspense>\` on the page
|
|
86
|
+
|
|
87
|
+
Learn more: https://nextjs.org/docs/messages/blocking-prerender-metadata-dynamic`),"__NEXT_ERROR_CODE",{value:"E1425",enumerable:!1,configurable:!0})}function o(a){return Object.defineProperty(Error(`Route "${a}": Next.js encountered URL data in \`generateViewport()\`.
|
|
88
|
+
|
|
89
|
+
\`params\` or \`searchParams\` in \`generateViewport()\` prevents the page from being prerendered, leading to a slower user experience.
|
|
90
|
+
|
|
91
|
+
Ways to fix this:
|
|
92
|
+
- [static] Use a static viewport export instead of \`generateViewport()\`
|
|
93
|
+
- [block] Set \`export const instant = false\` to allow a blocking route
|
|
94
|
+
|
|
95
|
+
Learn more: https://nextjs.org/docs/messages/blocking-prerender-viewport-runtime`),"__NEXT_ERROR_CODE",{value:"E1431",enumerable:!1,configurable:!0})}function p(a){return Object.defineProperty(Error(`Route "${a}": Next.js encountered runtime data in \`generateViewport()\`.
|
|
96
|
+
|
|
97
|
+
\`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` in \`generateViewport()\` prevents the page from being prerendered, leading to a slower user experience.
|
|
98
|
+
|
|
99
|
+
Ways to fix this:
|
|
100
|
+
- [static] Use a static viewport export instead of \`generateViewport()\`
|
|
101
|
+
- [block] Set \`export const instant = false\` to allow a blocking route
|
|
102
|
+
|
|
103
|
+
Learn more: https://nextjs.org/docs/messages/blocking-prerender-viewport-runtime`),"__NEXT_ERROR_CODE",{value:"E1424",enumerable:!1,configurable:!0})}function q(a){return Object.defineProperty(Error(`Route "${a}": Next.js encountered uncached data in \`generateViewport()\`.
|
|
104
|
+
|
|
105
|
+
\`fetch(...)\` or \`connection()\` in \`generateViewport()\` prevents the page from being prerendered, leading to a slower user experience.
|
|
106
|
+
|
|
107
|
+
Ways to fix this:
|
|
108
|
+
- [cache] Cache the viewport data with \`"use cache"\` in \`generateViewport()\` (does not apply to \`connection()\`)
|
|
109
|
+
- [block] Set \`export const instant = false\` to allow a blocking route
|
|
110
|
+
|
|
111
|
+
Learn more: https://nextjs.org/docs/messages/blocking-prerender-viewport-dynamic`),"__NEXT_ERROR_CODE",{value:"E1438",enumerable:!1,configurable:!0})}function r(a){return Object.defineProperty(Error(`Route "${a}": Next.js encountered uncached or runtime data in \`generateViewport()\`.
|
|
112
|
+
|
|
113
|
+
This prevents the page from being prerendered, leading to a slower user experience. Unlike metadata, viewport cannot be streamed behind \`<Suspense>\` because it affects the initial page load.
|
|
114
|
+
|
|
115
|
+
Ways to fix this:
|
|
116
|
+
- [static] Use a static viewport export instead of \`generateViewport()\`
|
|
117
|
+
- [cache] For uncached data (\`fetch\`, database calls): cache the viewport with \`"use cache"\` in \`generateViewport()\` (does not apply to \`connection()\`)
|
|
118
|
+
- [block] Set \`export const instant = false\` to allow a blocking route
|
|
119
|
+
|
|
120
|
+
Learn more: https://nextjs.org/docs/messages/blocking-prerender-viewport-runtime`),"__NEXT_ERROR_CODE",{value:"E1436",enumerable:!1,configurable:!0})}function s(a){return Object.defineProperty(Error(`Route "${a}": Next.js encountered uncached or runtime data in \`generateMetadata()\`.
|
|
121
|
+
|
|
122
|
+
This route's metadata is blocked, but the rest of its content can be prerendered.
|
|
123
|
+
|
|
124
|
+
Ways to fix this:
|
|
125
|
+
- [static] Use a static metadata export instead of \`generateMetadata()\`
|
|
126
|
+
- [cache] Cache the metadata with \`"use cache"\` in \`generateMetadata()\` (does not apply to \`connection()\`)
|
|
127
|
+
- [dynamic] Render a marker component that calls \`await connection()\` inside \`<Suspense>\` on the page
|
|
128
|
+
|
|
129
|
+
Learn more: https://nextjs.org/docs/messages/blocking-prerender-metadata-runtime`),"__NEXT_ERROR_CODE",{value:"E1426",enumerable:!1,configurable:!0})}function t(a){console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:
|
|
130
|
+
- Start the app in development mode by running \`next dev\`, then open "${a}" in your browser to investigate the error.
|
|
131
|
+
- Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`)}},521177,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={INSTANT_SLOT_MARKER_PREFIX:function(){return g},INSTANT_SLOT_MARKER_SUFFIX:function(){return h},INSTANT_VALIDATION_BOUNDARY_NAME:function(){return f}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="__next_instant_validation_boundary__",g="__next_instant_slot_",h="__"},183521,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={allRequiredBoundariesRendered:function(){return g},createValidationBoundaryTracking:function(){return f}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(){return{requiredIds:new Map,renderedIds:new Set}}function g(a){for(let b of a.requiredIds.keys())if(!a.renderedIds.has(b))return!1;return!0}},314827,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={createLinkPrefetchPartialError:function(){return g},createUnrenderedSegmentError:function(){return f}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a,b){let c=`Route "${a}": Could not validate that a segment in your UI has instant navigation.`;if(b.length>0){let a=1===b.length?"Dropped segment":"Dropped segments";c+=`
|
|
132
|
+
|
|
133
|
+
This segment was dropped from rendering. Issues that would prevent instant navigation will go undetected.
|
|
134
|
+
|
|
135
|
+
${a}:
|
|
136
|
+
${b.map(a=>` ${a}`).join("\n")}
|
|
137
|
+
|
|
138
|
+
Ways to fix this:
|
|
139
|
+
- [render] Render the dropped segment
|
|
140
|
+
- [ignore] Set \`export const instant = false\` to opt the dropped segment out of instant-navigation validation
|
|
141
|
+
|
|
142
|
+
Learn more: https://nextjs.org/docs/messages/instant-unrendered-segment`}return Object.defineProperty(Error(c),"__NEXT_ERROR_CODE",{value:"E1286",enumerable:!1,configurable:!0})}function g(a){return Object.defineProperty(Error(`Next.js encountered dynamic data during prefetching for "${a}".
|
|
143
|
+
|
|
144
|
+
This will lead to slower, more expensive prefetches.
|
|
145
|
+
|
|
146
|
+
Ways to fix this:
|
|
147
|
+
- [upgrade] Opt into Partial Prefetching by exporting \`const prefetch = 'partial'\` from the page or layout, or by setting \`partialPrefetching: true\` in next.config to opt the whole app in
|
|
148
|
+
- [disable] Remove \`prefetch={true}\` from the <Link> to use the default prefetch
|
|
149
|
+
- [ignore] Set \`export const instant = false\` to opt the route out of instant-navigation validation
|
|
150
|
+
|
|
151
|
+
Learn more: https://nextjs.org/docs/messages/instant-link-prefetch-partial`),"__NEXT_ERROR_CODE",{value:"E1435",enumerable:!1,configurable:!0})}},154110,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d,e,f,g={DynamicHoleKind:function(){return af},Postpone:function(){return H},PreludeState:function(){return am},abortAndThrowOnSynchronousRequestDataAccess:function(){return G},abortOnSynchronousPlatformIOAccess:function(){return F},accessedDynamicData:function(){return P},annotateDynamicAccess:function(){return V},consumeDynamicAccess:function(){return Q},createDynamicTrackingState:function(){return x},createDynamicValidationState:function(){return y},createHangingInputAbortSignal:function(){return T},createInstantValidationState:function(){return ag},createRenderInBrowserAbortSignal:function(){return S},formatDynamicAPIAccesses:function(){return R},getFirstDynamicReason:function(){return A},getNavigationDisallowedDynamicReasons:function(){return ar},getStaticShellDisallowedDynamicReasons:function(){return aq},isDynamicPostpone:function(){return K},isPrerenderInterruptedError:function(){return O},logDisallowedDynamicError:function(){return an},markCurrentScopeAsDynamic:function(){return B},postponeWithTracking:function(){return I},throwIfDisallowedDynamic:function(){return ap},throwIfSyncIOUsed:function(){return ao},throwToInterruptStaticGeneration:function(){return C},trackAllowedDynamicAccess:function(){return ae},trackDynamicDataInDynamicRender:function(){return D},trackDynamicHoleInNavigation:function(){return ah},trackDynamicHoleInRuntimeShell:function(){return aj},trackDynamicHoleInStaticShell:function(){return ak},trackThrownErrorInNavigation:function(){return ai},useDynamicRouteParams:function(){return W},useDynamicSearchParams:function(){return X}};for(var h in g)Object.defineProperty(c,h,{enumerable:!0,get:g[h]});let i=(d=a.r(572131))&&d.__esModule?d:{default:d},j=a.r(903326),k=a.r(599392),l=a.r(832319),m=a.r(556704),n=a.r(935710),o=a.r(683590),p=a.r(376383),q=a.r(441997),r=a.r(308117),s=a.r(588644),t=a.r(521177),u=a.r(183521),v=a.r(314827),w="function"==typeof i.default.unstable_postpone;function x(a){return{isDebugDynamicAccesses:a,dynamicAccesses:[],syncDynamicErrorWithStack:null,syncDynamicErrorWithStackPostMicrotask:!1}}function y(){return{hasSuspenseAboveBody:!1,hasDynamicMetadata:!1,dynamicMetadata:null,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[]}}function z(a){return a.syncDynamicErrorWithStackPostMicrotask?null:a.syncDynamicErrorWithStack}function A(a){var b;return null==(b=a.dynamicAccesses[0])?void 0:b.expression}function B(a,b,c){if(b)switch(b.type){case"cache":case"unstable-cache":case"private-cache":return}if(!a.forceDynamic&&!a.forceStatic){if(a.dynamicShouldError)throw Object.defineProperty(new k.StaticGenBailoutError(`Route ${a.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${c}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(b)switch(b.type){case"prerender-ppr":return I(a.route,c,b.dynamicTracking);case"prerender-legacy":b.revalidate=0;let d=Object.defineProperty(new j.DynamicServerError(`Route ${a.route} couldn't be rendered statically because it used ${c}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw a.dynamicUsageDescription=c,a.dynamicUsageStack=d.stack,d}}}function C(a,b,c){let d=Object.defineProperty(new j.DynamicServerError(`Route ${b.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.revalidate=0,b.dynamicUsageDescription=a,b.dynamicUsageStack=d.stack,d}function D(a){switch(a.type){case"cache":case"unstable-cache":case"private-cache":return}}function E(a,b,c){let d=N(`Route ${a} needs to bail out of prerendering at this point because it used ${b}.`);c.controller.abort(d);let e=c.dynamicTracking;e&&e.dynamicAccesses.push({stack:e.isDebugDynamicAccesses?Error().stack:void 0,expression:b})}function F(a,b,c,d){let e=d.dynamicTracking;e&&null===e.syncDynamicErrorWithStack&&(e.syncDynamicErrorWithStack=c,queueMicrotask(()=>{e.syncDynamicErrorWithStackPostMicrotask=!0})),E(a,b,d)}function G(a,b,c,d){if((0,n.trackRuntimeDataAccessed)(d),!1===d.controller.signal.aborted){E(a,b,d);let e=d.dynamicTracking;e&&null===e.syncDynamicErrorWithStack&&(e.syncDynamicErrorWithStack=c)}throw N(`Route ${a} needs to bail out of prerendering at this point because it used ${b}.`)}function H({reason:a,route:b}){let c=l.workUnitAsyncStorage.getStore();I(b,a,c&&"prerender-ppr"===c.type?c.dynamicTracking:null)}function I(a,b,c){(function(){if(!w)throw Object.defineProperty(Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E224",enumerable:!1,configurable:!0})})(),c&&c.dynamicAccesses.push({stack:c.isDebugDynamicAccesses?Error().stack:void 0,expression:b}),i.default.unstable_postpone(J(a,b))}function J(a,b){return`Route ${a} needs to bail out of prerendering at this point because it used ${b}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}function K(a){return"object"==typeof a&&null!==a&&"string"==typeof a.message&&L(a.message)}function L(a){return a.includes("needs to bail out of prerendering at this point because it used")&&a.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===L(J("%%%","^^^")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});let M="NEXT_PRERENDER_INTERRUPTED";function N(a){let b=Object.defineProperty(Error(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return b.digest=M,b}function O(a){return"object"==typeof a&&null!==a&&a.digest===M&&"name"in a&&"message"in a&&a instanceof Error}function P(a){return a.length>0}function Q(a,b){return a.dynamicAccesses.push(...b.dynamicAccesses),a.dynamicAccesses}function R(a){return a.filter(a=>"string"==typeof a.stack&&a.stack.length>0).map(({expression:a,stack:b})=>(b=b.split("\n").slice(4).filter(a=>!(a.includes("node_modules/next/")||a.includes(" (<anonymous>)")||a.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${a}:
|
|
152
|
+
${b}`))}function S(){let a=new AbortController;return a.abort(Object.defineProperty(new q.BailoutToCSRError("Render in Browser"),"__NEXT_ERROR_CODE",{value:"E721",enumerable:!1,configurable:!0})),a.signal}function T(a){switch(a.type){case"prerender":case"prerender-runtime":let b=new AbortController;if(a.cacheSignal)a.cacheSignal.inputReady().then(()=>{b.abort()});else{let c=(0,l.getStagedRenderingController)(a);c&&null!==c.finalStage?c.waitForStage(c.finalStage).then(()=>(0,p.scheduleOnNextTick)(()=>b.abort()),U):(0,p.scheduleOnNextTick)(()=>b.abort())}return b.signal;case"prerender-client":case"validation-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":case"generate-static-params":return}}function U(){}function V(a,b){let c=b.dynamicTracking;c&&c.dynamicAccesses.push({stack:c.isDebugDynamicAccesses?Error().stack:void 0,expression:a})}function W(a){let b=m.workAsyncStorage.getStore(),c=l.workUnitAsyncStorage.getStore();if(b&&c)switch(c.type){case"prerender-client":{let d=c.fallbackRouteParams;d&&d.size>0&&i.default.use((0,n.makeClientHookHangingPromise)(c.renderSignal,new n.ClientHookDynamicError(b.route,a)));break}case"prerender":throw Object.defineProperty(new s.InvariantError(`\`${a}\` was called from a Server Component. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E795",enumerable:!1,configurable:!0});case"prerender-ppr":{let d=c.fallbackRouteParams;if(d&&d.size>0)return I(b.route,a,c.dynamicTracking);break}case"validation-client":case"prerender-legacy":case"request":case"unstable-cache":break;case"prerender-runtime":throw Object.defineProperty(new s.InvariantError(`\`${a}\` was called during a runtime prerender. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E771",enumerable:!1,configurable:!0});case"cache":case"private-cache":throw Object.defineProperty(new s.InvariantError(`\`${a}\` was called inside a cache scope. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new s.InvariantError(`\`${a}\` was called in \`generateStaticParams\`. Next.js should be preventing ${a} from being included in server component files statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1130",enumerable:!1,configurable:!0})}}function X(a){let b=m.workAsyncStorage.getStore(),c=l.workUnitAsyncStorage.getStore();if(b)switch(!c&&(0,l.throwForMissingRequestStore)(a),c.type){case"validation-client":case"request":return;case"prerender-client":i.default.use((0,n.makeClientHookHangingPromise)(c.renderSignal,new n.ClientHookDynamicError(b.route,a)));break;case"prerender-legacy":case"prerender-ppr":if(b.forceStatic)return;throw Object.defineProperty(new q.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":throw Object.defineProperty(new s.InvariantError(`\`${a}\` was called from a Server Component. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E795",enumerable:!1,configurable:!0});case"cache":case"unstable-cache":case"private-cache":throw Object.defineProperty(new s.InvariantError(`\`${a}\` was called inside a cache scope. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new s.InvariantError(`\`${a}\` was called in \`generateStaticParams\`. Next.js should be preventing ${a} from being included in server component files statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1130",enumerable:!1,configurable:!0})}}let Y=/\n\s+at Suspense \(<anonymous>\)/,Z=RegExp(`\\n\\s+at Suspense \\(<anonymous>\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(<anonymous>\\))[\\s\\S])*?\\n\\s+at ${o.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`),$=RegExp(`\\n\\s+at ${o.METADATA_BOUNDARY_NAME}[\\n\\s]`),_=RegExp(`\\n\\s+at ${o.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`),aa=RegExp(`\\n\\s+at ${o.OUTLET_BOUNDARY_NAME}[\\n\\s]`),ab=RegExp(`\\n\\s+at ${t.INSTANT_VALIDATION_BOUNDARY_NAME}[\\n\\s]`),ac=RegExp(`\\n\\s+at ${t.INSTANT_SLOT_MARKER_PREFIX}(\\d+)${t.INSTANT_SLOT_MARKER_SUFFIX}[\\n\\s]`);function ad(a,b){Z.test(a)&&(b.hasSuspenseAboveBody=!0)}function ae(a,b,c,d,e){let f=z(e);if(aa.test(c))return void ad(c,d);if($.test(c)){d.hasDynamicMetadata=!0;return}if(_.test(c)){d.hasDynamicViewport=!0;return}if(Z.test(c)){d.hasAllowedDynamic=!0,d.hasSuspenseAboveBody=!0;return}if(Y.test(c)){d.hasAllowedDynamic=!0;return}else if(f)return void d.dynamicErrors.push(f);if((0,n.isClientHookDynamicError)(a))return void d.dynamicErrors.push(al(a,c,null));let g=al((0,r.createDynamicOrRuntimeBodyError)(b.route),c,null);d.dynamicErrors.push(g)}var af=((e={})[e.Link=1]="Link",e[e.Runtime=2]="Runtime",e[e.Dynamic=3]="Dynamic",e);function ag(a){return{hasDynamicMetadata:!1,hasAllowedClientDynamicAboveBoundary:!1,dynamicMetadata:null,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[],validationPreventingErrors:[],thrownErrorsOutsideBoundary:[],slotStacks:a}}function ah(a,b,c,d,e,f,g){let h=z(e);if(aa.test(c))return;let i=function(a,b){let{slotStacks:c}=b;if(c.length>1){let b=ac.exec(a);if(b){let a=c[parseInt(b[1],10)+1];if(null!=a)return a}}return c[0]??null}(c,d);if($.test(c)){d.dynamicMetadata=al(1===f?(0,r.createLinkMetadataError)(b.route):2===f?(0,r.createRuntimeMetadataError)(b.route):(0,r.createDynamicMetadataError)(b.route),c,i);return}if(_.test(c)){let a=al(1===f?(0,r.createLinkViewportError)(b.route):2===f?(0,r.createRuntimeViewportError)(b.route):(0,r.createDynamicViewportError)(b.route),c,i);d.dynamicErrors.push(a);return}let j=ab.exec(c);if(j){let a=Y.exec(c);if(a&&a.index<j.index){d.hasAllowedDynamic=!0;return}}else if((0,u.allRequiredBoundariesRendered)(g)){d.hasAllowedClientDynamicAboveBoundary=!0,d.hasAllowedDynamic=!0;return}else{let a=al(Object.defineProperty(Error(`Route "${b.route}": Could not validate \`instant\` because a Client Component in a parent segment prevented the page from rendering.`),"__NEXT_ERROR_CODE",{value:"E1331",enumerable:!1,configurable:!0}),c,i);d.validationPreventingErrors.push(a);return}if(h){null!==i&&void 0===h.cause&&(h.cause=i()),d.dynamicErrors.push(h);return}if((0,n.isClientHookDynamicError)(a))return void d.dynamicErrors.push(al(a,c,i));let k=al(1===f?(0,r.createLinkBodyErrorInNavigation)(b.route):2===f?(0,r.createRuntimeBodyErrorInNavigation)(b.route):(0,r.createDynamicBodyErrorInNavigation)(b.route),c,i);d.dynamicErrors.push(k)}function ai(a,b,c,d){let e=ab.exec(d);if(e){let f=Y.exec(d);if(f&&f.index<e.index)return;let g=al(Object.defineProperty(Error(`Route "${a.route}": Could not validate \`instant\` because an error prevented the target segment from rendering.`,{cause:c}),"__NEXT_ERROR_CODE",{value:"E1338",enumerable:!1,configurable:!0}),d,null);b.validationPreventingErrors.push(g)}else{let a=al(Object.defineProperty(Error("An error occurred while attempting to validate instant UI. This error may be preventing the validation from completing.",{cause:c}),"__NEXT_ERROR_CODE",{value:"E1118",enumerable:!1,configurable:!0}),d,null);b.thrownErrorsOutsideBoundary.push(a)}}function aj(a,b,c,d,e){let f=z(e);if(aa.test(c))return void ad(c,d);if($.test(c)){d.dynamicMetadata=al((0,r.createDynamicMetadataError)(b.route),c,null);return}if(_.test(c)){let a=al((0,r.createDynamicViewportError)(b.route),c,null);d.dynamicErrors.push(a);return}if(Z.test(c)){d.hasAllowedDynamic=!0,d.hasSuspenseAboveBody=!0;return}if(Y.test(c)){d.hasAllowedDynamic=!0;return}else if(f)return void d.dynamicErrors.push(f);if((0,n.isClientHookDynamicError)(a))return void d.dynamicErrors.push(al(a,c,null));let g=al((0,r.createDynamicBodyError)(b.route),c,null);d.dynamicErrors.push(g)}function ak(a,b,c,d,e){let f=z(e);if(aa.test(c))return void ad(c,d);if($.test(c)){d.dynamicMetadata=al((0,r.createRuntimeMetadataError)(b.route),c,null);return}if(_.test(c)){let a=al((0,r.createRuntimeViewportError)(b.route),c,null);d.dynamicErrors.push(a);return}if(Z.test(c)){d.hasAllowedDynamic=!0,d.hasSuspenseAboveBody=!0;return}if(Y.test(c)){d.hasAllowedDynamic=!0;return}else if(f)return void d.dynamicErrors.push(f);if((0,n.isClientHookDynamicError)(a))return void d.dynamicErrors.push(al(a,c,null));let g=al((0,r.createRuntimeBodyError)(b.route),c,null);d.dynamicErrors.push(g)}function al(a,b,c){return null!==c&&(a.cause=c()),a.stack=a.name+": "+a.message+b,a}var am=((f={})[f.Full=0]="Full",f[f.Empty=1]="Empty",f[f.Errored=2]="Errored",f);function an(a,b){console.error(b),(0,r.logBuildDebugHint)(a.route)}function ao(a,b){if(b.syncDynamicErrorWithStack)throw an(a,b.syncDynamicErrorWithStack),new k.StaticGenBailoutError}function ap(a,b,c,d,e){if(ao(a,d),0===b&&!1===c.hasAllowedDynamic&&c.hasDynamicMetadata)throw console.error((0,r.createDynamicOrRuntimeMetadataError)(a.route).message),new k.StaticGenBailoutError;if(!e&&!c.hasSuspenseAboveBody&&0!==b){let d=c.dynamicErrors;if(d.length>0){for(let b=0;b<d.length;b++)an(a,d[b]);throw new k.StaticGenBailoutError}if(c.hasDynamicViewport)throw console.error((0,r.createDynamicOrRuntimeViewportError)(a.route).message),new k.StaticGenBailoutError;if(1===b)throw console.error(`Route "${a.route}" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`),new k.StaticGenBailoutError}}function aq(a,b,c,d){if(0===b&&!1===c.hasAllowedDynamic&&0===c.dynamicErrors.length&&c.dynamicMetadata)return[c.dynamicMetadata];if(d||c.hasSuspenseAboveBody)return[];if(0!==b){let d=c.dynamicErrors;if(d.length>0)return d;if(1===b)return[Object.defineProperty(new s.InvariantError(`Route "${a.route}" did not produce a static shell and Next.js was unable to determine a reason.`),"__NEXT_ERROR_CODE",{value:"E936",enumerable:!1,configurable:!0})]}return[]}function ar(a,b,c,d,e,f){if(d){let{missingSampleErrors:a}=d;if(a.length>0)return a}let{validationPreventingErrors:g}=c;if(g.length>0)return g;if(0!==b){let d=c.dynamicErrors;if(d.length>0)return d;if(1===b&&!c.hasAllowedClientDynamicAboveBoundary&&(0,u.allRequiredBoundariesRendered)(e))return Object.defineProperty(new s.InvariantError(`Route "${a.route}" failed to render during instant validation and Next.js was unable to determine a reason.`),"__NEXT_ERROR_CODE",{value:"E1055",enumerable:!1,configurable:!0})}else{let a=c.dynamicErrors;if(a.length>0)return a;if(!1===c.hasAllowedDynamic&&c.dynamicMetadata)return[c.dynamicMetadata]}if(!(0,u.allRequiredBoundariesRendered)(e)){let{thrownErrorsOutsideBoundary:b}=c,d=c.slotStacks[0];if(0===b.length){let b=[];for(let[a,c]of e.requiredIds)if(!e.renderedIds.has(a))for(let a of c){let c=a.replace(/^\[project\][\\/]?/,"").replace(process.cwd()+"/","").replace(process.cwd()+"\\","");b.push(c)}return b.sort(),(0,v.createUnrenderedSegmentError)(a.route,b)}if(1===b.length){let c=`Route "${a.route}": Could not validate \`instant\` because the target segment was prevented from rendering, likely due to the following error.`,e=null!==d?d():Error();return e.name="Error",e.message=c,AggregateError([e,b[0]])}{let c=`Route "${a.route}": Could not validate \`instant\` because the target segment was prevented from rendering, likely due to one of the following errors.`,e=null!==d?d():Error();return e.name="Error",e.message=c,AggregateError([e,...b])}}return[]}},549842,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={useDynamicRouteParams:function(){return f.useDynamicRouteParams},useDynamicSearchParams:function(){return f.useDynamicSearchParams}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(154110);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},935710,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ClientHookDynamicError:function(){return k},RENDER_STAGES_BY_DATA_KIND:function(){return A},applyOwnerStack:function(){return B},isClientHookDynamicError:function(){return l},isHangingPromiseRejectionError:function(){return g},makeClientHookHangingPromise:function(){return v},makeDevtoolsIOAwarePromise:function(){return z},makeDynamicHangingPromise:function(){return n},makeFallbackParamsHangingPromise:function(){return q},makePromiseFromTrigger:function(){return y},makeRuntimeHangingPromise:function(){return p},makeStageHangingPromise:function(){return r},makeUntrackedHangingPromise:function(){return o},trackFallbackParamsAccessed:function(){return t},trackRuntimeDataAccessed:function(){return s}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(140656);function g(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===h}a.r(832319),a.r(559043);let h="HANGING_PROMISE_REJECTION";class i extends Error{constructor(a,b){super(`During prerendering, ${b} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${b} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${a}".`),this.route=a,this.expression=b,this.digest=h}}let j="CLIENT_HOOK_DYNAMIC";class k extends Error{constructor(a,b){super(`Route "${a}": Next.js encountered URL data \`${b}\` in a Client Component outside of \`<Suspense>\`.
|
|
153
|
+
|
|
154
|
+
This blocks prerendering because the value is only available at runtime.
|
|
155
|
+
|
|
156
|
+
Ways to fix this:
|
|
157
|
+
- [stream] Wrap the component in \`<Suspense fallback={...}>\` so the hook value streams in after prerendering
|
|
158
|
+
- [block] Set \`export const instant = false\` to allow a blocking route
|
|
159
|
+
|
|
160
|
+
Learn more: https://nextjs.org/docs/messages/blocking-prerender-client-hook`),this.digest=j,Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1433",enumerable:!1,configurable:!0})}}function l(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===j}let m=new WeakMap;function n(a,b,c){return w(a,new i(b,c))}function o(a,b,c){return w(a,new i(b,c))}function p(a,b,c,d){return null!==d&&s(d),w(a,new i(b,c))}function q(a,b,c,d){return null!==d&&t(d),w(a,new i(b,c))}function r(a,b,c,d){return s(d),w(a,new i(b,c))}function s(a){u(a,!1)}function t(a){u(a,!0)}function u(a,b){if("prerender"===a.type){var c;null==(c=a.runtimeDataAccessed)||c.resolve(!0);let d=a.shouldAttemptStaticPrefetch;null===d||b&&a.isFallbackUpgradeable||(d.current=!1)}}function v(a,b){return w(a,b)}function w(a,b){if(a.aborted)return Promise.reject(b);{let c=new Promise((c,d)=>{let e=d.bind(null,b),f=m.get(a);if(f)f.push(e);else{let b=[e];m.set(a,b),a.addEventListener("abort",()=>{for(let a=0;a<b.length;a++)b[a]()},{once:!0})}});return c.catch(x),c}}function x(){}function y(a,b){let c=a.then(()=>b);return c.catch(x),c}function z(a,b,c){return b.stagedRendering?b.stagedRendering.delayUntilStage(c,void 0,a):new Promise(b=>{setTimeout(()=>{b(a)},0)})}let A={sessionData:f.RenderStage.ShellRuntime,staticLinkData:f.RenderStage.Static,runtimeLinkData:f.RenderStage.Runtime};function B(a){return a}},683590,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={METADATA_BOUNDARY_NAME:function(){return f},OUTLET_BOUNDARY_NAME:function(){return h},ROOT_LAYOUT_BOUNDARY_NAME:function(){return i},VIEWPORT_BOUNDARY_NAME:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="__next_metadata_boundary__",g="__next_viewport_boundary__",h="__next_outlet_boundary__",i="__next_root_layout_boundary__"},376383,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={atLeastOneTask:function(){return h},scheduleImmediate:function(){return g},scheduleOnNextTick:function(){return f},waitAtLeastOneReactRenderTask:function(){return i}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a=>{Promise.resolve().then(()=>{process.nextTick(a)})},g=a=>{setImmediate(a)};function h(){return new Promise(a=>g(a))}function i(){return new Promise(a=>setImmediate(a))}},307773,(a,b,c)=>{"use strict";function d(a){return a.split("/").map(a=>encodeURIComponent(a)).join("/")}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"encodeURIPath",{enumerable:!0,get:function(){return d}})},588644,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"InvariantError",{enumerable:!0,get:function(){return d}});class d extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1179",enumerable:!1,configurable:!0}),this.name="InvariantError"}}},554427,(a,b,c)=>{"use strict";function d(){let a,b,c=new Promise((c,d)=>{a=c,b=d});return{resolve:a,reject:b,promise:c}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"createPromiseWithResolvers",{enumerable:!0,get:function(){return d}})},140656,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d,e,f={RENDER_STAGE_ADVANCE_ORDER:function(){return k},RenderStage:function(){return j},StagedRenderingController:function(){return o},SyncIOMode:function(){return n},getNextStage:function(){return l},isAdvanceableRenderStage:function(){return m}};for(var g in f)Object.defineProperty(c,g,{enumerable:!0,get:f[g]});let h=a.r(588644),i=a.r(554427);var j=((d={})[d.Before=1]="Before",d[d.ShellStatic=11]="ShellStatic",d[d.Static=13]="Static",d[d.ShellRuntime=21]="ShellRuntime",d[d.Runtime=23]="Runtime",d[d.Dynamic=30]="Dynamic",d[d.Abandoned=40]="Abandoned",d);let k=[11,13,21,23,30];function l(a){return k[k.indexOf(a)+1]}function m(a){return 1<a&&a<=30}var n=((e={})[e.Untracked=1]="Untracked",e[e.AllowedInRuntimeOrDynamic=2]="AllowedInRuntimeOrDynamic",e[e.AllowedInDynamic=3]="AllowedInDynamic",e);class o{constructor({abortSignal:a,abandonController:b,syncIO:c,finalStage:d}){this.currentStage=1,this.syncInterruptReason=null,this.triggers={11:q(),13:q(),21:q(),23:q(),30:q()},this.abortSignal=a,this.abandonController=b,this.syncIOMode=c,this.finalStage=d,a&&a.addEventListener("abort",()=>{let{reason:b}=a;for(let a of Object.values(this.triggers)){var c,d;c=a,d=b,"pending"===c.state&&(c.state="cancelled",c._listeners.length=0,c.promise.catch(p),c._rejectPromise(d))}},{once:!0}),b&&b.signal.addEventListener("abort",()=>{this.abandonRender()},{once:!0})}onStage(a,b){var c,d;c=this.triggers[a],d=b,"pending"===c.state?c._listeners.push(d):d()}shouldTrackSyncInterrupt(){if(1===this.syncIOMode)return!1;switch(this.currentStage){case 1:return!1;case 11:case 13:return!0;case 21:case 23:switch(this.syncIOMode){case 2:return!1;case 3:return!0}case 30:case 40:return!1;default:return this.currentStage,!1}}syncInterruptCurrentStageWithReason(a){let{currentStage:b}=this;if(1!==b&&30!==b&&40!==b){if(this.abandonController)return void this.abandonController.abort();if(this.abortSignal){this.syncInterruptReason=a,this.currentStage=40;return}this.syncInterruptReason=a,this.advanceStage(30)}}getSyncInterruptReason(){return this.syncInterruptReason}getStageEndTime(a){return this.triggers[l(a)].triggeredAt??1/0}abandonRender(){let{currentStage:a}=this;if(1===a)throw Object.defineProperty(new h.InvariantError("A render that hasn't started yet cannot be abandoned"),"__NEXT_ERROR_CODE",{value:"E1300",enumerable:!1,configurable:!0});if(30===a||40===a)return;let b=k.indexOf(a)+1,c=k.indexOf(30);for(let a=b;a<c;a++)this.resolveStage(k[a]);this.currentStage=40}advanceStage(a){if(null!==this.finalStage&&a>this.finalStage)throw Object.defineProperty(new h.InvariantError(`Attempted to advance to stage ${j[a]} but the render is limited to ${j[this.finalStage]}`),"__NEXT_ERROR_CODE",{value:"E1302",enumerable:!1,configurable:!0});let{currentStage:b}=this;if(30===b||40===b||a<=b)return;this.currentStage=a;let c=1===b?0:k.indexOf(b)+1,d=k.indexOf(a);for(let a=c;a<=d;a++)this.resolveStage(k[a])}resolveStage(a){var b=this.triggers[a];if("pending"===b.state){b.state="triggered",b.triggeredAt=performance.now()+performance.timeOrigin;try{let{_listeners:a}=b;for(let b=0;b<a.length;b++)a[b]();a.length=0}finally{b._resolvePromise()}}}getStagePromise(a){return this.triggers[a].promise}waitForStage(a){return this.getStagePromise(a)}delayUntilStage(a,b,c){let d=this.getStagePromise(a).then(()=>c);return this.abortSignal&&d.catch(p),d}}function p(){}function q(){let{promise:a,resolve:b,reject:c}=(0,i.createPromiseWithResolvers)();return{state:"pending",triggeredAt:null,promise:a,_listeners:[],_resolvePromise:b,_rejectPromise:c}}},441997,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={BailoutToCSRError:function(){return g},isBailoutToCSRError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="BAILOUT_TO_CLIENT_SIDE_RENDERING";class g extends Error{constructor(a){super(`Bail out to client-side rendering: ${a}`),this.reason=a,this.digest=f}}function h(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===f}},132245,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"BailoutToCSR",{enumerable:!0,get:function(){return e}});let d=a.r(441997);function e({reason:a,children:b}){throw Object.defineProperty(new d.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}},297458,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"PreloadChunks",{enumerable:!0,get:function(){return i}});let d=a.r(187924),e=a.r(935112),f=a.r(556704),g=a.r(307773),h=a.r(68063);function i({moduleIds:a}){let b=f.workAsyncStorage.getStore();if(void 0===b)return null;let c=[];if(b.reactLoadableManifest&&a){let d=b.reactLoadableManifest;for(let b of a){if(!d[b])continue;let a=d[b].files;c.push(...a)}}if(0===c.length)return null;let j=(0,h.getAssetTokenQuery)();return(0,d.jsx)(d.Fragment,{children:c.map(a=>{let c=`${b.assetPrefix}/_next/${(0,g.encodeURIPath)(a)}${j}`;return a.endsWith(".css")?(0,d.jsx)("link",{precedence:"dynamic",href:c,rel:"stylesheet",as:"style",nonce:b.nonce},a):((0,e.preload)(c,{as:"script",fetchPriority:"low",nonce:b.nonce}),null)})})}},969853,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return j}});let d=a.r(187924),e=a.r(572131),f=a.r(132245),g=a.r(297458);function h(a){return{default:a&&"default"in a?a.default:a}}let i={loader:()=>Promise.resolve(h(()=>null)),loading:null,ssr:!0},j=function(a){let b={...i,...a},c=(0,e.lazy)(()=>b.loader().then(h)),j=b.loading;function k(a){let h=j?(0,d.jsx)(j,{isLoading:!0,pastDelay:!0,error:null}):null,i=!b.ssr||!!b.loading,k=i?e.Suspense:e.Fragment,l=b.ssr?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g.PreloadChunks,{moduleIds:b.modules}),(0,d.jsx)(c,{...a})]}):(0,d.jsx)(f.BailoutToCSR,{reason:"next/dynamic",children:(0,d.jsx)(c,{...a})});return(0,d.jsx)(k,{...i?{fallback:h}:{},children:l})}return k.displayName="LoadableComponent",k}},819721,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return e}});let d=a.r(833354)._(a.r(969853));function e(a,b){let c={};"function"==typeof a&&(c.loader=a);let e={...c,...b};return(0,d.default)({...e,modules:e.loadableGenerated?.modules})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},739118,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={DEFAULT_SEGMENT_KEY:function(){return l},NOT_FOUND_SEGMENT_KEY:function(){return m},PAGE_SEGMENT_KEY:function(){return k},addSearchParamsIfPageSegment:function(){return i},computeSelectedLayoutSegment:function(){return j},getSegmentValue:function(){return f},getSelectedLayoutSegmentPath:function(){return function a(b,c,d=!0,e=[]){let g;if(d)g=b[1][c];else{let a=b[1];g=a.children??Object.values(a)[0]}if(!g)return e;let h=f(g[0]);return!h||h.startsWith(k)?e:(e.push(h),a(g,c,!1,e))}},isGroupSegment:function(){return g},isParallelRouteSegment:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a){return Array.isArray(a)?a[1]:a}function g(a){return"("===a[0]&&a.endsWith(")")}function h(a){return a.startsWith("@")&&"@children"!==a}function i(a,b){if(a.includes(k)){let a=JSON.stringify(b);return"{}"!==a?k+"?"+a:k}return a}function j(a,b){if(!a||0===a.length)return null;let c="children"===b?a[0]:a[a.length-1];return c===l?null:c}let k="__PAGE__",l="__DEFAULT__",m="/_not-found"},903326,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={DynamicServerError:function(){return g},isDynamicServerError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="DYNAMIC_SERVER_USAGE";class g extends Error{constructor(a){super(`Dynamic server usage: ${a}`),this.description=a,this.digest=f}}function h(a){return"object"==typeof a&&null!==a&&"digest"in a&&"string"==typeof a.digest&&a.digest===f}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},599392,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={StaticGenBailoutError:function(){return g},isStaticGenBailoutError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="NEXT_STATIC_GEN_BAILOUT";class g extends Error{constructor(...a){super(...a),this.code=f}}function h(a){return"object"==typeof a&&null!==a&&"code"in a&&a.code===f}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)}];
|
|
161
|
+
|
|
162
|
+
//# sourceMappingURL=_17ble8k._.js.map
|