thursday-agent 0.28.0 → 0.29.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 +3 -3
- 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.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- 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.nft.json +1 -1
- package/.next/server/app/api/bot/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/thread/file/route.js.nft.json +1 -1
- package/.next/server/app/api/file/[...path]/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/edit/route.js.nft.json +1 -1
- package/.next/server/app/api/reach/route.js.nft.json +1 -1
- package/.next/server/app/api/routine/route.js.nft.json +1 -1
- package/.next/server/app/api/signins/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/[source]/[name]/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/call/end/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/call/plan/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/text/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/tool-call/route.js.nft.json +1 -1
- package/.next/server/app/api/workspace/files/route.js.nft.json +1 -1
- package/.next/server/app/api/workspace/route.js.nft.json +1 -1
- package/.next/server/app/artifact/[...path]/page/server-reference-manifest.json +11 -11
- 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/page/server-reference-manifest.json +68 -68
- 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/_0tkzlv1._.js +11 -9
- package/.next/server/chunks/_1_0gehg._.js +11 -9
- package/.next/server/chunks/features_14kex_m._.js +3 -1
- package/.next/server/chunks/features_1xn6un-._.js +3 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__1ngprpi._.js → [root-of-the-server]__07mxab7._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__0auk-ke._.js +13 -8
- package/.next/server/chunks/ssr/{[root-of-the-server]__11_ws3y._.js → [root-of-the-server]__0bgf9r2._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__1j2x83w._.js → [root-of-the-server]__0nfq6eh._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__0utwbb5._.js +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__13xx3dr._.js → [root-of-the-server]__18l3o37._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__1qiq402._.js → [root-of-the-server]__1njrrpi._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__1t38-p_._.js +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__02-kwsg._.js → [root-of-the-server]__1vgf-i-._.js} +2 -2
- package/.next/server/chunks/ssr/{_15zznka._.js → _01l1svp._.js} +2 -2
- package/.next/server/chunks/ssr/{_1e1qe7w._.js → _01m2s2p._.js} +2 -2
- package/.next/server/chunks/ssr/{_0a31ywo._.js → _06o_p34._.js} +2 -2
- package/.next/server/chunks/ssr/{_1nnl9sj._.js → _0ps83ki._.js} +2 -2
- package/.next/server/chunks/ssr/{_1tc_gbg._.js → _0tfponz._.js} +2 -2
- package/.next/server/chunks/ssr/{_0ldpw1q._.js → _0x9aecq._.js} +2 -2
- package/.next/server/chunks/ssr/_128r03g._.js +3 -1
- package/.next/server/chunks/ssr/{_0nans9v._.js → _16qphtt._.js} +2 -2
- package/.next/server/chunks/ssr/_17fa2ns._.js +5 -5
- package/.next/server/chunks/ssr/_1_px1o-._.js +1 -1
- package/.next/server/chunks/ssr/_1e_9qjr._.js +1 -1
- package/.next/server/chunks/ssr/{_19g10gj._.js → _1k5f6cg._.js} +2 -2
- package/.next/server/chunks/ssr/_1neoj22._.js +1 -1
- package/.next/server/chunks/ssr/_1rlfzdj._.js +6 -0
- package/.next/server/chunks/ssr/_1soynbw._.js +2 -2
- package/.next/server/chunks/ssr/{_1qtcl42._.js → _1tu2bpk._.js} +2 -2
- package/.next/server/chunks/ssr/{components_ui_markdown-body_tsx_13aa4_2._.js → components_ui_markdown-body_tsx_1ac61z0._.js} +2 -2
- package/.next/server/chunks/ssr/features_0rrgq_t._.js +1 -1
- package/.next/server/chunks/ssr/features_ai_components_model-picker_tsx_0ucb1y9._.js +1 -1
- package/.next/server/chunks/ssr/features_bot_components_01ye2wp._.js +1 -1
- package/.next/server/chunks/ssr/features_bot_components_bot-setting_tsx_01ajft6._.js +1 -1
- package/.next/server/chunks/ssr/features_bot_components_thread-setting_tsx_0yae7zy._.js +1 -1
- package/.next/server/chunks/ssr/features_config_components_config-setting_tsx_0xfwqdg._.js +1 -1
- package/.next/server/chunks/ssr/features_connectors_components_mcp-setting_tsx_0jmbgvp._.js +1 -1
- package/.next/server/chunks/ssr/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_skills_components_skills-setting_tsx_1wtuuip._.js +1 -1
- package/.next/server/chunks/ssr/features_thursday_components_thursday-setting_tsx_1_6ydrc._.js +1 -1
- package/.next/server/chunks/ssr/{node_modules_107hxun._.js → node_modules_0-8ygub._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1v-un0n._.js → node_modules_012orll._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1uyu3cc._.js → node_modules_02fw1bp._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0wa05ay._.js → node_modules_02t-i_c._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_069gsbk._.js → node_modules_03ntdqv._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_150qjpq._.js → node_modules_04e__3n._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_0kdc_b7._.js → node_modules_0507yvc._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1xtd9ml._.js → node_modules_06oedzb._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_05fihwh._.js → node_modules_0b8revr._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0jrjbfv._.js → node_modules_0dfjba7._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0walxvo._.js → node_modules_0i3xlf-._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_0ou72wu._.js → node_modules_0k-r85l._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_19gok-9._.js → node_modules_0kdzuew._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_1-vdt7b._.js → node_modules_0mbx677._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1vh6nr-._.js → node_modules_0o5tzyn._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0z8o0-n._.js → node_modules_0pv4uha._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_17-v4n4._.js → node_modules_0qrh5xo._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0jqaiyb._.js → node_modules_0t4ep0l._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0ia9-w8._.js → node_modules_0tx0umb._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_19acw__._.js → node_modules_0ukjqyk._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_050v667._.js → node_modules_0w-dsl0._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_0gb732y._.js → node_modules_0x_do0y._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_0q8xm6u._.js → node_modules_0x_r46g._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_152bm83._.js → node_modules_0zw6cf-._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1misalx._.js → node_modules_122hfb2._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_2045nus._.js → node_modules_13rr6rm._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_0skzy7i._.js → node_modules_152kfg-._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0wsygp2._.js → node_modules_15f2sid._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_06b7g0r._.js → node_modules_162v3_m._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1pt7o47._.js → node_modules_16wbh_d._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_1x7napn._.js → node_modules_1838s3x._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_0zi89fj._.js → node_modules_1_rbg_o._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1jt8w7f._.js → node_modules_1awgatr._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1n5ds4a._.js → node_modules_1g9_m7_._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1fa_3_c._.js → node_modules_1hgqn53._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_1si826e._.js → node_modules_1j59ehc._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0y_dhgi._.js → node_modules_1jvg854._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_140qn14._.js → node_modules_1k9u0x_._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_06p_ayw._.js → node_modules_1kqsyd_._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1jrlct1._.js → node_modules_1kv5-zo._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1b45v66._.js → node_modules_1lwcjnq._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_13ccsqp._.js → node_modules_1mxdor4._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_04qcy8e._.js → node_modules_1o_q011._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_0ljjw5o._.js → node_modules_1p5__vf._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0jaxs1q._.js → node_modules_1p_tdep._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0xetrwd._.js → node_modules_1qyanf-._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_1861d28._.js → node_modules_1rrbt-g._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1k0ygyl._.js → node_modules_1rtx020._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_12409ud._.js → node_modules_1rxd-pq._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0_uhcxd._.js → node_modules_1sum8sx._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_18uwehg._.js → node_modules_1tqxzmp._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0ob-uxg._.js → node_modules_1u5xb0j._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0-zy1_5._.js → node_modules_1umqska._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_20llbw8._.js → node_modules_1v065ct._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1o1ud40._.js → node_modules_1w2-as3._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0v0l095._.js → node_modules_1ywecve._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_katex_dist_katex_mjs_0-moq-r._.js → node_modules_katex_dist_katex_mjs_1l3addz._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_katex_dist_katex_mjs_1bf0rdx._.js → node_modules_katex_dist_katex_mjs_1y07ypr._.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 +69 -69
- package/.next/static/chunks/{0km5rjf8k0gst.js → 0eepme181mw6f.js} +1 -1
- package/.next/static/chunks/{25tttxgpn-fdl.js → 0rx67d-x-1mmv.js} +2 -2
- package/.next/static/chunks/{2tlvu360xbisx.js → 0wwq57j09skhy.js} +1 -1
- package/.next/static/chunks/0xlr5fmtxb42l.js +4 -0
- package/.next/static/chunks/{3f4aku2z0zdxp.js → 0yp1so_h9mfhf.js} +1 -1
- package/.next/static/chunks/{1vxq-0uxcm5yl.js → 14e3ie8pgxgdb.js} +1 -1
- package/.next/static/chunks/{0_o7o4-itqsz7.js → 1b-3utyj58fn1.js} +1 -1
- package/.next/static/chunks/{1o4z63f94c3r-.js → 1c3tarihhldvd.js} +1 -1
- package/.next/static/chunks/{2njcedjozdqm7.js → 1j2zjawu_2th7.js} +1 -1
- package/.next/static/chunks/{2zvo7b47hhxi5.js → 1l0_q-kf0cbaj.js} +1 -1
- package/.next/static/chunks/{1hwehpk3kk-pc.js → 1la1aeosxvwmz.js} +1 -1
- package/.next/static/chunks/{29fpns41ml485.js → 1n3a07w81jbc-.js} +1 -1
- package/.next/static/chunks/{3ul6m16ba_i3u.js → 227tjgj_th6uf.js} +1 -1
- package/.next/static/chunks/{1zwj72bhapocl.js → 29r_coa80ubpw.js} +1 -1
- package/.next/static/chunks/{06ymo4xf31ggh.js → 2adz3q18q052w.js} +1 -1
- package/.next/static/chunks/{1ki7x6-ehua0u.js → 2b08w7t0hc1fp.js} +1 -1
- package/.next/static/chunks/{0i4df8t5_6a-g.js → 2gl-fo_rmmmq0.js} +1 -1
- package/.next/static/chunks/{1e3karuzhh7ik.js → 2h5rvagz5wdhy.js} +1 -1
- package/.next/static/chunks/2jo02hrgs_zqm.js +1 -0
- package/.next/static/chunks/{3ymtwwxmbactm.js → 2voeol7_1tit_.js} +1 -1
- package/.next/static/chunks/{277zw6dp5yzks.js → 36hfkcfa5a6be.js} +5 -5
- package/.next/static/chunks/{17ow2tmvy65in.js → 3a98r51s8rjtt.js} +1 -1
- package/.next/static/chunks/{2jn9y4sol_low.js → 3hl237797_a8e.js} +2 -2
- package/.next/static/chunks/3sjv-rshh-98q.js +1 -0
- package/.next/static/chunks/{1pxe_gpjic1_h.js → 3tejx8kiotsia.js} +1 -1
- package/.next/static/chunks/{1vwqvgit8a1vm.js → 42xlx1decmn82.js} +1 -1
- package/guide/calls.md +3 -1
- package/package.json +1 -1
- package/.next/server/chunks/ssr/_131wmbl._.js +0 -6
- package/.next/static/chunks/0lc_77uhatqgd.js +0 -1
- package/.next/static/chunks/1gca5ia-a-3e2.js +0 -1
- package/.next/static/chunks/3qhhs3dk6cdbq.js +0 -4
- /package/.next/static/{pekZvsOZ3_8_ohluwgZtY → mTdCVAiiVKCutbZcekyHn}/_buildManifest.js +0 -0
- /package/.next/static/{pekZvsOZ3_8_ohluwgZtY → mTdCVAiiVKCutbZcekyHn}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{pekZvsOZ3_8_ohluwgZtY → mTdCVAiiVKCutbZcekyHn}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,818125,e=>{"use strict";var t=e.i(843476),n=e.i(271645),r=e.i(798120),a=e.i(647163);e.s(["SiteIcon",0,function({host:e,className:i="size-3.5 rounded-full",fallback:l}){let[s,o]=(0,n.useState)(!1);return s?l??(0,t.jsx)("span",{"aria-hidden":!0,className:(0,a.cn)("grid shrink-0 place-items-center bg-foreground/10 text-[8.5px] font-medium text-foreground/70 uppercase",i),children:e[0]}):(0,t.jsx)("img",{src:r.queryKey.favicon(e),alt:"",onError:()=>o(!0),className:(0,a.cn)("shrink-0",i)})}])},616816,e=>{"use strict";var t=e.i(843476),n=e.i(375775),r=e.i(689664),a=e.i(263676),i=e.i(271645),l=e.i(798120),s=e.i(167881),o=e.i(23750),u=e.i(41533),c=e.i(412294),d=e.i(968978),m=e.i(149666),h=e.i(265402),p=e.i(609856),f=e.i(283653),g=e.i(647163),y=e.i(584923),x=e.i(992112);function O(){let e=h.TEXT_MODEL_PROVIDERS[m.LIVE_PROVIDER.id].keysAt;return e?(0,t.jsxs)("a",{href:e,target:"_blank",rel:"noreferrer",className:"flex items-center gap-2.5 text-[13px] font-medium text-foreground no-underline",children:[(0,t.jsxs)("span",{className:"flex h-7.5 shrink-0 items-center gap-1.5 rounded-full bg-muted px-3.5 whitespace-nowrap transition-colors hover:bg-accent",children:["Get a key",(0,t.jsx)(n.ArrowUpRight,{className:"size-3.5"})]}),(0,t.jsx)("span",{className:"truncate font-mono text-[11px] font-normal text-muted-foreground",children:e.replace(/^https:\/\//,"")})]}):null}function S(e=null){let{data:t}=(0,f.useServerRoute)(l.queryKey.config),n=(0,x.isConfigSet)(t,h.TEXT_MODEL_PROVIDERS.chatgpt.apiKeyName),{data:r}=(0,f.useServerRoute)(n?l.queryKey.llmModel:null),{data:a}=(0,f.useServerRoute)(n?l.queryKey.subscriptionUsage:null),i=(!a||"refused"in a?null:a.plan)??r?.find(e=>"chatgpt"===e.id)?.plan??null,s=void 0!==t&&(!n||void 0!==r),o=(0,h.planCallsOf)(n?{plan:i}:null);return{known:s,signedIn:n,plan:i,planCalls:o,line:s?(0,m.liveLineOf)(e,e=>(0,x.isConfigSet)(t,e),i):null,countsForCall:e=>(0,x.isConfigSet)(t,e)&&(e!==h.TEXT_MODEL_PROVIDERS.chatgpt.apiKeyName||o)}}function b({children:e}){return(0,t.jsxs)("span",{className:"flex h-7 items-center justify-center gap-1.5 text-[12.5px] text-muted-foreground",children:[(0,t.jsx)("span",{className:"grid size-4 shrink-0 animate-in place-items-center rounded-full bg-primary text-primary-foreground duration-300 zoom-in-50",children:(0,t.jsx)(r.Check,{className:"size-2.5"})}),e]})}function v({provider:e,title:n,tag:r,about:a,warn:i=!1,children:l}){return(0,t.jsxs)("div",{className:"flex items-center gap-3 rounded-xl p-3 ring-1 ring-border ring-inset",children:[(0,t.jsx)("span",{className:"grid size-8 shrink-0 place-items-center rounded-lg bg-muted/60",children:(0,t.jsx)(d.ProviderIcon,{provider:e,className:"size-4"})}),(0,t.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col gap-0.5",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2 text-[13px] leading-tight font-medium",children:[(0,t.jsx)("span",{className:"truncate",children:n}),r&&(0,t.jsx)("span",{className:"shrink-0 rounded-full px-1.5 font-mono text-[9.5px] leading-4 font-normal text-muted-foreground ring-1 ring-border ring-inset",children:r})]}),(0,t.jsx)("span",{className:(0,g.cn)("text-[11.5px] leading-snug text-pretty",i?g.WAITING_INK:"text-muted-foreground"),children:a})]}),(0,t.jsx)("span",{className:"w-28 shrink-0",children:l})]})}function _({ref:e,autoFocus:n,dense:r=!1,plain:o=!1,onCancel:c,onSaved:d,className:h}){let{data:O}=(0,f.useServerRoute)(l.queryKey.config),[S,b]=(0,i.useState)({}),[v,N]=(0,i.useState)(null),[k,L]=(0,i.useState)(null),[w]=(0,p.useServerAction)(y.setConfigAction,{errorMessage:!1,onError:e=>L(e??"That key was not saved."),onOk:()=>{(0,f.revalidate)(l.queryKey.config),(0,f.revalidate)(l.queryKey.llmModel)}}),T=e=>(S[e]?.trim().length??0)>=u.KEY_MIN,A=async e=>{let t=e.apiKeyName;if(!T(t)||v)return!1;L(null),N(t);try{return await w(t,S[t]),b(e=>({...e,[t]:""})),d?.(e.id),!0}catch{return!1}finally{N(null)}};return(0,i.useImperativeHandle)(e,()=>({pending:()=>T(m.LIVE_PROVIDER.apiKeyName),flush:async()=>!T(m.LIVE_PROVIDER.apiKeyName)||A(m.LIVE_PROVIDER)})),(0,t.jsxs)("div",{className:(0,g.cn)("w-full",r?"space-y-2":"space-y-4",h),children:[r&&!o&&(0,t.jsxs)("div",{className:"flex h-6 items-center justify-between gap-2",children:[(0,t.jsx)("span",{className:"px-0.5 font-mono text-[11px] text-muted-foreground",children:"Voice key"}),c&&(0,t.jsx)(s.Button,{type:"button",size:"icon",variant:"ghost","aria-label":"Not now",onClick:c,className:"-my-1 size-6",children:(0,t.jsx)(a.X,{className:"size-3.5"})})]}),(0,t.jsx)(E,{provider:m.LIVE_PROVIDER,saved:(0,x.isConfigSet)(O,m.LIVE_PROVIDER.apiKeyName),autoFocus:n,dense:r,plain:o,value:S[m.LIVE_PROVIDER.apiKeyName]??"",ready:T(m.LIVE_PROVIDER.apiKeyName),saving:v===m.LIVE_PROVIDER.apiKeyName,onValue:e=>{L(null),b(t=>({...t,[m.LIVE_PROVIDER.apiKeyName]:e}))},onSubmit:()=>void A(m.LIVE_PROVIDER)}),(k||(0,x.isConfigUnreadable)(O,m.LIVE_PROVIDER.apiKeyName))&&(0,t.jsx)("p",{className:(0,g.cn)("px-0.5 leading-5 break-words",r?"text-xs":"text-center text-[13px]",g.WAITING_INK),children:k??(0,x.lostWords)("The OpenAI key saved before","Paste it again.")}),!o&&(0,t.jsx)("p",{className:(0,g.cn)("px-0.5 font-mono text-muted-foreground",r?"text-[11px]":"pt-1 text-center text-[12.5px]"),children:r?"Live voice and reasoning share this OpenAI API key.":"Live uses an OpenAI API key, billed separately from ChatGPT. Stored on this machine, in this app's database."})]})}function E({provider:e,saved:n,autoFocus:r,dense:a,plain:i,value:l,ready:s,saving:o,onValue:u,onSubmit:c}){return(0,t.jsxs)("div",{className:"space-y-2",children:[!i&&(0,t.jsxs)("span",{className:"flex items-center gap-2 px-0.5 text-muted-foreground",children:[(0,t.jsx)(d.ProviderIcon,{provider:e.id,className:"size-4 shrink-0"}),(0,t.jsx)("span",{className:(0,g.cn)("font-mono",a?"text-[11px]":"text-[12.5px]"),children:e.label})]}),(0,t.jsx)(k,{provider:e,saved:n,autoFocus:r,dense:a,mark:i,value:l,ready:s,saving:o,onValue:u,onSubmit:c})]})}let N=e=>e?.replace(/…$/,"")??"";function k({provider:e,saved:n,autoFocus:a,dense:i,mark:l,value:u,ready:c,saving:m,onValue:p,onSubmit:f}){var y;let x,O=(y=e.id,x=N(h.TEXT_MODEL_PROVIDERS[y].keyLooks),Object.entries(h.TEXT_MODEL_PROVIDERS).flatMap(([e,t])=>{let n=N(t.keyLooks);return e!==y&&n&&!x.startsWith(n)?[n]:[]})).some(e=>u.trim().startsWith(e));return(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),f()},className:(0,g.cn)("flex items-center gap-3 rounded-2xl border bg-muted/40 px-4 transition-colors",i?"h-11 rounded-xl px-3":"h-14",n||c?"border-foreground bg-transparent":"border-border"),children:[l&&(0,t.jsx)(d.ProviderIcon,{provider:e.id,className:"size-4 shrink-0 text-muted-foreground"}),(0,t.jsx)(o.Input,{autoFocus:a,type:"password","aria-label":"OpenAI API key",autoComplete:"off",value:u,spellCheck:!1,placeholder:n?"Replace it":"sk-…",onChange:e=>p(e.target.value),className:(0,g.cn)("min-w-0 flex-1 border-0 bg-transparent px-0 font-mono shadow-none focus-visible:ring-0 dark:bg-transparent",i?"h-7 text-[13px]":"h-9 text-[15px]")}),u?(0,t.jsx)(s.Button,{type:"submit",size:"sm",variant:O?"outline":"default",loading:m,disabled:!c,className:(0,g.cn)("shrink-0",i?"h-7 px-3":"h-9 px-4"),children:O?`Not ${e.label}?`:"Save"}):n&&(0,t.jsx)("span",{className:(0,g.cn)("grid shrink-0 animate-in place-items-center rounded-full bg-foreground text-background zoom-in-50 duration-300",i?"size-5":"size-7"),children:(0,t.jsx)(r.Check,{className:i?"size-3":"size-4"})})]})}e.s(["CallLines",0,function({onSaved:e}){let{data:n}=(0,f.useServerRoute)(l.queryKey.config),[r,a]=(0,i.useState)(()=>(0,x.isConfigUnreadable)(n,m.LIVE_PROVIDER.apiKeyName)),o=(0,x.isConfigUnreadable)(n,h.TEXT_MODEL_PROVIDERS.chatgpt.apiKeyName),u=(0,x.isConfigSet)(n,m.LIVE_PROVIDER.apiKeyName),{data:d}=(0,f.useServerRoute)(l.queryKey.thursdaySettings),p=S(d?.runsOn??null),g=p.signedIn&&!p.planCalls,y=p.known&&p.signedIn&&p.planCalls&&!o;return(0,t.jsxs)("div",{className:"flex w-full flex-col gap-2 text-left",children:[!y&&!u&&(0,t.jsx)("p",{className:"font-mono text-[11px] text-muted-foreground",children:"Either one is enough."}),(0,t.jsx)(v,{provider:"chatgpt",title:h.TEXT_MODEL_PROVIDERS.chatgpt.label,tag:p.signedIn?(0,h.planName)(p.plan)??void 0:void 0,about:o?"The sign-in saved before can't be unlocked any more.":g?"Bots and writing run on this plan; spoken calls don't.":y&&"chatgpt"===p.line?"Calls and bots run on your plan.":y&&"openai"===p.line?"Bots run on your plan; calls run on the key.":"Your ChatGPT plan. No key, no bill by the minute.",warn:o||g,children:y?(0,t.jsx)(b,{children:"Signed in"}):(0,t.jsx)(c.ChatGptSignIn,{variant:g||u?"outline":"brand",size:"sm",className:"w-full rounded-full",label:o||g?"Sign in again":"Sign in"})}),(0,t.jsx)(v,{provider:"openai",title:"OpenAI API key",about:u&&p.known?"chatgpt"===p.line?"Calls run on your plan; switch in Settings › Thursday.":"Calls run on it now, billed by the minute.":"Billed by the minute of call, apart from ChatGPT.",children:u?(0,t.jsx)(b,{children:"Saved"}):(0,t.jsx)(s.Button,{size:"sm",variant:g?"brand":"outline","aria-expanded":r,onClick:()=>a(e=>!e),className:"w-full rounded-full",children:"Paste a key"})}),r&&!u&&(0,t.jsxs)("div",{className:"flex animate-in flex-col gap-2.5 pt-1 fade-in slide-in-from-top-1 duration-200",children:[(0,t.jsx)(_,{dense:!0,plain:!0,autoFocus:!0,onSaved:e}),(0,t.jsx)(O,{})]})]})},"KeyInput",0,k,"useVoiceLine",0,S])},658707,561540,e=>{"use strict";var t=e.i(768834),n=e.i(798120),r=e.i(917162),a=e.i(6799),i=e.i(41533),l=e.i(393080),s=e.i(283653),o=e.i(647163),u=e.i(95187);let c=(0,u.createServerReference)("7f4d6ed69616e769fa9bd5cc81d51e7e6d7206f29c",u.callServer,void 0,u.findSourceMapURL,"updateNowAction"),d=(0,t.create)()(()=>({to:null,failed:null})),m=e=>new Promise(t=>setTimeout(t,e));async function h(e){if(d.getState().to)return;d.setState({to:e,failed:null});let t=(t,n=!0)=>d.setState({to:null,failed:{to:e,why:t,running:n}}),r=Date.now()+i.UPDATE.waitMs;for(;Date.now()<r;){let r;await m(i.UPDATE.pollMs);try{r=await (0,s.fetchRoute)(n.queryKey.update)}catch{continue}if(r.current===e)return window.location.reload();if(r.moving?.failed)return t(r.moving.failed);if(!r.moving)return t(`${r.current??"The one before"} runs again.`)}t("The new version did not answer in time.",!1)}async function p(e){try{let t=(0,l.unwrapResult)(await c(e,!1));if(!t.started&&t.busy){if(!await r.notify.confirm({title:`Update to ${e} now?`,description:(({call:e,threads:t})=>[e?"A call is open and ends when Thursday restarts.":null,t?`${1===t?"A job is":`${t} jobs are`} at work: ${1===t?"it pauses and waits":"they pause and wait"} on Continue, and a routine's run ends.`:null].filter(Boolean).join(" "))(t.busy),okText:"Update",cancelText:"Later",cautious:!0}))return;t=(0,l.unwrapResult)(await c(e,!0))}t.started&&h(e)}catch(e){a.toast.add({type:"error",title:"Could not start the update",description:(0,o.errorToString)(e)})}}e.s(["followUpdate",0,h,"moveTo",0,p,"useUpdateStore",0,d],658707);var f=e.i(213377);let g={[f.TOOL_NAMES.memory_recall]:"Checking your notes",[f.TOOL_NAMES.memory_create]:"Starting a note",[f.TOOL_NAMES.memory_remember]:"Noting that down",[f.TOOL_NAMES.memory_describe]:"Renaming a note",[f.TOOL_NAMES.memory_forget]:"Forgetting that",[f.TOOL_NAMES.bash]:"Doing it on this computer",[f.TOOL_NAMES.web_search]:"Searching the web",[f.TOOL_NAMES.load_skill]:"Reading how to do this",[f.TOOL_NAMES.look_at]:"Looking at the picture",[f.TOOL_NAMES.make_deck]:"Making the deck",[f.TOOL_NAMES.end_call]:"Ending the call",[f.TOOL_NAMES.routine]:"Checking your routines"};function y(e,t=28){let n=e.trim().replace(/\s+/g," ");if(n.length<=t)return n;let r=n.slice(0,t),a=r.lastIndexOf(" ");return`${(a>t/2?r.slice(0,a):r).trimEnd()}…`}let x=(e,t)=>"string"==typeof e[t]?e[t].trim():"";function O(e){if(!e)return null;try{let t=JSON.parse(e);if(t&&"object"==typeof t&&!Array.isArray(t))return t}catch{}return null}let S=new Set([f.TOOL_NAMES.thread_tell,f.TOOL_NAMES.thread_answer,f.TOOL_NAMES.thread_status,f.TOOL_NAMES.thread_show,f.TOOL_NAMES.thread_cancel,f.TOOL_NAMES.thread_seen]);function b(e){return Array.isArray(e)?e.flatMap(e=>e&&"object"==typeof e&&"string"==typeof e.url?[e]:[]):[]}e.s(["reasoningTitle",0,function(e){return/^\s*\*\*(.+?)\*\*/.exec(e)?.[1]?.trim()||null},"searchOf",0,function(e,t){if(e!==f.TOOL_NAMES.web_search)return null;try{let e=JSON.parse(t);return{query:"string"==typeof e.query?e.query:null,sources:b(e.sources)}}catch{return null}},"searchQueryOf",0,function(e){let t=O(e)?.query;return"string"==typeof t&&t.trim()?t.trim():null},"searchSourcesOf",0,function(e){return b(O(e)?.sources)},"startedLabel",0,function(e,t){if(e!==f.TOOL_NAMES.thread_start)return null;try{let e=JSON.parse(t);return"string"==typeof e.label?e.label:null}catch{return null}},"toolBot",0,function(e,t,n,r){let a=O(t);if(!a)return null;if(e===f.TOOL_NAMES.thread_start)return"string"==typeof a.bot&&a.bot.trim()?a.bot.trim():null;if(!S.has(e))return null;let i="string"==typeof a.thread?a.thread.trim():"";if(!i||"all"===i.toLowerCase())return null;let l=i.toLowerCase(),s=n?.find(e=>e.id===i)??n?.find(e=>e.label.toLowerCase()===l);return s?e===f.TOOL_NAMES.thread_answer?s.room.questions[0]?.bot??s.bot:s.bot:function(e){let t=O(e);if(!t)return null;if("string"==typeof t.bot&&t.bot.trim())return t.bot.trim();let n=t.answered;return"string"==typeof n?.bot?n.bot:null}(r)},"toolLine",0,function(e,t,n=null){let r;if(e===f.TOOL_NAMES.tool_search||e===f.TOOL_NAMES.tool_call)return"Reaching a connected service";let a=O(t);return(a&&function(e,t,n){if(e===f.TOOL_NAMES.memory_remember||e===f.TOOL_NAMES.memory_create){let n=x(t,"path"),r=function(e){if(!Array.isArray(e.facts))return null;let t=e.facts.map(e=>e&&"object"==typeof e&&"string"==typeof e.text?e.text.trim():"").filter(Boolean);return t.length?{text:t[0],more:t.length-1}:null}(t),a=e===f.TOOL_NAMES.memory_create?"Starting":"Noting";if(!n)return null;if(!r)return`${a} ${n}`;let i=r.more>0?` (+${r.more})`:"";return`${a} ${n}: ${y(r.text)}${i}`}if(e===f.TOOL_NAMES.memory_recall){let e=x(t,"path");return e?`Checking \xb7 ${e}`:null}if(e===f.TOOL_NAMES.memory_describe){let e=x(t,"path");return e?`Renaming \xb7 ${e}`:null}if(e===f.TOOL_NAMES.bash){let e=x(t,"description")||x(t,"command");return e?`On this computer \xb7 ${y(e,44)}`:null}if(e===f.TOOL_NAMES.load_skill){let e=x(t,"name");return e?`Reading the ${e} skill`:null}if(e===f.TOOL_NAMES.look_at){let e=x(t,"path");return e?`Looking at ${e.split("/").filter(Boolean).at(-1)??""}`:null}if(e===f.TOOL_NAMES.make_deck){let e=x(t,"title");return e?`Making the deck \xb7 ${y(e,44)}`:null}if(e===f.TOOL_NAMES.thread_start){let e=x(t,"bot");return e?`Handing this to ${e}`:"Handing this over"}if(e===f.TOOL_NAMES.web_search){let e=x(t,"query");return e?`Searching \xb7 ${e}`:null}if(e===f.TOOL_NAMES.routine){if("create"===t.action){let e=[x(t,"bot"),function(e){if("string"==typeof e.at&&e.at.length>=16){let[t,n]=e.at.split(" "),[r,a,i]=t.split("-").map(Number),l=new Date(r,a-1,i);if(l.toDateString()===new Date().toDateString())return`once at ${n}`;let s=l.toLocaleDateString("en-US",{month:"short",day:"numeric"});return`once, ${s} ${n}`}return"string"==typeof e.time&&e.time?`daily at ${e.time}`:"number"==typeof e.everyHours?`every ${e.everyHours} hours`:null}(t)].filter(Boolean).join(", ");return e?`Setting a routine \xb7 ${e}`:"Setting a routine"}return"change"===t.action?"Changing a routine":"delete"===t.action?"Deleting a routine":null}let r=x(t,"thread");return e===f.TOOL_NAMES.thread_tell?n?`Telling ${n}`:"Passing that on":e===f.TOOL_NAMES.thread_answer?n?`Answering ${n}`:"Answering that":e===f.TOOL_NAMES.thread_cancel?r?`Stopping ${r}`:"Stopping that":e===f.TOOL_NAMES.thread_seen?r?`Marking ${r} as read`:"Marking that as read":e===f.TOOL_NAMES.thread_show?r?`Opening ${r}`:"Opening that":e===f.TOOL_NAMES.thread_status?r&&"all"!==r.toLowerCase()?`Checking on ${r}`:"Checking on the work":null}(e,a,n))??g[e]??((r=e.indexOf("__"))<=0?null:`Reaching ${e.slice(0,r).replace(/[-_]/g," ")}`)}],561540)},333495,e=>{"use strict";var t=e.i(843476),n=e.i(271645),r=e.i(567334),a=e.i(387758),i=e.i(922521),l=e.i(647163);let s={ending:"ending",idle:"idle",connecting:"connecting",listening:"idle",speaking:"speaking",working:"working",delegating:"working"};function o({status:e,failed:n,word:l,size:u,getSpectrum:c,waking:d,held:m,className:h}){let p=(0,i.useIsDark)();return(0,t.jsx)(a.AsciiOrb,{mode:n?"error":s[e],word:l,size:u,color:p?r.ORB_INK.dark:r.ORB_INK.light,getSpectrum:c,waking:d,held:m,className:h})}let u=(0,n.memo)(function({status:e="idle",covered:r=!1,className:a,...i}){let s=(0,n.useRef)(null),[u,c]=(0,n.useState)(null),[d,m]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{let e=s.current;if(!e)return;let t=new ResizeObserver(([e])=>{let t=Math.round(e.contentRect.width);t>0&&c(t)});return t.observe(e),()=>t.disconnect()},[]),(0,n.useEffect)(()=>{let e=requestAnimationFrame(()=>m(!0));return()=>cancelAnimationFrame(e)},[]),(0,t.jsx)("div",{ref:s,className:(0,l.cn)("aspect-square transition-opacity duration-700 ease-out",d&&null!==u?"opacity-100":"opacity-0",a),children:null!==u&&!r&&(0,t.jsx)(o,{...i,status:e,size:u})})});e.s(["Face",0,u])},671228,67045,297825,e=>{"use strict";let t,n;var r=e.i(362201),a=e.i(798120),i=e.i(265402),l=e.i(616172),s=e.i(413168);r.object({place:r.string().max(120).regex(/^[^\n\r]*$/).nullable(),weather:r.object({code:r.number().int().min(0).max(99),temperature:r.number(),low:r.number(),high:r.number(),sunrise:r.string().regex(/^\d{2}:\d{2}$/),sunset:r.string().regex(/^\d{2}:\d{2}$/),gusts:r.number().min(0).nullish()}).nullable()});let o=[{id:"chatgpt",...i.TEXT_MODEL_PROVIDERS.chatgpt},{id:"openai",...i.TEXT_MODEL_PROVIDERS.openai}];r.object({id:r.string().min(1),text:r.string(),said:r.boolean(),pictures:r.array(r.string()).optional()});let u="note",c=e=>e.type===`data-${u}`?e.data:null,d={min:3,max:32},m=r.object({enabled:r.boolean(),phrase:r.string().trim().min(d.min).max(d.max)}),h={enabled:!1,phrase:"hey thursday"},p=r.object({enabled:r.boolean(),combo:r.string().trim().min(1).max(64)}),f={enabled:!1,combo:"alt+shift+KeyT"},g=["off","waiting","any"],y=r.enum(g),x="waiting",O=["center","sides"],S=r.enum(O);r.object({id:r.string().min(1),role:r.enum(["user","assistant","tool"]),tool:r.string().nullish(),text:r.string(),seq:r.number().int().min(0),fragments:r.array(s.LiveFragmentSchema).nullish()}),r.object({id:r.string().min(1),text:r.string(),seq:r.number().int().min(0)}),e.s(["CALL_BACK_DEFAULT",0,x,"CALL_BACK_LABEL",0,{off:"Never",waiting:"When a job needs me",any:"Whenever a job ends"},"CALL_BACK_MODES",0,g,"CAPTION_VIEWS",0,O,"CallBackSchema",0,y,"CaptionViewSchema",0,S,"HOTKEY_DEFAULT",0,f,"HotkeySchema",0,p,"TEXT_CALL_MOVED",0,"moved","TEXT_CALL_NOTE",0,u,"TEXT_CALL_REFUSED",0,"refused","WAKE_DEFAULT",0,h,"WAKE_PHRASE",0,d,"WakeSchema",0,m,"isEnglishPhrase",0,e=>/^[a-z0-9\s'.,!?-]+$/i.test(e.trim())&&/[a-z]/i.test(e),"noteOf",0,c,"notesIn",0,e=>e.flatMap(e=>e.parts.flatMap(e=>{let t=c(e);return t?[t]:[]})),"picturePart",0,e=>({type:"file",mediaType:(0,l.mimeOf)(e),url:a.queryKey.file(e),filename:e.split("/").pop()??e}),"textCallRunsOn",0,e=>o.find(t=>e(t.apiKeyName))?.id??null],671228);var b=e.i(768834);let v=e=>t=>{try{let n=e(t);if(n instanceof Promise)return n;return{then:e=>v(e)(n),catch(e){return this}}}catch(e){return{then(e){return this},catch:t=>v(t)(e)}}};var _=e.i(149666);let E=r.object({wake:m.catch(h),hotkey:p.catch(f),callBack:y.catch(x),captionView:S.catch("sides"),textModel:i.textModelRefSchema.nullable().catch(null)}),N={wake:h,hotkey:f,callBack:x,captionView:"sides",textModel:null},k=(0,b.create)()((t=e=>({...N,carried:null,patch:t=>e(t),carriedDone:()=>e({carried:null})}),n={name:"thursday.settings",version:2,migrate:(e,t)=>t<1&&e&&"object"==typeof e?{...e,webSearch:!0}:e,partialize:e=>({wake:e.wake,hotkey:e.hotkey,callBack:e.callBack,captionView:e.captionView,textModel:e.textModel}),merge:(e,t)=>{let n=E.safeParse(e),r=n.success?n.data:N;return{...t,...r,carried:function(e){if(!e||"object"!=typeof e)return null;let t=[...Object.keys(_.LiveSettingsSchema.shape),"voicePrompt","systemPrompt","model"].filter(t=>t in e);return t.length?Object.fromEntries(t.map(t=>[t,e[t]])):null}(e)}}},(e,r,a)=>{let i,l={storage:function(e){let t;try{t=e()}catch(e){return}return{getItem:e=>{var n;let r=e=>null===e?null:JSON.parse(e,void 0),a=null!=(n=t.getItem(e))?n:null;return a instanceof Promise?a.then(r):r(a)},setItem:(e,n)=>t.setItem(e,JSON.stringify(n,void 0)),removeItem:e=>t.removeItem(e)}}(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...n},s=!1,o=0,u=new Set,c=new Set,d=l.storage;if(!d)return t((...t)=>{console.warn(`[zustand persist middleware] Unable to update item '${l.name}', the given storage is currently unavailable.`),e(...t)});let m=()=>{let e=l.partialize({...r()});return d.setItem(l.name,{state:e,version:l.version})},h=a.setState;a.setState=(e,t)=>(h(e,t),m());let p=t((...t)=>(e(...t),m()));a.getInitialState=()=>p;let f=()=>{var t,n;if(!d)return;let a=++o;s=!1,u.forEach(e=>{var t;return e(null!=(t=r())?t:p)});let h=(null==(n=l.onRehydrateStorage)?void 0:n.call(l,null!=(t=r())?t:p))||void 0;return v(d.getItem.bind(d))(l.name).then(e=>{if(e)if("number"!=typeof e.version||e.version===l.version)return[!1,e.state];else{if(l.migrate){let t=l.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(t=>{var n;if(a!==o)return;let[s,u]=t;if(e(i=l.merge(u,null!=(n=r())?n:p),!0),s)return m()}).then(()=>{a===o&&(null==h||h(r(),void 0),i=r(),s=!0,c.forEach(e=>e(i)))}).catch(e=>{a===o&&(null==h||h(void 0,e))})};return a.persist={setOptions:e=>{l={...l,...e},e.storage&&(d=e.storage)},clearStorage:()=>{++o,null==d||d.removeItem(l.name)},getOptions:()=>l,rehydrate:()=>f(),hasHydrated:()=>s,onHydrate:e=>(u.add(e),()=>{u.delete(e)}),onFinishHydration:e=>(c.add(e),()=>{c.delete(e)})},l.skipHydration||f(),i||p}));e.s(["useThursdayStore",0,k],67045);var L=e.i(271645),w=e.i(609856),T=e.i(283653),A=e.i(95187);let M=(0,A.createServerReference)("7f4cf6dea9c6141412b3e6d6def52b533343f4386a",A.callServer,void 0,A.findSourceMapURL,"seedLiveSettingsAction"),R=(0,A.createServerReference)("7fbf77ce6c49ec79c4c6104f02444d7526016c6fce",A.callServer,void 0,A.findSourceMapURL,"setLiveSettingsAction");e.s(["useLiveSettings",0,function(){let{data:e}=(0,T.useServerRoute)(a.queryKey.thursdaySettings),[t]=(0,w.useServerAction)(R,{onOk:()=>(0,T.revalidate)(a.queryKey.thursdaySettings)}),n=(0,L.useCallback)(e=>void t(e),[t]);return function(){let e=k(e=>e.carried),t=k(e=>e.carriedDone),[n]=(0,w.useServerAction)(M,{onOk:e=>{e&&(0,T.revalidate)(a.queryKey.thursdaySettings)},errorMessage:!1});(0,L.useEffect)(()=>{e&&(t(),n(e))},[e,t,n])}(),{settings:e,patch:n}}],297825)},375775,e=>{"use strict";var t=e.i(456420);let n={name:"arrow-up-right",size:24,node:[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]};n.node;let r=(0,t.default)(n);e.s(["ArrowUpRight",0,r],375775)},422411,525335,e=>{"use strict";var t=e.i(456420);let n={name:"audio-lines",size:24,node:[["path",{d:"M2 10v3",key:"1fnikh"}],["path",{d:"M6 6v11",key:"11sgs0"}],["path",{d:"M10 3v18",key:"yhl04a"}],["path",{d:"M14 8v7",key:"3a1oy3"}],["path",{d:"M18 5v13",key:"123xd1"}],["path",{d:"M22 10v3",key:"154ddg"}]]};n.node;let r=(0,t.default)(n);e.s(["AudioLines",0,r],422411);let a={name:"captions",size:24,node:[["rect",{width:"18",height:"14",x:"3",y:"5",rx:"2",ry:"2",key:"12ruh7"}],["path",{d:"M7 15h4M15 15h2M7 11h2M13 11h4",key:"1ueiar"}]],aliases:["subtitles"]};a.node;let i=(0,t.default)(a);e.s(["Captions",0,i],525335)},508734,e=>{"use strict";var t=e.i(456420);let n={name:"copy",size:24,node:[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]};n.node;let r=(0,t.default)(n);e.s(["Copy",0,r],508734)},758925,e=>{"use strict";var t=e.i(456420);let n={name:"key-round",size:24,node:[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]};n.node;let r=(0,t.default)(n);e.s(["KeyRound",0,r],758925)},96315,e=>{"use strict";var t=e.i(456420);let n={name:"mail",size:24,node:[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]]};n.node;let r=(0,t.default)(n);e.s(["Mail",0,r],96315)}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,818125,e=>{"use strict";var t=e.i(843476),n=e.i(271645),r=e.i(798120),a=e.i(647163);e.s(["SiteIcon",0,function({host:e,className:i="size-3.5 rounded-full",fallback:l}){let[s,o]=(0,n.useState)(!1);return s?l??(0,t.jsx)("span",{"aria-hidden":!0,className:(0,a.cn)("grid shrink-0 place-items-center bg-foreground/10 text-[8.5px] font-medium text-foreground/70 uppercase",i),children:e[0]}):(0,t.jsx)("img",{src:r.queryKey.favicon(e),alt:"",onError:()=>o(!0),className:(0,a.cn)("shrink-0",i)})}])},616816,e=>{"use strict";var t=e.i(843476),n=e.i(375775),r=e.i(689664),a=e.i(263676),i=e.i(271645),l=e.i(798120),s=e.i(167881),o=e.i(23750),u=e.i(41533),c=e.i(412294),d=e.i(968978),m=e.i(149666),h=e.i(265402),p=e.i(609856),f=e.i(283653),g=e.i(647163),y=e.i(247632),x=e.i(992112);function O(){let e=h.TEXT_MODEL_PROVIDERS[m.LIVE_PROVIDER.id].keysAt;return e?(0,t.jsxs)("a",{href:e,target:"_blank",rel:"noreferrer",className:"flex items-center gap-2.5 text-[13px] font-medium text-foreground no-underline",children:[(0,t.jsxs)("span",{className:"flex h-7.5 shrink-0 items-center gap-1.5 rounded-full bg-muted px-3.5 whitespace-nowrap transition-colors hover:bg-accent",children:["Get a key",(0,t.jsx)(n.ArrowUpRight,{className:"size-3.5"})]}),(0,t.jsx)("span",{className:"truncate font-mono text-[11px] font-normal text-muted-foreground",children:e.replace(/^https:\/\//,"")})]}):null}function S(e=null){let{data:t}=(0,f.useServerRoute)(l.queryKey.config),n=(0,x.isConfigSet)(t,h.TEXT_MODEL_PROVIDERS.chatgpt.apiKeyName),{data:r}=(0,f.useServerRoute)(n?l.queryKey.llmModel:null),{data:a}=(0,f.useServerRoute)(n?l.queryKey.subscriptionUsage:null),i=(!a||"refused"in a?null:a.plan)??r?.find(e=>"chatgpt"===e.id)?.plan??null,s=void 0!==t&&(!n||void 0!==r),o=(0,h.planCallsOf)(n?{plan:i}:null);return{known:s,signedIn:n,plan:i,planCalls:o,line:s?(0,m.liveLineOf)(e,e=>(0,x.isConfigSet)(t,e),i):null,countsForCall:e=>(0,x.isConfigSet)(t,e)&&(e!==h.TEXT_MODEL_PROVIDERS.chatgpt.apiKeyName||o)}}function b({children:e}){return(0,t.jsxs)("span",{className:"flex h-7 items-center justify-center gap-1.5 text-[12.5px] text-muted-foreground",children:[(0,t.jsx)("span",{className:"grid size-4 shrink-0 animate-in place-items-center rounded-full bg-primary text-primary-foreground duration-300 zoom-in-50",children:(0,t.jsx)(r.Check,{className:"size-2.5"})}),e]})}function v({provider:e,title:n,tag:r,about:a,warn:i=!1,children:l}){return(0,t.jsxs)("div",{className:"flex items-center gap-3 rounded-xl p-3 ring-1 ring-border ring-inset",children:[(0,t.jsx)("span",{className:"grid size-8 shrink-0 place-items-center rounded-lg bg-muted/60",children:(0,t.jsx)(d.ProviderIcon,{provider:e,className:"size-4"})}),(0,t.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col gap-0.5",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2 text-[13px] leading-tight font-medium",children:[(0,t.jsx)("span",{className:"truncate",children:n}),r&&(0,t.jsx)("span",{className:"shrink-0 rounded-full px-1.5 font-mono text-[9.5px] leading-4 font-normal text-muted-foreground ring-1 ring-border ring-inset",children:r})]}),(0,t.jsx)("span",{className:(0,g.cn)("text-[11.5px] leading-snug text-pretty",i?g.WAITING_INK:"text-muted-foreground"),children:a})]}),(0,t.jsx)("span",{className:"w-28 shrink-0",children:l})]})}function _({ref:e,autoFocus:n,dense:r=!1,plain:o=!1,onCancel:c,onSaved:d,className:h}){let{data:O}=(0,f.useServerRoute)(l.queryKey.config),[S,b]=(0,i.useState)({}),[v,N]=(0,i.useState)(null),[k,L]=(0,i.useState)(null),[w]=(0,p.useServerAction)(y.setConfigAction,{errorMessage:!1,onError:e=>L(e??"That key was not saved."),onOk:()=>{(0,f.revalidate)(l.queryKey.config),(0,f.revalidate)(l.queryKey.llmModel)}}),T=e=>(S[e]?.trim().length??0)>=u.KEY_MIN,A=async e=>{let t=e.apiKeyName;if(!T(t)||v)return!1;L(null),N(t);try{return await w(t,S[t]),b(e=>({...e,[t]:""})),d?.(e.id),!0}catch{return!1}finally{N(null)}};return(0,i.useImperativeHandle)(e,()=>({pending:()=>T(m.LIVE_PROVIDER.apiKeyName),flush:async()=>!T(m.LIVE_PROVIDER.apiKeyName)||A(m.LIVE_PROVIDER)})),(0,t.jsxs)("div",{className:(0,g.cn)("w-full",r?"space-y-2":"space-y-4",h),children:[r&&!o&&(0,t.jsxs)("div",{className:"flex h-6 items-center justify-between gap-2",children:[(0,t.jsx)("span",{className:"px-0.5 font-mono text-[11px] text-muted-foreground",children:"Voice key"}),c&&(0,t.jsx)(s.Button,{type:"button",size:"icon",variant:"ghost","aria-label":"Not now",onClick:c,className:"-my-1 size-6",children:(0,t.jsx)(a.X,{className:"size-3.5"})})]}),(0,t.jsx)(E,{provider:m.LIVE_PROVIDER,saved:(0,x.isConfigSet)(O,m.LIVE_PROVIDER.apiKeyName),autoFocus:n,dense:r,plain:o,value:S[m.LIVE_PROVIDER.apiKeyName]??"",ready:T(m.LIVE_PROVIDER.apiKeyName),saving:v===m.LIVE_PROVIDER.apiKeyName,onValue:e=>{L(null),b(t=>({...t,[m.LIVE_PROVIDER.apiKeyName]:e}))},onSubmit:()=>void A(m.LIVE_PROVIDER)}),(k||(0,x.isConfigUnreadable)(O,m.LIVE_PROVIDER.apiKeyName))&&(0,t.jsx)("p",{className:(0,g.cn)("px-0.5 leading-5 break-words",r?"text-xs":"text-center text-[13px]",g.WAITING_INK),children:k??(0,x.lostWords)("The OpenAI key saved before","Paste it again.")}),!o&&(0,t.jsx)("p",{className:(0,g.cn)("px-0.5 font-mono text-muted-foreground",r?"text-[11px]":"pt-1 text-center text-[12.5px]"),children:r?"Live voice and reasoning share this OpenAI API key.":"Live uses an OpenAI API key, billed separately from ChatGPT. Stored on this machine, in this app's database."})]})}function E({provider:e,saved:n,autoFocus:r,dense:a,plain:i,value:l,ready:s,saving:o,onValue:u,onSubmit:c}){return(0,t.jsxs)("div",{className:"space-y-2",children:[!i&&(0,t.jsxs)("span",{className:"flex items-center gap-2 px-0.5 text-muted-foreground",children:[(0,t.jsx)(d.ProviderIcon,{provider:e.id,className:"size-4 shrink-0"}),(0,t.jsx)("span",{className:(0,g.cn)("font-mono",a?"text-[11px]":"text-[12.5px]"),children:e.label})]}),(0,t.jsx)(k,{provider:e,saved:n,autoFocus:r,dense:a,mark:i,value:l,ready:s,saving:o,onValue:u,onSubmit:c})]})}let N=e=>e?.replace(/…$/,"")??"";function k({provider:e,saved:n,autoFocus:a,dense:i,mark:l,value:u,ready:c,saving:m,onValue:p,onSubmit:f}){var y;let x,O=(y=e.id,x=N(h.TEXT_MODEL_PROVIDERS[y].keyLooks),Object.entries(h.TEXT_MODEL_PROVIDERS).flatMap(([e,t])=>{let n=N(t.keyLooks);return e!==y&&n&&!x.startsWith(n)?[n]:[]})).some(e=>u.trim().startsWith(e));return(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),f()},className:(0,g.cn)("flex items-center gap-3 rounded-2xl border bg-muted/40 px-4 transition-colors",i?"h-11 rounded-xl px-3":"h-14",n||c?"border-foreground bg-transparent":"border-border"),children:[l&&(0,t.jsx)(d.ProviderIcon,{provider:e.id,className:"size-4 shrink-0 text-muted-foreground"}),(0,t.jsx)(o.Input,{autoFocus:a,type:"password","aria-label":"OpenAI API key",autoComplete:"off",value:u,spellCheck:!1,placeholder:n?"Replace it":"sk-…",onChange:e=>p(e.target.value),className:(0,g.cn)("min-w-0 flex-1 border-0 bg-transparent px-0 font-mono shadow-none focus-visible:ring-0 dark:bg-transparent",i?"h-7 text-[13px]":"h-9 text-[15px]")}),u?(0,t.jsx)(s.Button,{type:"submit",size:"sm",variant:O?"outline":"default",loading:m,disabled:!c,className:(0,g.cn)("shrink-0",i?"h-7 px-3":"h-9 px-4"),children:O?`Not ${e.label}?`:"Save"}):n&&(0,t.jsx)("span",{className:(0,g.cn)("grid shrink-0 animate-in place-items-center rounded-full bg-foreground text-background zoom-in-50 duration-300",i?"size-5":"size-7"),children:(0,t.jsx)(r.Check,{className:i?"size-3":"size-4"})})]})}e.s(["CallLines",0,function({onSaved:e}){let{data:n}=(0,f.useServerRoute)(l.queryKey.config),[r,a]=(0,i.useState)(()=>(0,x.isConfigUnreadable)(n,m.LIVE_PROVIDER.apiKeyName)),o=(0,x.isConfigUnreadable)(n,h.TEXT_MODEL_PROVIDERS.chatgpt.apiKeyName),u=(0,x.isConfigSet)(n,m.LIVE_PROVIDER.apiKeyName),{data:d}=(0,f.useServerRoute)(l.queryKey.thursdaySettings),p=S(d?.runsOn??null),g=p.signedIn&&!p.planCalls,y=p.known&&p.signedIn&&p.planCalls&&!o;return(0,t.jsxs)("div",{className:"flex w-full flex-col gap-2 text-left",children:[!y&&!u&&(0,t.jsx)("p",{className:"font-mono text-[11px] text-muted-foreground",children:"Either one is enough."}),(0,t.jsx)(v,{provider:"chatgpt",title:h.TEXT_MODEL_PROVIDERS.chatgpt.label,tag:p.signedIn?(0,h.planName)(p.plan)??void 0:void 0,about:o?"The sign-in saved before can't be unlocked any more.":g?"Bots and writing run on this plan; spoken calls don't.":y&&"chatgpt"===p.line?"Calls and bots run on your plan.":y&&"openai"===p.line?"Bots run on your plan; calls run on the key.":"Your ChatGPT plan. No key, no bill by the minute.",warn:o||g,children:y?(0,t.jsx)(b,{children:"Signed in"}):(0,t.jsx)(c.ChatGptSignIn,{variant:g||u?"outline":"brand",size:"sm",className:"w-full rounded-full",label:o||g?"Sign in again":"Sign in"})}),(0,t.jsx)(v,{provider:"openai",title:"OpenAI API key",about:u&&p.known?"chatgpt"===p.line?"Calls run on your plan; switch in Settings › Thursday.":"Calls run on it now, billed by the minute.":"Billed by the minute of call, apart from ChatGPT.",children:u?(0,t.jsx)(b,{children:"Saved"}):(0,t.jsx)(s.Button,{size:"sm",variant:g?"brand":"outline","aria-expanded":r,onClick:()=>a(e=>!e),className:"w-full rounded-full",children:"Paste a key"})}),r&&!u&&(0,t.jsxs)("div",{className:"flex animate-in flex-col gap-2.5 pt-1 fade-in slide-in-from-top-1 duration-200",children:[(0,t.jsx)(_,{dense:!0,plain:!0,autoFocus:!0,onSaved:e}),(0,t.jsx)(O,{})]})]})},"KeyInput",0,k,"useVoiceLine",0,S])},658707,561540,e=>{"use strict";var t=e.i(768834),n=e.i(798120),r=e.i(917162),a=e.i(6799),i=e.i(41533),l=e.i(393080),s=e.i(283653),o=e.i(647163),u=e.i(95187);let c=(0,u.createServerReference)("7fed4721b15726c0b650a27203ffaa1ec2678f8e2d",u.callServer,void 0,u.findSourceMapURL,"updateNowAction"),d=(0,t.create)()(()=>({to:null,failed:null})),m=e=>new Promise(t=>setTimeout(t,e));async function h(e){if(d.getState().to)return;d.setState({to:e,failed:null});let t=(t,n=!0)=>d.setState({to:null,failed:{to:e,why:t,running:n}}),r=Date.now()+i.UPDATE.waitMs;for(;Date.now()<r;){let r;await m(i.UPDATE.pollMs);try{r=await (0,s.fetchRoute)(n.queryKey.update)}catch{continue}if(r.current===e)return window.location.reload();if(r.moving?.failed)return t(r.moving.failed);if(!r.moving)return t(`${r.current??"The one before"} runs again.`)}t("The new version did not answer in time.",!1)}async function p(e){try{let t=(0,l.unwrapResult)(await c(e,!1));if(!t.started&&t.busy){if(!await r.notify.confirm({title:`Update to ${e} now?`,description:(({call:e,threads:t})=>[e?"A call is open and ends when Thursday restarts.":null,t?`${1===t?"A job is":`${t} jobs are`} at work: ${1===t?"it pauses and waits":"they pause and wait"} on Continue, and a routine's run ends.`:null].filter(Boolean).join(" "))(t.busy),okText:"Update",cancelText:"Later",cautious:!0}))return;t=(0,l.unwrapResult)(await c(e,!0))}t.started&&h(e)}catch(e){a.toast.add({type:"error",title:"Could not start the update",description:(0,o.errorToString)(e)})}}e.s(["followUpdate",0,h,"moveTo",0,p,"useUpdateStore",0,d],658707);var f=e.i(213377);let g={[f.TOOL_NAMES.memory_recall]:"Checking your notes",[f.TOOL_NAMES.memory_create]:"Starting a note",[f.TOOL_NAMES.memory_remember]:"Noting that down",[f.TOOL_NAMES.memory_describe]:"Renaming a note",[f.TOOL_NAMES.memory_forget]:"Forgetting that",[f.TOOL_NAMES.bash]:"Doing it on this computer",[f.TOOL_NAMES.web_search]:"Searching the web",[f.TOOL_NAMES.load_skill]:"Reading how to do this",[f.TOOL_NAMES.look_at]:"Looking at the picture",[f.TOOL_NAMES.make_deck]:"Making the deck",[f.TOOL_NAMES.end_call]:"Ending the call",[f.TOOL_NAMES.routine]:"Checking your routines"};function y(e,t=28){let n=e.trim().replace(/\s+/g," ");if(n.length<=t)return n;let r=n.slice(0,t),a=r.lastIndexOf(" ");return`${(a>t/2?r.slice(0,a):r).trimEnd()}…`}let x=(e,t)=>"string"==typeof e[t]?e[t].trim():"";function O(e){if(!e)return null;try{let t=JSON.parse(e);if(t&&"object"==typeof t&&!Array.isArray(t))return t}catch{}return null}let S=new Set([f.TOOL_NAMES.thread_tell,f.TOOL_NAMES.thread_answer,f.TOOL_NAMES.thread_status,f.TOOL_NAMES.thread_show,f.TOOL_NAMES.thread_cancel,f.TOOL_NAMES.thread_seen]);function b(e){return Array.isArray(e)?e.flatMap(e=>e&&"object"==typeof e&&"string"==typeof e.url?[e]:[]):[]}e.s(["reasoningTitle",0,function(e){return/^\s*\*\*(.+?)\*\*/.exec(e)?.[1]?.trim()||null},"searchOf",0,function(e,t){if(e!==f.TOOL_NAMES.web_search)return null;try{let e=JSON.parse(t);return{query:"string"==typeof e.query?e.query:null,sources:b(e.sources)}}catch{return null}},"searchQueryOf",0,function(e){let t=O(e)?.query;return"string"==typeof t&&t.trim()?t.trim():null},"searchSourcesOf",0,function(e){return b(O(e)?.sources)},"startedLabel",0,function(e,t){if(e!==f.TOOL_NAMES.thread_start)return null;try{let e=JSON.parse(t);return"string"==typeof e.label?e.label:null}catch{return null}},"toolBot",0,function(e,t,n,r){let a=O(t);if(!a)return null;if(e===f.TOOL_NAMES.thread_start)return"string"==typeof a.bot&&a.bot.trim()?a.bot.trim():null;if(!S.has(e))return null;let i="string"==typeof a.thread?a.thread.trim():"";if(!i||"all"===i.toLowerCase())return null;let l=i.toLowerCase(),s=n?.find(e=>e.id===i)??n?.find(e=>e.label.toLowerCase()===l);return s?e===f.TOOL_NAMES.thread_answer?s.room.questions[0]?.bot??s.bot:s.bot:function(e){let t=O(e);if(!t)return null;if("string"==typeof t.bot&&t.bot.trim())return t.bot.trim();let n=t.answered;return"string"==typeof n?.bot?n.bot:null}(r)},"toolLine",0,function(e,t,n=null){let r;if(e===f.TOOL_NAMES.tool_search||e===f.TOOL_NAMES.tool_call)return"Reaching a connected service";let a=O(t);return(a&&function(e,t,n){if(e===f.TOOL_NAMES.memory_remember||e===f.TOOL_NAMES.memory_create){let n=x(t,"path"),r=function(e){if(!Array.isArray(e.facts))return null;let t=e.facts.map(e=>e&&"object"==typeof e&&"string"==typeof e.text?e.text.trim():"").filter(Boolean);return t.length?{text:t[0],more:t.length-1}:null}(t),a=e===f.TOOL_NAMES.memory_create?"Starting":"Noting";if(!n)return null;if(!r)return`${a} ${n}`;let i=r.more>0?` (+${r.more})`:"";return`${a} ${n}: ${y(r.text)}${i}`}if(e===f.TOOL_NAMES.memory_recall){let e=x(t,"path");return e?`Checking \xb7 ${e}`:null}if(e===f.TOOL_NAMES.memory_describe){let e=x(t,"path");return e?`Renaming \xb7 ${e}`:null}if(e===f.TOOL_NAMES.bash){let e=x(t,"description")||x(t,"command");return e?`On this computer \xb7 ${y(e,44)}`:null}if(e===f.TOOL_NAMES.load_skill){let e=x(t,"name");return e?`Reading the ${e} skill`:null}if(e===f.TOOL_NAMES.look_at){let e=x(t,"path");return e?`Looking at ${e.split("/").filter(Boolean).at(-1)??""}`:null}if(e===f.TOOL_NAMES.make_deck){let e=x(t,"title");return e?`Making the deck \xb7 ${y(e,44)}`:null}if(e===f.TOOL_NAMES.thread_start){let e=x(t,"bot");return e?`Handing this to ${e}`:"Handing this over"}if(e===f.TOOL_NAMES.web_search){let e=x(t,"query");return e?`Searching \xb7 ${e}`:null}if(e===f.TOOL_NAMES.routine){if("create"===t.action){let e=[x(t,"bot"),function(e){if("string"==typeof e.at&&e.at.length>=16){let[t,n]=e.at.split(" "),[r,a,i]=t.split("-").map(Number),l=new Date(r,a-1,i);if(l.toDateString()===new Date().toDateString())return`once at ${n}`;let s=l.toLocaleDateString("en-US",{month:"short",day:"numeric"});return`once, ${s} ${n}`}return"string"==typeof e.time&&e.time?`daily at ${e.time}`:"number"==typeof e.everyHours?`every ${e.everyHours} hours`:null}(t)].filter(Boolean).join(", ");return e?`Setting a routine \xb7 ${e}`:"Setting a routine"}return"change"===t.action?"Changing a routine":"delete"===t.action?"Deleting a routine":null}let r=x(t,"thread");return e===f.TOOL_NAMES.thread_tell?n?`Telling ${n}`:"Passing that on":e===f.TOOL_NAMES.thread_answer?n?`Answering ${n}`:"Answering that":e===f.TOOL_NAMES.thread_cancel?r?`Stopping ${r}`:"Stopping that":e===f.TOOL_NAMES.thread_seen?r?`Marking ${r} as read`:"Marking that as read":e===f.TOOL_NAMES.thread_show?r?`Opening ${r}`:"Opening that":e===f.TOOL_NAMES.thread_status?r&&"all"!==r.toLowerCase()?`Checking on ${r}`:"Checking on the work":null}(e,a,n))??g[e]??((r=e.indexOf("__"))<=0?null:`Reaching ${e.slice(0,r).replace(/[-_]/g," ")}`)}],561540)},333495,e=>{"use strict";var t=e.i(843476),n=e.i(271645),r=e.i(567334),a=e.i(387758),i=e.i(922521),l=e.i(647163);let s={ending:"ending",idle:"idle",connecting:"connecting",listening:"idle",speaking:"speaking",working:"working",delegating:"working"};function o({status:e,failed:n,word:l,size:u,getSpectrum:c,waking:d,held:m,className:h}){let p=(0,i.useIsDark)();return(0,t.jsx)(a.AsciiOrb,{mode:n?"error":s[e],word:l,size:u,color:p?r.ORB_INK.dark:r.ORB_INK.light,getSpectrum:c,waking:d,held:m,className:h})}let u=(0,n.memo)(function({status:e="idle",covered:r=!1,className:a,...i}){let s=(0,n.useRef)(null),[u,c]=(0,n.useState)(null),[d,m]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{let e=s.current;if(!e)return;let t=new ResizeObserver(([e])=>{let t=Math.round(e.contentRect.width);t>0&&c(t)});return t.observe(e),()=>t.disconnect()},[]),(0,n.useEffect)(()=>{let e=requestAnimationFrame(()=>m(!0));return()=>cancelAnimationFrame(e)},[]),(0,t.jsx)("div",{ref:s,className:(0,l.cn)("aspect-square transition-opacity duration-700 ease-out",d&&null!==u?"opacity-100":"opacity-0",a),children:null!==u&&!r&&(0,t.jsx)(o,{...i,status:e,size:u})})});e.s(["Face",0,u])},671228,67045,297825,e=>{"use strict";let t,n;var r=e.i(362201),a=e.i(798120),i=e.i(265402),l=e.i(616172),s=e.i(413168);r.object({place:r.string().max(120).regex(/^[^\n\r]*$/).nullable(),weather:r.object({code:r.number().int().min(0).max(99),temperature:r.number(),low:r.number(),high:r.number(),sunrise:r.string().regex(/^\d{2}:\d{2}$/),sunset:r.string().regex(/^\d{2}:\d{2}$/),gusts:r.number().min(0).nullish()}).nullable()});let o=[{id:"chatgpt",...i.TEXT_MODEL_PROVIDERS.chatgpt},{id:"openai",...i.TEXT_MODEL_PROVIDERS.openai}];r.object({id:r.string().min(1),text:r.string(),said:r.boolean(),pictures:r.array(r.string()).optional()});let u="note",c=e=>e.type===`data-${u}`?e.data:null,d={min:3,max:32},m=r.object({enabled:r.boolean(),phrase:r.string().trim().min(d.min).max(d.max)}),h={enabled:!1,phrase:"hey thursday"},p=r.object({enabled:r.boolean(),combo:r.string().trim().min(1).max(64)}),f={enabled:!1,combo:"alt+shift+KeyT"},g=["off","waiting","any"],y=r.enum(g),x="waiting",O=["center","sides"],S=r.enum(O);r.object({id:r.string().min(1),role:r.enum(["user","assistant","tool"]),tool:r.string().nullish(),text:r.string(),seq:r.number().int().min(0),fragments:r.array(s.LiveFragmentSchema).nullish()}),r.object({id:r.string().min(1),text:r.string(),seq:r.number().int().min(0)}),e.s(["CALL_BACK_DEFAULT",0,x,"CALL_BACK_LABEL",0,{off:"Never",waiting:"When a job needs me",any:"Whenever a job ends"},"CALL_BACK_MODES",0,g,"CAPTION_VIEWS",0,O,"CallBackSchema",0,y,"CaptionViewSchema",0,S,"HOTKEY_DEFAULT",0,f,"HotkeySchema",0,p,"TEXT_CALL_MOVED",0,"moved","TEXT_CALL_NOTE",0,u,"TEXT_CALL_REFUSED",0,"refused","WAKE_DEFAULT",0,h,"WAKE_PHRASE",0,d,"WakeSchema",0,m,"isEnglishPhrase",0,e=>/^[a-z0-9\s'.,!?-]+$/i.test(e.trim())&&/[a-z]/i.test(e),"noteOf",0,c,"notesIn",0,e=>e.flatMap(e=>e.parts.flatMap(e=>{let t=c(e);return t?[t]:[]})),"picturePart",0,e=>({type:"file",mediaType:(0,l.mimeOf)(e),url:a.queryKey.file(e),filename:e.split("/").pop()??e}),"textCallRunsOn",0,e=>o.find(t=>e(t.apiKeyName))?.id??null],671228);var b=e.i(768834);let v=e=>t=>{try{let n=e(t);if(n instanceof Promise)return n;return{then:e=>v(e)(n),catch(e){return this}}}catch(e){return{then(e){return this},catch:t=>v(t)(e)}}};var _=e.i(149666);let E=r.object({wake:m.catch(h),hotkey:p.catch(f),callBack:y.catch(x),captionView:S.catch("sides"),textModel:i.textModelRefSchema.nullable().catch(null)}),N={wake:h,hotkey:f,callBack:x,captionView:"sides",textModel:null},k=(0,b.create)()((t=e=>({...N,carried:null,patch:t=>e(t),carriedDone:()=>e({carried:null})}),n={name:"thursday.settings",version:2,migrate:(e,t)=>t<1&&e&&"object"==typeof e?{...e,webSearch:!0}:e,partialize:e=>({wake:e.wake,hotkey:e.hotkey,callBack:e.callBack,captionView:e.captionView,textModel:e.textModel}),merge:(e,t)=>{let n=E.safeParse(e),r=n.success?n.data:N;return{...t,...r,carried:function(e){if(!e||"object"!=typeof e)return null;let t=[...Object.keys(_.LiveSettingsSchema.shape),"voicePrompt","systemPrompt","model"].filter(t=>t in e);return t.length?Object.fromEntries(t.map(t=>[t,e[t]])):null}(e)}}},(e,r,a)=>{let i,l={storage:function(e){let t;try{t=e()}catch(e){return}return{getItem:e=>{var n;let r=e=>null===e?null:JSON.parse(e,void 0),a=null!=(n=t.getItem(e))?n:null;return a instanceof Promise?a.then(r):r(a)},setItem:(e,n)=>t.setItem(e,JSON.stringify(n,void 0)),removeItem:e=>t.removeItem(e)}}(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...n},s=!1,o=0,u=new Set,c=new Set,d=l.storage;if(!d)return t((...t)=>{console.warn(`[zustand persist middleware] Unable to update item '${l.name}', the given storage is currently unavailable.`),e(...t)});let m=()=>{let e=l.partialize({...r()});return d.setItem(l.name,{state:e,version:l.version})},h=a.setState;a.setState=(e,t)=>(h(e,t),m());let p=t((...t)=>(e(...t),m()));a.getInitialState=()=>p;let f=()=>{var t,n;if(!d)return;let a=++o;s=!1,u.forEach(e=>{var t;return e(null!=(t=r())?t:p)});let h=(null==(n=l.onRehydrateStorage)?void 0:n.call(l,null!=(t=r())?t:p))||void 0;return v(d.getItem.bind(d))(l.name).then(e=>{if(e)if("number"!=typeof e.version||e.version===l.version)return[!1,e.state];else{if(l.migrate){let t=l.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(t=>{var n;if(a!==o)return;let[s,u]=t;if(e(i=l.merge(u,null!=(n=r())?n:p),!0),s)return m()}).then(()=>{a===o&&(null==h||h(r(),void 0),i=r(),s=!0,c.forEach(e=>e(i)))}).catch(e=>{a===o&&(null==h||h(void 0,e))})};return a.persist={setOptions:e=>{l={...l,...e},e.storage&&(d=e.storage)},clearStorage:()=>{++o,null==d||d.removeItem(l.name)},getOptions:()=>l,rehydrate:()=>f(),hasHydrated:()=>s,onHydrate:e=>(u.add(e),()=>{u.delete(e)}),onFinishHydration:e=>(c.add(e),()=>{c.delete(e)})},l.skipHydration||f(),i||p}));e.s(["useThursdayStore",0,k],67045);var L=e.i(271645),w=e.i(609856),T=e.i(283653),A=e.i(95187);let M=(0,A.createServerReference)("7f8f6af917ed78fe51f9e133766adf726e0d77c95c",A.callServer,void 0,A.findSourceMapURL,"seedLiveSettingsAction"),R=(0,A.createServerReference)("7fd1c1d0fb645ffc44a9b70288dc4db4ae5c1d628b",A.callServer,void 0,A.findSourceMapURL,"setLiveSettingsAction");e.s(["useLiveSettings",0,function(){let{data:e}=(0,T.useServerRoute)(a.queryKey.thursdaySettings),[t]=(0,w.useServerAction)(R,{onOk:()=>(0,T.revalidate)(a.queryKey.thursdaySettings)}),n=(0,L.useCallback)(e=>void t(e),[t]);return function(){let e=k(e=>e.carried),t=k(e=>e.carriedDone),[n]=(0,w.useServerAction)(M,{onOk:e=>{e&&(0,T.revalidate)(a.queryKey.thursdaySettings)},errorMessage:!1});(0,L.useEffect)(()=>{e&&(t(),n(e))},[e,t,n])}(),{settings:e,patch:n}}],297825)},375775,e=>{"use strict";var t=e.i(456420);let n={name:"arrow-up-right",size:24,node:[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]};n.node;let r=(0,t.default)(n);e.s(["ArrowUpRight",0,r],375775)},422411,525335,e=>{"use strict";var t=e.i(456420);let n={name:"audio-lines",size:24,node:[["path",{d:"M2 10v3",key:"1fnikh"}],["path",{d:"M6 6v11",key:"11sgs0"}],["path",{d:"M10 3v18",key:"yhl04a"}],["path",{d:"M14 8v7",key:"3a1oy3"}],["path",{d:"M18 5v13",key:"123xd1"}],["path",{d:"M22 10v3",key:"154ddg"}]]};n.node;let r=(0,t.default)(n);e.s(["AudioLines",0,r],422411);let a={name:"captions",size:24,node:[["rect",{width:"18",height:"14",x:"3",y:"5",rx:"2",ry:"2",key:"12ruh7"}],["path",{d:"M7 15h4M15 15h2M7 11h2M13 11h4",key:"1ueiar"}]],aliases:["subtitles"]};a.node;let i=(0,t.default)(a);e.s(["Captions",0,i],525335)},508734,e=>{"use strict";var t=e.i(456420);let n={name:"copy",size:24,node:[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]};n.node;let r=(0,t.default)(n);e.s(["Copy",0,r],508734)},758925,e=>{"use strict";var t=e.i(456420);let n={name:"key-round",size:24,node:[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]};n.node;let r=(0,t.default)(n);e.s(["KeyRound",0,r],758925)},96315,e=>{"use strict";var t=e.i(456420);let n={name:"mail",size:24,node:[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]]};n.node;let r=(0,t.default)(n);e.s(["Mail",0,r],96315)}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,457343,e=>{"use strict";var t=e.i(843476),s=e.i(867927),n=e.i(632781),a=e.i(648119),i=e.i(929272),r=e.i(759659),o=e.i(263676),l=e.i(271645),d=e.i(798120),c=e.i(167881),u=e.i(630374),x=e.i(463415),m=e.i(917162),h=e.i(660302),p=e.i(671428),f=e.i(41533),g=e.i(443497),j=e.i(95187);let b=(0,j.createServerReference)("7f406c75a0bfd6be4499140e470b90c9a641d8dd96",j.callServer,void 0,j.findSourceMapURL,"clearFinishedThreadsAction"),k=(0,j.createServerReference)("7f9036554878215e168d95c6b5e789e2c0ec76686f",j.callServer,void 0,j.findSourceMapURL,"deleteThreadAction");var N=e.i(451888),w=e.i(635963),v=e.i(835878),y=e.i(222055),S=e.i(351866),T=e.i(978411),M=e.i(431594),D=e.i(895836),C=e.i(245629),z=e.i(609856),R=e.i(661504),A=e.i(283653),I=e.i(647163),$=e.i(399512);let O="w-36";function F({thread:e,bots:a,open:i,onOpen:r,onStop:o,onDelete:d}){let c="running"===e.status,u=(0,l.useMemo)(()=>(0,T.threadFromRow)(e,a),[e,a]),x=function(e){let t=e.room.questions[0];if(t)return{text:(0,I.plainText)(t.text),tone:I.WAITING_INK};if("waiting"===e.status&&e.ask)return{text:(0,N.isAppStop)(e.ask)?(0,I.plainText)(e.outcome??e.ask.question):e.ask.question,tone:I.WAITING_INK};let s=e.seen;if("cancelled"===e.status)return{text:"Stopped",tone:"text-muted-foreground"};if("done"===e.status)return{text:(0,I.plainText)(e.outcome??"Done"),tone:s?"text-muted-foreground":"text-foreground/80"};for(let t=e.lines.length-1;t>=0;t--){let s=e.lines[t];if("tool"===s.kind)return{text:s.note??s.input,tone:"text-muted-foreground",tool:s.name,shine:!0};if("text"===s.kind)return{text:s.text,tone:"text-muted-foreground",shine:!0};if("user"===s.kind)break}return{text:`${e.bot} is taking it on…`,tone:"text-muted-foreground italic",shine:!0}}(e),m=e.tokens.input+e.tokens.output;return(0,t.jsxs)("div",{className:(0,I.cn)("group/row relative transition-colors",i?"bg-muted/80":"hover:bg-muted/50"),children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 p-4",children:[(0,t.jsxs)("button",{type:"button",onClick:r,className:"flex min-w-0 flex-1 items-center gap-3 rounded-md text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",children:[(0,t.jsx)(w.BotMark,{size:40,seed:e.bot,...(0,w.markOf)(e.bot,a),state:c?"thinking":"idle",notify:(0,N.needsThreadReply)(e)||(0,N.isUnread)(e),crossed:"cancelled"===e.status,className:"shrink-0"}),(0,t.jsxs)("span",{className:"min-w-0 flex-1 space-y-0.5",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"truncate text-sm font-medium",children:e.label}),e.routineId&&(0,t.jsx)("span",{title:"Started by a routine",className:"shrink-0",children:(0,t.jsx)(M.RoutineMark,{className:"size-3 text-muted-foreground/80"})}),(0,t.jsx)(v.BotRoster,{bots:u.roster}),c&&(0,t.jsx)(n.Loader2,{className:"size-3 shrink-0 animate-spin text-muted-foreground"})]}),x&&(0,t.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5 text-[13px] leading-snug",children:[x.tool&&(0,t.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted-foreground",children:x.tool}),x.shine?(0,t.jsx)(h.ShinyText,{text:x.text,speed:2.2,className:"min-w-0 truncate"}):(0,t.jsx)("span",{className:(0,I.cn)("min-w-0 truncate",x.tone),children:x.text})]})]}),(0,t.jsxs)("span",{className:(0,I.cn)("flex shrink-0 flex-col items-end gap-0.5 font-mono text-[11px] leading-4 text-muted-foreground tabular-nums",O),children:[(0,t.jsx)("span",{children:(0,C.whenOf)(e.updatedAt)}),(0,t.jsxs)("span",{className:"max-w-full truncate text-muted-foreground",title:m>0?`${e.id} \xb7 in ${(0,I.formatCount)(e.tokens.input)} \xb7 out ${(0,I.formatCount)(e.tokens.output)}`:e.id,children:[e.bot,m>0&&` \xb7 ${(0,I.formatCount)(m)}`]})]}),(0,t.jsx)(s.ChevronRight,{className:"size-4 shrink-0 text-muted-foreground"})]}),(0,t.jsx)(q,{thread:e,onStop:o,onDelete:d})]}),c&&(0,t.jsx)(B,{thread:e})]})}function q({thread:e,onStop:s,onDelete:n,className:o}){let l="running"===e.status||"waiting"===e.status;return(0,t.jsxs)(x.DropdownMenu,{children:[(0,t.jsx)(x.DropdownMenuTrigger,{render:(0,t.jsx)(c.Button,{size:"icon-sm",variant:"ghost","aria-label":"More",className:o}),children:(0,t.jsx)(a.MoreHorizontal,{})}),(0,t.jsxs)(x.DropdownMenuContent,{align:"end",children:[l&&(0,t.jsxs)(x.DropdownMenuItem,{onClick:s,children:[(0,t.jsx)(i.Square,{}),"Stop"]}),(0,t.jsxs)(x.DropdownMenuItem,{variant:"destructive",onClick:n,children:[(0,t.jsx)(r.Trash2,{}),"Delete"]})]})]})}function K({thread:e,whole:s,bots:n,onClose:a,onStop:i,onDelete:r}){let[d,x]=(0,l.useState)(null),m=(0,l.useCallback)(e=>{x(e?.closest("[data-slot=dialog-content]")??null)},[]),[h,f]=(0,l.useState)({}),g=(0,l.useMemo)(()=>e?(0,T.threadFromRow)(e,n):null,[e,n]),j=(0,l.useMemo)(()=>s?(0,T.threadFromRow)(s,n):g?.lines.length?g:null,[s,g,n]),b=e?h[e.id]??null:null;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{ref:m,hidden:!0}),(0,t.jsx)(u.Dialog,{open:!!(e&&d),onOpenChange:e=>!e&&a(),modal:!1,disablePointerDismissal:!0,children:(0,t.jsx)(u.DialogPortal,{container:d,children:(0,t.jsx)(u.DialogPopup,{className:"absolute inset-y-0 right-0 z-10 flex w-[min(35rem,calc(100%-13rem))] flex-col border-l border-border/60 bg-popover text-popover-foreground shadow-2xl shadow-black/10 duration-150 data-open:animate-in data-open:fade-in-0 data-open:slide-in-from-right-4 data-closed:animate-out data-closed:fade-out-0 data-closed:slide-out-to-right-4",children:e&&g&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-2.5 pt-3.5 pr-3 pb-1.5 pl-5",children:[(0,t.jsx)(w.BotMark,{size:28,seed:e.bot,...(0,w.markOf)(e.bot,n),state:"running"===e.status?"thinking":"idle",notify:(0,N.needsThreadReply)(e),crossed:"cancelled"===e.status,className:"shrink-0"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)(u.DialogTitle,{className:"sr-only",children:e.label}),(0,t.jsx)("p",{className:"truncate text-[15px] leading-5 font-semibold",children:e.label}),(0,t.jsxs)("div",{className:"mt-0.5 flex min-w-0 items-center gap-2 font-mono text-[11px] text-muted-foreground",children:[(0,t.jsxs)("span",{title:e.id,className:"min-w-0 truncate",children:[e.bot," · ",(0,C.whenOf)(e.updatedAt)]}),(0,t.jsx)(S.ThreadFacts,{thread:g})]})]}),(0,t.jsx)(q,{thread:e,onStop:()=>i(e),onDelete:()=>r(e),className:"text-muted-foreground"}),(0,t.jsx)(u.DialogClose,{render:(0,t.jsx)(c.Button,{size:"icon-sm",variant:"ghost","aria-label":"Close the thread"}),children:(0,t.jsx)(o.X,{})})]}),j?(0,t.jsx)(S.Conversation,{thread:j,tab:b,onTab:t=>f(s=>({...s,[e.id]:t})),className:"max-h-none min-h-0 flex-1 px-5",tabsClassName:"px-5"}):(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col gap-2 px-5 py-4",children:[(0,t.jsx)(p.Skeleton,{className:"h-3 w-4/5"}),(0,t.jsx)(p.Skeleton,{className:"h-3 w-3/5"}),(0,t.jsx)(p.Skeleton,{className:"h-3 w-2/3"})]}),(0,t.jsx)("div",{className:"shrink-0 px-5 pt-2 pb-4",children:(0,t.jsx)($.ThreadReply,{thread:{id:e.id,label:e.label,bot:e.bot,ask:e.ask,room:e.room},status:e.status,faces:g.roster,to:b??e.bot,claimsDrops:!1})})]})})})})]})}function B({thread:e}){let s=[];if(e.lines.forEach((t,n)=>{if("tool"!==t.kind)return;let a=e.lines[n+1];s.push({step:t,took:a?(0,C.toDate)(a.at).getTime()-(0,C.toDate)(t.at).getTime():null})}),0===s.length)return null;let a=(0,C.toDate)(e.updatedAt).getTime()-(0,C.toDate)(e.createdAt).getTime();return(0,t.jsxs)("div",{className:"pointer-events-none absolute top-[calc(100%-0.75rem)] left-17 z-20 hidden w-96 max-w-[calc(100%-5rem)] rounded-xl bg-background p-3 pb-2 shadow-xl shadow-black/10 ring-1 ring-border/60 group-hover/row:block",children:[(0,t.jsxs)("div",{className:"mb-1.5 flex items-center gap-2 font-mono text-[10px] text-muted-foreground",children:[(0,t.jsx)("span",{children:e.bot}),(0,t.jsx)("span",{className:"opacity-50",children:"·"}),(0,t.jsxs)("span",{children:[s.length," ",1===s.length?"step":"steps"]}),(0,t.jsx)("span",{className:"opacity-50",children:"·"}),(0,t.jsx)("span",{children:E(a)})]}),s.slice(-6).map(({step:e,took:s})=>{let a=(0,y.toolIcon)(e.name);return(0,t.jsxs)("div",{className:"flex h-5.5 items-center gap-2 font-mono text-[11px]",children:[null===s?(0,t.jsx)(n.Loader2,{className:"size-3 shrink-0 animate-spin text-muted-foreground"}):(0,t.jsx)(a,{className:"size-3 shrink-0 text-muted-foreground"}),(0,t.jsx)("span",{className:"w-24 shrink-0 truncate text-muted-foreground",children:e.name}),null===s?(0,t.jsx)(h.ShinyText,{text:e.note??e.input,speed:2.2,className:"min-w-0 flex-1 truncate"}):(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate text-foreground",children:e.note??e.input}),(0,t.jsx)("span",{className:"w-10 shrink-0 text-right text-muted-foreground tabular-nums",children:null===s?"":E(s)})]},e.id)})]})}function E(e){let t=Math.max(0,e)/1e3;if(t<10)return`${t.toFixed(1)}s`;if(t<60)return`${Math.round(t)}s`;let s=Math.floor(t/60);return`${s}m ${Math.round(t-60*s)}s`}function P(){return(0,t.jsxs)("div",{className:"flex items-center gap-3 p-4",children:[(0,t.jsx)(p.Skeleton,{className:"size-10 shrink-0 rounded-full"}),(0,t.jsxs)("span",{className:"min-w-0 flex-1 space-y-2",children:[(0,t.jsx)(p.Skeleton,{className:"h-3 w-40 max-w-full"}),(0,t.jsx)(p.Skeleton,{className:"h-2.5 w-80 max-w-full"})]}),(0,t.jsxs)("span",{className:(0,I.cn)("flex shrink-0 flex-col items-end gap-1.5",O),children:[(0,t.jsx)(p.Skeleton,{className:"h-2.5 w-12"}),(0,t.jsx)(p.Skeleton,{className:"h-2.5 w-24"})]}),(0,t.jsx)("span",{className:"size-4 shrink-0"}),(0,t.jsx)("span",{className:"size-7 shrink-0"})]})}e.s(["ThreadSetting",0,function(){let[e,s]=(0,l.useState)(null),[n,a]=(0,l.useState)(""),i=n.trim(),[r,o]=(0,l.useState)("");(0,l.useEffect)(()=>{let e=setTimeout(()=>o(i),f.SEARCH_WAIT_MS);return()=>clearTimeout(e)},[i]);let{data:u}=(0,A.useServerRoute)(d.queryKey.bot),{items:x,isLoading:h,isLoadingMore:p,error:j,hasMore:w,sentinelRef:v}=(0,R.useServerPages)({key:(e,t)=>{if(0===e)return d.queryKey.threadHistory(null,r);let s=t?.at(-1);return s?d.queryKey.threadHistory((0,C.toDate)(s.updatedAt).toISOString(),r):null},size:f.PAGE_SIZE}),y=x.find(t=>t.id===e),{data:S}=(0,A.useServerRoute)(e?d.queryKey.thread(e):null),M=S?.id===e?S:void 0;(0,T.useSeenOnDetail)(y);let[I]=(0,z.useServerAction)(g.cancelThreadAction,{onOk:e=>{(0,A.revalidate)(d.queryKey.threads),T.screenActs.announce({kind:"stopped",id:e.id,label:e.label})}}),[$]=(0,z.useServerAction)(k,{onOk:()=>(0,A.revalidate)(d.queryKey.threads)}),[O]=(0,z.useServerAction)(b,{onOk:()=>(0,A.revalidate)(d.queryKey.threads)}),q=async()=>{await m.notify.confirm({title:"Clear finished jobs?",description:"Everything done or stopped goes, messages included. Running and waiting jobs stay.",okText:"Clear",destructive:!0})&&O()},B=async t=>{if(!await m.notify.confirm({title:`Delete "${t.label}"?`,description:"Its messages go with it — nothing can be picked back up.",okText:"Delete",destructive:!0}))return;let n=x.findIndex(e=>e.id===t.id),a=x[n+1]??x[n-1];try{await $(t.id)}catch{return}t.id===e&&s(a?.id??null)};if(h)return(0,t.jsx)(D.SettingSkeleton,{rows:3});if(j)return(0,t.jsx)(D.SettingError,{message:j.message});let E=x.filter(e=>"waiting"===e.status).length,H=x.filter(N.isUnread).length;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(D.SettingScreen,{footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(D.SettingRailNote,{children:[x.length," shown",E>0&&` \xb7 ${E} waiting on you`,H>0&&` \xb7 ${H} new result${1===H?"":"s"}`]}),(w||x.some(e=>"done"===e.status||"cancelled"===e.status))&&(0,t.jsx)(c.Button,{variant:"outline",size:"sm",onClick:q,children:"Clear finished"})]}),children:(0,t.jsx)(D.SettingGroup,{filter:(0,t.jsx)(D.SettingFilter,{value:n,onChange:a,placeholder:"Filter by label, bot or word"}),right:r?`${x.length}${w?"+":""} found`:void 0,children:(0,t.jsxs)(D.SettingItems,{children:[0===x.length?(0,t.jsx)("p",{className:"p-4 text-sm leading-relaxed text-muted-foreground",children:r?"No job matches that.":"Nothing yet. When Thursday hands a job to a bot mid-call, it shows up here — while it runs, and after."}):x.map(e=>(0,t.jsx)(F,{thread:e,bots:u,open:e.id===y?.id,onOpen:()=>s(e.id),onStop:()=>I(e.id),onDelete:()=>B(e)},e.id)),(0,t.jsx)(D.SettingMore,{hasMore:w,loading:p,sentinelRef:v,ghost:(0,t.jsx)(P,{}),className:"divide-y divide-border/60"})]})})}),(0,t.jsx)(K,{thread:y,whole:M,bots:u,onClose:()=>s(null),onStop:e=>I(e.id),onDelete:B})]})}],457343)},648119,e=>{"use strict";var t=e.i(456420);let s={name:"ellipsis",size:24,node:[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],aliases:["more-horizontal"]};s.node;let n=(0,t.default)(s);e.s(["MoreHorizontal",0,n],648119)},759659,e=>{"use strict";var t=e.i(456420);let s={name:"trash",size:24,node:[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],aliases:["trash-2"]};s.node;let n=(0,t.default)(s);e.s(["Trash2",0,n],759659)}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,457343,e=>{"use strict";var t=e.i(843476),s=e.i(867927),n=e.i(632781),a=e.i(648119),i=e.i(929272),r=e.i(759659),o=e.i(263676),l=e.i(271645),d=e.i(798120),c=e.i(167881),u=e.i(630374),x=e.i(463415),m=e.i(917162),h=e.i(660302),p=e.i(671428),f=e.i(41533),g=e.i(476278),j=e.i(95187);let b=(0,j.createServerReference)("7f60b42b6cd75a1e0d789f88a5d32346710f5cc6d0",j.callServer,void 0,j.findSourceMapURL,"clearFinishedThreadsAction"),k=(0,j.createServerReference)("7f5895532b0c6b8a3e8a3b1b0250f1c5b76e6badc0",j.callServer,void 0,j.findSourceMapURL,"deleteThreadAction");var N=e.i(451888),w=e.i(635963),v=e.i(835878),y=e.i(222055),S=e.i(351866),T=e.i(978411),M=e.i(431594),D=e.i(895836),C=e.i(245629),z=e.i(609856),R=e.i(661504),A=e.i(283653),I=e.i(647163),$=e.i(399512);let O="w-36";function F({thread:e,bots:a,open:i,onOpen:r,onStop:o,onDelete:d}){let c="running"===e.status,u=(0,l.useMemo)(()=>(0,T.threadFromRow)(e,a),[e,a]),x=function(e){let t=e.room.questions[0];if(t)return{text:(0,I.plainText)(t.text),tone:I.WAITING_INK};if("waiting"===e.status&&e.ask)return{text:(0,N.isAppStop)(e.ask)?(0,I.plainText)(e.outcome??e.ask.question):e.ask.question,tone:I.WAITING_INK};let s=e.seen;if("cancelled"===e.status)return{text:"Stopped",tone:"text-muted-foreground"};if("done"===e.status)return{text:(0,I.plainText)(e.outcome??"Done"),tone:s?"text-muted-foreground":"text-foreground/80"};for(let t=e.lines.length-1;t>=0;t--){let s=e.lines[t];if("tool"===s.kind)return{text:s.note??s.input,tone:"text-muted-foreground",tool:s.name,shine:!0};if("text"===s.kind)return{text:s.text,tone:"text-muted-foreground",shine:!0};if("user"===s.kind)break}return{text:`${e.bot} is taking it on…`,tone:"text-muted-foreground italic",shine:!0}}(e),m=e.tokens.input+e.tokens.output;return(0,t.jsxs)("div",{className:(0,I.cn)("group/row relative transition-colors",i?"bg-muted/80":"hover:bg-muted/50"),children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 p-4",children:[(0,t.jsxs)("button",{type:"button",onClick:r,className:"flex min-w-0 flex-1 items-center gap-3 rounded-md text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",children:[(0,t.jsx)(w.BotMark,{size:40,seed:e.bot,...(0,w.markOf)(e.bot,a),state:c?"thinking":"idle",notify:(0,N.needsThreadReply)(e)||(0,N.isUnread)(e),crossed:"cancelled"===e.status,className:"shrink-0"}),(0,t.jsxs)("span",{className:"min-w-0 flex-1 space-y-0.5",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"truncate text-sm font-medium",children:e.label}),e.routineId&&(0,t.jsx)("span",{title:"Started by a routine",className:"shrink-0",children:(0,t.jsx)(M.RoutineMark,{className:"size-3 text-muted-foreground/80"})}),(0,t.jsx)(v.BotRoster,{bots:u.roster}),c&&(0,t.jsx)(n.Loader2,{className:"size-3 shrink-0 animate-spin text-muted-foreground"})]}),x&&(0,t.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5 text-[13px] leading-snug",children:[x.tool&&(0,t.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted-foreground",children:x.tool}),x.shine?(0,t.jsx)(h.ShinyText,{text:x.text,speed:2.2,className:"min-w-0 truncate"}):(0,t.jsx)("span",{className:(0,I.cn)("min-w-0 truncate",x.tone),children:x.text})]})]}),(0,t.jsxs)("span",{className:(0,I.cn)("flex shrink-0 flex-col items-end gap-0.5 font-mono text-[11px] leading-4 text-muted-foreground tabular-nums",O),children:[(0,t.jsx)("span",{children:(0,C.whenOf)(e.updatedAt)}),(0,t.jsxs)("span",{className:"max-w-full truncate text-muted-foreground",title:m>0?`${e.id} \xb7 in ${(0,I.formatCount)(e.tokens.input)} \xb7 out ${(0,I.formatCount)(e.tokens.output)}`:e.id,children:[e.bot,m>0&&` \xb7 ${(0,I.formatCount)(m)}`]})]}),(0,t.jsx)(s.ChevronRight,{className:"size-4 shrink-0 text-muted-foreground"})]}),(0,t.jsx)(q,{thread:e,onStop:o,onDelete:d})]}),c&&(0,t.jsx)(B,{thread:e})]})}function q({thread:e,onStop:s,onDelete:n,className:o}){let l="running"===e.status||"waiting"===e.status;return(0,t.jsxs)(x.DropdownMenu,{children:[(0,t.jsx)(x.DropdownMenuTrigger,{render:(0,t.jsx)(c.Button,{size:"icon-sm",variant:"ghost","aria-label":"More",className:o}),children:(0,t.jsx)(a.MoreHorizontal,{})}),(0,t.jsxs)(x.DropdownMenuContent,{align:"end",children:[l&&(0,t.jsxs)(x.DropdownMenuItem,{onClick:s,children:[(0,t.jsx)(i.Square,{}),"Stop"]}),(0,t.jsxs)(x.DropdownMenuItem,{variant:"destructive",onClick:n,children:[(0,t.jsx)(r.Trash2,{}),"Delete"]})]})]})}function K({thread:e,whole:s,bots:n,onClose:a,onStop:i,onDelete:r}){let[d,x]=(0,l.useState)(null),m=(0,l.useCallback)(e=>{x(e?.closest("[data-slot=dialog-content]")??null)},[]),[h,f]=(0,l.useState)({}),g=(0,l.useMemo)(()=>e?(0,T.threadFromRow)(e,n):null,[e,n]),j=(0,l.useMemo)(()=>s?(0,T.threadFromRow)(s,n):g?.lines.length?g:null,[s,g,n]),b=e?h[e.id]??null:null;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{ref:m,hidden:!0}),(0,t.jsx)(u.Dialog,{open:!!(e&&d),onOpenChange:e=>!e&&a(),modal:!1,disablePointerDismissal:!0,children:(0,t.jsx)(u.DialogPortal,{container:d,children:(0,t.jsx)(u.DialogPopup,{className:"absolute inset-y-0 right-0 z-10 flex w-[min(35rem,calc(100%-13rem))] flex-col border-l border-border/60 bg-popover text-popover-foreground shadow-2xl shadow-black/10 duration-150 data-open:animate-in data-open:fade-in-0 data-open:slide-in-from-right-4 data-closed:animate-out data-closed:fade-out-0 data-closed:slide-out-to-right-4",children:e&&g&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-2.5 pt-3.5 pr-3 pb-1.5 pl-5",children:[(0,t.jsx)(w.BotMark,{size:28,seed:e.bot,...(0,w.markOf)(e.bot,n),state:"running"===e.status?"thinking":"idle",notify:(0,N.needsThreadReply)(e),crossed:"cancelled"===e.status,className:"shrink-0"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)(u.DialogTitle,{className:"sr-only",children:e.label}),(0,t.jsx)("p",{className:"truncate text-[15px] leading-5 font-semibold",children:e.label}),(0,t.jsxs)("div",{className:"mt-0.5 flex min-w-0 items-center gap-2 font-mono text-[11px] text-muted-foreground",children:[(0,t.jsxs)("span",{title:e.id,className:"min-w-0 truncate",children:[e.bot," · ",(0,C.whenOf)(e.updatedAt)]}),(0,t.jsx)(S.ThreadFacts,{thread:g})]})]}),(0,t.jsx)(q,{thread:e,onStop:()=>i(e),onDelete:()=>r(e),className:"text-muted-foreground"}),(0,t.jsx)(u.DialogClose,{render:(0,t.jsx)(c.Button,{size:"icon-sm",variant:"ghost","aria-label":"Close the thread"}),children:(0,t.jsx)(o.X,{})})]}),j?(0,t.jsx)(S.Conversation,{thread:j,tab:b,onTab:t=>f(s=>({...s,[e.id]:t})),className:"max-h-none min-h-0 flex-1 px-5",tabsClassName:"px-5"}):(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col gap-2 px-5 py-4",children:[(0,t.jsx)(p.Skeleton,{className:"h-3 w-4/5"}),(0,t.jsx)(p.Skeleton,{className:"h-3 w-3/5"}),(0,t.jsx)(p.Skeleton,{className:"h-3 w-2/3"})]}),(0,t.jsx)("div",{className:"shrink-0 px-5 pt-2 pb-4",children:(0,t.jsx)($.ThreadReply,{thread:{id:e.id,label:e.label,bot:e.bot,ask:e.ask,room:e.room},status:e.status,faces:g.roster,to:b??e.bot,claimsDrops:!1})})]})})})})]})}function B({thread:e}){let s=[];if(e.lines.forEach((t,n)=>{if("tool"!==t.kind)return;let a=e.lines[n+1];s.push({step:t,took:a?(0,C.toDate)(a.at).getTime()-(0,C.toDate)(t.at).getTime():null})}),0===s.length)return null;let a=(0,C.toDate)(e.updatedAt).getTime()-(0,C.toDate)(e.createdAt).getTime();return(0,t.jsxs)("div",{className:"pointer-events-none absolute top-[calc(100%-0.75rem)] left-17 z-20 hidden w-96 max-w-[calc(100%-5rem)] rounded-xl bg-background p-3 pb-2 shadow-xl shadow-black/10 ring-1 ring-border/60 group-hover/row:block",children:[(0,t.jsxs)("div",{className:"mb-1.5 flex items-center gap-2 font-mono text-[10px] text-muted-foreground",children:[(0,t.jsx)("span",{children:e.bot}),(0,t.jsx)("span",{className:"opacity-50",children:"·"}),(0,t.jsxs)("span",{children:[s.length," ",1===s.length?"step":"steps"]}),(0,t.jsx)("span",{className:"opacity-50",children:"·"}),(0,t.jsx)("span",{children:E(a)})]}),s.slice(-6).map(({step:e,took:s})=>{let a=(0,y.toolIcon)(e.name);return(0,t.jsxs)("div",{className:"flex h-5.5 items-center gap-2 font-mono text-[11px]",children:[null===s?(0,t.jsx)(n.Loader2,{className:"size-3 shrink-0 animate-spin text-muted-foreground"}):(0,t.jsx)(a,{className:"size-3 shrink-0 text-muted-foreground"}),(0,t.jsx)("span",{className:"w-24 shrink-0 truncate text-muted-foreground",children:e.name}),null===s?(0,t.jsx)(h.ShinyText,{text:e.note??e.input,speed:2.2,className:"min-w-0 flex-1 truncate"}):(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate text-foreground",children:e.note??e.input}),(0,t.jsx)("span",{className:"w-10 shrink-0 text-right text-muted-foreground tabular-nums",children:null===s?"":E(s)})]},e.id)})]})}function E(e){let t=Math.max(0,e)/1e3;if(t<10)return`${t.toFixed(1)}s`;if(t<60)return`${Math.round(t)}s`;let s=Math.floor(t/60);return`${s}m ${Math.round(t-60*s)}s`}function P(){return(0,t.jsxs)("div",{className:"flex items-center gap-3 p-4",children:[(0,t.jsx)(p.Skeleton,{className:"size-10 shrink-0 rounded-full"}),(0,t.jsxs)("span",{className:"min-w-0 flex-1 space-y-2",children:[(0,t.jsx)(p.Skeleton,{className:"h-3 w-40 max-w-full"}),(0,t.jsx)(p.Skeleton,{className:"h-2.5 w-80 max-w-full"})]}),(0,t.jsxs)("span",{className:(0,I.cn)("flex shrink-0 flex-col items-end gap-1.5",O),children:[(0,t.jsx)(p.Skeleton,{className:"h-2.5 w-12"}),(0,t.jsx)(p.Skeleton,{className:"h-2.5 w-24"})]}),(0,t.jsx)("span",{className:"size-4 shrink-0"}),(0,t.jsx)("span",{className:"size-7 shrink-0"})]})}e.s(["ThreadSetting",0,function(){let[e,s]=(0,l.useState)(null),[n,a]=(0,l.useState)(""),i=n.trim(),[r,o]=(0,l.useState)("");(0,l.useEffect)(()=>{let e=setTimeout(()=>o(i),f.SEARCH_WAIT_MS);return()=>clearTimeout(e)},[i]);let{data:u}=(0,A.useServerRoute)(d.queryKey.bot),{items:x,isLoading:h,isLoadingMore:p,error:j,hasMore:w,sentinelRef:v}=(0,R.useServerPages)({key:(e,t)=>{if(0===e)return d.queryKey.threadHistory(null,r);let s=t?.at(-1);return s?d.queryKey.threadHistory((0,C.toDate)(s.updatedAt).toISOString(),r):null},size:f.PAGE_SIZE}),y=x.find(t=>t.id===e),{data:S}=(0,A.useServerRoute)(e?d.queryKey.thread(e):null),M=S?.id===e?S:void 0;(0,T.useSeenOnDetail)(y);let[I]=(0,z.useServerAction)(g.cancelThreadAction,{onOk:e=>{(0,A.revalidate)(d.queryKey.threads),T.screenActs.announce({kind:"stopped",id:e.id,label:e.label})}}),[$]=(0,z.useServerAction)(k,{onOk:()=>(0,A.revalidate)(d.queryKey.threads)}),[O]=(0,z.useServerAction)(b,{onOk:()=>(0,A.revalidate)(d.queryKey.threads)}),q=async()=>{await m.notify.confirm({title:"Clear finished jobs?",description:"Everything done or stopped goes, messages included. Running and waiting jobs stay.",okText:"Clear",destructive:!0})&&O()},B=async t=>{if(!await m.notify.confirm({title:`Delete "${t.label}"?`,description:"Its messages go with it — nothing can be picked back up.",okText:"Delete",destructive:!0}))return;let n=x.findIndex(e=>e.id===t.id),a=x[n+1]??x[n-1];try{await $(t.id)}catch{return}t.id===e&&s(a?.id??null)};if(h)return(0,t.jsx)(D.SettingSkeleton,{rows:3});if(j)return(0,t.jsx)(D.SettingError,{message:j.message});let E=x.filter(e=>"waiting"===e.status).length,H=x.filter(N.isUnread).length;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(D.SettingScreen,{footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(D.SettingRailNote,{children:[x.length," shown",E>0&&` \xb7 ${E} waiting on you`,H>0&&` \xb7 ${H} new result${1===H?"":"s"}`]}),(w||x.some(e=>"done"===e.status||"cancelled"===e.status))&&(0,t.jsx)(c.Button,{variant:"outline",size:"sm",onClick:q,children:"Clear finished"})]}),children:(0,t.jsx)(D.SettingGroup,{filter:(0,t.jsx)(D.SettingFilter,{value:n,onChange:a,placeholder:"Filter by label, bot or word"}),right:r?`${x.length}${w?"+":""} found`:void 0,children:(0,t.jsxs)(D.SettingItems,{children:[0===x.length?(0,t.jsx)("p",{className:"p-4 text-sm leading-relaxed text-muted-foreground",children:r?"No job matches that.":"Nothing yet. When Thursday hands a job to a bot mid-call, it shows up here — while it runs, and after."}):x.map(e=>(0,t.jsx)(F,{thread:e,bots:u,open:e.id===y?.id,onOpen:()=>s(e.id),onStop:()=>I(e.id),onDelete:()=>B(e)},e.id)),(0,t.jsx)(D.SettingMore,{hasMore:w,loading:p,sentinelRef:v,ghost:(0,t.jsx)(P,{}),className:"divide-y divide-border/60"})]})})}),(0,t.jsx)(K,{thread:y,whole:M,bots:u,onClose:()=>s(null),onStop:e=>I(e.id),onDelete:B})]})}],457343)},648119,e=>{"use strict";var t=e.i(456420);let s={name:"ellipsis",size:24,node:[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],aliases:["more-horizontal"]};s.node;let n=(0,t.default)(s);e.s(["MoreHorizontal",0,n],648119)},759659,e=>{"use strict";var t=e.i(456420);let s={name:"trash",size:24,node:[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],aliases:["trash-2"]};s.node;let n=(0,t.default)(s);e.s(["Trash2",0,n],759659)}]);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,8912,e=>{"use strict";var s=e.i(843476),t=e.i(437750),n=e.i(375775),i=e.i(91511),a=e.i(758925),o=e.i(97923),r=e.i(456420);let l={name:"log-out",size:24,node:[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]]};l.node;let c=(0,r.default)(l),d={name:"shield-check",size:24,node:[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]};d.node;let u=(0,r.default)(d);var x=e.i(263676),m=e.i(511769),h=e.i(798120),g=e.i(167881),p=e.i(917162),f=e.i(818125),j=e.i(635963),b=e.i(895836),k=e.i(245629),y=e.i(609856),v=e.i(283653),N=e.i(647163),w=e.i(95187);let S=(0,w.createServerReference)("
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,8912,e=>{"use strict";var s=e.i(843476),t=e.i(437750),n=e.i(375775),i=e.i(91511),a=e.i(758925),o=e.i(97923),r=e.i(456420);let l={name:"log-out",size:24,node:[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]]};l.node;let c=(0,r.default)(l),d={name:"shield-check",size:24,node:[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]};d.node;let u=(0,r.default)(d);var x=e.i(263676),m=e.i(511769),h=e.i(798120),g=e.i(167881),p=e.i(917162),f=e.i(818125),j=e.i(635963),b=e.i(895836),k=e.i(245629),y=e.i(609856),v=e.i(283653),N=e.i(647163),w=e.i(95187);let S=(0,w.createServerReference)("7f91c487273ed4770faee1b72573e4df07c0bccc02",w.callServer,void 0,w.findSourceMapURL,"removeSignInAction");var I=e.i(984003);let z=[[t.AppWindow,"A bot opens a window","When its work needs you signed in to a site, it opens that site on your screen and asks."],[o.LogIn,"You sign in there","The app keeps that sign-in here — the site's session, never your password. A second account on a site is kept beside the first."],[u,"Only that bot uses it","Later work is signed in without asking. Another bot has to ask you first."]];function A(){return(0,s.jsx)("ol",{className:"grid gap-3 pb-5 sm:grid-cols-3",children:z.map(([e,t,n],i)=>(0,s.jsxs)("li",{className:"flex gap-3 rounded-xl bg-muted/40 p-3.5",children:[(0,s.jsx)("span",{className:"grid size-8 shrink-0 place-items-center rounded-lg bg-background text-muted-foreground ring-1 ring-border/60",children:(0,s.jsx)(e,{className:"size-4"})}),(0,s.jsxs)("span",{className:"min-w-0 space-y-0.5",children:[(0,s.jsxs)("span",{className:"block text-[13px] font-medium",children:[i+1,". ",t]}),(0,s.jsx)("span",{className:"block text-xs leading-relaxed text-muted-foreground",children:n})]})]},t))})}function $({signIn:e,bots:t}){return(0,s.jsxs)("div",{className:"flex flex-col gap-2.5 p-4",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)(M,{site:e.site}),(0,s.jsxs)("span",{className:"min-w-0 flex-1 space-y-0.5",children:[(0,s.jsx)("span",{className:"block truncate text-sm font-medium",children:e.site}),(0,s.jsx)("span",{className:"block truncate text-[13px] text-muted-foreground",children:e.account})]}),(0,s.jsx)(O,{signIn:e}),(0,s.jsx)(R,{signIn:e,others:0})]}),(0,s.jsx)(C,{signIn:e,bots:t,className:"pl-13"})]})}function K({accounts:e,bots:t}){let{site:n}=e[0];return(0,s.jsxs)("div",{className:"flex flex-col p-4 pb-1",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)(M,{site:n}),(0,s.jsxs)("span",{className:"min-w-0 flex-1 space-y-0.5",children:[(0,s.jsx)("span",{className:"block truncate text-sm font-medium",children:n}),(0,s.jsxs)("span",{className:"block truncate text-[13px] text-muted-foreground",children:[e.length," accounts"]})]})]}),(0,s.jsx)("div",{className:"mt-3 ml-13 flex flex-col",children:e.map(n=>(0,s.jsxs)("div",{className:"flex flex-col gap-2 border-t border-border/60 py-3",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)("span",{className:"min-w-0 flex-1 truncate text-[13.5px] font-medium",children:n.account}),(0,s.jsx)(O,{signIn:n}),(0,s.jsx)(R,{signIn:n,others:e.length-1})]}),(0,s.jsx)(C,{signIn:n,bots:t})]},n.account))})]})}function M({site:e}){return(0,s.jsx)("span",{className:"grid size-10 shrink-0 place-items-center rounded-xl bg-muted/60",children:(0,s.jsx)(f.SiteIcon,{host:e,className:"size-5 rounded-[5px]",fallback:(0,s.jsx)(a.KeyRound,{className:"size-4 text-muted-foreground"})})})}function O({signIn:e}){return(0,s.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted-foreground tabular-nums",children:e.usedAt?`used ${(0,k.whenOf)(e.usedAt)}`:`kept ${(0,k.whenOf)(e.keptAt)}`})}function R({signIn:e,others:t}){let[n,i]=(0,y.useServerAction)(S,{onOk:()=>(0,v.revalidate)(h.queryKey.signIns)}),a=async()=>{await p.notify.confirm({title:t?`Sign out of ${e.account} on ${e.site}?`:`Sign out of ${e.site}?`,description:`What is kept here is removed, and the bots that used it ask you to sign in again.${t?` Your other ${e.site} ${1===t?"account stays":"accounts stay"}.`:""} The site itself may still list the session until it ends it.`,okText:"Sign out",destructive:!0})&&n(e.site,e.account)};return(0,s.jsxs)(g.Button,{variant:"outline",size:"sm",loading:i,"aria-label":t?`Sign out of ${e.account}`:void 0,onClick:()=>void a(),children:[(0,s.jsx)(c,{}),"Sign out"]})}function C({signIn:e,bots:t,className:n}){let[i,a]=(0,y.useServerAction)(I.setSignInBotAction,{onOk:()=>(0,v.revalidate)(h.queryKey.signIns)});return(0,s.jsxs)("div",{className:(0,N.cn)("flex flex-wrap items-center gap-1.5",n),children:[e.bots.map(n=>(0,s.jsxs)("span",{className:"flex h-7 items-center gap-1.5 rounded-full bg-muted/60 pr-1 pl-1.5 text-[13px]",children:[(0,s.jsx)(j.BotMark,{size:18,seed:n,...(0,j.markOf)(n,t)}),n,(0,s.jsx)("button",{type:"button",disabled:a,"aria-label":`${n} may no longer use it`,onClick:()=>void i(e.site,e.account,n,!1),className:"grid size-5 place-items-center rounded-full text-muted-foreground outline-none hover:bg-muted hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:(0,s.jsx)(x.X,{className:"size-3"})})]},n)),0===e.bots.length&&0===e.asking.length&&(0,s.jsx)("span",{className:"text-[13px] text-muted-foreground",children:"No bot may use it. One that needs it will ask."}),e.asking.map(n=>(0,s.jsxs)("span",{className:(0,N.cn)("flex h-7 items-center gap-1.5 rounded-full pr-1 pl-1.5 text-[13px] ring-1 ring-border ring-inset",N.WAITING_INK),children:[(0,s.jsx)(j.BotMark,{size:18,seed:n,...(0,j.markOf)(n,t)}),n," asks",(0,s.jsx)(g.Button,{size:"sm",variant:"secondary",className:"h-5 rounded-full px-2 text-[11px]",disabled:a,onClick:()=>void i(e.site,e.account,n,!0),children:"Allow"})]},n))]})}let T="https://chromewebstore.google.com/detail/playwright-extension/mmlmfjhmonkocbjadbfplnigmagldckm";function B(){return(0,s.jsxs)("div",{className:"flex items-center gap-3 p-4",children:[(0,s.jsx)("span",{className:"grid size-10 shrink-0 place-items-center rounded-xl bg-muted/60",children:(0,s.jsx)(f.SiteIcon,{host:new URL(T).host,className:"size-5 rounded-[5px]",fallback:(0,s.jsx)(i.Globe,{className:"size-4 text-muted-foreground"})})}),(0,s.jsxs)("span",{className:"min-w-0 flex-1 space-y-0.5",children:[(0,s.jsx)("span",{className:"block text-sm font-medium",children:"Your own Chrome"}),(0,s.jsx)("span",{className:"block text-[13px] text-muted-foreground",children:"For a site that will not stay signed in. A bot gets a tab of its own, signed in as you — to every site your Chrome is, not only that one."})]}),(0,s.jsxs)("a",{href:T,target:"_blank",rel:"noreferrer",className:(0,N.cn)((0,g.buttonVariants)({variant:"outline",size:"sm"})),children:["Get the extension",(0,s.jsx)(n.ArrowUpRight,{})]})]})}e.s(["SignInsSetting",0,function(){let{data:e,isLoading:t,error:n}=(0,v.useServerRoute)(h.queryKey.signIns),{data:i}=(0,v.useServerRoute)(h.queryKey.bot);if((0,m.useAppEvent)({signins:()=>void(0,v.revalidate)(h.queryKey.signIns)}),t)return(0,s.jsx)(b.SettingSkeleton,{rows:3});if(n)return(0,s.jsx)(b.SettingError,{message:n.message});let a=e??[];return(0,s.jsxs)(b.SettingScreen,{footer:(0,s.jsx)(b.SettingRailNote,{children:"A site's session as the browser held it — never a password. Kept on this machine, outside the folder the bots work in. It is the whole session: signed in with Google, it carries the Google sign-in too."}),children:[(0,s.jsx)(A,{}),(0,s.jsxs)(b.SettingItems,{children:[0===a.length?(0,s.jsx)("p",{className:"p-4 text-sm leading-relaxed text-muted-foreground",children:"Nothing is kept yet. When a bot needs you signed in somewhere, it opens a window for you to sign in — and that sign-in is kept here for its later work."}):(function(e){let s=new Map;for(let t of e)s.set(t.site,[...s.get(t.site)??[],t]);return[...s.values()]})(a).map(e=>1===e.length?(0,s.jsx)($,{signIn:e[0],bots:i},`${e[0].site}
|
|
2
2
|
${e[0].account}`):(0,s.jsx)(K,{accounts:e,bots:i},e[0].site)),(0,s.jsx)(B,{})]})]})}],8912)},437750,e=>{"use strict";var s=e.i(456420);let t={name:"app-window",size:24,node:[["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}],["path",{d:"M10 4v4",key:"pp8u80"}],["path",{d:"M2 8h20",key:"d11cs7"}],["path",{d:"M6 4v4",key:"1svtjw"}]]};t.node;let n=(0,s.default)(t);e.s(["AppWindow",0,n],437750)}]);
|