thursday-agent 0.15.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (660) 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 +13 -13
  14. package/.next/server/app/_not-found.segments/_full.segment.rsc +13 -13
  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 +8 -8
  18. package/.next/server/app/api/artifact/route.js.nft.json +1 -1
  19. package/.next/server/app/api/bot/memory/files/route.js.nft.json +1 -1
  20. package/.next/server/app/api/bot/memory/route.js +3 -3
  21. package/.next/server/app/api/bot/memory/route.js.nft.json +1 -1
  22. package/.next/server/app/api/bot/route.js +3 -3
  23. package/.next/server/app/api/bot/route.js.nft.json +1 -1
  24. package/.next/server/app/api/bot/thread/[id]/route.js +7 -7
  25. package/.next/server/app/api/bot/thread/[id]/route.js.nft.json +1 -1
  26. package/.next/server/app/api/bot/thread/route.js +6 -6
  27. package/.next/server/app/api/bot/thread/route.js.nft.json +1 -1
  28. package/.next/server/app/api/config/route.js +5 -5
  29. package/.next/server/app/api/config/route.js.nft.json +1 -1
  30. package/.next/server/app/api/events/route.js +1 -1
  31. package/.next/server/app/api/events/route.js.nft.json +1 -1
  32. package/.next/server/app/api/favicon/[host]/route.js +1 -1
  33. package/.next/server/app/api/favicon/[host]/route.js.nft.json +1 -1
  34. package/.next/server/app/api/file/[...path]/route.js.nft.json +1 -1
  35. package/.next/server/app/api/llm-model/catalog/route.js +7 -7
  36. package/.next/server/app/api/llm-model/catalog/route.js.nft.json +1 -1
  37. package/.next/server/app/api/llm-model/credits/route.js +7 -7
  38. package/.next/server/app/api/llm-model/credits/route.js.nft.json +1 -1
  39. package/.next/server/app/api/llm-model/route.js +4 -4
  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 +4 -4
  42. package/.next/server/app/api/llm-model/subscription/route.js.nft.json +1 -1
  43. package/.next/server/app/api/mcp/[name]/route.js.nft.json +1 -1
  44. package/.next/server/app/api/mcp/oauth/callback/route.js +2 -2
  45. package/.next/server/app/api/mcp/oauth/callback/route.js.nft.json +1 -1
  46. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  47. package/.next/server/app/api/mcp/tools/route.js.nft.json +1 -1
  48. package/.next/server/app/api/memory/edit/route.js +14 -15
  49. package/.next/server/app/api/memory/edit/route.js.nft.json +1 -1
  50. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  51. package/.next/server/app/api/reach/route.js +18 -19
  52. package/.next/server/app/api/reach/route.js.nft.json +1 -1
  53. package/.next/server/app/api/routine/route.js +3 -3
  54. package/.next/server/app/api/routine/route.js.nft.json +1 -1
  55. package/.next/server/app/api/signins/route.js +1 -1
  56. package/.next/server/app/api/signins/route.js.nft.json +1 -1
  57. package/.next/server/app/api/skills/[source]/[name]/route.js +8 -5
  58. package/.next/server/app/api/skills/[source]/[name]/route.js.nft.json +1 -1
  59. package/.next/server/app/api/skills/route.js +8 -5
  60. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  61. package/.next/server/app/api/thursday/call/route.js +7 -7
  62. package/.next/server/app/api/thursday/call/route.js.nft.json +1 -1
  63. package/.next/server/app/api/thursday/settings/route.js +7 -7
  64. package/.next/server/app/api/thursday/settings/route.js.nft.json +1 -1
  65. package/.next/server/app/api/thursday/text/route.js +15 -16
  66. package/.next/server/app/api/thursday/text/route.js.nft.json +1 -1
  67. package/.next/server/app/api/thursday/tool-call/route.js +12 -13
  68. package/.next/server/app/api/thursday/tool-call/route.js.nft.json +1 -1
  69. package/.next/server/app/api/workspace/files/route.js +7 -7
  70. package/.next/server/app/api/workspace/files/route.js.nft.json +1 -1
  71. package/.next/server/app/api/workspace/route.js +7 -7
  72. package/.next/server/app/api/workspace/route.js.nft.json +1 -1
  73. package/.next/server/app/artifact/[...path]/page/server-reference-manifest.json +3 -3
  74. package/.next/server/app/artifact/[...path]/page.js +4 -4
  75. package/.next/server/app/artifact/[...path]/page.js.nft.json +1 -1
  76. package/.next/server/app/artifact/[...path]/page_client-reference-manifest.js +1 -1
  77. package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  78. package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  79. package/.next/server/app/page/server-reference-manifest.json +60 -60
  80. package/.next/server/app/page.js +9 -9
  81. package/.next/server/app/page.js.nft.json +1 -1
  82. package/.next/server/app/page_client-reference-manifest.js +1 -1
  83. package/.next/server/chunks/[root-of-the-server]__00qyw01._.js +3 -0
  84. package/.next/server/chunks/[root-of-the-server]__03b09q0._.js +5 -0
  85. package/.next/server/chunks/[root-of-the-server]__03vunn6._.js +1 -1
  86. package/.next/server/chunks/{[root-of-the-server]__0adz-25._.js → [root-of-the-server]__05dp5tr._.js} +2 -2
  87. package/.next/server/chunks/[root-of-the-server]__05n-hql._.js +5 -0
  88. package/.next/server/chunks/[root-of-the-server]__06nspyt._.js +3 -0
  89. package/.next/server/chunks/[root-of-the-server]__0aijj66._.js +1 -1
  90. package/.next/server/chunks/[root-of-the-server]__0g38-aj._.js +5 -0
  91. package/.next/server/chunks/[root-of-the-server]__0h656y-._.js +11 -0
  92. package/.next/server/chunks/{[root-of-the-server]__0g67-oo._.js → [root-of-the-server]__0j_nz36._.js} +1 -1
  93. package/.next/server/chunks/[root-of-the-server]__0ljizgj._.js +1 -1
  94. package/.next/server/chunks/[root-of-the-server]__0mrk2it._.js +1 -1
  95. package/.next/server/chunks/[root-of-the-server]__0sm5xvm._.js +1 -1
  96. package/.next/server/chunks/[root-of-the-server]__0tsded0._.js +5 -0
  97. package/.next/server/chunks/[root-of-the-server]__0tvoct-._.js +1 -1
  98. package/.next/server/chunks/[root-of-the-server]__1-tdj60._.js +3 -0
  99. package/.next/server/chunks/{[root-of-the-server]__0132c27._.js → [root-of-the-server]__10_7vqz._.js} +2 -2
  100. package/.next/server/chunks/[root-of-the-server]__10xnb7e._.js +3 -0
  101. package/.next/server/chunks/[root-of-the-server]__118qjk_._.js +3 -3
  102. package/.next/server/chunks/[root-of-the-server]__11g20j-._.js +3 -0
  103. package/.next/server/chunks/[root-of-the-server]__13hng6h._.js +1 -1
  104. package/.next/server/chunks/{[root-of-the-server]__0o-w4t4._.js → [root-of-the-server]__16yw3mb._.js} +2 -2
  105. package/.next/server/chunks/[root-of-the-server]__18e65_-._.js +3 -0
  106. package/.next/server/chunks/[root-of-the-server]__18k8s-z._.js +3 -0
  107. package/.next/server/chunks/[root-of-the-server]__1_04mcf._.js +1 -1
  108. package/.next/server/chunks/[root-of-the-server]__1b8tp42._.js +5 -0
  109. package/.next/server/chunks/[root-of-the-server]__1c2kwku._.js +12 -0
  110. package/.next/server/chunks/[root-of-the-server]__1ceammd._.js +1 -1
  111. package/.next/server/chunks/[root-of-the-server]__1ep-pao._.js +7 -0
  112. package/.next/server/chunks/[root-of-the-server]__1gamvcz._.js +3 -0
  113. package/.next/server/chunks/[root-of-the-server]__1gzcbda._.js +1 -1
  114. package/.next/server/chunks/{[root-of-the-server]__20tvhdf._.js → [root-of-the-server]__1mbd2w_._.js} +2 -2
  115. package/.next/server/chunks/[root-of-the-server]__1ndi14y._.js +1 -1
  116. package/.next/server/chunks/[root-of-the-server]__1p47fbb._.js +1 -1
  117. package/.next/server/chunks/[root-of-the-server]__1qcn1ti._.js +3 -3
  118. package/.next/server/chunks/[root-of-the-server]__1t0jj1j._.js +5 -0
  119. package/.next/server/chunks/[root-of-the-server]__1v7x5ym._.js +3 -0
  120. package/.next/server/chunks/[root-of-the-server]__1vlxv19._.js +1 -1
  121. package/.next/server/chunks/{[root-of-the-server]__0ei2xnb._.js → [root-of-the-server]__1voqqyc._.js} +1 -1
  122. package/.next/server/chunks/[root-of-the-server]__1ygplx1._.js +1 -1
  123. package/.next/server/chunks/[root-of-the-server]__1zn039k._.js +3 -0
  124. package/.next/server/chunks/[root-of-the-server]__1zrwxis._.js +3 -0
  125. package/.next/server/chunks/_01t8da9._.js +1 -1
  126. package/.next/server/chunks/_02fn1o3._.js +3 -0
  127. package/.next/server/chunks/_05sa7xl._.js +1 -1
  128. package/.next/server/chunks/_06u9yo-._.js +1 -1
  129. package/.next/server/chunks/_07nxi75._.js +250 -0
  130. package/.next/server/chunks/_08354bn._.js +107 -0
  131. package/.next/server/chunks/_0caua_s._.js +1 -1
  132. package/.next/server/chunks/_0j0-gq6._.js +5 -0
  133. package/.next/server/chunks/_0nn99o2._.js +1 -1
  134. package/.next/server/chunks/_0p-h6xe._.js +5 -0
  135. package/.next/server/chunks/_0p6v1fr._.js +5 -0
  136. package/.next/server/chunks/_0qoush_._.js +3 -0
  137. package/.next/server/chunks/_0srlnvd._.js +1 -1
  138. package/.next/server/chunks/_0t_7gji._.js +1 -1
  139. package/.next/server/chunks/_0uir6hb._.js +9 -9
  140. package/.next/server/chunks/_0uzj57i._.js +1 -1
  141. package/.next/server/chunks/_0xm040x._.js +1 -1
  142. package/.next/server/chunks/_0xx3ryc._.js +2 -2
  143. package/.next/server/chunks/_0xygcxs._.js +250 -0
  144. package/.next/server/chunks/{_0ol42w-._.js → _1-sk_q4._.js} +2 -2
  145. package/.next/server/chunks/_146mcip._.js +1 -1
  146. package/.next/server/chunks/_19kea1l._.js +8 -8
  147. package/.next/server/chunks/_1d5zmy8._.js +1 -1
  148. package/.next/server/chunks/_1dxq827._.js +5 -0
  149. package/.next/server/chunks/{_0ejoy4d._.js → _1e54wxa._.js} +2 -2
  150. package/.next/server/chunks/_1gn2r2q._.js +12 -12
  151. package/.next/server/chunks/_1gxankq._.js +2 -2
  152. package/.next/server/chunks/_1hyvcgk._.js +5 -0
  153. package/.next/server/chunks/_1m88lkh._.js +9 -9
  154. package/.next/server/chunks/_1mfu9a3._.js +5 -0
  155. package/.next/server/chunks/_1mx9sfo._.js +1 -1
  156. package/.next/server/chunks/_1ozcb6o._.js +27 -0
  157. package/.next/server/chunks/_1q6e56i._.js +12 -12
  158. package/.next/server/chunks/_1qgix-j._.js +1 -1
  159. package/.next/server/chunks/_1w6uf9k._.js +3 -0
  160. package/.next/server/chunks/_1wl2g8_._.js +2 -2
  161. package/.next/server/chunks/_1wwl_7o._.js +1 -1
  162. package/.next/server/chunks/_1xcnogc._.js +6 -0
  163. package/.next/server/chunks/_1zfxb7j._.js +1 -1
  164. package/.next/server/chunks/_20oecmn._.js +6 -0
  165. package/.next/server/chunks/_211dn2c._.js +1 -1
  166. package/.next/server/chunks/config_ts_1g4sz5o._.js +1 -1
  167. package/.next/server/chunks/features_0wm-ujw._.js +6 -0
  168. package/.next/server/chunks/features_workspace_workspace_ts_13h82gv._.js +4 -4
  169. package/.next/server/chunks/features_workspace_workspace_ts_1iyjroj._.js +3 -3
  170. package/.next/server/chunks/{node_modules_1osf6vs._.js → node_modules_0dctjy-._.js} +1 -1
  171. package/.next/server/chunks/{node_modules_1821h5r._.js → node_modules_0mquap1._.js} +1 -1
  172. package/.next/server/chunks/{node_modules_1bfhxob._.js → node_modules_1er1u8w._.js} +1 -1
  173. package/.next/server/chunks/{node_modules_1i11kg5._.js → node_modules_1rosz79._.js} +1 -1
  174. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_035jiu9._.js → node_modules_consola_dist_chunks_prompt_mjs_0_nz09c._.js} +1 -1
  175. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0736s17._.js → node_modules_consola_dist_chunks_prompt_mjs_0rx6rvb._.js} +1 -1
  176. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_07szfwb._.js → node_modules_consola_dist_chunks_prompt_mjs_128pb4i._.js} +1 -1
  177. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0rzuf5j._.js → node_modules_consola_dist_chunks_prompt_mjs_1x3bsmx._.js} +1 -1
  178. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_20s275p._.js +3 -0
  179. package/.next/server/chunks/ssr/{[root-of-the-server]__0670az2._.js → [root-of-the-server]__02jdtqa._.js} +3 -2
  180. package/.next/server/chunks/ssr/[root-of-the-server]__0rnjkw2._.js +3 -0
  181. package/.next/server/chunks/ssr/[root-of-the-server]__10eb-1x._.js +3 -0
  182. package/.next/server/chunks/ssr/[root-of-the-server]__17h1ggo._.js +1 -1
  183. package/.next/server/chunks/ssr/[root-of-the-server]__1867koj._.js +1 -1
  184. package/.next/server/chunks/ssr/[root-of-the-server]__1d7usu0._.js +2 -2
  185. package/.next/server/chunks/ssr/{[root-of-the-server]__00ro8qe._.js → [root-of-the-server]__1jyeu61._.js} +2 -2
  186. package/.next/server/chunks/ssr/[root-of-the-server]__1y5_1cv._.js +3 -0
  187. package/.next/server/chunks/ssr/[root-of-the-server]__1y8_-v1._.js +3 -0
  188. package/.next/server/chunks/ssr/{_1zdizo8._.js → _0-ou1b0._.js} +2 -2
  189. package/.next/server/chunks/ssr/{_02u485c._.js → _0afrpci._.js} +2 -2
  190. package/.next/server/chunks/ssr/_0cd6g3l._.js +5 -5
  191. package/.next/server/chunks/ssr/{_0trt3zp._.js → _0fo4552._.js} +17 -19
  192. package/.next/server/chunks/ssr/{_168tvri._.js → _0l1-xc6._.js} +2 -2
  193. package/.next/server/chunks/ssr/{_1rxpx-u._.js → _0ncuqct._.js} +2 -2
  194. package/.next/server/chunks/ssr/_0qsmpcu._.js +1 -1
  195. package/.next/server/chunks/ssr/{_0c1h0l9._.js → _0r0g9ki._.js} +3 -3
  196. package/.next/server/chunks/ssr/_0rvbegp._.js +7 -0
  197. package/.next/server/chunks/ssr/{_1_n8qpv._.js → _0w8r7o7._.js} +2 -2
  198. package/.next/server/chunks/ssr/{_074hv3s._.js → _0wupyvd._.js} +2 -2
  199. package/.next/server/chunks/ssr/_0x8ophf._.js +1 -1
  200. package/.next/server/chunks/ssr/{_0z0scn4._.js → _0y28gl3._.js} +3 -3
  201. package/.next/server/chunks/ssr/{node_modules_0vi73_6._.js → _10-_awu._.js} +2 -2
  202. package/.next/server/chunks/ssr/{_06m66w8._.js → _10fwcz_._.js} +2 -2
  203. package/.next/server/chunks/ssr/{_0ze-0vs._.js → _11pnnvd._.js} +4 -4
  204. package/.next/server/chunks/ssr/_17ble8k._.js +162 -0
  205. package/.next/server/chunks/ssr/_17qtuv7._.js +3 -0
  206. package/.next/server/chunks/ssr/{_1xq-4on._.js → _1dqaksc._.js} +2 -2
  207. package/.next/server/chunks/ssr/{_20lwjif._.js → _1f6s34p._.js} +2 -2
  208. package/.next/server/chunks/ssr/_1g48r6t._.js +3 -0
  209. package/.next/server/chunks/ssr/_1k0efi3._.js +3 -0
  210. package/.next/server/chunks/ssr/_1neoj22._.js +1 -1
  211. package/.next/server/chunks/ssr/_1u5vsy-._.js +3 -0
  212. package/.next/server/chunks/ssr/_1uij_rj._.js +3 -0
  213. package/.next/server/chunks/ssr/{_1r0tx3q._.js → _1umbr78._.js} +3 -3
  214. package/.next/server/chunks/ssr/_1w9w1ok._.js +3 -0
  215. package/.next/server/chunks/ssr/_1z586yw._.js +3 -0
  216. package/.next/server/chunks/ssr/features_0796o8r._.js +3 -0
  217. package/.next/server/chunks/ssr/features_133mpna._.js +6 -0
  218. package/.next/server/chunks/ssr/features_bot_1k25jdg._.js +3 -0
  219. package/.next/server/chunks/ssr/{features_config_13cg2cx._.js → features_config_11dpa7r._.js} +3 -3
  220. package/.next/server/chunks/ssr/features_connectors_components_mcp-setting_tsx_0jmbgvp._.js +3 -3
  221. package/.next/server/chunks/ssr/features_memory_components_memory-setting_tsx_0oa43sw._.js +1 -1
  222. package/.next/server/chunks/ssr/features_routine_components_routine-setting_tsx_055fknz._.js +1 -1
  223. package/.next/server/chunks/ssr/features_workspace_workspace_ts_1wc7_u_._.js +4 -3
  224. package/.next/server/chunks/ssr/{node_modules_1lmv1ux._.js → node_modules_0-8r9yw._.js} +1 -1
  225. package/.next/server/chunks/ssr/{node_modules_1-20i0r._.js → node_modules_0-ew8f8._.js} +1 -1
  226. package/.next/server/chunks/ssr/{node_modules_1us2bdc._.js → node_modules_02uwbwp._.js} +1 -1
  227. package/.next/server/chunks/ssr/{node_modules_1vx7yq2._.js → node_modules_097cl9f._.js} +1 -1
  228. package/.next/server/chunks/ssr/{node_modules_16oefzh._.js → node_modules_0bas34k._.js} +1 -1
  229. package/.next/server/chunks/ssr/{node_modules_0v6s4c8._.js → node_modules_0bbwe-u._.js} +1 -1
  230. package/.next/server/chunks/ssr/{node_modules_1ngj__4._.js → node_modules_0etz1i0._.js} +1 -1
  231. package/.next/server/chunks/ssr/{node_modules_0den7sw._.js → node_modules_0ka8te1._.js} +1 -1
  232. package/.next/server/chunks/ssr/{node_modules_10t4pbm._.js → node_modules_0ld7p-1._.js} +1 -1
  233. package/.next/server/chunks/ssr/{node_modules_09eqoqr._.js → node_modules_0mark4f._.js} +1 -1
  234. package/.next/server/chunks/ssr/{node_modules_01uutx9._.js → node_modules_0n1js5k._.js} +1 -1
  235. package/.next/server/chunks/ssr/{node_modules_0t93862._.js → node_modules_0sdjzae._.js} +1 -1
  236. package/.next/server/chunks/ssr/{node_modules_1x2-bh1._.js → node_modules_0u24mg0._.js} +1 -1
  237. package/.next/server/chunks/ssr/{node_modules_15ksxpk._.js → node_modules_0uibk9z._.js} +1 -1
  238. package/.next/server/chunks/ssr/{node_modules_0r6leyg._.js → node_modules_0x_2io2._.js} +1 -1
  239. package/.next/server/chunks/ssr/{node_modules_1_gizvz._.js → node_modules_0y5uubt._.js} +1 -1
  240. package/.next/server/chunks/ssr/{node_modules_1j59xrt._.js → node_modules_138kcrz._.js} +1 -1
  241. package/.next/server/chunks/ssr/{node_modules_20d3gsv._.js → node_modules_156m1qh._.js} +1 -1
  242. package/.next/server/chunks/ssr/{node_modules_19d6gup._.js → node_modules_18yn_bs._.js} +1 -1
  243. package/.next/server/chunks/ssr/{node_modules_218nu70._.js → node_modules_1dzye0n._.js} +1 -1
  244. package/.next/server/chunks/ssr/{node_modules_1gdff1c._.js → node_modules_1o9n7_n._.js} +1 -1
  245. package/.next/server/chunks/ssr/{node_modules_0yslr-j._.js → node_modules_1ozyial._.js} +1 -1
  246. package/.next/server/chunks/ssr/{node_modules_16op-wf._.js → node_modules_1r5o-bo._.js} +1 -1
  247. package/.next/server/chunks/ssr/{node_modules_1uil5qp._.js → node_modules_1tj7_9z._.js} +1 -1
  248. package/.next/server/chunks/ssr/{node_modules_0h3dnyw._.js → node_modules_1xua-g1._.js} +1 -1
  249. package/.next/server/chunks/ssr/{node_modules_03hfcze._.js → node_modules_1zkzksd._.js} +1 -1
  250. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0wbgrv5._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_133hjui._.js} +1 -1
  251. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_15680yt._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1b3vwd3._.js} +1 -1
  252. package/.next/server/middleware-build-manifest.js +3 -3
  253. package/.next/server/pages/404.html +1 -1
  254. package/.next/server/pages/500.html +1 -1
  255. package/.next/server/server-reference-manifest.js +1 -1
  256. package/.next/server/server-reference-manifest.json +61 -61
  257. package/.next/static/chunks/00d54fcfm-lko.js +1 -0
  258. package/.next/static/chunks/05scfrgo_a_5_.js +58 -0
  259. package/.next/static/chunks/{1rjn_x_ty28qc.js → 0609ejkwuy4sf.js} +2 -2
  260. package/.next/static/chunks/{3w3v100tg-tun.js → 07vcuxousbmy1.js} +1 -1
  261. package/.next/static/chunks/{3r1p-za3kwq6b.js → 0cl_fgkphk1oz.js} +1 -1
  262. package/.next/static/chunks/0gjlsu6vrfzod.js +1 -0
  263. package/.next/static/chunks/0npvak0wpgagb.js +1 -0
  264. package/.next/static/chunks/{1wkrzv0y4qx48.js → 0o7o0eb7ihxi6.js} +1 -1
  265. package/.next/static/chunks/0q4ws7qd21chx.js +35 -0
  266. package/.next/static/chunks/{2q33y6q5_4yxf.js → 0unonxbajyknw.js} +1 -1
  267. package/.next/static/chunks/17yqt1p_svv13.js +1 -0
  268. package/.next/static/chunks/19l81deo_pyoc.js +1 -0
  269. package/.next/static/chunks/1ub9obhgfm4jl.js +1 -0
  270. package/.next/static/chunks/203pbwecfs3tm.js +1 -0
  271. package/.next/static/chunks/{30_2pay06oou4.js → 23tx-2paw9qa6.js} +3 -3
  272. package/.next/static/chunks/{22djpz2dakws5.js → 245_cp14iz637.js} +1 -1
  273. package/.next/static/chunks/2jbjyazqfqyoh.js +1 -0
  274. package/.next/static/chunks/2oa4gpkzjtpni.js +1 -0
  275. package/.next/static/chunks/2uraofiaoy32s.js +1 -0
  276. package/.next/static/chunks/{1ln0zczby868j.js → 2xjr5b-yk_h3o.js} +2 -2
  277. package/.next/static/chunks/314szf8yer-3n.js +2 -0
  278. package/.next/static/chunks/{38srd01ofppmn.css → 31kn4_h2rvf6k.css} +1 -1
  279. package/.next/static/chunks/39miwvg4k-b2d.js +1 -0
  280. package/.next/static/chunks/3ghvoe_mlljzs.js +15 -0
  281. package/.next/static/chunks/{2-9ybn1k9el1e.js → 3gn7dubb4-pwy.js} +1 -1
  282. package/.next/static/chunks/3j-l8un0d77v7.js +18 -0
  283. package/.next/static/chunks/{1iezy4u4v9kl7.js → 3ro66d9dc70bc.js} +1 -1
  284. package/.next/static/chunks/3vwjs5kq11417.js +1 -0
  285. package/.next/static/chunks/42m371fn687r5.js +1 -0
  286. package/README.md +3 -1
  287. package/guide/bots.md +3 -2
  288. package/guide/calls.md +16 -15
  289. package/guide/index.md +1 -1
  290. package/guide/setup.md +19 -10
  291. package/guide/trouble.md +12 -2
  292. package/package.json +2 -2
  293. package/public/sounds/NOTICE +213 -0
  294. package/public/sounds/end_voice.ogg +0 -0
  295. package/public/sounds/ring.ogg +0 -0
  296. package/public/sounds/start_voice.ogg +0 -0
  297. package/seed-skills/concierge/travel/SKILL.md +4 -4
  298. package/seed-skills/marketer/marketing/references/copywriting-copy-frameworks.md +3 -10
  299. package/seed-skills/marketer/marketing/references/copywriting.md +2 -2
  300. package/seed-skills/marketer/marketing/references/social-platforms.md +5 -5
  301. package/skills/artifact/SKILL.md +2 -1
  302. package/skills/artifact/references/book.md +2 -3
  303. package/skills/artifact/references/deck.md +4 -0
  304. package/skills/artifact/runtime/app/kit/vite.config.ts +6 -3
  305. package/skills/artifact/runtime/app/page/index.html +1 -1
  306. package/skills/artifact/runtime/book/book.html +1 -1
  307. package/skills/artifact/runtime/canvas/canvas.html +1 -1
  308. package/skills/artifact/runtime/deck/deck.html +1 -1
  309. package/skills/artifact/runtime/document/quick.html +1 -1
  310. package/skills/artifact/scripts/chart.mjs +122 -14
  311. package/skills/artifact/scripts/document.mjs +3 -2
  312. package/skills/daily-brief/scripts/story.mjs +13 -1
  313. package/skills/media-digest/SKILL.md +4 -2
  314. package/skills/media-digest/references/no-captions.md +2 -1
  315. package/skills/media-digest/scripts/audio.mjs +7 -2
  316. package/.next/server/chunks/[root-of-the-server]__0876r42._.js +0 -3
  317. package/.next/server/chunks/[root-of-the-server]__0brcw76._.js +0 -3
  318. package/.next/server/chunks/[root-of-the-server]__0c_j_qe._.js +0 -3
  319. package/.next/server/chunks/[root-of-the-server]__0grmfwp._.js +0 -5
  320. package/.next/server/chunks/[root-of-the-server]__0kv916d._.js +0 -3
  321. package/.next/server/chunks/[root-of-the-server]__0tkqhnc._.js +0 -3
  322. package/.next/server/chunks/[root-of-the-server]__0vffrja._.js +0 -5
  323. package/.next/server/chunks/[root-of-the-server]__0vn91fr._.js +0 -5
  324. package/.next/server/chunks/[root-of-the-server]__0vxvcj4._.js +0 -3
  325. package/.next/server/chunks/[root-of-the-server]__0zbo906._.js +0 -5
  326. package/.next/server/chunks/[root-of-the-server]__10ep3hy._.js +0 -3
  327. package/.next/server/chunks/[root-of-the-server]__10iry08._.js +0 -3
  328. package/.next/server/chunks/[root-of-the-server]__11d0tvc._.js +0 -5
  329. package/.next/server/chunks/[root-of-the-server]__19sv9or._.js +0 -5
  330. package/.next/server/chunks/[root-of-the-server]__1_1zysn._.js +0 -3
  331. package/.next/server/chunks/[root-of-the-server]__1e0f7he._.js +0 -7
  332. package/.next/server/chunks/[root-of-the-server]__1fdpwcm._.js +0 -3
  333. package/.next/server/chunks/[root-of-the-server]__1hgdkzg._.js +0 -11
  334. package/.next/server/chunks/[root-of-the-server]__1ksm9m-._.js +0 -12
  335. package/.next/server/chunks/[root-of-the-server]__1l_nubj._.js +0 -3
  336. package/.next/server/chunks/[root-of-the-server]__1pmsv_6._.js +0 -3
  337. package/.next/server/chunks/[root-of-the-server]__1tdudkf._.js +0 -5
  338. package/.next/server/chunks/_02lipqs._.js +0 -5
  339. package/.next/server/chunks/_034lk-r._.js +0 -3
  340. package/.next/server/chunks/_04ynt0z._.js +0 -252
  341. package/.next/server/chunks/_171rt-v._.js +0 -109
  342. package/.next/server/chunks/_17esum5._.js +0 -5
  343. package/.next/server/chunks/_1p8rzg_._.js +0 -252
  344. package/.next/server/chunks/_1v5g4kx._.js +0 -3
  345. package/.next/server/chunks/_1vxrw1q._.js +0 -5
  346. package/.next/server/chunks/features_0-cnt0l._.js +0 -4
  347. package/.next/server/chunks/features_0hdaci0._.js +0 -4
  348. package/.next/server/chunks/features_0p85gv6._.js +0 -3
  349. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0ta6hsy._.js +0 -3
  350. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0tok7g7._.js +0 -3
  351. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_187uwe9._.js +0 -3
  352. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1cu9mam._.js +0 -3
  353. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1g1et-d._.js +0 -3
  354. package/.next/server/chunks/ssr/[root-of-the-server]__099tvf0._.js +0 -3
  355. package/.next/server/chunks/ssr/[root-of-the-server]__0dxszdt._.js +0 -3
  356. package/.next/server/chunks/ssr/[root-of-the-server]__0ihvne0._.js +0 -3
  357. package/.next/server/chunks/ssr/[root-of-the-server]__11hcjwx._.js +0 -3
  358. package/.next/server/chunks/ssr/_018vrx-._.js +0 -3
  359. package/.next/server/chunks/ssr/_0afqubz._.js +0 -162
  360. package/.next/server/chunks/ssr/_0ayihi5._.js +0 -3
  361. package/.next/server/chunks/ssr/_0gv5wzb._.js +0 -3
  362. package/.next/server/chunks/ssr/_0kkdx7t._.js +0 -3
  363. package/.next/server/chunks/ssr/_0yjztzi._.js +0 -3
  364. package/.next/server/chunks/ssr/_14fdswx._.js +0 -3
  365. package/.next/server/chunks/ssr/_1ajl6hf._.js +0 -5
  366. package/.next/server/chunks/ssr/_1o_i8-d._.js +0 -7
  367. package/.next/server/chunks/ssr/_1ri-y7z._.js +0 -4
  368. package/.next/server/chunks/ssr/features_0ctqq63._.js +0 -4
  369. package/.next/server/chunks/ssr/features_bot_0v6r-lh._.js +0 -3
  370. package/.next/static/chunks/0j8_qql4enu93.js +0 -1
  371. package/.next/static/chunks/0mr03ivl4_fxd.js +0 -1
  372. package/.next/static/chunks/13qwyo9-jd5kw.js +0 -1
  373. package/.next/static/chunks/17_b97pj_av_t.js +0 -1
  374. package/.next/static/chunks/18id2dgl_39_1.js +0 -18
  375. package/.next/static/chunks/1lp02y2nmddxg.js +0 -1
  376. package/.next/static/chunks/249i2g6ele3t2.js +0 -1
  377. package/.next/static/chunks/249wisxmxrwa9.js +0 -1
  378. package/.next/static/chunks/27dovttmtqjhi.js +0 -15
  379. package/.next/static/chunks/2k1rwhz_x2lej.js +0 -1
  380. package/.next/static/chunks/2p2pqpub-48me.js +0 -58
  381. package/.next/static/chunks/34-6gj9kheq74.js +0 -2
  382. package/.next/static/chunks/3a29oqdmvp25o.js +0 -35
  383. package/.next/static/chunks/3c_bgfr_z4peu.js +0 -1
  384. package/.next/static/chunks/3gyqds2iodotb.js +0 -1
  385. package/.next/static/chunks/3hxors_gsfsut.js +0 -1
  386. package/.next/static/chunks/3q-3lu8gpr4-h.js +0 -1
  387. package/.next/static/chunks/3qkm3p4g4ajku.js +0 -3
  388. package/.next/static/chunks/3w3mgbz8nuug2.js +0 -1
  389. package/app/api/bot/memory/files/route.ts +0 -14
  390. package/app/api/bot/memory/route.ts +0 -5
  391. package/app/api/events/app-event.client.ts +0 -30
  392. package/app/api/events/app-event.server.ts +0 -47
  393. package/app/api/events/app-event.ts +0 -78
  394. package/app/api/llm-model/catalog/route.ts +0 -12
  395. package/app/api/llm-model/credits/route.ts +0 -11
  396. package/app/api/llm-model/route.ts +0 -26
  397. package/app/api/llm-model/subscription/route.ts +0 -11
  398. package/app/api/memory/edit/route.ts +0 -7
  399. package/app/api/memory/route.ts +0 -8
  400. package/app/api/query-key.ts +0 -192
  401. package/app/api/thursday/tool-call/route.ts +0 -76
  402. package/biome.json +0 -72
  403. package/components/ui/button-group.tsx +0 -45
  404. package/components/ui/custom-icon.tsx +0 -199
  405. package/components/ui/dropdown-menu.tsx +0 -271
  406. package/components/ui/folded-text.tsx +0 -68
  407. package/components/ui/input-group.tsx +0 -157
  408. package/components/ui/json-view.tsx +0 -240
  409. package/components/ui/radio-group.tsx +0 -37
  410. package/components/ui/shiny-text.tsx +0 -68
  411. package/components/ui/site-icon.tsx +0 -45
  412. package/components/ui/source-chips.tsx +0 -54
  413. package/components/ui/theme-sync.tsx +0 -9
  414. package/components.json +0 -25
  415. package/docs/how-it-works.md +0 -76
  416. package/docs/images/errands-dark.png +0 -0
  417. package/docs/images/errands-light.png +0 -0
  418. package/docs/images/hero-dark.png +0 -0
  419. package/docs/images/hero-light.png +0 -0
  420. package/docs/images/keeps-going.png +0 -0
  421. package/docs/images/more-dark.png +0 -0
  422. package/docs/images/more-light.png +0 -0
  423. package/docs/images/results-dark.png +0 -0
  424. package/docs/images/results-light.png +0 -0
  425. package/docs/images/talk-dark.png +0 -0
  426. package/docs/images/talk-light.png +0 -0
  427. package/docs/images/team-dark.png +0 -0
  428. package/docs/images/team-light.png +0 -0
  429. package/docs/images/two-minds.png +0 -0
  430. package/features/ai/chatgpt.ts +0 -638
  431. package/features/ai/components/chatgpt-sign-in.tsx +0 -66
  432. package/features/ai/components/effort-switch.tsx +0 -112
  433. package/features/ai/components/gateway-mark.tsx +0 -188
  434. package/features/ai/components/model-browser.tsx +0 -324
  435. package/features/ai/components/model-picker.tsx +0 -336
  436. package/features/ai/components/provider-icon.tsx +0 -162
  437. package/features/ai/guide.ts +0 -44
  438. package/features/ai/live.schema.ts +0 -150
  439. package/features/ai/load-tools.ts +0 -495
  440. package/features/ai/model.schema.ts +0 -985
  441. package/features/ai/model.ts +0 -662
  442. package/features/ai/prompts/bot.prompt.ts +0 -418
  443. package/features/ai/prompts/call-standing.ts +0 -43
  444. package/features/ai/prompts/live.prompt.ts +0 -197
  445. package/features/ai/prompts/memory-edit.prompt.ts +0 -33
  446. package/features/ai/prompts/persona.ts +0 -114
  447. package/features/ai/prompts/prompt-helper.ts +0 -287
  448. package/features/ai/prompts/thursday.prompt.ts +0 -281
  449. package/features/ai/tools/bot.tool.ts +0 -183
  450. package/features/ai/tools/call.tool.ts +0 -50
  451. package/features/ai/tools/connected.ts +0 -199
  452. package/features/ai/tools/deck.tool.ts +0 -518
  453. package/features/ai/tools/look.tool.ts +0 -65
  454. package/features/ai/tools/mcp.tool.ts +0 -187
  455. package/features/ai/tools/memory.tool.ts +0 -296
  456. package/features/ai/tools/routine.tool.ts +0 -214
  457. package/features/ai/tools/search.tool.ts +0 -248
  458. package/features/ai/tools/self.tool.ts +0 -58
  459. package/features/ai/tools/signin.tool.ts +0 -138
  460. package/features/ai/tools/skills.tool.ts +0 -109
  461. package/features/ai/tools/studio.tool.ts +0 -360
  462. package/features/ai/tools/tool-name.ts +0 -56
  463. package/features/ai/tools/workspace.tool.ts +0 -126
  464. package/features/ai/words.ts +0 -60
  465. package/features/artifact/artifact.action.ts +0 -12
  466. package/features/artifact/artifact.query.ts +0 -218
  467. package/features/artifact/artifact.schema.ts +0 -58
  468. package/features/artifact/components/artifact-setting.tsx +0 -513
  469. package/features/bot/bot.action.ts +0 -195
  470. package/features/bot/bot.memory.ts +0 -206
  471. package/features/bot/bot.query.ts +0 -293
  472. package/features/bot/bot.run.ts +0 -909
  473. package/features/bot/bot.runner.ts +0 -595
  474. package/features/bot/bot.schema.ts +0 -501
  475. package/features/bot/bot.seed.ts +0 -160
  476. package/features/bot/components/attachments.tsx +0 -225
  477. package/features/bot/components/bot-badge.tsx +0 -21
  478. package/features/bot/components/bot-mark.tsx +0 -1678
  479. package/features/bot/components/bot-room.tsx +0 -439
  480. package/features/bot/components/bot-roster.tsx +0 -43
  481. package/features/bot/components/bot-setting.tsx +0 -1698
  482. package/features/bot/components/bot-tip.tsx +0 -48
  483. package/features/bot/components/bot-tool.tsx +0 -644
  484. package/features/bot/components/crew-motion.ts +0 -168
  485. package/features/bot/components/mark-palette.tsx +0 -57
  486. package/features/bot/components/room-conversation.tsx +0 -1208
  487. package/features/bot/components/room-list.tsx +0 -539
  488. package/features/bot/components/room-pill.tsx +0 -1045
  489. package/features/bot/components/thread-badge.tsx +0 -37
  490. package/features/bot/components/thread-reply.tsx +0 -780
  491. package/features/bot/components/thread-setting.tsx +0 -718
  492. package/features/bot/components/write-orb.tsx +0 -298
  493. package/features/bot/mark.const.ts +0 -164
  494. package/features/bot/room.query.ts +0 -922
  495. package/features/bot/room.schema.ts +0 -78
  496. package/features/bot/seed-bots.ts +0 -44
  497. package/features/bot/thread.query.ts +0 -1175
  498. package/features/bot/thread.store.ts +0 -726
  499. package/features/config/components/config-badge.tsx +0 -28
  500. package/features/config/components/config-setting.tsx +0 -881
  501. package/features/config/components/models-badge.tsx +0 -42
  502. package/features/config/components/voice-key.tsx +0 -321
  503. package/features/config/config.action.ts +0 -67
  504. package/features/config/config.const.ts +0 -356
  505. package/features/config/config.query.ts +0 -43
  506. package/features/connectors/components/mcp-badge.tsx +0 -17
  507. package/features/connectors/components/mcp-mark.tsx +0 -4
  508. package/features/connectors/components/mcp-setting.tsx +0 -1028
  509. package/features/connectors/mcp.action.ts +0 -93
  510. package/features/connectors/mcp.const.ts +0 -336
  511. package/features/connectors/mcp.manager.ts +0 -497
  512. package/features/connectors/mcp.query.ts +0 -256
  513. package/features/connectors/mcp.schema.ts +0 -122
  514. package/features/intro/components/echoes.tsx +0 -563
  515. package/features/intro/components/intro.tsx +0 -964
  516. package/features/intro/intro-voice.ts +0 -174
  517. package/features/memory/components/memory-edit.tsx +0 -333
  518. package/features/memory/components/memory-mark.tsx +0 -4
  519. package/features/memory/components/memory-setting.tsx +0 -662
  520. package/features/memory/memory.action.ts +0 -75
  521. package/features/memory/memory.edit.ts +0 -79
  522. package/features/memory/memory.query.ts +0 -513
  523. package/features/memory/memory.schema.ts +0 -196
  524. package/features/reach/channel.ts +0 -127
  525. package/features/reach/chat-text.ts +0 -364
  526. package/features/reach/components/reach-ask.tsx +0 -94
  527. package/features/reach/components/reach-badge.tsx +0 -22
  528. package/features/reach/components/reach-guide.tsx +0 -777
  529. package/features/reach/discord.ts +0 -308
  530. package/features/reach/pictures.ts +0 -88
  531. package/features/reach/reach.action.ts +0 -30
  532. package/features/reach/reach.schema.ts +0 -80
  533. package/features/reach/reach.ts +0 -946
  534. package/features/reach/slack.ts +0 -319
  535. package/features/reach/socket.ts +0 -63
  536. package/features/reach/telegram.ts +0 -323
  537. package/features/routine/components/routine-mark.tsx +0 -7
  538. package/features/routine/components/routine-setting.tsx +0 -1078
  539. package/features/routine/routine.action.ts +0 -31
  540. package/features/routine/routine.clock.ts +0 -102
  541. package/features/routine/routine.query.ts +0 -207
  542. package/features/routine/routine.schema.ts +0 -157
  543. package/features/settings/components/install-app.tsx +0 -153
  544. package/features/settings/components/setting-ui.tsx +0 -482
  545. package/features/settings/components/settings.tsx +0 -464
  546. package/features/settings/settings.alert.ts +0 -42
  547. package/features/settings/settings.store.ts +0 -44
  548. package/features/signins/components/signin-ask.tsx +0 -51
  549. package/features/signins/components/signins-setting.tsx +0 -261
  550. package/features/signins/signins.action.ts +0 -22
  551. package/features/signins/signins.query.ts +0 -261
  552. package/features/signins/signins.schema.ts +0 -26
  553. package/features/skills/components/skills-mark.tsx +0 -4
  554. package/features/skills/components/skills-setting.tsx +0 -736
  555. package/features/skills/skills.action.ts +0 -118
  556. package/features/skills/skills.discover.ts +0 -146
  557. package/features/skills/skills.query.ts +0 -363
  558. package/features/skills/skills.schema.ts +0 -105
  559. package/features/thursday/ascii.const.ts +0 -218
  560. package/features/thursday/call-signal.ts +0 -41
  561. package/features/thursday/components/ascii-orb.tsx +0 -1523
  562. package/features/thursday/components/boot.tsx +0 -24
  563. package/features/thursday/components/call-log.tsx +0 -503
  564. package/features/thursday/components/caption-words.tsx +0 -117
  565. package/features/thursday/components/connect-wave.tsx +0 -266
  566. package/features/thursday/components/face.tsx +0 -137
  567. package/features/thursday/components/side-captions.tsx +0 -347
  568. package/features/thursday/components/tab-state.tsx +0 -108
  569. package/features/thursday/components/thursday-mark.tsx +0 -168
  570. package/features/thursday/components/thursday-setting.tsx +0 -1084
  571. package/features/thursday/components/thursday.tsx +0 -1823
  572. package/features/thursday/components/voice-picker.tsx +0 -254
  573. package/features/thursday/components/write-line.tsx +0 -714
  574. package/features/thursday/expressions.ts +0 -1278
  575. package/features/thursday/eyes.ts +0 -274
  576. package/features/thursday/face-words.ts +0 -44
  577. package/features/thursday/face.const.ts +0 -6
  578. package/features/thursday/face.store.ts +0 -62
  579. package/features/thursday/field.ts +0 -93
  580. package/features/thursday/open-work.ts +0 -180
  581. package/features/thursday/screen-act.ts +0 -15
  582. package/features/thursday/silent-voice.ts +0 -14
  583. package/features/thursday/smoke.ts +0 -510
  584. package/features/thursday/thursday.action.ts +0 -266
  585. package/features/thursday/thursday.query.ts +0 -382
  586. package/features/thursday/thursday.schema.ts +0 -251
  587. package/features/thursday/thursday.store.ts +0 -129
  588. package/features/thursday/thursday.text.ts +0 -567
  589. package/features/thursday/tool-call.ts +0 -42
  590. package/features/thursday/tool-line.ts +0 -333
  591. package/features/thursday/use-call-ring.ts +0 -194
  592. package/features/thursday/use-live-settings.ts +0 -66
  593. package/features/thursday/use-text-call.ts +0 -551
  594. package/features/thursday/use-thursday.ts +0 -1231
  595. package/features/thursday/wash.ts +0 -116
  596. package/features/thursday/work-chip.tsx +0 -64
  597. package/features/workspace/components/artifact-view.tsx +0 -510
  598. package/features/workspace/components/file-thumb.tsx +0 -253
  599. package/features/workspace/components/file-view.tsx +0 -875
  600. package/features/workspace/components/given-files.tsx +0 -195
  601. package/features/workspace/components/workspace-mark.tsx +0 -4
  602. package/features/workspace/components/workspace-setting.tsx +0 -454
  603. package/features/workspace/file-kind.ts +0 -190
  604. package/features/workspace/workspace.action.ts +0 -88
  605. package/features/workspace/workspace.query.ts +0 -220
  606. package/features/workspace/workspace.schema.ts +0 -58
  607. package/features/workspace/workspace.ts +0 -553
  608. package/hooks/use-draft.ts +0 -38
  609. package/hooks/use-hotkey.ts +0 -171
  610. package/hooks/use-object-state.ts +0 -22
  611. package/hooks/use-on-visible.ts +0 -72
  612. package/hooks/use-theme.ts +0 -120
  613. package/hooks/use-wake-word.ts +0 -262
  614. package/knip.json +0 -7
  615. package/lib/date-like.ts +0 -37
  616. package/lib/desktop-notify.ts +0 -81
  617. package/lib/favicon.ts +0 -88
  618. package/lib/json-schema.ts +0 -42
  619. package/lib/live/live.schema.ts +0 -36
  620. package/lib/live/live.server.ts +0 -188
  621. package/lib/live/live.session.ts +0 -712
  622. package/lib/live/live.tap.ts +0 -288
  623. package/lib/live/live.transport.ts +0 -152
  624. package/lib/live/ring.ts +0 -62
  625. package/lib/logger.ts +0 -14
  626. package/lib/oauth-page.ts +0 -27
  627. package/lib/protocol/events.client.ts +0 -89
  628. package/lib/protocol/events.server.ts +0 -158
  629. package/lib/protocol/events.ts +0 -53
  630. package/lib/protocol/presence.ts +0 -65
  631. package/lib/protocol/result.ts +0 -63
  632. package/lib/protocol/server-action.ts +0 -13
  633. package/lib/protocol/server-route.ts +0 -20
  634. package/lib/protocol/to-result.ts +0 -46
  635. package/lib/protocol/use-server-action.ts +0 -105
  636. package/lib/protocol/use-server-pages.ts +0 -117
  637. package/lib/protocol/use-server-route.ts +0 -165
  638. package/lib/public-error.ts +0 -19
  639. package/lib/queue.ts +0 -79
  640. package/lib/reveal-path.ts +0 -46
  641. package/lib/sandbox.ts +0 -269
  642. package/lib/theme.ts +0 -9
  643. package/lib/tokens.ts +0 -35
  644. package/lib/utils.ts +0 -163
  645. package/release-please-config.json +0 -21
  646. package/scripts/artifact-paths.test.mts +0 -56
  647. package/scripts/bot-context.test.mts +0 -2122
  648. package/scripts/intro-voice.mts +0 -65
  649. package/scripts/live-history.test.mts +0 -115
  650. package/scripts/live-session.test.mts +0 -1286
  651. package/scripts/memory-tools.test.mts +0 -177
  652. package/scripts/page-edits.test.mts +0 -319
  653. package/scripts/reach-channels.test.mts +0 -524
  654. package/scripts/skill-files.test.mts +0 -225
  655. package/scripts/text-call.test.mts +0 -540
  656. package/skills-lock.json +0 -23
  657. package/tsconfig.json +0 -44
  658. /package/.next/static/{0yrnAMu4F_o69_DY3W-ho → RtLRT9EEaGn-OqwpMFdYg}/_buildManifest.js +0 -0
  659. /package/.next/static/{0yrnAMu4F_o69_DY3W-ho → RtLRT9EEaGn-OqwpMFdYg}/_clientMiddlewareManifest.js +0 -0
  660. /package/.next/static/{0yrnAMu4F_o69_DY3W-ho → RtLRT9EEaGn-OqwpMFdYg}/_ssgManifest.js +0 -0
@@ -1,298 +0,0 @@
1
- "use client";
2
-
3
- import { useEffect, useRef, useState } from "react";
4
- import { cn } from "@/lib/utils";
5
-
6
- /**
7
- * What the pill's write button becomes while the line it opens is up: smoke in a glass, carried
8
- * left to right. It keeps the button's box, so the pill is the same width either way.
9
- *
10
- * Drawn to frames the user brought, and measured off them rather than guessed:
11
- * · one hue throughout — the blue channel never leaves 247..254 while red and green run
12
- * 110..252 — so every pixel is that blue with some amount of white in it;
13
- * · the picture is mostly PALE: median red 219, only a tenth under 145. One soft dark mass and
14
- * three quarters of it light; half and half reads as a wave;
15
- * · the ramps between are long, and a long ramp is a wide window over a big slow field;
16
- * · a row across the middle is nearly flat and a column is not, so the smoke lies in banks
17
- * stretched sideways;
18
- * · the edge lands in two pixels, so the circle is cut, not faded — which the button's own
19
- * `rounded-full overflow-hidden` does, at the screen's resolution rather than the buffer's.
20
- *
21
- * Four things were tried and are wrong, kept here so they are not tried again: one field sliding
22
- * past reads as a camera moving over something standing still; crossfading two phases of one
23
- * field reads as growing and shrinking in place; a twist strongest in the middle draws a taegeuk;
24
- * and a scale under about 0.5 puts the whole disc inside one cell of noise, where it brightens
25
- * and darkens as one lump instead of having weather in it.
26
- */
27
-
28
- /**
29
- * The one hue, deepest first: three smoke tones between the ink and the paper. The steps are
30
- * walked from the app's own blue (`--brand` #0169cc) at the distances read off the frames, so
31
- * the smoke is the app's colour and only the hue differs from what was measured.
32
- */
33
- const STOPS: [number, [number, number, number]][] = [
34
- [0.0, [21, 117, 208]],
35
- [0.4, [90, 157, 222]],
36
- [0.75, [179, 210, 239]],
37
- [1.0, [252, 252, 254]],
38
- ];
39
- const INK = STOPS[0][1];
40
-
41
- /**
42
- * The sheets, coarsest first. Each is the same cloud at a different size, carried at its own
43
- * pace, every one stretched sideways (`wide` under `tall`) because that is how the frames lie.
44
- * `gust*` is how much a gust pulls that sheet about; only the big one feels it. The last belongs
45
- * to none of the others and pushes both ways — white where it is thick, indigo where it is thin —
46
- * which is where the irregularity comes from.
47
- */
48
- const SHEETS = [
49
- {
50
- pace: 0.075,
51
- wide: 0.75,
52
- tall: 1.15,
53
- seed: 3.1,
54
- gustWide: 0.4,
55
- gustTall: 0.2,
56
- sky: 1,
57
- },
58
- {
59
- pace: 0.16,
60
- wide: 1.3,
61
- tall: 2.2,
62
- seed: 11.7,
63
- gustWide: 0,
64
- gustTall: 0,
65
- sky: 1,
66
- },
67
- {
68
- pace: 0.3,
69
- wide: 2.4,
70
- tall: 4.0,
71
- seed: 19.3,
72
- gustWide: 0,
73
- gustTall: 0,
74
- sky: 1,
75
- },
76
- {
77
- pace: 0.21,
78
- wide: 1.65,
79
- tall: 2.9,
80
- seed: 27.7,
81
- gustWide: 0,
82
- gustTall: 0,
83
- sky: 1.3,
84
- },
85
- ];
86
-
87
- /**
88
- * Pixels across the buffer. The button is 28px, and smoke has no edge to lose, so the browser
89
- * scales this up rather than the paint running at device resolution: about half a millisecond a
90
- * frame, which at 30fps is a sixtieth of one core.
91
- */
92
- const BUFFER = 48;
93
-
94
- /*
95
- * It arrives and goes by fading, and by nothing else (the user's pick). Four other ways in were
96
- * built and turned down: smoke rising from the floor, a puff opening out of the middle, and a
97
- * sweep blowing in with the wind all draw the round shape at some single moment, which reads as
98
- * canned; and letting smoke escape past the rim, which at this size has three pixels to escape
99
- * into — too few to read as anything, enough to lose the shape.
100
- */
101
-
102
- /** Thirty a second is enough for weather, and leaves the rest of the frame to the call. */
103
- const FRAME_MS = 33;
104
-
105
- /** How long it takes to fade in, and out again. */
106
- const FADE_MS = 200;
107
-
108
- const clamp = (value: number, low: number, high: number) =>
109
- value < low ? low : value > high ? high : value;
110
- const ease = (t: number) => t * t * (3 - 2 * t);
111
- const fade = (edge0: number, edge1: number, x: number) =>
112
- ease(clamp((x - edge0) / (edge1 - edge0), 0, 1));
113
-
114
- const hash = (x: number, y: number) => {
115
- let n = (x * 374761393 + y * 668265263) | 0;
116
- n = (n ^ (n >>> 13)) * 1274126177;
117
- return ((n ^ (n >>> 16)) >>> 0) / 4294967295;
118
- };
119
- const noise = (x: number, y: number) => {
120
- const xi = Math.floor(x);
121
- const yi = Math.floor(y);
122
- const u = ease(x - xi);
123
- const v = ease(y - yi);
124
- const a = hash(xi, yi);
125
- const b = hash(xi + 1, yi);
126
- const c = hash(xi, yi + 1);
127
- const d = hash(xi + 1, yi + 1);
128
- return (a * (1 - u) + b * u) * (1 - v) + (c * (1 - u) + d * u) * v;
129
- };
130
- /** Two octaves and no more: a third is grain, and grain is what makes it look like marble. */
131
- const cloud = (x: number, y: number, seed: number) =>
132
- noise(x + seed, y + seed * 0.7) * 0.74 +
133
- noise(x * 2.2 + seed, y * 2.2 + seed * 1.3) * 0.26;
134
-
135
- /** The colour at one amount of light, along the measured ramp. */
136
- function tone(level: number, out: [number, number, number]) {
137
- const t = clamp(level, 0, 1);
138
- let at = 1;
139
- while (at < STOPS.length - 1 && t > STOPS[at][0]) at += 1;
140
- const [t0, from] = STOPS[at - 1];
141
- const [t1, to] = STOPS[at];
142
- const part = (t - t0) / (t1 - t0);
143
- out[0] = from[0] + (to[0] - from[0]) * part;
144
- out[1] = from[1] + (to[1] - from[1]) * part;
145
- out[2] = from[2] + (to[2] - from[2]) * part;
146
- }
147
-
148
- /**
149
- * `on` is the line being up. The orb outlives it by `FADE_MS` so it has time to draw back into
150
- * the button rather than vanishing: a swap with no going-away is what made `/` read as a cut.
151
- */
152
- export function WriteOrb({
153
- on,
154
- className,
155
- }: {
156
- on: boolean;
157
- className?: string;
158
- }) {
159
- const held = useRef<HTMLCanvasElement>(null);
160
- const [alive, setAlive] = useState(on);
161
-
162
- // `alive` is whether it is in the tree, `shown` whether it has faded up. Two of them because a
163
- // transition needs a frame at nothing before it can run to something, and because it has to
164
- // stay in the tree long enough to fade out again.
165
- const [shown, setShown] = useState(false);
166
- useEffect(() => {
167
- if (on) {
168
- setAlive(true);
169
- const up = requestAnimationFrame(() => setShown(true));
170
- return () => cancelAnimationFrame(up);
171
- }
172
- setShown(false);
173
- const leaving = setTimeout(() => setAlive(false), FADE_MS);
174
- return () => clearTimeout(leaving);
175
- }, [on]);
176
-
177
- useEffect(() => {
178
- const canvas = held.current;
179
- const context = canvas?.getContext("2d");
180
- if (!canvas || !context) return;
181
- canvas.width = BUFFER;
182
- canvas.height = BUFFER;
183
- const image = context.createImageData(BUFFER, BUFFER);
184
- const pixels = image.data;
185
- const colour: [number, number, number] = [0, 0, 0];
186
- // Somewhere else in the weather and under a sky of its own every time, so it never opens on
187
- // the same frame twice.
188
- const born = Math.random() * 900;
189
- const sky = Math.random() * 400;
190
-
191
- const draw = (seconds: number) => {
192
- const time = seconds + born;
193
- // Carried one way only, left to right, at a pace that breathes. This is the integral of
194
- // that pace, so it speeds up and slows down but never slides back where it came from.
195
- const flow = time + 1.7 * Math.sin(time * 0.33);
196
- // The wind comes in gusts, on two beats that do not divide into each other.
197
- const blow =
198
- (0.5 + 0.5 * Math.sin(time * 0.27)) ** 2 * 0.72 +
199
- (0.5 + 0.5 * Math.sin(time * 0.41 + 2.1)) ** 3 * 0.28;
200
- const lift = Math.sin(time * 0.19) * 0.1;
201
- const carried = SHEETS.map((sheet) => ({
202
- seed: sheet.seed,
203
- shift: flow * sheet.pace,
204
- wide: sheet.wide * (1 - sheet.gustWide * blow),
205
- tall: sheet.tall * (1 + sheet.gustTall * blow),
206
- sky: sky * sheet.sky,
207
- }));
208
-
209
- let p = 0;
210
- for (let py = 0; py < BUFFER; py += 1) {
211
- const ny = ((py + 0.5) / BUFFER) * 2 - 1;
212
- for (let px = 0; px < BUFFER; px += 1, p += 4) {
213
- const nx = ((px + 0.5) / BUFFER) * 2 - 1;
214
-
215
- // A deep slow warp under the lot, so no sheet lies in flat strata.
216
- const wx = noise(nx * 0.55 + time * 0.03, ny * 0.55 + sky) - 0.5;
217
- const wy =
218
- noise(nx * 0.55 + 9.1 + sky, ny * 0.55 - time * 0.024) - 0.5;
219
- const qx = nx + wx * 1.15;
220
- const qy = ny + wy * 1.0 + lift;
221
-
222
- const [mass, bank, wisp, spare] = carried.map((sheet) =>
223
- cloud(
224
- (qx - sheet.shift) * sheet.wide + sheet.sky,
225
- qy * sheet.tall,
226
- sheet.seed,
227
- ),
228
- );
229
-
230
- // Mostly pale, with one soft dark mass in it — the frames' own proportions.
231
- let dark = clamp((0.52 - mass) / 0.34, 0, 1);
232
- dark *= 0.7 + 0.6 * clamp((0.56 - bank) / 0.4, 0, 1);
233
- dark = clamp(dark + (0.5 - wisp) * 0.42, 0, 1);
234
- let level =
235
- 0.97 -
236
- 0.92 * dark ** 1.2 -
237
- clamp((0.5 - wisp) / 0.6, 0, 1) * 0.1 +
238
- (spare - 0.5) * 0.38;
239
-
240
- // What is on the ball rather than in the smoke: a light standing off the upper left,
241
- // and the one bounce a glass ball catches along its lower rim.
242
- const radius = Math.sqrt(nx * nx + ny * ny);
243
- level +=
244
- clamp(1 - Math.hypot(nx + 0.42, ny + 0.48) / 1.5, 0, 1) * 0.16;
245
- level +=
246
- fade(0.84, 1.0, radius) *
247
- clamp(0.15 + 0.85 * (ny * 0.8 + nx * 0.45), 0, 1) *
248
- 0.45;
249
-
250
- tone(level, colour);
251
-
252
- // Not a rim: the whole disc leaning into the ink as it goes out, which reads as a ball
253
- // where a band reads as a border drawn round it.
254
- const round = clamp(radius, 0, 1) ** 2.4 * 0.26;
255
- pixels[p] = colour[0] + (INK[0] - colour[0]) * round;
256
- pixels[p + 1] = colour[1] + (INK[1] - colour[1]) * round;
257
- pixels[p + 2] = colour[2] + (INK[2] - colour[2]) * round;
258
- // The circle is cut here rather than left to the button's `overflow-hidden`, which
259
- // does not reach a canvas of its own layer.
260
- pixels[p + 3] = 255 * (1 - fade(0.94, 1.0, radius));
261
- }
262
- }
263
- context.putImageData(image, 0, 0);
264
- };
265
-
266
- const started = performance.now();
267
- if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
268
- draw(6);
269
- return;
270
- }
271
- let frame = 0;
272
- let last = 0;
273
- const tick = (now: number) => {
274
- frame = requestAnimationFrame(tick);
275
- if (now - last < FRAME_MS) return;
276
- last = now;
277
- draw((now - started) / 1000);
278
- };
279
- frame = requestAnimationFrame(tick);
280
- return () => cancelAnimationFrame(frame);
281
- }, [alive]);
282
-
283
- if (!alive) return null;
284
-
285
- return (
286
- <canvas
287
- ref={held}
288
- aria-hidden
289
- className={cn(
290
- "pointer-events-none absolute inset-0 size-full transition-opacity",
291
- shown ? "opacity-100" : "opacity-0",
292
- className,
293
- )}
294
- // The fade and the timer that takes the canvas away after it are one length
295
- style={{ transitionDuration: `${FADE_MS}ms` }}
296
- />
297
- );
298
- }
@@ -1,164 +0,0 @@
1
- /**
2
- * Vocabulary a mark is drawn from. Lives outside the renderer (a client
3
- * component) so the zod schema and the settings screen can read it on the server.
4
- */
5
-
6
- /** Every silhouette a mark can draw. */
7
- export const MARK_SHAPES = ["blob", "poly", "squircle", "heart"] as const;
8
-
9
- export type MarkShape = (typeof MARK_SHAPES)[number];
10
-
11
- /**
12
- * Follows the theme's text colour. Distinct from no colour at all: an unset
13
- * colour means nobody chose. BotMark draws both in currentColor; only the
14
- * picker tells them apart.
15
- */
16
- export const MARK_SYSTEM = "currentColor";
17
-
18
- const MARK_COLORS = [
19
- { id: "system", label: "System", value: MARK_SYSTEM },
20
- { id: "slate", label: "Slate", value: "#64748B" },
21
- { id: "indigo", label: "Indigo", value: "#6366F1" },
22
- { id: "blue", label: "Blue", value: "#3B82F6" },
23
- { id: "cyan", label: "Cyan", value: "#06B6D4" },
24
- { id: "teal", label: "Teal", value: "#14B8A6" },
25
- { id: "green", label: "Green", value: "#22C55E" },
26
- { id: "lime", label: "Lime", value: "#84CC16" },
27
- { id: "amber", label: "Amber", value: "#F59E0B" },
28
- { id: "orange", label: "Orange", value: "#F97316" },
29
- { id: "red", label: "Red", value: "#EF4444" },
30
- { id: "pink", label: "Pink", value: "#EC4899" },
31
- { id: "violet", label: "Violet", value: "#8B5CF6" },
32
- { id: "fuchsia", label: "Fuchsia", value: "#D946EF" },
33
- { id: "rose", label: "Rose", value: "#F43F5E" },
34
- { id: "sky", label: "Sky", value: "#0EA5E9" },
35
- { id: "emerald", label: "Emerald", value: "#10B981" },
36
- { id: "yellow", label: "Yellow", value: "#EAB308" },
37
- { id: "stone", label: "Stone", value: "#78716C" },
38
- // No darker neutrals: black is the theme dot, and a dark grey sinks into a dark theme.
39
- ] as const satisfies readonly {
40
- id: string;
41
- label: string;
42
- value: string;
43
- }[];
44
-
45
- type MarkColor = (typeof MARK_COLORS)[number];
46
-
47
- /** Colour by name, so code that names one (the status inks below) stays inside the palette. */
48
- const MARK_INK = Object.fromEntries(
49
- MARK_COLORS.map((color) => [color.id, color.value]),
50
- ) as Record<MarkColor["id"], string>;
51
-
52
- /** Every preset that is an actual colour (no "system"), for swatch pickers and random picks. */
53
- export const MARK_PALETTE: string[] = MARK_COLORS.filter(
54
- (color) => color.value !== MARK_SYSTEM,
55
- ).map((color) => color.value);
56
-
57
- /** The app's two status colours. A face wearing one reads as a state it is not in, so no roll lands on them. */
58
- const STATUS_INK: string[] = [MARK_INK.amber, MARK_INK.red];
59
-
60
- /**
61
- * What a colour is drawn as on a white page. Nine of the eighteen are too light
62
- * to read there — a yellow face on paper is 1.9:1 against a 3:1 floor for a
63
- * shape — so each has a twin at the same hue and chroma, lightness lowered
64
- * until it clears 3.2:1. The dark theme keeps the colour as it is, where all
65
- * eighteen already pass. The stored value never changes: the picker, the name
66
- * the user chose and the roll all stay on the original.
67
- */
68
- const ON_PAPER: Record<string, string> = {
69
- [MARK_INK.cyan]: "#009dbb",
70
- [MARK_INK.teal]: "#00a190",
71
- [MARK_INK.green]: "#00a640",
72
- [MARK_INK.lime]: "#5ca100",
73
- [MARK_INK.amber]: "#d07b00",
74
- [MARK_INK.orange]: "#ec6700",
75
- [MARK_INK.sky]: "#0098dc",
76
- [MARK_INK.emerald]: "#00a46d",
77
- [MARK_INK.yellow]: "#bb8600",
78
- };
79
-
80
- /** The colour as this theme should draw it. Anything not in the table is itself. */
81
- export const markInk = (color: string, dark: boolean): string =>
82
- dark ? color : (ON_PAPER[color] ?? color);
83
-
84
- /** How the renderer lays a paint's colours out. */
85
- export type MarkPaintLook = "flow" | "duo" | "aurora";
86
-
87
- const hues = (list: number[], lightness: number, chroma: number) =>
88
- list.map((hue) => `oklch(${lightness} ${chroma} ${hue})`);
89
-
90
- /**
91
- * Paints a body can wear in place of its colour. Each names its colours once, for
92
- * the renderer and for the swatch that picks it. Aurora lists its night first
93
- * (two colours), then one light per curtain.
94
- */
95
- export const MARK_PAINTS = {
96
- rainbow: {
97
- label: "Rainbow",
98
- look: "flow",
99
- colors: hues([0, 45, 90, 140, 190, 240, 290, 330, 360], 0.77, 0.16),
100
- },
101
- duo: { label: "Duo", look: "duo", colors: ["#818CF8", "#F472B6"] },
102
- aurora: {
103
- label: "Aurora",
104
- look: "aurora",
105
- edge: "dark",
106
- colors: ["#1a2f73", "#2c56c9", "#34d399", "#22d3ee", "#a7f3d0"],
107
- },
108
- "aurora-pink": {
109
- label: "Pink aurora",
110
- look: "aurora",
111
- edge: "dark",
112
- colors: ["#3a1478", "#7c3aed", "#f472b6", "#e879f9", "#fbcfe8"],
113
- },
114
- } satisfies Record<
115
- string,
116
- {
117
- label: string;
118
- look: MarkPaintLook;
119
- colors: string[];
120
- /** A dark body: the mark draws its eyes, which as holes would show the dark page it sinks into. */
121
- edge?: "dark";
122
- }
123
- >;
124
-
125
- export type MarkPaint = keyof typeof MARK_PAINTS;
126
-
127
- export type MarkPaintSpec = (typeof MARK_PAINTS)[MarkPaint];
128
-
129
- export const MARK_PAINT_IDS = Object.keys(MARK_PAINTS) as [
130
- MarkPaint,
131
- ...MarkPaint[],
132
- ];
133
-
134
- /** What a body wears: one palette colour, or one of MARK_PAINTS in its place. */
135
- type MarkFill = { color: string } | { paint: MarkPaint };
136
-
137
- /**
138
- * `count` distinct fills in random order. Colours and paints come out of one
139
- * pool, so a paint is rolled as often as its share of the vocabulary; a face
140
- * nobody drew wears the same range as one somebody picked. Fewer than asked when
141
- * the pool runs out.
142
- */
143
- export function randomMarkFills(count: number): MarkFill[] {
144
- const pool: MarkFill[] = [
145
- ...MARK_PALETTE.filter((color) => !STATUS_INK.includes(color)).map(
146
- (color) => ({ color }),
147
- ),
148
- ...MARK_PAINT_IDS.map((paint) => ({ paint })),
149
- ];
150
- for (let at = pool.length - 1; at > 0; at--) {
151
- const swap = Math.floor(Math.random() * (at + 1));
152
- [pool[at], pool[swap]] = [pool[swap], pool[at]];
153
- }
154
- return pool.slice(0, count);
155
- }
156
-
157
- /** A paint as a still CSS background, for the swatch that picks it. */
158
- export function paintSwatch(paint: MarkPaint): string {
159
- const { look, colors } = MARK_PAINTS[paint];
160
- if (look === "aurora") {
161
- return `radial-gradient(circle at 35% 30%, ${colors[2]}, transparent 70%), linear-gradient(180deg, ${colors[0]}, ${colors[1]})`;
162
- }
163
- return `linear-gradient(135deg, ${colors.join(", ")})`;
164
- }