thursday-agent 0.22.0 → 0.23.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 (455) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/prerender-manifest.json +4 -4
  4. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  5. package/.next/server/app/_global-error.html +1 -1
  6. package/.next/server/app/_global-error.rsc +1 -1
  7. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  10. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  11. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/_not-found.html +1 -1
  13. package/.next/server/app/_not-found.rsc +12 -12
  14. package/.next/server/app/_not-found.segments/_full.segment.rsc +12 -12
  15. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +11 -11
  16. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  17. package/.next/server/app/api/artifact/route.js +6 -6
  18. package/.next/server/app/api/artifact/route.js.nft.json +1 -1
  19. package/.next/server/app/api/bot/memory/files/route.js +5 -4
  20. package/.next/server/app/api/bot/memory/files/route.js.nft.json +1 -1
  21. package/.next/server/app/api/bot/memory/route.js +9 -9
  22. package/.next/server/app/api/bot/memory/route.js.nft.json +1 -1
  23. package/.next/server/app/api/bot/route.js +9 -9
  24. package/.next/server/app/api/bot/route.js.nft.json +1 -1
  25. package/.next/server/app/api/bot/thread/[id]/route.js +2 -2
  26. package/.next/server/app/api/bot/thread/[id]/route.js.nft.json +1 -1
  27. package/.next/server/app/api/bot/thread/file/route.js +12 -12
  28. package/.next/server/app/api/bot/thread/file/route.js.nft.json +1 -1
  29. package/.next/server/app/api/bot/thread/route.js +2 -2
  30. package/.next/server/app/api/bot/thread/route.js.nft.json +1 -1
  31. package/.next/server/app/api/config/route.js +2 -2
  32. package/.next/server/app/api/config/route.js.nft.json +1 -1
  33. package/.next/server/app/api/events/route.js.nft.json +1 -1
  34. package/.next/server/app/api/favicon/[host]/route.js.nft.json +1 -1
  35. package/.next/server/app/api/file/[...path]/route.js +3 -3
  36. package/.next/server/app/api/file/[...path]/route.js.nft.json +1 -1
  37. package/.next/server/app/api/llm-model/automatic/route.js.nft.json +1 -1
  38. package/.next/server/app/api/llm-model/catalog/[provider]/route.js.nft.json +1 -1
  39. package/.next/server/app/api/llm-model/credits/[provider]/route.js.nft.json +1 -1
  40. package/.next/server/app/api/llm-model/route.js.nft.json +1 -1
  41. package/.next/server/app/api/llm-model/subscription/route.js.nft.json +1 -1
  42. package/.next/server/app/api/mcp/[name]/route.js.nft.json +1 -1
  43. package/.next/server/app/api/mcp/oauth/callback/route.js +2 -2
  44. package/.next/server/app/api/mcp/oauth/callback/route.js.nft.json +1 -1
  45. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  46. package/.next/server/app/api/mcp/tools/route.js.nft.json +1 -1
  47. package/.next/server/app/api/memory/edit/route.js +13 -13
  48. package/.next/server/app/api/memory/edit/route.js.nft.json +1 -1
  49. package/.next/server/app/api/memory/route.js +1 -1
  50. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  51. package/.next/server/app/api/reach/route.js +11 -11
  52. package/.next/server/app/api/reach/route.js.nft.json +1 -1
  53. package/.next/server/app/api/routine/route.js +9 -9
  54. package/.next/server/app/api/routine/route.js.nft.json +1 -1
  55. package/.next/server/app/api/running/route.js.nft.json +1 -1
  56. package/.next/server/app/api/signins/route.js +7 -6
  57. package/.next/server/app/api/signins/route.js.nft.json +1 -1
  58. package/.next/server/app/api/skills/[source]/[name]/route.js +8 -8
  59. package/.next/server/app/api/skills/[source]/[name]/route.js.nft.json +1 -1
  60. package/.next/server/app/api/skills/route.js +8 -8
  61. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  62. package/.next/server/app/api/thursday/call/end/route.js +6 -6
  63. package/.next/server/app/api/thursday/call/end/route.js.nft.json +1 -1
  64. package/.next/server/app/api/thursday/call/plan/route.js +16 -16
  65. package/.next/server/app/api/thursday/call/plan/route.js.nft.json +1 -1
  66. package/.next/server/app/api/thursday/call/route.js +6 -6
  67. package/.next/server/app/api/thursday/call/route.js.nft.json +1 -1
  68. package/.next/server/app/api/thursday/settings/route.js +6 -6
  69. package/.next/server/app/api/thursday/settings/route.js.nft.json +1 -1
  70. package/.next/server/app/api/thursday/text/route.js +16 -16
  71. package/.next/server/app/api/thursday/text/route.js.nft.json +1 -1
  72. package/.next/server/app/api/thursday/tool-call/route.js +10 -10
  73. package/.next/server/app/api/thursday/tool-call/route.js.nft.json +1 -1
  74. package/.next/server/app/api/workspace/files/route.js +1 -1
  75. package/.next/server/app/api/workspace/files/route.js.nft.json +1 -1
  76. package/.next/server/app/api/workspace/route.js +1 -1
  77. package/.next/server/app/api/workspace/route.js.nft.json +1 -1
  78. package/.next/server/app/artifact/[...path]/page/server-reference-manifest.json +11 -11
  79. package/.next/server/app/artifact/[...path]/page.js +5 -5
  80. package/.next/server/app/artifact/[...path]/page.js.nft.json +1 -1
  81. package/.next/server/app/artifact/[...path]/page_client-reference-manifest.js +1 -1
  82. package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  83. package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  84. package/.next/server/app/page/react-loadable-manifest.json +2 -2
  85. package/.next/server/app/page/server-reference-manifest.json +162 -162
  86. package/.next/server/app/page.js +7 -7
  87. package/.next/server/app/page.js.nft.json +1 -1
  88. package/.next/server/app/page_client-reference-manifest.js +1 -1
  89. package/.next/server/chunks/[root-of-the-server]__019e1fy._.js +2 -2
  90. package/.next/server/chunks/[root-of-the-server]__01jpmcj._.js +2 -2
  91. package/.next/server/chunks/[root-of-the-server]__03bjojd._.js +2 -2
  92. package/.next/server/chunks/[root-of-the-server]__03vunn6._.js +1 -1
  93. package/.next/server/chunks/[root-of-the-server]__06kxzw-._.js +2 -2
  94. package/.next/server/chunks/[root-of-the-server]__0atwstu._.js +1 -1
  95. package/.next/server/chunks/{[root-of-the-server]__005onk_._.js → [root-of-the-server]__0cfv4rq._.js} +1 -1
  96. package/.next/server/chunks/[root-of-the-server]__0d-dfqm._.js +1 -1
  97. package/.next/server/chunks/{[root-of-the-server]__1-i6lgn._.js → [root-of-the-server]__0d00o4_._.js} +1 -1
  98. package/.next/server/chunks/{[root-of-the-server]__0itmdqy._.js → [root-of-the-server]__0e8y4ok._.js} +1 -1
  99. package/.next/server/chunks/{[root-of-the-server]__1tyftcr._.js → [root-of-the-server]__0eem_66._.js} +1 -1
  100. package/.next/server/chunks/{[root-of-the-server]__0xn7a8p._.js → [root-of-the-server]__0jn2qbf._.js} +1 -1
  101. package/.next/server/chunks/{[root-of-the-server]__08922kg._.js → [root-of-the-server]__0l563r8._.js} +1 -1
  102. package/.next/server/chunks/[root-of-the-server]__0mh1tgg._.js +1 -1
  103. package/.next/server/chunks/[root-of-the-server]__0mq0qmk._.js +3 -0
  104. package/.next/server/chunks/[root-of-the-server]__0ncs9uu._.js +1 -1
  105. package/.next/server/chunks/{[root-of-the-server]__1a7rgvy._.js → [root-of-the-server]__0pp2355._.js} +1 -1
  106. package/.next/server/chunks/{[root-of-the-server]__1g08s7l._.js → [root-of-the-server]__0r77huw._.js} +2 -2
  107. package/.next/server/chunks/[root-of-the-server]__10_v9ml._.js +3 -0
  108. package/.next/server/chunks/[root-of-the-server]__13hng6h._.js +1 -1
  109. package/.next/server/chunks/[root-of-the-server]__1478lu3._.js +1 -1
  110. package/.next/server/chunks/[root-of-the-server]__16xao_p._.js +5 -0
  111. package/.next/server/chunks/[root-of-the-server]__17kdjf6._.js +2 -2
  112. package/.next/server/chunks/[root-of-the-server]__17m7ag9._.js +1 -1
  113. package/.next/server/chunks/[root-of-the-server]__17yv6lg._.js +5 -0
  114. package/.next/server/chunks/[root-of-the-server]__19aqyg-._.js +1 -1
  115. package/.next/server/chunks/[root-of-the-server]__19imprr._.js +3 -0
  116. package/.next/server/chunks/[root-of-the-server]__1_04mcf._.js +2 -2
  117. package/.next/server/chunks/[root-of-the-server]__1ceammd._.js +1 -1
  118. package/.next/server/chunks/[root-of-the-server]__1fhule0._.js +3 -0
  119. package/.next/server/chunks/[root-of-the-server]__1hing45._.js +3 -0
  120. package/.next/server/chunks/{[root-of-the-server]__0mttntm._.js → [root-of-the-server]__1ivfglf._.js} +1 -1
  121. package/.next/server/chunks/[root-of-the-server]__1jcu_e9._.js +5 -0
  122. package/.next/server/chunks/{[root-of-the-server]__0m0qglo._.js → [root-of-the-server]__1kb-dkn._.js} +2 -2
  123. package/.next/server/chunks/{[root-of-the-server]__0eluax8._.js → [root-of-the-server]__1mowvzz._.js} +1 -1
  124. package/.next/server/chunks/[root-of-the-server]__1ndi14y._.js +1 -1
  125. package/.next/server/chunks/[root-of-the-server]__1o7z93z._.js +1 -1
  126. package/.next/server/chunks/[root-of-the-server]__1onvx8x._.js +1 -1
  127. package/.next/server/chunks/[root-of-the-server]__1q_d6dj._.js +3 -0
  128. package/.next/server/chunks/[root-of-the-server]__1u_6dhy._.js +1 -1
  129. package/.next/server/chunks/{[root-of-the-server]__1_wtn0q._.js → [root-of-the-server]__1yiqjfx._.js} +1 -1
  130. package/.next/server/chunks/[root-of-the-server]__1yr_vvq._.js +3 -0
  131. package/.next/server/chunks/_0-mqt2w._.js +3 -0
  132. package/.next/server/chunks/_0-qt5if._.js +1 -1
  133. package/.next/server/chunks/{_0fau3ya._.js → _00aztuo._.js} +2 -2
  134. package/.next/server/chunks/_021kabv._.js +53 -0
  135. package/.next/server/chunks/_032k4m6._.js +3 -0
  136. package/.next/server/chunks/_03p6r2-._.js +1 -1
  137. package/.next/server/chunks/_06b5b4-._.js +2 -2
  138. package/.next/server/chunks/_06u9yo-._.js +1 -1
  139. package/.next/server/chunks/_07mczew._.js +3 -0
  140. package/.next/server/chunks/_07pkeds._.js +1 -1
  141. package/.next/server/chunks/_08354bn._.js +22 -22
  142. package/.next/server/chunks/_083t_nr._.js +5 -0
  143. package/.next/server/chunks/_0c-s0ei._.js +3 -0
  144. package/.next/server/chunks/_0cq69mm._.js +1 -1
  145. package/.next/server/chunks/_0gifi_2._.js +7 -0
  146. package/.next/server/chunks/_0gxz_1b._.js +1 -1
  147. package/.next/server/chunks/{_1tjwvoz._.js → _0la8s6t._.js} +2 -2
  148. package/.next/server/chunks/_0p27in2._.js +1 -1
  149. package/.next/server/chunks/{_09rtyfn._.js → _0rn3c_0._.js} +24 -26
  150. package/.next/server/chunks/_0ue8nq-._.js +5 -1
  151. package/.next/server/chunks/{_1uu4wjr._.js → _0wkhub3._.js} +2 -2
  152. package/.next/server/chunks/_0wyh244._.js +22 -22
  153. package/.next/server/chunks/_0ynjnhl._.js +5 -0
  154. package/.next/server/chunks/_1-wp0r0._.js +1 -1
  155. package/.next/server/chunks/{_201k0ah._.js → _12-7atf._.js} +2 -2
  156. package/.next/server/chunks/{_02mn8d7._.js → _124q1p2._.js} +2 -2
  157. package/.next/server/chunks/{_14xuq46._.js → _13qoxq9._.js} +24 -26
  158. package/.next/server/chunks/{_11y8h29._.js → _15-_mie._.js} +2 -2
  159. package/.next/server/chunks/_1823_7a._.js +1 -1
  160. package/.next/server/chunks/{_0uir6hb._.js → _186uku9._.js} +2 -2
  161. package/.next/server/chunks/{_0ggqpiz._.js → _18sj4xf._.js} +2 -2
  162. package/.next/server/chunks/_19kea1l._.js +12 -12
  163. package/.next/server/chunks/_1ac33qw._.js +2 -2
  164. package/.next/server/chunks/{_18z965x._.js → _1chy-lk._.js} +2 -2
  165. package/.next/server/chunks/_1cw6-rv._.js +1 -1
  166. package/.next/server/chunks/_1evvnbp._.js +1 -1
  167. package/.next/server/chunks/_1f_x75d._.js +3 -0
  168. package/.next/server/chunks/_1gn2r2q._.js +7 -9
  169. package/.next/server/chunks/_1icgbi8._.js +1 -1
  170. package/.next/server/chunks/{_1ozcb6o._.js → _1k6bmez._.js} +2 -2
  171. package/.next/server/chunks/_1ko5shz._.js +1 -1
  172. package/.next/server/chunks/_1ksyu6r._.js +1 -1
  173. package/.next/server/chunks/_1kwmzab._.js +3 -0
  174. package/.next/server/chunks/_1lg0lsu._.js +1 -1
  175. package/.next/server/chunks/_1pv6xbq._.js +5 -0
  176. package/.next/server/chunks/_1q42187._.js +2 -2
  177. package/.next/server/chunks/_1q6e56i._.js +7 -9
  178. package/.next/server/chunks/_1t43w6q._.js +1 -1
  179. package/.next/server/chunks/_1t8fv7b._.js +1 -1
  180. package/.next/server/chunks/_1ufbxe1._.js +1 -1
  181. package/.next/server/chunks/_1wgae1c._.js +1 -1
  182. package/.next/server/chunks/_1xps4ob._.js +1 -1
  183. package/.next/server/chunks/_1znrlca._.js +3 -0
  184. package/.next/server/chunks/config_ts_1g4sz5o._.js +1 -1
  185. package/.next/server/chunks/features_14kex_m._.js +11 -11
  186. package/.next/server/chunks/features_bot_08z387_._.js +2 -2
  187. package/.next/server/chunks/features_bot_1d6ghh5._.js +41 -0
  188. package/.next/server/chunks/features_bot_1dfrdsb._.js +10 -6
  189. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0yd5xa0._.js → node_modules_consola_dist_chunks_prompt_mjs_0k--vqs._.js} +1 -1
  190. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0ufuc3s._.js +3 -0
  191. package/.next/server/chunks/ssr/[root-of-the-server]__05qiosr._.js +3 -0
  192. package/.next/server/chunks/ssr/[root-of-the-server]__0y03pu0._.js +3 -0
  193. package/.next/server/chunks/ssr/[root-of-the-server]__0zt_au4._.js +3 -0
  194. package/.next/server/chunks/ssr/{[root-of-the-server]__0eloa6y._.js → [root-of-the-server]__17yeveo._.js} +5 -5
  195. package/.next/server/chunks/ssr/[root-of-the-server]__1867koj._.js +1 -1
  196. package/.next/server/chunks/ssr/[root-of-the-server]__1t38-p_._.js +3 -0
  197. package/.next/server/chunks/ssr/[root-of-the-server]__1u42eh0._.js +3 -0
  198. package/.next/server/chunks/ssr/[root-of-the-server]__203utm3._.js +1 -1
  199. package/.next/server/chunks/ssr/{_0xurp8n._.js → _0-s7ria._.js} +2 -2
  200. package/.next/server/chunks/ssr/_03vw3u5._.js +3 -0
  201. package/.next/server/chunks/ssr/_088qe9a._.js +162 -0
  202. package/.next/server/chunks/ssr/_09a6bpd._.js +1 -1
  203. package/.next/server/chunks/ssr/{_0u43zjx._.js → _0a_pedm._.js} +2 -2
  204. package/.next/server/chunks/ssr/_0ali_i8._.js +3 -0
  205. package/.next/server/chunks/ssr/_0cd6g3l._.js +3 -3
  206. package/.next/server/chunks/ssr/{_1nwey7a._.js → _0eprrig._.js} +2 -2
  207. package/.next/server/chunks/ssr/_0flnog5._.js +3 -0
  208. package/.next/server/chunks/ssr/_0iuvjnw._.js +1 -1
  209. package/.next/server/chunks/ssr/{_0t_e9rd._.js → _0k-gl8l._.js} +2 -2
  210. package/.next/server/chunks/ssr/_0kmldic._.js +41 -0
  211. package/.next/server/chunks/ssr/_0ks03l-._.js +3 -0
  212. package/.next/server/chunks/ssr/_0mng-y8._.js +6 -0
  213. package/.next/server/chunks/ssr/_0tg3o37._.js +1 -1
  214. package/.next/server/chunks/ssr/_0ugzm_0._.js +3 -0
  215. package/.next/server/chunks/ssr/{_0ntol64._.js → _0wnv6c0._.js} +2 -2
  216. package/.next/server/chunks/ssr/{_0-y08rv._.js → _0z9zkd-._.js} +2 -2
  217. package/.next/server/chunks/ssr/_11l9kc0._.js +1 -1
  218. package/.next/server/chunks/ssr/_12_ail7._.js +3 -0
  219. package/.next/server/chunks/ssr/_16_7zeo._.js +1 -1
  220. package/.next/server/chunks/ssr/_16wjbs2._.js +3 -0
  221. package/.next/server/chunks/ssr/{_16o81mn._.js → _18rmqqu._.js} +2 -2
  222. package/.next/server/chunks/ssr/_1bfrntd._.js +2 -2
  223. package/.next/server/chunks/ssr/{_0gn_i4s._.js → _1ckje8g._.js} +2 -2
  224. package/.next/server/chunks/ssr/_1crszf7._.js +1 -1
  225. package/.next/server/chunks/ssr/_1h3qetc._.js +3 -0
  226. package/.next/server/chunks/ssr/{_1gz4ov7._.js → _1kpvfmn._.js} +3 -3
  227. package/.next/server/chunks/ssr/{_12hdw8x._.js → _1l-3enz._.js} +26 -28
  228. package/.next/server/chunks/ssr/_1neoj22._.js +1 -1
  229. package/.next/server/chunks/ssr/_1soynbw._.js +2 -2
  230. package/.next/server/chunks/ssr/{_0ux4i2m._.js → _1v1pcoh._.js} +2 -2
  231. package/.next/server/chunks/ssr/features_ai_components_model-picker_tsx_0ucb1y9._.js +1 -1
  232. package/.next/server/chunks/ssr/{features_bot_06n7hmd._.js → features_bot_0-7flc-._.js} +2 -2
  233. package/.next/server/chunks/ssr/features_bot_0tb4ui-._.js +1 -1
  234. package/.next/server/chunks/ssr/features_bot_1stfytf._.js +41 -0
  235. package/.next/server/chunks/ssr/features_config_10xs4l1._.js +20 -0
  236. package/.next/server/chunks/ssr/features_connectors_components_mcp-setting_tsx_0jmbgvp._.js +1 -1
  237. package/.next/server/chunks/ssr/features_memory_components_memory-setting_tsx_0oa43sw._.js +1 -1
  238. package/.next/server/chunks/ssr/features_routine_components_routine-setting_tsx_055fknz._.js +1 -1
  239. package/.next/server/chunks/ssr/features_thursday_0cf9y0b._.js +1 -1
  240. package/.next/server/chunks/ssr/features_thursday_components_here-globe_tsx_055duhw._.js +1 -1
  241. package/.next/server/chunks/ssr/lib_utils_ts_0_f1xvm._.js +1 -1
  242. package/.next/server/chunks/ssr/{node_modules_1i-g3bz._.js → node_modules_00mh9o-._.js} +1 -1
  243. package/.next/server/chunks/ssr/{node_modules_1bvw77g._.js → node_modules_04f_uw2._.js} +1 -1
  244. package/.next/server/chunks/ssr/{node_modules_16tn8xu._.js → node_modules_07udd3z._.js} +1 -1
  245. package/.next/server/chunks/ssr/{node_modules_0ksqeyy._.js → node_modules_08-pj-2._.js} +1 -1
  246. package/.next/server/chunks/ssr/{node_modules_0e398ts._.js → node_modules_098h6h5._.js} +1 -1
  247. package/.next/server/chunks/ssr/{node_modules_19r9vjv._.js → node_modules_0_7yfem._.js} +1 -1
  248. package/.next/server/chunks/ssr/{node_modules_01v7ybp._.js → node_modules_0ayoorn._.js} +1 -1
  249. package/.next/server/chunks/ssr/{node_modules_0_zk6yd._.js → node_modules_0bp3vfu._.js} +1 -1
  250. package/.next/server/chunks/ssr/{node_modules_0m-dnm-._.js → node_modules_0ch5hqr._.js} +1 -1
  251. package/.next/server/chunks/ssr/{node_modules_0536cp2._.js → node_modules_0e-hyim._.js} +1 -1
  252. package/.next/server/chunks/ssr/{node_modules_0yn2z6s._.js → node_modules_0ffm9w3._.js} +1 -1
  253. package/.next/server/chunks/ssr/{node_modules_1jf8aik._.js → node_modules_0jzyuwk._.js} +1 -1
  254. package/.next/server/chunks/ssr/{node_modules_0m2oth3._.js → node_modules_0ln4iwf._.js} +1 -1
  255. package/.next/server/chunks/ssr/{node_modules_1dlue-g._.js → node_modules_0my2hph._.js} +1 -1
  256. package/.next/server/chunks/ssr/{node_modules_0cpegwf._.js → node_modules_0y_k4h5._.js} +1 -1
  257. package/.next/server/chunks/ssr/{node_modules_13dwal5._.js → node_modules_10bzndo._.js} +1 -1
  258. package/.next/server/chunks/ssr/{node_modules_1ctm_ju._.js → node_modules_1b5rxw5._.js} +1 -1
  259. package/.next/server/chunks/ssr/{node_modules_01fukqn._.js → node_modules_1b_h09q._.js} +1 -1
  260. package/.next/server/chunks/ssr/{node_modules_12hh0bx._.js → node_modules_1e83j9e._.js} +1 -1
  261. package/.next/server/chunks/ssr/{node_modules_08m1gvh._.js → node_modules_1e9ugfy._.js} +1 -1
  262. package/.next/server/chunks/ssr/{node_modules_06n6ruk._.js → node_modules_1hd66k0._.js} +1 -1
  263. package/.next/server/chunks/ssr/{node_modules_1zdz2zf._.js → node_modules_1inwr2m._.js} +1 -1
  264. package/.next/server/chunks/ssr/{node_modules_1zalmtr._.js → node_modules_1j9xx1k._.js} +1 -1
  265. package/.next/server/chunks/ssr/{node_modules_1kfbdfo._.js → node_modules_1k8kypa._.js} +1 -1
  266. package/.next/server/chunks/ssr/{node_modules_056xgci._.js → node_modules_1oeu85h._.js} +1 -1
  267. package/.next/server/chunks/ssr/{node_modules_0ie8g6a._.js → node_modules_1r2ghv5._.js} +2 -2
  268. package/.next/server/chunks/ssr/{node_modules_1fqgrh0._.js → node_modules_1ttpnib._.js} +1 -1
  269. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0nj1l8f._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0ir6p7s._.js} +1 -1
  270. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_17ok98u._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1ejf5ye._.js} +1 -1
  271. package/.next/server/middleware-build-manifest.js +3 -3
  272. package/.next/server/pages/404.html +1 -1
  273. package/.next/server/pages/500.html +1 -1
  274. package/.next/server/server-reference-manifest.js +1 -1
  275. package/.next/server/server-reference-manifest.json +163 -163
  276. package/.next/static/chunks/02lze_e5sagjn.js +1 -0
  277. package/.next/static/chunks/{3866u-edsoyj3.js → 081kl7k8r6f8z.js} +1 -1
  278. package/.next/static/chunks/0_s4z70lx1tgs.js +1 -0
  279. package/.next/static/chunks/0fklfoj8o_msg.js +18 -0
  280. package/.next/static/chunks/0ve2gb0hw3wkq.js +1 -0
  281. package/.next/static/chunks/11c3uijgqik4m.js +39 -0
  282. package/.next/static/chunks/{0go5_9zqag7l0.js → 125lh2zzxk3r2.js} +1 -1
  283. package/.next/static/chunks/{3zv4wiqjl5kex.js → 166v36614ycsf.js} +1 -1
  284. package/.next/static/chunks/16np6727e61io.js +1 -0
  285. package/.next/static/chunks/18amidjlaqexf.js +1 -0
  286. package/.next/static/chunks/{35ehi-okrfot5.js → 1ettmta9iet7b.js} +1 -1
  287. package/.next/static/chunks/{1dy5xaxjdsy11.js → 1j4rndg17wgfk.js} +1 -1
  288. package/.next/static/chunks/{01r1uco3ikisc.js → 1mpz4epyg-7pz.js} +1 -1
  289. package/.next/static/chunks/{05blzta_1i7c2.js → 1oh4hbusfz97l.js} +1 -1
  290. package/.next/static/chunks/{3qfhjwd9yuijo.js → 1x1-44qmhu437.js} +1 -1
  291. package/.next/static/chunks/{0hpx0--bh7vld.js → 22jb4s3-8ckup.js} +1 -1
  292. package/.next/static/chunks/236le5kv_yj6a.css +1 -0
  293. package/.next/static/chunks/24op50z6sqi_5.js +1 -0
  294. package/.next/static/chunks/2eczs-lporqt6.js +1 -0
  295. package/.next/static/chunks/{2nbj2t9yp8ke9.js → 2sxclirl-c-um.js} +1 -1
  296. package/.next/static/chunks/2yfmmo4qr_f-m.js +1 -0
  297. package/.next/static/chunks/2z4sodeldj_86.js +1 -0
  298. package/.next/static/chunks/{3tyacy8fh5_18.js → 2zhiqxw61qowv.js} +2 -2
  299. package/.next/static/chunks/338dt83llhu5m.js +1 -0
  300. package/.next/static/chunks/3ezjz93yvzmop.js +4 -0
  301. package/.next/static/chunks/3h6rqjx92wva9.js +1 -0
  302. package/.next/static/chunks/3ph9u-51x6jhe.js +15 -0
  303. package/.next/static/chunks/{052u13mcoxt87.js → 3uf32hp_g9stz.js} +1 -1
  304. package/.next/static/chunks/3w7zt3xzyjn86.js +3 -0
  305. package/.next/static/chunks/3xkx7vqefm7on.js +2 -0
  306. package/.next/static/chunks/3ygk41pgsw7nv.js +1 -0
  307. package/.next/static/chunks/{3146sccz1j76i.js → 411uyd0is9u5s.js} +1 -1
  308. package/.next/static/chunks/4384atd5zerir.js +1 -0
  309. package/README.md +1 -1
  310. package/database/migrations/20260929121448_thread_started_by/migration.sql +1 -0
  311. package/database/migrations/20260929121448_thread_started_by/snapshot.json +1969 -0
  312. package/guide/bots.md +89 -44
  313. package/guide/calls.md +41 -25
  314. package/guide/index.md +5 -2
  315. package/guide/phone.md +7 -4
  316. package/guide/setup.md +12 -6
  317. package/guide/trouble.md +3 -2
  318. package/package.json +1 -1
  319. package/public/voices/intro/mic-b17ca82d.ogg +0 -0
  320. package/seed-skills/concierge/travel/SKILL.md +2 -1
  321. package/seed-skills/concierge/travel/page/itinerary.css +1009 -257
  322. package/seed-skills/concierge/travel/references/itinerary.md +95 -35
  323. package/seed-skills/concierge/travel/references/plan.md +11 -4
  324. package/seed-skills/concierge/travel/scripts/itinerary.mjs +754 -138
  325. package/skills/README.md +7 -4
  326. package/skills/artifact/SKILL.md +17 -13
  327. package/skills/artifact/references/canvas.md +4 -5
  328. package/skills/artifact/references/deck.md +93 -2
  329. package/skills/artifact/runtime/app/kit/src/index.css +35 -0
  330. package/skills/artifact/runtime/app/kit/tailwind.config.js +6 -0
  331. package/skills/artifact/runtime/deck/data.mjs +21 -0
  332. package/skills/artifact/runtime/deck/deck.css +254 -4
  333. package/skills/artifact/runtime/deck/deck.html +3 -0
  334. package/skills/artifact/runtime/deck/deck.js +88 -5
  335. package/skills/artifact/runtime/deck/deck.mjs +1 -17
  336. package/skills/artifact/runtime/document/quick.css +264 -89
  337. package/skills/artifact/runtime/document/quick.html +16 -7
  338. package/skills/artifact/runtime/document/quick.js +377 -98
  339. package/skills/artifact/runtime/render.mjs +52 -6
  340. package/skills/artifact/runtime/sheet/sheet.css +29 -21
  341. package/skills/artifact/runtime/shell/drafts.js +25 -0
  342. package/skills/artifact/runtime/shell/fonts/Geist-latin-ext.woff2 +0 -0
  343. package/skills/artifact/runtime/shell/fonts/Geist-latin.woff2 +0 -0
  344. package/skills/artifact/runtime/shell/fonts/GeistMono-latin-ext.woff2 +0 -0
  345. package/skills/artifact/runtime/shell/fonts/GeistMono-latin.woff2 +0 -0
  346. package/skills/artifact/runtime/shell/fonts/OFL.txt +93 -0
  347. package/skills/artifact/runtime/shell/head.html +27 -2
  348. package/skills/artifact/runtime/shell/shell.css +88 -8
  349. package/skills/artifact/runtime/shell/shell.js +318 -22
  350. package/skills/artifact/runtime/shell/wear.mjs +114 -12
  351. package/skills/artifact/scripts/app.mjs +5 -0
  352. package/skills/artifact/scripts/chart.mjs +20 -19
  353. package/skills/artifact/scripts/deck.mjs +276 -0
  354. package/skills/artifact/scripts/document.mjs +55 -2
  355. package/skills/artifact/scripts/media.mjs +1 -1
  356. package/skills/artifact/templates/boards/direction.html +55 -2
  357. package/skills/browser/SKILL.md +1 -1
  358. package/skills/browser/references/scripts.md +1 -1
  359. package/skills/daily-brief/SKILL.md +2 -0
  360. package/skills/daily-brief/page/brief.css +460 -302
  361. package/skills/daily-brief/references/brief.md +33 -7
  362. package/skills/daily-brief/scripts/page.mjs +241 -48
  363. package/skills/media-digest/SKILL.md +1 -0
  364. package/skills/media-digest/scripts/digest.mjs +57 -43
  365. package/.next/server/chunks/[root-of-the-server]__00f051a._.js +0 -7
  366. package/.next/server/chunks/[root-of-the-server]__0340k46._.js +0 -7
  367. package/.next/server/chunks/[root-of-the-server]__0ndw2yj._.js +0 -5
  368. package/.next/server/chunks/[root-of-the-server]__16y0k92._.js +0 -3
  369. package/.next/server/chunks/[root-of-the-server]__18e65_-._.js +0 -3
  370. package/.next/server/chunks/[root-of-the-server]__1a0xgyh._.js +0 -5
  371. package/.next/server/chunks/[root-of-the-server]__1dth047._.js +0 -5
  372. package/.next/server/chunks/[root-of-the-server]__1huywqp._.js +0 -5
  373. package/.next/server/chunks/[root-of-the-server]__1ij4h2a._.js +0 -3
  374. package/.next/server/chunks/[root-of-the-server]__1q1s4ls._.js +0 -3
  375. package/.next/server/chunks/[root-of-the-server]__1qa67zs._.js +0 -3
  376. package/.next/server/chunks/[root-of-the-server]__1t-mfa4._.js +0 -5
  377. package/.next/server/chunks/[root-of-the-server]__20ofm9t._.js +0 -3
  378. package/.next/server/chunks/_0483t_f._.js +0 -5
  379. package/.next/server/chunks/_0lcthk8._.js +0 -3
  380. package/.next/server/chunks/_0uv1gs1._.js +0 -3
  381. package/.next/server/chunks/_17fjc-7._.js +0 -5
  382. package/.next/server/chunks/_1dcbwn-._.js +0 -3
  383. package/.next/server/chunks/_1mgzs18._.js +0 -3
  384. package/.next/server/chunks/_20qn224._.js +0 -3
  385. package/.next/server/chunks/features_bot_0zy_q8y._.js +0 -37
  386. package/.next/server/chunks/ssr/[root-of-the-server]__04upd5v._.js +0 -3
  387. package/.next/server/chunks/ssr/[root-of-the-server]__0dy20eb._.js +0 -3
  388. package/.next/server/chunks/ssr/[root-of-the-server]__0yyxgt2._.js +0 -3
  389. package/.next/server/chunks/ssr/[root-of-the-server]__14j8gxy._.js +0 -3
  390. package/.next/server/chunks/ssr/[root-of-the-server]__20t_4l2._.js +0 -3
  391. package/.next/server/chunks/ssr/_00buy3i._.js +0 -162
  392. package/.next/server/chunks/ssr/_014_wjp._.js +0 -3
  393. package/.next/server/chunks/ssr/_07m4ii5._.js +0 -3
  394. package/.next/server/chunks/ssr/_0cv9tmv._.js +0 -3
  395. package/.next/server/chunks/ssr/_0j6rtjm._.js +0 -6
  396. package/.next/server/chunks/ssr/_0ogkeu-._.js +0 -3
  397. package/.next/server/chunks/ssr/_10sc7ab._.js +0 -3
  398. package/.next/server/chunks/ssr/_14nwim3._.js +0 -37
  399. package/.next/server/chunks/ssr/_1e01b-_._.js +0 -3
  400. package/.next/server/chunks/ssr/_1nfv27b._.js +0 -3
  401. package/.next/server/chunks/ssr/features_bot_1c56lew._.js +0 -37
  402. package/.next/server/chunks/ssr/features_bot_1knyan7._.js +0 -3
  403. package/.next/server/chunks/ssr/features_config_09wq1s9._.js +0 -20
  404. package/.next/static/chunks/01gkq9y6_xk4a.js +0 -1
  405. package/.next/static/chunks/09kwsjbmr_z1w.js +0 -1
  406. package/.next/static/chunks/0ynv7zu_bguve.js +0 -1
  407. package/.next/static/chunks/0zi59tghmg1lu.js +0 -18
  408. package/.next/static/chunks/1_ftsgxa-sia_.js +0 -1
  409. package/.next/static/chunks/1cg3torc90q5t.js +0 -1
  410. package/.next/static/chunks/1qnx1h5c8f93b.js +0 -1
  411. package/.next/static/chunks/1rwn3d9ji5w35.js +0 -1
  412. package/.next/static/chunks/1so3f5fi7e5g9.js +0 -35
  413. package/.next/static/chunks/1ya41wxfmp4s8.js +0 -1
  414. package/.next/static/chunks/27rwkfu7_xvs1.js +0 -4
  415. package/.next/static/chunks/2hueh8masqd91.js +0 -15
  416. package/.next/static/chunks/2jrt_752fqz2f.js +0 -1
  417. package/.next/static/chunks/2ogme4qydxnaq.js +0 -3
  418. package/.next/static/chunks/2r2tocw2rpvm2.js +0 -1
  419. package/.next/static/chunks/2t4kimg1lt-p7.js +0 -2
  420. package/.next/static/chunks/2w6y71o27my_z.js +0 -1
  421. package/.next/static/chunks/31_am8rtmk_tv.css +0 -1
  422. package/.next/static/chunks/337g9g_ux2gj-.js +0 -1
  423. package/public/voices/intro/heard-1f12cd45.ogg +0 -0
  424. package/public/voices/intro/mic-e561372a.ogg +0 -0
  425. package/skills/artifact/references/book.md +0 -163
  426. package/skills/artifact/runtime/book/book.css +0 -256
  427. package/skills/artifact/runtime/book/book.html +0 -38
  428. package/skills/artifact/runtime/book/book.js +0 -81
  429. package/skills/artifact/scripts/book-pdf.mjs +0 -73
  430. package/skills/artifact/scripts/book-video.mjs +0 -168
  431. package/skills/artifact/scripts/book.mjs +0 -291
  432. /package/.next/static/{8exfHAtcoebYtxjUC4ugl → 6tIYlzfG_5P4sIxxgmucO}/_buildManifest.js +0 -0
  433. /package/.next/static/{8exfHAtcoebYtxjUC4ugl → 6tIYlzfG_5P4sIxxgmucO}/_clientMiddlewareManifest.js +0 -0
  434. /package/.next/static/{8exfHAtcoebYtxjUC4ugl → 6tIYlzfG_5P4sIxxgmucO}/_ssgManifest.js +0 -0
  435. /package/seed-skills/{marketer → writer}/marketing/LICENSE +0 -0
  436. /package/seed-skills/{marketer → writer}/marketing/SKILL.md +0 -0
  437. /package/seed-skills/{marketer → writer}/marketing/references/copywriting-copy-frameworks.md +0 -0
  438. /package/seed-skills/{marketer → writer}/marketing/references/copywriting-natural-transitions.md +0 -0
  439. /package/seed-skills/{marketer → writer}/marketing/references/copywriting.md +0 -0
  440. /package/seed-skills/{marketer → writer}/marketing/references/emails-copy-guidelines.md +0 -0
  441. /package/seed-skills/{marketer → writer}/marketing/references/emails-email-types.md +0 -0
  442. /package/seed-skills/{marketer → writer}/marketing/references/emails-sequence-templates.md +0 -0
  443. /package/seed-skills/{marketer → writer}/marketing/references/emails.md +0 -0
  444. /package/seed-skills/{marketer → writer}/marketing/references/launch.md +0 -0
  445. /package/seed-skills/{marketer → writer}/marketing/references/product-marketing.md +0 -0
  446. /package/seed-skills/{marketer → writer}/marketing/references/seo-audit-ai-writing-detection.md +0 -0
  447. /package/seed-skills/{marketer → writer}/marketing/references/seo-audit-international-seo.md +0 -0
  448. /package/seed-skills/{marketer → writer}/marketing/references/seo-audit.md +0 -0
  449. /package/seed-skills/{marketer → writer}/marketing/references/social-carousel-frameworks.md +0 -0
  450. /package/seed-skills/{marketer → writer}/marketing/references/social-platform-limits.md +0 -0
  451. /package/seed-skills/{marketer → writer}/marketing/references/social-platforms.md +0 -0
  452. /package/seed-skills/{marketer → writer}/marketing/references/social-post-templates.md +0 -0
  453. /package/seed-skills/{marketer → writer}/marketing/references/social-reverse-engineering.md +0 -0
  454. /package/seed-skills/{marketer → writer}/marketing/references/social-short-form-video.md +0 -0
  455. /package/seed-skills/{marketer → writer}/marketing/references/social.md +0 -0
package/guide/bots.md CHANGED
@@ -23,17 +23,23 @@ bots. A ready-made bot differs only in its role, and some carry a skill of their
23
23
 
24
24
  - **Analyst** finds things out and answers with sources: what something costs, how a number moved
25
25
  and why, which one to pick, whether to buy now or wait.
26
- - **Curator** keeps the user up to date: a morning brief on the topics they follow, and anything
27
- long — a video, a podcast, a talk, an article, a PDF — handed back short, each point linked to
28
- where it is said.
29
- - **Concierge** takes trips and errands up to the step that pays: a trip laid out day by day,
30
- flights and stays found and compared, a booking, an order or a form filled in. With the kiwi
26
+ - **Curator** keeps the user up to date: a morning brief on the topics they follow — what changed
27
+ since the last one, why each story is theirs, the stories they are following as a line through
28
+ the days, the rest as headlines — and anything long — a video, a podcast, a talk, an article, a
29
+ PDF — handed back short, each point linked to where it is said.
30
+ - **Concierge** takes trips and errands up to the step that pays: a trip laid out day by day —
31
+ pictures of every place that open large, what to do and watch for there, the cost and what is
32
+ still to price always in view, what to book by when — flights and stays found and compared, a
33
+ booking, an order or a form filled in. With the kiwi
31
34
  connector on (**Settings › Connectors**) it searches flights without opening a window.
32
35
  - **Designer** makes what gets looked at: two to four ways a screen or page could look side by
33
- side, a deck, a post or poster at its real size.
34
- - **Tutor** explains anything as a picture book.
35
- - **Marketer** keeps one brief per product and works from it: positioning, page copy, a launch
36
- plan, social posts, emails, an SEO audit.
36
+ side, a deck, a post or poster at its real size, a short film for a birthday or a thank-you.
37
+ - **Tutor** explains anything simply, a picture at a time: slides that read like a picture book,
38
+ read aloud when asked, or a one-page guide to study from.
39
+ - **Writer** writes what goes out in the user's name, the way they write: their mail read and
40
+ answered as drafts, letters, posts, page copy, and a product's marketing — positioning, a launch
41
+ plan, emails, an SEO audit — from one brief per product. It sends only what they asked to have
42
+ sent, such as a finished page mailed to them.
37
43
  - **Jarvis** takes whatever nobody else is for — the web, files, this computer.
38
44
 
39
45
  A bot keeps its own memory — what a job taught it, how the user asked it to work — listed on its
@@ -54,16 +60,38 @@ or waiting on an answer never is, and what a job made stays in **Settings › Fi
54
60
  Pressing the pill opens the corner as a list; pressing a row opens the thread. **Esc** or the back
55
61
  arrow steps back one level, and the ✕ folds the room away.
56
62
 
57
- While a thread is at work, the cube button at the top of it shows it as an office, nearly the whole
58
- window: each bot at its desk, the work walked from desk to desk as it happens, a hand-off that
59
- waits for another bot's answer held in a tray under an hourglass, and questions and the final
60
- report brought to your counter. A bot's tag opens a card with what it is doing and why; pressing
61
- the tag keeps it open. The clock on the wall is how long the job has run, and the job's name lies
62
- on the floor. **Chat** beside it is the thread's own conversation, and **At a glance** puts the
63
- request, what is asked of you, each bot's state and what came back on one list; under either is
64
- the thread's box, and a file dropped on the office goes into it. The office shows where the thread
65
- stands now and walks what happens while it is open, so a thread that has ended has none. It pans
66
- by dragging and zooms with the wheel or the buttons at its bottom left, and **Esc** closes it.
63
+ An open thread is also drawn as an office where her face stands, beside the room, when the window
64
+ is wide enough: each bot at its desk, the work walked from desk to desk as it happens, a hand-off
65
+ that waits for another bot's answer held in its tray, with a dashed line on the floor from the bot
66
+ it waits for, and questions and the final report brought to your counter. A bot at work bobs over
67
+ its desk as if typing. A bot flips as it first comes in to its desk, hops when more work lands
68
+ there, and now and then leaps on its own; when the report reaches your counter, every bot leaps
69
+ and throws its papers in the air, and they flutter down and lie on the floor a moment. Opening a
70
+ job that finished while you were away does the same once the office stands, the first time only.
71
+ A computer set to reduce motion gets the walking without the leaps. A bot that was stopped, or
72
+ paused waiting on **Continue**, has its eyes crossed out, in the office and on its tab in the room.
73
+ Only a bot with something to say has a plate over its head: the one at work (**working**), the one
74
+ that wants you (**needs you**, in orange, for a question or **Continue**), and the thread's bot once
75
+ its report is ready (**report ready**). Every other bot just stands there; pointing at it shows its
76
+ name. Once the report is ready its words stand open over the thread's bot, scrolling when they are
77
+ long. Pressing another bot opens its last answer there instead, or the question it asks, and its
78
+ tab in the room; pressing it again, or tapping the floor, puts it away. The office's top left
79
+ names the job, and once the job is done, says how many bots worked on it and
80
+ lists the files it handed over; pressing one opens it. Past three, the rest fold under **+N
81
+ more**, which opens them in place. The clock on the wall says how long the job has run, and how it
82
+ stands is written in large letters on the ground beside the building: at work, your turn, paused,
83
+ stopped or done, with how long it took under a finished or stopped one. While the app has stopped
84
+ the job and waits on **Continue**, the ground around the building goes faintly red. Once the job
85
+ is done, the report is brought to your counter; writing on after it, the bot carries the report
86
+ back to its desk. A file dropped on the office goes to the
87
+ thread, as one dropped on the room does. The office opens a little zoomed out, pans by dragging
88
+ and zooms with the wheel or the buttons at its bottom left, from 30% to 400%; the frame button
89
+ brings it back. Her face fades out as the office comes and back in as it goes,
90
+ and a call that is on shows her last words at the top; the corner of finished jobs stays quiet
91
+ while a thread is open. **Office** and **Chat**, beside the ✕ of an open thread, pick how every
92
+ thread is shown: beside its office, or as the conversation alone with her face kept. The choice
93
+ is kept on this computer. In the conversation, what you wrote yourself — a job from the write
94
+ line, a step-in — is under **You**; what she handed over or passed on from a call is under her name.
67
95
 
68
96
  A long thread summarizes itself when it fills up. The small bar at the top right of an open thread
69
97
  shows how full it is; pressing it has the bot summarize at its next step, which makes every later
@@ -86,11 +114,11 @@ on a step right now.
86
114
 
87
115
  ## Handing a bot work without a call
88
116
 
89
- The **+** at the left end of the pill, or the `/` key, opens the line at the foot of the screen
90
- (`calls.md`, writing to her). It opens on Thursday; pick a bot with the chip at its left, or type
91
- `@` and a name at the start. That pick lasts for one message. Files can go with the words (at most
92
- 8 at a time, 25 MB each). The bot cannot hear the call, so the message has to say the whole job.
93
- Enter sends it, and the room opens on the thread it started.
117
+ The **@** at the left end of the pill, or the `@` key, opens the line at the foot of the screen
118
+ (`calls.md`, writing to her) on the list of who to write to, Thursday first: pick a bot there, type
119
+ its name after the `@`, or later with the chip at the line's left. That pick lasts for one message.
120
+ Files can go with the words (at most 8 at a time, 25 MB each). The bot cannot hear the call, so the
121
+ message has to say the whole job. Enter sends it, and the room opens on the thread it started.
94
122
 
95
123
  An open thread's own message box takes files the same way. Once more than one bot is in a thread,
96
124
  the box says who it is addressed to and can be changed. Only the bot the job went to brings other
@@ -124,7 +152,9 @@ it when it is in.
124
152
  pill says how many need a reply, and each can be answered right there (or just above the line at
125
153
  the foot, while that is open).
126
154
  - **A pause** — a model that broke twice, a provider that refused, the app restarting, a job that
127
- reached its step limit — shows as *Paused*, and **Continue** picks it up where it left off.
155
+ reached its step limit — shows as *Paused*, and **Continue** picks it up where it left off. When
156
+ the provider turned down the key or sign-in the bot runs on, it says so, and **Open Settings**
157
+ beside **Continue** opens **Settings › API keys**; Continue once a key works.
128
158
  - **Signing in** is always the user's: the bot opens the page and waits.
129
159
  - **Paying** is the user's too: a bot fills a checkout in and stops at the button.
130
160
 
@@ -159,15 +189,11 @@ an open file, it is shown fresh with **Reloaded at** and the time; a sound or vi
159
189
  file, a spreadsheet or anything else the app cannot show has **Open it**, which opens it in the
160
190
  computer's own program.
161
191
 
162
- ## Books, canvases, decks, videos and pages
192
+ ## Canvases, decks, videos and pages
163
193
 
164
194
  A page, canvas or deck opened inside the app takes the keyboard once clicked; opened in its own tab
165
- (↗) it has the whole window. Its top bar names the bot that made it.
166
-
167
- **Tutor**'s picture book is a picture and a line or two a page, turned by swiping, the arrow keys or
168
- tapping either side; it may end on a quiz. It can also be a PDF, or a video that reads itself aloud,
169
- when asked; otherwise it is a book to swipe through. Pictures need an image model and the video a
170
- speech model in **Settings › Models**.
195
+ (↗) it has the whole window. Its top bar names the bot that made it, with its face; a page that is
196
+ read — a report, a brief, a trip — ends with the same, and its one colour is that bot's.
171
197
 
172
198
  **Designer**'s canvas lays two to four options side by side, each with a note on what it is for and
173
199
  what it costs, the one it recommends marked. Drag to move, pinch or hold ⌘ and scroll to zoom, the
@@ -178,12 +204,18 @@ note pin on the rail (**N**) pins a note of the user's own; a bot asked to chang
178
204
  the notes. It designs from what exists — a codebase, a brand, a page — so give it a screenshot of a
179
205
  screen it cannot open.
180
206
 
181
- A **deck** is for presenting. Any bot can make one; the app lays out every slide, in one of four
182
- palettes: **Forest**, **Sea**, **Clay** or **Ink**. The top bar has the arrows, Notes (**n**), full
183
- screen (**f**), Present, a theme button and **Export** (**Print · one slide a page**, **This slide
184
- as a picture**, **Download this file**). Presenting shows the slide alone, never the notes. There is
185
- no PowerPoint file; a handout prints to PDF. **Edit** changes words and notes in place, moves,
186
- duplicates or deletes the open slide, or changes the palette; ⌘Z undoes.
207
+ A **deck** is for presenting, or for explaining one thing simply. Any bot can make one; the app
208
+ lays out every slide, in one of six palettes: **Forest**, **Sea**, **Clay**, **Ink**, **Paper** or
209
+ **Night**.
210
+ **Tutor**'s decks explain the way a picture book does — a picture and a line or two a slide, a new
211
+ word marked where it is first named — and may end on a quiz: tapping a pick marks it and shows the
212
+ answer. The top bar has the arrows, Notes (**n**), full screen (**f**), Present, a theme button and
213
+ **Export** (**Print · one slide a page**, **This slide as a picture**, **Download this file**).
214
+ Presenting shows the slide alone, never the notes. There is no PowerPoint file; a handout prints to
215
+ PDF. **Edit** changes words and notes in place, moves, duplicates or deletes the open slide, or
216
+ changes the palette; ⌘Z undoes. Asked for one, a bot also makes the deck a PDF, a slide a sheet, or
217
+ a video that reads each slide's notes aloud over it. A picture a bot generates needs an image model,
218
+ and the video a speech model, in **Settings › Models**.
187
219
 
188
220
  A **motion video** is a short hand-drawn film with music — a birthday or anniversary gift, a
189
221
  thank-you to a parent, a farewell, a small story. Any bot can make one: tell it who it is for and
@@ -205,12 +237,25 @@ A bot also reads an Excel file handed to it; an old .xls has to be saved as .xls
205
237
 
206
238
  A **page** is for reading — a report, a memo, a plan, meeting notes — with its contents beside it,
207
239
  tables, checklists, and numbered sources at the end. It prints as a document, and **Export › Word
208
- file** saves a .docx. **Edit** makes it editable in place: `/` on an empty line picks a block, and
209
- lines started with `#`, `-`, `1.`, `[]` or `>` become headings, lists, checklists or notes. Changes
210
- are saved as typed. A bot asked to change it starts from the page as edited.
211
-
212
- When a deck, sheet or page is changed elsewhere (by its bot, in Excel, or from another window)
213
- while it is being edited, nothing more is saved over it: the top bar says **Changed since it opened · not kept** and shows **Reload**.
240
+ file** saves a .docx. Click anywhere in its words and type: there is no Edit button. While typing, a
241
+ handle beside the block moves, copies or deletes it, selected words get bold, italic, a heading or a
242
+ link, `/` on an empty line picks a block, and lines started with `#`, `-`, `1.`, `[]` or `>` become
243
+ headings, lists, checklists or notes. Clicking a link shows where it goes, with **Open**, **Edit**
244
+ and **Remove**; ⌘-click or Ctrl-click opens it straight away. In the app, changes are saved a moment
245
+ after you stop typing, and the top bar says **Saving…** then **Saved**. A bot asked to change it
246
+ starts from the page as edited.
247
+
248
+ A page opened outside the app, as a file, is not saved into that file: the top bar says **Kept in
249
+ this browser only**, your edits come back when the file is opened again in the same browser,
250
+ **Discard edits** throws them away, and **Export › Download this file** saves a copy with them.
251
+
252
+ When a page is changed elsewhere (by its bot, or from another window) while you have unsaved edits,
253
+ they are not saved over it: the top bar says **Not saved: changed elsewhere** and shows **Load new
254
+ version**. Your edits stay on the page and are kept aside; the new version then opens with them in a
255
+ box above it, to **Copy** back, **Download** as a file of their own, or **Dismiss**.
256
+
257
+ When a deck or sheet is changed elsewhere (by its bot, in Excel, or from another window) while it
258
+ is being edited, nothing more is saved over it: the top bar says **Changed since it opened · not kept** and shows **Reload**.
214
259
 
215
260
  ## Routines: jobs that start by themselves
216
261
 
package/guide/calls.md CHANGED
@@ -5,7 +5,8 @@
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. It keeps
8
+ - Say the wake phrase, "hey thursday" unless they changed it. It comes on with the microphone on
9
+ the first run's microphone step, and is otherwise off until switched on. It keeps
9
10
  the microphone open while the tab is, uses the browser's own speech recognition (Chrome sends
10
11
  what it hears to Google), and listens in English only.
11
12
  - Press the shortcut, Alt + Shift + T (⌥⇧T on a Mac) unless they changed it. It is off to begin
@@ -22,8 +23,10 @@ memory (`memory.md`). A call she places herself opens on why she called.
22
23
  The first call started from the page — spoken or in writing — has the browser ask to know the
23
24
  user's location. Allowed, she knows on every call which town they are in and the weather there:
24
25
  the page asks BigDataCloud for the town's name and Open-Meteo for the weather, and only those two
25
- reach her. What was found is used for half an hour before it is looked up again. Refused, or not
26
- known within three seconds, the call goes on without it and nothing is sent. The browser keeps
26
+ reach her. What was found is used for half an hour before it is looked up again. Once it is
27
+ allowed, the page asks the device for its position as it opens, so a call does not wait on the
28
+ device; the position stays in the page until a call starts. Refused, or not known within three
29
+ seconds, the call goes on without it and nothing is sent. The browser keeps
27
30
  the answer; it is changed in the browser's site settings for this app (the icon left of the
28
31
  address). A phone chat has no browser, so she does not know it there.
29
32
 
@@ -32,7 +35,7 @@ with her turning into a globe: it spins to where they are, dives until their cou
32
35
  screen, and shows the sky over it as it is there now — the sun or the moon where it really is,
33
36
  and the weather, lightly — while she greets them with that weather. At night the country is
34
37
  dark. After about eight seconds she is back; tapping the globe brings her back sooner and does
35
- not hang up. It waits for the next call on a call she placed herself and on the very first
38
+ not hang up, and opening a job's office over her ends it. It waits for the next call on a call she placed herself and on the very first
36
39
  call, and does not play when the system is set to reduce motion or the app's page is not the
37
40
  one in front. The day counts only once it has played, in this browser only. The map is drawn
38
41
  in the browser, so the position still goes nowhere.
@@ -46,13 +49,13 @@ several steps — goes to a bot while the call carries on. She picks the bot and
46
49
  While she is working, the line under her face says so. The microphone stays open: anything said
47
50
  meanwhile is heard and answered once she is done, so there is no need to repeat it.
48
51
 
49
- **Share screen**, on that line during a spoken call, shows her a screen, a window or a tab; the
50
- browser asks which. **Camera** shows her your camera instead — one or the other, not both. A small
51
- copy stands at the top right while it is on. Nothing of it is sent while it is only on: she looks
52
- when what they ask needs it — "what does this error say?", "what am I holding?" — and then a
53
- picture of it as it is at that moment goes to the model behind her, nowhere else. **Stop** on the line, the browser's own bar, or the end of the call
54
- stops it. When the browser refuses — on a Mac, the browser needs Screen Recording, or Camera, in
55
- System Settings › Privacy & Security — its reason shows, and nothing is shown.
52
+ **Draw**, on that line during a spoken call, opens a pad over the call: pick a colour, draw, and
53
+ **Show her** gives her the drawing the moment it is pressed. She looks at it and says what she makes
54
+ of it, and you can go on from there — "what do you think of this logo?" It goes to her alone, not
55
+ onto the write line.
56
+ **Esc** closes the pad and keeps what is on it for next time; **Clear** wipes it. **Undo** and
57
+ **Redo** beside it (⌘Z and ⇧⌘Z, or Ctrl+Z and Ctrl+Shift+Z) take back or bring back one stroke at a
58
+ time, a Clear too.
56
59
 
57
60
  ## Ending it
58
61
 
@@ -64,18 +67,25 @@ Work already handed to a bot carries on.
64
67
 
65
68
  ## Writing to her instead
66
69
 
67
- The **+** at the left end of the pill in the bottom right corner — or the `/` key — opens a line at
68
- the foot of the screen. Sending her a message there starts a call in writing: her answers show
69
- beside her face, and the line stays open for writing back. She has the same memory, tools and bots
70
- as on a spoken call, with no voice and no per-minute billing.
70
+ The **@** at the left end of the pill in the bottom right corner — or the `@` key — opens a line at
71
+ the foot of the screen with the list of who to write to up, her first: **Enter** takes her, a name
72
+ typed after the `@` narrows the list, and **Esc** puts it away. Sending her a message there starts
73
+ a call in writing: her answers show beside her face, and the line stays open for writing back. She
74
+ has the same memory, tools and bots as on a spoken call, with no voice and no per-minute billing.
71
75
 
72
76
  - **Her answers** keep their shape (lists, tables), and what she names is a link: a file opens over
73
77
  the call, a web page in a new tab.
74
- - **Files**: the paperclip, a paste, or a drop anywhere on the window — at most 8 at a time, 25 MB
75
- each. She can look at a picture herself, so "what does this say?" is answered on the spot.
76
- - **Who it goes to**: the chip at the left of the line, or `@` and a name at the start (**Tab** or
77
- **Enter** takes the highlighted one). A bot picked there gets that one message, then the line goes
78
- back to her; **Esc** with a bot picked also goes back to her.
78
+ - **Files**: the paperclip's **A file from this computer**, a paste, or a drop anywhere on the
79
+ window — at most 8 at a time, 25 MB each. A picture (png, jpg, webp, gif) goes to her with the
80
+ words, so "what does this say?" is answered on the spot. One over 4 MB, or one sent while she
81
+ runs on a model that cannot see pictures, does not go with them, and she says so. Later
82
+ messages carry the call's pictures again, the newest up to 12 MB in all; an older one she
83
+ looks at again by its name.
84
+ - **A drawing**: the paperclip's **Draw something** opens a pad over the screen. **Add to the
85
+ message** puts it on the line as a picture, sent with the words like any other.
86
+ - **Who it goes to**: the list it opens on, the chip at the left of the line, or `@` and a name at
87
+ the start (**Tab** or **Enter** takes the highlighted one). A bot picked there gets that one
88
+ message, then the line goes back to her; **Esc** with a bot picked also goes back to her.
79
89
  - **What it runs on**: the GPT Subscription when one is signed in, else the OpenAI key. The small
80
90
  **runs on** button under the line shows which, and can pick another model, from any provider with
81
91
  a key, for writing only. With nothing to run on it says so; keys are in **Settings › API keys**.
@@ -84,9 +94,11 @@ as on a spoken call, with no voice and no per-minute billing.
84
94
  when the plan resets. Every turn tries the plan first, so it goes back to the plan by itself once
85
95
  the plan resets. Turns on the key are billed to it. With no key, the turn fails as below.
86
96
  - **When a turn fails** — a refused key, a plan's limit with no key to go on — her face says ERROR
87
- and the provider's reason shows in red under the line, with **Send it again** and a link to
88
- **API keys**. When an OpenAI key is set and was not the problem, the button reads **Send it again
89
- on your OpenAI key**.
97
+ and the provider's reason shows in red under the line, with **Send it again**. When the provider
98
+ turned down the key or sign-in itself, the line says so in a sentence with the provider's own
99
+ words small under it, and **Open Settings** opens **Settings › API keys**, where the GPT
100
+ Subscription and every key are; send it again once one works. When an OpenAI key is set and was
101
+ not the problem, the button reads **Send it again on your OpenAI key**.
90
102
  - **Ending it**: **Esc** ends it (saying goodbye does not), and so does starting a spoken call.
91
103
  Opening a thread in the corner does not: the corner says *Thursday is still on the line*, with
92
104
  **Back to her** to return.
@@ -94,8 +106,9 @@ as on a spoken call, with no voice and no per-minute billing.
94
106
  It is kept with the other calls, marked *in writing*.
95
107
 
96
108
  During a spoken call the line writes to bots only. A file put down then is one she is told about —
97
- its chip says *she knows it is here* — and what to do with it can simply be said; she hands it to a
98
- bot.
109
+ its chip says *she knows it is here* — and what to do with it can simply be said. A picture goes to
110
+ the model behind her as it lands, as a smaller copy that fits the call's connection, so she can say
111
+ what is in it; anything else she hands to a bot.
99
112
 
100
113
  ## Seeing the words
101
114
 
@@ -162,6 +175,9 @@ the wake phrase picks up; **Esc** is "not now". A missed ring stays on screen wi
162
175
  until called back or cleared with Esc. She cannot switch this on herself: when asked to call back,
163
176
  say where it is.
164
177
 
178
+ Nothing rings while a thread is open in the corner: what that thread asks is answered there, and
179
+ what another job asked or finished meanwhile rings once the thread is closed.
180
+
165
181
  ## History
166
182
 
167
183
  **Settings › Thursday › History** has two tiles. **Call history** lists every kept call, each with
package/guide/index.md CHANGED
@@ -37,8 +37,11 @@ three of these that fit them rather than a list:
37
37
  on one page."
38
38
  - An errand on a website: a booking, an order, a form. The bot fills it in and stops at the
39
39
  pay button.
40
- - Their mail: what arrived, what needs an answer, a reply written and ready.
41
- - Something to make: a report with charts, a page, slides, a short video, a post with images.
40
+ - Their mail: what arrived, what needs an answer, a reply written and ready; or something
41
+ finished sent by mail, to them or to someone they name.
42
+ - Something to make: a report with charts, a page, slides, a short film for a birthday, a post
43
+ with images.
44
+ - Something to understand: explained simply, a picture at a time, read aloud if they like.
42
45
  - Something on this computer: what is in a folder, a file converted, a script that runs again
43
46
  tomorrow.
44
47
  - Something that should happen by itself: "every weekday at nine, go through my mail and
package/guide/phone.md CHANGED
@@ -94,16 +94,19 @@ back.
94
94
 
95
95
  - **Writing again while she works** joins what she is doing, so "no, the other one" changes course
96
96
  at once.
97
- - **Pictures and files** sent to her are kept in the workspace's `inbox` folder. She can look at a
98
- picture herself or hand any file to a bot. Voice messages and videos are not read. Telegram hands
97
+ - **Pictures and files** sent to her are kept in the workspace's `inbox` folder. A picture reaches
98
+ her as a picture with what was written with it, as in a call in writing; any other file she can
99
+ hand to a bot. Voice messages and videos are not read. Telegram hands
99
100
  over files up to 20 MB, and the app takes up to 45 MB from any chat app; a file that does not come
100
101
  through is named in the chat.
101
102
  - **Files she names in an answer** are sent with it, the newest three. What does not go — a fourth,
102
103
  or one too big (Telegram 50 MB, Discord 20 MB, any app 45 MB) — is listed under *Not sent — still
103
104
  on this computer*. Asking her to show what a bot made works the same way.
104
105
  - **A page** — a report, a deck, a design — arrives as up to nine pictures of it, since no chat app
105
- opens one; the page itself stays on the computer. If the pictures cannot be drawn, the page file
106
- is sent instead.
106
+ opens one. A page made to be read — a document, a deck, a brief, a trip, a digest — comes with a
107
+ PDF of the whole of it too, to keep or pass on; a design comes as its pictures alone. A page made
108
+ before this update comes without its PDF until its bot makes it again. If the pictures cannot be
109
+ drawn, the page file is sent instead.
107
110
  - **A bot's question, or finished work**, arrives as the bot wrote it, under a line naming the bot
108
111
  and the thread, with its files. Work started from the phone always comes back to the phone.
109
112
  Anything else — a routine, work started on the computer — comes only while no browser has the app
package/guide/setup.md CHANGED
@@ -15,8 +15,14 @@ the plan it is on, so the plan can still be signed in to. The call screen's **Se
15
15
  **Settings › Thursday** ask the same way.
16
16
 
17
17
  Every step can be skipped and done later in Settings. On the microphone step the main button turns
18
- the microphone on (the browser asks first, by its address bar); the line under it goes on without
19
- one. The bots picked there are set up when it ends; they work once there is a model to run on.
18
+ the microphone on (the browser asks first, by its address bar), and with it the wake phrase, and
19
+ goes on to the next step; the line under it goes on without either. On the bots step her face gives
20
+ way to their office, one desk for each bot switched on, with a job already under way that ends a
21
+ few seconds in: each bot hands its part back and the report comes in. The bots picked
22
+ there are set up when it ends; they work once there is a model to run on.
23
+ The models step ends on **Exa**, a key for web search: without it a bot searches only when its own
24
+ model can. The style step shows one of her four characters at a time, with a line on how she talks;
25
+ **Previous** and **Next** move between them, and the one showing is the one set.
20
26
  With a sign-in or a key the last button is **Call her**; without either it is **Look around**.
21
27
 
22
28
  Once it has been left, by any of its buttons, it does not show again, and **Reset history** does not
@@ -29,7 +35,7 @@ The buttons at the top right of the call screen open **Thursday**, **Memory** an
29
35
  list is Thursday, Memory, Bots, Threads, Routines, Files, Skills, Connectors, Sign-ins, Models,
30
36
  API keys and Phone. ⌘K (Ctrl+K) jumps to a section's filter, and ⌘ (Ctrl) with a number from 1 to 9
31
37
  opens one of the first nine sections. Under community are **Ask on Discord** and **GitHub**. The
32
- theme — **System**, **Light** or **Dark** — is at the foot of the list.
38
+ theme — **System**, **Light** or **Dark**, Light until one is picked — is at the foot of the list.
33
39
 
34
40
  ## Keys
35
41
 
@@ -86,11 +92,11 @@ A skill is a written-down way of doing something that a bot reads before it star
86
92
  ship with the app are shared by every bot: using the browser; using this Mac's apps (on a Mac only);
87
93
  making documents, slides, pages and small apps with charts; reading videos, podcasts, articles and
88
94
  PDFs; reports built on published numbers; a daily news brief; finding more skills; and writing a new
89
- one. **Marketer** and **Concierge** also carry skills of their own, for marketing and for trips,
90
- that no other bot sees.
95
+ one. **Writer** and **Concierge** also carry skills of their own, for marketing a product and for
96
+ trips, that no other bot sees.
91
97
 
92
98
  **Settings › Skills** lists them in groups: **Custom** (the user's own), one group for each bot that
93
- has its own (such as **Marketer's own**), and **Default** (the ones that ship, read-only). There a
99
+ has its own (such as **Writer's own**), and **Default** (the ones that ship, read-only). There a
94
100
  skill can be switched off, uploaded (a `.md`, `.zip` or `.skill` file up to 20 MB), written from
95
101
  scratch, or deleted when it is the user's own. In one of the user's own, **Edit** on a file
96
102
  changes it in place.
package/guide/trouble.md CHANGED
@@ -23,8 +23,9 @@ Say what happened and the one thing that fixes it; most problems are a setting o
23
23
 
24
24
  ## "Hey thursday" does nothing
25
25
 
26
- The wake phrase is off until it is switched on in **Settings › Thursday › Starting a call**, where
27
- the phrase can also be changed. It needs a browser with speech recognition, the microphone, and the
26
+ The wake phrase comes on when the microphone is turned on in the first run; skipped there, it is
27
+ off until it is switched on in **Settings › Thursday › Starting a call**, where the phrase can also
28
+ be changed. It needs a browser with speech recognition, the microphone, and the
28
29
  app's tab open. When it cannot start, the screen says "Wake word off" with the reason. Tapping her
29
30
  face always works.
30
31
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thursday-agent",
3
- "version": "0.22.0",
3
+ "version": "0.23.0",
4
4
  "description": "A voice agent that runs on your own machine — talk to her, she hands the slow work to bots with a shell, a browser and skills.",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -13,7 +13,8 @@ call. `S=<this skill's dir>/scripts`, `D=$THURSDAY_SKILLS/data-report/scripts`.
13
13
  |---|---|
14
14
  | `node $D/weather.mjs "<place>[, <CC>]" <from> [<to>] [--f]` | The forecast a line a day, or past the 16 days it reaches, what the same days were like the last five years. `--f` prints °F |
15
15
  | `node $D/fx.mjs <amount> <FROM> <TO[,TO…]>` | The amount at today's rate, with the rate's date and where it came from |
16
- | `node $S/itinerary.mjs <trip.json> [--name <file>]` | The trip as one page in your `artifacts/` folder: a photo and a map link per stop, costs added up. Uses the browser only for a `"photo"` page url |
16
+ | `node $S/itinerary.mjs <trip.json> [--name <file>]` | The trip as one page in your `artifacts/` folder: a gallery of each place, what to do and watch for there, the money and what is left to book in view, the way, the days, costs added up. Uses the browser only for a `"photo"` page url |
17
+ | `node $THURSDAY_SKILLS/artifact/scripts/document.mjs pdf <page path>` | The page as a PDF beside it, when they ask for one; a page sent to their phone goes with its PDF already |
17
18
 
18
19
  **The search is yours.** Flights, stays and their prices are this skill's work, not a question to
19
20
  hand to another bot: a hand-off pays for a second bot's prompt, skills and browser, and for the