thursday-agent 0.1.1 → 0.2.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 (361) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +1 -0
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/routes-manifest.json +6 -0
  6. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  7. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/_global-error.html +1 -1
  9. package/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  14. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/_not-found.html +1 -1
  16. package/.next/server/app/_not-found.rsc +13 -13
  17. package/.next/server/app/_not-found.segments/_full.segment.rsc +13 -13
  18. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +12 -12
  19. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  20. package/.next/server/app/api/artifact/route.js +1 -1
  21. package/.next/server/app/api/artifact/route.js.nft.json +1 -1
  22. package/.next/server/app/api/bot/notes/route/app-paths-manifest.json +3 -0
  23. package/.next/server/app/api/bot/notes/route/build-manifest.json +12 -0
  24. package/.next/server/app/api/bot/notes/route/server-reference-manifest.json +4 -0
  25. package/.next/server/app/api/bot/notes/route.js +14 -0
  26. package/.next/server/app/api/bot/notes/route.js.map +5 -0
  27. package/.next/server/app/api/bot/notes/route.js.nft.json +1 -0
  28. package/.next/server/app/api/bot/notes/route_client-reference-manifest.js +3 -0
  29. package/.next/server/app/api/bot/route.js +4 -4
  30. package/.next/server/app/api/bot/route.js.nft.json +1 -1
  31. package/.next/server/app/api/bot/task/[id]/route.js +6 -6
  32. package/.next/server/app/api/bot/task/[id]/route.js.nft.json +1 -1
  33. package/.next/server/app/api/bot/task/route.js +6 -6
  34. package/.next/server/app/api/bot/task/route.js.nft.json +1 -1
  35. package/.next/server/app/api/config/route.js +3 -3
  36. package/.next/server/app/api/config/route.js.nft.json +1 -1
  37. package/.next/server/app/api/events/route.js +1 -1
  38. package/.next/server/app/api/events/route.js.nft.json +1 -1
  39. package/.next/server/app/api/file/[...path]/route.js +1 -1
  40. package/.next/server/app/api/file/[...path]/route.js.nft.json +1 -1
  41. package/.next/server/app/api/llm-model/catalog/route.js +6 -6
  42. package/.next/server/app/api/llm-model/catalog/route.js.nft.json +1 -1
  43. package/.next/server/app/api/llm-model/route.js +3 -3
  44. package/.next/server/app/api/llm-model/route.js.nft.json +1 -1
  45. package/.next/server/app/api/mcp/[name]/route.js +3 -3
  46. package/.next/server/app/api/mcp/[name]/route.js.nft.json +1 -1
  47. package/.next/server/app/api/mcp/oauth/callback/route.js +5 -5
  48. package/.next/server/app/api/mcp/oauth/callback/route.js.nft.json +1 -1
  49. package/.next/server/app/api/mcp/route.js +3 -3
  50. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  51. package/.next/server/app/api/mcp/tools/route.js +3 -3
  52. package/.next/server/app/api/mcp/tools/route.js.nft.json +1 -1
  53. package/.next/server/app/api/memory/route.js +7 -7
  54. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  55. package/.next/server/app/api/memory/tidy/route.js +10 -11
  56. package/.next/server/app/api/memory/tidy/route.js.nft.json +1 -1
  57. package/.next/server/app/api/skills/[source]/[name]/route.js +1 -1
  58. package/.next/server/app/api/skills/[source]/[name]/route.js.nft.json +1 -1
  59. package/.next/server/app/api/skills/route.js +1 -1
  60. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  61. package/.next/server/app/api/thursday/call/route.js +8 -8
  62. package/.next/server/app/api/thursday/call/route.js.nft.json +1 -1
  63. package/.next/server/app/api/thursday/skills/route.js +8 -8
  64. package/.next/server/app/api/thursday/skills/route.js.nft.json +1 -1
  65. package/.next/server/app/api/thursday/tool-call/route.js +11 -12
  66. package/.next/server/app/api/thursday/tool-call/route.js.nft.json +1 -1
  67. package/.next/server/app/api/workspace/route.js +1 -1
  68. package/.next/server/app/api/workspace/route.js.nft.json +1 -1
  69. package/.next/server/app/artifact/[...path]/page/server-reference-manifest.json +1 -1
  70. package/.next/server/app/artifact/[...path]/page.js +3 -3
  71. package/.next/server/app/artifact/[...path]/page.js.nft.json +1 -1
  72. package/.next/server/app/artifact/[...path]/page_client-reference-manifest.js +1 -1
  73. package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  74. package/.next/server/app/page/server-reference-manifest.json +63 -41
  75. package/.next/server/app/page.js +7 -7
  76. package/.next/server/app/page.js.nft.json +1 -1
  77. package/.next/server/app/page_client-reference-manifest.js +1 -1
  78. package/.next/server/app-paths-manifest.json +1 -0
  79. package/.next/server/chunks/0d-b_next_dist_server_app-render_after-task-async-storage_external_0-exn7p.js +3 -0
  80. package/.next/server/chunks/{[root-of-the-server]__0t_dqaj._.js → [root-of-the-server]__0-npkh_._.js} +1 -1
  81. package/.next/server/chunks/[root-of-the-server]__005var5._.js +3 -0
  82. package/.next/server/chunks/[root-of-the-server]__019dx9f._.js +2 -2
  83. package/.next/server/chunks/[root-of-the-server]__02va5wz._.js +3 -0
  84. package/.next/server/chunks/{[root-of-the-server]__1mzp_el._.js → [root-of-the-server]__04_8spk._.js} +2 -2
  85. package/.next/server/chunks/[root-of-the-server]__06t77t4._.js +1 -1
  86. package/.next/server/chunks/[root-of-the-server]__0bed6hu._.js +4 -4
  87. package/.next/server/chunks/[root-of-the-server]__0cro2dz._.js +5 -0
  88. package/.next/server/chunks/[root-of-the-server]__0emr6go._.js +3 -0
  89. package/.next/server/chunks/[root-of-the-server]__0le4d-p._.js +1 -1
  90. package/.next/server/chunks/[root-of-the-server]__0m8ywyo._.js +5 -5
  91. package/.next/server/chunks/{[root-of-the-server]__113fqg5._.js → [root-of-the-server]__0p32jfz._.js} +3 -3
  92. package/.next/server/chunks/[root-of-the-server]__0phdgco._.js +4 -4
  93. package/.next/server/chunks/[root-of-the-server]__0wvgrsl._.js +1 -1
  94. package/.next/server/chunks/[root-of-the-server]__11j52t0._.js +5 -0
  95. package/.next/server/chunks/{[root-of-the-server]__0j_n5l3._.js → [root-of-the-server]__1692zrv._.js} +2 -2
  96. package/.next/server/chunks/[root-of-the-server]__16thabu._.js +1 -1
  97. package/.next/server/chunks/[root-of-the-server]__173nhwf._.js +3 -3
  98. package/.next/server/chunks/[root-of-the-server]__1bn73ih._.js +10 -0
  99. package/.next/server/chunks/[root-of-the-server]__1bqhuh9._.js +4 -4
  100. package/.next/server/chunks/[root-of-the-server]__1ccon1w._.js +10 -0
  101. package/.next/server/chunks/[root-of-the-server]__1cqizfq._.js +1 -1
  102. package/.next/server/chunks/{[root-of-the-server]__1u_qvc7._.js → [root-of-the-server]__1fboj2j._.js} +2 -2
  103. package/.next/server/chunks/{[root-of-the-server]__1dow0bz._.js → [root-of-the-server]__1oli73c._.js} +2 -2
  104. package/.next/server/chunks/[root-of-the-server]__1txedx6._.js +4 -4
  105. package/.next/server/chunks/[root-of-the-server]__1untqv8._.js +5 -0
  106. package/.next/server/chunks/_0-73of8._.js +55 -0
  107. package/.next/server/chunks/{_2050gwn._.js → _00_584r._.js} +66 -28
  108. package/.next/server/chunks/{_0y8is-s._.js → _03a0897._.js} +1 -1
  109. package/.next/server/chunks/_05h2cii._.js +1 -1
  110. package/.next/server/chunks/_06mxlgn._.js +1 -1
  111. package/.next/server/chunks/_0a351g7._.js +1 -1
  112. package/.next/server/chunks/{_0hin38_._.js → _0khihjk._.js} +5 -5
  113. package/.next/server/chunks/_0kjjmag._.js +1 -1
  114. package/.next/server/chunks/{_1t8fv7b._.js → _0n74zsf._.js} +5 -5
  115. package/.next/server/chunks/_0nn99o2._.js +3 -0
  116. package/.next/server/chunks/_0pppbb5._.js +10 -6
  117. package/.next/server/chunks/{_1icgbi8._.js → _0rnf-6n._.js} +5 -5
  118. package/.next/server/chunks/_0u10wmw._.js +55 -0
  119. package/.next/server/chunks/{_0kl37zl._.js → _0vnutv9._.js} +1 -1
  120. package/.next/server/chunks/_0wp4le3._.js +1 -1
  121. package/.next/server/chunks/_0y5fg-x._.js +1 -1
  122. package/.next/server/chunks/_106co2o._.js +3 -0
  123. package/.next/server/chunks/_12bbv5i._.js +10 -6
  124. package/.next/server/chunks/_15hq89o._.js +1 -1
  125. package/.next/server/chunks/_15q1pig._.js +1 -1
  126. package/.next/server/chunks/_18-1wcc._.js +55 -0
  127. package/.next/server/chunks/_19wg5yn._.js +138 -0
  128. package/.next/server/chunks/_1_5mnq4._.js +18 -0
  129. package/.next/server/chunks/_1bt95p9._.js +55 -0
  130. package/.next/server/chunks/_1cbk7ms._.js +9 -9
  131. package/.next/server/chunks/_1drgfx4._.js +18 -0
  132. package/.next/server/chunks/_1drv2et._.js +10 -6
  133. package/.next/server/chunks/{_10qam6o._.js → _1e48czp._.js} +5 -5
  134. package/.next/server/chunks/{_1skgy7b._.js → _1kg70wc._.js} +5 -5
  135. package/.next/server/chunks/_1php4eq._.js +1 -1
  136. package/.next/server/chunks/_1rysr-r._.js +10 -0
  137. package/.next/server/chunks/_1u3rwbr._.js +3 -0
  138. package/.next/server/chunks/_1x7p319._.js +1 -1
  139. package/.next/server/chunks/_1yuv4vp._.js +1 -1
  140. package/.next/server/chunks/_next-internal_server_app_api_bot_notes_route_actions_0qcsyu7.js +3 -0
  141. package/.next/server/chunks/config_ts_1g4sz5o._.js +1 -1
  142. package/.next/server/chunks/features_bot_task_query_ts_11xuzl3._.js +1 -1
  143. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0228f43._.js → node_modules_consola_dist_chunks_prompt_mjs_02s3hjt._.js} +1 -1
  144. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0ir-vo2._.js → node_modules_consola_dist_chunks_prompt_mjs_06067w6._.js} +1 -1
  145. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0otw8ef._.js → node_modules_consola_dist_chunks_prompt_mjs_096ais_._.js} +1 -1
  146. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0tf290y._.js → node_modules_consola_dist_chunks_prompt_mjs_0a1rd09._.js} +1 -1
  147. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0gzvgfv._.js +3 -0
  148. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0j61-ma._.js +3 -0
  149. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0tvkfgh._.js +3 -0
  150. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_11zjo-1._.js +3 -0
  151. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1pycqsq._.js +3 -0
  152. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1tpvamf._.js +3 -0
  153. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1y9-wcr._.js +3 -0
  154. package/.next/server/chunks/ssr/[externals]__0dizgek._.js +3 -0
  155. package/.next/server/chunks/ssr/[root-of-the-server]__0f6s48x._.js +1 -1
  156. package/.next/server/chunks/ssr/[root-of-the-server]__0m1b5ky._.js +3 -0
  157. package/.next/server/chunks/ssr/{[root-of-the-server]__0dfwvr4._.js → [root-of-the-server]__0un-erv._.js} +2 -2
  158. package/.next/server/chunks/ssr/[root-of-the-server]__1-mnhyd._.js +5 -3
  159. package/.next/server/chunks/ssr/[root-of-the-server]__1bww500._.js +3 -0
  160. package/.next/server/chunks/ssr/[root-of-the-server]__1mzi-ju._.js +1 -1
  161. package/.next/server/chunks/ssr/[root-of-the-server]__1qfqvmg._.js +3 -0
  162. package/.next/server/chunks/ssr/[root-of-the-server]__1vcdast._.js +3 -0
  163. package/.next/server/chunks/ssr/[root-of-the-server]__1xwnu-h._.js +3 -0
  164. package/.next/server/chunks/ssr/_03webdr._.js +3 -0
  165. package/.next/server/chunks/ssr/{_0gd4vaa._.js → _040sk32._.js} +71 -29
  166. package/.next/server/chunks/ssr/_077-g6s._.js +1 -1
  167. package/.next/server/chunks/ssr/{_1r2_qk-._.js → _09ja_w1._.js} +2 -2
  168. package/.next/server/chunks/ssr/{_1dnxp2k._.js → _0f_b_9s._.js} +2 -2
  169. package/.next/server/chunks/ssr/_0h7zdni._.js +1 -1
  170. package/.next/server/chunks/ssr/_0lu1n_x._.js +3 -0
  171. package/.next/server/chunks/ssr/_0sf1isi._.js +1 -1
  172. package/.next/server/chunks/ssr/_0su6_08._.js +3 -0
  173. package/.next/server/chunks/ssr/_0w5bgak._.js +3 -0
  174. package/.next/server/chunks/ssr/{_1hkvsg0._.js → _0x_nu5e._.js} +2 -2
  175. package/.next/server/chunks/ssr/_1-teee5._.js +3 -3
  176. package/.next/server/chunks/ssr/_13punpm._.js +1 -1
  177. package/.next/server/chunks/ssr/{_0ay6b01._.js → _1ciyoo3._.js} +2 -2
  178. package/.next/server/chunks/ssr/_1e-dgz0._.js +1 -1
  179. package/.next/server/chunks/ssr/_1fq7zgb._.js +1 -1
  180. package/.next/server/chunks/ssr/{_0cvjbuz._.js → _1g6l4uj._.js} +2 -2
  181. package/.next/server/chunks/ssr/{_1b3yex3._.js → _1lip4th._.js} +2 -2
  182. package/.next/server/chunks/ssr/_1m3bsfr._.js +3 -0
  183. package/.next/server/chunks/ssr/_1mznrxk._.js +1 -1
  184. package/.next/server/chunks/ssr/_1ruzehw._.js +3 -0
  185. package/.next/server/chunks/ssr/_1vyd1ji._.js +3 -0
  186. package/.next/server/chunks/ssr/features_bot_components_bot-setting_tsx_01ajft6._.js +2 -2
  187. package/.next/server/chunks/ssr/features_config_components_14jqgy4._.js +1 -1
  188. package/.next/server/chunks/ssr/features_config_components_config-setting_tsx_0xfwqdg._.js +1 -1
  189. package/.next/server/chunks/ssr/features_connectors_components_mcp-setting_tsx_0jmbgvp._.js +1 -1
  190. package/.next/server/chunks/ssr/features_memory_components_memory-setting_tsx_0oa43sw._.js +1 -1
  191. package/.next/server/chunks/ssr/lib_realtime_12wg_dd._.js +27 -0
  192. package/.next/server/chunks/ssr/lib_realtime_15h_v1v._.js +27 -0
  193. package/.next/server/chunks/ssr/{node_modules_0i37h34._.js → node_modules_004qlr4._.js} +1 -1
  194. package/.next/server/chunks/ssr/{node_modules_0nh2m35._.js → node_modules_01qnv-a._.js} +1 -1
  195. package/.next/server/chunks/ssr/{node_modules_1kj6swe._.js → node_modules_04n7mjs._.js} +1 -1
  196. package/.next/server/chunks/ssr/{node_modules_0eqdzva._.js → node_modules_08d8bke._.js} +1 -1
  197. package/.next/server/chunks/ssr/{node_modules_0nq_p-o._.js → node_modules_09xhur7._.js} +1 -1
  198. package/.next/server/chunks/ssr/{node_modules_1854ebs._.js → node_modules_0_n241r._.js} +1 -1
  199. package/.next/server/chunks/ssr/{node_modules_00riwzq._.js → node_modules_0iz1rzd._.js} +1 -1
  200. package/.next/server/chunks/ssr/{node_modules_1wsx1pg._.js → node_modules_0kl7-tn._.js} +1 -1
  201. package/.next/server/chunks/ssr/{node_modules_17ls31t._.js → node_modules_0kxz4gt._.js} +1 -1
  202. package/.next/server/chunks/ssr/{node_modules_1fsvm8f._.js → node_modules_0lrjk5t._.js} +1 -1
  203. package/.next/server/chunks/ssr/{node_modules_1euv75v._.js → node_modules_0m93zeg._.js} +1 -1
  204. package/.next/server/chunks/ssr/{node_modules_1_w_b81._.js → node_modules_0n1kj4p._.js} +1 -1
  205. package/.next/server/chunks/ssr/{node_modules_1bjm3ch._.js → node_modules_0ndvxub._.js} +1 -1
  206. package/.next/server/chunks/ssr/{node_modules_03f-6up._.js → node_modules_13r44jq._.js} +1 -1
  207. package/.next/server/chunks/ssr/{node_modules_07_oxjr._.js → node_modules_17lrt3y._.js} +1 -1
  208. package/.next/server/chunks/ssr/{node_modules_1yxkq1s._.js → node_modules_18_dk7_._.js} +1 -1
  209. package/.next/server/chunks/ssr/{node_modules_012m-mo._.js → node_modules_19dp7ko._.js} +1 -1
  210. package/.next/server/chunks/ssr/{node_modules_0egn4iq._.js → node_modules_1dwguw_._.js} +1 -1
  211. package/.next/server/chunks/ssr/{node_modules_1y1m-q4._.js → node_modules_1hd-5tv._.js} +1 -1
  212. package/.next/server/chunks/ssr/{node_modules_0xe_k12._.js → node_modules_1hn8z1f._.js} +1 -1
  213. package/.next/server/chunks/ssr/{node_modules_0sbobpz._.js → node_modules_1n5ygqe._.js} +1 -1
  214. package/.next/server/chunks/ssr/{node_modules_14uxpfb._.js → node_modules_1q0p85z._.js} +1 -1
  215. package/.next/server/chunks/ssr/{node_modules_01jj5oy._.js → node_modules_1toafc-._.js} +1 -1
  216. package/.next/server/chunks/ssr/{node_modules_0ewynyi._.js → node_modules_1xyd7ov._.js} +1 -1
  217. package/.next/server/chunks/ssr/{node_modules_17c71fz._.js → node_modules_1zu988w._.js} +1 -1
  218. package/.next/server/chunks/ssr/{node_modules_1mnmhse._.js → node_modules_20yebtj._.js} +1 -1
  219. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1f5re6n._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0m9a4y0._.js} +1 -1
  220. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_216aa7f._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_13w_wy9._.js} +1 -1
  221. package/.next/server/chunks/ssr/node_modules_consola_dist_chunks_prompt_mjs_05cwqv2._.js +47 -0
  222. package/.next/server/middleware-build-manifest.js +3 -3
  223. package/.next/server/pages/404.html +1 -1
  224. package/.next/server/pages/500.html +1 -1
  225. package/.next/server/server-reference-manifest.js +1 -1
  226. package/.next/server/server-reference-manifest.json +64 -42
  227. package/.next/static/chunks/05b6nx_o3_f_n.js +1 -0
  228. package/.next/static/chunks/{1rja48de93vvx.js → 07kl352c-lvcz.js} +1 -1
  229. package/.next/static/chunks/0dmns-gi0raa4.js +1 -0
  230. package/.next/static/chunks/0oc4_xoia77dg.css +1 -0
  231. package/.next/static/chunks/0pheo8m3a-rzi.js +1 -0
  232. package/.next/static/chunks/{3yan6-5cvpk2o.js → 18vhba44l1fc9.js} +1 -1
  233. package/.next/static/chunks/19i8h2t-5evjx.js +1 -0
  234. package/.next/static/chunks/{0h7pjyewk7ky-.js → 1c5fcj473025q.js} +1 -1
  235. package/.next/static/chunks/1pi_hbmjw-f-z.js +1 -0
  236. package/.next/static/chunks/{0tydnn2kybibk.js → 1twt6k09vg4np.js} +1 -1
  237. package/.next/static/chunks/{2kl3n2d-4-7i5.js → 28gotuisldmom.js} +1 -1
  238. package/.next/static/chunks/{34eu8t79ko6lm.js → 2998p0y7k1c8z.js} +1 -1
  239. package/.next/static/chunks/2l233xfycjpd8.js +1 -0
  240. package/.next/static/chunks/2p5n7pa3c40t-.js +2 -0
  241. package/.next/static/chunks/2ru1q132af7h7.js +1 -0
  242. package/.next/static/chunks/{2ka9uwo_evj7a.js → 2t8wqycwg3y04.js} +2 -2
  243. package/.next/static/chunks/32z_ypgtchw48.js +1 -0
  244. package/.next/static/chunks/{261871a8ot1pi.js → 33pyjb3xd1iez.js} +1 -1
  245. package/.next/static/chunks/3786h5vayt80-.js +28 -0
  246. package/.next/static/chunks/3_h9txt3tq8t8.js +28 -0
  247. package/.next/static/chunks/{2qci2z603es_m.js → 3ard_noqapnw1.js} +1 -1
  248. package/.next/static/chunks/{0yn2yol46cj77.js → 3omud5xunrk1f.js} +1 -1
  249. package/.next/static/chunks/42dnrkbph9e-1.js +1 -0
  250. package/README.md +24 -1
  251. package/app/api/events/app-event.client.ts +24 -0
  252. package/app/api/events/app-event.server.ts +45 -0
  253. package/app/api/events/app-event.ts +44 -0
  254. package/app/api/llm-model/catalog/route.ts +12 -0
  255. package/app/api/llm-model/route.ts +21 -0
  256. package/app/api/query-key.ts +144 -0
  257. package/app/api/thursday/tool-call/route.ts +67 -0
  258. package/bin/thursday.mjs +50 -2
  259. package/components/ui/button-group.tsx +45 -0
  260. package/components/ui/custom-icon.tsx +259 -0
  261. package/components/ui/dropdown-menu.tsx +271 -0
  262. package/components/ui/folded-text.tsx +68 -0
  263. package/components/ui/input-group.tsx +157 -0
  264. package/components/ui/json-view.tsx +240 -0
  265. package/components/ui/shiny-text.tsx +141 -0
  266. package/components/ui/text-type.tsx +213 -0
  267. package/components/ui/theme-sync.tsx +9 -0
  268. package/database/migrations/{20260908030742_rainy_marvel_zombies → 20260909060813_optimal_sabretooth}/migration.sql +7 -0
  269. package/database/migrations/{20260908030742_rainy_marvel_zombies → 20260909060813_optimal_sabretooth}/snapshot.json +54 -1
  270. package/database/migrations/20260909063821_bitter_tenebrous/migration.sql +1 -0
  271. package/database/migrations/20260909063821_bitter_tenebrous/snapshot.json +1285 -0
  272. package/docs/how-it-works.md +59 -0
  273. package/docs/images/keeps-going.png +0 -0
  274. package/docs/images/task-thread.png +0 -0
  275. package/docs/images/two-minds.png +0 -0
  276. package/features/ai/load-tools.ts +55 -5
  277. package/features/ai/prompts/bot.prompt.ts +121 -26
  278. package/features/ai/prompts/memory-tidy.prompt.ts +7 -1
  279. package/features/ai/prompts/prompt-helper.ts +31 -5
  280. package/features/ai/prompts/thursday.prompt.ts +2 -0
  281. package/features/ai/tools/bot.tool.ts +37 -18
  282. package/features/ai/tools/mcp.tool.ts +5 -5
  283. package/features/ai/tools/memory.tool.ts +17 -10
  284. package/features/ai/tools/studio.tool.ts +5 -5
  285. package/features/ai/tools/tool-name.ts +2 -0
  286. package/features/ai/tools/workspace.tool.ts +33 -5
  287. package/features/bot/bot.action.ts +31 -4
  288. package/features/bot/bot.notes.ts +120 -0
  289. package/features/bot/bot.query.ts +56 -1
  290. package/features/bot/bot.run.ts +43 -3
  291. package/features/bot/bot.runner.ts +94 -20
  292. package/features/bot/bot.schema.ts +17 -0
  293. package/features/bot/components/bot-room.tsx +405 -306
  294. package/features/bot/components/bot-setting.tsx +123 -20
  295. package/features/bot/task.query.ts +18 -5
  296. package/features/memory/components/memory-setting.tsx +11 -2
  297. package/features/memory/memory.query.ts +9 -2
  298. package/features/memory/memory.schema.ts +30 -0
  299. package/features/skills/components/skills-setting.tsx +9 -1
  300. package/features/workspace/workspace.ts +136 -3
  301. package/hooks/use-draft.ts +37 -0
  302. package/hooks/use-hotkey.ts +105 -0
  303. package/hooks/use-object-state.ts +51 -0
  304. package/hooks/use-on-visible.ts +72 -0
  305. package/hooks/use-theme.ts +106 -0
  306. package/hooks/use-wake-word.ts +262 -0
  307. package/lib/realtime/realtime.driver.ts +34 -1
  308. package/lib/realtime/realtime.protocol.ts +6 -0
  309. package/lib/sandbox.ts +9 -1
  310. package/lib/tokens.ts +19 -0
  311. package/package.json +1 -1
  312. package/.next/server/chunks/[root-of-the-server]__02kt8yn._.js +0 -10
  313. package/.next/server/chunks/[root-of-the-server]__0h59di-._.js +0 -5
  314. package/.next/server/chunks/[root-of-the-server]__0qjqtwo._.js +0 -5
  315. package/.next/server/chunks/[root-of-the-server]__0yk6s3w._.js +0 -5
  316. package/.next/server/chunks/[root-of-the-server]__0z3gelv._.js +0 -3
  317. package/.next/server/chunks/[root-of-the-server]__11w_7_3._.js +0 -3
  318. package/.next/server/chunks/[root-of-the-server]__1_0q_9w._.js +0 -3
  319. package/.next/server/chunks/[root-of-the-server]__1gmn1cs._.js +0 -10
  320. package/.next/server/chunks/_0fzqt2y._.js +0 -100
  321. package/.next/server/chunks/_0jgm3b8._.js +0 -55
  322. package/.next/server/chunks/_0ks6_sg._.js +0 -55
  323. package/.next/server/chunks/_0tzfesa._.js +0 -3
  324. package/.next/server/chunks/_0zmestz._.js +0 -55
  325. package/.next/server/chunks/_12nr4xc._.js +0 -3
  326. package/.next/server/chunks/_1hzrsvg._.js +0 -55
  327. package/.next/server/chunks/_1uj4_io._.js +0 -10
  328. package/.next/server/chunks/_1yldgo4._.js +0 -55
  329. package/.next/server/chunks/features_0scmr4i._.js +0 -3
  330. package/.next/server/chunks/features_bot_bot_query_ts_12mgkl2._.js +0 -3
  331. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0ykklj0._.js +0 -3
  332. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1ryg3wh._.js +0 -3
  333. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1vwbnq_._.js +0 -3
  334. package/.next/server/chunks/ssr/[root-of-the-server]__0b-0i32._.js +0 -3
  335. package/.next/server/chunks/ssr/[root-of-the-server]__1e-f3gy._.js +0 -3
  336. package/.next/server/chunks/ssr/[root-of-the-server]__1minz8_._.js +0 -3
  337. package/.next/server/chunks/ssr/[root-of-the-server]__1ncajna._.js +0 -3
  338. package/.next/server/chunks/ssr/_124q1la._.js +0 -3
  339. package/.next/server/chunks/ssr/_19eoufz._.js +0 -3
  340. package/.next/server/chunks/ssr/_1aca4j8._.js +0 -3
  341. package/.next/server/chunks/ssr/_1cb_5sv._.js +0 -3
  342. package/.next/server/chunks/ssr/_1m5popy._.js +0 -3
  343. package/.next/server/chunks/ssr/lib_realtime_0aetuyp._.js +0 -24
  344. package/.next/server/chunks/ssr/lib_realtime_18k_aj-._.js +0 -24
  345. package/.next/server/chunks/ssr/node_modules_zod_v4_classic_errors_05xv7vp.js +0 -3
  346. package/.next/static/chunks/0_6qjj4f3t3j-.js +0 -1
  347. package/.next/static/chunks/0g2n0xskvyk04.js +0 -2
  348. package/.next/static/chunks/14s7e14xltx47.js +0 -1
  349. package/.next/static/chunks/1lpdcqos7mkek.js +0 -1
  350. package/.next/static/chunks/1u5d-pvhwir9g.js +0 -1
  351. package/.next/static/chunks/2cgzsjzheo2m2.js +0 -1
  352. package/.next/static/chunks/2cwjgkt_hoyhj.js +0 -22
  353. package/.next/static/chunks/2rbf1fpd8n80-.js +0 -22
  354. package/.next/static/chunks/2ukj8k69y89um.js +0 -1
  355. package/.next/static/chunks/2v_vqhmdl8de_.js +0 -1
  356. package/.next/static/chunks/35uo6rtl_otbd.js +0 -1
  357. package/.next/static/chunks/388-t2v72jh39.css +0 -1
  358. package/.next/static/chunks/3w7-y53xzl2ir.js +0 -1
  359. /package/.next/static/{G-9_HnysmzY_Bx9GpDYAO → YR4NWcDDuzwLbTTU7U7Vr}/_buildManifest.js +0 -0
  360. /package/.next/static/{G-9_HnysmzY_Bx9GpDYAO → YR4NWcDDuzwLbTTU7U7Vr}/_clientMiddlewareManifest.js +0 -0
  361. /package/.next/static/{G-9_HnysmzY_Bx9GpDYAO → YR4NWcDDuzwLbTTU7U7Vr}/_ssgManifest.js +0 -0
@@ -1,24 +0,0 @@
1
- module.exports=[228722,a=>{"use strict";let b={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0};async function c(a){let c=await navigator.mediaDevices.getUserMedia({audio:b}),g=new AudioContext({sampleRate:24e3});try{var h,i,j;await g.audioWorklet.addModule(f??=URL.createObjectURL(new Blob([e],{type:"application/javascript"})));let b=g.createMediaStreamSource(c),k=new AudioWorkletNode(g,d);k.port.onmessage=b=>{let c=b.data,d=new Int16Array(c.length);for(let a=0;a<c.length;a++){let b=Math.max(-1,Math.min(1,c[a]));d[a]=b<0?32768*b:32767*b}a(d)},b.connect(k);let l=g.createGain();return l.gain.value=0,k.connect(l).connect(g.destination),await g.resume(),h=c,i=g,j=k,{stream:h,setMuted(a){for(let b of h.getAudioTracks())b.enabled=!a},close(){for(let a of(j.port.onmessage=null,h.getTracks()))a.stop();i.close()}}}catch(a){for(let a of c.getTracks())a.stop();throw g.close(),a}}let d="voice-capture",e=`
2
- class VoiceCapture extends AudioWorkletProcessor {
3
- constructor() {
4
- super();
5
- this.frame = new Float32Array(1024);
6
- this.filled = 0;
7
- }
8
- process(inputs) {
9
- const input = inputs[0] && inputs[0][0];
10
- if (!input) return true;
11
- for (let i = 0; i < input.length; i++) {
12
- this.frame[this.filled++] = input[i];
13
- if (this.filled === this.frame.length) {
14
- this.port.postMessage(this.frame.slice());
15
- this.filled = 0;
16
- }
17
- }
18
- return true;
19
- }
20
- }
21
- registerProcessor("${d}", VoiceCapture);
22
- `,f=null;a.s(["MICROPHONE_CONSTRAINTS",0,b,"PCM_SAMPLE_RATE",0,24e3,"createPcmPlayer",0,function(a,b){let{context:c,analyser:d}=a.speaker(),e=0,f=new Set;return{push(a){if(0===a.length)return;let g=c.createBuffer(1,a.length,24e3),h=g.getChannelData(0);for(let b=0;b<a.length;b++)h[b]=a[b]/32768;let i=c.createBufferSource();i.buffer=g,i.connect(d),i.onended=()=>{f.delete(i),0===f.size&&b()},e=Math.max(e,c.currentTime+.06),i.start(e),e+=g.duration,f.add(i)},stop(){for(let a of f){a.onended=null;try{a.stop()}catch{}}f.clear(),e=0},get speaking(){return f.size>0}}},"decodePcm",0,function(a){let b=atob(a),c=new Uint8Array(b.length);for(let a=0;a<b.length;a++)c[a]=b.charCodeAt(a);return new Int16Array(c.buffer,0,c.length>>1)},"encodePcm",0,function(a){let b=new Uint8Array(a.buffer,a.byteOffset,a.byteLength),c="";for(let a=0;a<b.length;a+=32768)c+=String.fromCharCode(...b.subarray(a,a+32768));return btoa(c)},"openMicrophone",0,c])},730983,a=>{"use strict";var b=a.i(497895);a.s(["realtimeSession",0,function(a){return({credential:c,setup:d,audio:e,on:f})=>{let g=!1,h=null,i=null,j=[],k=new Map,l=new Set,m=(a,b)=>{k.has(a)||(k.set(a,j.length),j.push({id:a,role:b,text:""}))},n=(a,b)=>{let c=j[a];c.text.trim()&&f.turn({...c,seq:a,done:b})},o=(a,b,c,d)=>{m(a,b);let e=k.get(a),f=j[e].text,g="append"===d?f+c:c;g!==f&&(j[e]={...j[e],text:g},l.has(a)||n(e,!1))},p=a=>{let b=k.get(a);void 0===b||l.has(a)||j[b].text.trim()&&(l.add(a),n(b,!0))},q=!1,r=!1,s=!1,t=!1,u=null,v=null,w=new Map,x=0,y=!1,z=[],A=[],B="",C=()=>{u&&clearTimeout(u),u=null},D=()=>{v&&clearTimeout(v),v=null},E=()=>{if(g)return;let a=w.size>0||y||x>0,b={speaking:q,hearing:r,tools:a?z:[]},c=JSON.stringify(b);if(c!==B&&(B=c,f.activity(b)),r||s||u||q||w.size>0)return;let d=x>0;if(d||0!==A.length){for(let a of A.splice(0))F.send({type:"conversation.item.create",item:{type:"message",role:"system",content:[{type:"input_text",text:a}]}});x=0,y=d,s=!0,t=!0,D(),v=setTimeout(()=>{v=null,t&&(t=!1,s=!1,f.warn("The voice API never answered a response we asked for."),E())},5e3),F.send({type:"response.create"})}},F=a.transport({credential:c,setup:d,audio:e,on:{event:a=>{switch(a.type){case"session.updated":h?.resolve();break;case"error":{let b=a.error?.message??"The voice API reported an error";t&&(t=!1,s=!1,D()),h?h.reject(Error(b)):f.warn(b);break}case"input_audio_buffer.speech_started":r=!0,C();break;case"input_audio_buffer.speech_stopped":r=!1,C(),u=setTimeout(()=>{u=null,E()},1500);break;case"input_audio_buffer.committed":m(a.item_id,"user");break;case"conversation.item.added":case"conversation.item.created":"message"===a.item.type&&"system"!==a.item.role&&m(a.item.id,a.item.role);break;case"response.output_item.added":"message"===a.item.type?m(a.item.id,"assistant"):"function_call"===a.item.type&&m(a.item.id,"tool");break;case"conversation.item.input_audio_transcription.delta":o(a.item_id,"user",a.delta??"","append");break;case"conversation.item.input_audio_transcription.updated":o(a.item_id,"user",a.transcript,"replace");break;case"conversation.item.input_audio_transcription.completed":o(a.item_id,"user",a.transcript??"","replace"),p(a.item_id);break;case"response.output_audio_transcript.delta":o(a.item_id,"assistant",a.delta,"append");break;case"response.output_audio_transcript.done":a.transcript&&o(a.item_id,"assistant",a.transcript,"replace"),p(a.item_id);break;case"response.created":s=!0,t=!1,D(),C();break;case"response.done":var c;for(let b of(s=!1,y=!1,"failed"===a.response.status&&f.warn((c=a.response,c.status_details?.error?.message??"The model could not finish answering")),a.response.output??[]))"message"===b.type&&p(b.id);for(let[a,b]of j.entries())"user"!==b.role||l.has(b.id)||n(a,!0);break;case"response.function_call_arguments.done":m(a.item_id,"tool");{let b=k.get(a.item_id);j[b]={...j[b],tool:a.name,text:a.arguments||"{}"}}p(a.item_id),0!==w.size||y||(z=[]),z=[...z,a.name],w.set(a.call_id,a.name),f.runTool({id:a.call_id,name:a.name,arguments:a.arguments}).catch(a=>`Error: ${(0,b.errorToString)(a)}`).then(b=>{g||(F.send({type:"conversation.item.create",item:{type:"function_call_output",call_id:a.call_id,output:b}}),w.delete(a.call_id),x+=1,E())})}E()},playing:a=>{q=a,a&&(y=!1),E()},dropped:a=>{h?h.reject(Error(a)):f.failed(a)}}});return{async connect(){if(await F.connect(),g)throw Error("Hung up before the session opened.");F.send(a.sessionUpdate(d)),await new Promise((a,b)=>{h={resolve:a,reject:b},i=setTimeout(a,5e3)}).finally(()=>{h=null,i&&clearTimeout(i),i=null})},close(){for(let a of j)p(a.id);g=!0,C(),D(),h?.reject(Error("Hung up before the session opened.")),F.close()},mute:a=>F.mute(a),say(a){g||(A.push(a),E())}}}},"toFunctionTools",0,a=>a.map(({name:a,description:b,parameters:c})=>({type:"function",name:a,description:b,parameters:c}))])},100031,a=>{"use strict";var b=a.i(228722);async function c(a,b){let c=await a.text().catch(()=>"");try{let a=JSON.parse(c)?.error?.message;if("string"==typeof a&&a)return a}catch{}return`${b} refused the call (${a.status})`}a.s(["createSocketTransport",0,function({url:a,protocols:c,label:d,audio:e,on:f}){let g=null,h=null,i=null,j=!1,k=!1,l=!1,m=!1,n=null,o=a=>{m!==a&&(m=a,f.playing(a))},p=a=>{g?.readyState===WebSocket.OPEN&&g.send(JSON.stringify(a))};return{async connect(){i=(0,b.createPcmPlayer)(e,()=>{n=null,o(!1)});let m=new Promise((b,e)=>{let h=new WebSocket(a,c);g=h,h.onopen=()=>{l=!0,b(h)};let i=a=>l?void(!j&&!k&&(k=!0,f.dropped(a))):e(Error(a));h.onerror=()=>i(`Could not reach ${d}`),h.onclose=a=>i(a.reason||`The connection to ${d} closed (${a.code})`)}),q=(0,b.openMicrophone)(a=>p({type:"input_audio_buffer.append",audio:(0,b.encodePcm)(a)})).then(a=>{j?a.close():(h=a,e.hear?.(a.stream))},a=>{throw Error(a instanceof Error?`Microphone unavailable — ${a.message}`:"Microphone unavailable")}),[r]=await Promise.all([m,q]);if(j)throw Error("Hung up before the call opened.");r.onmessage=a=>{let c;if("string"==typeof a.data){try{c=JSON.parse(a.data)}catch{return}var d=c;switch(d.type){case"response.output_audio.delta":{if(!i||!d.delta)break;let a=(0,b.decodePcm)(d.delta);n?.itemId!==d.item_id&&(n={itemId:d.item_id,contentIndex:d.content_index??0,startedAt:performance.now(),receivedMs:0}),n.receivedMs+=a.length/b.PCM_SAMPLE_RATE*1e3,i.push(a),o(!0);break}case"input_audio_buffer.speech_started":(()=>{if(!i?.speaking||!n)return;let a=Math.min(n.receivedMs,performance.now()-n.startedAt);p({type:"conversation.item.truncate",item_id:n.itemId,content_index:n.contentIndex,audio_end_ms:Math.max(0,Math.floor(a))}),i.stop(),n=null,o(!1)})()}f.event(d)}}},send:p,close:()=>{j=!0,i?.stop(),i=null,h?.close(),h=null;let a=g;g=null,a?.close()},mute(a){h?.setMuted(a)}}},"createWebRtcTransport",0,function({url:a,secret:d,label:e,audio:f,on:g}){let h=null,i=null,j=null,k=!1,l=!1,m=!1,n=!1,o=a=>{n!==a&&(n=a,g.playing(a))},p=a=>{for(let b of a?.getTracks()??[])b.stop()};return{async connect(){let n=new RTCPeerConnection;h=n;let q=n.createDataChannel("oai-events");i=q;let r=new Promise((a,b)=>{let c=a=>l?void(!k&&!m&&(m=!0,g.dropped(a))):b(Error(a));q.onopen=()=>{l=!0,a()},q.onclose=()=>c(`The connection to ${e} closed`),q.onerror=()=>c(`The connection to ${e} dropped`),n.onconnectionstatechange=()=>{let a=n.connectionState;("failed"===a||"closed"===a)&&c(`Could not reach ${e}`)}});q.onmessage=a=>{let b;if("string"==typeof a.data){try{b=JSON.parse(a.data)}catch{return}switch(b.type){case"output_audio_buffer.started":o(!0);break;case"output_audio_buffer.stopped":case"output_audio_buffer.cleared":o(!1)}g.event(b)}},n.ontrack=a=>{let[b]=a.streams;f.element.srcObject=b,f.listen(b)};let s=await navigator.mediaDevices.getUserMedia({audio:b.MICROPHONE_CONSTRAINTS});if(k)throw p(s),Error("Hung up before the call opened.");j=s,f.hear?.(s),n.addTrack(s.getAudioTracks()[0],s);let t=await n.createOffer();await n.setLocalDescription(t);let u=await fetch(a,{method:"POST",body:t.sdp,headers:{"Content-Type":"application/sdp",Authorization:`Bearer ${d}`}});if(!u.ok)throw Error(await c(u,e));await n.setRemoteDescription({type:"answer",sdp:await u.text()}),await r},send(a){i?.readyState==="open"&&i.send(JSON.stringify(a))},close:()=>{k=!0,p(j),j=null,i?.close(),i=null,h?.close(),h=null,f.element.srcObject=null},mute(a){for(let b of j?.getAudioTracks()??[])b.enabled=!a}}}])},26378,a=>{"use strict";var b=a.i(228722),c=a.i(730983),d=a.i(100031);let e=(0,c.realtimeSession)({transport:({credential:a,setup:b,audio:c,on:e})=>(0,d.createSocketTransport)({url:`wss://api.x.ai/v1/realtime?model=${encodeURIComponent(b.model)}`,protocols:[`xai-client-secret.${a.value}`],label:"Grok",audio:c,on:e}),sessionUpdate:a=>({type:"session.update",session:{model:a.model,instructions:a.instructions,voice:a.voice,turn_detection:{type:"server_vad"},audio:{input:{format:{type:"audio/pcm",rate:b.PCM_SAMPLE_RATE},transcription:{model:"grok-transcribe"}},output:{format:{type:"audio/pcm",rate:b.PCM_SAMPLE_RATE}}},tools:(0,c.toFunctionTools)(a.tools)}})});a.s(["createXaiSession",0,e])}];
23
-
24
- //# sourceMappingURL=lib_realtime_0aetuyp._.js.map
@@ -1,24 +0,0 @@
1
- module.exports=[707196,a=>{"use strict";var b=a.i(730983),c=a.i(100031);let d=(0,b.realtimeSession)({transport:({credential:a,audio:b,on:d})=>(0,c.createWebRtcTransport)({url:"https://api.openai.com/v1/realtime/calls",secret:a.value,label:"OpenAI",audio:b,on:d}),sessionUpdate:a=>({type:"session.update",session:{type:"realtime",model:a.model,instructions:a.instructions,audio:{input:{transcription:{model:"gpt-4o-mini-transcribe"}},output:{voice:a.voice}},tools:(0,b.toFunctionTools)(a.tools)}})});a.s(["createOpenAiSession",0,d])},228722,a=>{"use strict";let b={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0};async function c(a){let c=await navigator.mediaDevices.getUserMedia({audio:b}),g=new AudioContext({sampleRate:24e3});try{var h,i,j;await g.audioWorklet.addModule(f??=URL.createObjectURL(new Blob([e],{type:"application/javascript"})));let b=g.createMediaStreamSource(c),k=new AudioWorkletNode(g,d);k.port.onmessage=b=>{let c=b.data,d=new Int16Array(c.length);for(let a=0;a<c.length;a++){let b=Math.max(-1,Math.min(1,c[a]));d[a]=b<0?32768*b:32767*b}a(d)},b.connect(k);let l=g.createGain();return l.gain.value=0,k.connect(l).connect(g.destination),await g.resume(),h=c,i=g,j=k,{stream:h,setMuted(a){for(let b of h.getAudioTracks())b.enabled=!a},close(){for(let a of(j.port.onmessage=null,h.getTracks()))a.stop();i.close()}}}catch(a){for(let a of c.getTracks())a.stop();throw g.close(),a}}let d="voice-capture",e=`
2
- class VoiceCapture extends AudioWorkletProcessor {
3
- constructor() {
4
- super();
5
- this.frame = new Float32Array(1024);
6
- this.filled = 0;
7
- }
8
- process(inputs) {
9
- const input = inputs[0] && inputs[0][0];
10
- if (!input) return true;
11
- for (let i = 0; i < input.length; i++) {
12
- this.frame[this.filled++] = input[i];
13
- if (this.filled === this.frame.length) {
14
- this.port.postMessage(this.frame.slice());
15
- this.filled = 0;
16
- }
17
- }
18
- return true;
19
- }
20
- }
21
- registerProcessor("${d}", VoiceCapture);
22
- `,f=null;a.s(["MICROPHONE_CONSTRAINTS",0,b,"PCM_SAMPLE_RATE",0,24e3,"createPcmPlayer",0,function(a,b){let{context:c,analyser:d}=a.speaker(),e=0,f=new Set;return{push(a){if(0===a.length)return;let g=c.createBuffer(1,a.length,24e3),h=g.getChannelData(0);for(let b=0;b<a.length;b++)h[b]=a[b]/32768;let i=c.createBufferSource();i.buffer=g,i.connect(d),i.onended=()=>{f.delete(i),0===f.size&&b()},e=Math.max(e,c.currentTime+.06),i.start(e),e+=g.duration,f.add(i)},stop(){for(let a of f){a.onended=null;try{a.stop()}catch{}}f.clear(),e=0},get speaking(){return f.size>0}}},"decodePcm",0,function(a){let b=atob(a),c=new Uint8Array(b.length);for(let a=0;a<b.length;a++)c[a]=b.charCodeAt(a);return new Int16Array(c.buffer,0,c.length>>1)},"encodePcm",0,function(a){let b=new Uint8Array(a.buffer,a.byteOffset,a.byteLength),c="";for(let a=0;a<b.length;a+=32768)c+=String.fromCharCode(...b.subarray(a,a+32768));return btoa(c)},"openMicrophone",0,c])},730983,a=>{"use strict";var b=a.i(497895);a.s(["realtimeSession",0,function(a){return({credential:c,setup:d,audio:e,on:f})=>{let g=!1,h=null,i=null,j=[],k=new Map,l=new Set,m=(a,b)=>{k.has(a)||(k.set(a,j.length),j.push({id:a,role:b,text:""}))},n=(a,b)=>{let c=j[a];c.text.trim()&&f.turn({...c,seq:a,done:b})},o=(a,b,c,d)=>{m(a,b);let e=k.get(a),f=j[e].text,g="append"===d?f+c:c;g!==f&&(j[e]={...j[e],text:g},l.has(a)||n(e,!1))},p=a=>{let b=k.get(a);void 0===b||l.has(a)||j[b].text.trim()&&(l.add(a),n(b,!0))},q=!1,r=!1,s=!1,t=!1,u=null,v=null,w=new Map,x=0,y=!1,z=[],A=[],B="",C=()=>{u&&clearTimeout(u),u=null},D=()=>{v&&clearTimeout(v),v=null},E=()=>{if(g)return;let a=w.size>0||y||x>0,b={speaking:q,hearing:r,tools:a?z:[]},c=JSON.stringify(b);if(c!==B&&(B=c,f.activity(b)),r||s||u||q||w.size>0)return;let d=x>0;if(d||0!==A.length){for(let a of A.splice(0))F.send({type:"conversation.item.create",item:{type:"message",role:"system",content:[{type:"input_text",text:a}]}});x=0,y=d,s=!0,t=!0,D(),v=setTimeout(()=>{v=null,t&&(t=!1,s=!1,f.warn("The voice API never answered a response we asked for."),E())},5e3),F.send({type:"response.create"})}},F=a.transport({credential:c,setup:d,audio:e,on:{event:a=>{switch(a.type){case"session.updated":h?.resolve();break;case"error":{let b=a.error?.message??"The voice API reported an error";t&&(t=!1,s=!1,D()),h?h.reject(Error(b)):f.warn(b);break}case"input_audio_buffer.speech_started":r=!0,C();break;case"input_audio_buffer.speech_stopped":r=!1,C(),u=setTimeout(()=>{u=null,E()},1500);break;case"input_audio_buffer.committed":m(a.item_id,"user");break;case"conversation.item.added":case"conversation.item.created":"message"===a.item.type&&"system"!==a.item.role&&m(a.item.id,a.item.role);break;case"response.output_item.added":"message"===a.item.type?m(a.item.id,"assistant"):"function_call"===a.item.type&&m(a.item.id,"tool");break;case"conversation.item.input_audio_transcription.delta":o(a.item_id,"user",a.delta??"","append");break;case"conversation.item.input_audio_transcription.updated":o(a.item_id,"user",a.transcript,"replace");break;case"conversation.item.input_audio_transcription.completed":o(a.item_id,"user",a.transcript??"","replace"),p(a.item_id);break;case"response.output_audio_transcript.delta":o(a.item_id,"assistant",a.delta,"append");break;case"response.output_audio_transcript.done":a.transcript&&o(a.item_id,"assistant",a.transcript,"replace"),p(a.item_id);break;case"response.created":s=!0,t=!1,D(),C();break;case"response.done":var c;for(let b of(s=!1,y=!1,"failed"===a.response.status&&f.warn((c=a.response,c.status_details?.error?.message??"The model could not finish answering")),a.response.output??[]))"message"===b.type&&p(b.id);for(let[a,b]of j.entries())"user"!==b.role||l.has(b.id)||n(a,!0);break;case"response.function_call_arguments.done":m(a.item_id,"tool");{let b=k.get(a.item_id);j[b]={...j[b],tool:a.name,text:a.arguments||"{}"}}p(a.item_id),0!==w.size||y||(z=[]),z=[...z,a.name],w.set(a.call_id,a.name),f.runTool({id:a.call_id,name:a.name,arguments:a.arguments}).catch(a=>`Error: ${(0,b.errorToString)(a)}`).then(b=>{g||(F.send({type:"conversation.item.create",item:{type:"function_call_output",call_id:a.call_id,output:b}}),w.delete(a.call_id),x+=1,E())})}E()},playing:a=>{q=a,a&&(y=!1),E()},dropped:a=>{h?h.reject(Error(a)):f.failed(a)}}});return{async connect(){if(await F.connect(),g)throw Error("Hung up before the session opened.");F.send(a.sessionUpdate(d)),await new Promise((a,b)=>{h={resolve:a,reject:b},i=setTimeout(a,5e3)}).finally(()=>{h=null,i&&clearTimeout(i),i=null})},close(){for(let a of j)p(a.id);g=!0,C(),D(),h?.reject(Error("Hung up before the session opened.")),F.close()},mute:a=>F.mute(a),say(a){g||(A.push(a),E())}}}},"toFunctionTools",0,a=>a.map(({name:a,description:b,parameters:c})=>({type:"function",name:a,description:b,parameters:c}))])},100031,a=>{"use strict";var b=a.i(228722);async function c(a,b){let c=await a.text().catch(()=>"");try{let a=JSON.parse(c)?.error?.message;if("string"==typeof a&&a)return a}catch{}return`${b} refused the call (${a.status})`}a.s(["createSocketTransport",0,function({url:a,protocols:c,label:d,audio:e,on:f}){let g=null,h=null,i=null,j=!1,k=!1,l=!1,m=!1,n=null,o=a=>{m!==a&&(m=a,f.playing(a))},p=a=>{g?.readyState===WebSocket.OPEN&&g.send(JSON.stringify(a))};return{async connect(){i=(0,b.createPcmPlayer)(e,()=>{n=null,o(!1)});let m=new Promise((b,e)=>{let h=new WebSocket(a,c);g=h,h.onopen=()=>{l=!0,b(h)};let i=a=>l?void(!j&&!k&&(k=!0,f.dropped(a))):e(Error(a));h.onerror=()=>i(`Could not reach ${d}`),h.onclose=a=>i(a.reason||`The connection to ${d} closed (${a.code})`)}),q=(0,b.openMicrophone)(a=>p({type:"input_audio_buffer.append",audio:(0,b.encodePcm)(a)})).then(a=>{j?a.close():(h=a,e.hear?.(a.stream))},a=>{throw Error(a instanceof Error?`Microphone unavailable — ${a.message}`:"Microphone unavailable")}),[r]=await Promise.all([m,q]);if(j)throw Error("Hung up before the call opened.");r.onmessage=a=>{let c;if("string"==typeof a.data){try{c=JSON.parse(a.data)}catch{return}var d=c;switch(d.type){case"response.output_audio.delta":{if(!i||!d.delta)break;let a=(0,b.decodePcm)(d.delta);n?.itemId!==d.item_id&&(n={itemId:d.item_id,contentIndex:d.content_index??0,startedAt:performance.now(),receivedMs:0}),n.receivedMs+=a.length/b.PCM_SAMPLE_RATE*1e3,i.push(a),o(!0);break}case"input_audio_buffer.speech_started":(()=>{if(!i?.speaking||!n)return;let a=Math.min(n.receivedMs,performance.now()-n.startedAt);p({type:"conversation.item.truncate",item_id:n.itemId,content_index:n.contentIndex,audio_end_ms:Math.max(0,Math.floor(a))}),i.stop(),n=null,o(!1)})()}f.event(d)}}},send:p,close:()=>{j=!0,i?.stop(),i=null,h?.close(),h=null;let a=g;g=null,a?.close()},mute(a){h?.setMuted(a)}}},"createWebRtcTransport",0,function({url:a,secret:d,label:e,audio:f,on:g}){let h=null,i=null,j=null,k=!1,l=!1,m=!1,n=!1,o=a=>{n!==a&&(n=a,g.playing(a))},p=a=>{for(let b of a?.getTracks()??[])b.stop()};return{async connect(){let n=new RTCPeerConnection;h=n;let q=n.createDataChannel("oai-events");i=q;let r=new Promise((a,b)=>{let c=a=>l?void(!k&&!m&&(m=!0,g.dropped(a))):b(Error(a));q.onopen=()=>{l=!0,a()},q.onclose=()=>c(`The connection to ${e} closed`),q.onerror=()=>c(`The connection to ${e} dropped`),n.onconnectionstatechange=()=>{let a=n.connectionState;("failed"===a||"closed"===a)&&c(`Could not reach ${e}`)}});q.onmessage=a=>{let b;if("string"==typeof a.data){try{b=JSON.parse(a.data)}catch{return}switch(b.type){case"output_audio_buffer.started":o(!0);break;case"output_audio_buffer.stopped":case"output_audio_buffer.cleared":o(!1)}g.event(b)}},n.ontrack=a=>{let[b]=a.streams;f.element.srcObject=b,f.listen(b)};let s=await navigator.mediaDevices.getUserMedia({audio:b.MICROPHONE_CONSTRAINTS});if(k)throw p(s),Error("Hung up before the call opened.");j=s,f.hear?.(s),n.addTrack(s.getAudioTracks()[0],s);let t=await n.createOffer();await n.setLocalDescription(t);let u=await fetch(a,{method:"POST",body:t.sdp,headers:{"Content-Type":"application/sdp",Authorization:`Bearer ${d}`}});if(!u.ok)throw Error(await c(u,e));await n.setRemoteDescription({type:"answer",sdp:await u.text()}),await r},send(a){i?.readyState==="open"&&i.send(JSON.stringify(a))},close:()=>{k=!0,p(j),j=null,i?.close(),i=null,h?.close(),h=null,f.element.srcObject=null},mute(a){for(let b of j?.getAudioTracks()??[])b.enabled=!a}}}])}];
23
-
24
- //# sourceMappingURL=lib_realtime_18k_aj-._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[975160,849660,185679,313399,a=>{"use strict";var b;let c;function d(a){return a}function e(a){return a}function f(){return a=>a}function g(a){}function h(a){throw Error("Unexpected value in exhaustive check")}function i(a){}function j(a){let b=Object.values(a).filter(a=>"number"==typeof a);return Object.entries(a).filter(([a,c])=>-1===b.indexOf(+a)).map(([a,b])=>b)}function k(a,b="|"){return a.map(a=>O(a)).join(b)}function l(a,b){return"bigint"==typeof b?b.toString():b}function m(a){return{get value(){{let b=a();return Object.defineProperty(this,"value",{value:b}),b}}}}function n(a){return null==a}function o(a){let b=+!!a.startsWith("^"),c=a.endsWith("$")?a.length-1:a.length;return a.slice(b,c)}function p(a,b){let c=a/b,d=Math.round(c),e=4*Number.EPSILON*Math.max(Math.abs(c),1);return Math.abs(c-d)<e?0:c-d}a.s(["$ZodAsyncError",()=>aF,"$ZodEncodeError",()=>aG,"$brand",()=>aE,"$constructor",()=>aD,"NEVER",()=>aA,"config",()=>aI,"globalConfig",()=>aH],185679),a.s(["BIGINT_FORMAT_RANGES",()=>R,"CONSTANT_CATCH",()=>ay,"Class",()=>aq,"NUMBER_FORMAT_RANGES",()=>Q,"aborted",()=>Z,"allowsEval",()=>D,"assert",()=>i,"assertEqual",()=>d,"assertIs",()=>g,"assertNever",()=>h,"assertNotEqual",()=>e,"assignProp",()=>t,"attachSchema",()=>ab,"base64ToUint8Array",()=>ak,"base64urlToUint8Array",()=>am,"cached",()=>m,"captureStackTrace",()=>B,"cleanEnum",()=>aj,"cleanRegex",()=>o,"clone",()=>L,"cloneDef",()=>v,"codePointLength",()=>af,"constantCatch",()=>az,"createTransparentProxy",()=>N,"defineLazy",()=>r,"defineLazyInternal",()=>aw,"esc",()=>z,"escapeRegex",()=>K,"explicitlyAborted",()=>$,"extend",()=>U,"finalizeIssue",()=>ac,"floatSafeRemainder",()=>p,"getElementAtPath",()=>w,"getEnumValues",()=>j,"getLengthableOrigin",()=>ag,"getParsedType",()=>H,"getSizableOrigin",()=>ad,"hexToUint8Array",()=>ao,"hide",()=>at,"installLazyProp",()=>ax,"isObject",()=>C,"isPlainObject",()=>E,"issue",()=>ai,"joinValues",()=>k,"jsonStringifyReplacer",()=>l,"members",()=>ar,"merge",()=>W,"mergeDefs",()=>u,"normalizeParams",()=>M,"nullish",()=>n,"numKeys",()=>G,"objectClone",()=>s,"omit",()=>T,"optionalKeys",()=>P,"own",()=>as,"parsedType",()=>ah,"partial",()=>X,"pick",()=>S,"prefixIssues",()=>_,"primitiveTypes",()=>J,"promiseAllObject",()=>x,"propertyKeyTypes",()=>I,"randomString",()=>y,"required",()=>Y,"safeExtend",()=>V,"shallowClone",()=>F,"slugify",()=>A,"stringifyPrimitive",()=>O,"toZod",()=>f,"uint8ArrayToBase64",()=>al,"uint8ArrayToBase64url",()=>an,"uint8ArrayToHex",()=>ap,"unwrapMessage",()=>aa],849660);let q=Symbol("evaluating");function r(a,b,c){let d;Object.defineProperty(a,b,{get(){if(d!==q)return void 0===d&&(d=q,d=c()),d},set(c){Object.defineProperty(a,b,{value:c})},configurable:!0})}function s(a){return Object.create(Object.getPrototypeOf(a),Object.getOwnPropertyDescriptors(a))}function t(a,b,c){Object.defineProperty(a,b,{value:c,writable:!0,enumerable:!0,configurable:!0})}function u(...a){let b={};for(let c of a)Object.assign(b,Object.getOwnPropertyDescriptors(c));return Object.defineProperties({},b)}function v(a){return u(a._zod.def)}function w(a,b){return b?b.reduce((a,b)=>a?.[b],a):a}function x(a){let b=Object.keys(a);return Promise.all(b.map(b=>a[b])).then(a=>{let c={};for(let d=0;d<b.length;d++)c[b[d]]=a[d];return c})}function y(a=10){let b="abcdefghijklmnopqrstuvwxyz",c="";for(let d=0;d<a;d++)c+=b[Math.floor(Math.random()*b.length)];return c}function z(a){return JSON.stringify(a)}function A(a){return a.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}let B="captureStackTrace"in Error?Error.captureStackTrace:(...a)=>{};function C(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}let D=m(()=>{if(aH.jitless||"u">typeof navigator&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return Function(""),!0}catch(a){return!1}});function E(a){if(!1===C(a))return!1;let b=a.constructor;if(void 0===b||"function"!=typeof b)return!0;let c=b.prototype;return!1!==C(c)&&!1!==Object.prototype.hasOwnProperty.call(c,"isPrototypeOf")}function F(a){return E(a)?{...a}:Array.isArray(a)?[...a]:a instanceof Map?new Map(a):a instanceof Set?new Set(a):a}function G(a){let b=0;for(let c in a)Object.prototype.hasOwnProperty.call(a,c)&&b++;return b}let H=a=>{let b=typeof a;switch(b){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(a)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":if(Array.isArray(a))return"array";if(null===a)return"null";if(a.then&&"function"==typeof a.then&&a.catch&&"function"==typeof a.catch)return"promise";if("u">typeof Map&&a instanceof Map)return"map";if("u">typeof Set&&a instanceof Set)return"set";if("u">typeof Date&&a instanceof Date)return"date";if("u">typeof File&&a instanceof File)return"file";return"object";default:throw Error(`Unknown data type: ${b}`)}},I=new Set(["string","number","symbol"]),J=new Set(["string","number","bigint","boolean","symbol","undefined"]);function K(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function L(a,b,c){let d=new a._zod.constr(b??a._zod.def);return(!b||c?.parent)&&(d._zod.parent=a),d}function M(a){if(!a)return{};if("string"==typeof a)return{error:()=>a};if(a?.message!==void 0){if(a?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");a.error=a.message}return(delete a.message,"string"==typeof a.error)?{...a,error:()=>a.error}:a}function N(a){let b;return new Proxy({},{get:(c,d,e)=>(b??(b=a()),Reflect.get(b,d,e)),set:(c,d,e,f)=>(b??(b=a()),Reflect.set(b,d,e,f)),has:(c,d)=>(b??(b=a()),Reflect.has(b,d)),deleteProperty:(c,d)=>(b??(b=a()),Reflect.deleteProperty(b,d)),ownKeys:c=>(b??(b=a()),Reflect.ownKeys(b)),getOwnPropertyDescriptor:(c,d)=>(b??(b=a()),Reflect.getOwnPropertyDescriptor(b,d)),defineProperty:(c,d,e)=>(b??(b=a()),Reflect.defineProperty(b,d,e))})}function O(a){return"bigint"==typeof a?a.toString()+"n":"string"==typeof a?`"${a}"`:`${a}`}function P(a){return Object.keys(a).filter(b=>void 0!==a[b]._zod.optin&&"optional"===a[b]._zod.optout)}let Q={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-0x80000000,0x7fffffff],uint32:[0,0xffffffff],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},R={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function S(a,b){let c=a._zod.def,d=c.checks;if(d&&d.length>0)throw Error(".pick() cannot be used on object schemas containing refinements");let e=u(a._zod.def,{get shape(){let a={};for(let d of Reflect.ownKeys(b)){if(!Object.prototype.hasOwnProperty.call(c.shape,d))throw Error(`Unrecognized key: "${String(d)}"`);b[d]&&t(a,d,c.shape[d])}return t(this,"shape",a),a},checks:[]});return L(a,e)}function T(a,b){let c=a._zod.def,d=c.checks;if(d&&d.length>0)throw Error(".omit() cannot be used on object schemas containing refinements");let e=u(a._zod.def,{get shape(){let d={...a._zod.def.shape};for(let a of Reflect.ownKeys(b)){if(!Object.prototype.hasOwnProperty.call(c.shape,a))throw Error(`Unrecognized key: "${String(a)}"`);b[a]&&delete d[a]}return t(this,"shape",d),d},checks:[]});return L(a,e)}function U(a,b){if(!E(b))throw Error("Invalid input to extend: expected a plain object");let c=a._zod.def.checks;if(c&&c.length>0){let c=a._zod.def.shape;for(let a of Reflect.ownKeys(b))if(void 0!==Object.getOwnPropertyDescriptor(c,a))throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let d=u(a._zod.def,{get shape(){let c={...a._zod.def.shape,...b};return t(this,"shape",c),c}});return L(a,d)}function V(a,b){if(!E(b))throw Error("Invalid input to safeExtend: expected a plain object");let c=u(a._zod.def,{get shape(){let c={...a._zod.def.shape,...b};return t(this,"shape",c),c}});return L(a,c)}function W(a,b){if(!b?._zod?.def)throw Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if(a._zod.def.checks?.length)throw Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let c=u(a._zod.def,{get shape(){let c={...a._zod.def.shape,...b._zod.def.shape};return t(this,"shape",c),c},get catchall(){return b._zod.def.catchall},checks:b._zod.def.checks??[]});return L(a,c)}function X(a,b,c,d="partial"){let e=b._zod.def.checks;if(e&&e.length>0)throw Error(`.${d}() cannot be used on object schemas containing refinements`);let f=u(b._zod.def,{get shape(){let d=b._zod.def.shape,e={...d};if(c)for(let b of Reflect.ownKeys(c)){if(!Object.prototype.hasOwnProperty.call(d,b))throw Error(`Unrecognized key: "${String(b)}"`);c[b]&&(e[b]=a?new a({type:"optional",innerType:d[b]}):d[b])}else for(let b of Reflect.ownKeys(d))e[b]=a?new a({type:"optional",innerType:d[b]}):d[b];return t(this,"shape",e),e},checks:[]});return L(b,f)}function Y(a,b,c){let d=u(b._zod.def,{get shape(){let d=b._zod.def.shape,e={...d};if(c)for(let b of Reflect.ownKeys(c)){if(!Object.prototype.hasOwnProperty.call(e,b))throw Error(`Unrecognized key: "${String(b)}"`);c[b]&&(e[b]=new a({type:"nonoptional",innerType:d[b]}))}else for(let b of Reflect.ownKeys(d))e[b]=new a({type:"nonoptional",innerType:d[b]});return t(this,"shape",e),e}});return L(b,d)}function Z(a,b=0){if(!0===a.aborted)return!0;for(let c=b;c<a.issues.length;c++)if(a.issues[c]?.continue!==!0)return!0;return!1}function $(a,b=0){if(!0===a.aborted)return!0;for(let c=b;c<a.issues.length;c++)if(a.issues[c]?.continue===!1)return!0;return!1}function _(a,b){return b.map(b=>(b.path??(b.path=[]),b.path.unshift(a),b))}function aa(a){return"string"==typeof a?a:a?.message}function ab(a,b,c){var d;for(let e=b;e<a.length;e++)(d=a[e]).schema??(d.schema=c)}function ac(a,b,c){let d=a.inst?._zod?.traits;d?.has("$ZodType")&&(d.has("$ZodCheck")?a.schema??(a.schema=a.inst):a.schema=a.inst);let e=a.schema!==a.inst?a.schema?._zod.def?.error:void 0,f=a.message?a.message:aa(a.inst?._zod.def?.error?.(a))??aa(e?.(a))??aa(b?.error?.(a))??aa(c.customError?.(a))??aa(c.localeError?.(a))??"Invalid input",{inst:g,schema:h,continue:i,input:j,...k}=a;return k.path??(k.path=[]),k.message=f,b?.reportInput&&(k.input=j),k}function ad(a){return a instanceof Set?"set":a instanceof Map?"map":a instanceof File?"file":"unknown"}let ae=/[\uD800-\uDBFF]/;function af(a){let b=a.length;if(!ae.test(a))return b;let c=b;for(let d=0;d<b-1;d++)(64512&a.charCodeAt(d))==55296&&(64512&a.charCodeAt(d+1))==56320&&(c--,d++);return c}function ag(a){return Array.isArray(a)?"array":"string"==typeof a?"string":"unknown"}function ah(a){let b=typeof a;switch(b){case"number":return Number.isNaN(a)?"nan":"number";case"object":if(null===a)return"null";if(Array.isArray(a))return"array";if(a&&Object.getPrototypeOf(a)!==Object.prototype&&"constructor"in a&&a.constructor)return a.constructor.name}return b}function ai(...a){let[b,c,d]=a;return"string"==typeof b?{message:b,code:"custom",input:c,inst:d}:{...b}}function aj(a){return Object.entries(a).filter(([a,b])=>Number.isNaN(Number.parseInt(a,10))).map(a=>a[1])}function ak(a){let b=atob(a),c=new Uint8Array(b.length);for(let a=0;a<b.length;a++)c[a]=b.charCodeAt(a);return c}function al(a){let b="";for(let c=0;c<a.length;c++)b+=String.fromCharCode(a[c]);return btoa(b)}function am(a){let b=a.replace(/-/g,"+").replace(/_/g,"/"),c="=".repeat((4-b.length%4)%4);return ak(b+c)}function an(a){return al(a).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function ao(a){let b=a.replace(/^0x/,"");if(b.length%2!=0)throw Error("Invalid hex string length");let c=new Uint8Array(b.length/2);for(let a=0;a<b.length;a+=2)c[a/2]=Number.parseInt(b.slice(a,a+2),16);return c}function ap(a){return Array.from(a).map(a=>a.toString(16).padStart(2,"0")).join("")}class aq{constructor(...a){}}function ar(a,b){for(let c in b){let d=Object.getOwnPropertyDescriptor(b,c);d.get?Object.defineProperty(a,c,{...d,enumerable:!1}):function(a,b,c){Object.defineProperty(a,b,{configurable:!0,get(){return this==null?c:as(this,b,c.bind(this))},set(a){as(this,b,a)}})}(a,c,d.value)}}function as(a,b,c,d=!0){return Object.defineProperty(a,b,{configurable:!0,writable:!0,enumerable:d,value:c}),c}function at(a,b,c){return as(a,b,c,!1)}let au=!1,av={configurable:!0,get(){au=!0}};function aw(a,b,d){let e=Object.getPrototypeOf(a._zod);if(b in e&&c!==a._zod){c=void 0;return}c=a._zod,Object.defineProperty(e,b,{configurable:!0,get(){Object.defineProperty(this,b,av);let a=au;au=!1;try{let c=d(this);return au?delete this[b]:Object.defineProperty(this,b,{configurable:!0,writable:!0,value:c}),au=au||a,c}catch(c){throw delete this[b],au=au||a,c}},set(a){Object.defineProperty(this,b,{configurable:!0,writable:!0,value:a})}})}function ax(a,b,c,d){let e,f=b in(e=Object.getPrototypeOf(a))?void 0:e;f&&Object.defineProperty(f,b,{configurable:!0,get(){let a={configurable:!0,writable:!0,enumerable:d,value:void 0};return Object.defineProperty(this,b,a),a.value=c(this),Object.defineProperty(this,b,a),a.value},set(a){Object.defineProperty(this,b,{configurable:!0,writable:!0,enumerable:d,value:a})}})}let ay="~constantCatch";function az(a){let b=()=>a;return b[ay]=!0,b}let aA=Object.freeze({status:"aborted"}),aB={value:void 0,enumerable:!1},aC="captureStackTrace"in Error?Error:null;function aD(a,b,c,d){function e(a){this.def=a,this.constr=j,this.traits=new Set}e.prototype={};let f=c&&new WeakSet;function g(d,g){if(!d._zod){aB.value=new e(g);try{Object.defineProperty(d,"_zod",aB)}finally{aB.value=void 0}}if(d._zod.traits.has(a))return;if(d._zod.traits.add(a),b(d,g),f){let a=Object.getPrototypeOf(d),b=d._zod.constr.prototype,e=a;for(;e&&e!==b;)e=Object.getPrototypeOf(e);let g=e??a;f.has(g)||(f.add(g),ar(g,c))}let h=j.prototype;for(let a in h)Object.prototype.hasOwnProperty.call(h,a)&&(a in d||(d[a]=h[a].bind(d)))}let h=d?.Parent??Object;class i extends h{}function j(a){let b=d?.Parent?function(a){let b=aC;if(b){let c=b.stackTraceLimit;if("number"==typeof c){try{b.stackTraceLimit=0}catch{return aC=null,new a}try{return new a}finally{b.stackTraceLimit=c}}}return new a}(i):this;g(b,a);let c=b._zod.deferred;if(c){for(let a of c)a();b._zod.deferred=void 0}let e=globalThis.__zod_globalConfig?.postProcessor;return e&&e(b),b}return Object.defineProperty(i,"name",{value:a}),Object.defineProperty(j,"init",{value:g}),Object.defineProperty(j,Symbol.hasInstance,{value:b=>!!d?.Parent&&b instanceof d.Parent||b?._zod?.traits?.has(a)}),Object.defineProperty(j,"name",{value:a}),j}let aE=Symbol("zod_brand");class aF extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class aG extends Error{constructor(a){super(`Encountered unidirectional transform during encode: ${a}`),this.name="ZodEncodeError"}}(b=globalThis).__zod_globalConfig??(b.__zod_globalConfig={});let aH=globalThis.__zod_globalConfig;function aI(a){return a&&Object.assign(aH,a),aH}let aJ={get:function(){let a=this._zod;return a.message??(a.message=JSON.stringify(a.def,l,2)),a.message},set:function(a){this._zod.message=a},enumerable:!0,configurable:!0},aK={value:void 0,enumerable:!1},aL={value:void 0,enumerable:!1},aM=new WeakSet([Object.prototype,Error.prototype]),aN=(a,b)=>{a.name="$ZodError",aK.value=a._zod,Object.defineProperty(a,"_zod",aK),aL.value=b,Object.defineProperty(a,"issues",aL),aK.value=void 0,aL.value=void 0,Object.defineProperty(a,"message",aJ);let c=Object.getPrototypeOf(a);aM.has(c)||(aM.add(c),Object.defineProperty(c,"toString",{configurable:!0,enumerable:!1,get(){let a=()=>this.message;return Object.defineProperty(this,"toString",{value:a,configurable:!0,writable:!0}),a},set(a){Object.defineProperty(this,"toString",{value:a,configurable:!0,writable:!0})}}))},aO=aD("$ZodError",aN),aP=aD("$ZodError",aN,void 0,{Parent:Error});function aQ(a,b=a=>a.message){let c={},d=[];for(let g of a.issues)if(g.path.length>0){var e,f;(e=g.path[0],f=()=>[],!Object.prototype.hasOwnProperty.call(c,e)&&("__proto__"===e?Object.defineProperty(c,e,{value:f(),writable:!0,enumerable:!0,configurable:!0}):c[e]=f()),c[e]).push(b(g))}else d.push(b(g));return{formErrors:d,fieldErrors:c}}function aR(a,b=a=>a.message){let c={_errors:[]},d=(a,e=[])=>{for(let f of a.issues)if("invalid_union"===f.code&&f.errors.length)f.errors.map(a=>d({issues:a},[...e,...f.path]));else if("invalid_key"===f.code)d({issues:f.issues},[...e,...f.path]);else if("invalid_element"===f.code)d({issues:f.issues},[...e,...f.path]);else{let a=[...e,...f.path];if(0===a.length)c._errors.push(b(f));else{let d=c,e=0;for(;e<a.length;){let c=a[e],g=e===a.length-1;if("_errors"===c){g&&d._errors.push(b(f)),e++;continue}Object.prototype.hasOwnProperty.call(d,c)||Object.defineProperty(d,c,{value:{_errors:[]},enumerable:!0,writable:!0,configurable:!0});let h=d[c];g&&h._errors.push(b(f)),d=h,e++}}}};return d(a),c}function aS(a){let b=[];for(let c of a.map(a=>"object"==typeof a?a.key:a))"number"==typeof c?b.push(`[${c}]`):"symbol"==typeof c?b.push(`[${JSON.stringify(String(c))}]`):/[^\w$]/.test(c)?b.push(`[${JSON.stringify(c)}]`):(b.length&&b.push("."),b.push(c));return b.join("")}a.s(["$ZodError",0,aO,"$ZodRealError",0,aP,"flattenError",0,aQ,"formatError",0,aR,"prettifyError",0,function(a){let b=[];for(let c of[...a.issues].sort((a,b)=>(a.path??[]).length-(b.path??[]).length))b.push(`✖ ${c.message}`),c.path?.length&&b.push(` → at ${aS(c.path)}`);return b.join("\n")},"toDotPath",0,aS,"treeifyError",0,function(a,b=a=>a.message){let c={errors:[]},d=(a,e=[])=>{var f;for(let g of a.issues)if("invalid_union"===g.code&&g.errors.length)g.errors.map(a=>d({issues:a},[...e,...g.path]));else if("invalid_key"===g.code)d({issues:g.issues},[...e,...g.path]);else if("invalid_element"===g.code)d({issues:g.issues},[...e,...g.path]);else{let a=[...e,...g.path];if(0===a.length){c.errors.push(b(g));continue}let d=c,h=0;for(;h<a.length;){let c=a[h],e=h===a.length-1;"string"==typeof c?(d.properties??(d.properties={}),Object.prototype.hasOwnProperty.call(d.properties,c)||Object.defineProperty(d.properties,c,{value:{errors:[]},enumerable:!0,writable:!0,configurable:!0}),d=d.properties[c]):(d.items??(d.items=[]),(f=d.items)[c]??(f[c]={errors:[]}),d=d.items[c]),e&&d.errors.push(b(g)),h++}}};return d(a),c}],313399);let aT=new WeakSet([Object.prototype,Error.prototype]);function aU(a,b,c){Object.defineProperty(a,b,{configurable:!0,enumerable:!1,get(){let a=c(this);return Object.defineProperty(this,b,{value:a,configurable:!0,writable:!0}),a},set(a){Object.defineProperty(this,b,{value:a,configurable:!0,writable:!0})}})}let aV=(a,b)=>{aO.init(a,b),a.name="ZodError";let c=Object.getPrototypeOf(a);aT.has(c)||(aT.add(c),aU(c,"format",a=>b=>aR(a,b)),aU(c,"flatten",a=>b=>aQ(a,b)),aU(c,"addIssue",a=>b=>{a.issues.push(b),a.message=JSON.stringify(a.issues,l,2)}),aU(c,"addIssues",a=>b=>{a.issues.push(...b),a.message=JSON.stringify(a.issues,l,2)}),Object.defineProperty(c,"isEmpty",{configurable:!0,enumerable:!1,get(){return 0===this.issues.length}}))},aW=aD("ZodError",aV),aX=aD("ZodError",aV,void 0,{Parent:Error});a.s(["ZodError",0,aW,"ZodRealError",0,aX],975160)}];
2
-
3
- //# sourceMappingURL=node_modules_zod_v4_classic_errors_05xv7vp.js.map
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,279265,240829,206721,e=>{"use strict";var t=e.i(843476),n=e.i(96892),s=e.i(689664),a=e.i(24071),o=e.i(867927),r=e.i(931619),i=e.i(508734),l=e.i(779266),d=e.i(632781),u=e.i(77071),c=e.i(263676),m=e.i(271645),x=e.i(798120),p=e.i(815731),f=e.i(167881),h=e.i(496336),b=e.i(683408),g=e.i(660302),k=e.i(184762),v=e.i(6799),j=e.i(41533),y=e.i(178378),N=e.i(104194),w=e.i(451888),C=e.i(635963),T=e.i(835878),z=e.i(764224),S=e.i(919191),A=e.i(929272),M=e.i(176975),B=e.i(480263);let _=[],R=!1,I=new Set,E={sync(e,t){for(let n of(R=!0,_=[...e].reverse().map(e=>$(e,t)).slice(-30),I))n()},primed:()=>R};function $(e,t){let n=e=>({name:e,icon:t?.find(t=>t.name===e)?.icon??null}),s=n(e.bot),a=[],o=new Map,r=new Map;for(let t of e.lines){let e=t.bot?n(t.bot):s,i=t.parent&&r.get(t.parent)?.name?s:null;switch(t.kind){case"user":a.push({id:t.id,bot:s,to:null,text:t.text,kind:"user"});break;case"text":a.push({id:t.id,bot:e,to:i,text:t.text,kind:"say"});break;case"note":a.push({id:t.id,bot:e,to:i,text:t.text,kind:"note"});break;case"tool":o.set(t.callId,a.length),a.push({id:t.id,bot:e,to:i,text:t.note??t.input,kind:"tool",tool:{name:t.name,input:t.input,note:t.note,path:t.path,callId:t.callId}});break;case"tool-result":{let e=o.get(t.callId),n=void 0===e?void 0:a[e];n?.tool&&void 0!==e&&(a[e]={...n,tool:{...n.tool,results:t.results,more:t.more}});break}case"ask":{let s=n(t.to);r.set(t.callId,s),a.push({id:t.id,bot:e,to:s,text:t.text,kind:"ask"});break}case"ask-result":{let n=r.get(t.callId);n&&t.text&&a.push({id:t.id,bot:n,to:e,text:t.text,kind:"ask"});break}case"waiting":a.push({id:t.id,bot:e,to:null,text:t.question,kind:"result",options:t.options})}}if("failed"===e.status&&e.outcome)a.push({id:`${e.id}-end`,bot:s,to:null,text:e.outcome,kind:"error"});else if("done"===e.status||"waiting"===e.status){let t=a.at(-1);t&&"say"===t.kind&&t.text===e.outcome&&(a[a.length-1]={...t,kind:"result"})}return{id:e.id,request:e.request,label:e.label,bot:s,lines:a,status:"running"===e.status?"working":e.status,outcome:e.outcome,ask:e.ask,relayed:e.reported,tokens:e.tokens,contextTokens:e.contextTokens,contextBudget:e.contextBudget,updatedAt:e.updatedAt}}function q(e){for(let t=e.lines.length-1;t>=0;t--){let n=e.lines[t];if("user"!==n.kind&&"note"!==n.kind)return n}return null}let K=new Map,F={get:e=>K.get(e)??"",set(e,t){t?K.set(e,t):K.delete(e)},typing:e=>(K.get(e)?.trim().length??0)>0},L=new Set,O={announce(e){for(let t of L)t(e)},subscribe:e=>(L.add(e),()=>{L.delete(e)})},U=[];function D(){return(0,m.useSyncExternalStore)(e=>(I.add(e),()=>I.delete(e)),()=>_,()=>U)}let P=e=>"result"===e.kind||"error"===e.kind;function H(e){let t=[e.bot];for(let n of e.lines)t.some(e=>e.name===n.bot.name)||t.push(n.bot);return t}function V(e){let t=new Set([e.bot.name]),n=[];for(let s of function(e){let t=[];for(let n of e){let e=t.at(-1);if(e&&e.bot.name===n.bot.name&&e.to?.name===n.to?.name&&"user"===e.lines[0].kind==("user"===n.kind)){e.lines.push(n);continue}t.push({key:n.id,bot:n.bot,to:n.to,lines:[n]})}return t}(e.lines))s.to&&!t.has(s.to.name)&&(t.add(s.to.name),n.push({kind:"invite",key:`${s.key}-joins`,from:s.bot,to:s.to})),t.add(s.bot.name),n.push({kind:"group",key:s.key,group:s});return n}function W(e){let t=new Map;for(let n of e)for(let e of(t.has(n.bot.name)||t.set(n.bot.name,{bot:n.bot,task:n,line:null,open:0}),n.lines))"user"!==e.kind&&"note"!==e.kind&&t.set(e.bot.name,{bot:e.bot,task:n,line:e,open:t.get(e.bot.name)?.open??0});for(let n of e){if("working"!==n.status)continue;let e=t.get(n.bot.name);e&&(e.open+=1)}return[...t.values()]}e.s(["botTasks",0,E,"isOutcome",0,P,"lastSaid",0,q,"latestPerBot",0,W,"rosterOf",0,H,"screenActs",0,O,"taskDrafts",0,F,"taskFromRow",0,$,"threadItems",0,V,"useBotTasks",0,D],240829);var G=e.i(609856),X=e.i(283653),J=e.i(647163);function Y({task:e,status:s,lines:a=[],className:o}){let[i,l]=(0,m.useState)(()=>F.get(e.id));(0,m.useEffect)(()=>l(F.get(e.id)),[e.id]);let u=t=>{l(t),F.set(e.id,t)},[p,b]=Q(),[v,y]=(0,G.useServerAction)(B.cancelTaskAction,{onOk:e=>{(0,X.revalidate)(x.queryKey.tasks),O.announce({kind:"stopped",id:e.id,label:e.label})}}),N=b||y,[C,T]=(0,m.useState)(!1),[z,M]=(0,m.useState)(null);(0,m.useEffect)(()=>{T(!1),M(null)},[e.id]),(0,m.useEffect)(()=>{"running"!==s&&M(null)},[s]),(0,m.useEffect)(()=>{z&&a.some(e=>"user"===e.kind&&e.text===z)&&M(null)},[a,z]);let _=async t=>{!N&&await p(e,t)&&(u(""),"running"===s&&(M(t.trim()),T(!1)))},R="waiting"===s?e.ask:null,I=(0,w.isBudgetAsk)(R),E=R?R.options.length?"Or put it another way…":"Your answer":"running"===s?`What's off? ${e.bot} reads this before its next step`:"Anything more? It picks up where it left off",$=(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),_(i)},className:"flex items-end gap-1 rounded-2xl bg-background py-1.5 pr-1.5 pl-3.5 ring-1 ring-border/80 transition-shadow focus-within:ring-ring/60",children:[(0,t.jsx)(k.Textarea,{value:i,rows:1,disabled:N,autoFocus:"running"===s,onChange:e=>u(e.target.value),onKeyDown:e=>{"Escape"===e.key&&"running"===s?T(!1):"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||229===e.keyCode||(e.preventDefault(),_(i))},placeholder:E,"aria-label":`Message for ${e.label}`,className:"max-h-32 min-h-0 flex-1 resize-none border-0 bg-transparent px-0 py-1 text-[13px] leading-5 shadow-none focus-visible:ring-0 dark:bg-transparent"}),"running"===s&&(0,t.jsx)(f.Button,{type:"button",size:"icon-sm",variant:"ghost",disabled:N,onClick:()=>T(!1),"aria-label":"Never mind",className:"text-muted-foreground",children:(0,t.jsx)(c.X,{})}),(0,t.jsx)(f.Button,{type:"submit",size:"icon-sm",variant:i.trim()?"default":"ghost",disabled:!i.trim()||N,"aria-label":"Send",className:"rounded-full",children:b?(0,t.jsx)(d.Loader2,{className:"animate-spin"}):(0,t.jsx)(n.ArrowUp,{})})]});return"running"!==s||C?R?(0,t.jsxs)("div",{className:(0,J.cn)("space-y-2.5 rounded-2xl px-3.5 py-3 ring-1",I?"bg-muted/40 ring-border/50":"bg-amber-500/8 ring-amber-500/25",o),children:[(0,t.jsxs)("p",{className:"flex items-center gap-1.5 font-mono text-[10px] text-muted-foreground",children:[(0,t.jsx)("span",{className:"shrink-0",children:"To"}),(0,t.jsx)("span",{className:"truncate text-foreground",children:e.bot}),(0,t.jsx)("span",{className:"shrink-0 text-muted-foreground/50",children:"·"}),(0,t.jsx)("span",{className:"truncate",children:e.label})]}),R.question&&(0,t.jsx)(h.FoldedText,{text:R.question,subject:"message",clamp:"line-clamp-6",tall:"max-h-56"}),R.options.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:R.options.map(e=>(0,t.jsxs)(f.Button,{size:"sm",variant:"outline",disabled:N,onClick:()=>_(e),className:"h-7 gap-1.5 rounded-full bg-background px-3 text-[12px]",children:[I&&e===w.TASK_CONTINUE&&(0,t.jsx)(r.ChevronsRight,{className:"size-3.5 text-muted-foreground"}),e,I&&e===w.TASK_CONTINUE&&(0,t.jsxs)("span",{className:"font-mono text-[10px] text-muted-foreground",children:["+",j.BOT_RUN.steps," steps"]})]},e))}),$,(0,t.jsx)("button",{type:"button",disabled:N,onClick:()=>v(e.id),className:"font-mono text-[10px] text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50 disabled:opacity-50",children:"Stop this task instead"})]}):(0,t.jsx)("div",{className:o,children:$}):(0,t.jsxs)("div",{className:(0,J.cn)("flex items-center gap-2 rounded-2xl bg-muted/40 py-1.5 pr-1.5 pl-3.5 ring-1 ring-border/50",o),children:[z?(0,t.jsxs)("p",{className:"flex min-w-0 flex-1 items-center gap-2 text-[12.5px] leading-5 text-muted-foreground",children:[(0,t.jsx)(d.Loader2,{className:"size-3 shrink-0 animate-spin"}),(0,t.jsx)("span",{className:"shrink-0",children:"Before its next step:"}),(0,t.jsx)(g.default,{text:z,speed:2.2,color:"var(--muted-foreground)",shineColor:"var(--foreground)",className:"min-w-0 truncate"})]}):(0,t.jsx)(g.default,{text:`${e.bot} is on it — Thursday steers it by voice.`,speed:2.4,color:"var(--muted-foreground)",shineColor:"var(--foreground)",className:"min-w-0 flex-1 truncate text-[12.5px] leading-5 break-keep"}),(0,t.jsxs)(f.Button,{type:"button",size:"sm",variant:"ghost",disabled:N,onClick:()=>T(!0),className:"h-7 shrink-0 gap-1.5 rounded-full px-2.5 text-[12px]",children:[(0,t.jsx)(S.CornerDownLeft,{className:"size-3.5"}),"Step in"]}),(0,t.jsx)("span",{className:"h-4 w-px shrink-0 bg-border"}),(0,t.jsx)(f.Button,{type:"button",size:"icon-sm",variant:"ghost",disabled:N,onClick:()=>v(e.id),"aria-label":"Stop this task",className:"shrink-0 text-muted-foreground/60 hover:text-foreground",children:y?(0,t.jsx)(d.Loader2,{className:"animate-spin"}):(0,t.jsx)(A.Square,{className:"size-3"})})]})}function Q(){let[e,t]=(0,G.useServerAction)(M.answerTaskAction,{onOk:()=>(0,X.revalidate)(x.queryKey.tasks)});return[async(t,n)=>{let s=n.trim();if(!s)return!1;try{let n=await e(t.id,s);return O.announce({kind:"answered",id:n.id,label:n.label,answer:s}),!0}catch{return!1}},t]}e.s(["TaskReply",0,Y,"useAnswerTask",0,Q],206721);var Z=e.i(989409),ee=e.i(621285),et=e.i(245629),en=e.i(393080),es=e.i(864723),ea=e.i(222055);let eo=(0,m.memo)(function(){let e=D(),{data:n}=(0,X.useServerRoute)(x.queryKey.bot),[s,a]=(0,m.useState)(!1),[o,r]=(0,m.useState)(null),[i,l]=(0,m.useState)(!1),d=[...e].reverse(),u=o?d.find(e=>e.id===o)??null:null,[c,p]=function(){let[e,t]=(0,m.useState)(null),n=(0,m.useRef)([]),s=(0,m.useRef)(!1),a=(0,m.useRef)([]);(0,m.useEffect)(()=>()=>{for(let e of a.current)clearTimeout(e)},[]);let o=(0,m.useRef)(()=>{});return o.current=()=>{if(s.current)return;let e=n.current.shift();e&&(s.current=!0,t(e),a.current.push(setTimeout(()=>{t(null),a.current.push(setTimeout(()=>{s.current=!1,o.current()},260))},3e3)))},[e,(0,m.useCallback)(e=>{let t=n.current.findIndex(t=>t.bot===e.bot);t>=0?n.current[t]=e:n.current.push(e),o.current()},[])]}(),f=(0,m.useRef)(null),h=(0,m.useRef)(new Map);(0,m.useEffect)(()=>{if(!E.primed())return;let t=new Map(d.map(e=>[e.id,e.status])),n=f.current;f.current=t;let s=new Map;for(let t of W(e))t.line&&s.set(t.bot.name,t.line.id);let a=h.current;if(h.current=s,n){for(let t of W(e)){if("working"!==t.task.status)continue;let e=t.line?.id;e&&a.get(t.bot.name)!==e&&p({bot:t.bot.name,label:t.task.label,what:eT(t.task).text,live:!0})}for(let e of d){let t=n.get(e.id);t!==e.status&&(void 0===t&&"working"!==e.status&&e.relayed||p({bot:e.bot.name,label:e.label,...function(e,t){let n=e.bot.name;return"working"===e.status?{what:t?`${n} took this on`:`${n} picked it back up`,live:!0}:"waiting"===e.status?(0,w.isBudgetAsk)(e.ask)?{what:`${n} is out of steps`}:{what:`${n} is asking`,tone:J.WAITING_INK}:"failed"===e.status?{what:`${n} could not finish`,tone:"text-destructive"}:{what:`${n} finished`}}(e,void 0===t)}))}}},[e,p]);let b=(0,m.useRef)(new Set);(0,m.useEffect)(()=>{if(!u||u.relayed||"done"!==u.status&&"failed"!==u.status)return;let e=`${u.id}@${(0,et.toDate)(u.updatedAt).getTime()}`;b.current.has(e)||(b.current.add(e),(0,y.markReportedAction)([u.id]).then(en.unwrapResult).then(()=>(0,X.revalidate)(x.queryKey.tasks)).catch(t=>{b.current.delete(e),v.toast.add({type:"error",title:"Could not mark the task as read",description:(0,J.errorToString)(t)})}))},[u]);let g=e.filter(e=>"working"===e.status).length,k=d.filter(er),j=k.length,N=k.map(e=>e.bot).filter((e,t,n)=>n.findIndex(t=>t.name===e.name)===t),C=(0,m.useCallback)(()=>l(!1),[]);return(0,t.jsx)("div",{className:"pointer-events-none absolute right-5 bottom-5 z-10 flex w-132 max-w-[calc(100vw-2.5rem)] flex-col items-end gap-2",children:s?(0,t.jsx)("div",{className:"pointer-events-auto flex max-h-[min(44rem,78vh)] w-full animate-in flex-col overflow-hidden rounded-3xl bg-background/75 shadow-2xl shadow-black/6 ring-1 ring-border/50 backdrop-blur-xl fade-in slide-in-from-bottom-1 duration-200",children:u?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eh,{task:u,onBack:()=>r(null),onClose:()=>a(!1)}),(0,t.jsx)(ez,{task:u,className:"min-h-0 flex-1"}),(0,t.jsx)(Y,{task:{id:u.id,label:u.label,bot:u.bot.name,ask:function(e){if(!e.ask?.question)return e.ask;let t=e.lines.at(-1);return t&&P(t)&&t.text===e.ask.question?{...e.ask,question:""}:e.ask}(u)},status:"working"===u.status?"running":u.status,lines:u.lines,className:"mx-3 mb-2 shrink-0"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(ef,{count:e.length,pending:j,composing:i,onCompose:()=>l(!0),onClose:()=>i?l(!1):a(!1)}),i?(0,t.jsx)(ec,{bots:n,onDone:C}):d.length?(0,t.jsx)(ew,{tasks:d,onPick:r}):(0,t.jsx)(ej,{bots:n}),!i&&(0,t.jsx)(ey,{})]})}):(0,t.jsx)(ei,{bots:n,rows:k,waiting:N,count:e.length,busy:g,pending:j,beat:c,composing:i,onCompose:()=>l(!0),onCloseCompose:C,onPick:e=>{r(e),a(!0)},onOpen:()=>{o||1!==k.length||r(k[0].id),a(!0)}})})}),er=e=>"waiting"===e.status;function ei({bots:e,rows:n,waiting:a,count:o,busy:r,pending:i,beat:l,composing:u,onCompose:m,onCloseCompose:x,onPick:p,onOpen:f}){let h=function({count:e,busy:t,pending:n}){return n>0?{text:1===n?"waiting on you":`${n} waiting on you`,tone:J.WAITING_INK,shine:"amber"}:t>0?{text:1===t?"working":`${t} running`,tone:"text-muted-foreground",shine:"muted"}:e>0?{text:"all done",tone:"text-muted-foreground"}:{text:"no jobs yet",tone:"text-muted-foreground"}}({count:o,busy:r,pending:i}),b=u||i>0;return(0,t.jsxs)("div",{className:(0,J.cn)("pointer-events-auto w-fit max-w-full overflow-hidden bg-background/78 ring-1 ring-border/50 backdrop-blur-md transition-shadow duration-300",b?"min-w-96 rounded-3xl shadow-lg shadow-black/8":"rounded-full shadow-sm shadow-black/3"),children:[(0,t.jsx)("div",{className:(0,J.cn)("grid transition-[grid-template-rows] duration-300 ease-out",b?"grid-rows-[1fr]":"grid-rows-[0fr]"),children:(0,t.jsx)("div",{className:"min-h-0 overflow-hidden",inert:!b,children:u?(0,t.jsx)(ec,{bots:e,onDone:x}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{className:"flex items-center gap-2 px-3 py-2 font-mono text-[10px] tracking-wide text-muted-foreground",children:[(0,t.jsxs)("span",{className:"flex-1",children:["needs you · ",i]}),(0,t.jsx)(ed,{onClick:m})]}),(0,t.jsx)("div",{className:"px-1.5 pb-2",children:n.map(e=>(0,t.jsx)(eC,{task:e,onPick:()=>p(e.id)},e.id))}),(0,t.jsx)("span",{className:"block h-1.5"})]})})}),(0,t.jsxs)("div",{className:(0,J.cn)("flex items-center gap-2 px-3 py-1.5"),children:[(0,t.jsxs)("button",{type:"button",onClick:f,"aria-label":o?`Tasks (${o})`:"Bots",className:"flex min-w-0 flex-1 items-center gap-2 rounded-full text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,t.jsx)(ex,{bots:e,waiting:a,only:l?.bot}),(0,t.jsxs)("span",{className:"flex h-7 min-w-0 flex-1 items-center",children:[(0,t.jsx)(el,{on:!!l,children:(0,t.jsxs)("span",{className:"flex items-center gap-1.5 whitespace-nowrap",children:[(0,t.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted-foreground/70",children:l?.label}),l?.live?(0,t.jsx)(g.default,{text:l.what,speed:2.4,color:"var(--muted-foreground)",shineColor:"var(--foreground)",className:"min-w-0 truncate text-[14px] leading-5 tracking-[-0.15px]"}):(0,t.jsx)("span",{className:(0,J.cn)("min-w-0 truncate text-[14px] leading-5 tracking-[-0.15px]",l?.tone??"text-foreground"),children:l?.what})]})}),(0,t.jsx)(el,{on:!l,children:h.shine?(0,t.jsx)("span",{className:(0,J.cn)("block","amber"===h.shine?"[--rest:var(--color-amber-700)] [--shine:var(--color-amber-400)] dark:[--rest:var(--color-amber-400)] dark:[--shine:var(--color-amber-100)]":"[--rest:var(--muted-foreground)] [--shine:var(--foreground)]"),children:(0,t.jsx)(g.default,{text:h.text,speed:2.6,color:"var(--rest)",shineColor:"var(--shine)",className:"truncate text-[14px] leading-5 tracking-[-0.15px]"})}):(0,t.jsx)("span",{className:(0,J.cn)("block animate-in truncate text-[14px] leading-5 tracking-[-0.15px] fade-in duration-300",h.tone),children:h.text},h.text)})]})]}),u&&(0,t.jsx)(eu,{onClick:x,label:"Cancel the message",children:(0,t.jsx)(c.X,{className:"size-3.5"})}),!u&&0===i&&r>0&&(0,t.jsx)(d.Loader2,{className:"size-4 shrink-0 animate-spin text-muted-foreground/70"}),!u&&0===i&&0===r&&o>0&&(0,t.jsx)(s.Check,{className:"size-4 shrink-0 text-muted-foreground/60"})]})]})}function el({on:e,children:n}){return(0,t.jsx)("span",{className:(0,J.cn)("grid min-w-0 transition-[grid-template-columns,opacity] duration-200 ease-out",e?"grid-cols-[1fr] opacity-100":"grid-cols-[0fr] opacity-0"),children:(0,t.jsx)("span",{className:"min-w-0 overflow-hidden",children:n})})}function ed({onClick:e}){return(0,t.jsx)(eu,{onClick:e,label:"Message a bot",children:(0,t.jsx)(u.Plus,{className:"size-4"})})}function eu({onClick:e,label:n,children:s}){return(0,t.jsx)("button",{type:"button",onClick:e,"aria-label":n,className:"grid size-7 shrink-0 place-items-center rounded-full text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:s})}function ec({bots:e,onDone:s}){let[r,i]=(0,m.useState)(null),[l,u]=(0,m.useState)(""),[c,p]=(0,G.useServerAction)(N.startTaskAction,{onOk:()=>{(0,X.revalidate)(x.queryKey.tasks),s()}}),h=e?.length?e.map(e=>({name:e.name,icon:e.icon})):[{name:w.DEFAULT_BOT.name,icon:w.DEFAULT_BOT.icon}],b=()=>{r&&l.trim()&&!p&&c(r.name,l.trim())};return r?(0,t.jsxs)("div",{className:"flex min-h-32 flex-col pb-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 pt-3 pb-2",children:[(0,t.jsx)("button",{type:"button",onClick:()=>i(null),"aria-label":"Choose a different bot",className:"grid size-6 shrink-0 place-items-center rounded-lg text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:(0,t.jsx)(a.ChevronLeft,{className:"size-3.5"})}),(0,t.jsx)(C.BotMark,{size:22,seed:r.name,vary:r.name,color:r.icon?.color,shape:r.icon?.shape,outline:r.icon?.outline,className:"shrink-0"}),(0,t.jsxs)("span",{className:"min-w-0 flex-1 truncate text-[12.5px] font-medium",children:["To ",r.name]})]}),(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),b()},className:"mx-3 mt-auto flex items-end gap-1 rounded-2xl bg-background py-2 pr-2 pl-3 ring-1 ring-border/80 transition-shadow focus-within:ring-ring/60",children:[(0,t.jsx)(k.Textarea,{value:l,rows:1,autoFocus:!0,disabled:p,onChange:e=>u(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||229===e.keyCode||(e.preventDefault(),b())},placeholder:`What should ${r.name} do? It cannot hear the call, so say the whole job.`,"aria-label":`Message for ${r.name}`,className:"max-h-32 min-h-15 flex-1 resize-none border-0 bg-transparent px-0 py-0 text-[13px] leading-5 shadow-none focus-visible:ring-0 dark:bg-transparent"}),(0,t.jsx)(f.Button,{type:"submit",size:"icon-sm",variant:l.trim()?"default":"ghost",disabled:!l.trim()||p,"aria-label":"Send",className:"rounded-full",children:p?(0,t.jsx)(d.Loader2,{className:"animate-spin"}):(0,t.jsx)(n.ArrowUp,{})})]})]}):(0,t.jsxs)("div",{className:"min-h-32 pb-3",children:[(0,t.jsx)("p",{className:"px-3 pt-3 pb-1.5 font-mono text-[10px] tracking-wide text-muted-foreground",children:"message a bot"}),(0,t.jsx)("div",{className:"px-1",children:h.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>i(e),className:"flex w-full items-center gap-2.5 rounded-xl px-2 py-1.5 text-left outline-none transition-colors hover:bg-muted/60 focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,t.jsx)(C.BotMark,{size:22,seed:e.name,vary:e.name,color:e.icon?.color,shape:e.icon?.shape,outline:e.icon?.outline,className:"shrink-0"}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate text-[13px]",children:e.name}),(0,t.jsx)(o.ChevronRight,{className:"size-3.5 shrink-0 text-muted-foreground/50"})]},e.name))})]})}let em=["alto","brio","cinder","delta"].map((e,t)=>({key:e,seed:e,color:es.MARK_PALETTE[Math.floor(t*es.MARK_PALETTE.length/4)],shape:es.MARK_SHAPES[t%es.MARK_SHAPES.length],outline:void 0}));function ex({bots:e,waiting:n=[],only:s}){let a=e?.length?e.map(e=>({key:e.name,seed:e.name,color:e.icon?.color,shape:e.icon?.shape,outline:e.icon?.outline,notify:!1})):em.map(e=>({...e,notify:!1})),o=n.map(e=>({key:e.name,seed:e.name,color:e.icon?.color,shape:e.icon?.shape,outline:e.icon?.outline,notify:!0})),r=[...o,...a.filter(e=>!o.some(t=>t.key===e.key))].map(e=>({...e,standIn:!1})),i=em.filter(e=>!r.some(t=>t.key===e.key)).slice(0,Math.max(0,3-r.length)).map(e=>({...e,notify:!1,standIn:!0})),l=[...r,...i].slice(0,4);return(0,t.jsx)("span",{className:(0,J.cn)("flex shrink-0 items-center",!e?.length&&!o.length&&"opacity-50"),children:l.map((e,n)=>(0,t.jsx)("span",{className:(0,J.cn)("origin-right transition-[margin,opacity,transform] duration-300 ease-out",n>0&&"-ml-2",e.standIn&&"opacity-35",s&&e.key!==s&&"-ml-[28px] scale-50 opacity-0"),style:{zIndex:l.length-n},children:(0,t.jsx)(C.BotMark,{size:28,seed:e.seed,vary:e.seed,color:e.color,shape:e.shape,outline:e.outline,notify:e.notify})},e.key))})}function ep({onClick:e}){return(0,t.jsx)("button",{type:"button",onClick:e,"aria-label":"Fold the room away",className:"grid size-7 shrink-0 place-items-center rounded-full bg-muted text-foreground outline-none transition-colors hover:bg-muted-foreground/20 focus-visible:ring-3 focus-visible:ring-ring/50",children:(0,t.jsx)(c.X,{className:"size-3.5"})})}function ef({count:e,pending:n,composing:s,onCompose:a,onClose:o}){return(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3.5 pt-3 pb-1.5",children:[(0,t.jsx)("span",{className:"text-[13px] font-medium",children:"Tasks"}),e>0&&!s&&(0,t.jsx)("span",{className:"font-mono text-[10px] text-muted-foreground tabular-nums",children:n>0?`${n} for you \xb7 ${e}`:e}),(0,t.jsx)("span",{className:"flex-1"}),!s&&(0,t.jsx)(ed,{onClick:a}),(0,t.jsx)(ep,{onClick:o})]})}function eh({task:e,onBack:n,onClose:s}){return(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 pt-3 pb-1",children:[(0,t.jsx)("button",{type:"button",onClick:n,"aria-label":"Back to the list",className:"shrink-0 rounded-md p-1 text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:(0,t.jsx)(a.ChevronLeft,{className:"size-4"})}),(0,t.jsx)(C.BotMark,{size:22,seed:e.bot.name,vary:e.id,color:e.bot.icon?.color,shape:e.bot.icon?.shape,outline:e.bot.icon?.outline,notify:!1}),(0,t.jsxs)("span",{className:"min-w-0 flex-1 truncate text-[13px] font-medium",children:[e.label,(0,t.jsx)("span",{title:e.id,className:"ml-1.5 font-mono text-[10px] font-normal text-muted-foreground/60",children:e.id.slice(0,8)})]}),(0,t.jsx)(eb,{usage:e.tokens}),(0,t.jsx)(eg,{task:e}),(0,t.jsx)(ev,{task:e}),(0,t.jsx)(ep,{onClick:s})]})}function eb({usage:e}){let n=e.input+e.output;return n?(0,t.jsx)("span",{title:`in ${(0,J.formatCount)(e.input)} \xb7 out ${(0,J.formatCount)(e.output)}`,className:"shrink-0 font-mono text-[10px] text-muted-foreground/70 tabular-nums",children:(0,J.formatCount)(n)}):null}function eg({task:e}){let{contextTokens:n,contextBudget:s}=e;if(!n||!s)return null;let a=Math.min(1,n/s);return(0,t.jsx)("span",{title:`Context ${(0,J.formatCount)(n)} of ${(0,J.formatCount)(s)} — it summarizes itself here`,className:"block h-[3px] w-9 shrink-0 overflow-hidden rounded-full bg-muted",children:(0,t.jsx)("span",{className:(0,J.cn)("block h-full rounded-full",a>.9?"bg-amber-500/80":"bg-muted-foreground/70"),style:{width:`${Math.max(4,Math.round(100*a))}%`}})})}let ek={working:"text-muted-foreground",waiting:J.WAITING_INK,done:"text-foreground",failed:"text-destructive"};function ev({task:e}){let n="done"===e.status&&e.relayed?"text-muted-foreground":ek[e.status];return"working"===e.status?(0,t.jsx)(g.default,{text:"working",speed:2.2,color:"var(--muted-foreground)",shineColor:"var(--foreground)",className:"shrink-0 font-mono text-[10px]"}):(0,t.jsx)("span",{className:(0,J.cn)("flex shrink-0 items-center gap-1.5 font-mono text-[10px]",n),children:e.status})}function ej({bots:e}){return(0,t.jsxs)("div",{className:"flex flex-col items-center gap-3 px-6 pt-3 pb-4 text-center",children:[(0,t.jsx)(ex,{bots:e}),e?.length?(0,t.jsx)("p",{className:"text-[12px] text-muted-foreground",children:"Nothing handed over yet — ask for something that takes a while."}):(0,t.jsxs)("p",{className:"text-[12px] text-muted-foreground",children:["Thursday hands work to ",w.DEFAULT_BOT.name," until you make bots of your own in Settings › Bots."]})]})}function ey(){return(0,t.jsx)("div",{className:"flex shrink-0 justify-end px-3 pb-2.5",children:(0,t.jsxs)("button",{type:"button",onClick:()=>(0,Z.openSettings)("tasks"),className:"flex items-center gap-1 rounded-md px-1.5 py-1 font-mono text-[10px] text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,t.jsx)(l.History,{className:"size-3"}),"History"]})})}let eN=[{id:"you",label:"needs you",holds:er},{id:"working",label:"working",holds:e=>"working"===e.status},{id:"done",label:"done",holds:()=>!0}];function ew({tasks:e,onPick:n}){let s=new Map;for(let t of e){let e=eN.find(e=>e.holds(t))??eN[2],n=s.get(e.id);n?n.push(t):s.set(e.id,[t])}return(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col gap-0.5 overflow-y-auto px-2 pt-1 pb-1 scrollbar-none",children:eN.map((e,a)=>{let o=s.get(e.id)??[];return o.length?(0,t.jsxs)(m.Fragment,{children:[(0,t.jsxs)("p",{className:(0,J.cn)("px-2.5 pb-1 font-mono text-[10px] text-muted-foreground",0===a?"pt-1":"pt-3"),children:[e.label," · ",o.length]}),o.map(e=>(0,t.jsx)(eC,{task:e,onPick:()=>n(e.id)},e.id))]},e.id):null})})}function eC({task:e,onPick:n}){let s=er(e),a=e.lines.at(-1),o=(0,m.useMemo)(()=>eT(e),[e.status,e.outcome,e.relayed,e.ask,a?.id]),[i,l]=Q(),[u,c]=(0,m.useState)(null),x="waiting"===e.status?e.ask?.options??[]:[],p=(0,w.isBudgetAsk)(e.ask);return(0,t.jsxs)("div",{className:"rounded-xl transition-colors hover:bg-muted/60",children:[(0,t.jsxs)("button",{type:"button",onClick:n,className:"flex w-full items-center gap-2.5 rounded-xl px-2 py-1.5 text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,t.jsx)("span",{className:"relative flex size-8 shrink-0 items-center justify-center overflow-visible",title:e.bot.name,children:(0,t.jsx)(C.BotMark,{size:32,seed:e.bot.name,vary:e.id,color:e.bot.icon?.color,shape:e.bot.icon?.shape,outline:e.bot.icon?.outline,state:"working"===e.status?"thinking":"idle",notify:s})}),(0,t.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("span",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("span",{className:(0,J.cn)("min-w-0 truncate text-[14px] leading-5 tracking-[-0.15px]",s?"text-foreground":"text-foreground/80"),children:e.label}),(0,t.jsx)(T.BotRoster,{bots:H(e),taskId:e.id}),(0,t.jsx)("span",{className:"flex-1"}),(0,t.jsx)("span",{className:"shrink-0 font-mono text-[11px] leading-4 text-muted-foreground/70 tabular-nums",children:(0,et.shortAgo)(e.updatedAt)})]}),(0,t.jsxs)("span",{className:"mt-px flex h-4 items-center gap-1.5",children:["working"===e.status&&(0,t.jsx)(d.Loader2,{className:"size-3 shrink-0 animate-spin text-muted-foreground/70"}),"working"===e.status?(0,t.jsx)(g.default,{text:o.text,speed:2.2,color:"var(--muted-foreground)",shineColor:"var(--foreground)",className:(0,J.cn)("min-w-0 flex-1 truncate text-[12px] leading-4",o.tone)}):(0,t.jsx)("span",{className:(0,J.cn)("min-w-0 flex-1 truncate text-[12px] leading-4",o.tone),children:o.text})]})]})]}),x.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5 pt-0.5 pr-2 pb-2 pl-12.5",children:x.map(n=>(0,t.jsxs)(f.Button,{size:"sm",variant:"outline",loading:u===n,disabled:l,onClick:async()=>{c(n),await i(e,n),c(null)},className:(0,J.cn)("h-7 gap-1.5 rounded-full bg-background px-3 text-[12px]",!p&&"border-amber-500/35"),children:[p&&n===w.TASK_CONTINUE&&(0,t.jsx)(r.ChevronsRight,{className:"size-3.5 text-muted-foreground"}),n,p&&n===w.TASK_CONTINUE&&(0,t.jsxs)("span",{className:"font-mono text-[10px] text-muted-foreground",children:["+",j.BOT_RUN.steps," steps"]})]},n))})]})}function eT(e){if("waiting"===e.status&&e.ask)return(0,w.isBudgetAsk)(e.ask)?{text:(0,J.plainText)(e.outcome??e.ask.question),tone:"text-muted-foreground"}:{text:e.ask.question,tone:J.WAITING_INK};if("failed"===e.status)return{text:(0,J.plainText)(e.outcome??"Failed"),tone:"text-destructive"};if("done"===e.status)return{text:(0,J.plainText)(e.outcome??"Done"),tone:e.relayed?"text-muted-foreground":"text-foreground"};let t=q(e);return t?{text:"tool"===t.kind&&t.tool?t.tool.note??`${t.tool.name} \xb7 ${t.tool.input}`:t.text,tone:"text-muted-foreground"}:{text:`${e.bot.name} is taking it on…`,tone:"text-muted-foreground italic"}}function ez({task:e,className:n}){let s=(0,m.useRef)(null),a=(0,m.useRef)(!0);return(0,m.useEffect)(()=>{a.current=!0},[e.id]),(0,m.useEffect)(()=>{let e=s.current;e&&a.current&&(e.scrollTop=e.scrollHeight)},[e.lines,e.status]),(0,t.jsx)(ee.FileViewer,{children:(0,t.jsxs)("div",{ref:s,onScroll:e=>{let t=e.currentTarget;a.current=t.scrollHeight-t.scrollTop-t.clientHeight<24},className:(0,J.cn)("max-h-[64vh] space-y-3 overflow-y-auto px-4 pt-6 pb-4 mask-[linear-gradient(to_bottom,transparent,black_2rem)] scrollbar-none",n),children:[(0,t.jsx)(eS,{task:e}),V(e).map(n=>"invite"===n.kind?(0,t.jsx)(eM,{from:n.from,to:n.to},n.key):(0,t.jsx)(eI,{group:n.group,task:e},n.key)),"working"===e.status&&0===e.lines.length&&(0,t.jsx)(g.default,{text:`${e.bot.name} is taking it on…`,speed:2.2,color:"var(--muted-foreground)",shineColor:"var(--foreground)",className:"block px-1 font-mono text-[10px]"})]})})}function eS({task:e}){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eM,{from:eA,to:e.bot}),(0,t.jsx)(e_,{children:(0,t.jsx)(p.Bubble,{align:"end",className:"max-w-full",children:(0,t.jsx)(p.BubbleContent,{className:"rounded-tr-md py-2 pr-2 pl-3.5",children:(0,t.jsx)(h.FoldedText,{text:e.request,subject:"request"})})})})]})}let eA={name:"Thursday"};function eM({from:e,to:n}){return(0,t.jsx)("div",{className:"flex animate-in justify-center fade-in duration-300",children:(0,t.jsxs)("span",{className:"flex max-w-full items-center gap-1.5 rounded-full bg-muted px-2.5 py-1 font-mono text-[10px] text-muted-foreground",children:[(0,t.jsx)(eB,{bot:e}),(0,t.jsx)("span",{className:"shrink-0 text-muted-foreground/70",children:"invited"}),(0,t.jsx)(eB,{bot:n})]})})}function eB({bot:e}){return(0,t.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[(0,t.jsx)(C.BotMark,{size:15,seed:e.name,color:e.icon?.color,shape:e.icon?.shape,outline:e.icon?.outline,notify:!1,className:"shrink-0"}),(0,t.jsx)("span",{className:"truncate",children:e.name})]})}function e_({children:e}){return(0,t.jsx)(eR,{side:"end",name:"Thursday",mark:(0,t.jsx)(C.BotMark,{size:26,seed:"thursday",notify:!1,className:"mt-1 shrink-0"}),children:e})}function eR({side:e,mark:n,name:s,children:a}){return(0,t.jsxs)("div",{className:(0,J.cn)("flex gap-2.5","end"===e&&"flex-row-reverse"),children:[n,(0,t.jsxs)("div",{className:(0,J.cn)("flex min-w-0 flex-1 flex-col gap-1.5 [&>*+*]:max-w-[80%]","end"===e&&"items-end"),children:[(0,t.jsx)("p",{className:"max-w-[80%] truncate px-1 font-mono text-[10px] text-muted-foreground",children:s}),a]})]})}function eI({group:e,task:n}){return e.lines[0]?.kind==="user"?(0,t.jsx)("div",{className:"animate-in fade-in slide-in-from-bottom-2 duration-300",children:(0,t.jsx)(e_,{children:e.lines.map(e=>(0,t.jsx)(p.Bubble,{align:"end",className:"max-w-full",children:(0,t.jsx)(p.BubbleContent,{className:"rounded-tr-md px-3.5 text-[13px] leading-snug break-keep",children:e.text})},e.id))})}):(0,t.jsx)("div",{className:"animate-in fade-in slide-in-from-bottom-2 duration-300",children:(0,t.jsx)(eR,{side:e.bot.name===n.bot.name?"start":"end",name:e.bot.name,mark:(0,t.jsx)(C.BotMark,{size:26,seed:e.bot.name,vary:n.id,color:e.bot.icon?.color,shape:e.bot.icon?.shape,outline:e.bot.icon?.outline,notify:!1,className:"mt-1 shrink-0"}),children:(function(e){let t=[];for(let n of e){let e="tool"===n.kind&&n.tool?"tools":"said",s=t.at(-1);s&&s.kind===e?s.lines.push(n):t.push({kind:e,key:n.id,lines:[n]})}return t})(e.lines).map(e=>"tools"===e.kind?(0,t.jsx)(eq,{lines:e.lines,taskId:n.id},e.key):e.lines.map(e=>(0,t.jsx)(eE,{line:e,taskId:n.id},e.id)))})})}function eE({line:e,taskId:n}){if("tool"===e.kind&&e.tool)return(0,t.jsx)(ea.BotTool,{tool:e.tool,taskId:n});if("note"===e.kind)return(0,t.jsxs)("details",{className:"w-full py-1 text-muted-foreground",children:[(0,t.jsxs)("summary",{className:"flex cursor-pointer list-none items-center gap-2.5 outline-none [&::-webkit-details-marker]:hidden",children:[(0,t.jsx)("span",{className:"h-px flex-1 bg-border"}),(0,t.jsx)("span",{className:"shrink-0 font-mono text-[10px]",children:"Compacted — it goes on from its summary"}),(0,t.jsx)("span",{className:"h-px flex-1 bg-border"})]}),(0,t.jsx)("p",{className:"mt-2 rounded-xl bg-muted/40 px-3 py-2 text-[11px] leading-relaxed whitespace-pre-wrap break-keep",children:e.text})]});if(!P(e))return(0,t.jsx)("p",{className:"px-1 text-[12.5px] leading-relaxed break-keep text-muted-foreground",children:e.text});if(e.options)return(0,t.jsxs)("div",{className:"w-fit max-w-full space-y-1.5 rounded-2xl bg-amber-500/8 px-3 py-2 ring-1 ring-amber-500/25",children:[(0,t.jsx)("p",{className:"text-[13px] leading-snug break-keep",children:e.text}),e.options.length>0&&(0,t.jsx)("p",{className:"flex flex-wrap gap-1",children:e.options.map(e=>(0,t.jsx)("span",{className:"rounded-full bg-background/70 px-2 py-0.5 font-mono text-[10px] text-muted-foreground",children:e},e))})]});let s="error"===e.kind;return(0,t.jsxs)("div",{className:"min-w-0 px-1",children:[s&&(0,t.jsxs)("p",{className:"mb-1.5 flex items-center gap-1.5 font-mono text-[10px] text-destructive",children:[(0,t.jsx)(c.X,{className:"size-3 shrink-0"}),"Could not finish"]}),(0,t.jsx)(b.Markdown,{className:(0,J.cn)("overflow-x-auto text-[13px] leading-relaxed break-keep [&_h1]:text-[15px] [&_h2]:text-[14px] [&_h3]:text-[13px] [&_h3]:font-semibold [&_li]:my-0.5 [&_table]:text-[12px] [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",s&&"text-destructive"),children:e.text}),(0,t.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,t.jsx)(z.PathChips,{text:e.text,className:"min-w-0"}),!s&&(0,t.jsx)("span",{className:"ml-auto shrink-0",children:(0,t.jsx)(e$,{text:e.text})})]})]})}function e$({text:e}){let[n,a]=(0,m.useState)(!1),o=(0,m.useRef)(null);return(0,m.useEffect)(()=>()=>{o.current&&clearTimeout(o.current)},[]),(0,t.jsx)("button",{type:"button","aria-label":"Copy the report",onClick:async()=>{try{await navigator.clipboard.writeText(e),a(!0),o.current&&clearTimeout(o.current),o.current=setTimeout(()=>a(!1),1400)}catch(e){v.toast.add({type:"error",title:"Could not copy the report",description:(0,J.errorToString)(e)})}},className:"grid size-5 shrink-0 place-items-center rounded-md text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:n?(0,t.jsx)(s.Check,{className:"size-3"}):(0,t.jsx)(i.Copy,{className:"size-3"})})}function eq({lines:e,taskId:n}){return(0,t.jsxs)("div",{className:"flex w-full flex-col gap-0.5 rounded-2xl bg-muted/40 p-1",children:[e.length>1&&(0,t.jsxs)("p",{className:"px-2 py-1 font-mono text-[10px] text-muted-foreground",children:[e.length," steps"]}),e.map(e=>e.tool?(0,t.jsx)(ea.BotTool,{tool:e.tool,taskId:n,collapsed:!0},e.id):null)]})}e.s(["BotRoom",0,eo,"Conversation",0,ez],279265)},480263,e=>{"use strict";var t=e.i(95187);let n=(0,t.createServerReference)("7fe21e4e229cffa414a4ef02ed9591309ce5d04398",t.callServer,void 0,t.findSourceMapURL,"cancelTaskAction");e.s(["cancelTaskAction",0,n])},176975,e=>{"use strict";var t=e.i(95187);let n=(0,t.createServerReference)("7fbc7081db6a5f8821ff485f87b3fd5a4a2f223663",t.callServer,void 0,t.findSourceMapURL,"answerTaskAction");e.s(["answerTaskAction",0,n])},96892,931619,508734,815731,496336,178378,104194,835878,764224,919191,e=>{"use strict";var t=e.i(456420);let n={name:"arrow-up",size:24,node:[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]};n.node;let s=(0,t.default)(n);e.s(["ArrowUp",0,s],96892);let a={name:"chevrons-right",size:24,node:[["path",{d:"m6 17 5-5-5-5",key:"xnjwq"}],["path",{d:"m13 17 5-5-5-5",key:"17xmmf"}]]};a.node;let o=(0,t.default)(a);e.s(["ChevronsRight",0,o],931619);let r={name:"copy",size:24,node:[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]};r.node;let i=(0,t.default)(r);e.s(["Copy",0,i],508734);var l=e.i(843476),d=e.i(176782),u=e.i(552245),c=e.i(225913),m=e.i(647163);let x=(0,c.cva)("group/bubble relative flex w-fit max-w-[80%] min-w-0 flex-col gap-1 group-data-[align=end]/message:self-end data-[align=end]:self-end data-[variant=ghost]:max-w-full",{variants:{variant:{default:"*:data-[slot=bubble-content]:bg-primary *:data-[slot=bubble-content]:text-primary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-primary/80",secondary:"*:data-[slot=bubble-content]:bg-secondary *:data-[slot=bubble-content]:text-secondary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)]",muted:"*:data-[slot=bubble-content]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--muted),var(--foreground)_5%)]",tinted:"*:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.93_calc(c*0.4)_h)] *:data-[slot=bubble-content]:text-foreground dark:*:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.3_calc(c*0.4)_h)] [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.88_calc(c*0.5)_h)] dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.35_calc(c*0.5)_h)]",outline:"*:data-[slot=bubble-content]:border-border *:data-[slot=bubble-content]:bg-background [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-input/30",ghost:"border-none *:data-[slot=bubble-content]:rounded-none *:data-[slot=bubble-content]:bg-transparent *:data-[slot=bubble-content]:p-0 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted/50",destructive:"*:data-[slot=bubble-content]:bg-destructive/10 *:data-[slot=bubble-content]:text-destructive dark:*:data-[slot=bubble-content]:bg-destructive/20 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/20 dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/30"}},defaultVariants:{variant:"default"}});(0,c.cva)("absolute z-10 flex w-fit shrink-0 items-center justify-center gap-1 rounded-full bg-muted px-1.5 py-0.5 text-sm ring-3 ring-card has-[button]:p-0",{variants:{side:{top:"top-0 -translate-y-3/4",bottom:"bottom-0 translate-y-3/4"},align:{start:"left-3",end:"right-3"}},defaultVariants:{side:"bottom",align:"end"}}),e.s(["Bubble",0,function({variant:e="default",align:t="start",className:n,...s}){return(0,l.jsx)("div",{"data-slot":"bubble","data-variant":e,"data-align":t,className:(0,m.cn)(x({variant:e}),n),...s})},"BubbleContent",0,function({className:e,render:t,...n}){var s;return s={defaultTagName:"div",props:(0,d.mergeProps)({className:(0,m.cn)("w-fit max-w-full min-w-0 overflow-hidden rounded-xl border border-transparent px-3 py-2 text-sm leading-relaxed wrap-break-word group-data-[align=end]/bubble:self-end [button]:text-left [button,a]:transition-colors [button,a]:outline-none [button,a]:focus-visible:border-ring [button,a]:focus-visible:ring-3 [button,a]:focus-visible:ring-ring/50",e)},n),render:t,state:{slot:"bubble-content"}},(0,u.useRenderElement)(s.defaultTagName??"div",s,s)}],815731);var p=e.i(716327),f=e.i(271645);e.s(["FoldedText",0,function({text:e,subject:t,clamp:n="line-clamp-3",tall:s="max-h-40",className:a}){let[o,r]=(0,f.useState)(!1),[i,d]=(0,f.useState)(!1),u=(0,f.useRef)(null);return(0,f.useEffect)(()=>r(!1),[e]),(0,f.useEffect)(()=>{let e=u.current;e&&!o&&d(e.scrollHeight>e.clientHeight+1)},[o,e]),(0,l.jsxs)("div",{className:(0,m.cn)("flex items-start gap-1",a),children:[(0,l.jsx)("p",{ref:u,className:(0,m.cn)("min-w-0 flex-1 text-[13px] leading-snug break-keep",o?(0,m.cn)(s,"overflow-y-auto scrollbar-none"):n),children:e}),(i||o)&&(0,l.jsx)("button",{type:"button",onClick:()=>r(e=>!e),"aria-label":o?`Fold the ${t}`:`Read the whole ${t}`,className:"shrink-0 rounded-md p-0.5 opacity-60 outline-none transition-opacity hover:opacity-100 focus-visible:ring-3 focus-visible:ring-ring/50",children:(0,l.jsx)(p.ChevronDown,{className:(0,m.cn)("size-3.5",o&&"rotate-180")})})]})}],496336);var h=e.i(95187);let b=(0,h.createServerReference)("7fbb988f415acfb6ae0ecf4b9da4d6510c4331ed8f",h.callServer,void 0,h.findSourceMapURL,"markReportedAction");e.s(["markReportedAction",0,b],178378);let g=(0,h.createServerReference)("7f2b62a0347bf9a35aa766fc41149b696cbf7af676",h.callServer,void 0,h.findSourceMapURL,"startTaskAction");e.s(["startTaskAction",0,g],104194);var k=e.i(635963);e.s(["BotRoster",0,function({bots:e,taskId:t}){return e.length<2?null:(0,l.jsxs)("span",{className:"flex shrink-0 items-center gap-1.5",title:e.map(e=>e.name).join(", "),children:[(0,l.jsx)("span",{className:"flex items-center",children:e.slice(0,3).map(e=>(0,l.jsx)(k.BotMark,{size:18,seed:e.name,vary:t,color:e.icon?.color,shape:e.icon?.shape,outline:e.icon?.outline,notify:!1,className:"-ml-[3px] rounded-[7px] ring-2 ring-background first:ml-0"},e.name))}),(0,l.jsxs)("span",{className:"font-mono text-[10px] text-muted-foreground",children:[e.length," bots"]})]})}],835878);var v=e.i(829600);let j={name:"file-code",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}]]};j.node;let y=(0,t.default)(j),N={name:"file-image",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"10",cy:"12",r:"2",key:"737tya"}],["path",{d:"m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22",key:"wt3hpn"}]]};N.node;let w=(0,t.default)(N);var C=e.i(905015);let T={name:"file-spreadsheet",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M8 13h2",key:"yr2amv"}],["path",{d:"M14 13h2",key:"un5t4a"}],["path",{d:"M8 17h2",key:"2yhykz"}],["path",{d:"M14 17h2",key:"10kma7"}]]};T.node;let z=(0,t.default)(T);var S=e.i(226091);let A={name:"file-type",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M11 18h2",key:"12mj7e"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"M9 13v-.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 .5.5v.5",key:"qbrxap"}]]};A.node;let M=(0,t.default)(A);var B=e.i(621285),_=e.i(616172);let R={markdown:S.FileText,csv:z,json:C.FileJson,text:M,image:w};e.s(["PathChips",0,function({text:e,className:t}){let n=(0,f.useMemo)(()=>(0,_.pathsIn)(e),[e]);return n.length?(0,l.jsx)("div",{className:(0,m.cn)("flex flex-wrap gap-1.5",t),children:n.map(e=>{let t,n=e.split("/").pop()??e,s="frame"===(t=(0,_.viewKindOf)(e))?e.toLowerCase().endsWith(".pdf")?S.FileText:y:R[t]??v.File;return(0,l.jsxs)(B.FileLink,{path:e,className:"flex max-w-full items-center gap-1.5 rounded-full bg-muted/70 py-1 pr-2.5 pl-2 font-mono text-[11px] text-foreground/80 outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,l.jsx)(s,{className:"size-3 shrink-0 text-muted-foreground"}),(0,l.jsx)("span",{className:"truncate",children:n})]},e)})}):null}],764224);let I={name:"corner-down-left",size:24,node:[["path",{d:"M20 4v7a4 4 0 0 1-4 4H4",key:"6o5b7l"}],["path",{d:"m9 10-5 5 5 5",key:"1kshq7"}]]};I.node;let E=(0,t.default)(I);e.s(["CornerDownLeft",0,E],919191)},929272,e=>{"use strict";var t=e.i(456420);let n={name:"square",size:24,node:[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]};n.node;let s=(0,t.default)(n);e.s(["Square",0,s],929272)}]);
@@ -1,2 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,507906,e=>{"use strict";var t,n,r,o,a,i,l,s,u=e.i(843476),c=e.i(689664),d=e.i(779266),f=e.i(77071),m=e.i(759659),p=e.i(747925),h=e.i(263676),v=e.i(271645),g=e.i(798120),b=e.i(167881),x=/[\\\/_+.#"@\[\(\{&]/,y=/[\\\/_+.#"@\[\(\{&]/g,E=/[\s-]/,w=/[\s-]/g;function S(e){return e.toLowerCase().replace(w," ")}var k=Object.defineProperty,j=(e,t)=>k(e,"name",{value:t,configurable:!0}),N=!!("u">typeof window&&window.document&&window.document.createElement);function C(e,t,{checkForDefaultPrevented:n=!0}={}){return j(function(r){if(e?.(r),!1===n||!r||!r.defaultPrevented)return t?.(r)},"handleEvent")}function R(e){if(!N)throw Error("Cannot access document outside of the DOM");return e?.ownerDocument??document}function O(e){return"IFRAME"===e.tagName}j(C,"composeEventHandlers"),j(function(e){if(!N)throw Error("Cannot access window outside of the DOM");return e?.ownerDocument?.defaultView??window},"getOwnerWindow"),j(R,"getOwnerDocument"),j(function e(t,n=!1){let{activeElement:r}=R(t);if(!r?.nodeName)return null;if(O(r)&&r.contentDocument)return e(r.contentDocument.body,n);if(n){let e=r.getAttribute("aria-activedescendant");if(e){let t=R(r).getElementById(e);if(t)return t}}return r},"getActiveElement"),j(O,"isFrame");var P=Object.defineProperty,A=(e,t)=>P(e,"name",{value:t,configurable:!0});function M(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function D(...e){return t=>{let n=!1,r=e.map(e=>{let r=M(e,t);return n||"function"!=typeof r||(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];"function"==typeof n?n():M(e[t],null)}}}}function I(...e){return v.useCallback(D(...e),e)}A(M,"setRef"),A(D,"composeRefs"),A(I,"useComposedRefs");var T=Object.defineProperty,L=(e,t)=>T(e,"name",{value:t,configurable:!0});function _(e,t=[]){let n=[];function r(t,r){let o=v.createContext(r);o.displayName=t+"Context";let a=n.length;n=[...n,r];let i=L(t=>{let{scope:n,children:r,...i}=t,l=n?.[e]?.[a]||o,s=v.useMemo(()=>i,Object.values(i));return(0,u.jsx)(l.Provider,{value:s,children:r})},"Provider");function l(n,i,s={}){let{optional:u=!1}=s,c=i?.[e]?.[a]||o,d=v.useContext(c);if(d)return d;if(void 0!==r)return r;if(!u)throw Error(`\`${n}\` must be used within \`${t}\``)}return i.displayName=t+"Provider",L(l,"useContext"),[i,l]}L(r,"createContext");let o=L(()=>{let t=n.map(e=>v.createContext(e));return L(function(n){let r=n?.[e]||t;return v.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])},"useScope")},"createScope");return o.scopeName=e,[r,F(o,...t)]}function F(...e){let t=e[0];if(1===e.length)return t;let n=L(()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return L(function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let o=n(e)[`__scope${r}`];return{...t,...o}},{});return v.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])},"useComposedScopes")},"createScope");return n.scopeName=t.scopeName,n}L(function(e,t){let n=v.createContext(t);n.displayName=e+"Context";let r=L(e=>{let{children:t,...r}=e,o=v.useMemo(()=>r,Object.values(r));return(0,u.jsx)(n.Provider,{value:o,children:t})},"Provider");function o(r,a={}){let{optional:i=!1}=a,l=v.useContext(n);if(l)return l;if(void 0!==t)return t;if(!i)throw Error(`\`${r}\` must be used within \`${e}\``)}return r.displayName=e+"Provider",L(o,"useContext"),[r,o]},"createContext"),L(_,"createContextScope"),L(F,"composeContextScopes");var B=globalThis?.document?v.useLayoutEffect:()=>{},$=Object.defineProperty,z=v[" useId ".trim().toString()]||(()=>void 0),W=0;function K(e){let[t,n]=v.useState(z());return B(()=>{e||n(e=>e??String(W++))},[e]),e||(t?`radix-${t}`:"")}$(K,"name",{value:"useId",configurable:!0});var U=Object.defineProperty,V=v[" useEffectEvent ".trim().toString()],q=v[" useInsertionEffect ".trim().toString()];function H(e){if("function"==typeof V)return V(e);let t=v.useRef(()=>{throw Error("Cannot call an event handler while rendering.")});return"function"==typeof q?q(()=>{t.current=e}):B(()=>{t.current=e}),v.useMemo(()=>(...e)=>t.current?.(...e),[])}U(H,"name",{value:"useEffectEvent",configurable:!0});var X=Object.defineProperty,Y=(e,t)=>X(e,"name",{value:t,configurable:!0}),G=v[" useInsertionEffect ".trim().toString()]||B;function Z({prop:e,defaultProp:t,onChange:n=Y(()=>{},"onChange"),caller:r}){let[o,a,i]=J({defaultProp:t,onChange:n}),l=void 0!==e,s=l?e:o;return[s,v.useCallback(t=>{if(l){let n=Q(t)?t(e):t;n!==e&&i.current?.(n)}else a(t)},[l,e,a,i])]}function J({defaultProp:e,onChange:t}){let[n,r]=v.useState(e),o=v.useRef(n),a=v.useRef(t);return G(()=>{a.current=t},[t]),v.useEffect(()=>{o.current!==n&&(a.current?.(n),o.current=n)},[n,o]),[n,r,a]}function Q(e){return"function"==typeof e}Y(Z,"useControllableState"),Y(J,"useUncontrolledState"),Y(Q,"isFunction");var ee=Symbol("RADIX:SYNC_STATE");Y(function(e,t,n,r){let{prop:o,defaultProp:a,onChange:i,caller:l}=t,s=void 0!==o,u=H(i),c=[{...n,state:a}];r&&c.push(r);let[d,f]=v.useReducer((t,n)=>{if(n.type===ee)return{...t,state:n.state};let r=e(t,n);return s&&!Object.is(r.state,t.state)&&u(r.state),r},...c),m=d.state,p=v.useRef(m);v.useEffect(()=>{p.current!==m&&(p.current=m,s||u(m))},[m,p,s]);let h=v.useMemo(()=>void 0!==o?{...d,state:o}:d,[d,o]);return v.useEffect(()=>{s&&!Object.is(o,d.state)&&f({type:ee,state:o})},[o,d.state,s]),[h,f]},"useControllableStateReducer");var et=e.i(174080),en=Object.defineProperty,er=(e,t)=>en(e,"name",{value:t,configurable:!0});function eo(e){let t=v.forwardRef((t,n)=>{let{children:r,...o}=t,a=null,i=!1,l=[];ed(r)&&"function"==typeof eh&&(r=eh(r._payload)),v.Children.forEach(r,e=>{if(eu(e)){i=!0;let t="child"in e.props?e.props.child:e.props.children;ed(t)&&"function"==typeof eh&&(t=eh(t._payload)),a=ei(e,t),l.push(a?.props?.children)}else l.push(e)}),a?a=v.cloneElement(a,void 0,l):!i&&1===v.Children.count(r)&&v.isValidElement(r)&&(a=r);let s=a?es(a):void 0,u=I(n,s);if(!a){if(r||0===r)throw Error(i?ep(e):em(e));return r}let c=el(o,a.props??{});return a.type!==v.Fragment&&(c.ref=n?u:s),v.cloneElement(a,c)});return t.displayName=`${e}.Slot`,t}er(eo,"createSlot");var ea=Symbol.for("radix.slottable");er(function(e){let t=er(e=>"child"in e?e.children(e.child):e.children,"Slottable");return t.displayName=`${e}.Slottable`,t.__radixId=ea,t},"createSlottable");var ei=er((e,t)=>{if("child"in e.props){let t=e.props.child;return v.isValidElement(t)?v.cloneElement(t,void 0,e.props.children(t.props.children)):null}return v.isValidElement(t)?t:null},"getSlottableElementFromSlottable");function el(e,t){let n={...t};for(let r in t){let o=e[r],a=t[r];/^on[A-Z]/.test(r)?o&&a?n[r]=(...e)=>{let t=a(...e);return o(...e),t}:o&&(n[r]=o):"style"===r?n[r]={...o,...a}:"className"===r&&(n[r]=[o,a].filter(Boolean).join(" "))}return{...e,...n}}function es(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(n=(t=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning)?e.props.ref:e.props.ref||e.ref}function eu(e){return v.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===ea}er(el,"mergeProps"),er(es,"getElementRef"),er(eu,"isSlottable");var ec=Symbol.for("react.lazy");function ed(e){return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===ec&&"_payload"in e&&ef(e._payload)}function ef(e){return"object"==typeof e&&null!==e&&"then"in e}er(ed,"isLazyComponent"),er(ef,"isPromiseLike");var em=er(e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,"createSlotError"),ep=er(e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,"createSlottableError"),eh=v[" use ".trim().toString()],ev=Object.defineProperty,eg=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{let n=eo(`Primitive.${t}`),r=v.forwardRef((e,r)=>{let{asChild:o,...a}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,u.jsx)(o?n:t,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function eb(e,t){e&&et.flushSync(()=>e.dispatchEvent(t))}function ex(e){let t=v.useRef(e);return v.useEffect(()=>{t.current=e}),v.useMemo(()=>(...e)=>t.current?.(...e),[])}ev(eb,"name",{value:"dispatchDiscreteCustomEvent",configurable:!0}),(0,Object.defineProperty)(ex,"name",{value:"useCallbackRef",configurable:!0});var ey=Object.defineProperty,eE=(e,t)=>ey(e,"name",{value:t,configurable:!0}),ew="dismissableLayer.update",eS=v.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),ek=v.forwardRef(eE(function(e,t){let{disableOutsidePointerEvents:n=!1,deferPointerDownOutside:r=!1,onEscapeKeyDown:o,onPointerDownOutside:a,onFocusOutside:i,onInteractOutside:s,onDismiss:c,...d}=e,f=v.useContext(eS),[m,p]=v.useState(null),h=m?.ownerDocument??globalThis?.document,[,g]=v.useState({}),b=I(t,p),x=Array.from(f.layers),[y]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),E=y?x.indexOf(y):-1,w=m?x.indexOf(m):-1,S=f.layersWithOutsidePointerEventsDisabled.size>0,k=w>=E,j=v.useRef(!1),N=eC(e=>{a?.(e),s?.(e),e.defaultPrevented||c?.()},{ownerDocument:h,deferPointerDownOutside:r,isDeferredPointerDownOutsideRef:j,dismissableSurfaces:f.dismissableSurfaces,shouldHandlePointerDownOutside:v.useCallback(e=>{if(!(e instanceof Node))return!1;let t=[...f.branches].some(t=>t.contains(e));return k&&!t},[f.branches,k])}),R=eR(e=>{if(r&&j.current)return;let t=e.target;![...f.branches].some(e=>e.contains(t))&&(i?.(e),s?.(e),e.defaultPrevented||c?.())},h),O=!!m&&w===x.length-1,P=ex(e=>{"Escape"===e.key&&(o?.(e),!e.defaultPrevented&&c&&(e.preventDefault(),c()))});return v.useEffect(()=>{if(O)return h.addEventListener("keydown",P,{capture:!0}),()=>h.removeEventListener("keydown",P,{capture:!0})},[h,O,P]),v.useEffect(()=>{if(m)return n&&(0===f.layersWithOutsidePointerEventsDisabled.size&&(l=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(m)),f.layers.add(m),eO(),()=>{n&&(f.layersWithOutsidePointerEventsDisabled.delete(m),0===f.layersWithOutsidePointerEventsDisabled.size&&(h.body.style.pointerEvents=l))}},[m,h,n,f]),v.useEffect(()=>()=>{m&&(f.layers.delete(m),f.layersWithOutsidePointerEventsDisabled.delete(m),eO())},[m,f]),v.useEffect(()=>{let e=eE(()=>g({}),"handleUpdate");return document.addEventListener(ew,e),()=>document.removeEventListener(ew,e)},[]),(0,u.jsx)(eg.div,{...d,ref:b,style:{pointerEvents:S?k?"auto":"none":void 0,...e.style},onFocusCapture:C(e.onFocusCapture,R.onFocusCapture),onBlurCapture:C(e.onBlurCapture,R.onBlurCapture),onPointerDownCapture:C(e.onPointerDownCapture,N.onPointerDownCapture)})},"DismissableLayer"));function ej(){let e=v.useContext(eS),[t,n]=v.useState(null);return v.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}eE(ej,"useDismissableLayerSurface");var eN=eE(()=>!0,"IS_TRUE");function eC(e,t){let{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:o,dismissableSurfaces:a,shouldHandlePointerDownOutside:i=eN}=t,l=ex(e),s=v.useRef(!1),u=v.useRef(!1),c=v.useRef(new Map),d=v.useRef(()=>{});return v.useEffect(()=>{function e(){u.current=!1,o.current=!1,c.current.clear()}function t(){return Array.from(c.current.values()).some(Boolean)}function f(e){if(!u.current)return;let t=e.target;t instanceof Node&&[...a].some(e=>e.contains(t))||c.current.set(e.type,!0),"click"===e.type&&window.setTimeout(()=>{u.current&&d.current()},0)}function m(e){u.current&&c.current.set(e.type,!1)}eE(e,"resetOutsideInteraction"),eE(t,"isOutsideInteractionIntercepted"),eE(f,"handleInteractionCapture"),eE(m,"handleInteractionBubble");let p=eE(a=>{if(a.target&&!s.current){let f=function(){n.removeEventListener("click",d.current);let r=t();e(),r||eP("dismissableLayer.pointerDownOutside",l,m,{discrete:!0})};if(eE(f,"handleAndDispatchPointerDownOutsideEvent"),!i(a.target)){n.removeEventListener("click",d.current),e(),s.current=!1;return}let m={originalEvent:a};u.current=!0,o.current=r&&0===a.button,c.current.clear(),r&&0===a.button?(n.removeEventListener("click",d.current),d.current=f,n.addEventListener("click",d.current,{once:!0})):f()}else n.removeEventListener("click",d.current),e();s.current=!1},"handlePointerDown"),h=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(let e of h)n.addEventListener(e,f,!0),n.addEventListener(e,m);let v=window.setTimeout(()=>{n.addEventListener("pointerdown",p)},0);return()=>{for(let e of(window.clearTimeout(v),n.removeEventListener("pointerdown",p),n.removeEventListener("click",d.current),h))n.removeEventListener(e,f,!0),n.removeEventListener(e,m)}},[n,l,r,o,a,i]),{onPointerDownCapture:eE(()=>s.current=!0,"onPointerDownCapture")}}function eR(e,t=globalThis?.document){let n=ex(e),r=v.useRef(!1);return v.useEffect(()=>{let e=eE(e=>{e.target&&!r.current&&eP("dismissableLayer.focusOutside",n,{originalEvent:e},{discrete:!1})},"handleFocus");return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)},[t,n]),{onFocusCapture:eE(()=>r.current=!0,"onFocusCapture"),onBlurCapture:eE(()=>r.current=!1,"onBlurCapture")}}function eO(){let e=new CustomEvent(ew);document.dispatchEvent(e)}function eP(e,t,n,{discrete:r}){let o=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?eb(o,a):o.dispatchEvent(a)}eE(eC,"usePointerDownOutside"),eE(eR,"useFocusOutside"),eE(eO,"dispatchUpdate"),eE(eP,"handleAndDispatchCustomEvent");var eA=Object.defineProperty,eM=(e,t)=>eA(e,"name",{value:t,configurable:!0}),eD="focusScope.autoFocusOnMount",eI="focusScope.autoFocusOnUnmount",eT={bubbles:!1,cancelable:!0},eL=v.forwardRef(eM(function(e,t){let{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:a,...i}=e,[l,s]=v.useState(null),c=ex(o),d=ex(a),f=v.useRef(null),m=I(t,s),p=v.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;v.useEffect(()=>{if(r){let e=function(e){if(p.paused||!l)return;let t=e.target;l.contains(t)?f.current=t:eK(f.current,{select:!0})},t=function(e){if(p.paused||!l)return;let t=e.relatedTarget;null!==t&&(l.contains(t)||eK(f.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&eK(l)};eM(e,"handleFocusIn"),eM(t,"handleFocusOut"),eM(n,"handleMutations"),document.addEventListener("focusin",e),document.addEventListener("focusout",t);let r=new MutationObserver(n);return l&&r.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),r.disconnect()}}},[r,l,p.paused]),v.useEffect(()=>{if(l){eU.add(p);let e=document.activeElement;if(!l.contains(e)){let t=new CustomEvent(eD,eT);l.addEventListener(eD,c),l.dispatchEvent(t),t.defaultPrevented||(e_(eH(eB(l)),{select:!0}),document.activeElement===e&&eK(l))}return()=>{l.removeEventListener(eD,c),setTimeout(()=>{let t=new CustomEvent(eI,eT);l.addEventListener(eI,d),l.dispatchEvent(t),t.defaultPrevented||eK(e??document.body,{select:!0}),l.removeEventListener(eI,d),eU.remove(p)},0)}}},[l,c,d,p]);let h=v.useCallback(e=>{if(!n&&!r||p.paused)return;let t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,o=document.activeElement;if(t&&o){let t=e.currentTarget,[r,a]=eF(t);r&&a?e.shiftKey||o!==a?e.shiftKey&&o===r&&(e.preventDefault(),n&&eK(a,{select:!0})):(e.preventDefault(),n&&eK(r,{select:!0})):o===t&&e.preventDefault()}},[n,r,p.paused]);return(0,u.jsx)(eg.div,{tabIndex:-1,...i,ref:m,onKeyDown:h})},"FocusScope"));function e_(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(eK(r,{select:t}),document.activeElement!==n)return}function eF(e){let t=eB(e);return[e$(t,e),e$(t.reverse(),e)]}function eB(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:eM(e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},"acceptNode")});for(;n.nextNode();)t.push(n.currentNode);return t}function e$(e,t){let n="function"==typeof t.checkVisibility&&t.checkVisibility({checkVisibilityCSS:!0});for(let r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):ez(r,{upTo:t})))return r}function ez(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e&&(void 0===t||e!==t);){if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}function eW(e){return e instanceof HTMLInputElement&&"select"in e}function eK(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&eW(e)&&t&&e.select()}}eM(e_,"focusFirst"),eM(eF,"getTabbableEdges"),eM(eB,"getTabbableCandidates"),eM(e$,"findVisible"),eM(ez,"isHidden"),eM(eW,"isSelectableInput"),eM(eK,"focus");var eU=eV();function eV(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),(e=eq(e,t)).unshift(t)},remove(t){e=eq(e,t),e[0]?.resume()}}}function eq(e,t){let n=[...e],r=n.indexOf(t);return -1!==r&&n.splice(r,1),n}function eH(e){return e.filter(e=>"A"!==e.tagName)}eM(eV,"createFocusScopesStack"),eM(eq,"arrayRemove"),eM(eH,"removeLinks");var eX=Object.defineProperty,eY=v.forwardRef(eX(function(e,t){let{container:n,...r}=e,[o,a]=v.useState(!1);B(()=>a(!0),[]);let i=n||o&&globalThis?.document?.body;return i?et.createPortal((0,u.jsx)(eg.div,{...r,ref:t}),i):null},"name",{value:"Portal",configurable:!0})),eG=Object.defineProperty,eZ=(e,t)=>eG(e,"name",{value:t,configurable:!0});function eJ(e,t){return v.useReducer((e,n)=>t[e][n]??e,e)}eZ(eJ,"useStateMachine");var eQ=eZ(e=>{let{present:t,children:n}=e,r=e0(t),o="function"==typeof n?n({present:r.isPresent}):v.Children.only(n),a=e2(r.ref,e3(o));return"function"==typeof n||r.isPresent?v.cloneElement(o,{ref:a}):null},"Presence");function e0(e){let[t,n]=v.useState(),r=v.useRef(null),o=v.useRef(e),a=v.useRef("none"),i=v.useRef(void 0),[l,s]=eJ(e?"mounted":"unmounted",{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return v.useEffect(()=>{"mounted"===l?(a.current=i.current??e5(r.current),i.current=void 0):a.current="none"},[l]),B(()=>{let t=r.current,n=o.current;if(n!==e){let r=a.current,l=e5(t);e?(i.current=l,s("MOUNT")):"none"===l||t?.display==="none"?s("UNMOUNT"):n&&r!==l?s("ANIMATION_OUT"):s("UNMOUNT"),o.current=e}},[e,s]),B(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,i=eZ(a=>{let i=e5(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&i&&(s("ANIMATION_END"),!o.current)){let r=t.style.animationFillMode;t.style.animationFillMode="forwards",e=n.setTimeout(()=>{"forwards"===t.style.animationFillMode&&(t.style.animationFillMode=r)})}},"handleAnimationEnd"),l=eZ(e=>{e.target===t&&(a.current=e5(r.current))},"handleAnimationStart");return t.addEventListener("animationstart",l),t.addEventListener("animationcancel",i),t.addEventListener("animationend",i),()=>{n.clearTimeout(e),t.removeEventListener("animationstart",l),t.removeEventListener("animationcancel",i),t.removeEventListener("animationend",i)}}s("ANIMATION_END")},[t,s]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:v.useCallback(e=>{if(e){let t=getComputedStyle(e);r.current=t,i.current=e5(t)}else r.current=null;n(e)},[])}}function e1(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function e2(...e){let t=v.useRef(e);return t.current=e,v.useCallback(e=>{let n=t.current,r=!1,o=n.map(t=>{let n=e1(t,e);return r||"function"!=typeof n||(r=!0),n});if(r)return()=>{for(let e=0;e<o.length;e++){let t=o[e];"function"==typeof t?t():e1(n[e],null)}}},[])}function e5(e){return e?.animationName||"none"}function e3(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(n=(t=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning)?e.props.ref:e.props.ref||e.ref}eZ(e0,"usePresence"),eZ(e1,"setRef"),eZ(e2,"useStableComposedRefs"),eZ(e5,"getAnimationName"),eZ(e3,"getElementRef");var e6=Object.defineProperty,e9=(e,t)=>e6(e,"name",{value:t,configurable:!0}),e4=0,e7=null;function e8(){v.useEffect(()=>{e7||(e7={start:te(),end:te()});let{start:e,end:t}=e7;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement("afterbegin",e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement("beforeend",t),e4++,()=>{1===e4&&(e7?.start.remove(),e7?.end.remove(),e7=null),e4=Math.max(0,e4-1)}},[])}function te(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}e9(function(e){return e8(),e.children},"FocusGuards"),e9(e8,"useFocusGuards"),e9(te,"createFocusGuard");var tt=function(){return(tt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function tn(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)0>t.indexOf(r[o])&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}var tr=("function"==typeof SuppressedError&&SuppressedError,"right-scroll-bar-position"),to="width-before-scroll-bar";function ta(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var ti="u">typeof window?v.useLayoutEffect:v.useEffect,tl=new WeakMap,ts=(void 0===t&&(t={}),(void 0===n&&(n=function(e){return e}),r=[],o=!1,a={read:function(){if(o)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return r.length?r[r.length-1]:null},useMedium:function(e){var t=n(e,o);return r.push(t),function(){r=r.filter(function(e){return e!==t})}},assignSyncMedium:function(e){for(o=!0;r.length;){var t=r;r=[],t.forEach(e)}r={push:function(t){return e(t)},filter:function(){return r}}},assignMedium:function(e){o=!0;var t=[];if(r.length){var n=r;r=[],n.forEach(e),t=r}var a=function(){var n=t;t=[],n.forEach(e)},i=function(){return Promise.resolve().then(a)};i(),r={push:function(e){t.push(e),i()},filter:function(e){return t=t.filter(e),r}}}}).options=tt({async:!0,ssr:!1},t),a),tu=function(){},tc=v.forwardRef(function(e,t){var n,r,o,a,i=v.useRef(null),l=v.useState({onScrollCapture:tu,onWheelCapture:tu,onTouchMoveCapture:tu}),s=l[0],u=l[1],c=e.forwardProps,d=e.children,f=e.className,m=e.removeScrollBar,p=e.enabled,h=e.shards,g=e.sideCar,b=e.noRelative,x=e.noIsolation,y=e.inert,E=e.allowPinchZoom,w=e.as,S=e.gapMode,k=tn(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),j=(n=[i,t],r=function(e){return n.forEach(function(t){return ta(t,e)})},(o=(0,v.useState)(function(){return{value:null,callback:r,facade:{get current(){return o.value},set current(value){var e=o.value;e!==value&&(o.value=value,o.callback(value,e))}}}})[0]).callback=r,a=o.facade,ti(function(){var e=tl.get(a);if(e){var t=new Set(e),r=new Set(n),o=a.current;t.forEach(function(e){r.has(e)||ta(e,null)}),r.forEach(function(e){t.has(e)||ta(e,o)})}tl.set(a,n)},[n]),a),N=tt(tt({},k),s);return v.createElement(v.Fragment,null,p&&v.createElement(g,{sideCar:ts,removeScrollBar:m,shards:h,noRelative:b,noIsolation:x,inert:y,setCallbacks:u,allowPinchZoom:!!E,lockRef:i,gapMode:S}),c?v.cloneElement(v.Children.only(d),tt(tt({},N),{ref:j})):v.createElement(void 0===w?"div":w,tt({},N,{className:f,ref:j}),d))});tc.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},tc.classNames={fullWidth:to,zeroRight:tr};var td=function(e){var t=e.sideCar,n=tn(e,["sideCar"]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error("Sidecar medium not found");return v.createElement(r,tt({},n))};td.isSideCarExport=!0;var tf=function(){var e=0,t=null;return{add:function(n){if(0==e&&(t=function(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=s||("u">typeof __webpack_nonce__?__webpack_nonce__:void 0);return t&&e.setAttribute("nonce",t),e}())){var r,o;(r=t).styleSheet?r.styleSheet.cssText=n:r.appendChild(document.createTextNode(n)),o=t,(document.head||document.getElementsByTagName("head")[0]).appendChild(o)}e++},remove:function(){--e||!t||(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},tm=function(){var e=tf();return function(t,n){v.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},tp=function(){var e=tm();return function(t){return e(t.styles,t.dynamic),null}},th={left:0,top:0,right:0,gap:0},tv=function(e){return parseInt(e||"",10)||0},tg=function(e){var t=window.getComputedStyle(document.body),n=t["padding"===e?"paddingLeft":"marginLeft"],r=t["padding"===e?"paddingTop":"marginTop"],o=t["padding"===e?"paddingRight":"marginRight"];return[tv(n),tv(r),tv(o)]},tb=function(e){if(void 0===e&&(e="margin"),"u"<typeof window)return th;var t=tg(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},tx=tp(),ty="data-scroll-locked",tE=function(e,t,n,r){var o=e.left,a=e.top,i=e.right,l=e.gap;return void 0===n&&(n="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(r,";\n padding-right: ").concat(l,"px ").concat(r,";\n }\n body[").concat(ty,"] {\n overflow: hidden ").concat(r,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(r,";"),"margin"===n&&"\n padding-left: ".concat(o,"px;\n padding-top: ").concat(a,"px;\n padding-right: ").concat(i,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(l,"px ").concat(r,";\n "),"padding"===n&&"padding-right: ".concat(l,"px ").concat(r,";")].filter(Boolean).join(""),"\n }\n \n .").concat(tr," {\n right: ").concat(l,"px ").concat(r,";\n }\n \n .").concat(to," {\n margin-right: ").concat(l,"px ").concat(r,";\n }\n \n .").concat(tr," .").concat(tr," {\n right: 0 ").concat(r,";\n }\n \n .").concat(to," .").concat(to," {\n margin-right: 0 ").concat(r,";\n }\n \n body[").concat(ty,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(l,"px;\n }\n")},tw=function(){var e=parseInt(document.body.getAttribute(ty)||"0",10);return isFinite(e)?e:0},tS=function(){v.useEffect(function(){return document.body.setAttribute(ty,(tw()+1).toString()),function(){var e=tw()-1;e<=0?document.body.removeAttribute(ty):document.body.setAttribute(ty,e.toString())}},[])},tk=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=void 0===r?"margin":r;tS();var a=v.useMemo(function(){return tb(o)},[o]);return v.createElement(tx,{styles:tE(a,!t,o,n?"":"!important")})},tj=!1;if("u">typeof window)try{var tN=Object.defineProperty({},"passive",{get:function(){return tj=!0,!0}});window.addEventListener("test",tN,tN),window.removeEventListener("test",tN,tN)}catch(e){tj=!1}var tC=!!tj&&{passive:!1},tR=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return"hidden"!==n[t]&&(n.overflowY!==n.overflowX||"TEXTAREA"===e.tagName||"visible"!==n[t])},tO=function(e,t){var n=t.ownerDocument,r=t;do{if("u">typeof ShadowRoot&&r instanceof ShadowRoot&&(r=r.host),tP(e,r)){var o=tA(e,r);if(o[1]>o[2])return!0}r=r.parentNode}while(r&&r!==n.body)return!1},tP=function(e,t){return"v"===e?tR(t,"overflowY"):tR(t,"overflowX")},tA=function(e,t){return"v"===e?[t.scrollTop,t.scrollHeight,t.clientHeight]:[t.scrollLeft,t.scrollWidth,t.clientWidth]},tM=function(e,t,n,r,o){var a,i=(a=window.getComputedStyle(t).direction,"h"===e&&"rtl"===a?-1:1),l=i*r,s=n.target,u=t.contains(s),c=!1,d=l>0,f=0,m=0;do{if(!s)break;var p=tA(e,s),h=p[0],v=p[1]-p[2]-i*h;(h||v)&&tP(e,s)&&(f+=v,m+=h);var g=s.parentNode;s=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!u&&s!==document.body||u&&(t.contains(s)||t===s))return d&&(o&&1>Math.abs(f)||!o&&l>f)?c=!0:!d&&(o&&1>Math.abs(m)||!o&&-l>m)&&(c=!0),c},tD=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},tI=function(e){return[e.deltaX,e.deltaY]},tT=function(e){return e&&"current"in e?e.current:e},tL=0,t_=[];let tF=(i=function(e){var t=v.useRef([]),n=v.useRef([0,0]),r=v.useRef(),o=v.useState(tL++)[0],a=v.useState(tp)[0],i=v.useRef(e);v.useEffect(function(){i.current=e},[e]),v.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var t=(function(e,t,n){if(n||2==arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))})([e.lockRef.current],(e.shards||[]).map(tT),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),t.forEach(function(e){return e.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var l=v.useCallback(function(e,t){if("touches"in e&&2===e.touches.length||"wheel"===e.type&&e.ctrlKey)return!i.current.allowPinchZoom;var o,a=tD(e),l=n.current,s="deltaX"in e?e.deltaX:l[0]-a[0],u="deltaY"in e?e.deltaY:l[1]-a[1],c=e.target,d=Math.abs(s)>Math.abs(u)?"h":"v";if("touches"in e&&"h"===d&&"range"===c.type)return!1;var f=window.getSelection(),m=f&&f.anchorNode;if(m&&(m===c||m.contains(c)))return!1;var p=tO(d,c);if(!p)return!0;if(p?o=d:(o="v"===d?"h":"v",p=tO(d,c)),!p)return!1;if(!r.current&&"changedTouches"in e&&(s||u)&&(r.current=o),!o)return!0;var h=r.current||o;return tM(h,t,e,"h"===h?s:u,!0)},[]),s=v.useCallback(function(e){if(t_.length&&t_[t_.length-1]===a){var n="deltaY"in e?tI(e):tD(e),r=t.current.filter(function(t){var r;return t.name===e.type&&(t.target===e.target||e.target===t.shadowParent)&&(r=t.delta,r[0]===n[0]&&r[1]===n[1])})[0];if(r&&r.should){e.cancelable&&e.preventDefault();return}if(!r){var o=(i.current.shards||[]).map(tT).filter(Boolean).filter(function(t){return t.contains(e.target)});(o.length>0?l(e,o[0]):!i.current.noIsolation)&&e.cancelable&&e.preventDefault()}}},[]),u=v.useCallback(function(e,n,r,o){var a={name:e,delta:n,target:r,should:o,shadowParent:function(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),c=v.useCallback(function(e){n.current=tD(e),r.current=void 0},[]),d=v.useCallback(function(t){u(t.type,tI(t),t.target,l(t,e.lockRef.current))},[]),f=v.useCallback(function(t){u(t.type,tD(t),t.target,l(t,e.lockRef.current))},[]);v.useEffect(function(){return t_.push(a),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener("wheel",s,tC),document.addEventListener("touchmove",s,tC),document.addEventListener("touchstart",c,tC),function(){t_=t_.filter(function(e){return e!==a}),document.removeEventListener("wheel",s,tC),document.removeEventListener("touchmove",s,tC),document.removeEventListener("touchstart",c,tC)}},[]);var m=e.removeScrollBar,p=e.inert;return v.createElement(v.Fragment,null,p?v.createElement(a,{styles:"\n .block-interactivity-".concat(o," {pointer-events: none;}\n .allow-interactivity-").concat(o," {pointer-events: all;}\n")}):null,m?v.createElement(tk,{noRelative:e.noRelative,gapMode:e.gapMode}):null)},ts.useMedium(i),td);var tB=v.forwardRef(function(e,t){return v.createElement(tc,tt({},e,{ref:t,sideCar:tF}))});tB.classNames=tc.classNames;var t$=new WeakMap,tz=new WeakMap,tW={},tK=0,tU=function(e){return e&&(e.host||tU(e.parentNode))},tV=function(e,t,n,r){var o=(Array.isArray(e)?e:[e]).map(function(e){if(t.contains(e))return e;var n=tU(e);return n&&t.contains(n)?n:(console.error("aria-hidden",e,"in not contained inside",t,". Doing nothing"),null)}).filter(function(e){return!!e});tW[n]||(tW[n]=new WeakMap);var a=tW[n],i=[],l=new Set,s=new Set(o),u=function(e){!e||l.has(e)||(l.add(e),u(e.parentNode))};o.forEach(u);var c=function(e){!e||s.has(e)||Array.prototype.forEach.call(e.children,function(e){if(l.has(e))c(e);else try{var t=e.getAttribute(r),o=null!==t&&"false"!==t,s=(t$.get(e)||0)+1,u=(a.get(e)||0)+1;t$.set(e,s),a.set(e,u),i.push(e),1===s&&o&&tz.set(e,!0),1===u&&e.setAttribute(n,"true"),o||e.setAttribute(r,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}})};return c(t),l.clear(),tK++,function(){i.forEach(function(e){var t=t$.get(e)-1,o=a.get(e)-1;t$.set(e,t),a.set(e,o),t||(tz.has(e)||e.removeAttribute(r),tz.delete(e)),o||e.removeAttribute(n)}),--tK||(t$=new WeakMap,t$=new WeakMap,tz=new WeakMap,tW={})}},tq=function(e,t,n){void 0===n&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=t||("u"<typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live], script"))),tV(r,o,n,"aria-hidden")):function(){return null}},tH=Object.defineProperty,tX=(e,t)=>tH(e,"name",{value:t,configurable:!0}),tY="Dialog",[tG,tZ]=_(tY),[tJ,tQ]=tG(tY),t0=tX(e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:o,onOpenChange:a,modal:i=!0}=e,l=v.useRef(null),s=v.useRef(null),[c,d]=Z({prop:r,defaultProp:o??!1,onChange:a,caller:tY}),[f,m]=v.useState(0),[p,h]=v.useState(0);return(0,u.jsx)(tJ,{scope:t,triggerRef:l,contentRef:s,contentId:K(),titleId:K(),descriptionId:K(),titlePresent:f>0,descriptionPresent:p>0,setTitleCount:m,setDescriptionCount:h,open:c,onOpenChange:d,onOpenToggle:v.useCallback(()=>d(e=>!e),[d]),modal:i,children:n})},"Dialog"),t1="DialogPortal",[t2,t5]=tG(t1,{forceMount:void 0}),t3=tX(e=>{let{__scopeDialog:t,forceMount:n,children:r,container:o}=e,a=tQ(t1,t);return(0,u.jsx)(t2,{scope:t,forceMount:n,children:v.Children.map(r,e=>(0,u.jsx)(eQ,{present:n||a.open,children:(0,u.jsx)(eY,{asChild:!0,container:o,children:e})}))})},"DialogPortal"),t6="DialogOverlay",t9=v.forwardRef(tX(function(e,t){let n=t5(t6,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=tQ(t6,e.__scopeDialog);return a.modal?(0,u.jsx)(eQ,{present:r||a.open,children:(0,u.jsx)(t7,{...o,ref:t})}):null},"DialogOverlay")),t4=eo("DialogOverlay.RemoveScroll"),t7=v.forwardRef(tX(function(e,t){let{__scopeDialog:n,...r}=e,o=tQ(t6,n),a=I(t,ej());return(0,u.jsx)(tB,{as:t4,allowPinchZoom:!0,shards:[o.contentRef],children:(0,u.jsx)(eg.div,{"data-state":no(o.open),...r,ref:a,style:{pointerEvents:"auto",...r.style}})})},"DialogOverlayImpl")),t8="DialogContent",ne=v.forwardRef(tX(function(e,t){let n=t5(t8,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=tQ(t8,e.__scopeDialog);return(0,u.jsx)(eQ,{present:r||a.open,children:a.modal?(0,u.jsx)(nt,{...o,ref:t}):(0,u.jsx)(nn,{...o,ref:t})})},"DialogContent")),nt=v.forwardRef(tX(function(e,t){let n=tQ(t8,e.__scopeDialog),r=v.useRef(null),o=I(t,n.contentRef,r);return v.useEffect(()=>{let e=r.current;if(e)return tq(e)},[]),(0,u.jsx)(nr,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:C(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:C(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey;(2===t.button||n)&&e.preventDefault()}),onFocusOutside:C(e.onFocusOutside,e=>e.preventDefault())})},"DialogContentModal")),nn=v.forwardRef(tX(function(e,t){let n=tQ(t8,e.__scopeDialog),r=v.useRef(!1),o=v.useRef(!1);return(0,u.jsx)(nr,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,o.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,"pointerdown"===t.detail.originalEvent.type&&(o.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&o.current&&t.preventDefault()}})},"DialogContentNonModal")),nr=v.forwardRef(tX(function(e,t){let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:a,...i}=e,l=tQ(t8,n);return e8(),(0,u.jsx)(u.Fragment,{children:(0,u.jsx)(eL,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:a,children:(0,u.jsx)(ek,{role:"dialog",id:l.contentId,"aria-describedby":l.descriptionPresent?l.descriptionId:void 0,"aria-labelledby":l.titlePresent?l.titleId:void 0,"data-state":no(l.open),...i,ref:t,deferPointerDownOutside:!0,onDismiss:()=>l.onOpenChange(!1)})})})},"DialogContentImpl"));function no(e){return e?"open":"closed"}tX(no,"getState");var na='[cmdk-group=""]',ni='[cmdk-group-items=""]',nl='[cmdk-item=""]',ns=`${nl}:not([aria-disabled="true"])`,nu="cmdk-item-select",nc="data-value",nd=(e,t,n)=>{var r;return r=e,function e(t,n,r,o,a,i,l){if(i===n.length)return a===t.length?1:.99;var s=`${a},${i}`;if(void 0!==l[s])return l[s];for(var u,c,d,f,m=o.charAt(i),p=r.indexOf(m,a),h=0;p>=0;)(u=e(t,n,r,o,p+1,i+1,l))>h&&(p===a?u*=1:x.test(t.charAt(p-1))?(u*=.8,(d=t.slice(a,p-1).match(y))&&a>0&&(u*=Math.pow(.999,d.length))):E.test(t.charAt(p-1))?(u*=.9,(f=t.slice(a,p-1).match(w))&&a>0&&(u*=Math.pow(.999,f.length))):(u*=.17,a>0&&(u*=Math.pow(.999,p-a))),t.charAt(p)!==n.charAt(i)&&(u*=.9999)),(u<.1&&r.charAt(p-1)===o.charAt(i+1)||o.charAt(i+1)===o.charAt(i)&&r.charAt(p-1)!==o.charAt(i))&&.1*(c=e(t,n,r,o,p+1,i+2,l))>u&&(u=.1*c),u>h&&(h=u),p=r.indexOf(m,p+1);return l[s]=h,h}(r=n&&n.length>0?`${r+" "+n.join(" ")}`:r,t,S(r),S(t),0,0,{})},nf=v.createContext(void 0),nm=v.createContext(void 0),np=v.createContext(void 0),nh=v.forwardRef((e,t)=>{let n=nj(()=>{var t,n;return{search:"",value:null!=(n=null!=(t=e.value)?t:e.defaultValue)?n:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=nj(()=>new Set),o=nj(()=>new Map),a=nj(()=>new Map),i=nj(()=>new Set),l=nS(e),{label:s,children:u,value:c,onValueChange:d,filter:f,shouldFilter:m,loop:p,disablePointerSelection:h=!1,vimBindings:g=!0,...b}=e,x=K(),y=K(),E=K(),w=v.useRef(null),S=nR();nk(()=>{if(void 0!==c){let e=c.trim();n.current.value=e,k.emit()}},[c]),nk(()=>{S(6,P)},[]);let k=v.useMemo(()=>({subscribe:e=>(i.current.add(e),()=>i.current.delete(e)),snapshot:()=>n.current,setState:(e,t,r)=>{var o,a,i,s;if(!Object.is(n.current[e],t)){if(n.current[e]=t,"search"===e)O(),C(),S(1,R);else if("value"===e){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let e=document.getElementById(E);e?e.focus():null==(o=document.getElementById(x))||o.focus()}if(S(7,()=>{var e;n.current.selectedItemId=null==(e=A())?void 0:e.id,k.emit()}),r||S(5,P),(null==(a=l.current)?void 0:a.value)!==void 0){null==(s=(i=l.current).onValueChange)||s.call(i,null!=t?t:"");return}}k.emit()}},emit:()=>{i.current.forEach(e=>e())}}),[]),j=v.useMemo(()=>({value:(e,t,r)=>{var o;t!==(null==(o=a.current.get(e))?void 0:o.value)&&(a.current.set(e,{value:t,keywords:r}),n.current.filtered.items.set(e,N(t,r)),S(2,()=>{C(),k.emit()}))},item:(e,t)=>(r.current.add(e),t&&(o.current.has(t)?o.current.get(t).add(e):o.current.set(t,new Set([e]))),S(3,()=>{O(),C(),n.current.value||R(),k.emit()}),()=>{a.current.delete(e),r.current.delete(e),n.current.filtered.items.delete(e);let t=A();S(4,()=>{O(),(null==t?void 0:t.getAttribute("id"))===e&&R(),k.emit()})}),group:e=>(o.current.has(e)||o.current.set(e,new Set),()=>{a.current.delete(e),o.current.delete(e)}),filter:()=>l.current.shouldFilter,label:s||e["aria-label"],getDisablePointerSelection:()=>l.current.disablePointerSelection,listId:x,inputId:E,labelId:y,listInnerRef:w}),[]);function N(e,t){var r,o;let a=null!=(o=null==(r=l.current)?void 0:r.filter)?o:nd;return e?a(e,n.current.search,t):0}function C(){if(!n.current.search||!1===l.current.shouldFilter)return;let e=n.current.filtered.items,t=[];n.current.filtered.groups.forEach(n=>{let r=o.current.get(n),a=0;r.forEach(t=>{a=Math.max(e.get(t),a)}),t.push([n,a])});let r=w.current;M().sort((t,n)=>{var r,o;let a=t.getAttribute("id"),i=n.getAttribute("id");return(null!=(r=e.get(i))?r:0)-(null!=(o=e.get(a))?o:0)}).forEach(e=>{let t=e.closest(ni);t?t.appendChild(e.parentElement===t?e:e.closest(`${ni} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${ni} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{var t;let n=null==(t=w.current)?void 0:t.querySelector(`${na}[${nc}="${encodeURIComponent(e[0])}"]`);null==n||n.parentElement.appendChild(n)})}function R(){let e=M().find(e=>"true"!==e.getAttribute("aria-disabled")),t=null==e?void 0:e.getAttribute(nc);k.setState("value",t||void 0)}function O(){var e,t,i,s;if(!n.current.search||!1===l.current.shouldFilter){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let u=0;for(let o of r.current){let r=N(null!=(t=null==(e=a.current.get(o))?void 0:e.value)?t:"",null!=(s=null==(i=a.current.get(o))?void 0:i.keywords)?s:[]);n.current.filtered.items.set(o,r),r>0&&u++}for(let[e,t]of o.current)for(let r of t)if(n.current.filtered.items.get(r)>0){n.current.filtered.groups.add(e);break}n.current.filtered.count=u}function P(){var e,t,n;let r=A();r&&((null==(e=r.parentElement)?void 0:e.firstChild)===r&&(null==(n=null==(t=r.closest(na))?void 0:t.querySelector('[cmdk-group-heading=""]'))||n.scrollIntoView({block:"nearest"})),r.scrollIntoView({block:"nearest"}))}function A(){var e;return null==(e=w.current)?void 0:e.querySelector(`${nl}[aria-selected="true"]`)}function M(){var e;return Array.from((null==(e=w.current)?void 0:e.querySelectorAll(ns))||[])}function D(e){let t=M()[e];t&&k.setState("value",t.getAttribute(nc))}function I(e){var t;let n=A(),r=M(),o=r.findIndex(e=>e===n),a=r[o+e];null!=(t=l.current)&&t.loop&&(a=o+e<0?r[r.length-1]:o+e===r.length?r[0]:r[o+e]),a&&k.setState("value",a.getAttribute(nc))}function T(e){let t=A(),n=null==t?void 0:t.closest(na),r;for(;n&&!r;)r=null==(n=e>0?function(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}(n,na):function(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}(n,na))?void 0:n.querySelector(ns);r?k.setState("value",r.getAttribute(nc)):I(e)}let L=()=>D(M().length-1),_=e=>{e.preventDefault(),e.metaKey?L():e.altKey?T(1):I(1)},F=e=>{e.preventDefault(),e.metaKey?D(0):e.altKey?T(-1):I(-1)};return v.createElement(eg.div,{ref:t,tabIndex:-1,...b,"cmdk-root":"",onKeyDown:e=>{var t;null==(t=b.onKeyDown)||t.call(b,e);let n=e.nativeEvent.isComposing||229===e.keyCode;if(!(e.defaultPrevented||n))switch(e.key){case"n":case"j":g&&e.ctrlKey&&_(e);break;case"ArrowDown":_(e);break;case"p":case"k":g&&e.ctrlKey&&F(e);break;case"ArrowUp":F(e);break;case"Home":e.preventDefault(),D(0);break;case"End":e.preventDefault(),L();break;case"Enter":{e.preventDefault();let t=A();if(t){let e=new Event(nu);t.dispatchEvent(e)}}}}},v.createElement("label",{"cmdk-label":"",htmlFor:j.inputId,id:j.labelId,style:nP},s),nO(e,e=>v.createElement(nm.Provider,{value:k},v.createElement(nf.Provider,{value:j},e))))}),nv=v.forwardRef((e,t)=>{var n,r;let o=K(),a=v.useRef(null),i=v.useContext(np),l=v.useContext(nf),s=nS(e),u=null!=(r=null==(n=s.current)?void 0:n.forceMount)?r:null==i?void 0:i.forceMount;nk(()=>{if(!u)return l.item(o,null==i?void 0:i.id)},[u]);let c=nC(o,a,[e.value,e.children,a],e.keywords),d=v.useContext(nm),f=nN(e=>e.value&&e.value===c.current),m=nN(e=>!!u||!1===l.filter()||!e.search||e.filtered.items.get(o)>0);function p(){var e,t;h(),null==(t=(e=s.current).onSelect)||t.call(e,c.current)}function h(){d.setState("value",c.current,!0)}if(v.useEffect(()=>{let t=a.current;if(!(!t||e.disabled))return t.addEventListener(nu,p),()=>t.removeEventListener(nu,p)},[m,e.onSelect,e.disabled]),!m)return null;let{disabled:g,value:b,onSelect:x,forceMount:y,keywords:E,...w}=e;return v.createElement(eg.div,{ref:D(a,t),...w,id:o,"cmdk-item":"",role:"option","aria-disabled":!!g,"aria-selected":!!f,"data-disabled":!!g,"data-selected":!!f,onPointerMove:g||l.getDisablePointerSelection()?void 0:h,onClick:g?void 0:p},e.children)}),ng=v.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:o,...a}=e,i=K(),l=v.useRef(null),s=v.useRef(null),u=K(),c=v.useContext(nf),d=nN(e=>!!o||!1===c.filter()||!e.search||e.filtered.groups.has(i));nk(()=>c.group(i),[]),nC(i,l,[e.value,e.heading,s]);let f=v.useMemo(()=>({id:i,forceMount:o}),[o]);return v.createElement(eg.div,{ref:D(l,t),...a,"cmdk-group":"",role:"presentation",hidden:!d||void 0},n&&v.createElement("div",{ref:s,"cmdk-group-heading":"","aria-hidden":!0,id:u},n),nO(e,e=>v.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?u:void 0},v.createElement(np.Provider,{value:f},e))))}),nb=v.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,o=v.useRef(null),a=nN(e=>!e.search);return n||a?v.createElement(eg.div,{ref:D(o,t),...r,"cmdk-separator":"",role:"separator"}):null}),nx=v.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,o=null!=e.value,a=v.useContext(nm),i=nN(e=>e.search),l=nN(e=>e.selectedItemId),s=v.useContext(nf);return v.useEffect(()=>{null!=e.value&&a.setState("search",e.value)},[e.value]),v.createElement(eg.input,{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":s.listId,"aria-labelledby":s.labelId,"aria-activedescendant":l,id:s.inputId,type:"text",value:o?e.value:i,onChange:e=>{o||a.setState("search",e.target.value),null==n||n(e.target.value)}})}),ny=v.forwardRef((e,t)=>{let{children:n,label:r="Suggestions",...o}=e,a=v.useRef(null),i=v.useRef(null),l=nN(e=>e.selectedItemId),s=v.useContext(nf);return v.useEffect(()=>{if(i.current&&a.current){let e=i.current,t=a.current,n,r=new ResizeObserver(()=>{n=requestAnimationFrame(()=>{let n=e.offsetHeight;t.style.setProperty("--cmdk-list-height",n.toFixed(1)+"px")})});return r.observe(e),()=>{cancelAnimationFrame(n),r.unobserve(e)}}},[]),v.createElement(eg.div,{ref:D(a,t),...o,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":l,"aria-label":r,id:s.listId},nO(e,e=>v.createElement("div",{ref:D(i,s.listInnerRef),"cmdk-list-sizer":""},e)))}),nE=v.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:o,contentClassName:a,container:i,...l}=e;return v.createElement(t0,{open:n,onOpenChange:r},v.createElement(t3,{container:i},v.createElement(t9,{"cmdk-overlay":"",className:o}),v.createElement(ne,{"aria-label":e.label,"cmdk-dialog":"",className:a},v.createElement(nh,{ref:t,...l}))))}),nw=Object.assign(nh,{List:ny,Item:nv,Input:nx,Group:ng,Separator:nb,Dialog:nE,Empty:v.forwardRef((e,t)=>nN(e=>0===e.filtered.count)?v.createElement(eg.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),Loading:v.forwardRef((e,t)=>{let{progress:n,children:r,label:o="Loading...",...a}=e;return v.createElement(eg.div,{ref:t,...a,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":o},nO(e,e=>v.createElement("div",{"aria-hidden":!0},e)))})});function nS(e){let t=v.useRef(e);return nk(()=>{t.current=e}),t}var nk="u"<typeof window?v.useEffect:v.useLayoutEffect;function nj(e){let t=v.useRef();return void 0===t.current&&(t.current=e()),t}function nN(e){let t=v.useContext(nm),n=()=>e(t.snapshot());return v.useSyncExternalStore(t.subscribe,n,n)}function nC(e,t,n,r=[]){let o=v.useRef(),a=v.useContext(nf);return nk(()=>{var i;let l=(()=>{var e;for(let t of n){if("string"==typeof t)return t.trim();if("object"==typeof t&&"current"in t)return t.current?null==(e=t.current.textContent)?void 0:e.trim():o.current}})(),s=r.map(e=>e.trim());a.value(e,l,s),null==(i=t.current)||i.setAttribute(nc,l),o.current=l}),o}var nR=()=>{let[e,t]=v.useState(),n=nj(()=>new Map);return nk(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function nO({asChild:e,children:t},n){let r;return e&&v.isValidElement(t)?v.cloneElement("function"==typeof(r=t.type)?r(t.props):"render"in r?r.render(t.props):t,{ref:t.ref},n(t.props.children)):n(t)}var nP={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},nA=e.i(593698),nM=e.i(630299),nM=nM;e.i(630374);var nD=e.i(225913),nI=e.i(23750),nT=e.i(184762),nL=e.i(647163);function n_({className:e,...t}){return(0,u.jsx)("div",{"data-slot":"input-group",role:"group",className:(0,nL.cn)("group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5",e),...t})}let nF=(0,nD.cva)("flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",{variants:{align:{"inline-start":"order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]","inline-end":"order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]","block-start":"order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2","block-end":"order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2"}},defaultVariants:{align:"inline-start"}});function nB({className:e,align:t="inline-start",...n}){return(0,u.jsx)("div",{role:"group","data-slot":"input-group-addon","data-align":t,className:(0,nL.cn)(nF({align:t}),e),onClick:e=>{e.target.closest("button")||e.currentTarget.parentElement?.querySelector("input")?.focus()},...n})}function n$({className:e,...t}){return(0,u.jsx)(nw,{"data-slot":"command",className:(0,nL.cn)("flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground",e),...t})}function nz({className:e,...t}){return(0,u.jsx)("div",{"data-slot":"command-input-wrapper",className:"p-1 pb-0",children:(0,u.jsxs)(n_,{className:"h-8! rounded-lg! border-input/30 bg-input/30 shadow-none! *:data-[slot=input-group-addon]:pl-2!",children:[(0,u.jsx)(nw.Input,{"data-slot":"command-input",className:(0,nL.cn)("w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",e),...t}),(0,u.jsx)(nB,{children:(0,u.jsx)(nM.default,{className:"size-4 shrink-0 opacity-50"})})]})})}function nW({className:e,...t}){return(0,u.jsx)(nw.List,{"data-slot":"command-list",className:(0,nL.cn)("no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none",e),...t})}function nK({className:e,...t}){return(0,u.jsx)(nw.Empty,{"data-slot":"command-empty",className:(0,nL.cn)("py-6 text-center text-sm",e),...t})}function nU({className:e,...t}){return(0,u.jsx)(nw.Group,{"data-slot":"command-group",className:(0,nL.cn)("overflow-hidden p-1 text-foreground **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground",e),...t})}function nV({className:e,children:t,...n}){return(0,u.jsxs)(nw.Item,{"data-slot":"command-item",className:(0,nL.cn)("group/command-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg! data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-selected:bg-muted data-selected:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-selected:*:[svg]:text-foreground",e),...n,children:[t,(0,u.jsx)(nA.CheckIcon,{className:"ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100"})]})}(0,nD.cva)("flex items-center gap-2 text-sm shadow-none",{variants:{size:{xs:"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5",sm:"","icon-xs":"size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0","icon-sm":"size-8 p-0 has-[>svg]:p-0"}},defaultVariants:{size:"xs"}});var nq=e.i(917162),nH=e.i(660302),nX=e.i(161483),nY=e.i(146538),nG=e.i(95187);let nZ=(0,nG.createServerReference)("7f1c520e91a55169775db55e794be4ca67c81a0a2d",nG.callServer,void 0,nG.findSourceMapURL,"createBotAction");var nJ=e.i(39152);let nQ=(0,nG.createServerReference)("7f24ba91c89050c72b253dff06bce76c516c336646",nG.callServer,void 0,nG.findSourceMapURL,"deleteBotAction"),n0=(0,nG.createServerReference)("7ff454636bef6c3d7a486b4561bba9e1f73ef0e54b",nG.callServer,void 0,nG.findSourceMapURL,"updateBotAction");var n1=e.i(451888),n2=e.i(463625),n5=e.i(635963),n3=e.i(895836),n6=e.i(989409),n9=e.i(333999),n4=e.i(245629),n7=e.i(981203),n8=e.i(609856),re=e.i(283653),rt=e.i(864723);let rn=" new",rr=" seeds";function ro({bot:e,job:t,active:n,onPick:r}){var o,a;let i=(o=t,a=e.lastJobAt,o?"waiting"===o.status?(0,n1.isBudgetAsk)(o.ask)?{text:"out of steps"}:{text:"waiting on you",shine:!0,amber:!0}:"running"===o.status?{text:`working \xb7 ${o.label}`,shine:!0}:{text:`idle \xb7 last job ${ra(o.updatedAt)}`}:a?{text:`idle \xb7 last job ${ra(a)}`}:{text:"idle · no jobs yet"});return(0,u.jsxs)("button",{type:"button",onClick:r,className:(0,nL.cn)("mx-2 flex items-center gap-2.5 rounded-md px-2 py-2 text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",n?"bg-secondary":"hover:bg-muted/60"),children:[(0,u.jsx)(n5.BotMark,{size:32,...rs(e.name,e.icon),state:t?.status==="running"?"thinking":"idle",notify:t?.status==="waiting",className:"shrink-0"}),(0,u.jsxs)("span",{className:"min-w-0 flex-1 space-y-0.5",children:[(0,u.jsx)("span",{className:(0,nL.cn)("block truncate text-[13px]",n?"font-medium":"text-foreground/90"),children:e.name}),i.shine?(0,u.jsx)("span",{className:(0,nL.cn)("block",i.amber?"[--rest:var(--color-amber-700)] [--shine:var(--color-amber-400)] dark:[--rest:var(--color-amber-400)] dark:[--shine:var(--color-amber-100)]":"[--rest:var(--muted-foreground)] [--shine:var(--foreground)]"),children:(0,u.jsx)(nH.default,{text:i.text,speed:2.4,color:"var(--rest)",shineColor:"var(--shine)",className:"truncate font-mono text-[11px] leading-4"})}):(0,u.jsx)("span",{className:"block truncate font-mono text-[11px] leading-4 text-muted-foreground",children:i.text})]})]})}function ra(e){let t=(0,n4.shortAgo)(e);return"now"===t?"just now":`${t} ago`}function ri({missing:e,active:t,onPick:n}){return(0,u.jsxs)("button",{type:"button",onClick:n,className:(0,nL.cn)("mx-2 mt-1 flex items-center gap-2.5 rounded-md px-2 py-1.5 text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",t?"bg-secondary":"hover:bg-muted/60"),children:[(0,u.jsx)("span",{className:"flex shrink-0 items-center",children:e.map((e,t)=>(0,u.jsx)("span",{className:(0,nL.cn)("block",t>0&&"-ml-1.5"),children:(0,u.jsx)(n5.BotMark,{size:22,...rs(e.name,e.icon)})},e.name))}),(0,u.jsxs)("span",{className:"min-w-0 flex-1 space-y-0.5",children:[(0,u.jsx)("span",{className:(0,nL.cn)("block truncate text-[13px]",t?"font-medium":"text-foreground/90"),children:"Ready-made"}),(0,u.jsx)("span",{className:"block truncate font-mono text-[10px] leading-4 text-muted-foreground",children:e.length===n2.BOT_SEEDS.length?`${e.length} bots`:`${e.length} left`})]})]})}function rl({have:e,onDone:t}){let[n,r]=(0,v.useState)(new Set),[o,a]=(0,n8.useServerAction)(nJ.createSeedBotsAction,{onOk:e=>{(0,re.revalidate)(g.queryKey.bot),t(e.created[0]??null)}}),i=n2.BOT_SEEDS.filter(t=>!e.has(t.name)&&!n.has(t.name));return(0,u.jsxs)("div",{className:"flex min-h-full flex-col",children:[(0,u.jsx)("div",{className:"flex h-11 shrink-0 items-center border-b border-border/60 px-4 font-mono text-[11px] text-muted-foreground",children:"Ready-made"}),(0,u.jsxs)("div",{className:"px-8 pt-7 pb-1",children:[(0,u.jsx)("h3",{className:"text-[17px] font-medium tracking-tight",children:1===n2.BOT_SEEDS.length?"One bot comes with her":`${2===n2.BOT_SEEDS.length?"Two":n2.BOT_SEEDS.length} bots come with her`}),(0,u.jsx)("p",{className:"mt-1.5 max-w-lg text-[13px] leading-relaxed text-muted-foreground break-keep",children:"They take the work that would leave the call silent, and report back. Untick anything you would rather not have; each runs on the app default model until you give it one of its own."})]}),(0,u.jsx)("div",{className:"flex flex-col gap-2 px-8 pt-4",children:n2.BOT_SEEDS.map(t=>{let o=e.has(t.name),i=o||!n.has(t.name);return(0,u.jsx)("div",{className:(0,nL.cn)("rounded-2xl ring-1 transition-colors",o?"opacity-45 ring-border/60":i?"ring-foreground":"ring-border/60"),children:(0,u.jsxs)("button",{type:"button",disabled:o||a,"aria-pressed":i,onClick:()=>r(e=>{let n=new Set(e);return n.has(t.name)?n.delete(t.name):n.add(t.name),n}),className:"flex w-full items-center gap-3.5 rounded-2xl px-4 py-3 text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-default",children:[(0,u.jsx)(n5.BotMark,{size:32,...rs(t.name,t.icon),className:(0,nL.cn)("shrink-0 transition-opacity",!i&&"opacity-35")}),(0,u.jsxs)("span",{className:"min-w-0 flex-1 space-y-0.5",children:[(0,u.jsx)("span",{className:"block text-[14px] font-medium",children:t.name}),(0,u.jsx)("span",{className:"block text-[12px] leading-normal text-muted-foreground break-keep",children:t.description})]}),o&&(0,u.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-muted-foreground",children:"already added"}),(0,u.jsx)("span",{className:(0,nL.cn)("grid size-6 shrink-0 place-items-center rounded-full transition-colors",i?"bg-foreground text-background":"ring-1 ring-border/60 ring-inset"),children:i&&(0,u.jsx)(c.Check,{className:"size-3.5"})})]})},t.name)})}),(0,u.jsxs)("div",{className:"mt-auto flex items-center gap-3 border-t border-border/60 px-8 py-4",children:[(0,u.jsx)("span",{className:"flex-1 font-mono text-[11px] text-muted-foreground",children:0===i.length?"nothing ticked":`${i.length} of ${n2.BOT_SEEDS.length-e.size} ticked`}),(0,u.jsx)(b.Button,{variant:"ghost",onClick:()=>t(null),children:"Cancel"}),(0,u.jsx)(b.Button,{loading:a,disabled:0===i.length,onClick:()=>o(i.map(e=>({name:e.name}))),children:1===i.length?`Add ${i[0].name}`:`Add ${i.length} bots`})]})]})}function rs(e,t){return{seed:e||"bot",color:t?.color,shape:t?.shape,outline:t?.outline}}function ru({bot:e,jobs:t,onDone:n,onCancel:r}){let[o,a]=(0,n9.useObjectState)(()=>({name:e?.name??"",description:e?.description??"",systemPrompt:e?.systemPrompt??"",icon:e?.icon??(0,n1.randomBotIcon)(),provider:e?.provider??null,model:e?.model??"",toolIds:e?.tools.map(e=>e.id)??[]})),{name:i,description:l,systemPrompt:s,icon:c,provider:d,model:f,toolIds:p}=o,[h]=(0,n8.useServerAction)(n0,{onOk:()=>(0,re.revalidate)(g.queryKey.bot)}),v=t=>{e&&h(e.name,t)},[x,y,,E]=(0,n8.useServerAction)(nZ,{errorMessage:!1,okMessage:"Bot created",onOk:e=>{(0,re.revalidate)(g.queryKey.bot),n(e.name)}}),[w,S]=(0,n8.useServerAction)(nQ,{okMessage:"Bot deleted",onOk:()=>{(0,re.revalidate)(g.queryKey.bot),n(null)}}),k=i.trim()&&l.trim()&&d&&f.trim()&&!y,j=async()=>{!e||await nq.notify.confirm({title:`Delete ${e.name}?`,description:"The agent can no longer hand work to it.",okText:"Delete",destructive:!0})&&w(e.name)};return(0,u.jsxs)("div",{className:"flex min-h-full flex-col",children:[(0,u.jsxs)("div",{className:"flex h-11 shrink-0 items-center gap-2 border-b border-border/60 px-4",children:[(0,u.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[11px] text-muted-foreground",children:e?e.name:"New bot"}),e&&(0,u.jsx)(b.Button,{size:"icon-sm",variant:"ghost",loading:S,"aria-label":"Delete this bot",onClick:j,className:"text-muted-foreground hover:text-destructive",children:(0,u.jsx)(m.Trash2,{})})]}),(0,u.jsxs)("div",{className:"flex-1 space-y-5 p-6",children:[(0,u.jsxs)("div",{className:"flex items-start gap-4",children:[(0,u.jsx)(n5.BotMark,{size:72,...rs(i,c),className:"shrink-0"}),(0,u.jsxs)("div",{className:"min-w-0 flex-1 space-y-2.5",children:[e?(0,u.jsx)("p",{className:"truncate text-lg leading-8 font-medium",children:e.name}):(0,u.jsx)(nI.Input,{value:i,onChange:e=>a({name:e.target.value}),placeholder:"researcher",spellCheck:!1,maxLength:n7.COMMON_VALIDATE.name.max,autoFocus:!0}),(0,u.jsx)(nI.Input,{value:l,onChange:e=>a({description:e.target.value}),onBlur:()=>{let t=l.trim();e&&t&&t!==e.description&&v({description:t})},placeholder:"Searches the web and reports back",maxLength:n7.COMMON_VALIDATE.description.max})]})]}),(0,u.jsx)(rm,{icon:c,onChange:e=>{a({icon:e}),v({icon:e})}}),(0,u.jsx)(rd,{label:"Runs on",children:(0,u.jsx)(nY.ModelPicker,{provider:d,model:f,onChange:e=>{a({provider:e.provider,model:e.model}),e.model&&v(e)}})}),(0,u.jsx)(rd,{label:"Tools",children:(0,u.jsx)(rp,{selected:p,onChange:e=>{a({toolIds:e}),v({toolIds:e})}})}),(0,u.jsxs)(rd,{label:"Prompt",children:[(0,u.jsx)(nT.Textarea,{value:s,onChange:e=>a({systemPrompt:e.target.value}),onBlur:()=>{let t=s.trim();e&&t!==(e.systemPrompt??"")&&v({systemPrompt:t})},placeholder:`How it should work (optional). e.g.
2
- Search the web, answer with a short summary and links.`,maxLength:n7.COMMON_VALIDATE.prompt.max,className:"max-h-48 min-h-24 resize-none overflow-y-auto text-sm"}),s.length>0&&(0,u.jsxs)("p",{className:"text-right font-mono text-[10px] text-muted-foreground",children:[s.length,"/",n7.COMMON_VALIDATE.prompt.max]})]}),e&&(0,u.jsx)(rf,{jobs:t}),!e&&(0,u.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-1",children:[(0,u.jsx)(b.Button,{variant:"ghost",onClick:r,children:"Cancel"}),(0,u.jsx)(b.Button,{loading:y,disabled:!k,onClick:()=>{k&&d&&x({name:i.trim(),description:l.trim(),systemPrompt:s.trim()||void 0,icon:c,provider:d,model:f.trim(),toolIds:p})},children:"Create"})]}),E&&(0,u.jsx)("p",{className:"font-mono text-xs text-destructive",children:E})]})]})}function rc({bot:e}){if(!e)return(0,u.jsx)(n3.SettingRailNote,{children:"Becomes a bot once it has a name and a model"});let t=e.tokens.input+e.tokens.output;return(0,u.jsx)(n3.SettingRailNote,{children:(0,u.jsxs)("span",{className:"font-mono text-[11px]",children:[e.name,(0,u.jsx)("span",{className:"px-1.5 opacity-50",children:"·"}),(0,u.jsx)("span",{title:`in ${(0,nL.formatCount)(e.tokens.input)} \xb7 out ${(0,nL.formatCount)(e.tokens.output)}`,children:t>0?`${(0,nL.formatCount)(t)} tokens`:"no tokens yet"}),(0,u.jsx)("span",{className:"px-1.5 opacity-50",children:"·"}),"since ",(0,n4.whenOf)(e.createdAt)]})})}function rd({label:e,children:t}){return(0,u.jsxs)("div",{className:"flex gap-3",children:[(0,u.jsx)("span",{className:"w-20 shrink-0 pt-2 font-mono text-xs text-muted-foreground",children:e}),(0,u.jsx)("div",{className:"min-w-0 flex-1 space-y-1.5",children:t})]})}function rf({jobs:e}){return(0,u.jsxs)("div",{className:"pt-1",children:[(0,u.jsxs)("div",{className:"flex h-6 items-center",children:[(0,u.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:"Recent"}),(0,u.jsx)("span",{className:"flex-1"}),(0,u.jsxs)("button",{type:"button",onClick:()=>(0,n6.openSettings)("tasks"),className:"flex items-center gap-1 rounded-md px-1.5 py-1 font-mono text-[11px] text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,u.jsx)(d.History,{className:"size-3"}),"History"]})]}),0===e.length?(0,u.jsx)("p",{className:"py-2 text-[13px] text-muted-foreground",children:"Nothing handed over yet."}):e.map(e=>{let t=function(e){switch(e.status){case"waiting":return(0,n1.isBudgetAsk)(e.ask)?{text:"out of steps",tone:"text-muted-foreground"}:{text:"waiting on you",tone:nL.WAITING_INK};case"running":return{text:"working",tone:"text-muted-foreground"};case"failed":return{text:"failed",tone:"text-destructive"};default:return{text:"done",tone:"text-muted-foreground"}}}(e);return(0,u.jsxs)("div",{className:"flex h-9 items-center gap-3 border-t border-border/60 text-[13px]",children:[(0,u.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e.label}),(0,u.jsx)("span",{className:(0,nL.cn)("shrink-0 font-mono text-[11px]",t.tone),children:t.text}),(0,u.jsx)("span",{className:"w-28 shrink-0 text-right font-mono text-[11px] text-muted-foreground tabular-nums",children:(0,n4.whenOf)(e.updatedAt)})]},e.id)})]})}function rm({icon:e,onChange:t}){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(rd,{label:"Color",children:(0,u.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,u.jsx)(nX.Swatch,{color:null,picked:e.color===rt.MARK_SYSTEM,onPick:()=>t({...e,color:rt.MARK_SYSTEM})}),rt.MARK_PALETTE.map(n=>(0,u.jsx)(nX.Swatch,{color:n,picked:e.color===n,onPick:()=>t({...e,color:e.color===n?void 0:n})},n))]})}),(0,u.jsx)(rd,{label:"Face",children:(0,u.jsxs)("div",{className:"flex gap-1",children:[rt.MARK_SHAPES.map(n=>(0,u.jsx)("button",{type:"button",onClick:()=>t({...e,shape:e.shape===n?void 0:n}),className:(0,nL.cn)("rounded-md px-2 py-1 font-mono text-[11px] capitalize transition-colors",e.shape===n?"bg-foreground text-background":"bg-muted text-muted-foreground hover:text-foreground"),children:n},n)),(0,u.jsx)("span",{className:"mx-1 w-px self-stretch bg-border/60"}),(0,u.jsx)("button",{type:"button",onClick:()=>t({...e,outline:!e.outline||void 0}),className:(0,nL.cn)("rounded-md px-2 py-1 font-mono text-[11px] transition-colors",e.outline?"bg-foreground text-background":"bg-muted text-muted-foreground hover:text-foreground"),children:"outline"})]})})]})}function rp({selected:e,onChange:t}){let{data:n=[]}=(0,re.useServerRoute)(g.queryKey.mcpTools),[r,o]=(0,v.useState)(!1),a=e.length>=n1.MAX_PINNED_TOOLS,i=[...new Set(n.map(e=>e.serverName))],l=e.map(e=>n.find(t=>t.id===e)).filter(e=>!!e),s=r?l:l.slice(0,4),d=l.length-s.length,f=n=>t(e.includes(n)?e.filter(e=>e!==n):[...e,n]);return 0===n.length?(0,u.jsx)("p",{className:"pt-1.5 text-xs text-muted-foreground",children:"Nothing to pin — connect an MCP server first (Settings › Connectors)."}):(0,u.jsxs)("div",{className:"space-y-2",children:[(0,u.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,u.jsx)(b.Button,{size:"icon-sm",variant:r?"secondary":"outline",onClick:()=>o(!r),"aria-label":"Pick tools",className:"border-dashed",children:(0,u.jsx)(p.Wrench,{})}),s.map(e=>(0,u.jsxs)("span",{className:"flex items-center gap-1 rounded-full bg-muted py-1 pr-1.5 pl-2.5 font-mono text-[11px]",children:[e.name,(0,u.jsx)("button",{type:"button","aria-label":`Unpin ${e.name}`,onClick:()=>f(e.id),className:"rounded-full p-0.5 text-muted-foreground transition-colors hover:bg-foreground/10 hover:text-foreground",children:(0,u.jsx)(h.X,{className:"size-3"})})]},e.id)),d>0&&(0,u.jsxs)("button",{type:"button",onClick:()=>o(!0),className:"rounded-full bg-muted px-2.5 py-1 font-mono text-[11px] text-muted-foreground transition-colors hover:text-foreground",children:["+",d]}),0===l.length&&(0,u.jsx)("span",{className:"text-xs text-muted-foreground",children:"Loaded from the start — everything else stays searchable"}),(0,u.jsx)("span",{className:"flex-1"}),(0,u.jsxs)("span",{className:(0,nL.cn)("font-mono text-[11px] text-muted-foreground",a&&"text-foreground"),children:[e.length,"/",n1.MAX_PINNED_TOOLS]})]}),r&&(0,u.jsxs)(n$,{className:"rounded-lg border border-input",children:[(0,u.jsx)(nz,{placeholder:"Search tools"}),(0,u.jsxs)(nW,{className:"max-h-44",children:[(0,u.jsx)(nK,{children:"Nothing matches"}),i.map(t=>(0,u.jsx)(nU,{heading:t,children:n.filter(e=>e.serverName===t).map(t=>{let n=e.includes(t.id);return(0,u.jsxs)(nV,{value:`${t.serverName}/${t.name}`,disabled:!n&&a,onSelect:()=>f(t.id),children:[(0,u.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-xs",children:t.name}),n&&(0,u.jsx)(c.Check,{className:"size-3.5 shrink-0"})]},t.id)})},t))]})]})]})}e.s(["BotSetting",0,function(){let{data:e,isLoading:t,error:n}=(0,re.useServerRoute)(g.queryKey.bot),r=e??[],{data:o}=(0,re.useServerRoute)(g.queryKey.taskHistory(null)),a=o??[],[i,l]=(0,v.useState)(null);if(t)return(0,u.jsx)(n3.SettingPanesSkeleton,{});if(n)return(0,u.jsx)(n3.SettingError,{message:n.message});let s=i===rn,c=new Set(r.map(e=>e.name)),d=n2.BOT_SEEDS.filter(e=>!c.has(e.name)),m=s||i===rr?null:r.find(e=>e.name===i)??r[0]??null;return(0,u.jsx)(n3.SettingPanes,{footer:i===rr?null:(0,u.jsx)(rc,{bot:m}),left:(0,u.jsxs)("div",{className:"flex flex-col py-2",children:[(0,u.jsxs)("button",{type:"button",onClick:()=>l(rn),className:(0,nL.cn)("mx-2 mb-1 flex items-center gap-2 rounded-md px-2 py-1.5 text-left text-[13px] outline-none focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",s?"bg-secondary text-foreground":"text-muted-foreground hover:bg-muted/60 hover:text-foreground"),children:[(0,u.jsx)(f.Plus,{className:"size-3.5 shrink-0"}),"New bot"]}),r.map(e=>(0,u.jsx)(ro,{bot:e,job:a.find(t=>t.bot===e.name)??null,active:!s&&e.name===m?.name,onPick:()=>l(e.name)},e.name)),d.length>0&&(0,u.jsx)(ri,{missing:d,active:i===rr,onPick:()=>l(rr)})]}),right:i===rr?(0,u.jsx)(rl,{have:c,onDone:e=>l(e)}):s?(0,u.jsx)(ru,{jobs:[],onDone:e=>l(e),onCancel:()=>l(null)},"new"):m?(0,u.jsx)(ru,{bot:m,jobs:a.filter(e=>e.bot===m.name).slice(0,3),onDone:()=>l(null)},m.name):(0,u.jsxs)("div",{className:"space-y-4 p-8",children:[(0,u.jsx)("p",{className:"text-sm leading-relaxed text-muted-foreground",children:"The agent talks; bots do the rest — search the web, draft a reply, check a schedule. Give one a job and a model, and work gets handed over mid-call while the conversation keeps going."}),(0,u.jsxs)(b.Button,{variant:"outline",onClick:()=>l(rn),children:[(0,u.jsx)(f.Plus,{}),"New bot"]})]})})}],507906)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,805995,e=>{"use strict";var t=e.i(843476),n=e.i(456420);let i={name:"audio-lines",size:24,node:[["path",{d:"M2 10v3",key:"1fnikh"}],["path",{d:"M6 6v11",key:"11sgs0"}],["path",{d:"M10 3v18",key:"yhl04a"}],["path",{d:"M14 8v7",key:"3a1oy3"}],["path",{d:"M18 5v13",key:"123xd1"}],["path",{d:"M22 10v3",key:"154ddg"}]]};i.node;let s=(0,n.default)(i),o={name:"captions",size:24,node:[["rect",{width:"18",height:"14",x:"3",y:"5",rx:"2",ry:"2",key:"12ruh7"}],["path",{d:"M7 15h4M15 15h2M7 11h2M13 11h4",key:"1ueiar"}]],aliases:["subtitles"]};o.node;let r=(0,n.default)(o);var a=e.i(689664),l=e.i(867927);let d={name:"clapperboard",size:24,node:[["path",{d:"m12.296 3.464 3.02 3.956",key:"qash78"}],["path",{d:"M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3z",key:"1h7j8b"}],["path",{d:"M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"4lm6w1"}],["path",{d:"m6.18 5.276 3.1 3.899",key:"zjj9t3"}]]};d.node;let c=(0,n.default)(d);var u=e.i(815170),g=e.i(466787),m=e.i(271645),h=e.i(798120),f=e.i(167881),x=e.i(23750),k=e.i(917162),p=e.i(146538),y=e.i(968978),v=e.i(265402),j=e.i(635963),b=e.i(95187);let N=(0,b.createServerReference)("7f9b3cf79921363eeeed943885510514b1f0b05850",b.callServer,void 0,b.findSourceMapURL,"removeConfigAction");var S=e.i(692422),C=e.i(992112),M=e.i(895836),A=e.i(609856),w=e.i(283653),z=e.i(647163);let R={image:u.Image,video:c,speech:s,transcription:r};function I({section:e}){let{data:n,isLoading:i,error:s}=(0,w.useServerRoute)(h.queryKey.config);if(i)return(0,t.jsx)(M.SettingSkeleton,{rows:4});if(s)return(0,t.jsx)(M.SettingError,{message:s.message});let o=e=>(0,C.isConfigSet)(n,e),r=e=>n?.find(t=>t.key===e)?.value,a=C.CONFIG_GROUPS.filter(t=>t.section===e),l=a.flatMap(e=>e.entries);return(0,t.jsx)(M.SettingScreen,{footer:(0,t.jsx)(M.SettingRailNote,{children:"keys"===e?(0,t.jsxs)(t.Fragment,{children:[l.filter(e=>o(e.key)).length," of"," ",l.length," set",a.some(e=>!(0,C.groupSatisfied)(e,o))?" · a call needs one voice key":" · your keys stay on this machine"]}):(0,t.jsxs)(t.Fragment,{children:[l.length," of ",l.length," resolved ·"," ",l.filter(e=>r(e.key)).length," pinned"]})}),children:a.map(e=>(0,t.jsx)(M.SettingGroup,{label:e.title,hint:e.hint,right:(0,t.jsx)(K,{group:e,isSet:o}),children:(0,t.jsx)(M.SettingItems,{children:e.entries.map(n=>n.choices?(0,t.jsx)($,{entry:n,choices:n.choices,value:r(n.key),isSet:o},n.key):(0,t.jsx)(T,{entry:n,set:o(n.key),needed:!(0,C.groupSatisfied)(e,o)},n.key))})},e.id))})}function K({group:e,isSet:n}){return"none"===e.require?null:(0,C.groupSatisfied)(e,n)?(0,t.jsxs)("span",{className:"flex items-center gap-1 font-mono text-[11px] text-muted-foreground",children:[(0,t.jsx)(a.Check,{className:"size-3"}),"ready"]}):(0,t.jsxs)("span",{className:(0,z.cn)("flex items-center gap-1 font-mono text-[11px]",z.WAITING_INK),children:[(0,t.jsx)(g.TriangleAlert,{className:"size-3"}),e.note??"Required"]})}function T({entry:e,set:n,needed:i}){return(0,t.jsxs)("button",{type:"button",onClick:()=>{var i,s;return i=e,s=n,k.notify.component({className:"sm:max-w-md",renderer:({close:e})=>(0,t.jsx)(O,{entry:i,set:s,onDone:e})})},className:"group flex w-full items-center gap-3 p-4 text-left outline-none transition-colors hover:bg-muted/50 focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",children:[e.provider&&(0,t.jsx)("span",{className:"grid size-8 shrink-0 place-items-center rounded-lg bg-muted/60",children:(0,t.jsx)(y.ProviderIcon,{provider:e.provider,className:"size-4"})}),(0,t.jsxs)("span",{className:"min-w-0 flex-1 space-y-0.5",children:[(0,t.jsx)("span",{className:"block truncate text-sm font-medium",children:e.label}),(0,t.jsx)("span",{className:"block truncate font-mono text-xs text-muted-foreground",children:e.key})]}),(0,t.jsxs)("span",{className:(0,z.cn)("flex shrink-0 items-center gap-1.5 font-mono text-xs",n?"text-muted-foreground":i?z.WAITING_INK:"text-muted-foreground/60"),children:[n&&(0,t.jsx)(a.Check,{className:"size-3"}),!n&&i&&(0,t.jsx)(g.TriangleAlert,{className:"size-3"}),n?"Set":i?"Needed":"Not set"]}),(0,t.jsx)(l.ChevronRight,{className:"size-4 shrink-0 text-muted-foreground/60 transition-colors group-hover:text-foreground"})]})}function $({entry:e,choices:n,value:i,isSet:s}){let o=n.find(e=>e.value===i),r=n.filter(e=>s(e.needs)),a=i&&!o?i:null,d=e.kind?R[e.kind]:j.BotsMark;return(0,t.jsxs)("button",{type:"button",onClick:()=>{var i,s,o;return e.kind||e.text?(i=e,k.notify.component({className:"sm:max-w-lg",renderer:({close:e})=>(0,t.jsx)(q,{entry:i,onDone:e})})):(s=e,o=n,k.notify.component({className:"sm:max-w-md",renderer:({close:e})=>(0,t.jsx)(B,{entry:s,choices:o,onDone:e})}))},className:"group flex w-full items-center gap-3 p-4 text-left outline-none transition-colors hover:bg-muted/50 focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",children:[(0,t.jsx)("span",{className:"grid size-8 shrink-0 place-items-center rounded-lg bg-muted/60",children:(0,t.jsx)(d,{className:"size-4 text-muted-foreground"})}),(0,t.jsxs)("span",{className:"min-w-0 flex-1 space-y-1",children:[(0,t.jsx)("span",{className:"block truncate text-sm font-medium",children:e.label}),(0,t.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[!o&&!a&&(0,t.jsx)("span",{className:(0,z.cn)("shrink-0 rounded-[5px] border border-border/60 px-1 font-mono text-[10px]",e.kind?z.WAITING_INK:"text-muted-foreground"),children:e.kind?"off":"auto"}),(0,t.jsx)("span",{className:"truncate font-mono text-xs text-muted-foreground",children:o?.label??a??(e.kind?"Not offered to bots until you pick one":r[0]?.label??"No key for any of these yet")})]})]}),(0,t.jsx)(l.ChevronRight,{className:"size-4 shrink-0 text-muted-foreground/60 transition-colors group-hover:text-foreground"})]})}function q({entry:e,onDone:n}){let{data:i}=(0,w.useServerRoute)(h.queryKey.config),s=i?.find(t=>t.key===e.key)?.value,[o,r]=(0,m.useState)(()=>{let t=e.text?(0,v.parseTextModel)(s):(0,v.parseMediaModel)(s);return{provider:t?.provider??null,model:t?.model??""}}),a=()=>{(0,w.revalidate)(h.queryKey.config),n()},[l]=(0,A.useServerAction)(S.setConfigAction,{okMessage:`${e.label} saved`,onOk:a}),[d,c]=(0,A.useServerAction)(N,{okMessage:e.kind?`${e.label} switched off`:`${e.label} back to automatic`,onOk:a});return(0,t.jsx)(M.SettingDialogContent,{title:e.label,description:e.hint,footer:(0,t.jsxs)(t.Fragment,{children:[s&&(0,t.jsx)(f.Button,{variant:"ghost",loading:c,onClick:()=>d(e.key),children:e.kind?"Turn off":"Automatic"}),(0,t.jsx)(f.Button,{variant:"ghost",onClick:n,children:"Close"})]}),children:(0,t.jsx)(p.ModelPicker,{kind:e.kind,provider:o.provider,model:o.model,onChange:t=>{r(t),t.model.trim()&&l(e.key,`${t.provider}/${t.model.trim()}`)}})})}function B({entry:e,choices:n,onDone:i}){let{data:s}=(0,w.useServerRoute)(h.queryKey.config),o=s?.find(t=>t.key===e.key)?.value,r=()=>{(0,w.revalidate)(h.queryKey.config),i()},[a,l]=(0,A.useServerAction)(S.setConfigAction,{okMessage:`${e.label} saved`,onOk:r}),[d,c]=(0,A.useServerAction)(N,{okMessage:e.kind?`${e.label} switched off`:`${e.label} back to automatic`,onOk:r});return(0,t.jsx)(M.SettingDialogContent,{title:e.label,description:e.hint,footer:(0,t.jsxs)(t.Fragment,{children:[o&&(0,t.jsx)(f.Button,{variant:"ghost",loading:c,onClick:()=>d(e.key),children:e.kind?"Turn off":"Automatic"}),(0,t.jsx)(f.Button,{variant:"ghost",onClick:i,children:"Close"})]}),children:(0,t.jsx)(M.SettingChoiceRows,{options:n.map(e=>({value:e.value,label:e.label,disabled:!(0,C.isConfigSet)(s,e.needs)&&`needs ${e.needs}`})),value:o,onChange:t=>a(e.key,t),disabled:l})})}function O({entry:e,set:n,onDone:i}){let[s,o]=(0,m.useState)(""),r=()=>{(0,w.revalidate)(h.queryKey.config),(0,w.revalidate)(h.queryKey.llmModel)},[a,l]=(0,A.useServerAction)(S.setConfigAction,{okMessage:`${e.label} key saved`,onOk:()=>{r(),i()}}),[d,c]=(0,A.useServerAction)(N,{okMessage:`${e.label} key removed`,onOk:()=>{r(),i()}});return(0,t.jsx)(M.SettingDialogContent,{title:e.label,description:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"font-mono",children:e.key}),e.hint&&(0,t.jsxs)(t.Fragment,{children:[" · ",e.hint]})]}),footer:(0,t.jsxs)(t.Fragment,{children:[n&&(0,t.jsx)(f.Button,{variant:"ghost",loading:c,onClick:()=>d(e.key),children:"Remove"}),(0,t.jsx)(f.Button,{variant:"ghost",onClick:i,children:"Cancel"}),(0,t.jsx)(f.Button,{loading:l,disabled:s.trim().length<8,onClick:()=>a(e.key,s),children:n?"Replace":"Save"})]}),children:(0,t.jsx)(x.Input,{value:s,onChange:e=>o(e.target.value),onKeyDown:t=>{"Enter"===t.key&&s.trim().length>=8&&a(e.key,s)},placeholder:n?"New value — replaces the current key":e.key,spellCheck:!1,type:"password",autoFocus:!0})})}e.s(["ConfigGroups",0,I,"ConfigSetting",0,function(){return(0,t.jsx)(I,{section:"keys"})}],805995)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,213377,e=>{"use strict";e.s(["TOOL_NAMES",0,{memory_recall:"memory_recall",memory_remember:"memory_remember",memory_forget:"memory_forget",memory_show:"memory_show",bash:"bash",write_file:"write_file",tool_search:"tool_search",tool_call:"tool_call",load_skill:"load_skill",web_search:"web_search",delegate:"delegate",task:"task",ask_bot:"ask_bot",ask_thursday:"ask_thursday",ask_back:"ask_back",report:"report",end_call:"end_call",tidy_done:"tidy_done"}])},692329,933916,671228,e=>{"use strict";var t=e.i(843476),r=e.i(493801),n=e.i(456420);let a={name:"arrow-right",size:24,node:[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]};a.node;let s=(0,n.default)(a);var i=e.i(867927),l=e.i(632781);let o={name:"minus",size:24,node:[["path",{d:"M5 12h14",key:"1ays0h"}]]};o.node;let c=(0,n.default)(o);var d=e.i(751898);let u={name:"pin-off",size:24,node:[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]]};u.node;let h=(0,n.default)(u);var m=e.i(77071),f=e.i(466787),g=e.i(271645),p=e.i(511769),y=e.i(798120),x=e.i(167881),b=e.i(917162),M=e.i(671428),v=e.i(6799),A=e.i(146538),S=e.i(852116),k=e.i(95187);let w=(0,k.createServerReference)("7fdb8473e59f512984c2436dedd58ac1bdf8f6485b",k.callServer,void 0,k.findSourceMapURL,"cancelMemoryTidyAction"),_=(0,k.createServerReference)("7f7f2e13af3c5904d3e16d58ee40cd2c13ba6e22b8",k.callServer,void 0,k.findSourceMapURL,"runMemoryTidyAction"),N=(0,k.createServerReference)("7f2c778d24b4691627d013873c31cb47eaa8b20aca",k.callServer,void 0,k.findSourceMapURL,"setMemoryTidyModelAction"),j=(0,k.createServerReference)("7f7feb80df7bba657c908ec68cc4b599fe7aab5be2",k.callServer,void 0,k.findSourceMapURL,"setMemoryTidyOnAction");var E=e.i(536015),O=e.i(895836),T=e.i(989409),R=e.i(245629),L=e.i(609856),C=e.i(283653),I=e.i(647163);function P({status:e}){let r=e.current,n=e.last;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"border-t border-border/60",children:[(0,t.jsx)(F,{value:e.model}),(0,t.jsxs)("div",{className:"flex items-center gap-3 border-t border-border/60 py-2",children:[(0,t.jsx)("span",{className:"w-20 shrink-0 text-[13px] text-muted-foreground",children:r?"Reading":"Last read"}),r?(0,t.jsxs)("span",{className:"flex min-w-0 flex-1 items-center gap-2 font-mono text-[11px] text-muted-foreground",children:[(0,t.jsx)(l.Loader2,{className:"size-3.5 shrink-0 animate-spin"}),(0,t.jsxs)("span",{className:"truncate",children:["the last ",r.messages," ",1===r.messages?"message":"messages"]})]}):(0,t.jsx)(z,{run:n}),(0,t.jsx)(D,{run:r??n})]})]}),(0,t.jsx)(O.SettingNote,{className:(0,I.cn)(!e.model&&I.WAITING_INK),children:e.model?`Reads back after every ${e.every} messages of talk. ${e.pending} since the last one.`:"Nothing is read back until a model is picked — this never runs on the app default."})]})}function F({value:e}){return(0,t.jsxs)("button",{type:"button",onClick:()=>{var r;return r=e,b.notify.component({className:"sm:max-w-lg",renderer:({close:e})=>(0,t.jsx)($,{current:r,onDone:e})})},className:"flex w-full items-center gap-3 py-2 text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,t.jsx)("span",{className:"w-20 shrink-0 text-[13px] text-muted-foreground",children:"Model"}),(0,t.jsx)("span",{className:(0,I.cn)("min-w-0 flex-1 truncate font-mono text-[11px]",e?"text-muted-foreground":I.WAITING_INK),children:e??"Not picked"}),(0,t.jsx)(i.ChevronRight,{className:"size-4 shrink-0 text-muted-foreground/60"})]})}function z({run:e}){if(!e)return(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[11px] text-muted-foreground",children:"Nothing read back yet"});let n=(0,r.formatDistanceToNowStrict)((0,R.toDate)(e.endedAt??e.startedAt),{addSuffix:!0});return"done"!==e.status?(0,t.jsxs)("span",{className:"flex min-w-0 flex-1 items-center gap-1.5 text-destructive",children:[(0,t.jsx)(f.TriangleAlert,{className:"size-3.5 shrink-0"}),(0,t.jsxs)("span",{className:"truncate font-mono text-[11px]",children:["failed"===e.status?"Failed":"Stopped"," ",n,e.error?` — ${e.error}`:""]})]}):(0,t.jsxs)("span",{className:"min-w-0 flex-1 truncate font-mono text-[11px] text-muted-foreground",children:[n," · ",(0,E.tidyTally)(e.changes)]})}function D({run:e}){return e?(0,t.jsx)("button",{type:"button","aria-label":"What the last read changed",onClick:()=>K(),className:"shrink-0 outline-none focus-visible:ring-3 focus-visible:ring-ring/50",children:(0,t.jsx)(i.ChevronRight,{className:"size-4 text-muted-foreground/60"})}):(0,t.jsx)("span",{className:"size-4 shrink-0"})}function $({current:e,onDone:r}){let[n,a]=(0,L.useServerAction)(N,{onOk:()=>{(0,C.revalidate)(y.queryKey.memoryTidy),r()}}),s=e?.split("/")??null,[i,l]=(0,g.useState)({provider:s?.[0]??null,model:s?.slice(1).join("/")??""});return(0,t.jsx)(O.SettingDialogContent,{title:"Model",description:"What re-reads a call. There is no default: without a pick nothing is read back, so a model nobody chose never spends.",footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(x.Button,{variant:"ghost",onClick:()=>n(""),children:"Clear"}),(0,t.jsx)(x.Button,{loading:a,disabled:!i.provider||!i.model.trim(),onClick:()=>n(`${i.provider}/${i.model.trim()}`),children:"Save"})]}),children:(0,t.jsx)(A.ModelPicker,{provider:i.provider,model:i.model,onChange:l})})}function K(){return b.notify.component({className:"sm:max-w-2xl",renderer:()=>(0,t.jsx)(H,{})})}function H(){let{data:e}=(0,C.useServerRoute)(y.queryKey.memoryTidy),n={onOk:()=>(0,C.revalidate)(y.queryKey.memoryTidy)},[a,s]=(0,L.useServerAction)(_,n),[i,l]=(0,L.useServerAction)(w,n);if(!e)return(0,t.jsx)(O.SettingDialogContent,{title:"What the last read changed",children:(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)(M.Skeleton,{className:"h-4 w-2/3"}),(0,t.jsx)(M.Skeleton,{className:"h-4 w-full"}),(0,t.jsx)(M.Skeleton,{className:"h-4 w-4/5"})]})});let o=e.current??e.last,c=o?(0,r.formatDistanceToNowStrict)((0,R.toDate)(o.endedAt??o.startedAt),{addSuffix:!0}):"";return(0,t.jsx)(O.SettingDialogContent,{title:"What the last read changed",description:"Memory as it stands after the model read those messages back. Every line here is one it wrote, revised or dropped.",footer:e.current?(0,t.jsx)(x.Button,{variant:"outline",loading:l,onClick:()=>i(),children:"Stop"}):(0,t.jsxs)(x.Button,{variant:"outline",loading:s,disabled:0===e.pending||!e.model,onClick:()=>a(),children:[!s&&(0,t.jsx)(S.MemoryMark,{className:"size-3.5"}),"Read now"]}),children:o?(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"min-w-0 flex-1 text-sm",children:e.current?`Reading the last ${o.messages} messages`:`${o.messages} messages, ${c}`}),(0,t.jsxs)("span",{className:"shrink-0 font-mono text-[11px] text-muted-foreground",children:["-"!==o.provider&&o.model,o.inputTokens>0&&` \xb7 ${o.inputTokens.toLocaleString()} in / ${o.outputTokens.toLocaleString()} out`]})]}),o.error&&(0,t.jsx)("p",{className:"font-mono text-xs text-destructive",children:o.error}),o.changes.length>0?(0,t.jsx)("ul",{className:"border-b border-border/60",children:o.changes.map((e,r)=>(0,t.jsx)(B,{change:e},`${r}-${e.op}-${e.text}`))}):!e.current&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground/70",children:"Nothing needed changing."})]}):(0,t.jsx)("p",{className:"text-xs text-muted-foreground/70",children:"Nothing has been read back yet."})})}let U={add:{icon:m.Plus,label:"added"},replace:{icon:s,label:"revised"},forget:{icon:c,label:"dropped"},carry:{icon:d.Pin,label:"carried into every call"},uncarry:{icon:h,label:"no longer carried"}};function B({change:e}){let{icon:r,label:n}=U[e.op];return(0,t.jsxs)("li",{className:"flex gap-3 border-t border-border/60 py-3",children:[(0,t.jsxs)("span",{className:"flex w-3.5 shrink-0 justify-center pt-1 text-muted-foreground",children:[(0,t.jsx)(r,{className:"size-3.5"}),(0,t.jsx)("span",{className:"sr-only",children:n})]}),(0,t.jsx)("span",{className:"min-w-0 flex-1 text-sm leading-relaxed text-foreground/90",children:e.text}),(0,t.jsx)("span",{className:"shrink-0 pt-0.5 font-mono text-[11px] text-muted-foreground/50",children:e.path})]})}e.s(["MemoryTidyNotice",0,function(){return(0,p.useAppEvent)({"memory-tidied":e=>{v.toast.add({type:e.failed?"error":"success",title:e.failed?"Could not read the call back":"Memory tidied",description:e.tally,actionProps:{children:"Show",onClick:()=>{(0,T.openSettings)("thursday"),K()}}})}}),null},"TidySetting",0,function(){let{data:e}=(0,C.useServerRoute)(y.queryKey.memoryTidy),[r]=(0,L.useServerAction)(j,{onOk:()=>(0,C.revalidate)(y.queryKey.memoryTidy)});return(0,t.jsx)(O.SettingGroup,{label:"After a call",children:(0,t.jsx)(O.SettingToggle,{label:"Read the call back",description:"During a call she saves what she catches between sentences. Afterwards a model reads the whole thing back and fixes what she missed.",checked:e?.on??!1,disabled:!e,onChange:e=>r(e),children:e&&(0,t.jsx)(P,{status:e})})})}],692329);var q=e.i(504565),J=e.i(265402),V=e.i(451888);let W=["mark","ascii"],Y=["ascii","emoji","emojiOnly"];e.s(["ASCII_CHARSETS",0,Y,"FACE_KINDS",0,W],933916);var G=e.i(981203);let Z=q.default.object({systemPrompt:q.default.string().max(G.COMMON_VALIDATE.prompt.max).nullish(),model:J.speachModelRefSchema.nullish(),locale:q.default.string().max(35).nullish()}),Q=V.botIconSchema.extend({kind:q.default.enum(W).default("ascii"),charset:q.default.enum(Y).default("ascii"),fontSize:q.default.number().min(4).max(16).default(8),density:q.default.number().min(.6).max(2).default(1.4)}),X=Q.parse({}),ee={min:3,max:32},et=q.default.object({enabled:q.default.boolean(),phrase:q.default.string().trim().min(ee.min).max(ee.max)}),er=q.default.object({enabled:q.default.boolean(),combo:q.default.string().trim().min(1).max(64)}),en=["off","waiting","any"],ea=q.default.enum(en),es=["center","sides"],ei=q.default.enum(es);q.default.object({id:q.default.string().min(1),role:q.default.enum(["user","assistant","tool"]),tool:q.default.string().nullish(),text:q.default.string(),seq:q.default.number().int().min(0)}),e.s(["CALL_BACK_DEFAULT",0,"off","CALL_BACK_LABEL",0,{off:"Never",waiting:"When a job needs me",any:"Whenever a job ends"},"CALL_BACK_MODES",0,en,"CALL_HISTORY_PAGE",0,10,"CAPTION_VIEWS",0,es,"CallBackSchema",0,ea,"CaptionViewSchema",0,ei,"FACE_DEFAULT",0,X,"HOTKEY_DEFAULT",0,{enabled:!0,combo:"alt+shift+KeyT"},"HotkeySchema",0,er,"ThursdayFaceSchema",0,Q,"ThursdaySettingsSchema",0,Z,"WAKE_DEFAULT",0,{enabled:!0,phrase:"hey thursday"},"WAKE_PHRASE",0,ee,"WakeSchema",0,et],671228)},567334,e=>{"use strict";e.s(["ALPHA_TOP",0,.82,"CHAR_RATE",0,2.2,"EMOJI_CHAR_RATE",0,.6,"EMOJI_MIN_LEVEL",0,6,"EMOJI_POOL",0,["🍎","🌹","🍓","❤️","🎈","🧨","🔴","🍊","🔥","🦊","🏀","🧡","🍑","⭐","🍋","🌻","💛","🐥","🌟","🍌","🍀","🌿","🐸","🥝","💚","🌵","🥑","💧","🌊","🫐","🐳","💙","🔵","🧊","🍇","💜","🔮","🟣","🪻","🍆","🌸","🌷","💗","🦩","🩷","🍫","🐻","🌰","🥐","🤍","☁️","🖤","⚪","⚫","🦢","🌈","🦜","🎨","🪩","🦄","✨","🍬","🎡"],"EMOJI_RATIO",0,.11,"RAMP",0,[[" "],[" ",".","`"],[".",",","·","'"],[":",";","-","^"],["=","+","~",'"'],["*","?","◦","j"],["c","v","○","7"],["o","x","◇","い"],["s","y","t","あ"],["e","a","u","な"],["k","w","z","や"],["q","h","n","米"]],"hash",0,function(e,t){let r=43758.5453*Math.sin(127.1*e+311.7*t);return r-Math.floor(r)},"smoothstep",0,function(e,t,r){let n=Math.min(1,Math.max(0,(r-e)/(t-e)));return n*n*(3-2*n)}])},333495,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(635963),a=e.i(567334);let s=[235,235,235],i=["████ ███ ███ ██ ███ ","█ █ █ █ █ █ █ █ █","███ ███ ███ █ █ ███ ","█ █ █ █ █ █ █ █ █ ","████ █ █ █ █ ██ █ █"],l={happy:[".....................",".....................","....███.......███....","...█████.....█████...","...█████.....█████...","....███.......███....",".....................",".....................","█...................█",".██...............██.","...███.........███...","......█████████......","....................."],sad:[".....................",".....................","....███.......███....","...█████.....█████...","...█████.....█████...","....███.......███....",".....................",".....................","......█████████......","...███.........███...",".██...............██.","█...................█","....................."],love:[".....................","...██.██.....██.██...","..███████...███████..","..███████...███████..","...█████.....█████...","....███.......███....",".....█.........█.....",".....................","█...................█",".██...............██.","...███.........███...","......█████████......","....................."]};function o(e,t){let r=1-(0,a.smoothstep)(104.50000000000001,190,e.dist);return(.58+.2*Math.sin(.05*e.dist-.4*t)+.07*Math.sin(.35*t))*r}function c(e,t,r,n,s){switch(e){case"idle":return o(t,r)*(0,a.smoothstep)(0,1,Math.min(1,n/1.5));case"connecting":{let e=(0,a.smoothstep)(0,1,Math.min(1,n/1.8)),s=t.dist-235*e;return Math.exp(-(s*s)/6e3)*(.2+.85*(0,a.hash)(Math.floor(t.dist/9),Math.floor(11*t.angle))+.5*(0,a.hash)(137*t.seed,7))*e+o(t,r)*(1-e)}case"speaking":{let e=(0,a.smoothstep)(0,1,Math.min(1,n/.8)),i=190+(58*s.slow+58*s.bob)*e;for(let r=0;r<4;r++)i+=40*s.amp[r]*Math.sin((r+2)*t.angle+s.phase[r])*e;let l=Math.max(130,Math.min(278,i)),o=t.dist-l,c=Math.exp(-(o*o)/900),d=.55*Math.exp(-(t.dist*t.dist)/6e3),u=t.dist<l?.3*(1-t.dist/l)**.6:0,h=0;for(let e=0;e<s.rings.length;e++){let n=s.rings[e],a=r-n.born,i=t.dist-(l+100*a);h+=Math.exp(-(i*i)/2200)*n.power*Math.max(0,1-a/.55)}return c+d+u+.8*h}case"working":{let e=(0,a.smoothstep)(0,1,Math.min(1,n/.7)),s=t.dist-238,i=Math.exp(-(s*s)/1100),l=t.angle-3*r,c=Math.atan2(Math.sin(l),Math.cos(l));return i*Math.exp(-(c*c)/(c<0?2.8:.16))*e+o(t,r)*(1-e)}case"error":{if(t.letter<0)return 0;let e=n%9.2,s=t.letter,i=.12*t.seed;return Math.max(0,(0,a.smoothstep)(0,1,(e-.65*s-i)/.8)-(0,a.smoothstep)(0,1,(e-5.6-.5*s-i)/.7))*(.86+.14*Math.sin(3.5*r+6*t.seed))}}}function d({className:e,mode:n="idle",charset:o="ascii",emotion:u=null,fontSize:h=8,density:m=1.4,size:f=680,color:g=s,getSpectrum:p}){let y=(0,r.useRef)(null),x=(0,r.useRef)(null),b=(0,r.useRef)([]),M=(0,r.useRef)(null),v=(0,r.useRef)(o),A=(0,r.useRef)({cur:[...g],target:g}),S=(0,r.useRef)({cw:1,ch:1,errScale:3,faceScale:3,size:0}),k=(0,r.useRef)({cur:u,prev:null,start:-1/0}),w=(0,r.useRef)(p);w.current=p;let _=(0,r.useRef)({fast:0,mid:0,slow:0,bob:0,bobVel:0,lastOnset:-1/0,amp:[,,,,].fill(0),phase:Array.from({length:4},(e,t)=>2.1*t),rings:[]}),N=(0,r.useRef)({mode:n,start:0}),j=(0,r.useRef)(null),E=(0,r.useRef)(-1/0);return(0,r.useEffect)(()=>{let e=y.current;if(!e)return;let t=.95*h/m,r=1.25*h/m,n=680/f,s=t*n,l=r*n,o=Math.max(1,Math.floor(625.6/(i[0].length*s))),c=Math.max(1,Math.floor(557.6/(21*s)));S.current={cw:s,ch:l,errScale:o,faceScale:c,size:f};let d=[],u=Math.ceil(f/t),g=Math.ceil(f/r);for(let e=0;e<g;e++)for(let c=0;c<u;c++){let u=c*t,h=e*r,m=(u-f/2)*n,g=(h-f/2)*n,p=Math.hypot(m,g),y=function(e,t,r,n,a){let s=i.length,l=Math.floor(e/(r*a)+i[0].length/2),o=Math.floor(t/(n*a)+s/2);if(o<0||o>=s)return -1;let c=i[o];return l<0||l>=c.length||"█"!==c[l]?-1:Math.floor(l/5)}(m,g,s,l,o);y<0&&p>328||d.push({x:u+t/2,y:h+r/2,dx:m,dy:g,dist:p,angle:Math.atan2(g,m),seed:(0,a.hash)(c,e),grain:(0,a.hash)(5.7*c+19,2.3*e+53),gap:.05+.3*(0,a.hash)(7.3*c+11,3.1*e+5),birth:(0,a.hash)(3.1*c+7,5.7*e+2),death:(0,a.hash)(9.4*c+3,2.6*e+8),emoji:(0,a.hash)(2.7*c+31,5.9*e+17)<a.EMOJI_RATIO,letter:y})}b.current=d,M.current={ascii:Array.from({length:a.RAMP.length},()=>new Int32Array(d.length)),emoji:Array.from({length:a.RAMP.length},()=>new Int32Array(d.length)),asciiN:new Int32Array(a.RAMP.length),emojiN:new Int32Array(a.RAMP.length),glyph:Array(d.length)};let p=Math.min(2,window.devicePixelRatio||1);e.width=f*p,e.height=f*p,e.style.width=`${f}px`,e.style.height=`${f}px`;let v=e.getContext("2d");return v&&(v.setTransform(p,0,0,p,0,0),v.font=`700 ${h}px ui-monospace,SFMono-Regular,Menlo,monospace`,v.textAlign="center",v.textBaseline="middle",x.current=v),()=>{v?.clearRect(0,0,f,f),b.current=[],M.current=null}},[h,m,f]),(0,r.useEffect)(()=>{let e=k.current;e.cur!==u&&(k.current={cur:u,prev:e.cur,start:.001*performance.now()})},[u]),(0,r.useEffect)(()=>{v.current=o},[o]),(0,r.useEffect)(()=>{A.current.target=g},[g]),(0,r.useEffect)(()=>{let e=.001*performance.now();N.current.mode!==n?(j.current={...N.current},N.current={mode:n,start:e},E.current=e):N.current={mode:n,start:e}},[n]),(0,r.useEffect)(()=>{let e=0,t=Array(28),r=.001*performance.now(),n=s=>{let i=.001*s,o=Math.min(.05,Math.max(0,i-r));r=i;let d=x.current,u=M.current;if(!d||!u){e=requestAnimationFrame(n);return}let h=v.current,{cw:m,ch:f,faceScale:g,size:p}=S.current;u.asciiN.fill(0),u.emojiN.fill(0);let y=w.current?.();if(y&&y.length>1){let e=y.length-1;for(let r=0;r<28;r++){let n=Math.abs((r/28*2+1)%2-1)*e,a=Math.floor(n),s=Math.min(e,a+1);t[r]=y[a]+(y[s]-y[a])*(n-a)}}else for(let e=0;e<28;e++){let r=.5*Math.sin(1.7*i+1.7*e)+.3*Math.sin(.8*i+.6*e)+.2*Math.sin(3*i+2.9*e);t[e]=.5*r+.5}let O=_.current,T=0;for(let e=0;e<28;e++)T+=t[e];if(T=Math.min(1,T/28*2.6),O.fast+=(T-O.fast)*.3,O.mid+=(T-O.mid)*.06,O.slow+=(T-O.slow)*.02,O.fast>1.25*O.mid+.02&&O.fast>.07&&i-O.lastOnset>.14){O.lastOnset=i;let e=Math.min(1,1.7*O.fast);O.bobVel+=.05*e,O.rings.push({born:i,power:e}),O.rings.length>5&&O.rings.shift()}O.bobVel+=-(.012*O.bob)-.09*O.bobVel,O.bob+=O.bobVel;for(let e=0;e<4;e++){let r=e/4*28|0,n=(e+1)/4*28|0,s=0;for(let e=r;e<n;e++)s+=t[e];s=Math.min(1,s/Math.max(1,n-r)*2.6);let l=.7+.6*(0,a.hash)((.9*i|0)+31*e,e);O.amp[e]+=(s*l-O.amp[e])*(.02+.012*e),O.phase[e]+=o*(.5+.37*e)*(e%2?-1:1)}for(;O.rings.length>0&&i-O.rings[0].born>.55;)O.rings.shift();let R=N.current,L=j.current,C=(0,a.smoothstep)(0,1,Math.min(1,(i-E.current)/1.5)),I=null!==L&&C<1,P="error"===R.mode||I&&L?.mode==="error",F=k.current,z=i-F.start,D=Math.min(1,Math.max(0,z/.36)),$=Math.min(1,Math.max(0,(z-.36-.14)/.95)),K=null!==F.cur||z<1.45,H=(e,t)=>{var r,n;let a,s;return r=t.dx,n=t.dy,a=Math.floor(r/(m*g)+10.5),(s=Math.floor(n/(f*g)+6.5))<0||s>=13||a<0||a>=21||"█"!==l[e][s][a]?0:s<7?1:2},U=(e,t)=>0===e?0:(1===e?1:.88)*(.74+.26*(1-Math.min(1,t.dist/270)))*(.42+.85*(0,a.hash)(Math.floor(.09*t.dx+.25*i),Math.floor(.09*t.dy-.18*i))),B=e=>{if(e.seed<.976)return 0;let t=195+160*(0,a.hash)(311*e.seed,9);return Math.exp(-((e.dist-t)**2)/7e3)*(.5+.5*Math.sin(i*(.5+1.5*(0,a.hash)(47*e.seed,21))+300*e.seed))*.36},q=b.current;for(let e=0;e<q.length;e++){let t=q[e],r=c(R.mode,t,i,i-R.start,O);if(I&&L){let e=c(L.mode,t,i,i-L.start,O);r=e+(r-e)*C}!(P&&t.letter>=0)&&((r*=(.66+.72*t.grain)*(.8+.4*(0,a.hash)(Math.floor(.05*t.dx+.5*i),Math.floor(.05*t.dy-.3*i))))>.3&&(0,a.hash)(31.7*Math.floor(1.6*i),613*t.seed)>.992&&(r=Math.max(r,.9)),r<t.gap+.05*Math.sin(.28*i+6.283*t.seed)&&(r=0));let n=!1;if(K){let e=(0,a.smoothstep)(0,1,(1.1*D-t.death)/.08),s=(0,a.smoothstep)(0,1,(1.1*$-t.birth)/.08),i=F.cur?H(F.cur,t):0,l=F.prev?H(F.prev,t):0,o=B(t);r=(F.prev?U(l,t)+o:r)*(1-e)+(F.cur?U(i,t)+o:r)*s,n=i>0&&s>.05||l>0&&e<.95}let s=(r=r<0?0:r>1?1:r)*(a.RAMP.length-1)|0;if(0===s)continue;let l=i*(n?.75:"emojiOnly"===h?a.EMOJI_CHAR_RATE:a.CHAR_RATE)+7*t.seed|0;if("emojiOnly"===h||"emoji"===h&&t.emoji&&s>=a.EMOJI_MIN_LEVEL){let r=((t.seed*a.EMOJI_POOL.length|0)+l)%a.EMOJI_POOL.length;u.glyph[e]=a.EMOJI_POOL[r],u.emoji[s][u.emojiN[s]++]=e}else{let r=a.RAMP[s],n=((t.seed*r.length|0)+l)%r.length;u.glyph[e]=r[n],u.ascii[s][u.asciiN[s]++]=e}}d.clearRect(0,0,p,p);let J=b.current,V=a.RAMP.length-1,W=A.current;for(let e=0;e<3;e++)W.cur[e]+=(W.target[e]-W.cur[e])*.05;d.fillStyle=`rgb(${0|W.cur[0]},${0|W.cur[1]},${0|W.cur[2]})`;for(let e=1;e<=V;e++){let t=u.asciiN[e];if(0===t)continue;d.globalAlpha=a.ALPHA_TOP*(e/V);let r=u.ascii[e];for(let e=0;e<t;e++){let t=J[r[e]];d.fillText(u.glyph[r[e]],t.x,t.y)}}for(let e=1;e<=V;e++){let t=u.emojiN[e];if(0===t)continue;d.globalAlpha=.35+e/V*.65;let r=u.emoji[e];for(let e=0;e<t;e++){let t=J[r[e]];d.fillText(u.glyph[r[e]],t.x,t.y)}}d.globalAlpha=1,!I&&L&&(j.current=null),e=requestAnimationFrame(n)};return e=requestAnimationFrame(n),()=>cancelAnimationFrame(e)},[]),(0,t.jsx)("canvas",{ref:y,className:e,"aria-hidden":!0,style:{display:"block",pointerEvents:"none"}})}var u=e.i(922521),h=e.i(647163);let m={idle:"idle",connecting:"connecting",listening:"listening",speaking:"speaking",working:"thinking",delegating:"delegating"},f={ripple:14,pulse:0,punch:0,stretch:0},g={idle:"idle",connecting:"connecting",listening:"connecting",speaking:"speaking",working:"working",delegating:"working"},p=[247,247,247],y=[10,10,10],x={mark:{label:"Mark",hint:"A silhouette with eyes. Blinks, glances, leans into a voice.",render:function({status:e,size:r,getSpectrum:a,look:s,className:i}){return(0,t.jsx)(n.BotMark,{size:r,seed:"thursday",color:s.color,shape:s.shape,outline:s.outline,state:m[e],getSpectrum:a,options:f,notify:!1,className:i})}},ascii:{label:"Ascii",hint:"A field of characters. No eyes — the whole orb is the expression.",render:function({status:e,size:r,getSpectrum:n,look:a,className:s}){let i="dark"===(0,u.useResolvedTheme)();return(0,t.jsx)(d,{mode:g[e],size:r,color:i?p:y,getSpectrum:n,charset:a.charset,fontSize:a.fontSize,density:a.density,className:s})}}},b=(0,r.memo)(function({look:e,status:n="idle",size:a=448,className:s,...i}){let l=(0,r.useRef)(null),[o,c]=(0,r.useState)(a),[d,u]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let e=l.current;if(!e)return;let t=new ResizeObserver(([e])=>{let t=Math.round(e.contentRect.width);t>0&&c(t)});return t.observe(e),()=>t.disconnect()},[]),(0,r.useEffect)(()=>{let e=requestAnimationFrame(()=>u(!0));return()=>cancelAnimationFrame(e)},[]);let m=x[e.kind].render;return(0,t.jsx)("div",{ref:l,className:(0,h.cn)("aspect-square transition-opacity duration-700 ease-out",d?"opacity-100":"opacity-0",s),children:(0,t.jsx)(m,{...i,look:e,status:n,size:o})})});e.s(["FACES",0,x,"Face",0,b],333495)},762074,e=>{"use strict";var t=e.i(271645),r=e.i(671228);let n="thursday.icon";function a(){try{let e=window.localStorage.getItem(n);return r.ThursdayFaceSchema.parse(e?JSON.parse(e):{})}catch{return r.FACE_DEFAULT}}let s=a(),i=new Set;function l(){for(let e of i)e()}e.s(["setThursdayFace",0,function(e){s=e;try{window.localStorage.setItem(n,JSON.stringify(e))}catch{}l()},"useThursdayFace",0,function(){return(0,t.useSyncExternalStore)(e=>{i.add(e);let t=e=>{e.key===n&&(s=a(),l())};return window.addEventListener("storage",t),()=>{i.delete(e),window.removeEventListener("storage",t)}},()=>s,()=>r.FACE_DEFAULT)}])},67045,e=>{"use strict";let t,r;var n=e.i(768834);let a=e=>t=>{try{let r=e(t);if(r instanceof Promise)return r;return{then:e=>a(e)(r),catch(e){return this}}}catch(e){return{then(e){return this},catch:t=>a(t)(e)}}};var s=e.i(671228);let i=s.ThursdaySettingsSchema.extend({wake:s.WakeSchema.catch(s.WAKE_DEFAULT),hotkey:s.HotkeySchema.catch(s.HOTKEY_DEFAULT),callBack:s.CallBackSchema.catch(s.CALL_BACK_DEFAULT),captionView:s.CaptionViewSchema.catch("center")}),l={systemPrompt:null,model:null,wake:s.WAKE_DEFAULT,hotkey:s.HOTKEY_DEFAULT,callBack:s.CALL_BACK_DEFAULT,captionView:"center"},o=(0,n.create)()((t=e=>({...l,patch:t=>e(t)}),r={name:"thursday.settings",merge:(e,t)=>{let r=i.safeParse(e);return{...t,...r.success?r.data:l}}},(e,n,s)=>{let i,l={storage:function(e){let t;try{t=e()}catch(e){return}return{getItem:e=>{var r;let n=e=>null===e?null:JSON.parse(e,void 0),a=null!=(r=t.getItem(e))?r:null;return a instanceof Promise?a.then(n):n(a)},setItem:(e,r)=>t.setItem(e,JSON.stringify(r,void 0)),removeItem:e=>t.removeItem(e)}}(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...r},o=!1,c=0,d=new Set,u=new Set,h=l.storage;if(!h)return t((...t)=>{console.warn(`[zustand persist middleware] Unable to update item '${l.name}', the given storage is currently unavailable.`),e(...t)});let m=()=>{let e=l.partialize({...n()});return h.setItem(l.name,{state:e,version:l.version})},f=s.setState;s.setState=(e,t)=>(f(e,t),m());let g=t((...t)=>(e(...t),m()));s.getInitialState=()=>g;let p=()=>{var t,r;if(!h)return;let s=++c;o=!1,d.forEach(e=>{var t;return e(null!=(t=n())?t:g)});let f=(null==(r=l.onRehydrateStorage)?void 0:r.call(l,null!=(t=n())?t:g))||void 0;return a(h.getItem.bind(h))(l.name).then(e=>{if(e)if("number"!=typeof e.version||e.version===l.version)return[!1,e.state];else{if(l.migrate){let t=l.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(t=>{var r;if(s!==c)return;let[a,o]=t;if(e(i=l.merge(o,null!=(r=n())?r:g),!0),a)return m()}).then(()=>{s===c&&(null==f||f(n(),void 0),i=n(),o=!0,u.forEach(e=>e(i)))}).catch(e=>{s===c&&(null==f||f(void 0,e))})};return s.persist={setOptions:e=>{l={...l,...e},e.storage&&(h=e.storage)},clearStorage:()=>{++c,null==h||h.removeItem(l.name)},getOptions:()=>l,rehydrate:()=>p(),hasHydrated:()=>o,onHydrate:e=>(d.add(e),()=>{d.delete(e)}),onFinishHydration:e=>(u.add(e),()=>{u.delete(e)})},l.skipHydration||p(),i||g}));e.s(["thursdaySettings",0,()=>{let{systemPrompt:e,model:t}=o.getState();return{systemPrompt:e,model:t,locale:"u"<typeof navigator?null:navigator.language??null}},"useThursdayStore",0,o],67045)},561540,e=>{"use strict";var t=e.i(213377);let r={[t.TOOL_NAMES.memory_recall]:"Checking your notes",[t.TOOL_NAMES.memory_remember]:"Noting that down",[t.TOOL_NAMES.memory_forget]:"Forgetting that",[t.TOOL_NAMES.memory_show]:"Putting your notes on screen",[t.TOOL_NAMES.bash]:"Doing it on this computer",[t.TOOL_NAMES.web_search]:"Searching the web",[t.TOOL_NAMES.load_skill]:"Reading how to do this",[t.TOOL_NAMES.end_call]:"Ending the call"};e.s(["toolLine",0,function(e,n){let a;if(e===t.TOOL_NAMES.tool_search||e===t.TOOL_NAMES.tool_call)return"Reaching a connected service";let s=null;if(n)try{let e=JSON.parse(n);e&&"object"==typeof e&&!Array.isArray(e)&&(s=e)}catch{}return(s&&function(e,r){if(e===t.TOOL_NAMES.delegate){let e="string"==typeof r.bot?r.bot.trim():"";return e?`Handing this to ${e}`:"Handing this over"}if(e===t.TOOL_NAMES.task){let e="string"==typeof r.task?r.task.trim():"";return"answer"===r.action?"Passing that back":"cancel"===r.action?"Stopping that":e?`Checking on ${e}`:"Checking the jobs"}return null}(e,s))??r[e]??((a=e.indexOf("__"))<=0?null:`Reaching ${e.slice(0,a).replace(/[-_]/g," ")}`)}])},319841,e=>{"use strict";var t=e.i(271645);let r=["ctrl","alt","meta"],n=/^(Control|Alt|Shift|Meta|OS)/,a=/^(input|textarea|select)$/i;function s(e){let{code:t,ctrlKey:r,altKey:a,shiftKey:s,metaKey:i}=e;if(!t||n.test(t)||!r&&!a&&!i)return null;let l=[];return r&&l.push("ctrl"),a&&l.push("alt"),s&&l.push("shift"),i&&l.push("meta"),[...l,t].join("+")}let i={ctrl:["Ctrl","⌃"],alt:["Alt","⌥"],shift:["Shift","⇧"],meta:["Meta","⌘"]};e.s(["HOTKEY_CAPTURE",0,{"data-hotkey-capture":""},"comboOf",0,s,"isCombo",0,e=>{let t=e.split("+"),a=t.at(-1);return!!(a&&!n.test(a)&&t.slice(0,-1).some(e=>r.includes(e)))},"useHotkey",0,function({enabled:e,combo:r,onPress:n}){let i=(0,t.useRef)(n);i.current=n,(0,t.useEffect)(()=>{if(!e||!r)return;let t=e=>{var t;e.repeat||(t=e.target)&&(a.test(t.tagName)||t.isContentEditable||t.closest?.("[data-hotkey-capture]"))||s(e)===r&&(e.preventDefault(),i.current())};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[e,r])},"useHotkeyLabel",0,function(e){let[r,n]=(0,t.useState)(!1);return(0,t.useEffect)(()=>n(/mac/i.test(navigator.userAgent)),[]),e?function(e,t=!1){let r=e.split("+"),n=r.at(-1)??"",a=r.slice(0,-1).map(e=>i[e]?.[+!!t]??e),s=n.replace(/^(Key|Digit|Numpad)/,"").replace(/([a-z])([A-Z])/g,"$1 $2")||n;return t?[...a,s].join(""):[...a,s].join(" + ")}(e,r):null}])}]);