thursday-agent 0.17.2 → 0.19.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.
Files changed (444) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +4 -2
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/routes-manifest.json +28 -12
  6. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  7. package/.next/server/app/_global-error.html +1 -1
  8. package/.next/server/app/_global-error.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  13. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/_not-found.html +1 -1
  15. package/.next/server/app/_not-found.rsc +12 -12
  16. package/.next/server/app/_not-found.segments/_full.segment.rsc +12 -12
  17. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +11 -11
  18. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  19. package/.next/server/app/api/artifact/route.js +7 -7
  20. package/.next/server/app/api/artifact/route.js.nft.json +1 -1
  21. package/.next/server/app/api/bot/memory/files/route.js +4 -4
  22. package/.next/server/app/api/bot/memory/files/route.js.nft.json +1 -1
  23. package/.next/server/app/api/bot/memory/route.js +4 -4
  24. package/.next/server/app/api/bot/memory/route.js.nft.json +1 -1
  25. package/.next/server/app/api/bot/route.js +4 -4
  26. package/.next/server/app/api/bot/route.js.nft.json +1 -1
  27. package/.next/server/app/api/bot/thread/[id]/route.js +1 -1
  28. package/.next/server/app/api/bot/thread/[id]/route.js.nft.json +1 -1
  29. package/.next/server/app/api/bot/thread/file/route/app-paths-manifest.json +3 -0
  30. package/.next/server/app/api/bot/thread/file/route.js +29 -0
  31. package/.next/server/app/api/bot/thread/file/route.js.nft.json +1 -0
  32. package/.next/server/app/api/bot/thread/file/route_client-reference-manifest.js +3 -0
  33. package/.next/server/app/api/bot/thread/route.js +1 -1
  34. package/.next/server/app/api/bot/thread/route.js.nft.json +1 -1
  35. package/.next/server/app/api/config/route.js +1 -1
  36. package/.next/server/app/api/config/route.js.nft.json +1 -1
  37. package/.next/server/app/api/events/route.js +2 -2
  38. package/.next/server/app/api/events/route.js.nft.json +1 -1
  39. package/.next/server/app/api/favicon/[host]/route.js.nft.json +1 -1
  40. package/.next/server/app/api/file/[...path]/route.js +4 -4
  41. package/.next/server/app/api/file/[...path]/route.js.nft.json +1 -1
  42. package/.next/server/app/api/llm-model/automatic/route.js +3 -3
  43. package/.next/server/app/api/llm-model/automatic/route.js.nft.json +1 -1
  44. package/.next/server/app/api/llm-model/catalog/[provider]/route/app-paths-manifest.json +3 -0
  45. package/.next/server/app/api/llm-model/catalog/{route.js → [provider]/route.js} +8 -8
  46. package/.next/server/app/api/llm-model/catalog/[provider]/route.js.nft.json +1 -0
  47. package/.next/server/app/api/llm-model/catalog/[provider]/route_client-reference-manifest.js +3 -0
  48. package/.next/server/app/api/llm-model/credits/[provider]/route/app-paths-manifest.json +3 -0
  49. package/.next/server/app/api/llm-model/credits/[provider]/route/build-manifest.json +12 -0
  50. package/.next/server/app/api/llm-model/credits/[provider]/route/server-reference-manifest.json +4 -0
  51. package/.next/server/app/api/llm-model/credits/{route.js → [provider]/route.js} +8 -8
  52. package/.next/server/app/api/llm-model/credits/[provider]/route.js.map +5 -0
  53. package/.next/server/app/api/llm-model/credits/[provider]/route.js.nft.json +1 -0
  54. package/.next/server/app/api/llm-model/credits/[provider]/route_client-reference-manifest.js +3 -0
  55. package/.next/server/app/api/llm-model/route.js +1 -1
  56. package/.next/server/app/api/llm-model/route.js.nft.json +1 -1
  57. package/.next/server/app/api/llm-model/subscription/route.js +1 -1
  58. package/.next/server/app/api/llm-model/subscription/route.js.nft.json +1 -1
  59. package/.next/server/app/api/mcp/[name]/route.js +1 -1
  60. package/.next/server/app/api/mcp/[name]/route.js.nft.json +1 -1
  61. package/.next/server/app/api/mcp/oauth/callback/route.js +2 -2
  62. package/.next/server/app/api/mcp/oauth/callback/route.js.nft.json +1 -1
  63. package/.next/server/app/api/mcp/route.js +1 -1
  64. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  65. package/.next/server/app/api/mcp/tools/route.js +1 -1
  66. package/.next/server/app/api/mcp/tools/route.js.nft.json +1 -1
  67. package/.next/server/app/api/memory/edit/route.js +12 -12
  68. package/.next/server/app/api/memory/edit/route.js.nft.json +1 -1
  69. package/.next/server/app/api/memory/route.js +1 -1
  70. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  71. package/.next/server/app/api/reach/route.js +17 -17
  72. package/.next/server/app/api/reach/route.js.nft.json +1 -1
  73. package/.next/server/app/api/routine/route.js +6 -6
  74. package/.next/server/app/api/routine/route.js.nft.json +1 -1
  75. package/.next/server/app/api/running/route/app-paths-manifest.json +3 -0
  76. package/.next/server/app/api/running/route/build-manifest.json +12 -0
  77. package/.next/server/app/api/running/route/server-reference-manifest.json +4 -0
  78. package/.next/server/app/api/running/route.js +10 -0
  79. package/.next/server/app/api/running/route.js.map +5 -0
  80. package/.next/server/app/api/running/route.js.nft.json +1 -0
  81. package/.next/server/app/api/running/route_client-reference-manifest.js +3 -0
  82. package/.next/server/app/api/signins/route.js +4 -4
  83. package/.next/server/app/api/signins/route.js.nft.json +1 -1
  84. package/.next/server/app/api/skills/[source]/[name]/route.js +7 -7
  85. package/.next/server/app/api/skills/[source]/[name]/route.js.nft.json +1 -1
  86. package/.next/server/app/api/skills/route.js +6 -6
  87. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  88. package/.next/server/app/api/thursday/call/end/route.js +1 -1
  89. package/.next/server/app/api/thursday/call/end/route.js.nft.json +1 -1
  90. package/.next/server/app/api/thursday/call/route.js +1 -1
  91. package/.next/server/app/api/thursday/call/route.js.nft.json +1 -1
  92. package/.next/server/app/api/thursday/settings/route.js +1 -1
  93. package/.next/server/app/api/thursday/settings/route.js.nft.json +1 -1
  94. package/.next/server/app/api/thursday/text/route.js +12 -12
  95. package/.next/server/app/api/thursday/text/route.js.nft.json +1 -1
  96. package/.next/server/app/api/thursday/tool-call/route.js +13 -13
  97. package/.next/server/app/api/thursday/tool-call/route.js.nft.json +1 -1
  98. package/.next/server/app/api/workspace/files/route.js +7 -7
  99. package/.next/server/app/api/workspace/files/route.js.nft.json +1 -1
  100. package/.next/server/app/api/workspace/route.js +6 -6
  101. package/.next/server/app/api/workspace/route.js.nft.json +1 -1
  102. package/.next/server/app/artifact/[...path]/page/server-reference-manifest.json +94 -6
  103. package/.next/server/app/artifact/[...path]/page.js +9 -5
  104. package/.next/server/app/artifact/[...path]/page.js.nft.json +1 -1
  105. package/.next/server/app/artifact/[...path]/page_client-reference-manifest.js +1 -1
  106. package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  107. package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  108. package/.next/server/app/page/server-reference-manifest.json +161 -128
  109. package/.next/server/app/page.js +10 -9
  110. package/.next/server/app/page.js.nft.json +1 -1
  111. package/.next/server/app/page_client-reference-manifest.js +1 -1
  112. package/.next/server/app-paths-manifest.json +4 -2
  113. package/.next/server/chunks/[root-of-the-server]__00qyw01._.js +1 -1
  114. package/.next/server/chunks/[root-of-the-server]__02ra64t._.js +5 -0
  115. package/.next/server/chunks/{[root-of-the-server]__05dp5tr._.js → [root-of-the-server]__06ky9of._.js} +2 -2
  116. package/.next/server/chunks/[root-of-the-server]__0b565-x._.js +7 -0
  117. package/.next/server/chunks/[root-of-the-server]__0bmtib_._.js +7 -0
  118. package/.next/server/chunks/[root-of-the-server]__0bqveex._.js +1 -1
  119. package/.next/server/chunks/[root-of-the-server]__0brmiv2._.js +7 -0
  120. package/.next/server/chunks/[root-of-the-server]__0eivkvk._.js +2 -2
  121. package/.next/server/chunks/[root-of-the-server]__0f7m79q._.js +1 -1
  122. package/.next/server/chunks/[root-of-the-server]__0g38-aj._.js +2 -2
  123. package/.next/server/chunks/[root-of-the-server]__0gvdr2h._.js +5 -0
  124. package/.next/server/chunks/[root-of-the-server]__0h656y-._.js +2 -2
  125. package/.next/server/chunks/[root-of-the-server]__0hm3tiq._.js +2 -2
  126. package/.next/server/chunks/[root-of-the-server]__0hzdqnv._.js +2 -2
  127. package/.next/server/chunks/[root-of-the-server]__0kzmxpg._.js +3 -0
  128. package/.next/server/chunks/[root-of-the-server]__0mgyt8p._.js +2 -2
  129. package/.next/server/chunks/[root-of-the-server]__0mrk2it._.js +1 -1
  130. package/.next/server/chunks/[root-of-the-server]__0o5s5-o._.js +5 -0
  131. package/.next/server/chunks/[root-of-the-server]__0p80i1n._.js +1 -1
  132. package/.next/server/chunks/[root-of-the-server]__0qdoc_9._.js +5 -0
  133. package/.next/server/chunks/[root-of-the-server]__0qzho69._.js +1 -1
  134. package/.next/server/chunks/[root-of-the-server]__0sm5xvm._.js +1 -1
  135. package/.next/server/chunks/[root-of-the-server]__0v_kuor._.js +5 -0
  136. package/.next/server/chunks/{[root-of-the-server]__061o2_x._.js → [root-of-the-server]__0ypkfbu._.js} +1 -1
  137. package/.next/server/chunks/[root-of-the-server]__1-18_pz._.js +1 -1
  138. package/.next/server/chunks/[root-of-the-server]__13hng6h._.js +1 -1
  139. package/.next/server/chunks/{[root-of-the-server]__01k3vi3._.js → [root-of-the-server]__14iga7p._.js} +1 -1
  140. package/.next/server/chunks/[root-of-the-server]__16gn7zn._.js +3 -0
  141. package/.next/server/chunks/[root-of-the-server]__18e65_-._.js +3 -0
  142. package/.next/server/chunks/[root-of-the-server]__1_04mcf._.js +2 -2
  143. package/.next/server/chunks/[root-of-the-server]__1_cgawk._.js +5 -0
  144. package/.next/server/chunks/[root-of-the-server]__1ceammd._.js +1 -1
  145. package/.next/server/chunks/[root-of-the-server]__1ckt1yj._.js +1 -1
  146. package/.next/server/chunks/[root-of-the-server]__1cu5f3z._.js +1 -1
  147. package/.next/server/chunks/[root-of-the-server]__1dth047._.js +5 -0
  148. package/.next/server/chunks/{[root-of-the-server]__1k2qs1m._.js → [root-of-the-server]__1fc6v12._.js} +1 -1
  149. package/.next/server/chunks/[root-of-the-server]__1hviq62._.js +2 -2
  150. package/.next/server/chunks/[root-of-the-server]__1ksm9m-._.js +12 -0
  151. package/.next/server/chunks/[root-of-the-server]__1m1q6u5._.js +3 -0
  152. package/.next/server/chunks/[root-of-the-server]__1m_dmf6._.js +5 -0
  153. package/.next/server/chunks/[root-of-the-server]__1mys2c3._.js +5 -0
  154. package/.next/server/chunks/[root-of-the-server]__1ndi14y._.js +1 -1
  155. package/.next/server/chunks/[root-of-the-server]__1p0njle._.js +5 -0
  156. package/.next/server/chunks/[root-of-the-server]__1p47fbb._.js +2 -2
  157. package/.next/server/chunks/[root-of-the-server]__1pugoq0._.js +1 -1
  158. package/.next/server/chunks/{[root-of-the-server]__0ts7ai0._.js → [root-of-the-server]__1trns9g._.js} +1 -1
  159. package/.next/server/chunks/[root-of-the-server]__1ygplx1._.js +1 -1
  160. package/.next/server/chunks/[root-of-the-server]__1zn039k._.js +1 -1
  161. package/.next/server/chunks/[root-of-the-server]__20w_g71._.js +3 -0
  162. package/.next/server/chunks/_01c32w9._.js +1 -1
  163. package/.next/server/chunks/_02bov6_._.js +1 -1
  164. package/.next/server/chunks/_06hnfi8._.js +2 -2
  165. package/.next/server/chunks/_06u9yo-._.js +1 -1
  166. package/.next/server/chunks/_08354bn._.js +12 -11
  167. package/.next/server/chunks/_08_-9ay._.js +7 -0
  168. package/.next/server/chunks/_08s4vft._.js +1 -1
  169. package/.next/server/chunks/_0bgjf07._.js +5 -0
  170. package/.next/server/chunks/_0c49lmw._.js +1 -1
  171. package/.next/server/chunks/_0fb6dvr._.js +1 -1
  172. package/.next/server/chunks/_0hgvg55._.js +1 -1
  173. package/.next/server/chunks/_0iw19ig._.js +1 -1
  174. package/.next/server/chunks/_0poi1t2._.js +1 -1
  175. package/.next/server/chunks/_0s8ao8z._.js +1 -1
  176. package/.next/server/chunks/_0t_7gji._.js +1 -1
  177. package/.next/server/chunks/_0ucx1jv._.js +1 -1
  178. package/.next/server/chunks/_0uzj57i._.js +1 -1
  179. package/.next/server/chunks/_0wyh244._.js +112 -0
  180. package/.next/server/chunks/_1-sk_q4._.js +1 -1
  181. package/.next/server/chunks/_108gsm8._.js +2 -2
  182. package/.next/server/chunks/_136j09a._.js +5 -5
  183. package/.next/server/chunks/_15negpy._.js +2 -2
  184. package/.next/server/chunks/_1d7og_q._.js +1 -1
  185. package/.next/server/chunks/_1dxq827._.js +2 -2
  186. package/.next/server/chunks/_1e54wxa._.js +1 -1
  187. package/.next/server/chunks/_1frcwj1._.js +1 -1
  188. package/.next/server/chunks/_1gn2r2q._.js +8 -6
  189. package/.next/server/chunks/_1gxankq._.js +2 -2
  190. package/.next/server/chunks/_1i3uucm._.js +1 -1
  191. package/.next/server/chunks/_1jvy78-._.js +5 -0
  192. package/.next/server/chunks/_1lg0lsu._.js +53 -0
  193. package/.next/server/chunks/_1njolhx._.js +294 -0
  194. package/.next/server/chunks/_1q6e56i._.js +8 -6
  195. package/.next/server/chunks/_1qgix-j._.js +1 -1
  196. package/.next/server/chunks/_1wtb-77._.js +294 -0
  197. package/.next/server/chunks/_1wwl_7o._.js +1 -1
  198. package/.next/server/chunks/_1y8w80a._.js +5 -5
  199. package/.next/server/chunks/_1yx285_._.js +3 -0
  200. package/.next/server/chunks/_20qn224._.js +3 -0
  201. package/.next/server/chunks/_211dn2c._.js +1 -1
  202. package/.next/server/chunks/_next-internal_server_app_api_bot_thread_file_route_actions_0q3be0o.js +3 -0
  203. package/.next/server/chunks/_next-internal_server_app_api_llm-model_catalog_[provider]_route_actions_1i0449q.js +3 -0
  204. package/.next/server/chunks/_next-internal_server_app_api_llm-model_credits_[provider]_route_actions_0iui9hz.js +3 -0
  205. package/.next/server/chunks/_next-internal_server_app_api_running_route_actions_0o1g-aw.js +3 -0
  206. package/.next/server/chunks/config_ts_1g4sz5o._.js +1 -1
  207. package/.next/server/chunks/features_bot_08z387_._.js +3 -3
  208. package/.next/server/chunks/features_bot_0zy_q8y._.js +7 -7
  209. package/.next/server/chunks/features_bot_1dfrdsb._.js +7 -7
  210. package/.next/server/chunks/features_workspace_workspace_ts_13h82gv._.js +3 -3
  211. package/.next/server/chunks/features_workspace_workspace_ts_1iyjroj._.js +3 -3
  212. package/.next/server/chunks/{node_modules_1rosz79._.js → node_modules_035o7ku._.js} +1 -1
  213. package/.next/server/chunks/{node_modules_1er1u8w._.js → node_modules_0tn5t13._.js} +1 -1
  214. package/.next/server/chunks/{node_modules_103lpef._.js → node_modules_12oq3hr._.js} +1 -1
  215. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0g87zst._.js → node_modules_consola_dist_chunks_prompt_mjs_0yd5xa0._.js} +1 -1
  216. package/.next/server/chunks/ssr/[root-of-the-server]__04upd5v._.js +1 -1
  217. package/.next/server/chunks/ssr/[root-of-the-server]__0p0mv2u._.js +3 -0
  218. package/.next/server/chunks/ssr/[root-of-the-server]__0sk5enu._.js +3 -0
  219. package/.next/server/chunks/ssr/[root-of-the-server]__0xyaud4._.js +3 -0
  220. package/.next/server/chunks/ssr/[root-of-the-server]__1-gi9sm._.js +3 -0
  221. package/.next/server/chunks/ssr/[root-of-the-server]__16nn3pe._.js +3 -0
  222. package/.next/server/chunks/ssr/[root-of-the-server]__1867koj._.js +1 -1
  223. package/.next/server/chunks/ssr/[root-of-the-server]__1c8-7cw._.js +3 -0
  224. package/.next/server/chunks/ssr/{[root-of-the-server]__1d7usu0._.js → [root-of-the-server]__1qn0axo._.js} +2 -2
  225. package/.next/server/chunks/ssr/[root-of-the-server]__1tb5vve._.js +47 -0
  226. package/.next/server/chunks/ssr/_02cm0fr._.js +5 -0
  227. package/.next/server/chunks/ssr/{features_bot_1knyan7._.js → _07nmtxo._.js} +2 -2
  228. package/.next/server/chunks/ssr/_088vzgn._.js +1 -1
  229. package/.next/server/chunks/ssr/{_1dfv66y._.js → _0bg1u1j._.js} +2 -2
  230. package/.next/server/chunks/ssr/_0cv9tmv._.js +1 -1
  231. package/.next/server/chunks/ssr/{_10-_awu._.js → _0f9hx5p._.js} +2 -2
  232. package/.next/server/chunks/ssr/_0g9ula_._.js +3 -0
  233. package/.next/server/chunks/ssr/{_1aqjk-1._.js → _0irozu9._.js} +2 -2
  234. package/.next/server/chunks/ssr/{_123y-ah._.js → _0is8m6y._.js} +2 -2
  235. package/.next/server/chunks/ssr/_0iwsdp7._.js +3 -0
  236. package/.next/server/chunks/ssr/_0l7rjg5._.js +1 -1
  237. package/.next/server/chunks/ssr/{lib_logger_ts_0-olsze._.js → _0mfgsk-._.js} +4 -2
  238. package/.next/server/chunks/ssr/{_0fo4552._.js → _0nk80t6._.js} +53 -13
  239. package/.next/server/chunks/ssr/_0p6w0ef._.js +3 -0
  240. package/.next/server/chunks/ssr/_0pbav_w._.js +3 -0
  241. package/.next/server/chunks/ssr/{_0vo_oym._.js → _0q-mdwv._.js} +8 -8
  242. package/.next/server/chunks/ssr/_0s5_ahb._.js +3 -0
  243. package/.next/server/chunks/ssr/{_0e2fnvg._.js → _0t5f2c3._.js} +2 -2
  244. package/.next/server/chunks/ssr/_0v9r8g2._.js +1 -1
  245. package/.next/server/chunks/ssr/_0x8ophf._.js +1 -1
  246. package/.next/server/chunks/ssr/_0x9f717._.js +60 -0
  247. package/.next/server/chunks/ssr/_107vtdk._.js +162 -0
  248. package/.next/server/chunks/ssr/{_17a4qyk._.js → _12lql1x._.js} +3 -3
  249. package/.next/server/chunks/ssr/{_163dr78._.js → _165wnr4._.js} +2 -2
  250. package/.next/server/chunks/ssr/_16_7zeo._.js +3 -0
  251. package/.next/server/chunks/ssr/_17komoi._.js +3 -0
  252. package/.next/server/chunks/ssr/_190hjys._.js +3 -0
  253. package/.next/server/chunks/ssr/_1bfrntd._.js +6 -0
  254. package/.next/server/chunks/ssr/{_01al00i._.js → _1booff4._.js} +2 -2
  255. package/.next/server/chunks/ssr/{_0xfafez._.js → _1ew1j7l._.js} +2 -2
  256. package/.next/server/chunks/ssr/_1i2swyr._.js +3 -0
  257. package/.next/server/chunks/ssr/_1neoj22._.js +1 -1
  258. package/.next/server/chunks/ssr/_1qsa25k._.js +3 -0
  259. package/.next/server/chunks/ssr/_1soynbw._.js +6 -0
  260. package/.next/server/chunks/ssr/_1vc2xmu._.js +3 -0
  261. package/.next/server/chunks/ssr/{_14oirtb._.js → _1wq90j8._.js} +2 -2
  262. package/.next/server/chunks/ssr/_1xwtbdz._.js +3 -0
  263. package/.next/server/chunks/ssr/_1zrhkf0._.js +310 -0
  264. package/.next/server/chunks/ssr/_21awrs2._.js +5 -0
  265. package/.next/server/chunks/ssr/features_0796o8r._.js +1 -1
  266. package/.next/server/chunks/ssr/features_bot_0tb4ui-._.js +2 -2
  267. package/.next/server/chunks/ssr/features_bot_1c56lew._.js +37 -0
  268. package/.next/server/chunks/ssr/features_bot_1fn_grf._.js +3 -0
  269. package/.next/server/chunks/ssr/{features_config_09n-q9q._.js → features_config_05zi68v._.js} +3 -3
  270. package/.next/server/chunks/ssr/features_connectors_components_mcp-setting_tsx_0jmbgvp._.js +1 -1
  271. package/.next/server/chunks/ssr/features_memory_components_memory-setting_tsx_0oa43sw._.js +1 -1
  272. package/.next/server/chunks/ssr/features_routine_components_routine-setting_tsx_055fknz._.js +1 -1
  273. package/.next/server/chunks/ssr/features_workspace_workspace_ts_1wc7_u_._.js +4 -4
  274. package/.next/server/chunks/ssr/{node_modules_1k5i-_9._.js → node_modules_0-sux1a._.js} +1 -1
  275. package/.next/server/chunks/ssr/{node_modules_0msrhxf._.js → node_modules_01oezhb._.js} +1 -1
  276. package/.next/server/chunks/ssr/{node_modules_1gq3ght._.js → node_modules_04m6ebg._.js} +1 -1
  277. package/.next/server/chunks/ssr/{node_modules_0nmkv-v._.js → node_modules_067jfov._.js} +1 -1
  278. package/.next/server/chunks/ssr/{node_modules_0gd9hbz._.js → node_modules_06ugby3._.js} +1 -1
  279. package/.next/server/chunks/ssr/{node_modules_0d6j33x._.js → node_modules_07p51j3._.js} +1 -1
  280. package/.next/server/chunks/ssr/{node_modules_10_fv2a._.js → node_modules_0995xyq._.js} +1 -1
  281. package/.next/server/chunks/ssr/{node_modules_1lmyts8._.js → node_modules_0_uecwx._.js} +1 -1
  282. package/.next/server/chunks/ssr/{node_modules_04x5wyv._.js → node_modules_0dsyc90._.js} +1 -1
  283. package/.next/server/chunks/ssr/{node_modules_0__0tvm._.js → node_modules_0hli6s2._.js} +1 -1
  284. package/.next/server/chunks/ssr/{node_modules_0k8-y89._.js → node_modules_0m-bde_._.js} +1 -1
  285. package/.next/server/chunks/ssr/{node_modules_1p_6sq7._.js → node_modules_0oqfdbr._.js} +1 -1
  286. package/.next/server/chunks/ssr/node_modules_0qd7p5f._.js +3 -0
  287. package/.next/server/chunks/ssr/{node_modules_13g-d25._.js → node_modules_0tgy5s5._.js} +1 -1
  288. package/.next/server/chunks/ssr/{node_modules_1_8-jcj._.js → node_modules_1-kjmls._.js} +1 -1
  289. package/.next/server/chunks/ssr/{node_modules_0m73b88._.js → node_modules_1-l3ka5._.js} +1 -1
  290. package/.next/server/chunks/ssr/{node_modules_113l3e5._.js → node_modules_1-w3ayh._.js} +1 -1
  291. package/.next/server/chunks/ssr/{node_modules_0q-klni._.js → node_modules_133exgm._.js} +1 -1
  292. package/.next/server/chunks/ssr/{node_modules_1xb-ndg._.js → node_modules_17xc5_k._.js} +1 -1
  293. package/.next/server/chunks/ssr/{node_modules_021lid9._.js → node_modules_1_i_w30._.js} +1 -1
  294. package/.next/server/chunks/ssr/{node_modules_1ri_eip._.js → node_modules_1a2cjfk._.js} +1 -1
  295. package/.next/server/chunks/ssr/{node_modules_13bqv6i._.js → node_modules_1k752fe._.js} +1 -1
  296. package/.next/server/chunks/ssr/{node_modules_1qstb1x._.js → node_modules_1lie7z8._.js} +1 -1
  297. package/.next/server/chunks/ssr/{node_modules_096up6a._.js → node_modules_1mv70-y._.js} +1 -1
  298. package/.next/server/chunks/ssr/{node_modules_156kv_t._.js → node_modules_1r611t2._.js} +1 -1
  299. package/.next/server/chunks/ssr/node_modules_1vfd8dz._.js +3 -0
  300. package/.next/server/chunks/ssr/{node_modules_0cjnmzp._.js → node_modules_1yaowd7._.js} +1 -1
  301. package/.next/server/chunks/ssr/{node_modules_0nw5jz7._.js → node_modules_20a1wpo._.js} +1 -1
  302. 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_1r8pxbe._.js} +1 -1
  303. 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_1siiu4h._.js} +1 -1
  304. package/.next/server/middleware-build-manifest.js +3 -3
  305. package/.next/server/pages/404.html +1 -1
  306. package/.next/server/pages/500.html +1 -1
  307. package/.next/server/server-reference-manifest.js +1 -1
  308. package/.next/server/server-reference-manifest.json +205 -132
  309. package/.next/static/chunks/{0obogzscwwekj.js → 088d3w5qxu19g.js} +2 -2
  310. package/.next/static/chunks/0_s4z70lx1tgs.js +1 -0
  311. package/.next/static/chunks/0bxekp4hnuk1g.js +1 -0
  312. package/.next/static/chunks/{1cglo3a2mbeou.js → 0fw4u_s974j24.js} +1 -1
  313. package/.next/static/chunks/0hy2x7qhk8wgx.css +1 -0
  314. package/.next/static/chunks/{2zbl41hed17g3.js → 0n_eshmn_7wfn.js} +2 -2
  315. package/.next/static/chunks/0q9b2n6l4flqb.js +1 -0
  316. package/.next/static/chunks/0ulcp_u_y1u0b.js +15 -0
  317. package/.next/static/chunks/0vj93zo0yvix9.js +35 -0
  318. package/.next/static/chunks/{166smhw8v-s3j.js → 10f98bh4hdmhe.js} +1 -1
  319. package/.next/static/chunks/1b8bce_z_act0.js +1 -0
  320. package/.next/static/chunks/1c32d2azsjaj_.js +1 -0
  321. package/.next/static/chunks/{1xv4g10m-cl1s.js → 1fs829mz69pxz.js} +1 -1
  322. package/.next/static/chunks/1lwlh4mo_vv8d.js +1 -0
  323. package/.next/static/chunks/{0p2f6uv4xytfm.js → 1po8fkg40peu-.js} +1 -1
  324. package/.next/static/chunks/{0uxq_vs6uxi-b.js → 1rg6b9l5fm1hj.js} +1 -1
  325. package/.next/static/chunks/{3b96xy59nl_gd.js → 26g3iwfuad-7p.js} +1 -1
  326. package/.next/static/chunks/2bjnmtke_q43c.js +1 -0
  327. package/.next/static/chunks/2c86k0o-1p9_w.js +1 -0
  328. package/.next/static/chunks/2gf4t0d76bvyv.js +1 -0
  329. package/.next/static/chunks/2rj3q_ahctv19.js +1 -0
  330. package/.next/static/chunks/{2lhc74urf3acr.js → 2x6-fpctvucte.js} +1 -1
  331. package/.next/static/chunks/2yicf7bky866n.js +3 -0
  332. package/.next/static/chunks/337g9g_ux2gj-.js +1 -0
  333. package/.next/static/chunks/350ws7svim7ij.js +58 -0
  334. package/.next/static/chunks/{0o7o0eb7ihxi6.js → 396enq-m0sss5.js} +1 -1
  335. package/.next/static/chunks/3e1w_nwfb39j-.js +1 -0
  336. package/.next/static/chunks/3v3ooretb54ag.js +1 -0
  337. package/.next/static/chunks/40re_3ukjulg9.js +1 -0
  338. package/.next/static/chunks/{3gsxnqqqphh-1.js → 44bcbnmup71so.js} +1 -1
  339. package/.next/static/chunks/{2qgkbdshzpq1c.js → 458dtbsemx996.js} +1 -1
  340. package/README.md +5 -5
  341. package/bin/background.mjs +995 -0
  342. package/bin/lock.mjs +121 -5
  343. package/bin/thursday.mjs +126 -30
  344. package/bin/tools.mjs +72 -1
  345. package/database/migrations/20260926021847_thread_cache_tokens/migration.sql +2 -0
  346. package/database/migrations/20260926021847_thread_cache_tokens/snapshot.json +1949 -0
  347. package/guide/bots.md +173 -317
  348. package/guide/calls.md +106 -146
  349. package/guide/index.md +2 -2
  350. package/guide/memory.md +14 -18
  351. package/guide/phone.md +86 -133
  352. package/guide/setup.md +141 -172
  353. package/guide/trouble.md +42 -65
  354. package/package.json +1 -1
  355. package/seed-skills/concierge/travel/references/itinerary.md +1 -1
  356. package/seed-skills/concierge/travel/scripts/itinerary.mjs +8 -3
  357. package/skills/artifact/references/book.md +3 -3
  358. package/skills/artifact/runtime/shell/shell.js +32 -3
  359. package/.next/server/app/api/llm-model/catalog/route/app-paths-manifest.json +0 -3
  360. package/.next/server/app/api/llm-model/catalog/route.js.nft.json +0 -1
  361. package/.next/server/app/api/llm-model/catalog/route_client-reference-manifest.js +0 -3
  362. package/.next/server/app/api/llm-model/credits/route/app-paths-manifest.json +0 -3
  363. package/.next/server/app/api/llm-model/credits/route.js.nft.json +0 -1
  364. package/.next/server/app/api/llm-model/credits/route_client-reference-manifest.js +0 -3
  365. package/.next/server/chunks/[root-of-the-server]__01ypm_z._.js +0 -3
  366. package/.next/server/chunks/[root-of-the-server]__021dkui._.js +0 -3
  367. package/.next/server/chunks/[root-of-the-server]__03xamry._.js +0 -3
  368. package/.next/server/chunks/[root-of-the-server]__09gdscj._.js +0 -7
  369. package/.next/server/chunks/[root-of-the-server]__0ljizgj._.js +0 -5
  370. package/.next/server/chunks/[root-of-the-server]__0nmust6._.js +0 -5
  371. package/.next/server/chunks/[root-of-the-server]__0svzjwa._.js +0 -7
  372. package/.next/server/chunks/[root-of-the-server]__1-rmal0._.js +0 -5
  373. package/.next/server/chunks/[root-of-the-server]__10xnb7e._.js +0 -3
  374. package/.next/server/chunks/[root-of-the-server]__1_h4hf9._.js +0 -7
  375. package/.next/server/chunks/[root-of-the-server]__1c2kwku._.js +0 -12
  376. package/.next/server/chunks/[root-of-the-server]__1t02-1p._.js +0 -3
  377. package/.next/server/chunks/[root-of-the-server]__1t0jj1j._.js +0 -5
  378. package/.next/server/chunks/[root-of-the-server]__1v7x5ym._.js +0 -3
  379. package/.next/server/chunks/[root-of-the-server]__1vlxv19._.js +0 -5
  380. package/.next/server/chunks/_07nxi75._.js +0 -254
  381. package/.next/server/chunks/_08btiir._.js +0 -7
  382. package/.next/server/chunks/_0j0-gq6._.js +0 -5
  383. package/.next/server/chunks/_0p6v1fr._.js +0 -5
  384. package/.next/server/chunks/_0srlnvd._.js +0 -16
  385. package/.next/server/chunks/_0xygcxs._.js +0 -254
  386. package/.next/server/chunks/_1ic3bew._.js +0 -5
  387. package/.next/server/chunks/_next-internal_server_app_api_llm-model_catalog_route_actions_1eu2y41.js +0 -3
  388. package/.next/server/chunks/_next-internal_server_app_api_llm-model_credits_route_actions_0v424pb.js +0 -3
  389. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_04oxl25._.js +0 -3
  390. package/.next/server/chunks/ssr/[root-of-the-server]__0-af_o7._.js +0 -3
  391. package/.next/server/chunks/ssr/[root-of-the-server]__09f39cp._.js +0 -4
  392. package/.next/server/chunks/ssr/[root-of-the-server]__0ouu4qp._.js +0 -3
  393. package/.next/server/chunks/ssr/[root-of-the-server]__0q9g9ea._.js +0 -5
  394. package/.next/server/chunks/ssr/[root-of-the-server]__17h1ggo._.js +0 -46
  395. package/.next/server/chunks/ssr/[root-of-the-server]__1jyeu61._.js +0 -5
  396. package/.next/server/chunks/ssr/_0afrpci._.js +0 -3
  397. package/.next/server/chunks/ssr/_0bgse1c._.js +0 -162
  398. package/.next/server/chunks/ssr/_0jstvlg._.js +0 -39
  399. package/.next/server/chunks/ssr/_0qsmpcu._.js +0 -3
  400. package/.next/server/chunks/ssr/_0z38nha._.js +0 -3
  401. package/.next/server/chunks/ssr/_1-41lck._.js +0 -3
  402. package/.next/server/chunks/ssr/_10_ph1t._.js +0 -3
  403. package/.next/server/chunks/ssr/_116lfdc._.js +0 -3
  404. package/.next/server/chunks/ssr/_14dfh7a._.js +0 -4
  405. package/.next/server/chunks/ssr/_17qtuv7._.js +0 -3
  406. package/.next/server/chunks/ssr/_19jez1a._.js +0 -3
  407. package/.next/server/chunks/ssr/_1_5xof_._.js +0 -3
  408. package/.next/server/chunks/ssr/_1alxym6._.js +0 -3
  409. package/.next/server/chunks/ssr/_1ou5sj0._.js +0 -3
  410. package/.next/server/chunks/ssr/_1tmw842._.js +0 -5
  411. package/.next/server/chunks/ssr/_1uij_rj._.js +0 -3
  412. package/.next/server/chunks/ssr/_1w9w1ok._.js +0 -3
  413. package/.next/server/chunks/ssr/_20gq_24._.js +0 -3
  414. package/.next/server/chunks/ssr/features_bot_0ouemw8._.js +0 -3
  415. package/.next/server/chunks/ssr/node_modules_@base-ui_react_1j9i1ho._.js +0 -3
  416. package/.next/static/chunks/01l7kw74vfp32.js +0 -1
  417. package/.next/static/chunks/0a5_-jqhaktjj.js +0 -1
  418. package/.next/static/chunks/0npvak0wpgagb.js +0 -1
  419. package/.next/static/chunks/19l81deo_pyoc.js +0 -1
  420. package/.next/static/chunks/1bnhw-5fj7aiz.js +0 -1
  421. package/.next/static/chunks/1in6nxpu33iab.js +0 -1
  422. package/.next/static/chunks/1u7kg91f9qy3g.js +0 -1
  423. package/.next/static/chunks/2ajs12-fcdwzm.js +0 -1
  424. package/.next/static/chunks/2i7qtmxc1kuqg.js +0 -1
  425. package/.next/static/chunks/2kz1f6r59nky0.js +0 -3
  426. package/.next/static/chunks/31kn4_h2rvf6k.css +0 -1
  427. package/.next/static/chunks/35jj-5u4te56r.js +0 -1
  428. package/.next/static/chunks/37ixzapa06xlo.js +0 -1
  429. package/.next/static/chunks/3jtcieuk1l6tw.js +0 -1
  430. package/.next/static/chunks/3k1d8y03t5nax.js +0 -58
  431. package/.next/static/chunks/3sla-dm1puqd1.js +0 -35
  432. package/.next/static/chunks/3t2c76awm9k_p.js +0 -1
  433. package/.next/static/chunks/3vrmcm31ih7gb.js +0 -1
  434. package/.next/static/chunks/3yiqr95d7ybeq.js +0 -15
  435. package/bin/autostart.mjs +0 -162
  436. /package/.next/server/app/api/{llm-model/catalog → bot/thread/file}/route/build-manifest.json +0 -0
  437. /package/.next/server/app/api/{llm-model/catalog → bot/thread/file}/route/server-reference-manifest.json +0 -0
  438. /package/.next/server/app/api/{llm-model/catalog → bot/thread/file}/route.js.map +0 -0
  439. /package/.next/server/app/api/llm-model/{credits → catalog/[provider]}/route/build-manifest.json +0 -0
  440. /package/.next/server/app/api/llm-model/{credits → catalog/[provider]}/route/server-reference-manifest.json +0 -0
  441. /package/.next/server/app/api/llm-model/{credits → catalog/[provider]}/route.js.map +0 -0
  442. /package/.next/static/{8I2hKtciyA9LXvd8txuOz → YhaRHJqObuAcXZe5VLFs0}/_buildManifest.js +0 -0
  443. /package/.next/static/{8I2hKtciyA9LXvd8txuOz → YhaRHJqObuAcXZe5VLFs0}/_clientMiddlewareManifest.js +0 -0
  444. /package/.next/static/{8I2hKtciyA9LXvd8txuOz → YhaRHJqObuAcXZe5VLFs0}/_ssgManifest.js +0 -0
package/guide/calls.md CHANGED
@@ -5,177 +5,137 @@
5
5
  Three ways in, and any of them also answers a call she placed:
6
6
 
7
7
  - Tap her face.
8
- - Say the wake phrase, "hey thursday" unless they changed it. It is off to begin with, because it
9
- keeps the microphone open for as long as the tab is, and the listening is the browser's own
10
- speech recognition: Chrome's sends what the microphone hears to Google, which is not this app's
11
- to change. It is heard loosely, in English, so it is written in English words; a phrase in
12
- another language is not saved.
8
+ - Say the wake phrase, "hey thursday" unless they changed it. It is off to begin with. It keeps
9
+ the microphone open while the tab is, uses the browser's own speech recognition (Chrome sends
10
+ what it hears to Google), and listens in English only.
13
11
  - Press the shortcut, Alt + Shift + T (⌥⇧T on a Mac) unless they changed it. It is off to begin
14
- with too, and works only while the app's tab has focus and nothing is being typed.
12
+ with too, and works only while the app's tab is in front and nothing is being typed.
15
13
 
16
- Both are switched on, off or rewritten in **Settings › Thursday › Starting a call**. The first-run
17
- setup offers the wake phrase too, with a try.
14
+ Both are switched on, off or changed in **Settings › Thursday › Starting a call**.
18
15
 
19
16
  She speaks first, with a short greeting, in the language the user speaks, and switches when they
20
- do; the browser's language plays no part. Every call is a new one: she does not open on old work
21
- or on how the last call ended. She has the most recent part of her earlier calls — about the last
22
- twenty turns — and picks a subject up when the user does. Anything older is gone unless she kept
23
- it in memory (`memory.md`). A call she places herself opens on why she called.
17
+ do. Until she starts speaking — three seconds at most — she does not hear the room, so words said
18
+ in that moment are lost. Every call starts fresh, but she remembers the last part of her recent
19
+ calls and picks a subject up when the user does. Anything older is gone unless she kept it in
20
+ memory (`memory.md`). A call she places herself opens on why she called.
24
21
 
25
22
  ## What she does on the line, and what goes to a bot
26
23
 
27
- She answers from what she keeps about them, searches the web, runs a single command on their
28
- computer, and holds the conversation. Anything that takes more than a few seconds — a browser, a
29
- file to make, several steps — goes to a bot and comes back while the call carries on. Which bot is
30
- hers to pick; she says who took it.
24
+ She answers from what she knows about them, searches the web, runs a single command on their
25
+ computer, and holds the conversation. Anything that takes longer — a browser, a file to make,
26
+ several steps — goes to a bot while the call carries on. She picks the bot and says who took it.
31
27
 
32
- While she is working the line under her face says so, and the answer can take a while. The
33
- microphone stays open the whole time, and the bars of its meter stay at the head of that line to
34
- show it: anything said meanwhile is heard and answered once the work is done, so there is no need
35
- to repeat it.
28
+ While she is working, the line under her face says so. The microphone stays open: anything said
29
+ meanwhile is heard and answered once she is done, so there is no need to repeat it.
30
+
31
+ **Share screen**, on that line during a spoken call, shows her a screen, a window or a tab; the
32
+ browser asks which. A small copy of it stands at the top right while it is shared. Nothing of it
33
+ is sent while it is only shared: she looks when what they ask needs it — "what does this error
34
+ say?" — and then a picture of it as it is at that moment goes to the model behind her, nowhere
35
+ else. **Stop** on the line, the browser's own bar, or the end of the call stops sharing. When the
36
+ browser refuses — on a Mac, the browser needs Screen Recording in System Settings › Privacy &
37
+ Security to share a window or the whole screen — its reason shows, and nothing is shared.
36
38
 
37
39
  ## Ending it
38
40
 
39
- Saying they want to hang up ends the call when she takes it that way, which she does not always.
40
- Tapping her face ends it for certain, and so does the shortcut. A call with nothing said for 40
41
- seconds ends by itself, counting down on screen in the last 10. The call is billed by the minute
42
- while it is open, silence included. Work already handed to a bot carries on.
41
+ Saying goodbye usually ends the call, but not always. Tapping her face ends it for certain, and so
42
+ does the shortcut. When nothing is said and she is neither talking nor working for 25 seconds, the
43
+ call ends by itself; the last 10 seconds count down on screen. A spoken call is billed by the
44
+ minute while it is open, silence included. Work already handed to a bot carries on.
43
45
 
44
46
  ## Writing to her instead
45
47
 
46
48
  The **+** at the left end of the pill in the bottom right corner — or the `/` key — opens a line at
47
- the foot of the screen. It opens on her, always. What is sent to her there starts a call in
48
- writing: her answers come up beside her face as on a spoken
49
- call, what she is doing shows with them, and the line stays as the way to write back. She has the
50
- same memory, tools and bots as on a spoken call; there is no voice and no microphone, and nothing is
51
- billed by the minute.
52
-
53
- - **Her answers keep their shape**: a list or a table comes a line at a time, and what she names is
54
- a link — a file opens over the call as a card's does, a page on the web in a new tab.
55
- - **Files** go with the words: the paperclip, a paste, or a drop anywhere on the window — at most 8
56
- at a time, 25 MB each. A picture handed over in writing is one she can look at herself — a
57
- receipt, a screenshot, a chart — so "what does this say?" is answered on the spot.
58
- - **Who it goes to**: the chip at the left of the line, or `@` and a name at the start. A bot
59
- picked there gets that one message; after it the line is hers again, and **Esc** with a bot
60
- picked goes back to her.
49
+ the foot of the screen. Sending her a message there starts a call in writing: her answers show
50
+ beside her face, and the line stays open for writing back. She has the same memory, tools and bots
51
+ as on a spoken call, with no voice and no per-minute billing.
52
+
53
+ - **Her answers** keep their shape (lists, tables), and what she names is a link: a file opens over
54
+ the call, a web page in a new tab.
55
+ - **Files**: the paperclip, a paste, or a drop anywhere on the window — at most 8 at a time, 25 MB
56
+ each. She can look at a picture herself, so "what does this say?" is answered on the spot.
57
+ - **Who it goes to**: the chip at the left of the line, or `@` and a name at the start. A bot picked
58
+ there gets that one message, then the line goes back to her; **Esc** with a bot picked also goes
59
+ back to her.
61
60
  - **What it runs on**: the GPT Subscription when one is signed in, else the OpenAI key. The small
62
- **runs on** button under the line says which before anything is sent, and picks another model
63
- for writing to her — any provider with a key. The pick is remembered by this browser and is only
64
- for writing; the spoken call's models stay in **Settings › Thursday**. With nothing to run on it
65
- says so and sends nothing; keys are in **Settings › API keys**.
66
- - **When a turn breaks** — a plan's limit, a refused key — her face says ERROR and the provider's
67
- own words show in red under the line, over **Send it again** and the way to **API keys**. Sent
68
- again on the same model, she keeps what she had already done — a job handed over before it broke
69
- is not handed over twice — and goes on from there; moved onto another, she answers afresh. When
70
- an OpenAI key is set and was not what broke, the button reads **Send it again on your OpenAI key**
71
- and moves the line onto that key; it never switches by itself, since what a turn costs changes
72
- with what it runs on.
73
- - **Writing again while she is still answering** does not wait: the words show at once, join what
74
- she is doing and are read before her next step. Whatever she had no step left to read gets an
75
- answer of its own.
76
- - **Work she handed over** comes back in writing too: the moment a bot asks or finishes she is
77
- told and answers it, and nothing rings while the written call is on. After a turn breaks,
78
- nothing comes in by itself until one goes through; after a long run of them with nothing from
79
- you, the rest waits for your next message.
80
- - **Ending it**: **Esc** ends it — saying goodbye does not, since there is no line for her to drop —
81
- and so does starting a spoken call. Opening a thread in the corner does not: the line steps out
82
- while the corner is open, her answers keep arriving beside her face, and the corner says
83
- *Thursday is still on the line* across its top, with **Back to her** to fold it in one press.
84
-
85
- It is kept with the other calls, marked *in writing*, and she reads it back on the next call like
86
- any other.
87
-
88
- During a spoken call the line writes to bots only — but a file put down then is one she is told
89
- about as it lands: its chip says *she knows it is here*, and what to do with it can simply be said.
90
- On a spoken call she sees only where the file was put, and hands it to a bot. A line left open with
91
- nothing in it closes when a spoken call picks up; one holding words or files stays.
92
-
93
- ## Seeing and hearing the words
94
-
95
- **Settings › Thursday › Captions** picks how the words show: **Both sides** (hers on the left,
96
- theirs on the right, where clicking an earlier line of hers reads it again) or **Her last line**
97
- (one caption under her face, only what she said). Both sides is where it starts; a narrow window
98
- always shows her last line.
99
-
100
- What she is doing — a search, work handed to a bot, a note she reads or writes, a command — shows
101
- as a line that names what it is about: which note, which command, which picture. With both sides
102
- showing it stands under her words, the last three steps with the older ones fainter, and the steps
103
- stay with that answer for the rest of the call. What she is thinking about stays under her face.
104
-
105
- When she searches the web, the pages she read show under her face while she answers, and each
106
- opens in a new tab.
107
-
108
- ## Her voice, her face, her models
109
-
110
- Everything here but her face is in **Settings › Thursday**, and changes apply from the next call.
111
-
112
- - **Face**: on a Mac, iPhone or iPad she is drawn in Apple's emoji, and on every other system in
113
- letters: other systems draw emoji in their own style, and letters are lighter to draw. No setting
114
- changes her face. At rest she is a face of smoke: it keeps moving inside her and drifts off her
115
- edge on a wind that comes and goes. She opens her eyes as the app opens and again every twenty
116
- seconds or so, waking one of three ways — a sigh of smoke, shaking off a crust of dust, or turning
117
- round to face you — and before she closes them she does one thing: looks about, winks, dozes off,
118
- her head goes round once, or she lets out a long breath of smoke that fills the space around her.
119
- When her head turns, only her face turns; the smoke round her stays where it is. While her eyes
120
- are open her smoke grows thick and far-reaching, and she closes them slowly, looking down, as if
121
- falling asleep. That happens only while she is resting. She can spell a short word: CALL while she
122
- rings, OK as finished work comes in, a goodbye as a call ends (BYE, SEE YA, NIGHT and a few
123
- others, by the hour), and whatever she chooses to show. While she works it is a single tail
124
- circling.
125
- - **Voice**: the voice runs on GPT-Live 1, with 22 voices to pick from; clicking a name plays it.
126
- It is the one setting here a written call or a phone does not use.
127
- - **Style**: who she is to them — Bright, Calm, Straight or Rough, and the only difference is how she talks. The row
128
- shows the one she is on; opening it lists the rest with a line each. It never changes what she
129
- can do. Last in the list, **Your own** opens a box for saying it in their own words on top of
130
- the one picked — how she talks, how much she says — which wins wherever the two differ. What to
131
- call them is not this: said on a call, she keeps it in memory.
132
- - **Backend**: the model that thinks and uses tools behind the voice, and its **effort** — how
133
- hard it thinks (`setup.md`, Models). Left as it came, the model moves to the newer one when an
134
- update brings one; a model picked here stays until another is picked. Under **tools**, **Search the web** is on unless switched
135
- off: a question about today — the weather, a price, a score — is answered on the line instead of
136
- going to a bot. **Read skills herself** is off to begin with; on, she opens the same skills a bot
137
- reads, and each one she opens costs the call a page of reading. **instructions** is a box about
138
- how work should be handed over and what to check first.
139
-
140
- Voice, style, the backend and its settings belong to the app, so she is the same on every browser
141
- and from a phone. Captions and starting a call belong to this browser.
61
+ **runs on** button under the line shows which, and can pick another model, from any provider with
62
+ a key, for writing only. With nothing to run on it says so; keys are in **Settings › API keys**.
63
+ - **When a turn fails** — a plan's limit, a refused key — her face says ERROR and the provider's
64
+ reason shows in red under the line, with **Send it again** and a link to **API keys**. When an
65
+ OpenAI key is set and was not the problem, the button reads **Send it again on your OpenAI key**.
66
+ It never switches by itself, since the cost changes with what it runs on.
67
+ - **Ending it**: **Esc** ends it (saying goodbye does not), and so does starting a spoken call.
68
+ Opening a thread in the corner does not: the corner says *Thursday is still on the line*, with
69
+ **Back to her** to return.
70
+
71
+ It is kept with the other calls, marked *in writing*.
72
+
73
+ During a spoken call the line writes to bots only. A file put down then is one she is told about —
74
+ its chip says *she knows it is here* — and what to do with it can simply be said; she hands it to a
75
+ bot.
76
+
77
+ ## Seeing the words
78
+
79
+ **Settings › Thursday › Captions** picks how the words show:
80
+
81
+ - **Both sides** (the default): hers on the left, theirs on the right. Clicking a line of hers reads
82
+ it again.
83
+ - **Her last line**: one caption under her face, only what she said.
84
+
85
+ A narrow window always shows her last line.
86
+
87
+ What she is doing — a search, a hand-off to a bot, a command — shows as a short line. Pages she
88
+ read on the web show under her face, and each opens in a new tab.
89
+
90
+ ## Her voice, face, style and models
91
+
92
+ These are in **Settings › Thursday › Models**, in two parts, **Voice** and **Backend**. Changes
93
+ apply from the next call.
94
+
95
+ - **voice**: 22 voices; clicking a name plays it. Only the spoken call uses it.
96
+ - **style**: Bright, Calm, Straight or Rough. It changes only how she talks, never what she can do.
97
+ **Your own** adds their own words on top — how she talks, how much she says — and wins where the
98
+ two differ. What she calls them is not set here: tell her on a call and she remembers it.
99
+ - Under **Backend**, **model** and **effort**: the model that thinks and uses tools behind the voice, and how
100
+ hard it thinks (`setup.md`, Models).
101
+ - **tools**: **Search the web** is on unless switched off, so a question about today — the weather,
102
+ a price, a score — is answered on the line. **Read skills herself** is off to begin with; on, she
103
+ can open the same skills a bot reads, and each one she opens adds a page of reading to the call.
104
+ - **instructions**: how work should be handed over and what to check first.
105
+
106
+ Her face has no setting: on a Mac, iPhone or iPad she is drawn in Apple's emoji, elsewhere in
107
+ letters. At rest she is a face of smoke that now and then opens its eyes, and she sometimes spells
108
+ a short word, such as a goodbye when a call ends.
109
+
110
+ Voice, style and the backend settings belong to the app, so they are the same in every browser and
111
+ from a phone. Captions and **Starting a call** belong to this browser.
142
112
 
143
113
  ## When work has something to say
144
114
 
145
- While a call is open, a question from a bot, and a result or a progress line that comes in during
146
- the call, reach the conversation by themselves — on a spoken call in a quiet moment, in writing as
147
- soon as they come — and she says them. Work that had already finished before the call opened is
148
- not read out: it is on the screen — the card, the pill, the thread — and she looks it up when asked.
149
- What is done on screen while a call is open — a bot answered, a job stopped — she is told of, spoken
150
- or in writing, so she does not ask it again.
115
+ During a call, a bot's question or result reaches her by itself — on a spoken call in a quiet
116
+ moment — and she tells the user. Work that finished before the call opened is not read out; it is
117
+ on screen, and she looks it up when asked.
151
118
 
152
- With no call open, a finished job lands as a card in the bottom left corner, and if the app is not
153
- the window in front, as a browser notification that brings it forward when pressed (the browser
154
- asks for permission when a call is placed). With no app tab open at all, the computer's own
155
- notification says it instead; on a Mac pressing that one opens Script Editor rather than the app.
119
+ With no call open, a finished job lands as a card in the bottom left corner, plus a browser
120
+ notification when the app is not the window in front. With no app tab open, the computer's own
121
+ notification says it instead (on a Mac, clicking it opens Script Editor, not the app).
156
122
 
157
123
  **Settings › Thursday › Starting a call › She calls you** makes the screen ring instead:
158
124
 
159
- - **When a job needs me** — where it starts — rings when a bot asks something.
160
- - **Whenever a job ends** rings for every ending as well.
125
+ - **When a job needs me** (the default) rings when a bot asks something.
126
+ - **Whenever a job ends** rings for every ending too.
161
127
  - **Never** leaves it to the notification.
162
128
 
163
- It needs this tab open. It is one call however much is waiting: while it rings, the screen says
164
- under her face whose work it is about and what it asks — with the answers the bot offered and the
165
- other work waiting by name — and one round button, **Answer**. Pressing one of those answers
166
- answers the bot there and then, with no call, and the ring moves on to whatever else waits.
167
- Tapping her face answers too, and so
168
- does the wake phrase when it is on; **Esc** is "not now". She opens by saying why she called, then
169
- tells the rest one by one. A ring nobody takes becomes a short missed list in the same place, with
170
- **Call back**, until it is called back or cleared with Esc; the work itself stays in the room
171
- either way. She cannot switch this on herself: when they ask to be called back, say where it is.
172
- The ring sounds once, as it starts, and the screen keeps ringing without it; a browser plays no
173
- sound on a page nobody has clicked yet, so right after a reload it rings on the screen only.
129
+ It needs this tab open. While it rings, the screen shows whose work it is and what it asks, with
130
+ the bot's suggested answers — picking one replies without a call. **Answer**, tapping her face or
131
+ the wake phrase picks up; **Esc** is "not now". A missed ring stays on screen with **Call back**
132
+ until called back or cleared with Esc. She cannot switch this on herself: when asked to call back,
133
+ say where it is.
174
134
 
175
135
  ## History
176
136
 
177
- **Settings › Thursday › History** has two tiles. **Call history** is every call that was kept, one
178
- after another, oldest at the top, each with the jobs it opened and where they stand; a single call
179
- can be deleted, or all of them with **Delete all**. A call is kept for three months and then goes
180
- by itself. **Reset history** deletes every call, every job and everything she remembers, for good;
181
- keys, bots and connectors stay, and so does what each bot keeps for itself.
137
+ **Settings › Thursday › History** has two tiles. **Call history** lists every kept call, each with
138
+ the jobs it started and where they stand; one call can be deleted, or all with **Delete all**.
139
+ Calls are kept for three months, then removed by themselves. **Reset history** deletes every call,
140
+ every job and everything she remembers, for good; keys, bots and connectors stay, and so does what
141
+ each bot keeps for itself.
package/guide/index.md CHANGED
@@ -14,9 +14,9 @@ When a wish needs a setting, say which one and where, rather than agreeing to it
14
14
  | `calls.md` | Calling her or writing to her, what she does herself, how a call ends, her voice, face, style and models, call history |
15
15
  | `bots.md` | Bots, the work they take, threads, stopping and questions, what they made and where it is kept, routines |
16
16
  | `memory.md` | What she keeps about the user, and how they change it |
17
- | `setup.md` | The first run, the buttons and Settings list, keys, models, skills, connected services, sign-ins, its own window, where the files live, what it costs |
17
+ | `setup.md` | The first run, the buttons and Settings list, keys, models, skills, connected services, sign-ins, its own window and how it is started, where the files live, what it costs |
18
18
  | `phone.md` | Writing to her from a phone through a chat app: setting it up, who is let in, what reaches the phone |
19
- | `trouble.md` | A call that will not open, a job that stopped, a bot that cannot do something, where to ask when nothing here answers |
19
+ | `trouble.md` | A call that will not open or ended, the wake phrase, a job that stopped, a bot that cannot do something, starting over, where to ask when nothing here answers |
20
20
 
21
21
  Two things hold everywhere:
22
22
 
package/guide/memory.md CHANGED
@@ -2,36 +2,32 @@
2
2
 
3
3
  Memory is notes, and a note is lines of plain text — facts. `profile` is who they are,
4
4
  `preferences` is how they want things done and said, including what to do in a particular
5
- situation, and the rest are one note per person, project or topic. Each note is listed by one line
6
- saying what it is about, with the names they use for it. Profile and preferences are read whole on
7
- every call; every other note is opened when its subject comes up.
5
+ situation, and the rest are one note per person, project or topic. Profile and preferences are read
6
+ on every call; every other note is opened when its subject comes up.
8
7
 
9
- She writes memory herself as things come up in a call, what tells her most about them first:
10
- what they loved or could not stand and why, the way she talks included; what they are going
11
- through; good news; their stories and the people in their life; then plain facts and tastes. Bots
12
- read it and never write it; a bot keeps what a job taught it in its own memory instead
13
- (`bots.md`).
8
+ She writes memory herself as things come up in a call: what they loved or could not stand, what
9
+ they are going through, the people in their life, facts and tastes. Bots read it and never write
10
+ it; a bot keeps what a job taught it in its own memory instead (`bots.md`).
14
11
 
15
12
  **Settings › Memory** is the whole of it. The notes are grouped — **You**, **People**, **Projects**,
16
13
  **Topics**, **Other** — with a count of notes and facts at the top, and **Filter memory** narrows
17
14
  them by any word. There the user can:
18
15
 
19
- - open any note and see each fact, when it was saved and who wrote it (you, on a call, a bot);
16
+ - open any note and see each fact, when it was saved and who wrote it (you, or on a call);
20
17
  - change a fact or delete it, and **Add a fact** to a note;
21
- - change the line a note is listed by (not for profile and preferences, whose line is fixed);
18
+ - change the line a note is listed by (not for profile and preferences);
22
19
  - make a note of their own with **New note**: its kind (Person, Project or Topic), **Name**,
23
20
  **Summary** (the line it is listed by) and first **Facts**;
24
21
  - delete a whole note with **Forget this note**;
25
22
  - type what changed instead of editing by hand: **Edit with a model** opens a box, *Tell memory
26
- what changed*, with its own pick of model, and each edit shows as it lands.
23
+ what changed*, with its own pick of model.
27
24
 
28
25
  Each note says when it was last read back, and notes that are rarely read are drawn fainter.
29
26
 
30
- Nothing is hidden: what she knows about them is what is on that screen, plus the most recent part
31
- of her earlier calls (`calls.md`). Asking her to forget something removes the line.
27
+ Nothing is hidden: what she knows about them is what is on that screen, plus the last part of her
28
+ recent calls (`calls.md`). Asking her to forget something removes it.
32
29
 
33
- Memory holds up to 400 facts, and 50 in one note. When it grows past that she says so once on a
34
- call and goes through what looks out of date with the user, the heaviest notes first, deleting
35
- only what they name. Forgetting a fact takes it out of everything she reads; the earlier wordings it
36
- replaced stay in the database until its note is deleted. **Reset history** in Settings › Thursday
37
- deletes all of her memory along with every call and job; what each bot keeps for itself stays.
30
+ Memory holds up to 400 facts, and 50 in one note. Past that she says so once on a call and goes
31
+ through what looks out of date with the user, deleting only what they name. **Reset history** in
32
+ **Settings › Thursday › History** deletes all of her memory along with every call and job; what
33
+ each bot keeps for itself stays.