thursday-agent 0.17.2 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +1 -0
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +3 -3
- package/.next/routes-manifest.json +6 -0
- package/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/artifact/route.js +7 -7
- package/.next/server/app/api/artifact/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/memory/files/route.js +4 -4
- package/.next/server/app/api/bot/memory/files/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/memory/route.js +1 -1
- package/.next/server/app/api/bot/memory/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/route.js +1 -1
- package/.next/server/app/api/bot/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/thread/[id]/route.js +1 -1
- package/.next/server/app/api/bot/thread/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/thread/file/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/bot/thread/file/route/build-manifest.json +12 -0
- package/.next/server/app/api/bot/thread/file/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/bot/thread/file/route.js +29 -0
- package/.next/server/app/api/bot/thread/file/route.js.map +5 -0
- package/.next/server/app/api/bot/thread/file/route.js.nft.json +1 -0
- package/.next/server/app/api/bot/thread/file/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/bot/thread/route.js +1 -1
- package/.next/server/app/api/bot/thread/route.js.nft.json +1 -1
- package/.next/server/app/api/config/route.js +1 -1
- package/.next/server/app/api/config/route.js.nft.json +1 -1
- package/.next/server/app/api/events/route.js +2 -2
- package/.next/server/app/api/events/route.js.nft.json +1 -1
- package/.next/server/app/api/favicon/[host]/route.js.nft.json +1 -1
- package/.next/server/app/api/file/[...path]/route.js +4 -4
- package/.next/server/app/api/file/[...path]/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/automatic/route.js +1 -1
- package/.next/server/app/api/llm-model/automatic/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/catalog/route.js +1 -1
- package/.next/server/app/api/llm-model/catalog/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/credits/route.js +1 -1
- package/.next/server/app/api/llm-model/credits/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/route.js +1 -1
- package/.next/server/app/api/llm-model/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/subscription/route.js +1 -1
- package/.next/server/app/api/llm-model/subscription/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/[name]/route.js +1 -1
- package/.next/server/app/api/mcp/[name]/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/oauth/callback/route.js +2 -2
- package/.next/server/app/api/mcp/oauth/callback/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/route.js +1 -1
- package/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/tools/route.js +1 -1
- package/.next/server/app/api/mcp/tools/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/edit/route.js +1 -1
- package/.next/server/app/api/memory/edit/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/route.js +1 -1
- package/.next/server/app/api/memory/route.js.nft.json +1 -1
- package/.next/server/app/api/reach/route.js +1 -1
- package/.next/server/app/api/reach/route.js.nft.json +1 -1
- package/.next/server/app/api/routine/route.js +1 -1
- package/.next/server/app/api/routine/route.js.nft.json +1 -1
- package/.next/server/app/api/signins/route.js +1 -1
- package/.next/server/app/api/signins/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/[source]/[name]/route.js +1 -1
- package/.next/server/app/api/skills/[source]/[name]/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/route.js +1 -1
- package/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/call/end/route.js +1 -1
- package/.next/server/app/api/thursday/call/end/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/call/route.js +1 -1
- package/.next/server/app/api/thursday/call/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/settings/route.js +1 -1
- package/.next/server/app/api/thursday/settings/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/text/route.js +1 -1
- package/.next/server/app/api/thursday/text/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/tool-call/route.js +1 -1
- package/.next/server/app/api/thursday/tool-call/route.js.nft.json +1 -1
- package/.next/server/app/api/workspace/files/route.js +1 -1
- package/.next/server/app/api/workspace/files/route.js.nft.json +1 -1
- package/.next/server/app/api/workspace/route.js +1 -1
- package/.next/server/app/api/workspace/route.js.nft.json +1 -1
- package/.next/server/app/artifact/[...path]/page/server-reference-manifest.json +94 -6
- package/.next/server/app/artifact/[...path]/page.js +9 -6
- package/.next/server/app/artifact/[...path]/page.js.nft.json +1 -1
- package/.next/server/app/artifact/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/.next/server/app/page/server-reference-manifest.json +161 -128
- package/.next/server/app/page.js +9 -9
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +1 -0
- package/.next/server/chunks/{[externals]__12stas-._.js → [externals]__178rv3v._.js} +1 -1
- package/.next/server/chunks/[root-of-the-server]__00qyw01._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__02ra64t._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__03xamry._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__04hhvpu._.js +7 -0
- package/.next/server/chunks/[root-of-the-server]__05dp5tr._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0bqveex._.js +1 -1
- package/.next/server/chunks/{[root-of-the-server]__1_h4hf9._.js → [root-of-the-server]__0brmiv2._.js} +4 -4
- package/.next/server/chunks/[root-of-the-server]__0gvdr2h._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__0h656y-._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0lvjz0b._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__0mgyt8p._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0mrk2it._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0my9geo._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0qdoc_9._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__0sm5xvm._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0v_kuor._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__1-rmal0._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__13hng6h._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1_04mcf._.js +2 -2
- package/.next/server/chunks/[root-of-the-server]__1ceammd._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1dth047._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__1etbk64._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1izes4_._.js +7 -0
- package/.next/server/chunks/[root-of-the-server]__1ksm9m-._.js +12 -0
- package/.next/server/chunks/[root-of-the-server]__1m_dmf6._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__1mys2c3._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__1ndi14y._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1p0njle._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__1p47fbb._.js +2 -2
- package/.next/server/chunks/[root-of-the-server]__1ygplx1._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1zn039k._.js +1 -1
- package/.next/server/chunks/_01c32w9._.js +1 -1
- package/.next/server/chunks/_02bov6_._.js +1 -1
- package/.next/server/chunks/_06hnfi8._.js +2 -2
- package/.next/server/chunks/_06u9yo-._.js +1 -1
- package/.next/server/chunks/_07nxi75._.js +42 -41
- package/.next/server/chunks/_08354bn._.js +12 -11
- package/.next/server/chunks/{_08btiir._.js → _08_-9ay._.js} +3 -3
- package/.next/server/chunks/_08s4vft._.js +1 -1
- package/.next/server/chunks/_0bgjf07._.js +5 -0
- package/.next/server/chunks/_0fb6dvr._.js +1 -1
- package/.next/server/chunks/_0hgvg55._.js +1 -1
- package/.next/server/chunks/_0iw19ig._.js +1 -1
- package/.next/server/chunks/_0poi1t2._.js +1 -1
- package/.next/server/chunks/_0srlnvd._.js +6 -6
- package/.next/server/chunks/_0t_7gji._.js +1 -1
- package/.next/server/chunks/_0uzj57i._.js +1 -1
- package/.next/server/chunks/_0wyh244._.js +112 -0
- package/.next/server/chunks/_0xygcxs._.js +42 -41
- package/.next/server/chunks/_1-sk_q4._.js +1 -1
- package/.next/server/chunks/_108gsm8._.js +2 -2
- package/.next/server/chunks/_136j09a._.js +5 -5
- package/.next/server/chunks/_15negpy._.js +2 -2
- package/.next/server/chunks/_1d7og_q._.js +1 -1
- package/.next/server/chunks/_1dxq827._.js +2 -2
- package/.next/server/chunks/_1e54wxa._.js +1 -1
- package/.next/server/chunks/_1gn2r2q._.js +6 -6
- package/.next/server/chunks/_1i3uucm._.js +1 -1
- package/.next/server/chunks/_1jvy78-._.js +5 -0
- package/.next/server/chunks/_1q6e56i._.js +6 -6
- package/.next/server/chunks/_1qgix-j._.js +1 -1
- package/.next/server/chunks/_1wwl_7o._.js +1 -1
- package/.next/server/chunks/_1y8w80a._.js +5 -5
- package/.next/server/chunks/_1yx285_._.js +3 -0
- package/.next/server/chunks/_20qn224._.js +3 -0
- package/.next/server/chunks/_211dn2c._.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_bot_thread_file_route_actions_0q3be0o.js +3 -0
- package/.next/server/chunks/config_ts_1g4sz5o._.js +1 -1
- package/.next/server/chunks/features_bot_08z387_._.js +3 -3
- package/.next/server/chunks/features_workspace_workspace_ts_13h82gv._.js +3 -3
- package/.next/server/chunks/features_workspace_workspace_ts_1iyjroj._.js +3 -3
- package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_04oxl25._.js → node_modules_consola_dist_chunks_prompt_mjs_0yd5xa0._.js} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__04upd5v._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__06knwl5._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__07ehpky._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0h6jo0s._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__128hnrd._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1867koj._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1gzje-h._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__1d7usu0._.js → [root-of-the-server]__1qn0axo._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__1r7tj27._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1tb5vve._.js +46 -0
- package/.next/server/chunks/ssr/{features_bot_1knyan7._.js → _07nmtxo._.js} +2 -2
- package/.next/server/chunks/ssr/{_10-_awu._.js → _0f9hx5p._.js} +2 -2
- package/.next/server/chunks/ssr/_0fo4552._.js +10 -9
- package/.next/server/chunks/ssr/{_123y-ah._.js → _0is8m6y._.js} +2 -2
- package/.next/server/chunks/ssr/{_17a4qyk._.js → _0ixe3g3._.js} +3 -3
- package/.next/server/chunks/ssr/_0j9vh-8._.js +3 -0
- package/.next/server/chunks/ssr/_0l7rjg5._.js +1 -1
- package/.next/server/chunks/ssr/{lib_logger_ts_0-olsze._.js → _0mfgsk-._.js} +4 -2
- package/.next/server/chunks/ssr/_0mpn6q0._.js +5 -0
- package/.next/server/chunks/ssr/{_0e2fnvg._.js → _0osvxkt._.js} +2 -2
- package/.next/server/chunks/ssr/_0p6w0ef._.js +3 -0
- package/.next/server/chunks/ssr/_0pbav_w._.js +3 -0
- package/.next/server/chunks/ssr/{_1aqjk-1._.js → _0wuvkqk._.js} +2 -2
- package/.next/server/chunks/ssr/_0x8ophf._.js +1 -1
- package/.next/server/chunks/ssr/_0x9f717._.js +60 -0
- package/.next/server/chunks/ssr/_1-41lck._.js +1 -1
- package/.next/server/chunks/ssr/_10jtmhl._.js +3 -0
- package/.next/server/chunks/ssr/{_0xfafez._.js → _12jv_41._.js} +2 -2
- package/.next/server/chunks/ssr/{_163dr78._.js → _165wnr4._.js} +2 -2
- package/.next/server/chunks/ssr/_16_7zeo._.js +3 -0
- package/.next/server/chunks/ssr/{_14oirtb._.js → _1_ogjze._.js} +2 -2
- package/.next/server/chunks/ssr/_1bfrntd._.js +6 -0
- package/.next/server/chunks/ssr/_1i2swyr._.js +3 -0
- package/.next/server/chunks/ssr/{_10_ph1t._.js → _1jd8rjm._.js} +2 -2
- package/.next/server/chunks/ssr/_1mdjoak._.js +162 -0
- package/.next/server/chunks/ssr/_1neoj22._.js +1 -1
- package/.next/server/chunks/ssr/{_1dfv66y._.js → _1oafxdu._.js} +2 -2
- package/.next/server/chunks/ssr/_1omom9y._.js +3 -0
- package/.next/server/chunks/ssr/_1pgxh81._.js +271 -0
- package/.next/server/chunks/ssr/{_0vo_oym._.js → _1r4mc3i._.js} +2 -2
- package/.next/server/chunks/ssr/_1soynbw._.js +6 -0
- package/.next/server/chunks/ssr/{_01al00i._.js → _1tx-2k7._.js} +2 -2
- package/.next/server/chunks/ssr/_1w899wx._.js +3 -0
- package/.next/server/chunks/ssr/_1xwtbdz._.js +3 -0
- package/.next/server/chunks/ssr/features_0796o8r._.js +1 -1
- package/.next/server/chunks/ssr/features_bot_0tb4ui-._.js +2 -2
- package/.next/server/chunks/ssr/features_bot_18gqkr_._.js +3 -0
- package/.next/server/chunks/ssr/{features_config_09n-q9q._.js → features_config_1ond01n._.js} +3 -3
- package/.next/server/chunks/ssr/features_connectors_components_mcp-setting_tsx_0jmbgvp._.js +1 -1
- package/.next/server/chunks/ssr/features_memory_components_memory-setting_tsx_0oa43sw._.js +1 -1
- package/.next/server/chunks/ssr/features_routine_components_routine-setting_tsx_055fknz._.js +1 -1
- package/.next/server/chunks/ssr/features_workspace_workspace_ts_1wc7_u_._.js +4 -4
- package/.next/server/chunks/ssr/{node_modules_0msrhxf._.js → node_modules_004qt-z._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0q-klni._.js → node_modules_06m6e97._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_13g-d25._.js → node_modules_09dy7tk._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0gd9hbz._.js → node_modules_0_hy3i2._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1gq3ght._.js → node_modules_0f485jl._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_096up6a._.js → node_modules_0gbx70b._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_13bqv6i._.js → node_modules_0i_v0-m._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_04x5wyv._.js → node_modules_0lrn9ci._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0d6j33x._.js → node_modules_0lxwg2v._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_113l3e5._.js → node_modules_0n2-p5q._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules_0nj36zf._.js +3 -0
- package/.next/server/chunks/ssr/{node_modules_0cjnmzp._.js → node_modules_0ppirau._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0m73b88._.js → node_modules_0pw13ww._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules_0qd7p5f._.js +3 -0
- package/.next/server/chunks/ssr/{node_modules_0nmkv-v._.js → node_modules_0upwx50._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0__0tvm._.js → node_modules_0v__o4h._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1k5i-_9._.js → node_modules_1-4q6is._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_156kv_t._.js → node_modules_10mb0cv._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_10_fv2a._.js → node_modules_16z7p8b._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1lmyts8._.js → node_modules_17o218r._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0k8-y89._.js → node_modules_1gpapfv._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1_8-jcj._.js → node_modules_1hdaxu9._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1ri_eip._.js → node_modules_1hjvwkh._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0nw5jz7._.js → node_modules_1j886a5._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1xb-ndg._.js → node_modules_1srjf5c._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1p_6sq7._.js → node_modules_1tus4vi._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_021lid9._.js → node_modules_1tv_7lk._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1qstb1x._.js → node_modules_20448xv._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0amkw0b._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0lg9pkl._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0zq3l45._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1xgbf5j._.js} +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/middleware.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +205 -132
- package/.next/static/chunks/{166smhw8v-s3j.js → 05uvci-bk-vgp.js} +1 -1
- package/.next/static/chunks/09y_43y1cy5jw.js +1 -0
- package/.next/static/chunks/0_s4z70lx1tgs.js +1 -0
- package/.next/static/chunks/0oqviw3f55nfp.js +58 -0
- package/.next/static/chunks/0q9b2n6l4flqb.js +1 -0
- package/.next/static/chunks/0ruf3dqs--3ve.js +1 -0
- package/.next/static/chunks/0vggwjufw2-6r.js +1 -0
- package/.next/static/chunks/{3sla-dm1puqd1.js → 0x4m9nj2fazl2.js} +1 -1
- package/.next/static/chunks/{3t2c76awm9k_p.js → 1-1yfu34-3p2p.js} +1 -1
- package/.next/static/chunks/10oyyypxn_cpx.js +1 -0
- package/.next/static/chunks/{1cglo3a2mbeou.js → 17dx6w478vnb0.js} +1 -1
- package/.next/static/chunks/184-r80rv0xay.css +1 -0
- package/.next/static/chunks/1_hgdoungpm0o.js +1 -0
- package/.next/static/chunks/{0obogzscwwekj.js → 1dpg1u4a16ujt.js} +1 -1
- package/.next/static/chunks/{2qgkbdshzpq1c.js → 1h_6rh86q3i4p.js} +1 -1
- package/.next/static/chunks/{3b96xy59nl_gd.js → 1pe7i5yu779ta.js} +1 -1
- package/.next/static/chunks/{2zbl41hed17g3.js → 240nfv2dtidhc.js} +1 -1
- package/.next/static/chunks/{0uxq_vs6uxi-b.js → 27l8qwnk1j66z.js} +1 -1
- package/.next/static/chunks/2gxfy__ef51n9.js +3 -0
- package/.next/static/chunks/2kjwmo70judc2.js +15 -0
- package/.next/static/chunks/{3gsxnqqqphh-1.js → 2lzg4zedtmyic.js} +1 -1
- package/.next/static/chunks/2ug8q1x9e-_j6.js +1 -0
- package/.next/static/chunks/{01l7kw74vfp32.js → 2uk8rdtr-pk58.js} +1 -1
- package/.next/static/chunks/337g9g_ux2gj-.js +1 -0
- package/.next/static/chunks/{0o7o0eb7ihxi6.js → 396enq-m0sss5.js} +1 -1
- package/.next/static/chunks/{0p2f6uv4xytfm.js → 3r7u1y9xjoh-v.js} +1 -1
- package/.next/static/chunks/{3jtcieuk1l6tw.js → 3vg1-oc-zgw_7.js} +1 -1
- package/.next/static/chunks/40re_3ukjulg9.js +1 -0
- package/.next/static/chunks/41ztsnjn4qrn-.js +1 -0
- package/README.md +5 -5
- package/bin/autostart.mjs +32 -2
- package/bin/lock.mjs +85 -4
- package/bin/thursday.mjs +42 -15
- package/bin/tools.mjs +18 -1
- package/database/migrations/20260926021847_thread_cache_tokens/migration.sql +2 -0
- package/database/migrations/20260926021847_thread_cache_tokens/snapshot.json +1949 -0
- package/guide/bots.md +173 -317
- package/guide/calls.md +98 -146
- package/guide/index.md +2 -2
- package/guide/memory.md +14 -18
- package/guide/phone.md +86 -133
- package/guide/setup.md +127 -172
- package/guide/trouble.md +42 -65
- package/package.json +1 -1
- package/seed-skills/concierge/travel/scripts/itinerary.mjs +1 -1
- package/skills/artifact/runtime/shell/shell.js +32 -3
- package/.next/server/chunks/[root-of-the-server]__01ypm_z._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__021dkui._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__09gdscj._.js +0 -7
- package/.next/server/chunks/[root-of-the-server]__0ljizgj._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__0nmust6._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__0svzjwa._.js +0 -7
- package/.next/server/chunks/[root-of-the-server]__1c2kwku._.js +0 -12
- package/.next/server/chunks/[root-of-the-server]__1t02-1p._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1t0jj1j._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__1vlxv19._.js +0 -5
- package/.next/server/chunks/_0j0-gq6._.js +0 -5
- package/.next/server/chunks/_0p6v1fr._.js +0 -5
- package/.next/server/chunks/_1ic3bew._.js +0 -5
- package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0g87zst._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0-af_o7._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__09f39cp._.js +0 -4
- package/.next/server/chunks/ssr/[root-of-the-server]__0ouu4qp._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0q9g9ea._.js +0 -5
- package/.next/server/chunks/ssr/[root-of-the-server]__17h1ggo._.js +0 -46
- package/.next/server/chunks/ssr/[root-of-the-server]__1jyeu61._.js +0 -5
- package/.next/server/chunks/ssr/_0afrpci._.js +0 -3
- package/.next/server/chunks/ssr/_0bgse1c._.js +0 -162
- package/.next/server/chunks/ssr/_0qsmpcu._.js +0 -3
- package/.next/server/chunks/ssr/_0z38nha._.js +0 -3
- package/.next/server/chunks/ssr/_116lfdc._.js +0 -3
- package/.next/server/chunks/ssr/_14dfh7a._.js +0 -4
- package/.next/server/chunks/ssr/_17qtuv7._.js +0 -3
- package/.next/server/chunks/ssr/_1_5xof_._.js +0 -3
- package/.next/server/chunks/ssr/_1alxym6._.js +0 -3
- package/.next/server/chunks/ssr/_1ou5sj0._.js +0 -3
- package/.next/server/chunks/ssr/_1tmw842._.js +0 -5
- package/.next/server/chunks/ssr/_1uij_rj._.js +0 -3
- package/.next/server/chunks/ssr/_1w9w1ok._.js +0 -3
- package/.next/server/chunks/ssr/_20gq_24._.js +0 -3
- package/.next/server/chunks/ssr/features_bot_0ouemw8._.js +0 -3
- package/.next/server/chunks/ssr/node_modules_@base-ui_react_1j9i1ho._.js +0 -3
- package/.next/static/chunks/0a5_-jqhaktjj.js +0 -1
- package/.next/static/chunks/0npvak0wpgagb.js +0 -1
- package/.next/static/chunks/19l81deo_pyoc.js +0 -1
- package/.next/static/chunks/1bnhw-5fj7aiz.js +0 -1
- package/.next/static/chunks/1in6nxpu33iab.js +0 -1
- package/.next/static/chunks/1u7kg91f9qy3g.js +0 -1
- package/.next/static/chunks/1xv4g10m-cl1s.js +0 -1
- package/.next/static/chunks/2ajs12-fcdwzm.js +0 -1
- package/.next/static/chunks/2i7qtmxc1kuqg.js +0 -1
- package/.next/static/chunks/2kz1f6r59nky0.js +0 -3
- package/.next/static/chunks/31kn4_h2rvf6k.css +0 -1
- package/.next/static/chunks/35jj-5u4te56r.js +0 -1
- package/.next/static/chunks/37ixzapa06xlo.js +0 -1
- package/.next/static/chunks/3k1d8y03t5nax.js +0 -58
- package/.next/static/chunks/3yiqr95d7ybeq.js +0 -15
- /package/.next/static/{8I2hKtciyA9LXvd8txuOz → -IBxB5oqr6e3RuOCCmYtL}/_buildManifest.js +0 -0
- /package/.next/static/{8I2hKtciyA9LXvd8txuOz → -IBxB5oqr6e3RuOCCmYtL}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{8I2hKtciyA9LXvd8txuOz → -IBxB5oqr6e3RuOCCmYtL}/_ssgManifest.js +0 -0
package/guide/setup.md
CHANGED
|
@@ -2,204 +2,159 @@
|
|
|
2
2
|
|
|
3
3
|
## The first run
|
|
4
4
|
|
|
5
|
-
The first time the app opens,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
`?intro` to the address brings it back.
|
|
5
|
+
The first time the app opens, six steps run on the call screen itself: a voice key, the
|
|
6
|
+
microphone, which bots come along, what they think with, her style, and the first call. In a narrow
|
|
7
|
+
window each step sits under her face. She talks through it in a recorded English voice; her
|
|
8
|
+
real voice starts with the first call. The speaker button at the top right mutes it.
|
|
9
|
+
|
|
10
|
+
Every step can be skipped and done later in Settings. On the microphone step the main button turns
|
|
11
|
+
the microphone on (the browser asks first, by its address bar); the line under it goes on without
|
|
12
|
+
one. The bots picked there are set up when it ends; they work once there is a model to run on.
|
|
13
|
+
With a key the last button is **Call her**; without one it is **Look around**.
|
|
14
|
+
|
|
15
|
+
Once it has been left, by any of its buttons, it does not show again, and **Reset history** does not
|
|
16
|
+
bring it back. Adding `?intro` to the address shows it again; leaving it that way sets up no bots.
|
|
18
17
|
|
|
19
18
|
## Around the screen
|
|
20
19
|
|
|
21
|
-
The buttons at the top right of the call screen open **Thursday**, **Memory** and **Bots
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
first nine.
|
|
26
|
-
|
|
27
|
-
where people who use and build it answer questions, and **GitHub** opens its code, bug reports and
|
|
28
|
-
releases. The theme — **System**, **Light** or **Dark** — is picked at the foot of the list.
|
|
20
|
+
The buttons at the top right of the call screen open **Thursday**, **Memory** and **Bots**, and
|
|
21
|
+
**Settings** opens everything; each carries a dot when something there needs the user. The Settings
|
|
22
|
+
list is Thursday, Memory, Bots, Threads, Routines, Files, Skills, Connectors, Sign-ins, Models,
|
|
23
|
+
API keys and Phone. ⌘K (Ctrl+K) jumps to a section's filter, and ⌘ (Ctrl) with a number from 1 to 9
|
|
24
|
+
opens one of the first nine sections. Under community are **Ask on Discord** and **GitHub**. The
|
|
25
|
+
theme — **System**, **Light** or **Dark** — is at the foot of the list.
|
|
29
26
|
|
|
30
27
|
## Keys
|
|
31
28
|
|
|
32
|
-
**Settings › API keys** holds them, and they stay on this
|
|
33
|
-
needs
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
own
|
|
49
|
-
opens pages in its browser instead.
|
|
29
|
+
**Settings › API keys** holds them, and they stay on this computer. One OpenAI key is all a call
|
|
30
|
+
needs: it pays for both her voice and the model behind it. The key is checked when it is saved,
|
|
31
|
+
and one OpenAI refuses is not kept. Bots can run on the same key.
|
|
32
|
+
|
|
33
|
+
Two easier ways for bots come next:
|
|
34
|
+
|
|
35
|
+
- **GPT Subscription**: sign in with ChatGPT, and bots run on the ChatGPT plan with no key. The row
|
|
36
|
+
shows how much of the plan is used and when it resets. It does not cover a spoken call, which
|
|
37
|
+
OpenAI bills by the minute on a key.
|
|
38
|
+
- **Vercel AI Gateway**: one key for every model; its row shows what credit is left.
|
|
39
|
+
|
|
40
|
+
Under them, every other provider (Claude, Gemini, xAI and more, some behind **More**) is a mark to
|
|
41
|
+
tap and paste a key into, with a link to the page that makes one.
|
|
42
|
+
|
|
43
|
+
A search key (Exa) is optional. With it, calls and bots all search through Exa, which is cheap and
|
|
44
|
+
has free monthly credits. Without it, a call uses OpenAI's own search, and a bot uses its model's
|
|
45
|
+
own search: the GPT Subscription, OpenAI, Claude, Gemini and xAI have one. A bot on the Gateway or
|
|
46
|
+
any other provider has no search of its own, so it opens pages in its browser instead.
|
|
50
47
|
|
|
51
48
|
## Models
|
|
52
49
|
|
|
53
|
-
**Settings › Models** has two groups.
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
else the first provider with a key
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
is picked.
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
that model takes (none, low, medium, high, xhigh and so on). Higher is slower and costs more, and
|
|
69
|
-
**auto** leaves the step to the model, which is where every model starts. The steps differ by model —
|
|
70
|
-
some offer four, some two, and one whose steps the app cannot check offers **auto** alone. Change the
|
|
71
|
-
model and the step comes along where the new one has it, and falls back to **auto** where it does
|
|
72
|
-
not. A bot's own page and the call's backend have the same control; a bot back on **App default**
|
|
73
|
-
follows this one again.
|
|
50
|
+
**Settings › Models** has two groups.
|
|
51
|
+
|
|
52
|
+
- **Bots** holds the **Default model**, which a bot uses when its own page picks none, and its
|
|
53
|
+
effort. Left unset it shows *auto* and names what bots run on now: the GPT Subscription when
|
|
54
|
+
signed in, else OpenAI, else xAI, else the first provider with a key. If the default picked here
|
|
55
|
+
loses its key, bots stop and say so rather than switch to another provider. **App default** at
|
|
56
|
+
the top of a bot's model list puts that bot back on it.
|
|
57
|
+
- **Studio** holds the **Image model**, **Video model**, **Speech model** and **Transcription
|
|
58
|
+
model**. One left unpicked shows *off*, and bots cannot do that kind of work until one is picked.
|
|
59
|
+
|
|
60
|
+
The call's own two models are in **Settings › Thursday**, under Models.
|
|
61
|
+
|
|
62
|
+
**Effort** is how hard a model thinks, shown as a row of buttons: **auto**, then the steps that
|
|
63
|
+
model offers (such as none, low, medium, high, xhigh). Higher is slower and costs more; **auto**
|
|
64
|
+
lets the model decide. A bot's own page and the call's backend have the same control.
|
|
74
65
|
|
|
75
66
|
## Skills
|
|
76
67
|
|
|
77
68
|
A skill is a written-down way of doing something that a bot reads before it starts. The ones that
|
|
78
|
-
ship with the app are every bot
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
**Edit** on a file writes it back, which is how a typo or a changed step is fixed without making
|
|
94
|
-
the skill again; picking another file with changes not saved asks before dropping them. A bot can
|
|
95
|
-
also find one in the open registry while it works, or write a new one. Before it installs one from the registry it asks, saying who published it, its license
|
|
96
|
-
and what its security checks found. Either way it decides whether the skill is for itself alone
|
|
97
|
-
or for every bot: to itself unless any bot would use it or the user said everyone, and its report
|
|
98
|
-
says which. One it keeps for itself shows under its name there, where it can be opened, switched
|
|
99
|
-
off, edited or deleted like one of their own.
|
|
69
|
+
ship with the app are shared by every bot: using the browser; using this Mac's apps (on a Mac only);
|
|
70
|
+
making documents, slides, pages and small apps with charts; reading videos, podcasts, articles and
|
|
71
|
+
PDFs; reports built on published numbers; a daily news brief; finding more skills; and writing a new
|
|
72
|
+
one. **Marketer** and **Concierge** also carry skills of their own, for marketing and for trips,
|
|
73
|
+
that no other bot sees.
|
|
74
|
+
|
|
75
|
+
**Settings › Skills** lists them in groups: **Custom** (the user's own), one group for each bot that
|
|
76
|
+
has its own (such as **Marketer's own**), and **Default** (the ones that ship, read-only). There a
|
|
77
|
+
skill can be switched off, uploaded (a `.md`, `.zip` or `.skill` file up to 20 MB), written from
|
|
78
|
+
scratch, or deleted when it is the user's own. In one of the user's own, **Edit** on a file
|
|
79
|
+
changes it in place.
|
|
80
|
+
|
|
81
|
+
A bot can also find a skill in the open registry while it works, or write a new one. Before it
|
|
82
|
+
installs one from the registry it asks, saying who published it, its license and what its security
|
|
83
|
+
checks found. Its report says whether it kept the skill for itself or for every bot.
|
|
100
84
|
|
|
101
85
|
## Connected services
|
|
102
86
|
|
|
103
|
-
**Settings › Connectors** connects MCP servers,
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
again turns red on that screen, with its error, and **Reconnect** signs in again.
|
|
87
|
+
**Settings › Connectors** connects MCP servers, picked from the list or added by pasting their
|
|
88
|
+
details. The list starts with everyday services (to-dos, the house, flights, and Zapier for Gmail,
|
|
89
|
+
Google Calendar and many other apps) and the tools for developers come after. Once connected, a
|
|
90
|
+
server's tools are there for bots to use, and up to ten can be pinned to one bot on its page in
|
|
91
|
+
**Settings › Bots**. She does not use them on a call herself; she hands that work to a bot.
|
|
109
92
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
Assistant
|
|
113
|
-
|
|
114
|
-
be added in Home Assistant too.
|
|
93
|
+
Opening a server lists its tools, with **Reconnect** and **Delete**. A server that needs signing in
|
|
94
|
+
again turns red, and **Reconnect** fixes it. Home Assistant asks for the address of their Home
|
|
95
|
+
Assistant and a long-lived access token made on their profile page there; its Model Context Protocol
|
|
96
|
+
Server integration has to be added in Home Assistant too.
|
|
115
97
|
|
|
116
98
|
## Sites they signed in to
|
|
117
99
|
|
|
118
|
-
When a bot needs them signed in to a website
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
-
|
|
133
|
-
|
|
134
|
-
their own Chrome instead, signed in as they already are. That needs the **Playwright Extension**
|
|
135
|
-
from the Chrome Web Store installed in their Chrome once, and Chrome open: the last row of the
|
|
136
|
-
list, **Your own Chrome**, has the button to it. The bot gets a tab of its own and cannot see
|
|
137
|
-
theirs; nothing is kept from it.
|
|
138
|
-
- **Sign out** removes what is kept; the next job that needs the site asks them to sign in again. The
|
|
139
|
-
site may go on listing the session until it ends it, so a lost or shared computer is also a reason
|
|
140
|
-
to sign out on the site itself.
|
|
141
|
-
- A site that ends the session by itself just makes the bot ask again.
|
|
100
|
+
When a bot needs them signed in to a website, to post, read mail or order, it opens a window of the
|
|
101
|
+
bots' own browser (Google Chrome for Testing, not their Chrome) and asks. They sign in there
|
|
102
|
+
themselves, and the app keeps that sign-in so later work does not ask again.
|
|
103
|
+
|
|
104
|
+
**Settings › Sign-ins** lists each one: the site, the account, and the bots that may use it. What is
|
|
105
|
+
kept is the site's session, never a password, and it stays on this computer.
|
|
106
|
+
|
|
107
|
+
- The bot that asked for a sign-in may use it. Another bot that needs it asks first; the list then
|
|
108
|
+
shows *… asks* with **Allow**. The **×** on a bot's name takes that back.
|
|
109
|
+
- Some sites, Google among them, sign the bot out again on every job however often they sign in.
|
|
110
|
+
For those, a bot can work in a tab of their own Chrome instead, signed in as they already are —
|
|
111
|
+
to every site their Chrome is signed in to, not only that one. That needs the Playwright
|
|
112
|
+
extension installed in their Chrome once and Chrome open: the last row, **Your own Chrome**, has
|
|
113
|
+
**Get the extension**.
|
|
114
|
+
- **Sign out** removes what is kept; the next job that needs the site asks again. On a lost or shared
|
|
115
|
+
computer, also sign out on the site itself.
|
|
142
116
|
|
|
143
117
|
## Its own window
|
|
144
118
|
|
|
145
|
-
The app runs in a browser tab, and a
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
where it was started and serves on the next one for that day; the browser then shows other
|
|
165
|
-
settings, because a browser keeps settings per address. Starting it once with `--port` and a number
|
|
166
|
-
moves it to that address for good; if that port is taken, it says so and stops. `thursday --help`
|
|
167
|
-
lists the rest: `--home` for another data folder, `--no-open` to start without opening a browser.
|
|
168
|
-
|
|
169
|
-
One data folder is served by one app at a time: started again while it runs — a second `npx`, or
|
|
170
|
-
one beside the one that starts at login — it says the address of the one running and stops, rather
|
|
171
|
-
than serving the same calls, jobs and phone twice. It needs Node 22.18 or newer and says so on an
|
|
172
|
-
older one. Closing the terminal it runs in stops it the way Ctrl+C does: jobs that were running
|
|
173
|
-
are paused, to be picked up again.
|
|
119
|
+
The app runs in a browser tab, and a closed tab takes the wake phrase, the shortcut and her calls
|
|
120
|
+
with it. Chrome and Edge can install it as its own window with its own icon. The call screen offers
|
|
121
|
+
this once (**Install** or **Not now**), and **Install app** stays at the foot of the Settings list
|
|
122
|
+
until it is installed. In Safari on a Mac it is **File › Add to Dock**; Firefox cannot do it.
|
|
123
|
+
|
|
124
|
+
The window only shows what the server serves, and the server is started in a terminal with `npx
|
|
125
|
+
thursday-agent`. On a Mac, `thursday autostart` makes the computer start it at login and restart it
|
|
126
|
+
if it stops, so no terminal is needed; this needs the app installed with `npm i -g thursday-agent`,
|
|
127
|
+
not run through `npx`. `thursday autostart --off` turns it off. On Linux and Windows, add it to the
|
|
128
|
+
programs that start at login.
|
|
129
|
+
|
|
130
|
+
The app uses the same address every time: port 4747 by default. If that port is taken one day, it
|
|
131
|
+
says so and uses the next free one for that run, and the browser shows different settings there.
|
|
132
|
+
`--port` with a number moves it for good (turn autostart on again after that). `--home` uses another
|
|
133
|
+
data folder, `--no-open` starts without opening a browser, and `--help` lists everything.
|
|
134
|
+
|
|
135
|
+
Starting it again while it already runs on the same data folder opens the running one in the
|
|
136
|
+
browser instead of starting a second, and says how to stop it. It needs Node 22.18 or newer.
|
|
137
|
+
Closing the terminal it runs in stops it like Ctrl+C: running jobs pause and wait for **Continue**.
|
|
174
138
|
|
|
175
139
|
## Where the files are
|
|
176
140
|
|
|
177
|
-
Everything is on this computer, in one folder: `.thursday` in their home folder when
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
A copy of that folder is the backup, and it is taken with the app stopped. While it runs, the newest
|
|
191
|
-
calls and messages are in a second file beside the database, so a copy of the database on its own
|
|
192
|
-
can be missing the last thing that was said; stopping the app folds that file back in. Moving to
|
|
193
|
-
another computer is the same folder put in the same place there. If the app ever cannot open the
|
|
194
|
-
database, the terminal it was started in asks whether to set it aside and start over; yes moves it
|
|
195
|
-
next to the new one with `.corrupt-` and a number in its name, and nothing is thrown away. Started by
|
|
196
|
-
autostart it cannot ask, so it does not come up until it is started once from a terminal. Data a
|
|
197
|
-
newer version of the app has opened is not offered to be set aside: an older one — an autostart left
|
|
198
|
-
behind while `npx` runs the latest — says so and stops, and the newer one opens it as it was.
|
|
141
|
+
Everything is on this computer, in one folder: `.thursday` in their home folder when started with
|
|
142
|
+
`npx thursday-agent` or installed, or the folder it was started from otherwise; every start prints
|
|
143
|
+
it. It holds the database (calls, memory, bots, keys, her settings), the kept sign-ins, and the
|
|
144
|
+
workspace with finished work, each bot's folder and installed skills. Updating the app never touches
|
|
145
|
+
it. Nothing is sent anywhere except to the model providers and services they set up. The app listens
|
|
146
|
+
only to this computer and has no account.
|
|
147
|
+
|
|
148
|
+
The bots' browser is the one thing outside it: a download of a few hundred megabytes in the
|
|
149
|
+
computer's cache folder.
|
|
150
|
+
|
|
151
|
+
To back up, copy that folder with the app stopped; moving to another computer is the same folder
|
|
152
|
+
put in the same place. If the app ever cannot open the database, the terminal asks whether to set it
|
|
153
|
+
aside and start fresh; the old file is kept beside the new one, with `.corrupt-` in its name.
|
|
199
154
|
|
|
200
155
|
## What it costs
|
|
201
156
|
|
|
202
|
-
The user brings their own keys, so the cost is whatever those providers charge: a spoken call
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
157
|
+
The user brings their own keys, so the cost is whatever those providers charge: a spoken call by the
|
|
158
|
+
minute it is open, silence included, and everything else by how much text the models read and
|
|
159
|
+
write, a call in writing included. The GPT Subscription uses the ChatGPT plan instead. A long job on
|
|
160
|
+
a large model adds up fastest.
|
package/guide/trouble.md
CHANGED
|
@@ -1,88 +1,65 @@
|
|
|
1
1
|
# When something does not work
|
|
2
2
|
|
|
3
|
-
Say what happened and the one thing that fixes it
|
|
4
|
-
has already said which: a provider's own words are shown as they came, never hidden.
|
|
3
|
+
Say what happened and the one thing that fixes it; most problems are a setting or a key.
|
|
5
4
|
|
|
6
5
|
## A call will not open, or ended
|
|
7
6
|
|
|
8
|
-
- **"Call failed"** shows the provider's reason. A refused key or no credit
|
|
9
|
-
|
|
10
|
-
- **"One call at a time"**: another tab of the app has a spoken call on. Hang up there
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
- **She
|
|
14
|
-
|
|
15
|
-
- **
|
|
16
|
-
|
|
17
|
-
microphone step says which it was: not allowed, no microphone found, one that would not start
|
|
18
|
-
(another app may be using it), or the browser's own words for anything else.
|
|
19
|
-
- **The call ended by itself**: the line under her face says why — *25s of quiet* (nothing was said
|
|
20
|
-
for 25 seconds; the last 10 count down on screen, and an update she is reading is let finish
|
|
21
|
-
first), *Thursday hung up*, *the call ran to Live's time limit*, *Live closed the call*, or *the
|
|
22
|
-
connection dropped*. Only a dropped connection or a close Live gives no reason for shows as a
|
|
23
|
-
failure; when Live's safety filter stops a call, a note says so. Work already handed to a bot is
|
|
24
|
-
not affected.
|
|
7
|
+
- **"Call failed"** shows the provider's reason. A refused key or no credit is fixed in **Settings ›
|
|
8
|
+
API keys**; a model the key cannot use is changed in **Settings › Thursday**, under Models.
|
|
9
|
+
- **"One call at a time"**: another tab of the app has a spoken call on. Hang up there first.
|
|
10
|
+
- **She cannot be heard** on a call she opened herself: the browser holds sound until the page is
|
|
11
|
+
touched. A tap anywhere fixes it.
|
|
12
|
+
- **She does not hear them**: the microphone was refused, or another app is using it. Allow it again
|
|
13
|
+
from the site's settings in the address bar.
|
|
14
|
+
- **The call ended by itself**: the line under her face says why, such as *25s of quiet* (nothing
|
|
15
|
+
said for 25 seconds), *Thursday hung up* or *the connection dropped*.
|
|
25
16
|
|
|
26
17
|
## "Hey thursday" does nothing
|
|
27
18
|
|
|
28
|
-
The wake phrase is off until it is switched on in **Settings › Thursday › Starting a call**,
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
shortcut once it is switched on.
|
|
19
|
+
The wake phrase is off until it is switched on in **Settings › Thursday › Starting a call**, where
|
|
20
|
+
the phrase can also be changed. It needs a browser with speech recognition, the microphone, and the
|
|
21
|
+
app's tab open. When it cannot start, the screen says "Wake word off" with the reason. Tapping her
|
|
22
|
+
face always works.
|
|
33
23
|
|
|
34
24
|
## A job stopped
|
|
35
25
|
|
|
36
|
-
A job
|
|
26
|
+
A job does not fail for good; it pauses and waits.
|
|
37
27
|
|
|
38
|
-
- **It asked something**: the question is in its thread, in the corner at the bottom right
|
|
39
|
-
|
|
40
|
-
- **The model
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
open, and a machine that slept carries on when it wakes.
|
|
48
|
-
- **It reached its step limit**: a long job stops to check in after many steps without word from the
|
|
49
|
-
user. **Continue** gives it another run.
|
|
50
|
-
- **They stopped it**: writing to the thread picks it up again.
|
|
28
|
+
- **It asked something**: the question is in its thread, in the corner at the bottom right.
|
|
29
|
+
Answering it, on screen or through her, carries it on.
|
|
30
|
+
- **The model failed or the provider refused**: the thread says why. Fix the key or pick another
|
|
31
|
+
model on the bot's page, then press **Continue**.
|
|
32
|
+
- **The GPT Subscription ran out**: the job says when the plan resets; its row in **Settings › API
|
|
33
|
+
keys** shows *Limit reached*.
|
|
34
|
+
- **The app stopped while it ran** (terminal closed, computer restarted), or **it reached its step
|
|
35
|
+
limit**: **Continue** picks it up. Closing the browser tab does not stop jobs.
|
|
36
|
+
- **They stopped it**: writing to the thread starts it again.
|
|
51
37
|
|
|
52
38
|
## A bot says it cannot do something
|
|
53
39
|
|
|
54
|
-
- **Make an image, a video,
|
|
55
|
-
|
|
56
|
-
- **Open a web page**: the bots' browser
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
- **
|
|
64
|
-
next time (`setup.md`, Sites they signed in to); paying is always theirs to press. A site that asks
|
|
65
|
-
again on every job although they signed in is refusing a sign-in carried between browsers: the
|
|
66
|
-
same section says how a bot works in their own Chrome instead.
|
|
67
|
-
- **Search the web**: only OpenAI, Claude, Gemini and xAI models search by themselves, and only on
|
|
68
|
-
their own keys. A bot on anything else — the GPT Subscription and the Gateway included — opens
|
|
40
|
+
- **Make an image, a video, speech, or a transcript**: pick a model for it in **Settings › Models**,
|
|
41
|
+
under Studio.
|
|
42
|
+
- **Open a web page**: the bots' browser downloads in the background on first start, a few hundred
|
|
43
|
+
megabytes. On a Linux server it may also need `npx playwright install-deps chromium`, run once
|
|
44
|
+
with administrator rights.
|
|
45
|
+
- **Use this Mac's apps**: macOS must allow Screen Recording and Accessibility in System Settings.
|
|
46
|
+
- **Sign in or pay**: on purpose. The bot opens the page and waits; paying is always theirs to
|
|
47
|
+
press. A site that asks for a sign-in on every job can be used through their own Chrome
|
|
48
|
+
(`setup.md`, Sites they signed in to).
|
|
49
|
+
- **Search the web**: a bot on the Vercel AI Gateway or a provider without its own search opens
|
|
69
50
|
pages instead. A search key (Exa) in **Settings › API keys** gives every bot search.
|
|
70
|
-
- **Reach a connected service**:
|
|
71
|
-
Connectors**; **Reconnect**
|
|
72
|
-
itself for sign-in cannot be connected here at all: its error says so, then what the server
|
|
73
|
-
answered.
|
|
51
|
+
- **Reach a connected service**: one that needs signing in again turns red in **Settings ›
|
|
52
|
+
Connectors**; **Reconnect** fixes it.
|
|
74
53
|
- **Take a file**: at most 8 files go with one message, 25 MB each.
|
|
75
54
|
|
|
76
55
|
## Starting over
|
|
77
56
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
installed, which go only when that bot is deleted). Wiping everything, keys included, is removing the data folder (`setup.md` says
|
|
82
|
-
where).
|
|
57
|
+
**Settings › Thursday › History › Reset history** deletes every call, every job and everything she
|
|
58
|
+
remembers, for good; keys, bots and connectors stay, and so does what each bot keeps for itself.
|
|
59
|
+
Wiping everything, keys included, means deleting the data folder (`setup.md`, Where the files are).
|
|
83
60
|
|
|
84
61
|
## Still stuck
|
|
85
62
|
|
|
86
|
-
**Ask on Discord**, under community
|
|
87
|
-
|
|
88
|
-
|
|
63
|
+
**Ask on Discord**, under community in the Settings list, opens the app's community. A bug that
|
|
64
|
+
happens again the same way goes to **GitHub**, just below it, as an issue with the steps that bring
|
|
65
|
+
it back.
|
package/package.json
CHANGED
|
@@ -97,7 +97,7 @@ const out = join(
|
|
|
97
97
|
|
|
98
98
|
const cur = trip.currency ? String(trip.currency).toUpperCase() : null;
|
|
99
99
|
const lang = String(trip.lang ?? "en");
|
|
100
|
-
// Built without them, a page in
|
|
100
|
+
// Built without them, a page in another language came out with "Day by day" and "Before you go" on it,
|
|
101
101
|
// and the warning printed after the build was passed over
|
|
102
102
|
if (!lang.startsWith("en") && !trip.labels)
|
|
103
103
|
fail(
|