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,76 +0,0 @@
1
- import { asSchema } from "ai";
2
- import z from "zod";
3
- import { LIVE_DEFAULTS } from "@/features/ai/live.schema";
4
- import { loadTools } from "@/features/ai/load-tools";
5
- import { modelErrorToString } from "@/features/ai/model";
6
- import { serverRoute } from "@/lib/protocol/server-route";
7
- import { publicError } from "@/lib/public-error";
8
-
9
- /**
10
- * Executes a tool call from the voice session. The page forwards what the model
11
- * asked for; bots never come through here (they call `execute` directly).
12
- * A route rather than a server action because actions run serially per client
13
- * and one turn may call two tools at once. One POST, one JSON, no streaming;
14
- * hanging up aborts the fetch and the signal reaches the tool.
15
- */
16
-
17
- const ToolCallSchema = z.object({
18
- toolCallId: z.string().min(1),
19
- /** The call this came from; `delegate` attaches the job to it. */
20
- callId: z.string().nullish(),
21
- /** What the call's manifest was built from, so this set is the one it listed. */
22
- webSearch: z.boolean().default(LIVE_DEFAULTS.webSearch),
23
- readSkills: z.boolean().default(LIVE_DEFAULTS.readSkills),
24
- name: z.string().min(1),
25
- input: z.unknown().optional(),
26
- });
27
-
28
- const isAsyncIterable = (value: unknown): value is AsyncIterable<unknown> =>
29
- typeof value === "object" && value !== null && Symbol.asyncIterator in value;
30
-
31
- /** For streaming tools the last chunk is the answer. */
32
- async function drain(output: unknown): Promise<unknown> {
33
- if (!isAsyncIterable(output)) return output;
34
- let latest: unknown;
35
- for await (const part of output) latest = part;
36
- return latest;
37
- }
38
-
39
- export const POST = serverRoute(async (request) => {
40
- const { toolCallId, callId, webSearch, readSkills, name, input } =
41
- ToolCallSchema.parse(await request.json());
42
-
43
- // The set the call opened with, not what is set now: a switch flipped mid-call would
44
- // leave the model holding a manifest for tools this route no longer builds
45
- const tools = await loadTools({
46
- target: "thursday",
47
- callId,
48
- webSearch,
49
- readSkills,
50
- });
51
- const tool = tools[name];
52
- if (!tool) publicError(`There is no tool called "${name}".`);
53
-
54
- // end_call has no execute by design: the page owns the call and intercepts it.
55
- if (!tool.execute) publicError(`"${name}" is handled by the page, not here.`);
56
-
57
- const parsed = await asSchema(tool.inputSchema).validate?.(input ?? {});
58
- if (parsed && !parsed.success) {
59
- publicError(
60
- `"${name}" got arguments that do not fit: ${parsed.error.message}`,
61
- );
62
- }
63
-
64
- try {
65
- const output = await tool.execute(parsed?.value ?? input ?? {}, {
66
- toolCallId,
67
- messages: [],
68
- context: undefined,
69
- abortSignal: request.signal,
70
- });
71
- return { output: await drain(output) };
72
- } catch (cause) {
73
- // A tool failure is a line the model reads and recovers from, not a masked server error.
74
- publicError(`"${name}" failed: ${modelErrorToString(cause)}`);
75
- }
76
- });
package/biome.json DELETED
@@ -1,72 +0,0 @@
1
- {
2
- "$schema": "https://biomejs.dev/schemas/2.5.12/schema.json",
3
- "vcs": {
4
- "enabled": true,
5
- "clientKind": "git",
6
- "useIgnoreFile": true
7
- },
8
- "files": {
9
- "ignoreUnknown": true,
10
- "includes": [
11
- "**",
12
- "!node_modules",
13
- "!.next",
14
- "!dist",
15
- "!build",
16
- "!database/migrations",
17
- "!.design",
18
- "!skills/artifact/scripts/archify",
19
- "!skills/artifact/runtime/app",
20
- "!skills/artifact/runtime/document/quick.html",
21
- "!skills/artifact/runtime/vendor"
22
- ]
23
- },
24
- "formatter": {
25
- "enabled": true,
26
- "indentStyle": "space",
27
- "indentWidth": 2
28
- },
29
- "css": {
30
- "parser": {
31
- "tailwindDirectives": true
32
- }
33
- },
34
- "linter": {
35
- "enabled": true,
36
- "rules": {
37
- "preset": "none",
38
-
39
- "complexity": { "noUselessTypeConstraint": "error" },
40
- "correctness": {
41
- "noUnusedVariables": "error",
42
- "noUnusedImports": "error",
43
- "noUnusedFunctionParameters": "error",
44
- "useExhaustiveDependencies": "off"
45
- },
46
- "style": {
47
- "noNamespace": "error",
48
- "useAsConstAssertion": "error",
49
- "useArrayLiterals": "off"
50
- },
51
- "suspicious": {
52
- "noExplicitAny": "off",
53
- "noExtraNonNullAssertion": "error",
54
- "noArrayIndexKey": "off",
55
- "noMisleadingInstantiator": "error",
56
- "noUnsafeDeclarationMerging": "error",
57
- "useNamespaceKeyword": "error"
58
- }
59
- },
60
- "domains": {
61
- "next": "recommended",
62
- "react": "recommended"
63
- }
64
- },
65
- "assist": {
66
- "actions": {
67
- "source": {
68
- "organizeImports": "on"
69
- }
70
- }
71
- }
72
- }
@@ -1,45 +0,0 @@
1
- "use client";
2
-
3
- import { cva, type VariantProps } from "class-variance-authority";
4
- import type { ComponentProps } from "react";
5
- import { cn } from "@/lib/utils";
6
-
7
- /**
8
- * Joins plain `<Button>`s into one control (outer corners only, shared 1px
9
- * seams). Nested groups get a gap between them. For a selected value use
10
- * `Segmented`.
11
- */
12
- const buttonGroupVariants = cva(
13
- "flex w-fit items-stretch has-[>[data-slot=button-group]]:gap-1.5 [&>*]:relative [&>*]:focus-visible:z-10",
14
- {
15
- variants: {
16
- orientation: {
17
- horizontal:
18
- "[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none",
19
- vertical:
20
- "flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none",
21
- },
22
- },
23
- defaultVariants: {
24
- orientation: "horizontal",
25
- },
26
- },
27
- );
28
-
29
- function ButtonGroup({
30
- className,
31
- orientation = "horizontal",
32
- ...props
33
- }: ComponentProps<"div"> & VariantProps<typeof buttonGroupVariants>) {
34
- return (
35
- <div
36
- data-slot="button-group"
37
- data-orientation={orientation}
38
- role="group"
39
- className={cn(buttonGroupVariants({ orientation }), className)}
40
- {...props}
41
- />
42
- );
43
- }
44
-
45
- export { ButtonGroup, buttonGroupVariants };
@@ -1,199 +0,0 @@
1
- export function GoogleIcon({ className }: { className?: string }) {
2
- return (
3
- <svg
4
- xmlns="http://www.w3.org/2000/svg"
5
- height="24"
6
- viewBox="0 0 24 24"
7
- className={className}
8
- width="24"
9
- >
10
- <path
11
- d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"
12
- fill="#4285F4"
13
- />
14
- <path
15
- d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"
16
- fill="#34A853"
17
- />
18
- <path
19
- d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"
20
- fill="#FBBC05"
21
- />
22
- <path
23
- d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"
24
- fill="#EA4335"
25
- />
26
- <path d="M1 1h22v22H1z" fill="none" />
27
- </svg>
28
- );
29
- }
30
-
31
- export function OpenAIIcon({ className }: { className?: string }) {
32
- return (
33
- <svg
34
- aria-hidden="true"
35
- className={className}
36
- data-view-component="true"
37
- viewBox="0 0 24 24"
38
- role="img"
39
- xmlns="http://www.w3.org/2000/svg"
40
- >
41
- <title>OpenAI icon</title>
42
- <path
43
- fill="currentColor"
44
- d="M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z"
45
- />
46
- </svg>
47
- );
48
- }
49
- export function GrokIcon({ className }: { className?: string }) {
50
- return (
51
- <svg
52
- aria-hidden="true"
53
- className={className}
54
- data-view-component="true"
55
- viewBox="0 0 35 33"
56
- >
57
- <path
58
- d="M13.2371 21.0407L24.3186 12.8506C24.8619 12.4491 25.6384 12.6057 25.8973 13.2294C27.2597 16.5185 26.651 20.4712 23.9403 23.1851C21.2297 25.8989 17.4581 26.4941 14.0108 25.1386L10.2449 26.8843C15.6463 30.5806 22.2053 29.6665 26.304 25.5601C29.5551 22.3051 30.562 17.8683 29.6205 13.8673L29.629 13.8758C28.2637 7.99809 29.9647 5.64871 33.449 0.844576C33.5314 0.730667 33.6139 0.616757 33.6964 0.5L29.1113 5.09055V5.07631L13.2343 21.0436"
59
- fill="currentColor"
60
- ></path>
61
- <path
62
- d="M10.9503 23.0313C7.07343 19.3235 7.74185 13.5853 11.0498 10.2763C13.4959 7.82722 17.5036 6.82767 21.0021 8.2971L24.7595 6.55998C24.0826 6.07017 23.215 5.54334 22.2195 5.17313C17.7198 3.31926 12.3326 4.24192 8.67479 7.90126C5.15635 11.4239 4.0499 16.8403 5.94992 21.4622C7.36924 24.9165 5.04257 27.3598 2.69884 29.826C1.86829 30.7002 1.0349 31.5745 0.36364 32.5L10.9474 23.0341"
63
- fill="currentColor"
64
- ></path>
65
- </svg>
66
- );
67
- }
68
- export function ClaudeIcon({ className }: { className?: string }) {
69
- return (
70
- <svg
71
- overflow="visible"
72
- width="100%"
73
- height="100%"
74
- viewBox="0 0 100 101"
75
- fill="none"
76
- className={className}
77
- xmlns="http://www.w3.org/2000/svg"
78
- role="presentation"
79
- >
80
- <path
81
- d="M96.0000 40.0000 L99.5002 42.0000 L99.5002 43.5000 L98.5000 47.0000 L56.0000 57.0000 L52.0040 47.0708 L96.0000 40.0000 M96.0000 40.0000 "
82
- fill="#D97757"
83
- style={{
84
- transformOrigin: "50px 50px",
85
- transform: "rotate(330deg) scaleY(1.13102) rotate(-330deg)",
86
- }}
87
- ></path>
88
- <path
89
- d="M80.1032 10.5903 L84.9968 11.6171 L86.2958 13.2179 L87.5346 17.0540 L87.0213 19.5007 L58.5000 58.5000 L49.0000 49.0000 L75.3008 14.4873 L80.1032 10.5903 M80.1032 10.5903 "
90
- fill="#D97757"
91
- style={{
92
- transformOrigin: "50px 50px",
93
- transform: "rotate(300deg) scaleY(1.04936) rotate(-300deg)",
94
- }}
95
- ></path>
96
- <path
97
- d="M55.5002 4.5000 L58.5005 2.5000 L61.0002 3.5000 L63.5002 7.0000 L56.6511 48.1620 L52.0005 45.0000 L50.0005 39.5000 L53.5003 8.5000 L55.5002 4.5000 M55.5002 4.5000 "
98
- fill="#D97757"
99
- style={{
100
- transformOrigin: "50px 50px",
101
- transform: "rotate(270deg) scaleY(1.08769) rotate(-270deg)",
102
- }}
103
- ></path>
104
- <path
105
- d="M23.4253 5.1588 L26.5075 1.2217 L28.5175 0.7632 L32.5063 1.3458 L34.4748 2.8868 L48.8202 34.6902 L54.0089 49.8008 L47.9378 53.1760 L24.8009 11.1886 L23.4253 5.1588 M23.4253 5.1588 "
106
- fill="#D97757"
107
- style={{
108
- transformOrigin: "50px 50px",
109
- transform: "rotate(240deg) scaleY(0.94) rotate(-240deg)",
110
- }}
111
- ></path>
112
- <path
113
- d="M8.4990 27.0019 L7.4999 23.0001 L10.5003 19.5001 L14.0003 20.0001 L15.0003 20.0001 L36.0000 35.5000 L42.5000 40.5000 L51.5000 47.5000 L46.5000 56.0000 L42.0002 52.5000 L39.0001 49.5000 L10.0000 29.0001 L8.4990 27.0019 M8.4990 27.0019 "
114
- fill="#D97757"
115
- style={{
116
- transformOrigin: "50px 50px",
117
- transform: "rotate(210deg) scaleY(0.925) rotate(-210deg)",
118
- }}
119
- ></path>
120
- <path
121
- d="M2.5003 53.0000 L0.2370 50.5000 L0.2373 48.2759 L2.5003 47.5000 L28.0000 49.0000 L53.0000 51.0000 L52.1885 55.9782 L4.5000 53.5000 L2.5003 53.0000 M2.5003 53.0000 "
122
- fill="#D97757"
123
- style={{
124
- transformOrigin: "50px 50px",
125
- transform: "rotate(180deg) scaleY(0.997) rotate(-180deg)",
126
- }}
127
- ></path>
128
- <path
129
- d="M17.5002 79.0264 L12.5005 79.0264 L10.5124 76.7369 L10.5124 74.0000 L19.0005 68.0000 L53.5082 46.0337 L57.0005 52.0000 L17.5002 79.0264 M17.5002 79.0264 "
130
- fill="#D97757"
131
- style={{
132
- transformOrigin: "50px 50px",
133
- transform: "rotate(150deg) scaleY(1.045) rotate(-150deg)",
134
- }}
135
- ></path>
136
- <path
137
- d="M27.0004 92.9999 L25.0003 93.4999 L22.0003 91.9999 L22.5004 89.4999 L52.0003 50.5000 L56.0004 55.9999 L34.0003 85.0000 L27.0004 92.9999 M27.0004 92.9999 "
138
- fill="#D97757"
139
- style={{
140
- transformOrigin: "50px 50px",
141
- transform: "rotate(120deg) scaleY(1.03) rotate(-120deg)",
142
- }}
143
- ></path>
144
- <path
145
- d="M51.9998 98.0000 L50.5002 100.0000 L47.5002 101.0000 L45.0001 99.0000 L43.5000 96.0000 L51.0003 55.4999 L55.5001 55.9999 L51.9998 98.0000 M51.9998 98.0000 "
146
- fill="#D97757"
147
- style={{
148
- transformOrigin: "50px 50px",
149
- transform: "rotate(90deg) scaleY(1.06) rotate(-90deg)",
150
- }}
151
- ></path>
152
- <path
153
- d="M77.5007 86.9997 L77.5007 90.9997 L77.0006 92.4997 L75.0004 93.4997 L71.5006 93.0339 L47.4669 57.2642 L56.9998 50.0002 L64.9994 64.5004 L65.7507 69.7497 L77.5007 86.9997 M77.5007 86.9997 "
154
- fill="#D97757"
155
- style={{
156
- transformOrigin: "50px 50px",
157
- transform: "rotate(60deg) scaleY(1.00898) rotate(-60deg)",
158
- }}
159
- ></path>
160
- <path
161
- d="M89.0008 80.9991 L89.5008 83.4991 L88.0008 85.4991 L86.5007 84.9991 L78.0007 78.9991 L65.0007 67.4991 L55.0007 60.4991 L58.0000 51.0000 L62.9999 54.0001 L66.0007 59.4991 L89.0008 80.9991 M89.0008 80.9991 "
162
- fill="#D97757"
163
- style={{
164
- transformOrigin: "50px 50px",
165
- transform: "rotate(30deg) scaleY(1.13564) rotate(-30deg)",
166
- }}
167
- ></path>
168
- <path
169
- d="M82.5003 55.5000 L95.0003 56.5000 L98.0003 58.5000 L100.0000 61.5000 L100.0000 63.6587 L94.5003 66.0000 L66.5005 59.0000 L55.0003 58.5000 L58.0000 48.0000 L66.0005 54.0000 L82.5003 55.5000 M82.5003 55.5000 "
170
- fill="#D97757"
171
- style={{
172
- transformOrigin: "50px 50px",
173
- transform: "rotate(0deg) scaleY(1.27731) rotate(0deg)",
174
- }}
175
- ></path>
176
- </svg>
177
- );
178
- }
179
-
180
- export function VercelIcon({ className }: { className?: string }) {
181
- return (
182
- <svg
183
- viewBox="0 0 115 100"
184
- height="18"
185
- width="21"
186
- className={className}
187
- data-slot="geist-logo-svg"
188
- >
189
- <g>
190
- <path
191
- fill="currentColor"
192
- fillRule="evenodd"
193
- d="M57.5 0 115 100H0z"
194
- clipRule="evenodd"
195
- ></path>
196
- </g>
197
- </svg>
198
- );
199
- }
@@ -1,271 +0,0 @@
1
- "use client";
2
-
3
- import { Menu as MenuPrimitive } from "@base-ui/react/menu";
4
- import { CheckIcon, ChevronRightIcon } from "lucide-react";
5
- import * as React from "react";
6
- import { cn } from "@/lib/utils";
7
-
8
- function DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {
9
- return <MenuPrimitive.Root data-slot="dropdown-menu" {...props} />;
10
- }
11
-
12
- function DropdownMenuPortal({ ...props }: MenuPrimitive.Portal.Props) {
13
- return <MenuPrimitive.Portal data-slot="dropdown-menu-portal" {...props} />;
14
- }
15
-
16
- function DropdownMenuTrigger({ ...props }: MenuPrimitive.Trigger.Props) {
17
- return <MenuPrimitive.Trigger data-slot="dropdown-menu-trigger" {...props} />;
18
- }
19
-
20
- function DropdownMenuContent({
21
- align = "start",
22
- alignOffset = 0,
23
- side = "bottom",
24
- sideOffset = 4,
25
- className,
26
- ...props
27
- }: MenuPrimitive.Popup.Props &
28
- Pick<
29
- MenuPrimitive.Positioner.Props,
30
- "align" | "alignOffset" | "side" | "sideOffset"
31
- >) {
32
- return (
33
- <MenuPrimitive.Portal>
34
- <MenuPrimitive.Positioner
35
- className="isolate z-50 outline-none"
36
- align={align}
37
- alignOffset={alignOffset}
38
- side={side}
39
- sideOffset={sideOffset}
40
- >
41
- <MenuPrimitive.Popup
42
- data-slot="dropdown-menu-content"
43
- className={cn(
44
- "z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95",
45
- className,
46
- )}
47
- {...props}
48
- />
49
- </MenuPrimitive.Positioner>
50
- </MenuPrimitive.Portal>
51
- );
52
- }
53
-
54
- function DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {
55
- return <MenuPrimitive.Group data-slot="dropdown-menu-group" {...props} />;
56
- }
57
-
58
- function DropdownMenuLabel({
59
- className,
60
- inset,
61
- ...props
62
- }: MenuPrimitive.GroupLabel.Props & {
63
- inset?: boolean;
64
- }) {
65
- return (
66
- <MenuPrimitive.GroupLabel
67
- data-slot="dropdown-menu-label"
68
- data-inset={inset}
69
- className={cn(
70
- "px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7",
71
- className,
72
- )}
73
- {...props}
74
- />
75
- );
76
- }
77
-
78
- function DropdownMenuItem({
79
- className,
80
- inset,
81
- variant = "default",
82
- ...props
83
- }: MenuPrimitive.Item.Props & {
84
- inset?: boolean;
85
- variant?: "default" | "destructive";
86
- }) {
87
- return (
88
- <MenuPrimitive.Item
89
- data-slot="dropdown-menu-item"
90
- data-inset={inset}
91
- data-variant={variant}
92
- className={cn(
93
- "group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive",
94
- className,
95
- )}
96
- {...props}
97
- />
98
- );
99
- }
100
-
101
- function DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {
102
- return <MenuPrimitive.SubmenuRoot data-slot="dropdown-menu-sub" {...props} />;
103
- }
104
-
105
- function DropdownMenuSubTrigger({
106
- className,
107
- inset,
108
- children,
109
- ...props
110
- }: MenuPrimitive.SubmenuTrigger.Props & {
111
- inset?: boolean;
112
- }) {
113
- return (
114
- <MenuPrimitive.SubmenuTrigger
115
- data-slot="dropdown-menu-sub-trigger"
116
- data-inset={inset}
117
- className={cn(
118
- "flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-popup-open:bg-accent data-popup-open:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
119
- className,
120
- )}
121
- {...props}
122
- >
123
- {children}
124
- <ChevronRightIcon className="ml-auto" />
125
- </MenuPrimitive.SubmenuTrigger>
126
- );
127
- }
128
-
129
- function DropdownMenuSubContent({
130
- align = "start",
131
- alignOffset = -3,
132
- side = "right",
133
- sideOffset = 0,
134
- className,
135
- ...props
136
- }: React.ComponentProps<typeof DropdownMenuContent>) {
137
- return (
138
- <DropdownMenuContent
139
- data-slot="dropdown-menu-sub-content"
140
- className={cn(
141
- "w-auto min-w-[96px] rounded-lg bg-popover p-1 text-popover-foreground shadow-lg ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
142
- className,
143
- )}
144
- align={align}
145
- alignOffset={alignOffset}
146
- side={side}
147
- sideOffset={sideOffset}
148
- {...props}
149
- />
150
- );
151
- }
152
-
153
- function DropdownMenuCheckboxItem({
154
- className,
155
- children,
156
- checked,
157
- inset,
158
- ...props
159
- }: MenuPrimitive.CheckboxItem.Props & {
160
- inset?: boolean;
161
- }) {
162
- return (
163
- <MenuPrimitive.CheckboxItem
164
- data-slot="dropdown-menu-checkbox-item"
165
- data-inset={inset}
166
- className={cn(
167
- "relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
168
- className,
169
- )}
170
- checked={checked}
171
- {...props}
172
- >
173
- <span
174
- className="pointer-events-none absolute right-2 flex items-center justify-center"
175
- data-slot="dropdown-menu-checkbox-item-indicator"
176
- >
177
- <MenuPrimitive.CheckboxItemIndicator>
178
- <CheckIcon />
179
- </MenuPrimitive.CheckboxItemIndicator>
180
- </span>
181
- {children}
182
- </MenuPrimitive.CheckboxItem>
183
- );
184
- }
185
-
186
- function DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {
187
- return (
188
- <MenuPrimitive.RadioGroup
189
- data-slot="dropdown-menu-radio-group"
190
- {...props}
191
- />
192
- );
193
- }
194
-
195
- function DropdownMenuRadioItem({
196
- className,
197
- children,
198
- inset,
199
- ...props
200
- }: MenuPrimitive.RadioItem.Props & {
201
- inset?: boolean;
202
- }) {
203
- return (
204
- <MenuPrimitive.RadioItem
205
- data-slot="dropdown-menu-radio-item"
206
- data-inset={inset}
207
- className={cn(
208
- "relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
209
- className,
210
- )}
211
- {...props}
212
- >
213
- <span
214
- className="pointer-events-none absolute right-2 flex items-center justify-center"
215
- data-slot="dropdown-menu-radio-item-indicator"
216
- >
217
- <MenuPrimitive.RadioItemIndicator>
218
- <CheckIcon />
219
- </MenuPrimitive.RadioItemIndicator>
220
- </span>
221
- {children}
222
- </MenuPrimitive.RadioItem>
223
- );
224
- }
225
-
226
- function DropdownMenuSeparator({
227
- className,
228
- ...props
229
- }: MenuPrimitive.Separator.Props) {
230
- return (
231
- <MenuPrimitive.Separator
232
- data-slot="dropdown-menu-separator"
233
- className={cn("-mx-1 my-1 h-px bg-border", className)}
234
- {...props}
235
- />
236
- );
237
- }
238
-
239
- function DropdownMenuShortcut({
240
- className,
241
- ...props
242
- }: React.ComponentProps<"span">) {
243
- return (
244
- <span
245
- data-slot="dropdown-menu-shortcut"
246
- className={cn(
247
- "ml-auto text-xs tracking-widest text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground",
248
- className,
249
- )}
250
- {...props}
251
- />
252
- );
253
- }
254
-
255
- export {
256
- DropdownMenu,
257
- DropdownMenuCheckboxItem,
258
- DropdownMenuContent,
259
- DropdownMenuGroup,
260
- DropdownMenuItem,
261
- DropdownMenuLabel,
262
- DropdownMenuPortal,
263
- DropdownMenuRadioGroup,
264
- DropdownMenuRadioItem,
265
- DropdownMenuSeparator,
266
- DropdownMenuShortcut,
267
- DropdownMenuSub,
268
- DropdownMenuSubContent,
269
- DropdownMenuSubTrigger,
270
- DropdownMenuTrigger,
271
- };