thursday-agent 0.4.0 → 0.6.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 (657) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +3 -2
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/required-server-files.json +8 -1
  6. package/.next/routes-manifest.json +18 -6
  7. package/.next/server/app/_global-error/page.js.nft.json +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 +10 -6
  21. package/.next/server/app/api/artifact/route.js.nft.json +1 -1
  22. package/.next/server/app/api/bot/memory/files/route.js +6 -5
  23. package/.next/server/app/api/bot/memory/files/route.js.nft.json +1 -1
  24. package/.next/server/app/api/bot/memory/route.js +8 -8
  25. package/.next/server/app/api/bot/memory/route.js.nft.json +1 -1
  26. package/.next/server/app/api/bot/route.js +8 -8
  27. package/.next/server/app/api/bot/route.js.nft.json +1 -1
  28. package/.next/server/app/api/bot/thread/[id]/route/app-paths-manifest.json +3 -0
  29. package/.next/server/app/api/bot/thread/[id]/route.js +15 -0
  30. package/.next/server/app/api/bot/thread/[id]/route.js.nft.json +1 -0
  31. package/.next/server/app/api/bot/thread/[id]/route_client-reference-manifest.js +3 -0
  32. package/.next/server/app/api/bot/thread/route/app-paths-manifest.json +3 -0
  33. package/.next/server/app/api/bot/thread/route.js +15 -0
  34. package/.next/server/app/api/bot/thread/route.js.nft.json +1 -0
  35. package/.next/server/app/api/bot/thread/route_client-reference-manifest.js +3 -0
  36. package/.next/server/app/api/config/route.js +7 -7
  37. package/.next/server/app/api/config/route.js.nft.json +1 -1
  38. package/.next/server/app/api/events/route.js +3 -3
  39. package/.next/server/app/api/events/route.js.nft.json +1 -1
  40. package/.next/server/app/api/file/[...path]/route.js +5 -5
  41. package/.next/server/app/api/file/[...path]/route.js.nft.json +1 -1
  42. package/.next/server/app/api/llm-model/catalog/route.js +8 -8
  43. package/.next/server/app/api/llm-model/catalog/route.js.nft.json +1 -1
  44. package/.next/server/app/api/llm-model/credits/route.js +8 -8
  45. package/.next/server/app/api/llm-model/credits/route.js.nft.json +1 -1
  46. package/.next/server/app/api/llm-model/route.js +8 -8
  47. package/.next/server/app/api/llm-model/route.js.nft.json +1 -1
  48. package/.next/server/app/api/llm-model/subscription/route.js +8 -8
  49. package/.next/server/app/api/llm-model/subscription/route.js.nft.json +1 -1
  50. package/.next/server/app/api/mcp/[name]/route.js +6 -6
  51. package/.next/server/app/api/mcp/[name]/route.js.nft.json +1 -1
  52. package/.next/server/app/api/mcp/oauth/callback/route.js +4 -4
  53. package/.next/server/app/api/mcp/oauth/callback/route.js.nft.json +1 -1
  54. package/.next/server/app/api/mcp/route.js +6 -6
  55. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  56. package/.next/server/app/api/mcp/tools/route.js +6 -6
  57. package/.next/server/app/api/mcp/tools/route.js.nft.json +1 -1
  58. package/.next/server/app/api/memory/edit/route.js +13 -13
  59. package/.next/server/app/api/memory/edit/route.js.nft.json +1 -1
  60. package/.next/server/app/api/memory/route.js +7 -6
  61. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  62. package/.next/server/app/api/skills/[source]/[name]/route.js +6 -6
  63. package/.next/server/app/api/skills/[source]/[name]/route.js.nft.json +1 -1
  64. package/.next/server/app/api/skills/route.js +6 -6
  65. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  66. package/.next/server/app/api/thursday/call/route.js +10 -11
  67. package/.next/server/app/api/thursday/call/route.js.nft.json +1 -1
  68. package/.next/server/app/api/thursday/skills/route.js +10 -11
  69. package/.next/server/app/api/thursday/skills/route.js.nft.json +1 -1
  70. package/.next/server/app/api/thursday/tool-call/route.js +15 -15
  71. package/.next/server/app/api/thursday/tool-call/route.js.nft.json +1 -1
  72. package/.next/server/app/api/workspace/missing/route/app-paths-manifest.json +3 -0
  73. package/.next/server/app/api/workspace/missing/route/build-manifest.json +12 -0
  74. package/.next/server/app/api/workspace/missing/route/server-reference-manifest.json +4 -0
  75. package/.next/server/app/api/workspace/missing/route.js +12 -0
  76. package/.next/server/app/api/workspace/missing/route.js.map +5 -0
  77. package/.next/server/app/api/workspace/missing/route.js.nft.json +1 -0
  78. package/.next/server/app/api/workspace/missing/route_client-reference-manifest.js +3 -0
  79. package/.next/server/app/api/workspace/route.js +5 -4
  80. package/.next/server/app/api/workspace/route.js.nft.json +1 -1
  81. package/.next/server/app/artifact/[...path]/page/server-reference-manifest.json +1 -1
  82. package/.next/server/app/artifact/[...path]/page.js +4 -3
  83. package/.next/server/app/artifact/[...path]/page.js.nft.json +1 -1
  84. package/.next/server/app/artifact/[...path]/page_client-reference-manifest.js +1 -1
  85. package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  86. package/.next/server/app/page/server-reference-manifest.json +67 -45
  87. package/.next/server/app/page.js +10 -9
  88. package/.next/server/app/page.js.nft.json +1 -1
  89. package/.next/server/app/page_client-reference-manifest.js +1 -1
  90. package/.next/server/app-paths-manifest.json +3 -2
  91. package/.next/server/chunks/[root-of-the-server]__02846fb._.js +8 -0
  92. package/.next/server/chunks/[root-of-the-server]__049f521._.js +3 -0
  93. package/.next/server/chunks/[root-of-the-server]__05luceg._.js +3 -0
  94. package/.next/server/chunks/[root-of-the-server]__06--3q3._.js +8 -0
  95. package/.next/server/chunks/[root-of-the-server]__07bnah_._.js +3 -0
  96. package/.next/server/chunks/[root-of-the-server]__08eae20._.js +8 -0
  97. package/.next/server/chunks/[root-of-the-server]__0_ue8oe._.js +3 -0
  98. package/.next/server/chunks/[root-of-the-server]__0c9fgca._.js +5 -0
  99. package/.next/server/chunks/[root-of-the-server]__0g-ueei._.js +8 -0
  100. package/.next/server/chunks/[root-of-the-server]__0h_x6q6._.js +5 -0
  101. package/.next/server/chunks/{[root-of-the-server]__0pa2n68._.js → [root-of-the-server]__0kxrvxf._.js} +2 -2
  102. package/.next/server/chunks/{[root-of-the-server]__0q0vvt2._.js → [root-of-the-server]__0ov3iir._.js} +2 -2
  103. package/.next/server/chunks/[root-of-the-server]__0qwtlmx._.js +8 -0
  104. package/.next/server/chunks/[root-of-the-server]__0sm5xvm._.js +3 -0
  105. package/.next/server/chunks/[root-of-the-server]__0ye3da2._.js +3 -0
  106. package/.next/server/chunks/[root-of-the-server]__0zp35ul._.js +5 -0
  107. package/.next/server/chunks/[root-of-the-server]__144u9d_._.js +3 -0
  108. package/.next/server/chunks/[root-of-the-server]__18-2tsq._.js +5 -0
  109. package/.next/server/chunks/[root-of-the-server]__1e-ci13._.js +3 -0
  110. package/.next/server/chunks/[root-of-the-server]__1e2365e._.js +8 -0
  111. package/.next/server/chunks/[root-of-the-server]__1fix932._.js +8 -0
  112. package/.next/server/chunks/{[root-of-the-server]__0ce8nf8._.js → [root-of-the-server]__1g3t7vn._.js} +3 -3
  113. package/.next/server/chunks/[root-of-the-server]__1kp-83u._.js +5 -0
  114. package/.next/server/chunks/[root-of-the-server]__1kv8p3e._.js +5 -0
  115. package/.next/server/chunks/[root-of-the-server]__1orn-5b._.js +2 -3
  116. package/.next/server/chunks/_02szwk8._.js +5 -0
  117. package/.next/server/chunks/_05h2cii._.js +1 -1
  118. package/.next/server/chunks/_06c9kie._.js +216 -0
  119. package/.next/server/chunks/{_1x6kd1r._.js → _07y2gj-._.js} +1 -1
  120. package/.next/server/chunks/_0a43a-0._.js +3 -0
  121. package/.next/server/chunks/_0bujjey._.js +5 -0
  122. package/.next/server/chunks/_0c9j6rb._.js +1 -1
  123. package/.next/server/chunks/_0dkd549._.js +3 -0
  124. package/.next/server/chunks/_0ej1kvv._.js +3 -0
  125. package/.next/server/chunks/_0f6ts7z._.js +3 -0
  126. package/.next/server/chunks/_0gm9hyv._.js +55 -0
  127. package/.next/server/chunks/_0i55en5._.js +25 -0
  128. package/.next/server/chunks/_0k50n27._.js +18 -0
  129. package/.next/server/chunks/_0khihjk._.js +3 -3
  130. package/.next/server/chunks/_0n74zsf._.js +5 -5
  131. package/.next/server/chunks/_0nvm9ef._.js +3 -0
  132. package/.next/server/chunks/_0p56fn0._.js +3 -0
  133. package/.next/server/chunks/_0recufk._.js +1 -1
  134. package/.next/server/chunks/_0xbkz10._.js +3 -0
  135. package/.next/server/chunks/_10tkr26._.js +3 -0
  136. package/.next/server/chunks/{_0ioz3nd._.js → _11u2kp7._.js} +1 -1
  137. package/.next/server/chunks/_11ujpya._.js +3 -0
  138. package/.next/server/chunks/_127nx_p._.js +5 -0
  139. package/.next/server/chunks/_17l5ygt._.js +1 -1
  140. package/.next/server/chunks/_19uauj6._.js +3 -0
  141. package/.next/server/chunks/_1_5mnq4._.js +5 -5
  142. package/.next/server/chunks/_1abl6t9._.js +55 -0
  143. package/.next/server/chunks/_1d0j961._.js +3 -3
  144. package/.next/server/chunks/_1dbixxz._.js +3 -0
  145. package/.next/server/chunks/_1dc_d1q._.js +98 -0
  146. package/.next/server/chunks/_1drgfx4._.js +5 -5
  147. package/.next/server/chunks/_1e48czp._.js +3 -3
  148. package/.next/server/chunks/_1f31u5x._.js +5 -0
  149. package/.next/server/chunks/_1kg70wc._.js +3 -3
  150. package/.next/server/chunks/_1klbcft._.js +5 -0
  151. package/.next/server/chunks/_1krd9rf._.js +4 -1
  152. package/.next/server/chunks/_1kwmzab._.js +3 -0
  153. package/.next/server/chunks/{_1pf4qe-._.js → _1oxj9fa._.js} +1 -1
  154. package/.next/server/chunks/{_1f46eie._.js → _1pcmdbb._.js} +1 -1
  155. package/.next/server/chunks/_1qgix-j._.js +3 -0
  156. package/.next/server/chunks/{lib_logger_ts_1exwjut._.js → _1rpchta._.js} +5 -5
  157. package/.next/server/chunks/_1vsej-s._.js +5 -0
  158. package/.next/server/chunks/_1yx0p_s._.js +5 -0
  159. package/.next/server/chunks/{_0rnf-6n._.js → _20fsr_z._.js} +6 -6
  160. package/.next/server/chunks/_2128hkj._.js +5 -0
  161. package/.next/server/chunks/_next-internal_server_app_api_bot_thread_[id]_route_actions_1fstjn2.js +3 -0
  162. package/.next/server/chunks/_next-internal_server_app_api_bot_thread_route_actions_003ccso.js +3 -0
  163. package/.next/server/chunks/_next-internal_server_app_api_workspace_missing_route_actions_1fidi6p.js +3 -0
  164. package/.next/server/chunks/config_ts_1g4sz5o._.js +1 -1
  165. package/.next/server/chunks/features_0-cnt0l._.js +4 -0
  166. package/.next/server/chunks/features_0hdaci0._.js +4 -0
  167. package/.next/server/chunks/features_1e39j7-._.js +8 -0
  168. package/.next/server/chunks/features_bot_bot_query_ts_12mgkl2._.js +1 -1
  169. package/.next/server/chunks/features_memory_1uqvksn._.js +1 -1
  170. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0r28-sm._.js → node_modules_consola_dist_chunks_prompt_mjs_0a7-pbw._.js} +1 -1
  171. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0v_7drq._.js → node_modules_consola_dist_chunks_prompt_mjs_0gzvgfv._.js} +1 -1
  172. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0i7cvml._.js → node_modules_consola_dist_chunks_prompt_mjs_107pxfn._.js} +1 -1
  173. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0icqaqw._.js → node_modules_consola_dist_chunks_prompt_mjs_15hbel8._.js} +1 -1
  174. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_18i-23e._.js +3 -0
  175. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1bewgf3._.js +3 -0
  176. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1kipdeo._.js +3 -0
  177. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1nlww1m._.js +3 -0
  178. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1q77nfx._.js +3 -0
  179. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1xqdzx_._.js +3 -0
  180. package/.next/server/chunks/{node_modules_zod_v4_1801ax7._.js → node_modules_zod_v4_0lkux5-._.js} +2 -2
  181. package/.next/server/chunks/{node_modules_zod_v4_1cha_bw._.js → node_modules_zod_v4_1jmr9cq._.js} +2 -2
  182. package/.next/server/chunks/{node_modules_zod_v4_0ubdflj._.js → node_modules_zod_v4_1yrxmek._.js} +2 -2
  183. package/.next/server/chunks/node_modules_zod_v4_classic_errors_0tp0y-q.js +3 -0
  184. package/.next/server/chunks/ssr/[root-of-the-server]__09q9med._.js +1 -1
  185. package/.next/server/chunks/ssr/[root-of-the-server]__0bxsfyn._.js +101 -0
  186. package/.next/server/chunks/ssr/[root-of-the-server]__0lyi8i2._.js +1 -1
  187. package/.next/server/chunks/ssr/[root-of-the-server]__16jc196._.js +1 -1
  188. package/.next/server/chunks/ssr/[root-of-the-server]__172cq4x._.js +3 -0
  189. package/.next/server/chunks/ssr/[root-of-the-server]__18dthbp._.js +3 -0
  190. package/.next/server/chunks/ssr/[root-of-the-server]__18e68w8._.js +3 -0
  191. package/.next/server/chunks/ssr/[root-of-the-server]__1fll8dc._.js +3 -0
  192. package/.next/server/chunks/ssr/[root-of-the-server]__1mzi-ju._.js +1 -1
  193. package/.next/server/chunks/ssr/[root-of-the-server]__1nygfik._.js +5 -0
  194. package/.next/server/chunks/ssr/[root-of-the-server]__1sdphb0._.js +8 -0
  195. package/.next/server/chunks/ssr/[root-of-the-server]__1waa3rc._.js +100 -0
  196. package/.next/server/chunks/ssr/_00rehl_._.js +3 -0
  197. package/.next/server/chunks/ssr/{_1lz_cq2._.js → _02oc_h5._.js} +76 -89
  198. package/.next/server/chunks/ssr/_03_928f._.js +3 -0
  199. package/.next/server/chunks/ssr/_05yghx6._.js +3 -0
  200. package/.next/server/chunks/ssr/_08c4z-9._.js +3 -0
  201. package/.next/server/chunks/ssr/_0_qfdlw._.js +4 -0
  202. package/.next/server/chunks/ssr/_0c9e5w6._.js +9 -0
  203. package/.next/server/chunks/ssr/{_0s99bgb._.js → _0dh2e1j._.js} +9 -3
  204. package/.next/server/chunks/ssr/_0dr-ddg._.js +3 -0
  205. package/.next/server/chunks/ssr/_0eaog6_._.js +3 -0
  206. package/.next/server/chunks/ssr/_0evkpto._.js +3 -0
  207. package/.next/server/chunks/ssr/_0g_rlog._.js +3 -0
  208. package/.next/server/chunks/ssr/_0geg212._.js +3 -0
  209. package/.next/server/chunks/ssr/{_1gd8q8l._.js → _0hxt2ul._.js} +2 -2
  210. package/.next/server/chunks/ssr/_0i_6q1w._.js +2 -2
  211. package/.next/server/chunks/ssr/_0lu1n_x._.js +1 -1
  212. package/.next/server/chunks/ssr/{_15j2_8f._.js → _0wzaht-._.js} +2 -2
  213. package/.next/server/chunks/ssr/_0z-g0uy._.js +3 -0
  214. package/.next/server/chunks/ssr/_123ttsf._.js +3 -0
  215. package/.next/server/chunks/ssr/_123y-ah._.js +3 -0
  216. package/.next/server/chunks/ssr/_12w42gi._.js +3 -0
  217. package/.next/server/chunks/ssr/_161kqav._.js +3 -0
  218. package/.next/server/chunks/ssr/{_0ap2fzn._.js → _16c6_xm._.js} +2 -2
  219. package/.next/server/chunks/ssr/_18opah7._.js +3 -0
  220. package/.next/server/chunks/ssr/_18xqmny._.js +3 -0
  221. package/.next/server/chunks/ssr/_1_krfph._.js +3 -0
  222. package/.next/server/chunks/ssr/{_1-_etts._.js → _1anqots._.js} +2 -2
  223. package/.next/server/chunks/ssr/_1ey7qn-._.js +70 -0
  224. package/.next/server/chunks/ssr/_1g9vs7q._.js +3 -0
  225. package/.next/server/chunks/ssr/_1jmz33w._.js +3 -0
  226. package/.next/server/chunks/ssr/{_0n3toaw._.js → _1k0spz7._.js} +2 -2
  227. package/.next/server/chunks/ssr/_1rgtxhr._.js +5 -0
  228. package/.next/server/chunks/ssr/_1slp25y._.js +3 -0
  229. package/.next/server/chunks/ssr/{_1fojd41._.js → _1x9pskj._.js} +3 -3
  230. package/.next/server/chunks/ssr/_1y6b5mr._.js +101 -0
  231. package/.next/server/chunks/ssr/_1ztk7p6._.js +7 -0
  232. package/.next/server/chunks/ssr/components_ui_tabs_tsx_0ej40b4._.js +3 -0
  233. package/.next/server/chunks/ssr/features_bot_thread_query_ts_023eklt._.js +4 -0
  234. package/.next/server/chunks/ssr/features_config_components_config-setting_tsx_0xfwqdg._.js +1 -1
  235. package/.next/server/chunks/ssr/features_connectors_components_mcp-setting_tsx_0jmbgvp._.js +1 -1
  236. package/.next/server/chunks/ssr/{_1-teee5._.js → lib_logger_ts_0-olsze._.js} +2 -7
  237. package/.next/server/chunks/ssr/{node_modules_0cxaxk9._.js → node_modules_00_51_v._.js} +1 -1
  238. package/.next/server/chunks/ssr/{node_modules_04jf_m8._.js → node_modules_022sipm._.js} +1 -1
  239. package/.next/server/chunks/ssr/{node_modules_0g7fzk3._.js → node_modules_0332gw4._.js} +1 -1
  240. package/.next/server/chunks/ssr/{node_modules_1cx_ql6._.js → node_modules_04vxchl._.js} +1 -1
  241. package/.next/server/chunks/ssr/{node_modules_1vh5ntv._.js → node_modules_0746rzi._.js} +1 -1
  242. package/.next/server/chunks/ssr/{node_modules_0yugy6m._.js → node_modules_0d5uzof._.js} +1 -1
  243. package/.next/server/chunks/ssr/{node_modules_09q35v_._.js → node_modules_0exkwcm._.js} +1 -1
  244. package/.next/server/chunks/ssr/{node_modules_08dhkiq._.js → node_modules_0fr-ml8._.js} +1 -1
  245. package/.next/server/chunks/ssr/{node_modules_14q6g4n._.js → node_modules_0mxvg8h._.js} +1 -1
  246. package/.next/server/chunks/ssr/{node_modules_0arus10._.js → node_modules_0qapgjr._.js} +1 -1
  247. package/.next/server/chunks/ssr/{node_modules_1eg7m6c._.js → node_modules_0qbfyjh._.js} +1 -1
  248. package/.next/server/chunks/ssr/{node_modules_1cz2hle._.js → node_modules_0t-9nup._.js} +1 -1
  249. package/.next/server/chunks/ssr/{node_modules_17bwo43._.js → node_modules_0tusx4d._.js} +3 -3
  250. package/.next/server/chunks/ssr/{node_modules_1efrqxi._.js → node_modules_0vsxbzp._.js} +1 -1
  251. package/.next/server/chunks/ssr/{node_modules_0_-_a--._.js → node_modules_0vv0-fg._.js} +1 -1
  252. package/.next/server/chunks/ssr/{node_modules_1gdh31p._.js → node_modules_0wsvp00._.js} +1 -1
  253. package/.next/server/chunks/ssr/{node_modules_1hpopmo._.js → node_modules_1-urho9._.js} +1 -1
  254. package/.next/server/chunks/ssr/{node_modules_1_pc9kq._.js → node_modules_16pi_dd._.js} +1 -1
  255. package/.next/server/chunks/ssr/{node_modules_00etblx._.js → node_modules_1d53yiq._.js} +1 -1
  256. package/.next/server/chunks/ssr/{node_modules_1aaxuef._.js → node_modules_1g1eihe._.js} +1 -1
  257. package/.next/server/chunks/ssr/{node_modules_198nmll._.js → node_modules_1gpednh._.js} +1 -1
  258. package/.next/server/chunks/ssr/{node_modules_0pvd7q-._.js → node_modules_1gu1pph._.js} +1 -1
  259. package/.next/server/chunks/ssr/{node_modules_0b__sgl._.js → node_modules_1he1w8_._.js} +1 -1
  260. package/.next/server/chunks/ssr/{node_modules_1qpjvy5._.js → node_modules_1lnjapm._.js} +1 -1
  261. package/.next/server/chunks/ssr/{node_modules_0940ns5._.js → node_modules_1lynj9m._.js} +1 -1
  262. package/.next/server/chunks/ssr/{node_modules_0x3-ply._.js → node_modules_1seuurl._.js} +2 -2
  263. package/.next/server/chunks/ssr/{node_modules_14om4ar._.js → node_modules_1u6w1pb._.js} +1 -1
  264. package/.next/server/chunks/ssr/{node_modules_0had7xd._.js → node_modules_1xn6saw._.js} +1 -1
  265. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1b748ic._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_067_exa._.js} +1 -1
  266. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1z4hm5e._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0nrrdaq._.js} +1 -1
  267. package/.next/server/chunks/ssr/{node_modules_@vercel_oidc_dist_06mk8id._.js → node_modules_@vercel_oidc_dist_21a5haa._.js} +1 -1
  268. package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_trash_mjs_0px2gzr._.js +3 -0
  269. package/.next/server/middleware-build-manifest.js +3 -3
  270. package/.next/server/pages/404.html +1 -1
  271. package/.next/server/pages/500.html +1 -1
  272. package/.next/server/server-reference-manifest.js +1 -1
  273. package/.next/server/server-reference-manifest.json +68 -46
  274. package/.next/static/chunks/0dr16v67vj4n7.js +2 -0
  275. package/.next/static/chunks/0g4b348l0pve7.js +1 -0
  276. package/.next/static/chunks/0joan-69kbspd.js +1 -0
  277. package/.next/static/chunks/0vlgzqo9ka90v.js +1 -0
  278. package/.next/static/chunks/0zrupxgci5gqc.js +1 -0
  279. package/.next/static/chunks/10k2xvap03z20.css +1 -0
  280. package/.next/static/chunks/18mkhstgiqcbt.js +1 -0
  281. package/.next/static/chunks/{15m575979un5f.js → 1i-u2wzub_to1.js} +2 -2
  282. package/.next/static/chunks/1kp5nfp06nj9h.js +5 -0
  283. package/.next/static/chunks/1ohslk4568tm3.js +1 -0
  284. package/.next/static/chunks/1sbmwswc9k2-1.js +1 -0
  285. package/.next/static/chunks/1t9qms5pwwa3n.js +1 -0
  286. package/.next/static/chunks/1vj_5bnbxx84e.js +1 -0
  287. package/.next/static/chunks/1vqezbhjm3goq.js +1 -0
  288. package/.next/static/chunks/{3akmqm77muj4-.js → 1wlo979mx-y3w.js} +1 -1
  289. package/.next/static/chunks/26ql4y-43xwhp.js +1 -0
  290. package/.next/static/chunks/{0fl3gwe4-l6tz.js → 2_pnccjp6j1ca.js} +1 -1
  291. package/.next/static/chunks/2a51-ywz9b2a3.js +1 -0
  292. package/.next/static/chunks/2fvdgxih7x7hr.js +1 -0
  293. package/.next/static/chunks/2jlz8zp4jax_m.js +18 -0
  294. package/.next/static/chunks/2nvepds1fu2ux.js +1 -0
  295. package/.next/static/chunks/3addj3i4-izma.js +1 -0
  296. package/.next/static/chunks/3bfwpww3m3x4u.js +1 -0
  297. package/.next/static/chunks/3gfh7nxwusbt0.js +1 -0
  298. package/.next/static/chunks/3gwa44cvz4qoi.js +1 -0
  299. package/.next/static/chunks/{38gweqdo4jpfj.js → 3izg0a3k87q1-.js} +5 -5
  300. package/.next/static/chunks/3zk6q3-3f9swq.js +99 -0
  301. package/.next/static/chunks/3zkg5iup3v4a2.js +12 -0
  302. package/.next/static/chunks/405m0bqtoihev.js +1 -0
  303. package/.next/static/chunks/42wcg3wfg_m_p.js +1 -0
  304. package/README.md +27 -216
  305. package/app/api/events/app-event.ts +6 -4
  306. package/app/api/query-key.ts +25 -16
  307. package/bin/database.mjs +37 -0
  308. package/bin/thursday.mjs +44 -28
  309. package/components/ui/custom-icon.tsx +0 -60
  310. package/components/ui/radio-group.tsx +37 -0
  311. package/components/ui/shiny-text.tsx +33 -6
  312. package/database/migrations/{20260910173049_numerous_spirit → 20260916145701_clever_multiple_man}/migration.sql +80 -24
  313. package/database/migrations/{20260910173049_numerous_spirit → 20260916145701_clever_multiple_man}/snapshot.json +689 -110
  314. package/database/migrations/20260916160713_thread_cancelled/migration.sql +2 -0
  315. package/database/migrations/{20260911030320_opposite_jack_power → 20260916160713_thread_cancelled}/snapshot.json +706 -84
  316. package/docs/how-it-works.md +39 -36
  317. package/docs/images/keeps-going.png +0 -0
  318. package/docs/images/two-minds.png +0 -0
  319. package/docs/live-calls.md +231 -0
  320. package/docs/thread-rooms.md +71 -0
  321. package/features/ai/chatgpt.ts +1 -2
  322. package/features/ai/live.schema.ts +128 -0
  323. package/features/ai/load-tools.ts +148 -77
  324. package/features/ai/model.schema.ts +2 -120
  325. package/features/ai/model.ts +52 -88
  326. package/features/ai/prompts/bot.prompt.ts +91 -214
  327. package/features/ai/prompts/live.prompt.ts +265 -0
  328. package/features/ai/prompts/prompt-helper.ts +91 -32
  329. package/features/ai/prompts/thursday.prompt.ts +125 -172
  330. package/features/ai/tools/bot.tool.ts +38 -145
  331. package/features/ai/tools/call.tool.ts +1 -1
  332. package/features/ai/tools/connected.ts +5 -3
  333. package/features/ai/tools/mcp.tool.ts +7 -4
  334. package/features/ai/tools/memory.tool.ts +35 -31
  335. package/features/ai/tools/skills.tool.ts +36 -14
  336. package/features/ai/tools/studio.tool.ts +26 -21
  337. package/features/ai/tools/tool-name.ts +2 -5
  338. package/features/ai/tools/workspace.tool.ts +33 -10
  339. package/features/artifact/artifact.action.ts +2 -2
  340. package/features/artifact/artifact.query.ts +112 -61
  341. package/features/artifact/artifact.schema.ts +8 -6
  342. package/features/artifact/components/artifact-setting.tsx +83 -33
  343. package/features/bot/bot.action.ts +43 -36
  344. package/features/bot/bot.memory.ts +137 -20
  345. package/features/bot/bot.query.ts +28 -11
  346. package/features/bot/bot.run.ts +299 -636
  347. package/features/bot/bot.runner.ts +468 -844
  348. package/features/bot/bot.schema.ts +93 -82
  349. package/features/bot/bot.seed.ts +141 -64
  350. package/features/bot/components/bot-mark.tsx +324 -232
  351. package/features/bot/components/bot-room.tsx +1613 -697
  352. package/features/bot/components/bot-roster.tsx +8 -13
  353. package/features/bot/components/bot-setting.tsx +58 -42
  354. package/features/bot/components/bot-tool.tsx +55 -87
  355. package/features/bot/components/mark-palette.tsx +35 -32
  356. package/features/bot/components/path-chips.tsx +33 -3
  357. package/features/bot/components/thread-badge.tsx +34 -0
  358. package/features/bot/components/thread-reply.tsx +639 -0
  359. package/features/bot/components/thread-setting.tsx +674 -0
  360. package/features/bot/mark.const.ts +79 -31
  361. package/features/bot/room.query.ts +889 -0
  362. package/features/bot/room.schema.ts +64 -0
  363. package/features/bot/seed-bots.ts +2 -1
  364. package/features/bot/thread.query.ts +971 -0
  365. package/features/bot/thread.store.ts +587 -0
  366. package/features/config/components/voice-key.tsx +113 -88
  367. package/features/config/config.const.ts +5 -9
  368. package/features/connectors/mcp.schema.ts +0 -2
  369. package/features/intro/components/intro.tsx +169 -139
  370. package/features/memory/components/memory-setting.tsx +2 -7
  371. package/features/memory/memory.schema.ts +14 -23
  372. package/features/settings/components/setting-ui.tsx +0 -44
  373. package/features/settings/components/settings.tsx +12 -12
  374. package/features/settings/settings.alert.ts +3 -3
  375. package/features/settings/settings.store.ts +1 -1
  376. package/features/skills/skills.schema.ts +0 -2
  377. package/features/thursday/components/ascii-field.tsx +24 -44
  378. package/features/thursday/components/ascii-orb.tsx +359 -358
  379. package/features/thursday/components/call-log.tsx +46 -44
  380. package/features/thursday/components/face.tsx +35 -10
  381. package/features/thursday/components/tab-state.tsx +3 -3
  382. package/features/thursday/components/thursday-mark.tsx +1 -0
  383. package/features/thursday/components/thursday-setting.tsx +631 -332
  384. package/features/thursday/components/thursday.tsx +106 -41
  385. package/features/thursday/components/voice-picker.tsx +255 -0
  386. package/features/thursday/thursday.action.ts +94 -68
  387. package/features/thursday/thursday.query.ts +49 -30
  388. package/features/thursday/thursday.schema.ts +27 -30
  389. package/features/thursday/thursday.store.ts +11 -7
  390. package/features/thursday/tool-call.ts +3 -3
  391. package/features/thursday/tool-line.ts +5 -3
  392. package/features/thursday/use-thursday.ts +725 -450
  393. package/features/workspace/workspace.query.ts +17 -0
  394. package/features/workspace/workspace.ts +103 -50
  395. package/lib/live/live.schema.ts +47 -0
  396. package/lib/live/live.server.ts +155 -0
  397. package/lib/live/live.session.ts +574 -0
  398. package/lib/{realtime/realtime.tap.ts → live/live.tap.ts} +41 -12
  399. package/lib/live/live.transport.ts +152 -0
  400. package/lib/protocol/use-server-pages.ts +9 -5
  401. package/lib/utils.ts +21 -20
  402. package/package.json +2 -2
  403. package/public/voices/alloy.ogg +0 -0
  404. package/public/voices/ash.ogg +0 -0
  405. package/public/voices/ballad.ogg +0 -0
  406. package/public/voices/beacon.ogg +0 -0
  407. package/public/voices/bossa.ogg +0 -0
  408. package/public/voices/cedar.ogg +0 -0
  409. package/public/voices/cinder.ogg +0 -0
  410. package/public/voices/coral.ogg +0 -0
  411. package/public/voices/delta.ogg +0 -0
  412. package/public/voices/echo.ogg +0 -0
  413. package/public/voices/gleam.ogg +0 -0
  414. package/public/voices/marin.ogg +0 -0
  415. package/public/voices/meridian.ogg +0 -0
  416. package/public/voices/quartz.ogg +0 -0
  417. package/public/voices/ripple.ogg +0 -0
  418. package/public/voices/sage.ogg +0 -0
  419. package/public/voices/shimmer.ogg +0 -0
  420. package/public/voices/stone.ogg +0 -0
  421. package/public/voices/tempo.ogg +0 -0
  422. package/public/voices/verse.ogg +0 -0
  423. package/public/voices/vesper.ogg +0 -0
  424. package/public/voices/willow.ogg +0 -0
  425. package/scripts/artifact-paths.test.mts +25 -0
  426. package/scripts/bot-context.test.mts +1408 -0
  427. package/scripts/live-history.test.mts +115 -0
  428. package/scripts/live-session.test.mts +948 -0
  429. package/server.js +1 -1
  430. package/skills/browser/SKILL.md +17 -6
  431. package/skills/computer/SKILL.md +1 -1
  432. package/skills/find-skills/SKILL.md +3 -8
  433. package/skills/interactive-page/SKILL.md +12 -7
  434. package/skills/interactive-page/references/diagram.md +89 -0
  435. package/skills/interactive-page/scripts/archify/LICENSE +22 -0
  436. package/skills/interactive-page/scripts/archify/README.md +25 -0
  437. package/skills/interactive-page/scripts/archify/assets/JetBrainsMono-OFL.txt +93 -0
  438. package/skills/interactive-page/scripts/archify/assets/template.html +14934 -0
  439. package/skills/interactive-page/scripts/archify/bin/archify.mjs +2126 -0
  440. package/skills/interactive-page/scripts/archify/bin/open-artifact.mjs +86 -0
  441. package/skills/interactive-page/scripts/archify/bin/preview.mjs +653 -0
  442. package/skills/interactive-page/scripts/archify/bin/visual-check.mjs +829 -0
  443. package/skills/interactive-page/scripts/archify/delta/architecture-delta.mjs +1223 -0
  444. package/skills/interactive-page/scripts/archify/examples/agent-run.lifecycle.json +60 -0
  445. package/skills/interactive-page/scripts/archify/examples/agent-tool-call.workflow.json +94 -0
  446. package/skills/interactive-page/scripts/archify/examples/async-job-roundtrip.sequence.json +61 -0
  447. package/skills/interactive-page/scripts/archify/examples/cache-miss-request.sequence.json +82 -0
  448. package/skills/interactive-page/scripts/archify/examples/checkout-platform.base.architecture.json +31 -0
  449. package/skills/interactive-page/scripts/archify/examples/checkout-platform.head.architecture.json +31 -0
  450. package/skills/interactive-page/scripts/archify/examples/deployment-release.lifecycle.json +49 -0
  451. package/skills/interactive-page/scripts/archify/examples/event-stream.dataflow.json +57 -0
  452. package/skills/interactive-page/scripts/archify/examples/incident-response.workflow.json +64 -0
  453. package/skills/interactive-page/scripts/archify/examples/product-analytics.dataflow.json +76 -0
  454. package/skills/interactive-page/scripts/archify/examples/production-deployment.architecture.json +71 -0
  455. package/skills/interactive-page/scripts/archify/examples/release-delivery.workflow.json +62 -0
  456. package/skills/interactive-page/scripts/archify/examples/web-app.architecture.json +46 -0
  457. package/skills/interactive-page/scripts/archify/migrations/workflow-v2.mjs +279 -0
  458. package/skills/interactive-page/scripts/archify/recipes/scenarios.mjs +284 -0
  459. package/skills/interactive-page/scripts/archify/references/authoring-contract.md +243 -0
  460. package/skills/interactive-page/scripts/archify/references/delivery-contract.md +120 -0
  461. package/skills/interactive-page/scripts/archify/references/viewer-runtime.md +45 -0
  462. package/skills/interactive-page/scripts/archify/renderers/architecture/grid.mjs +62 -0
  463. package/skills/interactive-page/scripts/archify/renderers/architecture/render-architecture.mjs +1078 -0
  464. package/skills/interactive-page/scripts/archify/renderers/dataflow/README.md +104 -0
  465. package/skills/interactive-page/scripts/archify/renderers/dataflow/render-dataflow.mjs +483 -0
  466. package/skills/interactive-page/scripts/archify/renderers/lifecycle/README.md +115 -0
  467. package/skills/interactive-page/scripts/archify/renderers/lifecycle/render-lifecycle.mjs +561 -0
  468. package/skills/interactive-page/scripts/archify/renderers/sequence/README.md +114 -0
  469. package/skills/interactive-page/scripts/archify/renderers/sequence/render-sequence.mjs +464 -0
  470. package/skills/interactive-page/scripts/archify/renderers/shared/brand-marks.mjs +563 -0
  471. package/skills/interactive-page/scripts/archify/renderers/shared/cli.mjs +218 -0
  472. package/skills/interactive-page/scripts/archify/renderers/shared/desktop-readability.mjs +26 -0
  473. package/skills/interactive-page/scripts/archify/renderers/shared/diagnostics.mjs +127 -0
  474. package/skills/interactive-page/scripts/archify/renderers/shared/engineering-profiles.mjs +157 -0
  475. package/skills/interactive-page/scripts/archify/renderers/shared/generated-brand-marks.mjs +3 -0
  476. package/skills/interactive-page/scripts/archify/renderers/shared/generated-validators.mjs +13 -0
  477. package/skills/interactive-page/scripts/archify/renderers/shared/geometry.mjs +1423 -0
  478. package/skills/interactive-page/scripts/archify/renderers/shared/i18n.mjs +595 -0
  479. package/skills/interactive-page/scripts/archify/renderers/shared/layout-report.mjs +40 -0
  480. package/skills/interactive-page/scripts/archify/renderers/shared/legend.mjs +217 -0
  481. package/skills/interactive-page/scripts/archify/renderers/shared/output-path.mjs +340 -0
  482. package/skills/interactive-page/scripts/archify/renderers/shared/repository-evidence.mjs +238 -0
  483. package/skills/interactive-page/scripts/archify/renderers/shared/repository-location.mjs +58 -0
  484. package/skills/interactive-page/scripts/archify/renderers/shared/text-fit.mjs +49 -0
  485. package/skills/interactive-page/scripts/archify/renderers/shared/utils.mjs +232 -0
  486. package/skills/interactive-page/scripts/archify/renderers/shared/validator.mjs +86 -0
  487. package/skills/interactive-page/scripts/archify/renderers/workflow/README.md +223 -0
  488. package/skills/interactive-page/scripts/archify/renderers/workflow/render-workflow.mjs +35 -0
  489. package/skills/interactive-page/scripts/archify/renderers/workflow/workflow-compiler.mjs +4400 -0
  490. package/skills/interactive-page/scripts/archify/renderers/workflow/workflow-migration-geometry.mjs +144 -0
  491. package/skills/interactive-page/scripts/archify/schemas/README.md +211 -0
  492. package/skills/interactive-page/scripts/archify/schemas/architecture.schema.json +178 -0
  493. package/skills/interactive-page/scripts/archify/schemas/common.schema.json +115 -0
  494. package/skills/interactive-page/scripts/archify/schemas/dataflow.schema.json +243 -0
  495. package/skills/interactive-page/scripts/archify/schemas/lifecycle.schema.json +266 -0
  496. package/skills/interactive-page/scripts/archify/schemas/sequence.schema.json +223 -0
  497. package/skills/interactive-page/scripts/archify/schemas/workflow.schema.json +428 -0
  498. package/skills/interactive-page/scripts/archify/scripts/check-render-output.mjs +916 -0
  499. package/skills/interactive-page/scripts/archify/scripts/render-examples.mjs +26 -0
  500. package/skills/interactive-page/scripts/bundle-artifact.sh +9 -8
  501. package/skills/skill-creator/SKILL.md +4 -5
  502. package/.next/server/app/api/bot/task/[id]/route/app-paths-manifest.json +0 -3
  503. package/.next/server/app/api/bot/task/[id]/route.js +0 -16
  504. package/.next/server/app/api/bot/task/[id]/route.js.nft.json +0 -1
  505. package/.next/server/app/api/bot/task/[id]/route_client-reference-manifest.js +0 -3
  506. package/.next/server/app/api/bot/task/route/app-paths-manifest.json +0 -3
  507. package/.next/server/app/api/bot/task/route.js +0 -16
  508. package/.next/server/app/api/bot/task/route.js.nft.json +0 -1
  509. package/.next/server/app/api/bot/task/route_client-reference-manifest.js +0 -3
  510. package/.next/server/chunks/[root-of-the-server]__01dkp4a._.js +0 -3
  511. package/.next/server/chunks/[root-of-the-server]__02va5wz._.js +0 -3
  512. package/.next/server/chunks/[root-of-the-server]__02xjoto._.js +0 -3
  513. package/.next/server/chunks/[root-of-the-server]__04q--0f._.js +0 -8
  514. package/.next/server/chunks/[root-of-the-server]__0bl-e63._.js +0 -3
  515. package/.next/server/chunks/[root-of-the-server]__0ffbg85._.js +0 -3
  516. package/.next/server/chunks/[root-of-the-server]__0jq4ohy._.js +0 -8
  517. package/.next/server/chunks/[root-of-the-server]__0ls6_8y._.js +0 -8
  518. package/.next/server/chunks/[root-of-the-server]__0ncs9uu._.js +0 -3
  519. package/.next/server/chunks/[root-of-the-server]__1-ga0kh._.js +0 -5
  520. package/.next/server/chunks/[root-of-the-server]__11n256_._.js +0 -5
  521. package/.next/server/chunks/[root-of-the-server]__12cabg9._.js +0 -3
  522. package/.next/server/chunks/[root-of-the-server]__1339jnv._.js +0 -8
  523. package/.next/server/chunks/[root-of-the-server]__18_teo8._.js +0 -8
  524. package/.next/server/chunks/[root-of-the-server]__1_04mcf._.js +0 -5
  525. package/.next/server/chunks/[root-of-the-server]__1anc1p9._.js +0 -3
  526. package/.next/server/chunks/[root-of-the-server]__1ccon1w._.js +0 -10
  527. package/.next/server/chunks/[root-of-the-server]__1fizn31._.js +0 -3
  528. package/.next/server/chunks/[root-of-the-server]__1llj3-b._.js +0 -3
  529. package/.next/server/chunks/[root-of-the-server]__1p8m3f4._.js +0 -3
  530. package/.next/server/chunks/[root-of-the-server]__1wa1k7r._.js +0 -8
  531. package/.next/server/chunks/_0-73of8._.js +0 -55
  532. package/.next/server/chunks/_0-fjql4._.js +0 -26
  533. package/.next/server/chunks/_00xh_q0._.js +0 -25
  534. package/.next/server/chunks/_03a0897._.js +0 -3
  535. package/.next/server/chunks/_051qh8u._.js +0 -3
  536. package/.next/server/chunks/_05sovvj._.js +0 -3
  537. package/.next/server/chunks/_0fzqt2y._.js +0 -134
  538. package/.next/server/chunks/_0mecv0f._.js +0 -26
  539. package/.next/server/chunks/_0mh8j4m._.js +0 -3
  540. package/.next/server/chunks/_0obojvv._.js +0 -3
  541. package/.next/server/chunks/_0sb7tlz._.js +0 -3
  542. package/.next/server/chunks/_0sbynis._.js +0 -3
  543. package/.next/server/chunks/_0u10wmw._.js +0 -55
  544. package/.next/server/chunks/_0u4aiy2._.js +0 -3
  545. package/.next/server/chunks/_0wp4le3._.js +0 -3
  546. package/.next/server/chunks/_0y5fg-x._.js +0 -3
  547. package/.next/server/chunks/_1230wbx._.js +0 -10
  548. package/.next/server/chunks/_12nheja._.js +0 -3
  549. package/.next/server/chunks/_13510xh._.js +0 -3
  550. package/.next/server/chunks/_15hq89o._.js +0 -3
  551. package/.next/server/chunks/_18-1wcc._.js +0 -55
  552. package/.next/server/chunks/_1_9mjx-._.js +0 -3
  553. package/.next/server/chunks/_1c78vw5._.js +0 -229
  554. package/.next/server/chunks/_1h5_8sk._.js +0 -3
  555. package/.next/server/chunks/_1hdnxb7._.js +0 -3
  556. package/.next/server/chunks/_1j8k_j5._.js +0 -3
  557. package/.next/server/chunks/_1nula3v._.js +0 -3
  558. package/.next/server/chunks/_1php4eq._.js +0 -3
  559. package/.next/server/chunks/_1yuv4vp._.js +0 -3
  560. package/.next/server/chunks/_1zjrdag._.js +0 -3
  561. package/.next/server/chunks/_next-internal_server_app_api_bot_task_[id]_route_actions_1_k_8u3.js +0 -3
  562. package/.next/server/chunks/_next-internal_server_app_api_bot_task_route_actions_0xln6ra.js +0 -3
  563. package/.next/server/chunks/features_0rpfxbk._.js +0 -3
  564. package/.next/server/chunks/features_1qf3cei._.js +0 -3
  565. package/.next/server/chunks/features_bot_0zt92oh._.js +0 -3
  566. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1xoq2rl._.js +0 -3
  567. package/.next/server/chunks/ssr/[externals]__0dizgek._.js +0 -3
  568. package/.next/server/chunks/ssr/[root-of-the-server]__092knlj._.js +0 -3
  569. package/.next/server/chunks/ssr/[root-of-the-server]__0mz33a7._.js +0 -3
  570. package/.next/server/chunks/ssr/[root-of-the-server]__0s9dq5u._.js +0 -3
  571. package/.next/server/chunks/ssr/[root-of-the-server]__0s9l2sv._.js +0 -3
  572. package/.next/server/chunks/ssr/[root-of-the-server]__0vnmv-s._.js +0 -3
  573. package/.next/server/chunks/ssr/[root-of-the-server]__0xsog8n._.js +0 -3
  574. package/.next/server/chunks/ssr/[root-of-the-server]__10-dz5o._.js +0 -61
  575. package/.next/server/chunks/ssr/[root-of-the-server]__1gtlw6v._.js +0 -43
  576. package/.next/server/chunks/ssr/[root-of-the-server]__1ox7hbk._.js +0 -4
  577. package/.next/server/chunks/ssr/[root-of-the-server]__202p40z._.js +0 -3
  578. package/.next/server/chunks/ssr/_001_ms1._.js +0 -28
  579. package/.next/server/chunks/ssr/_01n3o0m._.js +0 -3
  580. package/.next/server/chunks/ssr/_0fz4mf_._.js +0 -3
  581. package/.next/server/chunks/ssr/_0gb4gmf._.js +0 -3
  582. package/.next/server/chunks/ssr/_0h42fze._.js +0 -3
  583. package/.next/server/chunks/ssr/_0h7zdni._.js +0 -3
  584. package/.next/server/chunks/ssr/_0ilna52._.js +0 -42
  585. package/.next/server/chunks/ssr/_0q0zan6._.js +0 -70
  586. package/.next/server/chunks/ssr/_0zcjrbg._.js +0 -3
  587. package/.next/server/chunks/ssr/_0zhoc3r._.js +0 -3
  588. package/.next/server/chunks/ssr/_13fke0x._.js +0 -3
  589. package/.next/server/chunks/ssr/_18cymkq._.js +0 -3
  590. package/.next/server/chunks/ssr/_1b2mjwr._.js +0 -3
  591. package/.next/server/chunks/ssr/_1f-dg-6._.js +0 -3
  592. package/.next/server/chunks/ssr/_1h0rw11._.js +0 -3
  593. package/.next/server/chunks/ssr/_1jhd09t._.js +0 -3
  594. package/.next/server/chunks/ssr/_1nnsk7z._.js +0 -3
  595. package/.next/server/chunks/ssr/_1ov37if._.js +0 -3
  596. package/.next/server/chunks/ssr/_1sji22n._.js +0 -3
  597. package/.next/server/chunks/ssr/_1vi_uo7._.js +0 -3
  598. package/.next/server/chunks/ssr/_1vyd1ji._.js +0 -3
  599. package/.next/server/chunks/ssr/_1xx4zlb._.js +0 -3
  600. package/.next/server/chunks/ssr/components_ui_1y1l7yj._.js +0 -3
  601. package/.next/server/chunks/ssr/features_bot_1s_-2vj._.js +0 -3
  602. package/.next/server/chunks/ssr/lib_realtime_12wg_dd._.js +0 -27
  603. package/.next/server/chunks/ssr/lib_realtime_15h_v1v._.js +0 -27
  604. package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_0npjf8-._.js +0 -3
  605. package/.next/static/chunks/00rd4-v8r7axp.js +0 -1
  606. package/.next/static/chunks/08qe4as2q428z.js +0 -3
  607. package/.next/static/chunks/0gnqdjn2lvdad.js +0 -2
  608. package/.next/static/chunks/0hwap1-p0m5sa.js +0 -1
  609. package/.next/static/chunks/0r5qcctujhxli.js +0 -1
  610. package/.next/static/chunks/0w52rrrmuj9r9.js +0 -1
  611. package/.next/static/chunks/0wcprt5ot5she.js +0 -1
  612. package/.next/static/chunks/10teww7wt-f6h.js +0 -1
  613. package/.next/static/chunks/17p6tk6k88dq6.js +0 -1
  614. package/.next/static/chunks/18a96rkhi4_yd.js +0 -1
  615. package/.next/static/chunks/1dkjg87pxk0n9.js +0 -28
  616. package/.next/static/chunks/1jd09sxcjddu1.js +0 -1
  617. package/.next/static/chunks/1w73ece_6bheu.js +0 -18
  618. package/.next/static/chunks/214ya3n5gxeih.js +0 -1
  619. package/.next/static/chunks/22_zkas21rpna.js +0 -1
  620. package/.next/static/chunks/2fh4-3z_q8b_w.js +0 -1
  621. package/.next/static/chunks/2h0sd2vumhb15.js +0 -1
  622. package/.next/static/chunks/2t4vhi3m8ahya.js +0 -1
  623. package/.next/static/chunks/2tigdtz3dpcy8.js +0 -1
  624. package/.next/static/chunks/2u7xt6mxg44lf.js +0 -1
  625. package/.next/static/chunks/3786h5vayt80-.js +0 -28
  626. package/.next/static/chunks/39j0fvpybzabl.js +0 -40
  627. package/.next/static/chunks/3cq5g494yuke8.css +0 -1
  628. package/.next/static/chunks/3hibbjnt85-k6.js +0 -1
  629. package/.next/static/chunks/3woj-xd7ki5_i.js +0 -1
  630. package/.next/static/chunks/3xk7yqgomx7yq.js +0 -1
  631. package/.next/static/chunks/3zmcsnuo25zvq.js +0 -1
  632. package/database/migrations/20260911030320_opposite_jack_power/migration.sql +0 -1
  633. package/docs/images/task-thread.png +0 -0
  634. package/features/bot/components/task-badge.tsx +0 -42
  635. package/features/bot/components/task-reply.tsx +0 -328
  636. package/features/bot/components/task-setting.tsx +0 -524
  637. package/features/bot/task.query.ts +0 -976
  638. package/features/bot/task.store.ts +0 -489
  639. package/lib/realtime/client-secret.ts +0 -86
  640. package/lib/realtime/open-session.ts +0 -31
  641. package/lib/realtime/openai.ts +0 -35
  642. package/lib/realtime/realtime.audio.ts +0 -196
  643. package/lib/realtime/realtime.driver.ts +0 -489
  644. package/lib/realtime/realtime.protocol.ts +0 -393
  645. package/lib/realtime/realtime.schema.ts +0 -37
  646. package/lib/realtime/realtime.session.ts +0 -106
  647. package/lib/realtime/realtime.transport.ts +0 -384
  648. package/lib/realtime/xai.ts +0 -39
  649. /package/.next/server/app/api/bot/{task → thread}/[id]/route/build-manifest.json +0 -0
  650. /package/.next/server/app/api/bot/{task → thread}/[id]/route/server-reference-manifest.json +0 -0
  651. /package/.next/server/app/api/bot/{task → thread}/[id]/route.js.map +0 -0
  652. /package/.next/server/app/api/bot/{task → thread}/route/build-manifest.json +0 -0
  653. /package/.next/server/app/api/bot/{task → thread}/route/server-reference-manifest.json +0 -0
  654. /package/.next/server/app/api/bot/{task → thread}/route.js.map +0 -0
  655. /package/.next/static/{kaTO0UHqF1bMnWgCDik2f → 0qzGoKn2wTERVZtblX1tp}/_buildManifest.js +0 -0
  656. /package/.next/static/{kaTO0UHqF1bMnWgCDik2f → 0qzGoKn2wTERVZtblX1tp}/_clientMiddlewareManifest.js +0 -0
  657. /package/.next/static/{kaTO0UHqF1bMnWgCDik2f → 0qzGoKn2wTERVZtblX1tp}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- module.exports=[262276,a=>{"use strict";var b=a.i(187924),c=a.i(400187);a.i(340695);var d=a.i(205522);a.i(546893);var e=a.i(497895);let f=(0,c.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"}});(0,c.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"}}),a.s(["InputGroup",0,function({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"input-group",role:"group",className:(0,e.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",a),...c})},"InputGroupAddon",0,function({className:a,align:c="inline-start",...d}){return(0,b.jsx)("div",{role:"group","data-slot":"input-group-addon","data-align":c,className:(0,e.cn)(f({align:c}),a),onClick:a=>{a.target.closest("button")||a.currentTarget.parentElement?.querySelector("input")?.focus()},...d})},"InputGroupInput",0,function({className:a,...c}){return(0,b.jsx)(d.Input,{"data-slot":"input-group-control",className:(0,e.cn)("flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent",a),...c})},"InputGroupText",0,function({className:a,...c}){return(0,b.jsx)("span",{className:(0,e.cn)("flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",a),...c})}])},329154,a=>{"use strict";var b,c,d,e,f,g,h,i,j=a.i(187924),k=/[\\\/_+.#"@\[\(\{&]/,l=/[\\\/_+.#"@\[\(\{&]/g,m=/[\s-]/,n=/[\s-]/g;function o(a){return a.toLowerCase().replace(n," ")}var p=a.i(572131),q=Object.defineProperty,r=(a,b)=>q(a,"name",{value:b,configurable:!0});function s(a,b,{checkForDefaultPrevented:c=!0}={}){return r(function(d){if(a?.(d),!1===c||!d||!d.defaultPrevented)return b?.(d)},"handleEvent")}function t(a){throw Error("Cannot access document outside of the DOM")}function u(a){return"IFRAME"===a.tagName}r(s,"composeEventHandlers"),r(function(a){throw Error("Cannot access window outside of the DOM")},"getOwnerWindow"),r(t,"getOwnerDocument"),r(function a(b,c=!1){let{activeElement:d}=t(b);if(!d?.nodeName)return null;if(u(d)&&d.contentDocument)return a(d.contentDocument.body,c);if(c){let a=d.getAttribute("aria-activedescendant");if(a){let b=t(d).getElementById(a);if(b)return b}}return d},"getActiveElement"),r(u,"isFrame");var v=Object.defineProperty,w=(a,b)=>v(a,"name",{value:b,configurable:!0});function x(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}function y(...a){return b=>{let c=!1,d=a.map(a=>{let d=x(a,b);return c||"function"!=typeof d||(c=!0),d});if(c)return()=>{for(let b=0;b<d.length;b++){let c=d[b];"function"==typeof c?c():x(a[b],null)}}}}function z(...a){return p.useCallback(y(...a),a)}w(x,"setRef"),w(y,"composeRefs"),w(z,"useComposedRefs");var A=Object.defineProperty,B=(a,b)=>A(a,"name",{value:b,configurable:!0});function C(a,b=[]){let c=[];function d(b,d){let e=p.createContext(d);e.displayName=b+"Context";let f=c.length;c=[...c,d];let g=B(b=>{let{scope:c,children:d,...g}=b,h=c?.[a]?.[f]||e,i=p.useMemo(()=>g,Object.values(g));return(0,j.jsx)(h.Provider,{value:i,children:d})},"Provider");function h(c,g,i={}){let{optional:j=!1}=i,k=g?.[a]?.[f]||e,l=p.useContext(k);if(l)return l;if(void 0!==d)return d;if(!j)throw Error(`\`${c}\` must be used within \`${b}\``)}return g.displayName=b+"Provider",B(h,"useContext"),[g,h]}B(d,"createContext");let e=B(()=>{let b=c.map(a=>p.createContext(a));return B(function(c){let d=c?.[a]||b;return p.useMemo(()=>({[`__scope${a}`]:{...c,[a]:d}}),[c,d])},"useScope")},"createScope");return e.scopeName=a,[d,D(e,...b)]}function D(...a){let b=a[0];if(1===a.length)return b;let c=B(()=>{let c=a.map(a=>({useScope:a(),scopeName:a.scopeName}));return B(function(a){let d=c.reduce((b,{useScope:c,scopeName:d})=>{let e=c(a)[`__scope${d}`];return{...b,...e}},{});return p.useMemo(()=>({[`__scope${b.scopeName}`]:d}),[d])},"useComposedScopes")},"createScope");return c.scopeName=b.scopeName,c}B(function(a,b){let c=p.createContext(b);c.displayName=a+"Context";let d=B(a=>{let{children:b,...d}=a,e=p.useMemo(()=>d,Object.values(d));return(0,j.jsx)(c.Provider,{value:e,children:b})},"Provider");function e(d,f={}){let{optional:g=!1}=f,h=p.useContext(c);if(h)return h;if(void 0!==b)return b;if(!g)throw Error(`\`${d}\` must be used within \`${a}\``)}return d.displayName=a+"Provider",B(e,"useContext"),[d,e]},"createContext"),B(C,"createContextScope"),B(D,"composeContextScopes");var E=globalThis?.document?p.useLayoutEffect:()=>{},F=Object.defineProperty,G=p[" useId ".trim().toString()]||(()=>void 0),H=0;function I(a){let[b,c]=p.useState(G());return E(()=>{a||c(a=>a??String(H++))},[a]),a||(b?`radix-${b}`:"")}F(I,"name",{value:"useId",configurable:!0});var J=Object.defineProperty,K=p[" useEffectEvent ".trim().toString()],L=p[" useInsertionEffect ".trim().toString()];function M(a){if("function"==typeof K)return K(a);let b=p.useRef(()=>{throw Error("Cannot call an event handler while rendering.")});return"function"==typeof L?L(()=>{b.current=a}):E(()=>{b.current=a}),p.useMemo(()=>(...a)=>b.current?.(...a),[])}J(M,"name",{value:"useEffectEvent",configurable:!0});var N=Object.defineProperty,O=(a,b)=>N(a,"name",{value:b,configurable:!0}),P=p[" useInsertionEffect ".trim().toString()]||E;function Q({prop:a,defaultProp:b,onChange:c=O(()=>{},"onChange"),caller:d}){let[e,f,g]=R({defaultProp:b,onChange:c}),h=void 0!==a,i=h?a:e;return[i,p.useCallback(b=>{if(h){let c=S(b)?b(a):b;c!==a&&g.current?.(c)}else f(b)},[h,a,f,g])]}function R({defaultProp:a,onChange:b}){let[c,d]=p.useState(a),e=p.useRef(c),f=p.useRef(b);return P(()=>{f.current=b},[b]),p.useEffect(()=>{e.current!==c&&(f.current?.(c),e.current=c)},[c,e]),[c,d,f]}function S(a){return"function"==typeof a}O(Q,"useControllableState"),O(R,"useUncontrolledState"),O(S,"isFunction");var T=Symbol("RADIX:SYNC_STATE");O(function(a,b,c,d){let{prop:e,defaultProp:f,onChange:g,caller:h}=b,i=void 0!==e,j=M(g),k=[{...c,state:f}];d&&k.push(d);let[l,m]=p.useReducer((b,c)=>{if(c.type===T)return{...b,state:c.state};let d=a(b,c);return i&&!Object.is(d.state,b.state)&&j(d.state),d},...k),n=l.state,o=p.useRef(n);p.useEffect(()=>{o.current!==n&&(o.current=n,i||j(n))},[n,o,i]);let q=p.useMemo(()=>void 0!==e?{...l,state:e}:l,[l,e]);return p.useEffect(()=>{i&&!Object.is(e,l.state)&&m({type:T,state:e})},[e,l.state,i]),[q,m]},"useControllableStateReducer");var U=a.i(935112),V=Object.defineProperty,W=(a,b)=>V(a,"name",{value:b,configurable:!0});function X(a){let b=p.forwardRef((b,c)=>{let{children:d,...e}=b,f=null,g=!1,h=[];ac(d)&&"function"==typeof ag&&(d=ag(d._payload)),p.Children.forEach(d,a=>{if(aa(a)){g=!0;let b="child"in a.props?a.props.child:a.props.children;ac(b)&&"function"==typeof ag&&(b=ag(b._payload)),f=Z(a,b),h.push(f?.props?.children)}else h.push(a)}),f?f=p.cloneElement(f,void 0,h):!g&&1===p.Children.count(d)&&p.isValidElement(d)&&(f=d);let i=f?_(f):void 0,j=z(c,i);if(!f){if(d||0===d)throw Error(g?af(a):ae(a));return d}let k=$(e,f.props??{});return f.type!==p.Fragment&&(k.ref=c?j:i),p.cloneElement(f,k)});return b.displayName=`${a}.Slot`,b}W(X,"createSlot");var Y=Symbol.for("radix.slottable");W(function(a){let b=W(a=>"child"in a?a.children(a.child):a.children,"Slottable");return b.displayName=`${a}.Slottable`,b.__radixId=Y,b},"createSlottable");var Z=W((a,b)=>{if("child"in a.props){let b=a.props.child;return p.isValidElement(b)?p.cloneElement(b,void 0,a.props.children(b.props.children)):null}return p.isValidElement(b)?b:null},"getSlottableElementFromSlottable");function $(a,b){let c={...b};for(let d in b){let e=a[d],f=b[d];/^on[A-Z]/.test(d)?e&&f?c[d]=(...a)=>{let b=f(...a);return e(...a),b}:e&&(c[d]=e):"style"===d?c[d]={...e,...f}:"className"===d&&(c[d]=[e,f].filter(Boolean).join(" "))}return{...a,...c}}function _(a){let b=Object.getOwnPropertyDescriptor(a.props,"ref")?.get,c=b&&"isReactWarning"in b&&b.isReactWarning;return c?a.ref:(c=(b=Object.getOwnPropertyDescriptor(a,"ref")?.get)&&"isReactWarning"in b&&b.isReactWarning)?a.props.ref:a.props.ref||a.ref}function aa(a){return p.isValidElement(a)&&"function"==typeof a.type&&"__radixId"in a.type&&a.type.__radixId===Y}W($,"mergeProps"),W(_,"getElementRef"),W(aa,"isSlottable");var ab=Symbol.for("react.lazy");function ac(a){return null!=a&&"object"==typeof a&&"$$typeof"in a&&a.$$typeof===ab&&"_payload"in a&&ad(a._payload)}function ad(a){return"object"==typeof a&&null!==a&&"then"in a}W(ac,"isLazyComponent"),W(ad,"isPromiseLike");var ae=W(a=>`${a} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,"createSlotError"),af=W(a=>`${a} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,"createSlottableError"),ag=p[" use ".trim().toString()],ah=Object.defineProperty,ai=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((a,b)=>{let c=X(`Primitive.${b}`),d=p.forwardRef((a,d)=>{let{asChild:e,...f}=a;return(0,j.jsx)(e?c:b,{...f,ref:d})});return d.displayName=`Primitive.${b}`,{...a,[b]:d}},{});function aj(a,b){a&&U.flushSync(()=>a.dispatchEvent(b))}function ak(a){let b=p.useRef(a);return p.useEffect(()=>{b.current=a}),p.useMemo(()=>(...a)=>b.current?.(...a),[])}ah(aj,"name",{value:"dispatchDiscreteCustomEvent",configurable:!0}),(0,Object.defineProperty)(ak,"name",{value:"useCallbackRef",configurable:!0});var al=Object.defineProperty,am=(a,b)=>al(a,"name",{value:b,configurable:!0}),an="dismissableLayer.update",ao=p.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),ap=p.forwardRef(am(function(a,b){let{disableOutsidePointerEvents:c=!1,deferPointerDownOutside:d=!1,onEscapeKeyDown:e,onPointerDownOutside:f,onFocusOutside:g,onInteractOutside:i,onDismiss:k,...l}=a,m=p.useContext(ao),[n,o]=p.useState(null),q=n?.ownerDocument??globalThis?.document,[,r]=p.useState({}),t=z(b,o),u=Array.from(m.layers),[v]=[...m.layersWithOutsidePointerEventsDisabled].slice(-1),w=v?u.indexOf(v):-1,x=n?u.indexOf(n):-1,y=m.layersWithOutsidePointerEventsDisabled.size>0,A=x>=w,B=p.useRef(!1),C=as(a=>{f?.(a),i?.(a),a.defaultPrevented||k?.()},{ownerDocument:q,deferPointerDownOutside:d,isDeferredPointerDownOutsideRef:B,dismissableSurfaces:m.dismissableSurfaces,shouldHandlePointerDownOutside:p.useCallback(a=>{if(!(a instanceof Node))return!1;let b=[...m.branches].some(b=>b.contains(a));return A&&!b},[m.branches,A])}),D=at(a=>{if(d&&B.current)return;let b=a.target;![...m.branches].some(a=>a.contains(b))&&(g?.(a),i?.(a),a.defaultPrevented||k?.())},q),E=!!n&&x===u.length-1,F=ak(a=>{"Escape"===a.key&&(e?.(a),!a.defaultPrevented&&k&&(a.preventDefault(),k()))});return p.useEffect(()=>{if(E)return q.addEventListener("keydown",F,{capture:!0}),()=>q.removeEventListener("keydown",F,{capture:!0})},[q,E,F]),p.useEffect(()=>{if(n)return c&&(0===m.layersWithOutsidePointerEventsDisabled.size&&(h=q.body.style.pointerEvents,q.body.style.pointerEvents="none"),m.layersWithOutsidePointerEventsDisabled.add(n)),m.layers.add(n),au(),()=>{c&&(m.layersWithOutsidePointerEventsDisabled.delete(n),0===m.layersWithOutsidePointerEventsDisabled.size&&(q.body.style.pointerEvents=h))}},[n,q,c,m]),p.useEffect(()=>()=>{n&&(m.layers.delete(n),m.layersWithOutsidePointerEventsDisabled.delete(n),au())},[n,m]),p.useEffect(()=>{let a=am(()=>r({}),"handleUpdate");return document.addEventListener(an,a),()=>document.removeEventListener(an,a)},[]),(0,j.jsx)(ai.div,{...l,ref:t,style:{pointerEvents:y?A?"auto":"none":void 0,...a.style},onFocusCapture:s(a.onFocusCapture,D.onFocusCapture),onBlurCapture:s(a.onBlurCapture,D.onBlurCapture),onPointerDownCapture:s(a.onPointerDownCapture,C.onPointerDownCapture)})},"DismissableLayer"));function aq(){let a=p.useContext(ao),[b,c]=p.useState(null);return p.useEffect(()=>{if(b)return a.dismissableSurfaces.add(b),()=>{a.dismissableSurfaces.delete(b)}},[b,a.dismissableSurfaces]),c}am(aq,"useDismissableLayerSurface");var ar=am(()=>!0,"IS_TRUE");function as(a,b){let{ownerDocument:c=globalThis?.document,deferPointerDownOutside:d=!1,isDeferredPointerDownOutsideRef:e,dismissableSurfaces:f,shouldHandlePointerDownOutside:g=ar}=b,h=ak(a),i=p.useRef(!1),j=p.useRef(!1),k=p.useRef(new Map),l=p.useRef(()=>{});return p.useEffect(()=>{function a(){j.current=!1,e.current=!1,k.current.clear()}function b(){return Array.from(k.current.values()).some(Boolean)}function m(a){if(!j.current)return;let b=a.target;b instanceof Node&&[...f].some(a=>a.contains(b))||k.current.set(a.type,!0),"click"===a.type&&window.setTimeout(()=>{j.current&&l.current()},0)}function n(a){j.current&&k.current.set(a.type,!1)}am(a,"resetOutsideInteraction"),am(b,"isOutsideInteractionIntercepted"),am(m,"handleInteractionCapture"),am(n,"handleInteractionBubble");let o=am(f=>{if(f.target&&!i.current){let m=function(){c.removeEventListener("click",l.current);let d=b();a(),d||av("dismissableLayer.pointerDownOutside",h,n,{discrete:!0})};if(am(m,"handleAndDispatchPointerDownOutsideEvent"),!g(f.target)){c.removeEventListener("click",l.current),a(),i.current=!1;return}let n={originalEvent:f};j.current=!0,e.current=d&&0===f.button,k.current.clear(),d&&0===f.button?(c.removeEventListener("click",l.current),l.current=m,c.addEventListener("click",l.current,{once:!0})):m()}else c.removeEventListener("click",l.current),a();i.current=!1},"handlePointerDown"),p=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(let a of p)c.addEventListener(a,m,!0),c.addEventListener(a,n);let q=window.setTimeout(()=>{c.addEventListener("pointerdown",o)},0);return()=>{for(let a of(window.clearTimeout(q),c.removeEventListener("pointerdown",o),c.removeEventListener("click",l.current),p))c.removeEventListener(a,m,!0),c.removeEventListener(a,n)}},[c,h,d,e,f,g]),{onPointerDownCapture:am(()=>i.current=!0,"onPointerDownCapture")}}function at(a,b=globalThis?.document){let c=ak(a),d=p.useRef(!1);return p.useEffect(()=>{let a=am(a=>{a.target&&!d.current&&av("dismissableLayer.focusOutside",c,{originalEvent:a},{discrete:!1})},"handleFocus");return b.addEventListener("focusin",a),()=>b.removeEventListener("focusin",a)},[b,c]),{onFocusCapture:am(()=>d.current=!0,"onFocusCapture"),onBlurCapture:am(()=>d.current=!1,"onBlurCapture")}}function au(){let a=new CustomEvent(an);document.dispatchEvent(a)}function av(a,b,c,{discrete:d}){let e=c.originalEvent.target,f=new CustomEvent(a,{bubbles:!1,cancelable:!0,detail:c});b&&e.addEventListener(a,b,{once:!0}),d?aj(e,f):e.dispatchEvent(f)}am(as,"usePointerDownOutside"),am(at,"useFocusOutside"),am(au,"dispatchUpdate"),am(av,"handleAndDispatchCustomEvent");var aw=Object.defineProperty,ax=(a,b)=>aw(a,"name",{value:b,configurable:!0}),ay="focusScope.autoFocusOnMount",az="focusScope.autoFocusOnUnmount",aA={bubbles:!1,cancelable:!0},aB=p.forwardRef(ax(function(a,b){let{loop:c=!1,trapped:d=!1,onMountAutoFocus:e,onUnmountAutoFocus:f,...g}=a,[h,i]=p.useState(null),k=ak(e),l=ak(f),m=p.useRef(null),n=z(b,i),o=p.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;p.useEffect(()=>{if(d){let a=function(a){if(o.paused||!h)return;let b=a.target;h.contains(b)?m.current=b:aI(m.current,{select:!0})},b=function(a){if(o.paused||!h)return;let b=a.relatedTarget;null!==b&&(h.contains(b)||aI(m.current,{select:!0}))},c=function(a){if(document.activeElement===document.body)for(let b of a)b.removedNodes.length>0&&aI(h)};ax(a,"handleFocusIn"),ax(b,"handleFocusOut"),ax(c,"handleMutations"),document.addEventListener("focusin",a),document.addEventListener("focusout",b);let d=new MutationObserver(c);return h&&d.observe(h,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",a),document.removeEventListener("focusout",b),d.disconnect()}}},[d,h,o.paused]),p.useEffect(()=>{if(h){aJ.add(o);let a=document.activeElement;if(!h.contains(a)){let b=new CustomEvent(ay,aA);h.addEventListener(ay,k),h.dispatchEvent(b),b.defaultPrevented||(aC(aM(aE(h)),{select:!0}),document.activeElement===a&&aI(h))}return()=>{h.removeEventListener(ay,k),setTimeout(()=>{let b=new CustomEvent(az,aA);h.addEventListener(az,l),h.dispatchEvent(b),b.defaultPrevented||aI(a??document.body,{select:!0}),h.removeEventListener(az,l),aJ.remove(o)},0)}}},[h,k,l,o]);let q=p.useCallback(a=>{if(!c&&!d||o.paused)return;let b="Tab"===a.key&&!a.altKey&&!a.ctrlKey&&!a.metaKey,e=document.activeElement;if(b&&e){let b=a.currentTarget,[d,f]=aD(b);d&&f?a.shiftKey||e!==f?a.shiftKey&&e===d&&(a.preventDefault(),c&&aI(f,{select:!0})):(a.preventDefault(),c&&aI(d,{select:!0})):e===b&&a.preventDefault()}},[c,d,o.paused]);return(0,j.jsx)(ai.div,{tabIndex:-1,...g,ref:n,onKeyDown:q})},"FocusScope"));function aC(a,{select:b=!1}={}){let c=document.activeElement;for(let d of a)if(aI(d,{select:b}),document.activeElement!==c)return}function aD(a){let b=aE(a);return[aF(b,a),aF(b.reverse(),a)]}function aE(a){let b=[],c=document.createTreeWalker(a,NodeFilter.SHOW_ELEMENT,{acceptNode:ax(a=>{let b="INPUT"===a.tagName&&"hidden"===a.type;return a.disabled||a.hidden||b?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},"acceptNode")});for(;c.nextNode();)b.push(c.currentNode);return b}function aF(a,b){let c="function"==typeof b.checkVisibility&&b.checkVisibility({checkVisibilityCSS:!0});for(let d of a)if(!(c?!d.checkVisibility({checkVisibilityCSS:!0}):aG(d,{upTo:b})))return d}function aG(a,{upTo:b}){if("hidden"===getComputedStyle(a).visibility)return!0;for(;a&&(void 0===b||a!==b);){if("none"===getComputedStyle(a).display)return!0;a=a.parentElement}return!1}function aH(a){return a instanceof HTMLInputElement&&"select"in a}function aI(a,{select:b=!1}={}){if(a&&a.focus){let c=document.activeElement;a.focus({preventScroll:!0}),a!==c&&aH(a)&&b&&a.select()}}ax(aC,"focusFirst"),ax(aD,"getTabbableEdges"),ax(aE,"getTabbableCandidates"),ax(aF,"findVisible"),ax(aG,"isHidden"),ax(aH,"isSelectableInput"),ax(aI,"focus");var aJ=aK();function aK(){let a=[];return{add(b){let c=a[0];b!==c&&c?.pause(),(a=aL(a,b)).unshift(b)},remove(b){a=aL(a,b),a[0]?.resume()}}}function aL(a,b){let c=[...a],d=c.indexOf(b);return -1!==d&&c.splice(d,1),c}function aM(a){return a.filter(a=>"A"!==a.tagName)}ax(aK,"createFocusScopesStack"),ax(aL,"arrayRemove"),ax(aM,"removeLinks");var aN=Object.defineProperty,aO=p.forwardRef(aN(function(a,b){let{container:c,...d}=a,[e,f]=p.useState(!1);E(()=>f(!0),[]);let g=c||e&&globalThis?.document?.body;return g?U.createPortal((0,j.jsx)(ai.div,{...d,ref:b}),g):null},"name",{value:"Portal",configurable:!0})),aP=Object.defineProperty,aQ=(a,b)=>aP(a,"name",{value:b,configurable:!0});function aR(a,b){return p.useReducer((a,c)=>b[a][c]??a,a)}aQ(aR,"useStateMachine");var aS=aQ(a=>{let{present:b,children:c}=a,d=aT(b),e="function"==typeof c?c({present:d.isPresent}):p.Children.only(c),f=aV(d.ref,aX(e));return"function"==typeof c||d.isPresent?p.cloneElement(e,{ref:f}):null},"Presence");function aT(a){let[b,c]=p.useState(),d=p.useRef(null),e=p.useRef(a),f=p.useRef("none"),g=p.useRef(void 0),[h,i]=aR(a?"mounted":"unmounted",{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return p.useEffect(()=>{"mounted"===h?(f.current=g.current??aW(d.current),g.current=void 0):f.current="none"},[h]),E(()=>{let b=d.current,c=e.current;if(c!==a){let d=f.current,h=aW(b);a?(g.current=h,i("MOUNT")):"none"===h||b?.display==="none"?i("UNMOUNT"):c&&d!==h?i("ANIMATION_OUT"):i("UNMOUNT"),e.current=a}},[a,i]),E(()=>{if(b){let a,c=b.ownerDocument.defaultView??window,g=aQ(f=>{let g=aW(d.current).includes(CSS.escape(f.animationName));if(f.target===b&&g&&(i("ANIMATION_END"),!e.current)){let d=b.style.animationFillMode;b.style.animationFillMode="forwards",a=c.setTimeout(()=>{"forwards"===b.style.animationFillMode&&(b.style.animationFillMode=d)})}},"handleAnimationEnd"),h=aQ(a=>{a.target===b&&(f.current=aW(d.current))},"handleAnimationStart");return b.addEventListener("animationstart",h),b.addEventListener("animationcancel",g),b.addEventListener("animationend",g),()=>{c.clearTimeout(a),b.removeEventListener("animationstart",h),b.removeEventListener("animationcancel",g),b.removeEventListener("animationend",g)}}i("ANIMATION_END")},[b,i]),{isPresent:["mounted","unmountSuspended"].includes(h),ref:p.useCallback(a=>{if(a){let b=getComputedStyle(a);d.current=b,g.current=aW(b)}else d.current=null;c(a)},[])}}function aU(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}function aV(...a){let b=p.useRef(a);return b.current=a,p.useCallback(a=>{let c=b.current,d=!1,e=c.map(b=>{let c=aU(b,a);return d||"function"!=typeof c||(d=!0),c});if(d)return()=>{for(let a=0;a<e.length;a++){let b=e[a];"function"==typeof b?b():aU(c[a],null)}}},[])}function aW(a){return a?.animationName||"none"}function aX(a){let b=Object.getOwnPropertyDescriptor(a.props,"ref")?.get,c=b&&"isReactWarning"in b&&b.isReactWarning;return c?a.ref:(c=(b=Object.getOwnPropertyDescriptor(a,"ref")?.get)&&"isReactWarning"in b&&b.isReactWarning)?a.props.ref:a.props.ref||a.ref}aQ(aT,"usePresence"),aQ(aU,"setRef"),aQ(aV,"useStableComposedRefs"),aQ(aW,"getAnimationName"),aQ(aX,"getElementRef");var aY=Object.defineProperty,aZ=(a,b)=>aY(a,"name",{value:b,configurable:!0}),a$=0,a_=null;function a0(){p.useEffect(()=>{a_||(a_={start:a1(),end:a1()});let{start:a,end:b}=a_;return document.body.firstElementChild!==a&&document.body.insertAdjacentElement("afterbegin",a),document.body.lastElementChild!==b&&document.body.insertAdjacentElement("beforeend",b),a$++,()=>{1===a$&&(a_?.start.remove(),a_?.end.remove(),a_=null),a$=Math.max(0,a$-1)}},[])}function a1(){let a=document.createElement("span");return a.setAttribute("data-radix-focus-guard",""),a.tabIndex=0,a.style.outline="none",a.style.opacity="0",a.style.position="fixed",a.style.pointerEvents="none",a}aZ(function(a){return a0(),a.children},"FocusGuards"),aZ(a0,"useFocusGuards"),aZ(a1,"createFocusGuard");var a2=function(){return(a2=Object.assign||function(a){for(var b,c=1,d=arguments.length;c<d;c++)for(var e in b=arguments[c])Object.prototype.hasOwnProperty.call(b,e)&&(a[e]=b[e]);return a}).apply(this,arguments)};function a3(a,b){var c={};for(var d in a)Object.prototype.hasOwnProperty.call(a,d)&&0>b.indexOf(d)&&(c[d]=a[d]);if(null!=a&&"function"==typeof Object.getOwnPropertySymbols)for(var e=0,d=Object.getOwnPropertySymbols(a);e<d.length;e++)0>b.indexOf(d[e])&&Object.prototype.propertyIsEnumerable.call(a,d[e])&&(c[d[e]]=a[d[e]]);return c}var a4=("function"==typeof SuppressedError&&SuppressedError,"right-scroll-bar-position"),a5="width-before-scroll-bar";function a6(a,b){return"function"==typeof a?a(b):a&&(a.current=b),a}var a7=p.useEffect,a8=new WeakMap,a9=(void 0===b&&(b={}),(void 0===c&&(c=function(a){return a}),d=[],e=!1,f={read:function(){if(e)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return d.length?d[d.length-1]:null},useMedium:function(a){var b=c(a,e);return d.push(b),function(){d=d.filter(function(a){return a!==b})}},assignSyncMedium:function(a){for(e=!0;d.length;){var b=d;d=[],b.forEach(a)}d={push:function(b){return a(b)},filter:function(){return d}}},assignMedium:function(a){e=!0;var b=[];if(d.length){var c=d;d=[],c.forEach(a),b=d}var f=function(){var c=b;b=[],c.forEach(a)},g=function(){return Promise.resolve().then(f)};g(),d={push:function(a){b.push(a),g()},filter:function(a){return b=b.filter(a),d}}}}).options=a2({async:!0,ssr:!1},b),f),ba=function(){},bb=p.forwardRef(function(a,b){var c,d,e,f,g=p.useRef(null),h=p.useState({onScrollCapture:ba,onWheelCapture:ba,onTouchMoveCapture:ba}),i=h[0],j=h[1],k=a.forwardProps,l=a.children,m=a.className,n=a.removeScrollBar,o=a.enabled,q=a.shards,r=a.sideCar,s=a.noRelative,t=a.noIsolation,u=a.inert,v=a.allowPinchZoom,w=a.as,x=a.gapMode,y=a3(a,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),z=(c=[g,b],d=function(a){return c.forEach(function(b){return a6(b,a)})},(e=(0,p.useState)(function(){return{value:null,callback:d,facade:{get current(){return e.value},set current(value){var a=e.value;a!==value&&(e.value=value,e.callback(value,a))}}}})[0]).callback=d,f=e.facade,a7(function(){var a=a8.get(f);if(a){var b=new Set(a),d=new Set(c),e=f.current;b.forEach(function(a){d.has(a)||a6(a,null)}),d.forEach(function(a){b.has(a)||a6(a,e)})}a8.set(f,c)},[c]),f),A=a2(a2({},y),i);return p.createElement(p.Fragment,null,o&&p.createElement(r,{sideCar:a9,removeScrollBar:n,shards:q,noRelative:s,noIsolation:t,inert:u,setCallbacks:j,allowPinchZoom:!!v,lockRef:g,gapMode:x}),k?p.cloneElement(p.Children.only(l),a2(a2({},A),{ref:z})):p.createElement(void 0===w?"div":w,a2({},A,{className:m,ref:z}),l))});bb.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},bb.classNames={fullWidth:a5,zeroRight:a4};var bc=function(a){var b=a.sideCar,c=a3(a,["sideCar"]);if(!b)throw Error("Sidecar: please provide `sideCar` property to import the right car");var d=b.read();if(!d)throw Error("Sidecar medium not found");return p.createElement(d,a2({},c))};bc.isSideCarExport=!0;var bd=function(){var a=0,b=null;return{add:function(c){if(0==a&&(b=function(){if(!document)return null;var a=document.createElement("style");a.type="text/css";var b=i||("u">typeof __webpack_nonce__?__webpack_nonce__:void 0);return b&&a.setAttribute("nonce",b),a}())){var d,e;(d=b).styleSheet?d.styleSheet.cssText=c:d.appendChild(document.createTextNode(c)),e=b,(document.head||document.getElementsByTagName("head")[0]).appendChild(e)}a++},remove:function(){--a||!b||(b.parentNode&&b.parentNode.removeChild(b),b=null)}}},be=function(){var a=bd();return function(b,c){p.useEffect(function(){return a.add(b),function(){a.remove()}},[b&&c])}},bf=function(){var a=be();return function(b){return a(b.styles,b.dynamic),null}},bg={left:0,top:0,right:0,gap:0},bh=bf(),bi="data-scroll-locked",bj=function(a,b,c,d){var e=a.left,f=a.top,g=a.right,h=a.gap;return void 0===c&&(c="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(d,";\n padding-right: ").concat(h,"px ").concat(d,";\n }\n body[").concat(bi,"] {\n overflow: hidden ").concat(d,";\n overscroll-behavior: contain;\n ").concat([b&&"position: relative ".concat(d,";"),"margin"===c&&"\n padding-left: ".concat(e,"px;\n padding-top: ").concat(f,"px;\n padding-right: ").concat(g,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(h,"px ").concat(d,";\n "),"padding"===c&&"padding-right: ".concat(h,"px ").concat(d,";")].filter(Boolean).join(""),"\n }\n \n .").concat(a4," {\n right: ").concat(h,"px ").concat(d,";\n }\n \n .").concat(a5," {\n margin-right: ").concat(h,"px ").concat(d,";\n }\n \n .").concat(a4," .").concat(a4," {\n right: 0 ").concat(d,";\n }\n \n .").concat(a5," .").concat(a5," {\n margin-right: 0 ").concat(d,";\n }\n \n body[").concat(bi,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(h,"px;\n }\n")},bk=function(){var a=parseInt(document.body.getAttribute(bi)||"0",10);return isFinite(a)?a:0},bl=function(){p.useEffect(function(){return document.body.setAttribute(bi,(bk()+1).toString()),function(){var a=bk()-1;a<=0?document.body.removeAttribute(bi):document.body.setAttribute(bi,a.toString())}},[])},bm=function(a){var b=a.noRelative,c=a.noImportant,d=a.gapMode,e=void 0===d?"margin":d;bl();var f=p.useMemo(function(){return void 0===e,bg},[e]);return p.createElement(bh,{styles:bj(f,!b,e,c?"":"!important")})},bn=function(a,b){if(!(a instanceof Element))return!1;var c=window.getComputedStyle(a);return"hidden"!==c[b]&&(c.overflowY!==c.overflowX||"TEXTAREA"===a.tagName||"visible"!==c[b])},bo=function(a,b){var c=b.ownerDocument,d=b;do{if("u">typeof ShadowRoot&&d instanceof ShadowRoot&&(d=d.host),bp(a,d)){var e=bq(a,d);if(e[1]>e[2])return!0}d=d.parentNode}while(d&&d!==c.body)return!1},bp=function(a,b){return"v"===a?bn(b,"overflowY"):bn(b,"overflowX")},bq=function(a,b){return"v"===a?[b.scrollTop,b.scrollHeight,b.clientHeight]:[b.scrollLeft,b.scrollWidth,b.clientWidth]},br=function(a,b,c,d,e){var f,g=(f=window.getComputedStyle(b).direction,"h"===a&&"rtl"===f?-1:1),h=g*d,i=c.target,j=b.contains(i),k=!1,l=h>0,m=0,n=0;do{if(!i)break;var o=bq(a,i),p=o[0],q=o[1]-o[2]-g*p;(p||q)&&bp(a,i)&&(m+=q,n+=p);var r=i.parentNode;i=r&&r.nodeType===Node.DOCUMENT_FRAGMENT_NODE?r.host:r}while(!j&&i!==document.body||j&&(b.contains(i)||b===i))return l&&(e&&1>Math.abs(m)||!e&&h>m)?k=!0:!l&&(e&&1>Math.abs(n)||!e&&-h>n)&&(k=!0),k},bs=function(a){return"changedTouches"in a?[a.changedTouches[0].clientX,a.changedTouches[0].clientY]:[0,0]},bt=function(a){return[a.deltaX,a.deltaY]},bu=function(a){return a&&"current"in a?a.current:a},bv=0,bw=[];let bx=(g=function(a){var b=p.useRef([]),c=p.useRef([0,0]),d=p.useRef(),e=p.useState(bv++)[0],f=p.useState(bf)[0],g=p.useRef(a);p.useEffect(function(){g.current=a},[a]),p.useEffect(function(){if(a.inert){document.body.classList.add("block-interactivity-".concat(e));var b=(function(a,b,c){if(c||2==arguments.length)for(var d,e=0,f=b.length;e<f;e++)!d&&e in b||(d||(d=Array.prototype.slice.call(b,0,e)),d[e]=b[e]);return a.concat(d||Array.prototype.slice.call(b))})([a.lockRef.current],(a.shards||[]).map(bu),!0).filter(Boolean);return b.forEach(function(a){return a.classList.add("allow-interactivity-".concat(e))}),function(){document.body.classList.remove("block-interactivity-".concat(e)),b.forEach(function(a){return a.classList.remove("allow-interactivity-".concat(e))})}}},[a.inert,a.lockRef.current,a.shards]);var h=p.useCallback(function(a,b){if("touches"in a&&2===a.touches.length||"wheel"===a.type&&a.ctrlKey)return!g.current.allowPinchZoom;var e,f=bs(a),h=c.current,i="deltaX"in a?a.deltaX:h[0]-f[0],j="deltaY"in a?a.deltaY:h[1]-f[1],k=a.target,l=Math.abs(i)>Math.abs(j)?"h":"v";if("touches"in a&&"h"===l&&"range"===k.type)return!1;var m=window.getSelection(),n=m&&m.anchorNode;if(n&&(n===k||n.contains(k)))return!1;var o=bo(l,k);if(!o)return!0;if(o?e=l:(e="v"===l?"h":"v",o=bo(l,k)),!o)return!1;if(!d.current&&"changedTouches"in a&&(i||j)&&(d.current=e),!e)return!0;var p=d.current||e;return br(p,b,a,"h"===p?i:j,!0)},[]),i=p.useCallback(function(a){if(bw.length&&bw[bw.length-1]===f){var c="deltaY"in a?bt(a):bs(a),d=b.current.filter(function(b){var d;return b.name===a.type&&(b.target===a.target||a.target===b.shadowParent)&&(d=b.delta,d[0]===c[0]&&d[1]===c[1])})[0];if(d&&d.should){a.cancelable&&a.preventDefault();return}if(!d){var e=(g.current.shards||[]).map(bu).filter(Boolean).filter(function(b){return b.contains(a.target)});(e.length>0?h(a,e[0]):!g.current.noIsolation)&&a.cancelable&&a.preventDefault()}}},[]),j=p.useCallback(function(a,c,d,e){var f={name:a,delta:c,target:d,should:e,shadowParent:function(a){for(var b=null;null!==a;)a instanceof ShadowRoot&&(b=a.host,a=a.host),a=a.parentNode;return b}(d)};b.current.push(f),setTimeout(function(){b.current=b.current.filter(function(a){return a!==f})},1)},[]),k=p.useCallback(function(a){c.current=bs(a),d.current=void 0},[]),l=p.useCallback(function(b){j(b.type,bt(b),b.target,h(b,a.lockRef.current))},[]),m=p.useCallback(function(b){j(b.type,bs(b),b.target,h(b,a.lockRef.current))},[]);p.useEffect(function(){return bw.push(f),a.setCallbacks({onScrollCapture:l,onWheelCapture:l,onTouchMoveCapture:m}),document.addEventListener("wheel",i,!1),document.addEventListener("touchmove",i,!1),document.addEventListener("touchstart",k,!1),function(){bw=bw.filter(function(a){return a!==f}),document.removeEventListener("wheel",i,!1),document.removeEventListener("touchmove",i,!1),document.removeEventListener("touchstart",k,!1)}},[]);var n=a.removeScrollBar,o=a.inert;return p.createElement(p.Fragment,null,o?p.createElement(f,{styles:"\n .block-interactivity-".concat(e," {pointer-events: none;}\n .allow-interactivity-").concat(e," {pointer-events: all;}\n")}):null,n?p.createElement(bm,{noRelative:a.noRelative,gapMode:a.gapMode}):null)},a9.useMedium(g),bc);var by=p.forwardRef(function(a,b){return p.createElement(bb,a2({},a,{ref:b,sideCar:bx}))});by.classNames=bb.classNames;var bz=new WeakMap,bA=new WeakMap,bB={},bC=0,bD=function(a){return a&&(a.host||bD(a.parentNode))},bE=function(a,b,c,d){var e=(Array.isArray(a)?a:[a]).map(function(a){if(b.contains(a))return a;var c=bD(a);return c&&b.contains(c)?c:(console.error("aria-hidden",a,"in not contained inside",b,". Doing nothing"),null)}).filter(function(a){return!!a});bB[c]||(bB[c]=new WeakMap);var f=bB[c],g=[],h=new Set,i=new Set(e),j=function(a){!a||h.has(a)||(h.add(a),j(a.parentNode))};e.forEach(j);var k=function(a){!a||i.has(a)||Array.prototype.forEach.call(a.children,function(a){if(h.has(a))k(a);else try{var b=a.getAttribute(d),e=null!==b&&"false"!==b,i=(bz.get(a)||0)+1,j=(f.get(a)||0)+1;bz.set(a,i),f.set(a,j),g.push(a),1===i&&e&&bA.set(a,!0),1===j&&a.setAttribute(c,"true"),e||a.setAttribute(d,"true")}catch(b){console.error("aria-hidden: cannot operate on ",a,b)}})};return k(b),h.clear(),bC++,function(){g.forEach(function(a){var b=bz.get(a)-1,e=f.get(a)-1;bz.set(a,b),f.set(a,e),b||(bA.has(a)||a.removeAttribute(d),bA.delete(a)),e||a.removeAttribute(c)}),--bC||(bz=new WeakMap,bz=new WeakMap,bA=new WeakMap,bB={})}},bF=function(a,b,c){void 0===c&&(c="data-aria-hidden");var d=Array.from(Array.isArray(a)?a:[a]),e=b||("u"<typeof document?null:(Array.isArray(a)?a[0]:a).ownerDocument.body);return e?(d.push.apply(d,Array.from(e.querySelectorAll("[aria-live], script"))),bE(d,e,c,"aria-hidden")):function(){return null}},bG=Object.defineProperty,bH=(a,b)=>bG(a,"name",{value:b,configurable:!0}),bI="Dialog",[bJ,bK]=C(bI),[bL,bM]=bJ(bI),bN=bH(a=>{let{__scopeDialog:b,children:c,open:d,defaultOpen:e,onOpenChange:f,modal:g=!0}=a,h=p.useRef(null),i=p.useRef(null),[k,l]=Q({prop:d,defaultProp:e??!1,onChange:f,caller:bI}),[m,n]=p.useState(0),[o,q]=p.useState(0);return(0,j.jsx)(bL,{scope:b,triggerRef:h,contentRef:i,contentId:I(),titleId:I(),descriptionId:I(),titlePresent:m>0,descriptionPresent:o>0,setTitleCount:n,setDescriptionCount:q,open:k,onOpenChange:l,onOpenToggle:p.useCallback(()=>l(a=>!a),[l]),modal:g,children:c})},"Dialog"),bO="DialogPortal",[bP,bQ]=bJ(bO,{forceMount:void 0}),bR=bH(a=>{let{__scopeDialog:b,forceMount:c,children:d,container:e}=a,f=bM(bO,b);return(0,j.jsx)(bP,{scope:b,forceMount:c,children:p.Children.map(d,a=>(0,j.jsx)(aS,{present:c||f.open,children:(0,j.jsx)(aO,{asChild:!0,container:e,children:a})}))})},"DialogPortal"),bS="DialogOverlay",bT=p.forwardRef(bH(function(a,b){let c=bQ(bS,a.__scopeDialog),{forceMount:d=c.forceMount,...e}=a,f=bM(bS,a.__scopeDialog);return f.modal?(0,j.jsx)(aS,{present:d||f.open,children:(0,j.jsx)(bV,{...e,ref:b})}):null},"DialogOverlay")),bU=X("DialogOverlay.RemoveScroll"),bV=p.forwardRef(bH(function(a,b){let{__scopeDialog:c,...d}=a,e=bM(bS,c),f=z(b,aq());return(0,j.jsx)(by,{as:bU,allowPinchZoom:!0,shards:[e.contentRef],children:(0,j.jsx)(ai.div,{"data-state":b_(e.open),...d,ref:f,style:{pointerEvents:"auto",...d.style}})})},"DialogOverlayImpl")),bW="DialogContent",bX=p.forwardRef(bH(function(a,b){let c=bQ(bW,a.__scopeDialog),{forceMount:d=c.forceMount,...e}=a,f=bM(bW,a.__scopeDialog);return(0,j.jsx)(aS,{present:d||f.open,children:f.modal?(0,j.jsx)(bY,{...e,ref:b}):(0,j.jsx)(bZ,{...e,ref:b})})},"DialogContent")),bY=p.forwardRef(bH(function(a,b){let c=bM(bW,a.__scopeDialog),d=p.useRef(null),e=z(b,c.contentRef,d);return p.useEffect(()=>{let a=d.current;if(a)return bF(a)},[]),(0,j.jsx)(b$,{...a,ref:e,trapFocus:c.open,disableOutsidePointerEvents:c.open,onCloseAutoFocus:s(a.onCloseAutoFocus,a=>{a.preventDefault(),c.triggerRef.current?.focus()}),onPointerDownOutside:s(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;(2===b.button||c)&&a.preventDefault()}),onFocusOutside:s(a.onFocusOutside,a=>a.preventDefault())})},"DialogContentModal")),bZ=p.forwardRef(bH(function(a,b){let c=bM(bW,a.__scopeDialog),d=p.useRef(!1),e=p.useRef(!1);return(0,j.jsx)(b$,{...a,ref:b,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(d.current||c.triggerRef.current?.focus(),b.preventDefault()),d.current=!1,e.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(d.current=!0,"pointerdown"===b.detail.originalEvent.type&&(e.current=!0));let f=b.target;c.triggerRef.current?.contains(f)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&e.current&&b.preventDefault()}})},"DialogContentNonModal")),b$=p.forwardRef(bH(function(a,b){let{__scopeDialog:c,trapFocus:d,onOpenAutoFocus:e,onCloseAutoFocus:f,...g}=a,h=bM(bW,c);return a0(),(0,j.jsx)(j.Fragment,{children:(0,j.jsx)(aB,{asChild:!0,loop:!0,trapped:d,onMountAutoFocus:e,onUnmountAutoFocus:f,children:(0,j.jsx)(ap,{role:"dialog",id:h.contentId,"aria-describedby":h.descriptionPresent?h.descriptionId:void 0,"aria-labelledby":h.titlePresent?h.titleId:void 0,"data-state":b_(h.open),...g,ref:b,deferPointerDownOutside:!0,onDismiss:()=>h.onOpenChange(!1)})})})},"DialogContentImpl"));function b_(a){return a?"open":"closed"}bH(b_,"getState");var b0='[cmdk-group=""]',b1='[cmdk-group-items=""]',b2='[cmdk-item=""]',b3=`${b2}:not([aria-disabled="true"])`,b4="cmdk-item-select",b5="data-value",b6=(a,b,c)=>{var d;return d=a,function a(b,c,d,e,f,g,h){if(g===c.length)return f===b.length?1:.99;var i=`${f},${g}`;if(void 0!==h[i])return h[i];for(var j,o,p,q,r=e.charAt(g),s=d.indexOf(r,f),t=0;s>=0;)(j=a(b,c,d,e,s+1,g+1,h))>t&&(s===f?j*=1:k.test(b.charAt(s-1))?(j*=.8,(p=b.slice(f,s-1).match(l))&&f>0&&(j*=Math.pow(.999,p.length))):m.test(b.charAt(s-1))?(j*=.9,(q=b.slice(f,s-1).match(n))&&f>0&&(j*=Math.pow(.999,q.length))):(j*=.17,f>0&&(j*=Math.pow(.999,s-f))),b.charAt(s)!==c.charAt(g)&&(j*=.9999)),(j<.1&&d.charAt(s-1)===e.charAt(g+1)||e.charAt(g+1)===e.charAt(g)&&d.charAt(s-1)!==e.charAt(g))&&.1*(o=a(b,c,d,e,s+1,g+2,h))>j&&(j=.1*o),j>t&&(t=j),s=d.indexOf(r,s+1);return h[i]=t,t}(d=c&&c.length>0?`${d+" "+c.join(" ")}`:d,b,o(d),o(b),0,0,{})},b7=p.createContext(void 0),b8=p.createContext(void 0),b9=p.createContext(void 0),ca=p.forwardRef((a,b)=>{let c=ck(()=>{var b,c;return{search:"",value:null!=(c=null!=(b=a.value)?b:a.defaultValue)?c:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),d=ck(()=>new Set),e=ck(()=>new Map),f=ck(()=>new Map),g=ck(()=>new Set),h=ci(a),{label:i,children:j,value:k,onValueChange:l,filter:m,shouldFilter:n,loop:o,disablePointerSelection:q=!1,vimBindings:r=!0,...s}=a,t=I(),u=I(),v=I(),w=p.useRef(null),x=cn();cj(()=>{if(void 0!==k){let a=k.trim();c.current.value=a,y.emit()}},[k]),cj(()=>{x(6,E)},[]);let y=p.useMemo(()=>({subscribe:a=>(g.current.add(a),()=>g.current.delete(a)),snapshot:()=>c.current,setState:(a,b,d)=>{var e,f,g,i;if(!Object.is(c.current[a],b)){if(c.current[a]=b,"search"===a)D(),B(),x(1,C);else if("value"===a){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let a=document.getElementById(v);a?a.focus():null==(e=document.getElementById(t))||e.focus()}if(x(7,()=>{var a;c.current.selectedItemId=null==(a=F())?void 0:a.id,y.emit()}),d||x(5,E),(null==(f=h.current)?void 0:f.value)!==void 0){null==(i=(g=h.current).onValueChange)||i.call(g,null!=b?b:"");return}}y.emit()}},emit:()=>{g.current.forEach(a=>a())}}),[]),z=p.useMemo(()=>({value:(a,b,d)=>{var e;b!==(null==(e=f.current.get(a))?void 0:e.value)&&(f.current.set(a,{value:b,keywords:d}),c.current.filtered.items.set(a,A(b,d)),x(2,()=>{B(),y.emit()}))},item:(a,b)=>(d.current.add(a),b&&(e.current.has(b)?e.current.get(b).add(a):e.current.set(b,new Set([a]))),x(3,()=>{D(),B(),c.current.value||C(),y.emit()}),()=>{f.current.delete(a),d.current.delete(a),c.current.filtered.items.delete(a);let b=F();x(4,()=>{D(),(null==b?void 0:b.getAttribute("id"))===a&&C(),y.emit()})}),group:a=>(e.current.has(a)||e.current.set(a,new Set),()=>{f.current.delete(a),e.current.delete(a)}),filter:()=>h.current.shouldFilter,label:i||a["aria-label"],getDisablePointerSelection:()=>h.current.disablePointerSelection,listId:t,inputId:v,labelId:u,listInnerRef:w}),[]);function A(a,b){var d,e;let f=null!=(e=null==(d=h.current)?void 0:d.filter)?e:b6;return a?f(a,c.current.search,b):0}function B(){if(!c.current.search||!1===h.current.shouldFilter)return;let a=c.current.filtered.items,b=[];c.current.filtered.groups.forEach(c=>{let d=e.current.get(c),f=0;d.forEach(b=>{f=Math.max(a.get(b),f)}),b.push([c,f])});let d=w.current;G().sort((b,c)=>{var d,e;let f=b.getAttribute("id"),g=c.getAttribute("id");return(null!=(d=a.get(g))?d:0)-(null!=(e=a.get(f))?e:0)}).forEach(a=>{let b=a.closest(b1);b?b.appendChild(a.parentElement===b?a:a.closest(`${b1} > *`)):d.appendChild(a.parentElement===d?a:a.closest(`${b1} > *`))}),b.sort((a,b)=>b[1]-a[1]).forEach(a=>{var b;let c=null==(b=w.current)?void 0:b.querySelector(`${b0}[${b5}="${encodeURIComponent(a[0])}"]`);null==c||c.parentElement.appendChild(c)})}function C(){let a=G().find(a=>"true"!==a.getAttribute("aria-disabled")),b=null==a?void 0:a.getAttribute(b5);y.setState("value",b||void 0)}function D(){var a,b,g,i;if(!c.current.search||!1===h.current.shouldFilter){c.current.filtered.count=d.current.size;return}c.current.filtered.groups=new Set;let j=0;for(let e of d.current){let d=A(null!=(b=null==(a=f.current.get(e))?void 0:a.value)?b:"",null!=(i=null==(g=f.current.get(e))?void 0:g.keywords)?i:[]);c.current.filtered.items.set(e,d),d>0&&j++}for(let[a,b]of e.current)for(let d of b)if(c.current.filtered.items.get(d)>0){c.current.filtered.groups.add(a);break}c.current.filtered.count=j}function E(){var a,b,c;let d=F();d&&((null==(a=d.parentElement)?void 0:a.firstChild)===d&&(null==(c=null==(b=d.closest(b0))?void 0:b.querySelector('[cmdk-group-heading=""]'))||c.scrollIntoView({block:"nearest"})),d.scrollIntoView({block:"nearest"}))}function F(){var a;return null==(a=w.current)?void 0:a.querySelector(`${b2}[aria-selected="true"]`)}function G(){var a;return Array.from((null==(a=w.current)?void 0:a.querySelectorAll(b3))||[])}function H(a){let b=G()[a];b&&y.setState("value",b.getAttribute(b5))}function J(a){var b;let c=F(),d=G(),e=d.findIndex(a=>a===c),f=d[e+a];null!=(b=h.current)&&b.loop&&(f=e+a<0?d[d.length-1]:e+a===d.length?d[0]:d[e+a]),f&&y.setState("value",f.getAttribute(b5))}function K(a){let b=F(),c=null==b?void 0:b.closest(b0),d;for(;c&&!d;)d=null==(c=a>0?function(a,b){let c=a.nextElementSibling;for(;c;){if(c.matches(b))return c;c=c.nextElementSibling}}(c,b0):function(a,b){let c=a.previousElementSibling;for(;c;){if(c.matches(b))return c;c=c.previousElementSibling}}(c,b0))?void 0:c.querySelector(b3);d?y.setState("value",d.getAttribute(b5)):J(a)}let L=()=>H(G().length-1),M=a=>{a.preventDefault(),a.metaKey?L():a.altKey?K(1):J(1)},N=a=>{a.preventDefault(),a.metaKey?H(0):a.altKey?K(-1):J(-1)};return p.createElement(ai.div,{ref:b,tabIndex:-1,...s,"cmdk-root":"",onKeyDown:a=>{var b;null==(b=s.onKeyDown)||b.call(s,a);let c=a.nativeEvent.isComposing||229===a.keyCode;if(!(a.defaultPrevented||c))switch(a.key){case"n":case"j":r&&a.ctrlKey&&M(a);break;case"ArrowDown":M(a);break;case"p":case"k":r&&a.ctrlKey&&N(a);break;case"ArrowUp":N(a);break;case"Home":a.preventDefault(),H(0);break;case"End":a.preventDefault(),L();break;case"Enter":{a.preventDefault();let b=F();if(b){let a=new Event(b4);b.dispatchEvent(a)}}}}},p.createElement("label",{"cmdk-label":"",htmlFor:z.inputId,id:z.labelId,style:cp},i),co(a,a=>p.createElement(b8.Provider,{value:y},p.createElement(b7.Provider,{value:z},a))))}),cb=p.forwardRef((a,b)=>{var c,d;let e=I(),f=p.useRef(null),g=p.useContext(b9),h=p.useContext(b7),i=ci(a),j=null!=(d=null==(c=i.current)?void 0:c.forceMount)?d:null==g?void 0:g.forceMount;cj(()=>{if(!j)return h.item(e,null==g?void 0:g.id)},[j]);let k=cm(e,f,[a.value,a.children,f],a.keywords),l=p.useContext(b8),m=cl(a=>a.value&&a.value===k.current),n=cl(a=>!!j||!1===h.filter()||!a.search||a.filtered.items.get(e)>0);function o(){var a,b;q(),null==(b=(a=i.current).onSelect)||b.call(a,k.current)}function q(){l.setState("value",k.current,!0)}if(p.useEffect(()=>{let b=f.current;if(!(!b||a.disabled))return b.addEventListener(b4,o),()=>b.removeEventListener(b4,o)},[n,a.onSelect,a.disabled]),!n)return null;let{disabled:r,value:s,onSelect:t,forceMount:u,keywords:v,...w}=a;return p.createElement(ai.div,{ref:y(f,b),...w,id:e,"cmdk-item":"",role:"option","aria-disabled":!!r,"aria-selected":!!m,"data-disabled":!!r,"data-selected":!!m,onPointerMove:r||h.getDisablePointerSelection()?void 0:q,onClick:r?void 0:o},a.children)}),cc=p.forwardRef((a,b)=>{let{heading:c,children:d,forceMount:e,...f}=a,g=I(),h=p.useRef(null),i=p.useRef(null),j=I(),k=p.useContext(b7),l=cl(a=>!!e||!1===k.filter()||!a.search||a.filtered.groups.has(g));cj(()=>k.group(g),[]),cm(g,h,[a.value,a.heading,i]);let m=p.useMemo(()=>({id:g,forceMount:e}),[e]);return p.createElement(ai.div,{ref:y(h,b),...f,"cmdk-group":"",role:"presentation",hidden:!l||void 0},c&&p.createElement("div",{ref:i,"cmdk-group-heading":"","aria-hidden":!0,id:j},c),co(a,a=>p.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":c?j:void 0},p.createElement(b9.Provider,{value:m},a))))}),cd=p.forwardRef((a,b)=>{let{alwaysRender:c,...d}=a,e=p.useRef(null),f=cl(a=>!a.search);return c||f?p.createElement(ai.div,{ref:y(e,b),...d,"cmdk-separator":"",role:"separator"}):null}),ce=p.forwardRef((a,b)=>{let{onValueChange:c,...d}=a,e=null!=a.value,f=p.useContext(b8),g=cl(a=>a.search),h=cl(a=>a.selectedItemId),i=p.useContext(b7);return p.useEffect(()=>{null!=a.value&&f.setState("search",a.value)},[a.value]),p.createElement(ai.input,{ref:b,...d,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":i.listId,"aria-labelledby":i.labelId,"aria-activedescendant":h,id:i.inputId,type:"text",value:e?a.value:g,onChange:a=>{e||f.setState("search",a.target.value),null==c||c(a.target.value)}})}),cf=p.forwardRef((a,b)=>{let{children:c,label:d="Suggestions",...e}=a,f=p.useRef(null),g=p.useRef(null),h=cl(a=>a.selectedItemId),i=p.useContext(b7);return p.useEffect(()=>{if(g.current&&f.current){let a=g.current,b=f.current,c,d=new ResizeObserver(()=>{c=requestAnimationFrame(()=>{let c=a.offsetHeight;b.style.setProperty("--cmdk-list-height",c.toFixed(1)+"px")})});return d.observe(a),()=>{cancelAnimationFrame(c),d.unobserve(a)}}},[]),p.createElement(ai.div,{ref:y(f,b),...e,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":h,"aria-label":d,id:i.listId},co(a,a=>p.createElement("div",{ref:y(g,i.listInnerRef),"cmdk-list-sizer":""},a)))}),cg=p.forwardRef((a,b)=>{let{open:c,onOpenChange:d,overlayClassName:e,contentClassName:f,container:g,...h}=a;return p.createElement(bN,{open:c,onOpenChange:d},p.createElement(bR,{container:g},p.createElement(bT,{"cmdk-overlay":"",className:e}),p.createElement(bX,{"aria-label":a.label,"cmdk-dialog":"",className:f},p.createElement(ca,{ref:b,...h}))))}),ch=Object.assign(ca,{List:cf,Item:cb,Input:ce,Group:cc,Separator:cd,Dialog:cg,Empty:p.forwardRef((a,b)=>cl(a=>0===a.filtered.count)?p.createElement(ai.div,{ref:b,...a,"cmdk-empty":"",role:"presentation"}):null),Loading:p.forwardRef((a,b)=>{let{progress:c,children:d,label:e="Loading...",...f}=a;return p.createElement(ai.div,{ref:b,...f,"cmdk-loading":"",role:"progressbar","aria-valuenow":c,"aria-valuemin":0,"aria-valuemax":100,"aria-label":e},co(a,a=>p.createElement("div",{"aria-hidden":!0},a)))})});function ci(a){let b=p.useRef(a);return cj(()=>{b.current=a}),b}var cj=p.useEffect;function ck(a){let b=p.useRef();return void 0===b.current&&(b.current=a()),b}function cl(a){let b=p.useContext(b8),c=()=>a(b.snapshot());return p.useSyncExternalStore(b.subscribe,c,c)}function cm(a,b,c,d=[]){let e=p.useRef(),f=p.useContext(b7);return cj(()=>{var g;let h=(()=>{var a;for(let b of c){if("string"==typeof b)return b.trim();if("object"==typeof b&&"current"in b)return b.current?null==(a=b.current.textContent)?void 0:a.trim():e.current}})(),i=d.map(a=>a.trim());f.value(a,h,i),null==(g=b.current)||g.setAttribute(b5,h),e.current=h}),e}var cn=()=>{let[a,b]=p.useState(),c=ck(()=>new Map);return cj(()=>{c.current.forEach(a=>a()),c.current=new Map},[a]),(a,d)=>{c.current.set(a,d),b({})}};function co({asChild:a,children:b},c){let d;return a&&p.isValidElement(b)?p.cloneElement("function"==typeof(d=b.type)?d(b.props):"render"in d?d.render(b.props):b,{ref:b.ref},c(b.props.children)):c(b)}var cp={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},cq=a.i(763802),cr=a.i(645766),cr=cr;a.i(965733);var cs=a.i(262276),ct=a.i(497895);a.s(["Command",0,function({className:a,...b}){return(0,j.jsx)(ch,{"data-slot":"command",className:(0,ct.cn)("flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground",a),...b})},"CommandEmpty",0,function({className:a,...b}){return(0,j.jsx)(ch.Empty,{"data-slot":"command-empty",className:(0,ct.cn)("py-6 text-center text-sm",a),...b})},"CommandGroup",0,function({className:a,...b}){return(0,j.jsx)(ch.Group,{"data-slot":"command-group",className:(0,ct.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",a),...b})},"CommandInput",0,function({className:a,...b}){return(0,j.jsx)("div",{"data-slot":"command-input-wrapper",className:"p-1 pb-0",children:(0,j.jsxs)(cs.InputGroup,{className:"h-8! rounded-lg! border-input/30 bg-input/30 shadow-none! *:data-[slot=input-group-addon]:pl-2!",children:[(0,j.jsx)(ch.Input,{"data-slot":"command-input",className:(0,ct.cn)("w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",a),...b}),(0,j.jsx)(cs.InputGroupAddon,{children:(0,j.jsx)(cr.default,{className:"size-4 shrink-0 opacity-50"})})]})})},"CommandItem",0,function({className:a,children:b,...c}){return(0,j.jsxs)(ch.Item,{"data-slot":"command-item",className:(0,ct.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",a),...c,children:[b,(0,j.jsx)(cq.CheckIcon,{className:"ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100"})]})},"CommandList",0,function({className:a,...b}){return(0,j.jsx)(ch.List,{"data-slot":"command-list",className:(0,ct.cn)("no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none",a),...b})}],329154)},581662,a=>a.a(async(b,c)=>{try{var d=a.i(187924),e=a.i(752562),f=a.i(141146),g=a.i(793817),h=a.i(844561),i=a.i(425256),j=a.i(403512),k=a.i(951675),l=a.i(924613),m=a.i(474215),n=a.i(572131),o=a.i(767561),p=a.i(340695),q=a.i(329154),r=a.i(205522),s=a.i(262276),t=a.i(446181),u=a.i(545097),v=a.i(950463),w=a.i(280281),x=a.i(546893),y=a.i(287702),z=a.i(608902),A=a.i(61876),B=a.i(44358),C=a.i(754257),D=a.i(652006),E=a.i(310305),F=a.i(522618),G=a.i(411509),H=a.i(398026),I=a.i(913834),J=a.i(626280),K=a.i(478978),L=a.i(619477),M=a.i(28996),N=a.i(369768),O=a.i(559553),P=a.i(246812),Q=a.i(337967),R=a.i(30681),S=a.i(199169),T=a.i(616682),U=a.i(313237),V=a.i(759497),W=a.i(497895),X=a.i(324835),Y=b([N]);[N]=Y.then?(await Y)():Y;let ap=" new";function Z({bot:a,job:b,active:c,onPick:e}){var f,g,h;let i=(f=b,g=a.lastJobAt,h=a.disabled,f?.status==="waiting"?{text:"waiting on you",shine:!0,amber:!0}:f?.status==="running"?{text:`working \xb7 ${f.label}`,shine:!0}:h?{text:"off"}:f?{text:`idle \xb7 last job ${$(f.updatedAt)}`}:g?{text:`idle \xb7 last job ${$(g)}`}:{text:"idle · no jobs yet"});return(0,d.jsxs)("button",{type:"button",onClick:e,className:(0,W.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",c?"bg-secondary":"hover:bg-muted/60"),children:[(0,d.jsx)(I.BotMark,{size:32,...af(a.name,a.icon),state:b?.status==="running"?"thinking":"idle",notify:b?.status==="waiting",className:(0,W.cn)("shrink-0",a.disabled&&"opacity-45")}),(0,d.jsxs)("span",{className:(0,W.cn)("min-w-0 flex-1 space-y-0.5",a.disabled&&"opacity-45"),children:[(0,d.jsx)("span",{className:(0,W.cn)("block truncate text-[13px]",c?"font-medium":"text-foreground/90"),children:a.name}),i.shine?(0,d.jsx)(u.ShinyText,{text:i.text,tone:i.amber?"waiting":"muted",className:"block truncate font-mono text-[11px] leading-4"}):(0,d.jsx)("span",{className:"block truncate font-mono text-[11px] leading-4 text-muted-foreground",children:i.text})]})]})}function $(a){let b=(0,S.shortAgo)(a);return"now"===b?"just now":`${b} ago`}function _(a,b,c){let[d,e]=(0,n.useState)(new Set),[f,g]=(0,U.useServerAction)(C.createSeedBotsAction,{onOk:a=>{(0,V.revalidate)(o.queryKey.bot),c(a.created[0]??null)}}),{data:h}=(0,V.useServerRoute)(o.queryKey.config),i=H.BOT_SEEDS.filter(b=>!a.has(b.name)),j=i.filter(a=>!d.has(a.name));return{isSet:a=>(0,K.isConfigSet)(h,a),adding:g,addable:i,wanted:j,ticked:b=>a.has(b.name)||!d.has(b.name),toggle:a=>e(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c}),submit:()=>f(j.map(a=>({name:a.name,color:b[H.BOT_SEEDS.indexOf(a)]})))}}function aa({have:a,inks:b,picks:c}){return(0,d.jsx)("div",{className:"flex flex-col gap-2",children:H.BOT_SEEDS.map((f,h)=>{var i;let j,k=a.has(f.name),l=c.ticked(f),m=(i=c.isSet,(j=(f.requires??[]).filter(a=>!i(K.MEDIA_MODEL_KEYS[a]))).length?`needs ${j.map(K.mediaModelWords).join(" and ")}`:null);return(0,d.jsx)("div",{className:(0,W.cn)("rounded-xl ring-1 transition-colors",k?"opacity-45 ring-border/60":l?"ring-foreground":"ring-border/60"),children:(0,d.jsxs)("button",{type:"button",disabled:k||c.adding,"aria-pressed":l,onClick:()=>c.toggle(f.name),className:"flex w-full items-center gap-3 rounded-xl px-3.5 py-2.5 text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-default",children:[(0,d.jsx)(I.BotMark,{size:28,...af(f.name,f.icon),color:b[h],className:(0,W.cn)("shrink-0 transition-opacity",!l&&"opacity-35")}),(0,d.jsxs)("span",{className:"min-w-0 flex-1 space-y-px",children:[(0,d.jsx)("span",{className:"block text-[14px] leading-[18px] font-medium",children:f.name}),(0,d.jsx)("span",{className:"block truncate text-[12px] leading-[17px] text-muted-foreground",children:f.hint})]}),k?(0,d.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted-foreground",children:"already added"}):m?(0,d.jsxs)("span",{className:(0,W.cn)("flex shrink-0 items-center gap-1.5 font-mono text-[11px]",W.WAITING_INK),children:[(0,d.jsx)(g.CircleAlert,{className:"size-3"}),m]}):null,(0,d.jsx)("span",{className:(0,W.cn)("grid size-5 shrink-0 place-items-center rounded-full transition-colors",l?"bg-foreground text-background":"ring-1 ring-border/60 ring-inset"),children:l&&(0,d.jsx)(e.Check,{className:"size-3"})})]})},f.name)})})}function ab({picks:a,onCancel:b}){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(p.Button,{variant:"ghost",onClick:b,children:"Cancel"}),(0,d.jsxs)(p.Button,{loading:a.adding,disabled:0===a.wanted.length,onClick:a.submit,children:[(0,d.jsx)(j.Plus,{}),1===a.wanted.length?`Add ${a.wanted[0].name}`:`Add ${a.wanted.length} bots`]})]})}function ac({have:a,inks:b,onDone:c}){let e=_(a,b,c);return(0,d.jsxs)("div",{className:"flex min-h-full flex-col",children:[(0,d.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,d.jsxs)("div",{className:"px-8 pt-7 pb-1",children:[(0,d.jsx)("h3",{className:"text-[17px] font-medium tracking-tight",children:"Bots you can add"}),(0,d.jsx)("p",{className:"mt-1.5 max-w-lg text-[13px] leading-relaxed text-muted-foreground break-keep",children:"Each one is a starting point — rename it, re-prompt it, give it a model of its own. What a bot needs before it can work stands on its row; until then it runs on the app default model."})]}),(0,d.jsx)("div",{className:"px-8 pt-4",children:(0,d.jsx)(aa,{have:a,inks:b,picks:e})}),(0,d.jsxs)("div",{className:"mt-auto flex items-center gap-3 border-t border-border/60 px-8 py-4",children:[(0,d.jsx)("span",{className:"flex-1 font-mono text-[11px] text-muted-foreground",children:0===e.wanted.length?"nothing ticked":`${e.wanted.length} of ${e.addable.length} ticked`}),(0,d.jsx)(ab,{picks:e,onCancel:()=>c(null)})]})]})}function ad({have:a,inks:b,onDone:c}){let e=_(a,b,c);return(0,d.jsx)(L.SettingDialogContent,{title:"Bots you can add",description:"Each one is a starting point — rename it, re-prompt it, give it a model of its own. What a bot needs before it can work stands on its row.",footer:(0,d.jsx)(ab,{picks:e,onCancel:()=>c(null)}),children:(0,d.jsx)(aa,{have:a,inks:b,picks:e})})}function ae({missing:a,inks:b,have:c,onDone:e}){return(0,d.jsxs)("button",{type:"button",title:"Ready-made bots","aria-label":`Ready-made bots, ${a.length} on offer`,onClick:()=>t.notify.component({className:"sm:max-w-xl",renderer:({close:a})=>(0,d.jsx)(ad,{have:c,inks:b,onDone:b=>{a(),e(b)}})}),className:"flex shrink-0 items-center gap-1 rounded-md px-1.5 py-1 text-muted-foreground outline-none transition-colors hover:bg-muted/60 hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",children:[(0,d.jsx)(j.Plus,{className:"size-3 shrink-0"}),a.map((c,e)=>(0,d.jsx)("span",{className:(0,W.cn)("block",e>0&&"-ml-1.5"),style:{zIndex:a.length-e},children:(0,d.jsx)(I.BotMark,{size:20,...af(c.name,c.icon),color:b[H.BOT_SEEDS.indexOf(c)],notify:!1})},c.name))]})}function af(a,b){return{seed:a||"bot",color:b?.color,shape:b?.shape,outline:b?.outline}}function ag({bot:a,jobs:b,onDone:c,onCancel:e}){let[f,g]=(0,R.useObjectState)(()=>({name:a?.name??"",description:a?.description??"",systemPrompt:a?.systemPrompt??"",icon:a?.icon??(0,G.randomBotIcon)(),provider:a?.provider??null,model:a?.model??"",compactAt:a?.compactAt?String(a.compactAt/1e3):"",toolIds:a?.tools.map(a=>a.id)??[]})),{name:h,description:i,systemPrompt:j,icon:l,provider:m,model:q,compactAt:u,toolIds:v}=f,[C,E]=(0,n.useState)(!!a?.compactAt),H=(0,V.useServerRoute)(o.queryKey.modelCatalog),I=(a,b)=>a&&b.trim()?(0,A.contextWindowOf)(a,b.trim(),H.data):null,J=I(m,q),K=m&&q.trim()?ar(J)/1e3:null,L=C?u:null===K?"":String(K),[M]=(0,U.useServerAction)(F.updateBotAction,{onOk:()=>(0,V.revalidate)(o.queryKey.bot)}),N=b=>{a&&M(a.name,b)},[O,P,,Q]=(0,U.useServerAction)(B.createBotAction,{errorMessage:!1,okMessage:"Bot created",onOk:a=>{(0,V.revalidate)(o.queryKey.bot),c(a.name)}}),[S,W]=(0,U.useServerAction)(D.deleteBotAction,{okMessage:"Bot deleted",onOk:()=>{(0,V.revalidate)(o.queryKey.bot),c(null)}}),X=h.trim()&&i.trim()&&m&&q.trim()&&!P,Y=async()=>{!a||await t.notify.confirm({title:`Delete ${a.name}?`,description:"The agent can no longer hand work to it.",okText:"Delete",destructive:!0})&&S(a.name)};return(0,d.jsxs)("div",{className:"flex min-h-full flex-col",children:[(0,d.jsxs)("div",{className:"flex h-11 shrink-0 items-center gap-2 border-b border-border/60 px-4",children:[(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[11px] text-muted-foreground",children:a?a.name:"New bot"}),a&&(0,d.jsxs)(d.Fragment,{children:[a.disabled&&(0,d.jsx)("span",{className:"font-mono text-[10px] text-muted-foreground",children:"off"}),(0,d.jsx)(w.Switch,{checked:!a.disabled,onCheckedChange:a=>N({disabled:!a}),"aria-label":`${a.name} on or off`,className:"mr-1 shrink-0"}),(0,d.jsx)(p.Button,{size:"icon-sm",variant:"ghost",loading:W,"aria-label":"Delete this bot",onClick:Y,className:"text-muted-foreground hover:text-destructive",children:(0,d.jsx)(k.Trash2,{})})]})]}),(0,d.jsxs)("div",{className:"flex-1 space-y-5 p-6",children:[(0,d.jsx)(an,{name:h,icon:l,onChange:a=>{g({icon:a}),N({icon:a})}}),(0,d.jsxs)(al,{label:"Name",children:[a?(0,d.jsx)("p",{className:"truncate text-sm leading-8 font-medium",children:a.name}):(0,d.jsx)(r.Input,{value:h,onChange:a=>g({name:a.target.value}),placeholder:"researcher",spellCheck:!1,maxLength:T.COMMON_VALIDATE.name.max,autoFocus:!0}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:a?`What ${y.APP_NAME} calls it when she hands it work. Fixed once the bot is made.`:`What ${y.APP_NAME} calls it when she hands it work. Up to ${T.COMMON_VALIDATE.name.max} characters, and it can’t be renamed later.`})]}),(0,d.jsxs)(al,{label:"Description",children:[(0,d.jsx)(r.Input,{value:i,onChange:a=>g({description:a.target.value}),onBlur:()=>{let b=i.trim();a&&b&&b!==a.description&&N({description:b})},placeholder:"Searches the web and answers",maxLength:T.COMMON_VALIDATE.description.max}),(0,d.jsxs)("p",{className:"text-xs text-muted-foreground",children:["The one line ",y.APP_NAME," and the other bots read when they decide who gets a job."]})]}),(0,d.jsx)(al,{label:"Runs on",children:(0,d.jsx)(z.ModelPicker,{provider:m,model:q,onChange:a=>{g({provider:a.provider,model:a.model}),E(!1),a.model&&N({...a,compactAt:ar(I(a.provider,a.model))})}})}),(0,d.jsxs)(al,{label:"Compacts at",children:[(0,d.jsxs)(s.InputGroup,{children:[(0,d.jsx)(s.InputGroupInput,{inputMode:"decimal",value:L,placeholder:q.trim()?"":"Pick a model first",onChange:a=>{E(!0),g({compactAt:a.target.value})},onBlur:()=>{if(!C)return;let a=ak(u);null===a?E(!1):g({compactAt:String(a/1e3)}),N({compactAt:a??(q.trim()?ar(J):null)})}}),(0,d.jsx)(s.InputGroupAddon,{align:"inline-end",children:(0,d.jsx)(s.InputGroupText,{children:"k tokens"})})]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:function(a){if(!a.model)return"Filled in from the model once one is picked.";let b=ar(a.window),c="A job summarizes itself here and carries on.";return null!==a.shown&&a.shown!==b?`Set by hand. Picking a model fills in its own again. ${c}`:a.window?`${Math.round(100*y.BOT_RUN.compactHeadroom)}% of this model's ${(a.window/1e3).toLocaleString()}k context window. ${c}`:`This model's context window is unknown, so the default is filled in. ${c}`}({model:q.trim(),window:J,shown:ak(L)})})]}),(0,d.jsx)(al,{label:"Tools",children:(0,d.jsx)(ao,{selected:v,onChange:a=>{g({toolIds:a}),N({toolIds:a})}})}),(0,d.jsxs)(al,{label:"Prompt",children:[(0,d.jsx)(x.Textarea,{value:j,onChange:a=>g({systemPrompt:a.target.value}),onBlur:()=>{let b=j.trim();a&&b!==(a.systemPrompt??"")&&N({systemPrompt:b})},placeholder:`How it should work (optional). e.g.
2
- Search the web, answer with a short summary and links.`,maxLength:T.COMMON_VALIDATE.prompt.max,className:"max-h-48 min-h-24 resize-none overflow-y-auto text-sm"}),j.length>0&&(0,d.jsxs)("p",{className:"text-right font-mono text-[10px] text-muted-foreground",children:[j.length,"/",T.COMMON_VALIDATE.prompt.max]})]}),a&&(0,d.jsx)(ah,{bot:a.name}),a&&(0,d.jsx)(am,{jobs:b}),!a&&(0,d.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-1",children:[(0,d.jsx)(p.Button,{variant:"ghost",onClick:e,children:"Cancel"}),(0,d.jsx)(p.Button,{loading:P,disabled:!X,onClick:()=>{X&&m&&O({name:h.trim(),description:i.trim(),systemPrompt:j.trim()||void 0,icon:l,provider:m,model:q.trim(),compactAt:C?ak(u):ar(J),toolIds:v})},children:"Create"})]}),Q&&(0,d.jsx)("p",{className:"font-mono text-xs text-destructive",children:Q})]})]})}function ah({bot:a}){let b=o.queryKey.botMemoryFiles(a),{data:c,isLoading:e}=(0,V.useServerRoute)(b),[g,i]=(0,n.useState)(null),[j]=(0,U.useServerAction)(Q.openFileAction),[l,m]=(0,U.useServerAction)(P.deleteWorkspaceFileAction,{okMessage:"File deleted",onOk:()=>{i(null),(0,V.revalidate)(b),(0,V.revalidate)(o.queryKey.workspace)}}),q=async b=>{await t.notify.confirm({title:`Delete ${b.file}?`,description:`It is deleted from disk for good, and ${a}'s next job starts without it.`,okText:"Delete",destructive:!0})&&l(b.path)};return(0,d.jsxs)("div",{className:"pt-1",children:[(0,d.jsxs)("div",{className:"flex h-6 items-center",children:[(0,d.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:"Memory"}),(0,d.jsx)("span",{className:"flex-1"}),c&&c.total>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"pr-1 font-mono text-[11px] text-muted-foreground tabular-nums",children:1===c.total?"1 file":`${c.total} files`}),(0,d.jsxs)("button",{type:"button",title:"Show in the file manager",onClick:()=>j(c.folder),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,d.jsx)(h.FolderOpen,{className:"size-3"}),"Folder"]})]})]}),e?(0,d.jsx)("div",{className:"flex h-9 items-center border-t border-border/60",children:(0,d.jsx)(v.Skeleton,{className:"h-3 w-56"})}):c?.entries.length?c.entries.map(a=>{let b=g===a.path;return(0,d.jsxs)("div",{className:"border-t border-border/60",children:[(0,d.jsxs)("button",{type:"button","aria-expanded":b,onClick:()=>i(b?null:a.path),className:"flex h-9 w-full items-center gap-3 text-left text-[13px] outline-none focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,d.jsx)("span",{className:(0,W.cn)("min-w-0 flex-1 truncate",b&&"font-medium"),children:a.line||a.file}),(0,d.jsx)("span",{className:"w-36 shrink-0 truncate font-mono text-[11px] text-muted-foreground",children:a.file}),(0,d.jsx)("span",{className:"w-28 shrink-0 text-right font-mono text-[11px] text-muted-foreground tabular-nums",children:(0,S.whenOf)(a.at)}),(0,d.jsx)(f.ChevronRight,{className:(0,W.cn)("size-3 shrink-0 text-muted-foreground transition-transform",b&&"rotate-90")})]}),b&&(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("div",{className:"max-h-96 min-w-0 flex-1 overflow-y-auto",children:(0,d.jsx)(ai,{path:a.path})}),(0,d.jsx)(p.Button,{size:"icon-sm",variant:"ghost","aria-label":`Delete ${a.file}`,loading:m,onClick:()=>q(a),className:"text-muted-foreground hover:text-destructive",children:(0,d.jsx)(k.Trash2,{})})]})]},a.path)}):(0,d.jsx)("p",{className:"py-2 text-[13px] text-muted-foreground",children:"Nothing kept yet."})]})}function ai({path:a}){let{content:b,failure:c,truncated:e}=(0,N.useFileText)(a);if(c)return(0,d.jsx)("p",{className:"pb-3 font-mono text-xs text-destructive",children:c});if(null===b)return(0,d.jsxs)("div",{className:"space-y-2 pb-3",children:[(0,d.jsx)(v.Skeleton,{className:"h-4 w-5/6"}),(0,d.jsx)(v.Skeleton,{className:"h-4 w-2/3"})]});let f=(0,O.viewKindOf)(a);return(0,d.jsx)(N.FileBody,{kind:f,content:"markdown"===f?aq(b):b,truncated:e,where:"inline"})}let aq=a=>a.replace(/^---\n[\s\S]*?\n---\n/,"").replace(/^\s*#[^\n]*\n?/,"");function aj({bot:a}){let{data:b,mutate:c}=(0,V.useServerRoute)(o.queryKey.botMemory),[e]=(0,U.useServerAction)(E.setBotMemoryOnAction,{onOk:()=>(0,V.revalidate)(o.queryKey.botMemory)}),f=a?a.tokens.input+a.tokens.output:0;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(L.SettingRailNote,{children:a?(0,d.jsxs)("span",{className:"font-mono text-[11px]",children:[a.name,a.disabled&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"px-1.5 opacity-50",children:"·"}),"off"]}),(0,d.jsx)("span",{className:"px-1.5 opacity-50",children:"·"}),(0,d.jsx)("span",{title:`in ${(0,W.formatCount)(a.tokens.input)} \xb7 out ${(0,W.formatCount)(a.tokens.output)}`,children:f>0?`${(0,W.formatCount)(f)} tokens`:"no tokens yet"}),(0,d.jsx)("span",{className:"px-1.5 opacity-50",children:"·"}),"since ",(0,S.whenOf)(a.createdAt)]}):"Becomes a bot once it has a name and a model"}),(0,d.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground",children:"Bots keep their own memory"}),(0,d.jsx)(w.Switch,{checked:b??!0,disabled:void 0===b,onCheckedChange:a=>{c(a,!1),e(a)},"aria-label":"Bots keep their own memory"})]})}function ak(a){let b=Number(a.replace(/[^0-9.]/g,""));return Number.isFinite(b)&&b>0?Math.round(1e3*b):null}let ar=a=>1e3*Math.round((0,A.compactAtFor)(a)/1e3);function al({label:a,children:b}){return(0,d.jsxs)("div",{className:"flex gap-3",children:[(0,d.jsx)("span",{className:"w-20 shrink-0 pt-2 font-mono text-xs text-muted-foreground",children:a}),(0,d.jsx)("div",{className:"min-w-0 flex-1 space-y-1.5",children:b})]})}function am({jobs:a}){return(0,d.jsxs)("div",{className:"pt-1",children:[(0,d.jsxs)("div",{className:"flex h-6 items-center",children:[(0,d.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:"Recent"}),(0,d.jsx)("span",{className:"flex-1"}),(0,d.jsxs)("button",{type:"button",onClick:()=>(0,M.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,d.jsx)(i.History,{className:"size-3"}),"History"]})]}),0===a.length?(0,d.jsx)("p",{className:"py-2 text-[13px] text-muted-foreground",children:"Nothing handed over yet."}):a.map(a=>{let b=function(a){switch(a.status){case"waiting":return{text:"waiting on you",tone:W.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"}}}(a);return(0,d.jsxs)("div",{className:"flex h-9 items-center gap-3 border-t border-border/60 text-[13px]",children:[(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate",children:a.label}),"running"===a.status?(0,d.jsx)(u.ShinyText,{text:b.text,className:"shrink-0 font-mono text-[11px]"}):(0,d.jsx)("span",{className:(0,W.cn)("shrink-0 font-mono text-[11px]",b.tone),children:b.text}),(0,d.jsx)("span",{className:"w-28 shrink-0 text-right font-mono text-[11px] text-muted-foreground tabular-nums",children:(0,S.whenOf)(a.updatedAt)})]},a.id)})]})}function an({name:a,icon:b,onChange:c}){return(0,d.jsxs)("div",{className:"flex flex-col items-center gap-4 pt-3 pb-2",children:[(0,d.jsx)(I.BotMark,{size:112,...af(a,b),className:"shrink-0"}),(0,d.jsx)(J.MarkPalette,{color:b.color,themePicked:b.color===X.MARK_SYSTEM,onTheme:()=>c({...b,color:X.MARK_SYSTEM}),onPick:a=>c({...b,color:b.color===a?void 0:a})}),(0,d.jsxs)("div",{className:"flex gap-1",children:[X.MARK_SHAPES.map(a=>(0,d.jsx)("button",{type:"button",onClick:()=>c({...b,shape:b.shape===a?void 0:a}),className:(0,W.cn)("rounded-md px-2 py-1 font-mono text-[11px] capitalize transition-colors",b.shape===a?"bg-foreground text-background":"bg-muted text-muted-foreground hover:text-foreground"),children:a},a)),(0,d.jsx)("span",{className:"mx-1 w-px self-stretch bg-border/60"}),(0,d.jsx)("button",{type:"button",onClick:()=>c({...b,outline:!b.outline||void 0}),className:(0,W.cn)("rounded-md px-2 py-1 font-mono text-[11px] transition-colors",b.outline?"bg-foreground text-background":"bg-muted text-muted-foreground hover:text-foreground"),children:"outline"})]})]})}function ao({selected:a,onChange:b}){let{data:c=[]}=(0,V.useServerRoute)(o.queryKey.mcpTools),[f,g]=(0,n.useState)(!1),h=a.length>=G.MAX_PINNED_TOOLS,i=[...new Set(c.map(a=>a.serverName))],j=a.map(a=>c.find(b=>b.id===a)).filter(a=>!!a),k=f?j:j.slice(0,4),r=j.length-k.length,s=c=>b(a.includes(c)?a.filter(a=>a!==c):[...a,c]);return 0===c.length?(0,d.jsx)("p",{className:"pt-1.5 text-xs text-muted-foreground",children:"Nothing to pin — connect an MCP server first (Settings › Connectors)."}):(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,d.jsx)(p.Button,{size:"icon-sm",variant:f?"secondary":"outline",onClick:()=>g(!f),"aria-label":"Pick tools",className:"border-dashed",children:(0,d.jsx)(l.Wrench,{})}),k.map(a=>(0,d.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:[a.name,(0,d.jsx)("button",{type:"button","aria-label":`Unpin ${a.name}`,onClick:()=>s(a.id),className:"rounded-full p-0.5 text-muted-foreground transition-colors hover:bg-foreground/10 hover:text-foreground",children:(0,d.jsx)(m.X,{className:"size-3"})})]},a.id)),r>0&&(0,d.jsxs)("button",{type:"button",onClick:()=>g(!0),className:"rounded-full bg-muted px-2.5 py-1 font-mono text-[11px] text-muted-foreground transition-colors hover:text-foreground",children:["+",r]}),0===j.length&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:"Loaded from the start — everything else stays searchable"}),(0,d.jsx)("span",{className:"flex-1"}),(0,d.jsxs)("span",{className:(0,W.cn)("font-mono text-[11px] text-muted-foreground",h&&"text-foreground"),children:[a.length,"/",G.MAX_PINNED_TOOLS]})]}),f&&(0,d.jsxs)(q.Command,{className:"rounded-lg border border-input",children:[(0,d.jsx)(q.CommandInput,{placeholder:"Search tools"}),(0,d.jsxs)(q.CommandList,{className:"max-h-44",children:[(0,d.jsx)(q.CommandEmpty,{children:"Nothing matches"}),i.map(b=>(0,d.jsx)(q.CommandGroup,{heading:b,children:c.filter(a=>a.serverName===b).map(b=>{let c=a.includes(b.id);return(0,d.jsxs)(q.CommandItem,{value:`${b.serverName}/${b.name}`,disabled:!c&&h,onSelect:()=>s(b.id),children:[(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-xs",children:b.name}),c&&(0,d.jsx)(e.Check,{className:"size-3.5 shrink-0"})]},b.id)})},b))]})]})]})}a.s(["BotSetting",0,function(){let{data:a,isLoading:b,error:c}=(0,V.useServerRoute)(o.queryKey.bot),e=a??[],{data:f}=(0,V.useServerRoute)(o.queryKey.taskHistory(null)),g=f??[],[h,i]=(0,n.useState)(null),[k]=(0,n.useState)(H.rollSeedColors);if(b)return(0,d.jsx)(L.SettingPanesSkeleton,{});if(c)return(0,d.jsx)(L.SettingError,{message:c.message});let l=h===ap,m=e.filter(a=>!a.disabled).length,q=new Set(e.map(a=>a.name)),r=H.BOT_SEEDS.filter(a=>!q.has(a.name)),s=l?null:e.find(a=>a.name===h)??e[0]??null;return(0,d.jsx)(L.SettingPanes,{footer:0===e.length?null:(0,d.jsx)(aj,{bot:s}),left:(0,d.jsxs)("div",{className:"flex flex-col py-2",children:[(0,d.jsxs)("div",{className:"mx-2 mb-1 flex items-center gap-1",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>i(ap),className:(0,W.cn)("flex flex-1 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",l?"bg-secondary text-foreground":"text-muted-foreground hover:bg-muted/60 hover:text-foreground"),children:[(0,d.jsx)(j.Plus,{className:"size-3.5 shrink-0"}),"New bot"]}),e.length>0&&r.length>0&&(0,d.jsx)(ae,{missing:r,inks:k,have:q,onDone:a=>i(a)})]}),e.map(a=>(0,d.jsx)(Z,{bot:a,job:g.find(b=>b.bot===a.name)??null,active:!l&&a.name===s?.name,onPick:()=>i(a.name)},a.name)),m>y.PROMPT_CROWDED.bots&&(0,d.jsxs)(L.SettingNote,{className:"mx-3 mt-2 leading-relaxed",children:[m," bots are on. Each is a line in every prompt, and one more for Thursday to choose between."]})]}),right:l?(0,d.jsx)(ag,{jobs:[],onDone:a=>i(a),onCancel:()=>i(null)},"new"):s?(0,d.jsx)(ag,{bot:s,jobs:g.filter(a=>a.bot===s.name).slice(0,3),onDone:()=>i(null)},s.name):r.length>0?(0,d.jsx)(ac,{have:q,inks:k,onDone:a=>i(a)}):(0,d.jsxs)("div",{className:"space-y-4 p-8",children:[(0,d.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,d.jsxs)(p.Button,{variant:"outline",onClick:()=>i(ap),children:[(0,d.jsx)(j.Plus,{}),"New bot"]})]})})}]),c()}catch(a){c(a)}},!1),652006,a=>{"use strict";var b=a.i(405050);let c=(0,b.createServerReference)("7ffed7b5e60bbcaf20bf9d4e80219a52cbf8e96ebb",b.callServer,void 0,b.findSourceMapURL,"deleteBotAction");a.s(["deleteBotAction",0,c])},310305,a=>{"use strict";var b=a.i(405050);let c=(0,b.createServerReference)("7f50fd90d67f93e3cc1ef2f4549305a687fdfd71e1",b.callServer,void 0,b.findSourceMapURL,"setBotMemoryOnAction");a.s(["setBotMemoryOnAction",0,c])},522618,a=>{"use strict";var b=a.i(405050);let c=(0,b.createServerReference)("7fb76f58c3bde6fe281cdcec4c154f5f9ba480cb29",b.callServer,void 0,b.findSourceMapURL,"updateBotAction");a.s(["updateBotAction",0,c])},44358,a=>{"use strict";var b=a.i(405050);let c=(0,b.createServerReference)("7f92929bc39d14cb18c0edd6f885396687b8da365f",b.callServer,void 0,b.findSourceMapURL,"createBotAction");a.s(["createBotAction",0,c])},793817,a=>{"use strict";var b=a.i(164831);let c={name:"circle-alert",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],aliases:["alert-circle"]};c.node;let d=(0,b.default)(c);a.s(["CircleAlert",0,d],793817)}];
1
+ module.exports=[262276,a=>{"use strict";var b=a.i(187924),c=a.i(400187);a.i(340695);var d=a.i(205522);a.i(546893);var e=a.i(497895);let f=(0,c.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"}});(0,c.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"}}),a.s(["InputGroup",0,function({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"input-group",role:"group",className:(0,e.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",a),...c})},"InputGroupAddon",0,function({className:a,align:c="inline-start",...d}){return(0,b.jsx)("div",{role:"group","data-slot":"input-group-addon","data-align":c,className:(0,e.cn)(f({align:c}),a),onClick:a=>{a.target.closest("button")||a.currentTarget.parentElement?.querySelector("input")?.focus()},...d})},"InputGroupInput",0,function({className:a,...c}){return(0,b.jsx)(d.Input,{"data-slot":"input-group-control",className:(0,e.cn)("flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent",a),...c})},"InputGroupText",0,function({className:a,...c}){return(0,b.jsx)("span",{className:(0,e.cn)("flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",a),...c})}])},329154,a=>{"use strict";var b,c,d,e,f,g,h,i,j=a.i(187924),k=/[\\\/_+.#"@\[\(\{&]/,l=/[\\\/_+.#"@\[\(\{&]/g,m=/[\s-]/,n=/[\s-]/g;function o(a){return a.toLowerCase().replace(n," ")}var p=a.i(572131),q=Object.defineProperty,r=(a,b)=>q(a,"name",{value:b,configurable:!0});function s(a,b,{checkForDefaultPrevented:c=!0}={}){return r(function(d){if(a?.(d),!1===c||!d||!d.defaultPrevented)return b?.(d)},"handleEvent")}function t(a){throw Error("Cannot access document outside of the DOM")}function u(a){return"IFRAME"===a.tagName}r(s,"composeEventHandlers"),r(function(a){throw Error("Cannot access window outside of the DOM")},"getOwnerWindow"),r(t,"getOwnerDocument"),r(function a(b,c=!1){let{activeElement:d}=t(b);if(!d?.nodeName)return null;if(u(d)&&d.contentDocument)return a(d.contentDocument.body,c);if(c){let a=d.getAttribute("aria-activedescendant");if(a){let b=t(d).getElementById(a);if(b)return b}}return d},"getActiveElement"),r(u,"isFrame");var v=Object.defineProperty,w=(a,b)=>v(a,"name",{value:b,configurable:!0});function x(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}function y(...a){return b=>{let c=!1,d=a.map(a=>{let d=x(a,b);return c||"function"!=typeof d||(c=!0),d});if(c)return()=>{for(let b=0;b<d.length;b++){let c=d[b];"function"==typeof c?c():x(a[b],null)}}}}function z(...a){return p.useCallback(y(...a),a)}w(x,"setRef"),w(y,"composeRefs"),w(z,"useComposedRefs");var A=Object.defineProperty,B=(a,b)=>A(a,"name",{value:b,configurable:!0});function C(a,b=[]){let c=[];function d(b,d){let e=p.createContext(d);e.displayName=b+"Context";let f=c.length;c=[...c,d];let g=B(b=>{let{scope:c,children:d,...g}=b,h=c?.[a]?.[f]||e,i=p.useMemo(()=>g,Object.values(g));return(0,j.jsx)(h.Provider,{value:i,children:d})},"Provider");function h(c,g,i={}){let{optional:j=!1}=i,k=g?.[a]?.[f]||e,l=p.useContext(k);if(l)return l;if(void 0!==d)return d;if(!j)throw Error(`\`${c}\` must be used within \`${b}\``)}return g.displayName=b+"Provider",B(h,"useContext"),[g,h]}B(d,"createContext");let e=B(()=>{let b=c.map(a=>p.createContext(a));return B(function(c){let d=c?.[a]||b;return p.useMemo(()=>({[`__scope${a}`]:{...c,[a]:d}}),[c,d])},"useScope")},"createScope");return e.scopeName=a,[d,D(e,...b)]}function D(...a){let b=a[0];if(1===a.length)return b;let c=B(()=>{let c=a.map(a=>({useScope:a(),scopeName:a.scopeName}));return B(function(a){let d=c.reduce((b,{useScope:c,scopeName:d})=>{let e=c(a)[`__scope${d}`];return{...b,...e}},{});return p.useMemo(()=>({[`__scope${b.scopeName}`]:d}),[d])},"useComposedScopes")},"createScope");return c.scopeName=b.scopeName,c}B(function(a,b){let c=p.createContext(b);c.displayName=a+"Context";let d=B(a=>{let{children:b,...d}=a,e=p.useMemo(()=>d,Object.values(d));return(0,j.jsx)(c.Provider,{value:e,children:b})},"Provider");function e(d,f={}){let{optional:g=!1}=f,h=p.useContext(c);if(h)return h;if(void 0!==b)return b;if(!g)throw Error(`\`${d}\` must be used within \`${a}\``)}return d.displayName=a+"Provider",B(e,"useContext"),[d,e]},"createContext"),B(C,"createContextScope"),B(D,"composeContextScopes");var E=globalThis?.document?p.useLayoutEffect:()=>{},F=Object.defineProperty,G=p[" useId ".trim().toString()]||(()=>void 0),H=0;function I(a){let[b,c]=p.useState(G());return E(()=>{a||c(a=>a??String(H++))},[a]),a||(b?`radix-${b}`:"")}F(I,"name",{value:"useId",configurable:!0});var J=Object.defineProperty,K=p[" useEffectEvent ".trim().toString()],L=p[" useInsertionEffect ".trim().toString()];function M(a){if("function"==typeof K)return K(a);let b=p.useRef(()=>{throw Error("Cannot call an event handler while rendering.")});return"function"==typeof L?L(()=>{b.current=a}):E(()=>{b.current=a}),p.useMemo(()=>(...a)=>b.current?.(...a),[])}J(M,"name",{value:"useEffectEvent",configurable:!0});var N=Object.defineProperty,O=(a,b)=>N(a,"name",{value:b,configurable:!0}),P=p[" useInsertionEffect ".trim().toString()]||E;function Q({prop:a,defaultProp:b,onChange:c=O(()=>{},"onChange"),caller:d}){let[e,f,g]=R({defaultProp:b,onChange:c}),h=void 0!==a,i=h?a:e;return[i,p.useCallback(b=>{if(h){let c=S(b)?b(a):b;c!==a&&g.current?.(c)}else f(b)},[h,a,f,g])]}function R({defaultProp:a,onChange:b}){let[c,d]=p.useState(a),e=p.useRef(c),f=p.useRef(b);return P(()=>{f.current=b},[b]),p.useEffect(()=>{e.current!==c&&(f.current?.(c),e.current=c)},[c,e]),[c,d,f]}function S(a){return"function"==typeof a}O(Q,"useControllableState"),O(R,"useUncontrolledState"),O(S,"isFunction");var T=Symbol("RADIX:SYNC_STATE");O(function(a,b,c,d){let{prop:e,defaultProp:f,onChange:g,caller:h}=b,i=void 0!==e,j=M(g),k=[{...c,state:f}];d&&k.push(d);let[l,m]=p.useReducer((b,c)=>{if(c.type===T)return{...b,state:c.state};let d=a(b,c);return i&&!Object.is(d.state,b.state)&&j(d.state),d},...k),n=l.state,o=p.useRef(n);p.useEffect(()=>{o.current!==n&&(o.current=n,i||j(n))},[n,o,i]);let q=p.useMemo(()=>void 0!==e?{...l,state:e}:l,[l,e]);return p.useEffect(()=>{i&&!Object.is(e,l.state)&&m({type:T,state:e})},[e,l.state,i]),[q,m]},"useControllableStateReducer");var U=a.i(935112),V=Object.defineProperty,W=(a,b)=>V(a,"name",{value:b,configurable:!0});function X(a){let b=p.forwardRef((b,c)=>{let{children:d,...e}=b,f=null,g=!1,h=[];ac(d)&&"function"==typeof ag&&(d=ag(d._payload)),p.Children.forEach(d,a=>{if(aa(a)){g=!0;let b="child"in a.props?a.props.child:a.props.children;ac(b)&&"function"==typeof ag&&(b=ag(b._payload)),f=Z(a,b),h.push(f?.props?.children)}else h.push(a)}),f?f=p.cloneElement(f,void 0,h):!g&&1===p.Children.count(d)&&p.isValidElement(d)&&(f=d);let i=f?_(f):void 0,j=z(c,i);if(!f){if(d||0===d)throw Error(g?af(a):ae(a));return d}let k=$(e,f.props??{});return f.type!==p.Fragment&&(k.ref=c?j:i),p.cloneElement(f,k)});return b.displayName=`${a}.Slot`,b}W(X,"createSlot");var Y=Symbol.for("radix.slottable");W(function(a){let b=W(a=>"child"in a?a.children(a.child):a.children,"Slottable");return b.displayName=`${a}.Slottable`,b.__radixId=Y,b},"createSlottable");var Z=W((a,b)=>{if("child"in a.props){let b=a.props.child;return p.isValidElement(b)?p.cloneElement(b,void 0,a.props.children(b.props.children)):null}return p.isValidElement(b)?b:null},"getSlottableElementFromSlottable");function $(a,b){let c={...b};for(let d in b){let e=a[d],f=b[d];/^on[A-Z]/.test(d)?e&&f?c[d]=(...a)=>{let b=f(...a);return e(...a),b}:e&&(c[d]=e):"style"===d?c[d]={...e,...f}:"className"===d&&(c[d]=[e,f].filter(Boolean).join(" "))}return{...a,...c}}function _(a){let b=Object.getOwnPropertyDescriptor(a.props,"ref")?.get,c=b&&"isReactWarning"in b&&b.isReactWarning;return c?a.ref:(c=(b=Object.getOwnPropertyDescriptor(a,"ref")?.get)&&"isReactWarning"in b&&b.isReactWarning)?a.props.ref:a.props.ref||a.ref}function aa(a){return p.isValidElement(a)&&"function"==typeof a.type&&"__radixId"in a.type&&a.type.__radixId===Y}W($,"mergeProps"),W(_,"getElementRef"),W(aa,"isSlottable");var ab=Symbol.for("react.lazy");function ac(a){return null!=a&&"object"==typeof a&&"$$typeof"in a&&a.$$typeof===ab&&"_payload"in a&&ad(a._payload)}function ad(a){return"object"==typeof a&&null!==a&&"then"in a}W(ac,"isLazyComponent"),W(ad,"isPromiseLike");var ae=W(a=>`${a} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,"createSlotError"),af=W(a=>`${a} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,"createSlottableError"),ag=p[" use ".trim().toString()],ah=Object.defineProperty,ai=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((a,b)=>{let c=X(`Primitive.${b}`),d=p.forwardRef((a,d)=>{let{asChild:e,...f}=a;return(0,j.jsx)(e?c:b,{...f,ref:d})});return d.displayName=`Primitive.${b}`,{...a,[b]:d}},{});function aj(a,b){a&&U.flushSync(()=>a.dispatchEvent(b))}function ak(a){let b=p.useRef(a);return p.useEffect(()=>{b.current=a}),p.useMemo(()=>(...a)=>b.current?.(...a),[])}ah(aj,"name",{value:"dispatchDiscreteCustomEvent",configurable:!0}),(0,Object.defineProperty)(ak,"name",{value:"useCallbackRef",configurable:!0});var al=Object.defineProperty,am=(a,b)=>al(a,"name",{value:b,configurable:!0}),an="dismissableLayer.update",ao=p.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),ap=p.forwardRef(am(function(a,b){let{disableOutsidePointerEvents:c=!1,deferPointerDownOutside:d=!1,onEscapeKeyDown:e,onPointerDownOutside:f,onFocusOutside:g,onInteractOutside:i,onDismiss:k,...l}=a,m=p.useContext(ao),[n,o]=p.useState(null),q=n?.ownerDocument??globalThis?.document,[,r]=p.useState({}),t=z(b,o),u=Array.from(m.layers),[v]=[...m.layersWithOutsidePointerEventsDisabled].slice(-1),w=v?u.indexOf(v):-1,x=n?u.indexOf(n):-1,y=m.layersWithOutsidePointerEventsDisabled.size>0,A=x>=w,B=p.useRef(!1),C=as(a=>{f?.(a),i?.(a),a.defaultPrevented||k?.()},{ownerDocument:q,deferPointerDownOutside:d,isDeferredPointerDownOutsideRef:B,dismissableSurfaces:m.dismissableSurfaces,shouldHandlePointerDownOutside:p.useCallback(a=>{if(!(a instanceof Node))return!1;let b=[...m.branches].some(b=>b.contains(a));return A&&!b},[m.branches,A])}),D=at(a=>{if(d&&B.current)return;let b=a.target;![...m.branches].some(a=>a.contains(b))&&(g?.(a),i?.(a),a.defaultPrevented||k?.())},q),E=!!n&&x===u.length-1,F=ak(a=>{"Escape"===a.key&&(e?.(a),!a.defaultPrevented&&k&&(a.preventDefault(),k()))});return p.useEffect(()=>{if(E)return q.addEventListener("keydown",F,{capture:!0}),()=>q.removeEventListener("keydown",F,{capture:!0})},[q,E,F]),p.useEffect(()=>{if(n)return c&&(0===m.layersWithOutsidePointerEventsDisabled.size&&(h=q.body.style.pointerEvents,q.body.style.pointerEvents="none"),m.layersWithOutsidePointerEventsDisabled.add(n)),m.layers.add(n),au(),()=>{c&&(m.layersWithOutsidePointerEventsDisabled.delete(n),0===m.layersWithOutsidePointerEventsDisabled.size&&(q.body.style.pointerEvents=h))}},[n,q,c,m]),p.useEffect(()=>()=>{n&&(m.layers.delete(n),m.layersWithOutsidePointerEventsDisabled.delete(n),au())},[n,m]),p.useEffect(()=>{let a=am(()=>r({}),"handleUpdate");return document.addEventListener(an,a),()=>document.removeEventListener(an,a)},[]),(0,j.jsx)(ai.div,{...l,ref:t,style:{pointerEvents:y?A?"auto":"none":void 0,...a.style},onFocusCapture:s(a.onFocusCapture,D.onFocusCapture),onBlurCapture:s(a.onBlurCapture,D.onBlurCapture),onPointerDownCapture:s(a.onPointerDownCapture,C.onPointerDownCapture)})},"DismissableLayer"));function aq(){let a=p.useContext(ao),[b,c]=p.useState(null);return p.useEffect(()=>{if(b)return a.dismissableSurfaces.add(b),()=>{a.dismissableSurfaces.delete(b)}},[b,a.dismissableSurfaces]),c}am(aq,"useDismissableLayerSurface");var ar=am(()=>!0,"IS_TRUE");function as(a,b){let{ownerDocument:c=globalThis?.document,deferPointerDownOutside:d=!1,isDeferredPointerDownOutsideRef:e,dismissableSurfaces:f,shouldHandlePointerDownOutside:g=ar}=b,h=ak(a),i=p.useRef(!1),j=p.useRef(!1),k=p.useRef(new Map),l=p.useRef(()=>{});return p.useEffect(()=>{function a(){j.current=!1,e.current=!1,k.current.clear()}function b(){return Array.from(k.current.values()).some(Boolean)}function m(a){if(!j.current)return;let b=a.target;b instanceof Node&&[...f].some(a=>a.contains(b))||k.current.set(a.type,!0),"click"===a.type&&window.setTimeout(()=>{j.current&&l.current()},0)}function n(a){j.current&&k.current.set(a.type,!1)}am(a,"resetOutsideInteraction"),am(b,"isOutsideInteractionIntercepted"),am(m,"handleInteractionCapture"),am(n,"handleInteractionBubble");let o=am(f=>{if(f.target&&!i.current){let m=function(){c.removeEventListener("click",l.current);let d=b();a(),d||av("dismissableLayer.pointerDownOutside",h,n,{discrete:!0})};if(am(m,"handleAndDispatchPointerDownOutsideEvent"),!g(f.target)){c.removeEventListener("click",l.current),a(),i.current=!1;return}let n={originalEvent:f};j.current=!0,e.current=d&&0===f.button,k.current.clear(),d&&0===f.button?(c.removeEventListener("click",l.current),l.current=m,c.addEventListener("click",l.current,{once:!0})):m()}else c.removeEventListener("click",l.current),a();i.current=!1},"handlePointerDown"),p=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(let a of p)c.addEventListener(a,m,!0),c.addEventListener(a,n);let q=window.setTimeout(()=>{c.addEventListener("pointerdown",o)},0);return()=>{for(let a of(window.clearTimeout(q),c.removeEventListener("pointerdown",o),c.removeEventListener("click",l.current),p))c.removeEventListener(a,m,!0),c.removeEventListener(a,n)}},[c,h,d,e,f,g]),{onPointerDownCapture:am(()=>i.current=!0,"onPointerDownCapture")}}function at(a,b=globalThis?.document){let c=ak(a),d=p.useRef(!1);return p.useEffect(()=>{let a=am(a=>{a.target&&!d.current&&av("dismissableLayer.focusOutside",c,{originalEvent:a},{discrete:!1})},"handleFocus");return b.addEventListener("focusin",a),()=>b.removeEventListener("focusin",a)},[b,c]),{onFocusCapture:am(()=>d.current=!0,"onFocusCapture"),onBlurCapture:am(()=>d.current=!1,"onBlurCapture")}}function au(){let a=new CustomEvent(an);document.dispatchEvent(a)}function av(a,b,c,{discrete:d}){let e=c.originalEvent.target,f=new CustomEvent(a,{bubbles:!1,cancelable:!0,detail:c});b&&e.addEventListener(a,b,{once:!0}),d?aj(e,f):e.dispatchEvent(f)}am(as,"usePointerDownOutside"),am(at,"useFocusOutside"),am(au,"dispatchUpdate"),am(av,"handleAndDispatchCustomEvent");var aw=Object.defineProperty,ax=(a,b)=>aw(a,"name",{value:b,configurable:!0}),ay="focusScope.autoFocusOnMount",az="focusScope.autoFocusOnUnmount",aA={bubbles:!1,cancelable:!0},aB=p.forwardRef(ax(function(a,b){let{loop:c=!1,trapped:d=!1,onMountAutoFocus:e,onUnmountAutoFocus:f,...g}=a,[h,i]=p.useState(null),k=ak(e),l=ak(f),m=p.useRef(null),n=z(b,i),o=p.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;p.useEffect(()=>{if(d){let a=function(a){if(o.paused||!h)return;let b=a.target;h.contains(b)?m.current=b:aI(m.current,{select:!0})},b=function(a){if(o.paused||!h)return;let b=a.relatedTarget;null!==b&&(h.contains(b)||aI(m.current,{select:!0}))},c=function(a){if(document.activeElement===document.body)for(let b of a)b.removedNodes.length>0&&aI(h)};ax(a,"handleFocusIn"),ax(b,"handleFocusOut"),ax(c,"handleMutations"),document.addEventListener("focusin",a),document.addEventListener("focusout",b);let d=new MutationObserver(c);return h&&d.observe(h,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",a),document.removeEventListener("focusout",b),d.disconnect()}}},[d,h,o.paused]),p.useEffect(()=>{if(h){aJ.add(o);let a=document.activeElement;if(!h.contains(a)){let b=new CustomEvent(ay,aA);h.addEventListener(ay,k),h.dispatchEvent(b),b.defaultPrevented||(aC(aM(aE(h)),{select:!0}),document.activeElement===a&&aI(h))}return()=>{h.removeEventListener(ay,k),setTimeout(()=>{let b=new CustomEvent(az,aA);h.addEventListener(az,l),h.dispatchEvent(b),b.defaultPrevented||aI(a??document.body,{select:!0}),h.removeEventListener(az,l),aJ.remove(o)},0)}}},[h,k,l,o]);let q=p.useCallback(a=>{if(!c&&!d||o.paused)return;let b="Tab"===a.key&&!a.altKey&&!a.ctrlKey&&!a.metaKey,e=document.activeElement;if(b&&e){let b=a.currentTarget,[d,f]=aD(b);d&&f?a.shiftKey||e!==f?a.shiftKey&&e===d&&(a.preventDefault(),c&&aI(f,{select:!0})):(a.preventDefault(),c&&aI(d,{select:!0})):e===b&&a.preventDefault()}},[c,d,o.paused]);return(0,j.jsx)(ai.div,{tabIndex:-1,...g,ref:n,onKeyDown:q})},"FocusScope"));function aC(a,{select:b=!1}={}){let c=document.activeElement;for(let d of a)if(aI(d,{select:b}),document.activeElement!==c)return}function aD(a){let b=aE(a);return[aF(b,a),aF(b.reverse(),a)]}function aE(a){let b=[],c=document.createTreeWalker(a,NodeFilter.SHOW_ELEMENT,{acceptNode:ax(a=>{let b="INPUT"===a.tagName&&"hidden"===a.type;return a.disabled||a.hidden||b?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},"acceptNode")});for(;c.nextNode();)b.push(c.currentNode);return b}function aF(a,b){let c="function"==typeof b.checkVisibility&&b.checkVisibility({checkVisibilityCSS:!0});for(let d of a)if(!(c?!d.checkVisibility({checkVisibilityCSS:!0}):aG(d,{upTo:b})))return d}function aG(a,{upTo:b}){if("hidden"===getComputedStyle(a).visibility)return!0;for(;a&&(void 0===b||a!==b);){if("none"===getComputedStyle(a).display)return!0;a=a.parentElement}return!1}function aH(a){return a instanceof HTMLInputElement&&"select"in a}function aI(a,{select:b=!1}={}){if(a&&a.focus){let c=document.activeElement;a.focus({preventScroll:!0}),a!==c&&aH(a)&&b&&a.select()}}ax(aC,"focusFirst"),ax(aD,"getTabbableEdges"),ax(aE,"getTabbableCandidates"),ax(aF,"findVisible"),ax(aG,"isHidden"),ax(aH,"isSelectableInput"),ax(aI,"focus");var aJ=aK();function aK(){let a=[];return{add(b){let c=a[0];b!==c&&c?.pause(),(a=aL(a,b)).unshift(b)},remove(b){a=aL(a,b),a[0]?.resume()}}}function aL(a,b){let c=[...a],d=c.indexOf(b);return -1!==d&&c.splice(d,1),c}function aM(a){return a.filter(a=>"A"!==a.tagName)}ax(aK,"createFocusScopesStack"),ax(aL,"arrayRemove"),ax(aM,"removeLinks");var aN=Object.defineProperty,aO=p.forwardRef(aN(function(a,b){let{container:c,...d}=a,[e,f]=p.useState(!1);E(()=>f(!0),[]);let g=c||e&&globalThis?.document?.body;return g?U.createPortal((0,j.jsx)(ai.div,{...d,ref:b}),g):null},"name",{value:"Portal",configurable:!0})),aP=Object.defineProperty,aQ=(a,b)=>aP(a,"name",{value:b,configurable:!0});function aR(a,b){return p.useReducer((a,c)=>b[a][c]??a,a)}aQ(aR,"useStateMachine");var aS=aQ(a=>{let{present:b,children:c}=a,d=aT(b),e="function"==typeof c?c({present:d.isPresent}):p.Children.only(c),f=aV(d.ref,aX(e));return"function"==typeof c||d.isPresent?p.cloneElement(e,{ref:f}):null},"Presence");function aT(a){let[b,c]=p.useState(),d=p.useRef(null),e=p.useRef(a),f=p.useRef("none"),g=p.useRef(void 0),[h,i]=aR(a?"mounted":"unmounted",{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return p.useEffect(()=>{"mounted"===h?(f.current=g.current??aW(d.current),g.current=void 0):f.current="none"},[h]),E(()=>{let b=d.current,c=e.current;if(c!==a){let d=f.current,h=aW(b);a?(g.current=h,i("MOUNT")):"none"===h||b?.display==="none"?i("UNMOUNT"):c&&d!==h?i("ANIMATION_OUT"):i("UNMOUNT"),e.current=a}},[a,i]),E(()=>{if(b){let a,c=b.ownerDocument.defaultView??window,g=aQ(f=>{let g=aW(d.current).includes(CSS.escape(f.animationName));if(f.target===b&&g&&(i("ANIMATION_END"),!e.current)){let d=b.style.animationFillMode;b.style.animationFillMode="forwards",a=c.setTimeout(()=>{"forwards"===b.style.animationFillMode&&(b.style.animationFillMode=d)})}},"handleAnimationEnd"),h=aQ(a=>{a.target===b&&(f.current=aW(d.current))},"handleAnimationStart");return b.addEventListener("animationstart",h),b.addEventListener("animationcancel",g),b.addEventListener("animationend",g),()=>{c.clearTimeout(a),b.removeEventListener("animationstart",h),b.removeEventListener("animationcancel",g),b.removeEventListener("animationend",g)}}i("ANIMATION_END")},[b,i]),{isPresent:["mounted","unmountSuspended"].includes(h),ref:p.useCallback(a=>{if(a){let b=getComputedStyle(a);d.current=b,g.current=aW(b)}else d.current=null;c(a)},[])}}function aU(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}function aV(...a){let b=p.useRef(a);return b.current=a,p.useCallback(a=>{let c=b.current,d=!1,e=c.map(b=>{let c=aU(b,a);return d||"function"!=typeof c||(d=!0),c});if(d)return()=>{for(let a=0;a<e.length;a++){let b=e[a];"function"==typeof b?b():aU(c[a],null)}}},[])}function aW(a){return a?.animationName||"none"}function aX(a){let b=Object.getOwnPropertyDescriptor(a.props,"ref")?.get,c=b&&"isReactWarning"in b&&b.isReactWarning;return c?a.ref:(c=(b=Object.getOwnPropertyDescriptor(a,"ref")?.get)&&"isReactWarning"in b&&b.isReactWarning)?a.props.ref:a.props.ref||a.ref}aQ(aT,"usePresence"),aQ(aU,"setRef"),aQ(aV,"useStableComposedRefs"),aQ(aW,"getAnimationName"),aQ(aX,"getElementRef");var aY=Object.defineProperty,aZ=(a,b)=>aY(a,"name",{value:b,configurable:!0}),a$=0,a_=null;function a0(){p.useEffect(()=>{a_||(a_={start:a1(),end:a1()});let{start:a,end:b}=a_;return document.body.firstElementChild!==a&&document.body.insertAdjacentElement("afterbegin",a),document.body.lastElementChild!==b&&document.body.insertAdjacentElement("beforeend",b),a$++,()=>{1===a$&&(a_?.start.remove(),a_?.end.remove(),a_=null),a$=Math.max(0,a$-1)}},[])}function a1(){let a=document.createElement("span");return a.setAttribute("data-radix-focus-guard",""),a.tabIndex=0,a.style.outline="none",a.style.opacity="0",a.style.position="fixed",a.style.pointerEvents="none",a}aZ(function(a){return a0(),a.children},"FocusGuards"),aZ(a0,"useFocusGuards"),aZ(a1,"createFocusGuard");var a2=function(){return(a2=Object.assign||function(a){for(var b,c=1,d=arguments.length;c<d;c++)for(var e in b=arguments[c])Object.prototype.hasOwnProperty.call(b,e)&&(a[e]=b[e]);return a}).apply(this,arguments)};function a3(a,b){var c={};for(var d in a)Object.prototype.hasOwnProperty.call(a,d)&&0>b.indexOf(d)&&(c[d]=a[d]);if(null!=a&&"function"==typeof Object.getOwnPropertySymbols)for(var e=0,d=Object.getOwnPropertySymbols(a);e<d.length;e++)0>b.indexOf(d[e])&&Object.prototype.propertyIsEnumerable.call(a,d[e])&&(c[d[e]]=a[d[e]]);return c}var a4=("function"==typeof SuppressedError&&SuppressedError,"right-scroll-bar-position"),a5="width-before-scroll-bar";function a6(a,b){return"function"==typeof a?a(b):a&&(a.current=b),a}var a7=p.useEffect,a8=new WeakMap,a9=(void 0===b&&(b={}),(void 0===c&&(c=function(a){return a}),d=[],e=!1,f={read:function(){if(e)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return d.length?d[d.length-1]:null},useMedium:function(a){var b=c(a,e);return d.push(b),function(){d=d.filter(function(a){return a!==b})}},assignSyncMedium:function(a){for(e=!0;d.length;){var b=d;d=[],b.forEach(a)}d={push:function(b){return a(b)},filter:function(){return d}}},assignMedium:function(a){e=!0;var b=[];if(d.length){var c=d;d=[],c.forEach(a),b=d}var f=function(){var c=b;b=[],c.forEach(a)},g=function(){return Promise.resolve().then(f)};g(),d={push:function(a){b.push(a),g()},filter:function(a){return b=b.filter(a),d}}}}).options=a2({async:!0,ssr:!1},b),f),ba=function(){},bb=p.forwardRef(function(a,b){var c,d,e,f,g=p.useRef(null),h=p.useState({onScrollCapture:ba,onWheelCapture:ba,onTouchMoveCapture:ba}),i=h[0],j=h[1],k=a.forwardProps,l=a.children,m=a.className,n=a.removeScrollBar,o=a.enabled,q=a.shards,r=a.sideCar,s=a.noRelative,t=a.noIsolation,u=a.inert,v=a.allowPinchZoom,w=a.as,x=a.gapMode,y=a3(a,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),z=(c=[g,b],d=function(a){return c.forEach(function(b){return a6(b,a)})},(e=(0,p.useState)(function(){return{value:null,callback:d,facade:{get current(){return e.value},set current(value){var a=e.value;a!==value&&(e.value=value,e.callback(value,a))}}}})[0]).callback=d,f=e.facade,a7(function(){var a=a8.get(f);if(a){var b=new Set(a),d=new Set(c),e=f.current;b.forEach(function(a){d.has(a)||a6(a,null)}),d.forEach(function(a){b.has(a)||a6(a,e)})}a8.set(f,c)},[c]),f),A=a2(a2({},y),i);return p.createElement(p.Fragment,null,o&&p.createElement(r,{sideCar:a9,removeScrollBar:n,shards:q,noRelative:s,noIsolation:t,inert:u,setCallbacks:j,allowPinchZoom:!!v,lockRef:g,gapMode:x}),k?p.cloneElement(p.Children.only(l),a2(a2({},A),{ref:z})):p.createElement(void 0===w?"div":w,a2({},A,{className:m,ref:z}),l))});bb.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},bb.classNames={fullWidth:a5,zeroRight:a4};var bc=function(a){var b=a.sideCar,c=a3(a,["sideCar"]);if(!b)throw Error("Sidecar: please provide `sideCar` property to import the right car");var d=b.read();if(!d)throw Error("Sidecar medium not found");return p.createElement(d,a2({},c))};bc.isSideCarExport=!0;var bd=function(){var a=0,b=null;return{add:function(c){if(0==a&&(b=function(){if(!document)return null;var a=document.createElement("style");a.type="text/css";var b=i||("u">typeof __webpack_nonce__?__webpack_nonce__:void 0);return b&&a.setAttribute("nonce",b),a}())){var d,e;(d=b).styleSheet?d.styleSheet.cssText=c:d.appendChild(document.createTextNode(c)),e=b,(document.head||document.getElementsByTagName("head")[0]).appendChild(e)}a++},remove:function(){--a||!b||(b.parentNode&&b.parentNode.removeChild(b),b=null)}}},be=function(){var a=bd();return function(b,c){p.useEffect(function(){return a.add(b),function(){a.remove()}},[b&&c])}},bf=function(){var a=be();return function(b){return a(b.styles,b.dynamic),null}},bg={left:0,top:0,right:0,gap:0},bh=bf(),bi="data-scroll-locked",bj=function(a,b,c,d){var e=a.left,f=a.top,g=a.right,h=a.gap;return void 0===c&&(c="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(d,";\n padding-right: ").concat(h,"px ").concat(d,";\n }\n body[").concat(bi,"] {\n overflow: hidden ").concat(d,";\n overscroll-behavior: contain;\n ").concat([b&&"position: relative ".concat(d,";"),"margin"===c&&"\n padding-left: ".concat(e,"px;\n padding-top: ").concat(f,"px;\n padding-right: ").concat(g,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(h,"px ").concat(d,";\n "),"padding"===c&&"padding-right: ".concat(h,"px ").concat(d,";")].filter(Boolean).join(""),"\n }\n \n .").concat(a4," {\n right: ").concat(h,"px ").concat(d,";\n }\n \n .").concat(a5," {\n margin-right: ").concat(h,"px ").concat(d,";\n }\n \n .").concat(a4," .").concat(a4," {\n right: 0 ").concat(d,";\n }\n \n .").concat(a5," .").concat(a5," {\n margin-right: 0 ").concat(d,";\n }\n \n body[").concat(bi,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(h,"px;\n }\n")},bk=function(){var a=parseInt(document.body.getAttribute(bi)||"0",10);return isFinite(a)?a:0},bl=function(){p.useEffect(function(){return document.body.setAttribute(bi,(bk()+1).toString()),function(){var a=bk()-1;a<=0?document.body.removeAttribute(bi):document.body.setAttribute(bi,a.toString())}},[])},bm=function(a){var b=a.noRelative,c=a.noImportant,d=a.gapMode,e=void 0===d?"margin":d;bl();var f=p.useMemo(function(){return void 0===e,bg},[e]);return p.createElement(bh,{styles:bj(f,!b,e,c?"":"!important")})},bn=function(a,b){if(!(a instanceof Element))return!1;var c=window.getComputedStyle(a);return"hidden"!==c[b]&&(c.overflowY!==c.overflowX||"TEXTAREA"===a.tagName||"visible"!==c[b])},bo=function(a,b){var c=b.ownerDocument,d=b;do{if("u">typeof ShadowRoot&&d instanceof ShadowRoot&&(d=d.host),bp(a,d)){var e=bq(a,d);if(e[1]>e[2])return!0}d=d.parentNode}while(d&&d!==c.body)return!1},bp=function(a,b){return"v"===a?bn(b,"overflowY"):bn(b,"overflowX")},bq=function(a,b){return"v"===a?[b.scrollTop,b.scrollHeight,b.clientHeight]:[b.scrollLeft,b.scrollWidth,b.clientWidth]},br=function(a,b,c,d,e){var f,g=(f=window.getComputedStyle(b).direction,"h"===a&&"rtl"===f?-1:1),h=g*d,i=c.target,j=b.contains(i),k=!1,l=h>0,m=0,n=0;do{if(!i)break;var o=bq(a,i),p=o[0],q=o[1]-o[2]-g*p;(p||q)&&bp(a,i)&&(m+=q,n+=p);var r=i.parentNode;i=r&&r.nodeType===Node.DOCUMENT_FRAGMENT_NODE?r.host:r}while(!j&&i!==document.body||j&&(b.contains(i)||b===i))return l&&(e&&1>Math.abs(m)||!e&&h>m)?k=!0:!l&&(e&&1>Math.abs(n)||!e&&-h>n)&&(k=!0),k},bs=function(a){return"changedTouches"in a?[a.changedTouches[0].clientX,a.changedTouches[0].clientY]:[0,0]},bt=function(a){return[a.deltaX,a.deltaY]},bu=function(a){return a&&"current"in a?a.current:a},bv=0,bw=[];let bx=(g=function(a){var b=p.useRef([]),c=p.useRef([0,0]),d=p.useRef(),e=p.useState(bv++)[0],f=p.useState(bf)[0],g=p.useRef(a);p.useEffect(function(){g.current=a},[a]),p.useEffect(function(){if(a.inert){document.body.classList.add("block-interactivity-".concat(e));var b=(function(a,b,c){if(c||2==arguments.length)for(var d,e=0,f=b.length;e<f;e++)!d&&e in b||(d||(d=Array.prototype.slice.call(b,0,e)),d[e]=b[e]);return a.concat(d||Array.prototype.slice.call(b))})([a.lockRef.current],(a.shards||[]).map(bu),!0).filter(Boolean);return b.forEach(function(a){return a.classList.add("allow-interactivity-".concat(e))}),function(){document.body.classList.remove("block-interactivity-".concat(e)),b.forEach(function(a){return a.classList.remove("allow-interactivity-".concat(e))})}}},[a.inert,a.lockRef.current,a.shards]);var h=p.useCallback(function(a,b){if("touches"in a&&2===a.touches.length||"wheel"===a.type&&a.ctrlKey)return!g.current.allowPinchZoom;var e,f=bs(a),h=c.current,i="deltaX"in a?a.deltaX:h[0]-f[0],j="deltaY"in a?a.deltaY:h[1]-f[1],k=a.target,l=Math.abs(i)>Math.abs(j)?"h":"v";if("touches"in a&&"h"===l&&"range"===k.type)return!1;var m=window.getSelection(),n=m&&m.anchorNode;if(n&&(n===k||n.contains(k)))return!1;var o=bo(l,k);if(!o)return!0;if(o?e=l:(e="v"===l?"h":"v",o=bo(l,k)),!o)return!1;if(!d.current&&"changedTouches"in a&&(i||j)&&(d.current=e),!e)return!0;var p=d.current||e;return br(p,b,a,"h"===p?i:j,!0)},[]),i=p.useCallback(function(a){if(bw.length&&bw[bw.length-1]===f){var c="deltaY"in a?bt(a):bs(a),d=b.current.filter(function(b){var d;return b.name===a.type&&(b.target===a.target||a.target===b.shadowParent)&&(d=b.delta,d[0]===c[0]&&d[1]===c[1])})[0];if(d&&d.should){a.cancelable&&a.preventDefault();return}if(!d){var e=(g.current.shards||[]).map(bu).filter(Boolean).filter(function(b){return b.contains(a.target)});(e.length>0?h(a,e[0]):!g.current.noIsolation)&&a.cancelable&&a.preventDefault()}}},[]),j=p.useCallback(function(a,c,d,e){var f={name:a,delta:c,target:d,should:e,shadowParent:function(a){for(var b=null;null!==a;)a instanceof ShadowRoot&&(b=a.host,a=a.host),a=a.parentNode;return b}(d)};b.current.push(f),setTimeout(function(){b.current=b.current.filter(function(a){return a!==f})},1)},[]),k=p.useCallback(function(a){c.current=bs(a),d.current=void 0},[]),l=p.useCallback(function(b){j(b.type,bt(b),b.target,h(b,a.lockRef.current))},[]),m=p.useCallback(function(b){j(b.type,bs(b),b.target,h(b,a.lockRef.current))},[]);p.useEffect(function(){return bw.push(f),a.setCallbacks({onScrollCapture:l,onWheelCapture:l,onTouchMoveCapture:m}),document.addEventListener("wheel",i,!1),document.addEventListener("touchmove",i,!1),document.addEventListener("touchstart",k,!1),function(){bw=bw.filter(function(a){return a!==f}),document.removeEventListener("wheel",i,!1),document.removeEventListener("touchmove",i,!1),document.removeEventListener("touchstart",k,!1)}},[]);var n=a.removeScrollBar,o=a.inert;return p.createElement(p.Fragment,null,o?p.createElement(f,{styles:"\n .block-interactivity-".concat(e," {pointer-events: none;}\n .allow-interactivity-").concat(e," {pointer-events: all;}\n")}):null,n?p.createElement(bm,{noRelative:a.noRelative,gapMode:a.gapMode}):null)},a9.useMedium(g),bc);var by=p.forwardRef(function(a,b){return p.createElement(bb,a2({},a,{ref:b,sideCar:bx}))});by.classNames=bb.classNames;var bz=new WeakMap,bA=new WeakMap,bB={},bC=0,bD=function(a){return a&&(a.host||bD(a.parentNode))},bE=function(a,b,c,d){var e=(Array.isArray(a)?a:[a]).map(function(a){if(b.contains(a))return a;var c=bD(a);return c&&b.contains(c)?c:(console.error("aria-hidden",a,"in not contained inside",b,". Doing nothing"),null)}).filter(function(a){return!!a});bB[c]||(bB[c]=new WeakMap);var f=bB[c],g=[],h=new Set,i=new Set(e),j=function(a){!a||h.has(a)||(h.add(a),j(a.parentNode))};e.forEach(j);var k=function(a){!a||i.has(a)||Array.prototype.forEach.call(a.children,function(a){if(h.has(a))k(a);else try{var b=a.getAttribute(d),e=null!==b&&"false"!==b,i=(bz.get(a)||0)+1,j=(f.get(a)||0)+1;bz.set(a,i),f.set(a,j),g.push(a),1===i&&e&&bA.set(a,!0),1===j&&a.setAttribute(c,"true"),e||a.setAttribute(d,"true")}catch(b){console.error("aria-hidden: cannot operate on ",a,b)}})};return k(b),h.clear(),bC++,function(){g.forEach(function(a){var b=bz.get(a)-1,e=f.get(a)-1;bz.set(a,b),f.set(a,e),b||(bA.has(a)||a.removeAttribute(d),bA.delete(a)),e||a.removeAttribute(c)}),--bC||(bz=new WeakMap,bz=new WeakMap,bA=new WeakMap,bB={})}},bF=function(a,b,c){void 0===c&&(c="data-aria-hidden");var d=Array.from(Array.isArray(a)?a:[a]),e=b||("u"<typeof document?null:(Array.isArray(a)?a[0]:a).ownerDocument.body);return e?(d.push.apply(d,Array.from(e.querySelectorAll("[aria-live], script"))),bE(d,e,c,"aria-hidden")):function(){return null}},bG=Object.defineProperty,bH=(a,b)=>bG(a,"name",{value:b,configurable:!0}),bI="Dialog",[bJ,bK]=C(bI),[bL,bM]=bJ(bI),bN=bH(a=>{let{__scopeDialog:b,children:c,open:d,defaultOpen:e,onOpenChange:f,modal:g=!0}=a,h=p.useRef(null),i=p.useRef(null),[k,l]=Q({prop:d,defaultProp:e??!1,onChange:f,caller:bI}),[m,n]=p.useState(0),[o,q]=p.useState(0);return(0,j.jsx)(bL,{scope:b,triggerRef:h,contentRef:i,contentId:I(),titleId:I(),descriptionId:I(),titlePresent:m>0,descriptionPresent:o>0,setTitleCount:n,setDescriptionCount:q,open:k,onOpenChange:l,onOpenToggle:p.useCallback(()=>l(a=>!a),[l]),modal:g,children:c})},"Dialog"),bO="DialogPortal",[bP,bQ]=bJ(bO,{forceMount:void 0}),bR=bH(a=>{let{__scopeDialog:b,forceMount:c,children:d,container:e}=a,f=bM(bO,b);return(0,j.jsx)(bP,{scope:b,forceMount:c,children:p.Children.map(d,a=>(0,j.jsx)(aS,{present:c||f.open,children:(0,j.jsx)(aO,{asChild:!0,container:e,children:a})}))})},"DialogPortal"),bS="DialogOverlay",bT=p.forwardRef(bH(function(a,b){let c=bQ(bS,a.__scopeDialog),{forceMount:d=c.forceMount,...e}=a,f=bM(bS,a.__scopeDialog);return f.modal?(0,j.jsx)(aS,{present:d||f.open,children:(0,j.jsx)(bV,{...e,ref:b})}):null},"DialogOverlay")),bU=X("DialogOverlay.RemoveScroll"),bV=p.forwardRef(bH(function(a,b){let{__scopeDialog:c,...d}=a,e=bM(bS,c),f=z(b,aq());return(0,j.jsx)(by,{as:bU,allowPinchZoom:!0,shards:[e.contentRef],children:(0,j.jsx)(ai.div,{"data-state":b_(e.open),...d,ref:f,style:{pointerEvents:"auto",...d.style}})})},"DialogOverlayImpl")),bW="DialogContent",bX=p.forwardRef(bH(function(a,b){let c=bQ(bW,a.__scopeDialog),{forceMount:d=c.forceMount,...e}=a,f=bM(bW,a.__scopeDialog);return(0,j.jsx)(aS,{present:d||f.open,children:f.modal?(0,j.jsx)(bY,{...e,ref:b}):(0,j.jsx)(bZ,{...e,ref:b})})},"DialogContent")),bY=p.forwardRef(bH(function(a,b){let c=bM(bW,a.__scopeDialog),d=p.useRef(null),e=z(b,c.contentRef,d);return p.useEffect(()=>{let a=d.current;if(a)return bF(a)},[]),(0,j.jsx)(b$,{...a,ref:e,trapFocus:c.open,disableOutsidePointerEvents:c.open,onCloseAutoFocus:s(a.onCloseAutoFocus,a=>{a.preventDefault(),c.triggerRef.current?.focus()}),onPointerDownOutside:s(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;(2===b.button||c)&&a.preventDefault()}),onFocusOutside:s(a.onFocusOutside,a=>a.preventDefault())})},"DialogContentModal")),bZ=p.forwardRef(bH(function(a,b){let c=bM(bW,a.__scopeDialog),d=p.useRef(!1),e=p.useRef(!1);return(0,j.jsx)(b$,{...a,ref:b,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(d.current||c.triggerRef.current?.focus(),b.preventDefault()),d.current=!1,e.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(d.current=!0,"pointerdown"===b.detail.originalEvent.type&&(e.current=!0));let f=b.target;c.triggerRef.current?.contains(f)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&e.current&&b.preventDefault()}})},"DialogContentNonModal")),b$=p.forwardRef(bH(function(a,b){let{__scopeDialog:c,trapFocus:d,onOpenAutoFocus:e,onCloseAutoFocus:f,...g}=a,h=bM(bW,c);return a0(),(0,j.jsx)(j.Fragment,{children:(0,j.jsx)(aB,{asChild:!0,loop:!0,trapped:d,onMountAutoFocus:e,onUnmountAutoFocus:f,children:(0,j.jsx)(ap,{role:"dialog",id:h.contentId,"aria-describedby":h.descriptionPresent?h.descriptionId:void 0,"aria-labelledby":h.titlePresent?h.titleId:void 0,"data-state":b_(h.open),...g,ref:b,deferPointerDownOutside:!0,onDismiss:()=>h.onOpenChange(!1)})})})},"DialogContentImpl"));function b_(a){return a?"open":"closed"}bH(b_,"getState");var b0='[cmdk-group=""]',b1='[cmdk-group-items=""]',b2='[cmdk-item=""]',b3=`${b2}:not([aria-disabled="true"])`,b4="cmdk-item-select",b5="data-value",b6=(a,b,c)=>{var d;return d=a,function a(b,c,d,e,f,g,h){if(g===c.length)return f===b.length?1:.99;var i=`${f},${g}`;if(void 0!==h[i])return h[i];for(var j,o,p,q,r=e.charAt(g),s=d.indexOf(r,f),t=0;s>=0;)(j=a(b,c,d,e,s+1,g+1,h))>t&&(s===f?j*=1:k.test(b.charAt(s-1))?(j*=.8,(p=b.slice(f,s-1).match(l))&&f>0&&(j*=Math.pow(.999,p.length))):m.test(b.charAt(s-1))?(j*=.9,(q=b.slice(f,s-1).match(n))&&f>0&&(j*=Math.pow(.999,q.length))):(j*=.17,f>0&&(j*=Math.pow(.999,s-f))),b.charAt(s)!==c.charAt(g)&&(j*=.9999)),(j<.1&&d.charAt(s-1)===e.charAt(g+1)||e.charAt(g+1)===e.charAt(g)&&d.charAt(s-1)!==e.charAt(g))&&.1*(o=a(b,c,d,e,s+1,g+2,h))>j&&(j=.1*o),j>t&&(t=j),s=d.indexOf(r,s+1);return h[i]=t,t}(d=c&&c.length>0?`${d+" "+c.join(" ")}`:d,b,o(d),o(b),0,0,{})},b7=p.createContext(void 0),b8=p.createContext(void 0),b9=p.createContext(void 0),ca=p.forwardRef((a,b)=>{let c=ck(()=>{var b,c;return{search:"",value:null!=(c=null!=(b=a.value)?b:a.defaultValue)?c:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),d=ck(()=>new Set),e=ck(()=>new Map),f=ck(()=>new Map),g=ck(()=>new Set),h=ci(a),{label:i,children:j,value:k,onValueChange:l,filter:m,shouldFilter:n,loop:o,disablePointerSelection:q=!1,vimBindings:r=!0,...s}=a,t=I(),u=I(),v=I(),w=p.useRef(null),x=cn();cj(()=>{if(void 0!==k){let a=k.trim();c.current.value=a,y.emit()}},[k]),cj(()=>{x(6,E)},[]);let y=p.useMemo(()=>({subscribe:a=>(g.current.add(a),()=>g.current.delete(a)),snapshot:()=>c.current,setState:(a,b,d)=>{var e,f,g,i;if(!Object.is(c.current[a],b)){if(c.current[a]=b,"search"===a)D(),B(),x(1,C);else if("value"===a){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let a=document.getElementById(v);a?a.focus():null==(e=document.getElementById(t))||e.focus()}if(x(7,()=>{var a;c.current.selectedItemId=null==(a=F())?void 0:a.id,y.emit()}),d||x(5,E),(null==(f=h.current)?void 0:f.value)!==void 0){null==(i=(g=h.current).onValueChange)||i.call(g,null!=b?b:"");return}}y.emit()}},emit:()=>{g.current.forEach(a=>a())}}),[]),z=p.useMemo(()=>({value:(a,b,d)=>{var e;b!==(null==(e=f.current.get(a))?void 0:e.value)&&(f.current.set(a,{value:b,keywords:d}),c.current.filtered.items.set(a,A(b,d)),x(2,()=>{B(),y.emit()}))},item:(a,b)=>(d.current.add(a),b&&(e.current.has(b)?e.current.get(b).add(a):e.current.set(b,new Set([a]))),x(3,()=>{D(),B(),c.current.value||C(),y.emit()}),()=>{f.current.delete(a),d.current.delete(a),c.current.filtered.items.delete(a);let b=F();x(4,()=>{D(),(null==b?void 0:b.getAttribute("id"))===a&&C(),y.emit()})}),group:a=>(e.current.has(a)||e.current.set(a,new Set),()=>{f.current.delete(a),e.current.delete(a)}),filter:()=>h.current.shouldFilter,label:i||a["aria-label"],getDisablePointerSelection:()=>h.current.disablePointerSelection,listId:t,inputId:v,labelId:u,listInnerRef:w}),[]);function A(a,b){var d,e;let f=null!=(e=null==(d=h.current)?void 0:d.filter)?e:b6;return a?f(a,c.current.search,b):0}function B(){if(!c.current.search||!1===h.current.shouldFilter)return;let a=c.current.filtered.items,b=[];c.current.filtered.groups.forEach(c=>{let d=e.current.get(c),f=0;d.forEach(b=>{f=Math.max(a.get(b),f)}),b.push([c,f])});let d=w.current;G().sort((b,c)=>{var d,e;let f=b.getAttribute("id"),g=c.getAttribute("id");return(null!=(d=a.get(g))?d:0)-(null!=(e=a.get(f))?e:0)}).forEach(a=>{let b=a.closest(b1);b?b.appendChild(a.parentElement===b?a:a.closest(`${b1} > *`)):d.appendChild(a.parentElement===d?a:a.closest(`${b1} > *`))}),b.sort((a,b)=>b[1]-a[1]).forEach(a=>{var b;let c=null==(b=w.current)?void 0:b.querySelector(`${b0}[${b5}="${encodeURIComponent(a[0])}"]`);null==c||c.parentElement.appendChild(c)})}function C(){let a=G().find(a=>"true"!==a.getAttribute("aria-disabled")),b=null==a?void 0:a.getAttribute(b5);y.setState("value",b||void 0)}function D(){var a,b,g,i;if(!c.current.search||!1===h.current.shouldFilter){c.current.filtered.count=d.current.size;return}c.current.filtered.groups=new Set;let j=0;for(let e of d.current){let d=A(null!=(b=null==(a=f.current.get(e))?void 0:a.value)?b:"",null!=(i=null==(g=f.current.get(e))?void 0:g.keywords)?i:[]);c.current.filtered.items.set(e,d),d>0&&j++}for(let[a,b]of e.current)for(let d of b)if(c.current.filtered.items.get(d)>0){c.current.filtered.groups.add(a);break}c.current.filtered.count=j}function E(){var a,b,c;let d=F();d&&((null==(a=d.parentElement)?void 0:a.firstChild)===d&&(null==(c=null==(b=d.closest(b0))?void 0:b.querySelector('[cmdk-group-heading=""]'))||c.scrollIntoView({block:"nearest"})),d.scrollIntoView({block:"nearest"}))}function F(){var a;return null==(a=w.current)?void 0:a.querySelector(`${b2}[aria-selected="true"]`)}function G(){var a;return Array.from((null==(a=w.current)?void 0:a.querySelectorAll(b3))||[])}function H(a){let b=G()[a];b&&y.setState("value",b.getAttribute(b5))}function J(a){var b;let c=F(),d=G(),e=d.findIndex(a=>a===c),f=d[e+a];null!=(b=h.current)&&b.loop&&(f=e+a<0?d[d.length-1]:e+a===d.length?d[0]:d[e+a]),f&&y.setState("value",f.getAttribute(b5))}function K(a){let b=F(),c=null==b?void 0:b.closest(b0),d;for(;c&&!d;)d=null==(c=a>0?function(a,b){let c=a.nextElementSibling;for(;c;){if(c.matches(b))return c;c=c.nextElementSibling}}(c,b0):function(a,b){let c=a.previousElementSibling;for(;c;){if(c.matches(b))return c;c=c.previousElementSibling}}(c,b0))?void 0:c.querySelector(b3);d?y.setState("value",d.getAttribute(b5)):J(a)}let L=()=>H(G().length-1),M=a=>{a.preventDefault(),a.metaKey?L():a.altKey?K(1):J(1)},N=a=>{a.preventDefault(),a.metaKey?H(0):a.altKey?K(-1):J(-1)};return p.createElement(ai.div,{ref:b,tabIndex:-1,...s,"cmdk-root":"",onKeyDown:a=>{var b;null==(b=s.onKeyDown)||b.call(s,a);let c=a.nativeEvent.isComposing||229===a.keyCode;if(!(a.defaultPrevented||c))switch(a.key){case"n":case"j":r&&a.ctrlKey&&M(a);break;case"ArrowDown":M(a);break;case"p":case"k":r&&a.ctrlKey&&N(a);break;case"ArrowUp":N(a);break;case"Home":a.preventDefault(),H(0);break;case"End":a.preventDefault(),L();break;case"Enter":{a.preventDefault();let b=F();if(b){let a=new Event(b4);b.dispatchEvent(a)}}}}},p.createElement("label",{"cmdk-label":"",htmlFor:z.inputId,id:z.labelId,style:cp},i),co(a,a=>p.createElement(b8.Provider,{value:y},p.createElement(b7.Provider,{value:z},a))))}),cb=p.forwardRef((a,b)=>{var c,d;let e=I(),f=p.useRef(null),g=p.useContext(b9),h=p.useContext(b7),i=ci(a),j=null!=(d=null==(c=i.current)?void 0:c.forceMount)?d:null==g?void 0:g.forceMount;cj(()=>{if(!j)return h.item(e,null==g?void 0:g.id)},[j]);let k=cm(e,f,[a.value,a.children,f],a.keywords),l=p.useContext(b8),m=cl(a=>a.value&&a.value===k.current),n=cl(a=>!!j||!1===h.filter()||!a.search||a.filtered.items.get(e)>0);function o(){var a,b;q(),null==(b=(a=i.current).onSelect)||b.call(a,k.current)}function q(){l.setState("value",k.current,!0)}if(p.useEffect(()=>{let b=f.current;if(!(!b||a.disabled))return b.addEventListener(b4,o),()=>b.removeEventListener(b4,o)},[n,a.onSelect,a.disabled]),!n)return null;let{disabled:r,value:s,onSelect:t,forceMount:u,keywords:v,...w}=a;return p.createElement(ai.div,{ref:y(f,b),...w,id:e,"cmdk-item":"",role:"option","aria-disabled":!!r,"aria-selected":!!m,"data-disabled":!!r,"data-selected":!!m,onPointerMove:r||h.getDisablePointerSelection()?void 0:q,onClick:r?void 0:o},a.children)}),cc=p.forwardRef((a,b)=>{let{heading:c,children:d,forceMount:e,...f}=a,g=I(),h=p.useRef(null),i=p.useRef(null),j=I(),k=p.useContext(b7),l=cl(a=>!!e||!1===k.filter()||!a.search||a.filtered.groups.has(g));cj(()=>k.group(g),[]),cm(g,h,[a.value,a.heading,i]);let m=p.useMemo(()=>({id:g,forceMount:e}),[e]);return p.createElement(ai.div,{ref:y(h,b),...f,"cmdk-group":"",role:"presentation",hidden:!l||void 0},c&&p.createElement("div",{ref:i,"cmdk-group-heading":"","aria-hidden":!0,id:j},c),co(a,a=>p.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":c?j:void 0},p.createElement(b9.Provider,{value:m},a))))}),cd=p.forwardRef((a,b)=>{let{alwaysRender:c,...d}=a,e=p.useRef(null),f=cl(a=>!a.search);return c||f?p.createElement(ai.div,{ref:y(e,b),...d,"cmdk-separator":"",role:"separator"}):null}),ce=p.forwardRef((a,b)=>{let{onValueChange:c,...d}=a,e=null!=a.value,f=p.useContext(b8),g=cl(a=>a.search),h=cl(a=>a.selectedItemId),i=p.useContext(b7);return p.useEffect(()=>{null!=a.value&&f.setState("search",a.value)},[a.value]),p.createElement(ai.input,{ref:b,...d,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":i.listId,"aria-labelledby":i.labelId,"aria-activedescendant":h,id:i.inputId,type:"text",value:e?a.value:g,onChange:a=>{e||f.setState("search",a.target.value),null==c||c(a.target.value)}})}),cf=p.forwardRef((a,b)=>{let{children:c,label:d="Suggestions",...e}=a,f=p.useRef(null),g=p.useRef(null),h=cl(a=>a.selectedItemId),i=p.useContext(b7);return p.useEffect(()=>{if(g.current&&f.current){let a=g.current,b=f.current,c,d=new ResizeObserver(()=>{c=requestAnimationFrame(()=>{let c=a.offsetHeight;b.style.setProperty("--cmdk-list-height",c.toFixed(1)+"px")})});return d.observe(a),()=>{cancelAnimationFrame(c),d.unobserve(a)}}},[]),p.createElement(ai.div,{ref:y(f,b),...e,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":h,"aria-label":d,id:i.listId},co(a,a=>p.createElement("div",{ref:y(g,i.listInnerRef),"cmdk-list-sizer":""},a)))}),cg=p.forwardRef((a,b)=>{let{open:c,onOpenChange:d,overlayClassName:e,contentClassName:f,container:g,...h}=a;return p.createElement(bN,{open:c,onOpenChange:d},p.createElement(bR,{container:g},p.createElement(bT,{"cmdk-overlay":"",className:e}),p.createElement(bX,{"aria-label":a.label,"cmdk-dialog":"",className:f},p.createElement(ca,{ref:b,...h}))))}),ch=Object.assign(ca,{List:cf,Item:cb,Input:ce,Group:cc,Separator:cd,Dialog:cg,Empty:p.forwardRef((a,b)=>cl(a=>0===a.filtered.count)?p.createElement(ai.div,{ref:b,...a,"cmdk-empty":"",role:"presentation"}):null),Loading:p.forwardRef((a,b)=>{let{progress:c,children:d,label:e="Loading...",...f}=a;return p.createElement(ai.div,{ref:b,...f,"cmdk-loading":"",role:"progressbar","aria-valuenow":c,"aria-valuemin":0,"aria-valuemax":100,"aria-label":e},co(a,a=>p.createElement("div",{"aria-hidden":!0},a)))})});function ci(a){let b=p.useRef(a);return cj(()=>{b.current=a}),b}var cj=p.useEffect;function ck(a){let b=p.useRef();return void 0===b.current&&(b.current=a()),b}function cl(a){let b=p.useContext(b8),c=()=>a(b.snapshot());return p.useSyncExternalStore(b.subscribe,c,c)}function cm(a,b,c,d=[]){let e=p.useRef(),f=p.useContext(b7);return cj(()=>{var g;let h=(()=>{var a;for(let b of c){if("string"==typeof b)return b.trim();if("object"==typeof b&&"current"in b)return b.current?null==(a=b.current.textContent)?void 0:a.trim():e.current}})(),i=d.map(a=>a.trim());f.value(a,h,i),null==(g=b.current)||g.setAttribute(b5,h),e.current=h}),e}var cn=()=>{let[a,b]=p.useState(),c=ck(()=>new Map);return cj(()=>{c.current.forEach(a=>a()),c.current=new Map},[a]),(a,d)=>{c.current.set(a,d),b({})}};function co({asChild:a,children:b},c){let d;return a&&p.isValidElement(b)?p.cloneElement("function"==typeof(d=b.type)?d(b.props):"render"in d?d.render(b.props):b,{ref:b.ref},c(b.props.children)):c(b)}var cp={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},cq=a.i(763802),cr=a.i(645766),cr=cr;a.i(965733);var cs=a.i(262276),ct=a.i(497895);a.s(["Command",0,function({className:a,...b}){return(0,j.jsx)(ch,{"data-slot":"command",className:(0,ct.cn)("flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground",a),...b})},"CommandEmpty",0,function({className:a,...b}){return(0,j.jsx)(ch.Empty,{"data-slot":"command-empty",className:(0,ct.cn)("py-6 text-center text-sm",a),...b})},"CommandGroup",0,function({className:a,...b}){return(0,j.jsx)(ch.Group,{"data-slot":"command-group",className:(0,ct.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",a),...b})},"CommandInput",0,function({className:a,...b}){return(0,j.jsx)("div",{"data-slot":"command-input-wrapper",className:"p-1 pb-0",children:(0,j.jsxs)(cs.InputGroup,{className:"h-8! rounded-lg! border-input/30 bg-input/30 shadow-none! *:data-[slot=input-group-addon]:pl-2!",children:[(0,j.jsx)(ch.Input,{"data-slot":"command-input",className:(0,ct.cn)("w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",a),...b}),(0,j.jsx)(cs.InputGroupAddon,{children:(0,j.jsx)(cr.default,{className:"size-4 shrink-0 opacity-50"})})]})})},"CommandItem",0,function({className:a,children:b,...c}){return(0,j.jsxs)(ch.Item,{"data-slot":"command-item",className:(0,ct.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",a),...c,children:[b,(0,j.jsx)(cq.CheckIcon,{className:"ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100"})]})},"CommandList",0,function({className:a,...b}){return(0,j.jsx)(ch.List,{"data-slot":"command-list",className:(0,ct.cn)("no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none",a),...b})}],329154)},581662,a=>a.a(async(b,c)=>{try{var d=a.i(187924),e=a.i(752562),f=a.i(141146),g=a.i(793817),h=a.i(844561),i=a.i(425256),j=a.i(403512),k=a.i(951675),l=a.i(924613),m=a.i(474215),n=a.i(572131),o=a.i(767561),p=a.i(340695),q=a.i(329154),r=a.i(205522),s=a.i(262276),t=a.i(446181),u=a.i(545097),v=a.i(950463),w=a.i(280281),x=a.i(546893),y=a.i(287702),z=a.i(608902),A=a.i(61876),B=a.i(695142),C=a.i(569578),D=a.i(155634),E=a.i(190040),F=a.i(277597),G=a.i(411509),H=a.i(398026),I=a.i(913834),J=a.i(626280),K=a.i(478978),L=a.i(619477),M=a.i(28996),N=a.i(369768),O=a.i(559553),P=a.i(175170),Q=a.i(685941),R=a.i(30681),S=a.i(199169),T=a.i(616682),U=a.i(313237),V=a.i(759497),W=a.i(497895),X=a.i(324835),Y=b([N]);[N]=Y.then?(await Y)():Y;let ap=" new";function Z({bot:a,job:b,active:c,onPick:e}){var f,g,h;let i=(f=b,g=a.lastJobAt,h=a.disabled,f?.status==="waiting"?{text:"waiting on you",shine:!0,amber:!0}:f?.status==="running"?{text:`working \xb7 ${f.label}`,shine:!0}:h?{text:"off"}:f?{text:`idle \xb7 last job ${$(f.updatedAt)}`}:g?{text:`idle \xb7 last job ${$(g)}`}:{text:"idle · no jobs yet"});return(0,d.jsxs)("button",{type:"button",onClick:e,className:(0,W.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",c?"bg-secondary":"hover:bg-muted/60"),children:[(0,d.jsx)(I.BotMark,{size:32,...af(a.name,a.icon),state:b?.status==="running"?"thinking":"idle",notify:b?.status==="waiting",crossed:b?.status==="cancelled",className:(0,W.cn)("shrink-0",a.disabled&&"opacity-45")}),(0,d.jsxs)("span",{className:(0,W.cn)("min-w-0 flex-1 space-y-0.5",a.disabled&&"opacity-45"),children:[(0,d.jsx)("span",{className:(0,W.cn)("block truncate text-[13px]",c?"font-medium":"text-foreground/90"),children:a.name}),i.shine?(0,d.jsx)(u.ShinyText,{text:i.text,tone:i.amber?"waiting":"muted",className:"block truncate font-mono text-[11px] leading-4"}):(0,d.jsx)("span",{className:"block truncate font-mono text-[11px] leading-4 text-muted-foreground",children:i.text})]})]})}function $(a){let b=(0,S.shortAgo)(a);return"now"===b?"just now":`${b} ago`}function _(a,b,c){let[d,e]=(0,n.useState)(new Set),[f,g]=(0,U.useServerAction)(C.createSeedBotsAction,{onOk:a=>{(0,V.revalidate)(o.queryKey.bot),c(a.created[0]??null)}}),{data:h}=(0,V.useServerRoute)(o.queryKey.config),i=H.BOT_SEEDS.filter(b=>!a.has(b.name)),j=i.filter(a=>!d.has(a.name));return{isSet:a=>(0,K.isConfigSet)(h,a),adding:g,addable:i,wanted:j,ticked:b=>a.has(b.name)||!d.has(b.name),toggle:a=>e(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c}),submit:()=>f(j.map(a=>({name:a.name,icon:b[H.BOT_SEEDS.indexOf(a)]})))}}function aa({have:a,faces:b,picks:c}){return(0,d.jsx)("div",{className:"flex flex-col gap-2",children:H.BOT_SEEDS.map((f,h)=>{var i;let j,k=a.has(f.name),l=c.ticked(f),m=(i=c.isSet,(j=(f.requires??[]).filter(a=>!i(K.MEDIA_MODEL_KEYS[a]))).length?`needs ${j.map(K.mediaModelWords).join(" and ")}`:null);return(0,d.jsx)("div",{className:(0,W.cn)("rounded-xl ring-1 transition-colors",k?"opacity-45 ring-border/60":l?"ring-foreground":"ring-border/60"),children:(0,d.jsxs)("button",{type:"button",disabled:k||c.adding,"aria-pressed":l,onClick:()=>c.toggle(f.name),className:"flex w-full items-center gap-3 rounded-xl px-3.5 py-2.5 text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-default",children:[(0,d.jsx)(I.BotMark,{size:28,...af(f.name,b[h]),className:(0,W.cn)("shrink-0 transition-opacity",!l&&"opacity-35")}),(0,d.jsxs)("span",{className:"min-w-0 flex-1 space-y-px",children:[(0,d.jsx)("span",{className:"block text-[14px] leading-[18px] font-medium",children:f.name}),(0,d.jsx)("span",{className:"block truncate text-[12px] leading-[17px] text-muted-foreground",children:f.hint})]}),k?(0,d.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted-foreground",children:"already added"}):m?(0,d.jsxs)("span",{className:(0,W.cn)("flex shrink-0 items-center gap-1.5 font-mono text-[11px]",W.WAITING_INK),children:[(0,d.jsx)(g.CircleAlert,{className:"size-3"}),m]}):null,(0,d.jsx)("span",{className:(0,W.cn)("grid size-5 shrink-0 place-items-center rounded-full transition-colors",l?"bg-foreground text-background":"ring-1 ring-border/60 ring-inset"),children:l&&(0,d.jsx)(e.Check,{className:"size-3"})})]})},f.name)})})}function ab({picks:a,onCancel:b}){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(p.Button,{variant:"ghost",onClick:b,children:"Cancel"}),(0,d.jsxs)(p.Button,{loading:a.adding,disabled:0===a.wanted.length,onClick:a.submit,children:[(0,d.jsx)(j.Plus,{}),1===a.wanted.length?`Add ${a.wanted[0].name}`:`Add ${a.wanted.length} bots`]})]})}function ac({have:a,faces:b,onDone:c}){let e=_(a,b,c);return(0,d.jsxs)("div",{className:"flex min-h-full flex-col",children:[(0,d.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,d.jsxs)("div",{className:"px-8 pt-7 pb-1",children:[(0,d.jsx)("h3",{className:"text-[17px] font-medium tracking-tight",children:"Bots you can add"}),(0,d.jsx)("p",{className:"mt-1.5 max-w-lg text-[13px] leading-relaxed text-muted-foreground break-keep",children:"Each one is a starting point — rename it, re-prompt it, give it a model of its own. What a bot needs before it can work stands on its row; until then it runs on the app default model."})]}),(0,d.jsx)("div",{className:"px-8 pt-4",children:(0,d.jsx)(aa,{have:a,faces:b,picks:e})}),(0,d.jsxs)("div",{className:"mt-auto flex items-center gap-3 border-t border-border/60 px-8 py-4",children:[(0,d.jsx)("span",{className:"flex-1 font-mono text-[11px] text-muted-foreground",children:0===e.wanted.length?"nothing ticked":`${e.wanted.length} of ${e.addable.length} ticked`}),(0,d.jsx)(ab,{picks:e,onCancel:()=>c(null)})]})]})}function ad({have:a,faces:b,onDone:c}){let e=_(a,b,c);return(0,d.jsx)(L.SettingDialogContent,{title:"Bots you can add",description:"Each one is a starting point — rename it, re-prompt it, give it a model of its own. What a bot needs before it can work stands on its row.",footer:(0,d.jsx)(ab,{picks:e,onCancel:()=>c(null)}),children:(0,d.jsx)(aa,{have:a,faces:b,picks:e})})}function ae({missing:a,faces:b,have:c,onDone:e}){return(0,d.jsxs)("button",{type:"button",title:"Ready-made bots","aria-label":`Ready-made bots, ${a.length} on offer`,onClick:()=>t.notify.component({className:"sm:max-w-xl",renderer:({close:a})=>(0,d.jsx)(ad,{have:c,faces:b,onDone:b=>{a(),e(b)}})}),className:"flex shrink-0 items-center gap-1 rounded-md px-1.5 py-1 text-muted-foreground outline-none transition-colors hover:bg-muted/60 hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",children:[(0,d.jsx)(j.Plus,{className:"size-3 shrink-0"}),a.map((c,e)=>(0,d.jsx)("span",{className:(0,W.cn)("block",e>0&&"-ml-1.5"),style:{zIndex:a.length-e},children:(0,d.jsx)(I.BotMark,{size:20,...af(c.name,b[H.BOT_SEEDS.indexOf(c)]),notify:!1})},c.name))]})}function af(a,b){return{seed:a||"bot",color:b?.color,shape:b?.shape,outline:b?.outline,paint:b?.paint}}function ag({bot:a,jobs:b,onDone:c,onCancel:e}){let[f,g]=(0,R.useObjectState)(()=>({name:a?.name??"",description:a?.description??"",systemPrompt:a?.systemPrompt??"",icon:a?.icon??(0,G.randomBotIcon)(),provider:a?.provider??null,model:a?.model??"",compactAt:a?.compactAt?String(a.compactAt/1e3):"",toolIds:a?.tools.map(a=>a.id)??[]})),{name:h,description:i,systemPrompt:j,icon:l,provider:m,model:q,compactAt:u,toolIds:v}=f,[C,E]=(0,n.useState)(!!a?.compactAt),H=(0,V.useServerRoute)(o.queryKey.modelCatalog),I=(a,b)=>a&&b.trim()?(0,A.contextWindowOf)(a,b.trim(),H.data):null,J=I(m,q),K=m&&q.trim()?ar(J)/1e3:null,L=C?u:null===K?"":String(K),[M]=(0,U.useServerAction)(F.updateBotAction,{onOk:()=>(0,V.revalidate)(o.queryKey.bot)}),N=b=>{a&&M(a.name,b)},[O,P,,Q]=(0,U.useServerAction)(B.createBotAction,{errorMessage:!1,okMessage:"Bot created",onOk:a=>{(0,V.revalidate)(o.queryKey.bot),c(a.name)}}),[S,W]=(0,U.useServerAction)(D.deleteBotAction,{okMessage:"Bot deleted",onOk:()=>{(0,V.revalidate)(o.queryKey.bot),c(null)}}),X=h.trim()&&i.trim()&&m&&q.trim()&&!P,Y=async()=>{!a||await t.notify.confirm({title:`Delete ${a.name}?`,description:"The agent can no longer hand work to it.",okText:"Delete",destructive:!0})&&S(a.name)};return(0,d.jsxs)("div",{className:"flex min-h-full flex-col",children:[(0,d.jsxs)("div",{className:"flex h-11 shrink-0 items-center gap-2 border-b border-border/60 px-4",children:[(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[11px] text-muted-foreground",children:a?a.name:"New bot"}),a&&(0,d.jsxs)(d.Fragment,{children:[a.disabled&&(0,d.jsx)("span",{className:"font-mono text-[10px] text-muted-foreground",children:"off"}),(0,d.jsx)(w.Switch,{checked:!a.disabled,onCheckedChange:a=>N({disabled:!a}),"aria-label":`${a.name} on or off`,className:"mr-1 shrink-0"}),(0,d.jsx)(p.Button,{size:"icon-sm",variant:"ghost",loading:W,"aria-label":"Delete this bot",onClick:Y,className:"text-muted-foreground hover:text-destructive",children:(0,d.jsx)(k.Trash2,{})})]})]}),(0,d.jsxs)("div",{className:"flex-1 space-y-5 p-6",children:[(0,d.jsx)(an,{name:h,icon:l,onChange:a=>{g({icon:a}),N({icon:a})}}),(0,d.jsxs)(al,{label:"Name",children:[a?(0,d.jsx)("p",{className:"truncate text-sm leading-8 font-medium",children:a.name}):(0,d.jsx)(r.Input,{value:h,onChange:a=>g({name:a.target.value}),placeholder:"researcher",spellCheck:!1,maxLength:T.COMMON_VALIDATE.name.max,autoFocus:!0}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:a?`What ${y.APP_NAME} calls it when she hands it work. Fixed once the bot is made.`:`What ${y.APP_NAME} calls it when she hands it work. Up to ${T.COMMON_VALIDATE.name.max} characters, and it can’t be renamed later.`})]}),(0,d.jsxs)(al,{label:"Description",children:[(0,d.jsx)(r.Input,{value:i,onChange:a=>g({description:a.target.value}),onBlur:()=>{let b=i.trim();a&&b&&b!==a.description&&N({description:b})},placeholder:"Searches the web and answers",maxLength:T.COMMON_VALIDATE.description.max}),(0,d.jsxs)("p",{className:"text-xs text-muted-foreground",children:["The one line ",y.APP_NAME," and the other bots read when they decide who gets a job."]})]}),(0,d.jsx)(al,{label:"Runs on",children:(0,d.jsx)(z.ModelPicker,{provider:m,model:q,onChange:a=>{g({provider:a.provider,model:a.model}),E(!1),a.model&&N({...a,compactAt:ar(I(a.provider,a.model))})}})}),(0,d.jsxs)(al,{label:"Compacts at",children:[(0,d.jsxs)(s.InputGroup,{children:[(0,d.jsx)(s.InputGroupInput,{inputMode:"decimal",value:L,placeholder:q.trim()?"":"Pick a model first",onChange:a=>{E(!0),g({compactAt:a.target.value})},onBlur:()=>{if(!C)return;let a=ak(u);null===a?E(!1):g({compactAt:String(a/1e3)}),N({compactAt:a??(q.trim()?ar(J):null)})}}),(0,d.jsx)(s.InputGroupAddon,{align:"inline-end",children:(0,d.jsx)(s.InputGroupText,{children:"k tokens"})})]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:function(a){if(!a.model)return"Filled in from the model once one is picked.";let b=ar(a.window),c="A job summarizes itself here and carries on.";return null!==a.shown&&a.shown!==b?`Set by hand. Picking a model fills in its own again. ${c}`:a.window?`${Math.round(100*y.BOT_RUN.compactHeadroom)}% of this model's ${(a.window/1e3).toLocaleString()}k context window. ${c}`:`This model's context window is unknown, so the default is filled in. ${c}`}({model:q.trim(),window:J,shown:ak(L)})})]}),(0,d.jsx)(al,{label:"Tools",children:(0,d.jsx)(ao,{selected:v,onChange:a=>{g({toolIds:a}),N({toolIds:a})}})}),(0,d.jsxs)(al,{label:"Prompt",children:[(0,d.jsx)(x.Textarea,{value:j,onChange:a=>g({systemPrompt:a.target.value}),onBlur:()=>{let b=j.trim();a&&b!==(a.systemPrompt??"")&&N({systemPrompt:b})},placeholder:`How it should work (optional). e.g.
2
+ Search the web, answer with a short summary and links.`,maxLength:T.COMMON_VALIDATE.prompt.max,className:"max-h-48 min-h-24 resize-none overflow-y-auto text-sm"}),j.length>0&&(0,d.jsxs)("p",{className:"text-right font-mono text-[10px] text-muted-foreground",children:[j.length,"/",T.COMMON_VALIDATE.prompt.max]})]}),a&&(0,d.jsx)(ah,{bot:a.name}),a&&(0,d.jsx)(am,{jobs:b}),!a&&(0,d.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-1",children:[(0,d.jsx)(p.Button,{variant:"ghost",onClick:e,children:"Cancel"}),(0,d.jsx)(p.Button,{loading:P,disabled:!X,onClick:()=>{X&&m&&O({name:h.trim(),description:i.trim(),systemPrompt:j.trim()||void 0,icon:l,provider:m,model:q.trim(),compactAt:C?ak(u):ar(J),toolIds:v})},children:"Create"})]}),Q&&(0,d.jsx)("p",{className:"font-mono text-xs text-destructive",children:Q})]})]})}function ah({bot:a}){let b=o.queryKey.botMemoryFiles(a),{data:c,isLoading:e}=(0,V.useServerRoute)(b),[g,i]=(0,n.useState)(null),[j]=(0,U.useServerAction)(Q.openFileAction),[l,m]=(0,U.useServerAction)(P.deleteWorkspaceFileAction,{okMessage:"File deleted",onOk:()=>{i(null),(0,V.revalidate)(b),(0,V.revalidate)(o.queryKey.workspace)}}),q=async b=>{await t.notify.confirm({title:`Delete ${b.file}?`,description:`It is deleted from disk for good, and ${a}'s next job starts without it.`,okText:"Delete",destructive:!0})&&l(b.path)};return(0,d.jsxs)("div",{className:"pt-1",children:[(0,d.jsxs)("div",{className:"flex h-6 items-center",children:[(0,d.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:"Memory"}),(0,d.jsx)("span",{className:"flex-1"}),c&&c.total>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"pr-1 font-mono text-[11px] text-muted-foreground tabular-nums",children:1===c.total?"1 file":`${c.total} files`}),(0,d.jsxs)("button",{type:"button",title:"Show in the file manager",onClick:()=>j(c.folder),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,d.jsx)(h.FolderOpen,{className:"size-3"}),"Folder"]})]})]}),e?(0,d.jsx)("div",{className:"flex h-9 items-center border-t border-border/60",children:(0,d.jsx)(v.Skeleton,{className:"h-3 w-56"})}):c?.entries.length?c.entries.map(a=>{let b=g===a.path;return(0,d.jsxs)("div",{className:"border-t border-border/60",children:[(0,d.jsxs)("button",{type:"button","aria-expanded":b,onClick:()=>i(b?null:a.path),className:"flex h-9 w-full items-center gap-3 text-left text-[13px] outline-none focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,d.jsx)("span",{className:(0,W.cn)("min-w-0 flex-1 truncate",b&&"font-medium"),children:a.line||a.file}),(0,d.jsx)("span",{className:"w-36 shrink-0 truncate font-mono text-[11px] text-muted-foreground",children:a.file}),(0,d.jsx)("span",{className:"w-28 shrink-0 text-right font-mono text-[11px] text-muted-foreground tabular-nums",children:(0,S.whenOf)(a.at)}),(0,d.jsx)(f.ChevronRight,{className:(0,W.cn)("size-3 shrink-0 text-muted-foreground transition-transform",b&&"rotate-90")})]}),b&&(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("div",{className:"max-h-96 min-w-0 flex-1 overflow-y-auto",children:(0,d.jsx)(ai,{path:a.path})}),(0,d.jsx)(p.Button,{size:"icon-sm",variant:"ghost","aria-label":`Delete ${a.file}`,loading:m,onClick:()=>q(a),className:"text-muted-foreground hover:text-destructive",children:(0,d.jsx)(k.Trash2,{})})]})]},a.path)}):(0,d.jsx)("p",{className:"py-2 text-[13px] text-muted-foreground",children:"Nothing kept yet."})]})}function ai({path:a}){let{content:b,failure:c,truncated:e}=(0,N.useFileText)(a);if(c)return(0,d.jsx)("p",{className:"pb-3 font-mono text-xs text-destructive",children:c});if(null===b)return(0,d.jsxs)("div",{className:"space-y-2 pb-3",children:[(0,d.jsx)(v.Skeleton,{className:"h-4 w-5/6"}),(0,d.jsx)(v.Skeleton,{className:"h-4 w-2/3"})]});let f=(0,O.viewKindOf)(a);return(0,d.jsx)(N.FileBody,{kind:f,content:"markdown"===f?aq(b):b,truncated:e,where:"inline"})}let aq=a=>a.replace(/^---\n[\s\S]*?\n---\n/,"").replace(/^\s*#[^\n]*\n?/,"");function aj({bot:a}){let{data:b,mutate:c}=(0,V.useServerRoute)(o.queryKey.botMemory),[e]=(0,U.useServerAction)(E.setBotMemoryOnAction,{onOk:()=>(0,V.revalidate)(o.queryKey.botMemory)}),f=a?a.tokens.input+a.tokens.output:0;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(L.SettingRailNote,{children:a?(0,d.jsxs)("span",{className:"font-mono text-[11px]",children:[a.name,a.disabled&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"px-1.5 opacity-50",children:"·"}),"off"]}),(0,d.jsx)("span",{className:"px-1.5 opacity-50",children:"·"}),(0,d.jsx)("span",{title:`in ${(0,W.formatCount)(a.tokens.input)} \xb7 out ${(0,W.formatCount)(a.tokens.output)}`,children:f>0?`${(0,W.formatCount)(f)} tokens`:"no tokens yet"}),(0,d.jsx)("span",{className:"px-1.5 opacity-50",children:"·"}),"since ",(0,S.whenOf)(a.createdAt)]}):"Becomes a bot once it has a name and a model"}),(0,d.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground",children:"Bots keep their own memory"}),(0,d.jsx)(w.Switch,{checked:b??!0,disabled:void 0===b,onCheckedChange:a=>{c(a,!1),e(a)},"aria-label":"Bots keep their own memory"})]})}function ak(a){let b=Number(a.replace(/[^0-9.]/g,""));return Number.isFinite(b)&&b>0?Math.round(1e3*b):null}let ar=a=>1e3*Math.round((0,A.compactAtFor)(a)/1e3);function al({label:a,children:b}){return(0,d.jsxs)("div",{className:"flex gap-3",children:[(0,d.jsx)("span",{className:"w-20 shrink-0 pt-2 font-mono text-xs text-muted-foreground",children:a}),(0,d.jsx)("div",{className:"min-w-0 flex-1 space-y-1.5",children:b})]})}function am({jobs:a}){return(0,d.jsxs)("div",{className:"pt-1",children:[(0,d.jsxs)("div",{className:"flex h-6 items-center",children:[(0,d.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:"Recent"}),(0,d.jsx)("span",{className:"flex-1"}),(0,d.jsxs)("button",{type:"button",onClick:()=>(0,M.openSettings)("threads"),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,d.jsx)(i.History,{className:"size-3"}),"History"]})]}),0===a.length?(0,d.jsx)("p",{className:"py-2 text-[13px] text-muted-foreground",children:"Nothing handed over yet."}):a.map(a=>{let b=function(a){switch(a.status){case"waiting":return{text:"waiting on you",tone:W.WAITING_INK};case"running":return{text:"working",tone:"text-muted-foreground"};case"cancelled":return{text:"stopped",tone:"text-muted-foreground"};default:return{text:"done",tone:"text-muted-foreground"}}}(a);return(0,d.jsxs)("div",{className:"flex h-9 items-center gap-3 border-t border-border/60 text-[13px]",children:[(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate",children:a.label}),"running"===a.status?(0,d.jsx)(u.ShinyText,{text:b.text,className:"shrink-0 font-mono text-[11px]"}):(0,d.jsx)("span",{className:(0,W.cn)("shrink-0 font-mono text-[11px]",b.tone),children:b.text}),(0,d.jsx)("span",{className:"w-28 shrink-0 text-right font-mono text-[11px] text-muted-foreground tabular-nums",children:(0,S.whenOf)(a.updatedAt)})]},a.id)})]})}function an({name:a,icon:b,onChange:c}){return(0,d.jsxs)("div",{className:"flex flex-col items-center gap-4 pt-3 pb-2",children:[(0,d.jsx)(I.BotMark,{size:112,...af(a,b),className:"shrink-0"}),(0,d.jsx)(J.MarkPalette,{color:b.paint?void 0:b.color,themePicked:!b.paint&&b.color===X.MARK_SYSTEM,onTheme:()=>c({...b,paint:void 0,color:X.MARK_SYSTEM}),onPick:a=>c({...b,paint:void 0,color:b.paint||b.color!==a?a:void 0}),paint:b.paint,onPaint:a=>c({...b,paint:b.paint===a?void 0:a})}),(0,d.jsxs)("div",{className:"flex gap-1",children:[X.MARK_SHAPES.map(a=>(0,d.jsx)("button",{type:"button",onClick:()=>c({...b,shape:b.shape===a?void 0:a}),className:(0,W.cn)("rounded-md px-2 py-1 font-mono text-[11px] capitalize transition-colors",b.shape===a?"bg-foreground text-background":"bg-muted text-muted-foreground hover:text-foreground"),children:a},a)),(0,d.jsx)("span",{className:"mx-1 w-px self-stretch bg-border/60"}),(0,d.jsx)("button",{type:"button",onClick:()=>c({...b,outline:!b.outline||void 0}),className:(0,W.cn)("rounded-md px-2 py-1 font-mono text-[11px] transition-colors",b.outline?"bg-foreground text-background":"bg-muted text-muted-foreground hover:text-foreground"),children:"outline"})]})]})}function ao({selected:a,onChange:b}){let{data:c=[]}=(0,V.useServerRoute)(o.queryKey.mcpTools),[f,g]=(0,n.useState)(!1),h=a.length>=G.MAX_PINNED_TOOLS,i=[...new Set(c.map(a=>a.serverName))],j=a.map(a=>c.find(b=>b.id===a)).filter(a=>!!a),k=f?j:j.slice(0,4),r=j.length-k.length,s=c=>b(a.includes(c)?a.filter(a=>a!==c):[...a,c]);return 0===c.length?(0,d.jsx)("p",{className:"pt-1.5 text-xs text-muted-foreground",children:"Nothing to pin — connect an MCP server first (Settings › Connectors)."}):(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,d.jsx)(p.Button,{size:"icon-sm",variant:f?"secondary":"outline",onClick:()=>g(!f),"aria-label":"Pick tools",className:"border-dashed",children:(0,d.jsx)(l.Wrench,{})}),k.map(a=>(0,d.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:[a.name,(0,d.jsx)("button",{type:"button","aria-label":`Unpin ${a.name}`,onClick:()=>s(a.id),className:"rounded-full p-0.5 text-muted-foreground transition-colors hover:bg-foreground/10 hover:text-foreground",children:(0,d.jsx)(m.X,{className:"size-3"})})]},a.id)),r>0&&(0,d.jsxs)("button",{type:"button",onClick:()=>g(!0),className:"rounded-full bg-muted px-2.5 py-1 font-mono text-[11px] text-muted-foreground transition-colors hover:text-foreground",children:["+",r]}),0===j.length&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:"Loaded from the start — everything else stays searchable"}),(0,d.jsx)("span",{className:"flex-1"}),(0,d.jsxs)("span",{className:(0,W.cn)("font-mono text-[11px] text-muted-foreground",h&&"text-foreground"),children:[a.length,"/",G.MAX_PINNED_TOOLS]})]}),f&&(0,d.jsxs)(q.Command,{className:"rounded-lg border border-input",children:[(0,d.jsx)(q.CommandInput,{placeholder:"Search tools"}),(0,d.jsxs)(q.CommandList,{className:"max-h-44",children:[(0,d.jsx)(q.CommandEmpty,{children:"Nothing matches"}),i.map(b=>(0,d.jsx)(q.CommandGroup,{heading:b,children:c.filter(a=>a.serverName===b).map(b=>{let c=a.includes(b.id);return(0,d.jsxs)(q.CommandItem,{value:`${b.serverName}/${b.name}`,disabled:!c&&h,onSelect:()=>s(b.id),children:[(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-xs",children:b.name}),c&&(0,d.jsx)(e.Check,{className:"size-3.5 shrink-0"})]},b.id)})},b))]})]})]})}a.s(["BotSetting",0,function(){let{data:a,isLoading:b,error:c}=(0,V.useServerRoute)(o.queryKey.bot),e=a??[],{data:f}=(0,V.useServerRoute)(o.queryKey.threadHistory(null)),g=f??[],[h,i]=(0,n.useState)(null),[k]=(0,n.useState)(H.rollSeedIcons);if(b)return(0,d.jsx)(L.SettingPanesSkeleton,{});if(c)return(0,d.jsx)(L.SettingError,{message:c.message});let l=h===ap,m=e.filter(a=>!a.disabled).length,q=new Set(e.map(a=>a.name)),r=H.BOT_SEEDS.filter(a=>!q.has(a.name)),s=l?null:e.find(a=>a.name===h)??e[0]??null;return(0,d.jsx)(L.SettingPanes,{footer:0===e.length?null:(0,d.jsx)(aj,{bot:s}),left:(0,d.jsxs)("div",{className:"flex flex-col py-2",children:[(0,d.jsxs)("div",{className:"mx-2 mb-1 flex items-center gap-1",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>i(ap),className:(0,W.cn)("flex flex-1 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",l?"bg-secondary text-foreground":"text-muted-foreground hover:bg-muted/60 hover:text-foreground"),children:[(0,d.jsx)(j.Plus,{className:"size-3.5 shrink-0"}),"New bot"]}),e.length>0&&r.length>0&&(0,d.jsx)(ae,{missing:r,faces:k,have:q,onDone:a=>i(a)})]}),e.map(a=>(0,d.jsx)(Z,{bot:a,job:g.find(b=>b.bot===a.name)??null,active:!l&&a.name===s?.name,onPick:()=>i(a.name)},a.name)),m>y.PROMPT_CROWDED.bots&&(0,d.jsxs)(L.SettingNote,{className:"mx-3 mt-2 leading-relaxed",children:[m," bots are on. Each is a line in every prompt, and one more for Thursday to choose between."]})]}),right:l?(0,d.jsx)(ag,{jobs:[],onDone:a=>i(a),onCancel:()=>i(null)},"new"):s?(0,d.jsx)(ag,{bot:s,jobs:g.filter(a=>a.bot===s.name).slice(0,3),onDone:()=>i(null)},s.name):r.length>0?(0,d.jsx)(ac,{have:q,faces:k,onDone:a=>i(a)}):(0,d.jsxs)("div",{className:"space-y-4 p-8",children:[(0,d.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,d.jsxs)(p.Button,{variant:"outline",onClick:()=>i(ap),children:[(0,d.jsx)(j.Plus,{}),"New bot"]})]})})}]),c()}catch(a){c(a)}},!1),155634,a=>{"use strict";var b=a.i(405050);let c=(0,b.createServerReference)("7f58405429879fb5e976934f2419d2897ebc277c60",b.callServer,void 0,b.findSourceMapURL,"deleteBotAction");a.s(["deleteBotAction",0,c])},190040,a=>{"use strict";var b=a.i(405050);let c=(0,b.createServerReference)("7f4ddb467fada0fcab742f28c2cd7a0a6b4195c009",b.callServer,void 0,b.findSourceMapURL,"setBotMemoryOnAction");a.s(["setBotMemoryOnAction",0,c])},277597,a=>{"use strict";var b=a.i(405050);let c=(0,b.createServerReference)("7febfcf243b0d219242be2d3ed5d9ca8e02b529d3d",b.callServer,void 0,b.findSourceMapURL,"updateBotAction");a.s(["updateBotAction",0,c])},695142,a=>{"use strict";var b=a.i(405050);let c=(0,b.createServerReference)("7f58aef9b1112c446a825eb91efeb31666d87818a9",b.callServer,void 0,b.findSourceMapURL,"createBotAction");a.s(["createBotAction",0,c])},793817,a=>{"use strict";var b=a.i(164831);let c={name:"circle-alert",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],aliases:["alert-circle"]};c.node;let d=(0,b.default)(c);a.s(["CircleAlert",0,d],793817)},425256,a=>{"use strict";var b=a.i(164831);let c={name:"rotate-ccw-clock",size:24,node:[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]],aliases:["history"]};c.node;let d=(0,b.default)(c);a.s(["History",0,d],425256)}];
3
3
 
4
- //# sourceMappingURL=_1fojd41._.js.map
4
+ //# sourceMappingURL=_1x9pskj._.js.map
@@ -0,0 +1,101 @@
1
+ module.exports=[411509,702080,a=>{"use strict";var b=a.i(57441);a.s(["default",0,b],702080);var b=b,c=a.i(61876),d=a.i(199169),e=a.i(616682),f=a.i(324835),g=a.i(983874);let h=b.object({color:b.string().regex(/^(#[0-9a-fA-F]{6}|currentColor)$/,"Hex color").optional(),shape:b.enum(f.MARK_SHAPES).optional(),outline:b.boolean().optional(),paint:b.enum(f.MARK_PAINT_IDS).optional()}),i=b.string().max(e.COMMON_VALIDATE.prompt.max);function j(a){return(0,f.randomMarkFills)(a).map(a=>({...a,shape:f.MARK_SHAPES[Math.floor(Math.random()*f.MARK_SHAPES.length)]}))}let k=b.object({id:b.number(),name:b.string(),serverName:b.string()}),l=b.string().trim().transform(a=>a.replace(/\s+/g," ")).refine(a=>a.toLowerCase()!==g.ROOM_THURSDAY.toLowerCase(),"Thursday is reserved for the voice assistant.").pipe(b.string().min(1,"A name is required").max(e.COMMON_VALIDATE.name.max)),m=b.object({input:b.number(),output:b.number()});b.object({name:b.string(),description:b.string(),systemPrompt:b.string().nullish(),icon:h.nullish(),provider:c.textModelProviderSchema.nullish(),model:b.string().nullish(),compactAt:b.number().nullish(),disabled:b.boolean(),createdAt:d.DateLikeSchema,tools:k.array().default([]),tokens:m,lastJobAt:d.DateLikeSchema.nullish()}),b.object({name:l,description:b.string().trim().min(1,"Say what this bot is for").max(e.COMMON_VALIDATE.description.max),systemPrompt:i.optional(),icon:h.optional(),provider:c.textModelProviderSchema.nullish(),model:b.string().trim().max(80).nullish(),compactAt:b.coerce.number().int().min(8e3,"At least 8k").nullish(),disabled:b.boolean().optional(),toolIds:b.number().int().array().max(10).default([])}),b.object({file:b.string(),path:b.string(),line:b.string(),at:d.DateLikeSchema,bytes:b.number()});let n="Continue",o=b.discriminatedUnion("type",[b.object({type:b.literal("text"),text:b.string()}),b.object({type:b.literal("image"),src:b.string()})]),p=b.object({id:b.string(),seq:b.number(),bot:b.string().nullable(),parent:b.string().nullable(),to:b.string().nullish(),at:d.DateLikeSchema}),q=b.discriminatedUnion("kind",[p.extend({kind:b.literal("user"),text:b.string()}),p.extend({kind:b.literal("text"),text:b.string()}),p.extend({kind:b.literal("note"),text:b.string()}),p.extend({kind:b.literal("stop"),text:b.string()}),p.extend({kind:b.literal("tool"),callId:b.string(),name:b.string(),input:b.string(),note:b.string().nullish(),path:b.string().nullish()}),p.extend({kind:b.literal("tool-result"),callId:b.string(),name:b.string(),results:o.array(),more:b.boolean()}),p.extend({kind:b.literal("ask"),callId:b.string(),to:b.string(),text:b.string(),question:b.boolean().optional()})]),r=b.object({question:b.string(),messageId:b.string().optional(),bot:b.string().optional(),options:b.string().array(),auto:b.boolean()});b.object({id:b.string(),bot:b.string(),label:b.string(),request:b.string(),status:b.enum(["running","waiting","done","cancelled"]),outcome:b.string().nullable(),ask:r.nullable(),seen:b.boolean(),tokens:m,contextTokens:b.number(),contextBudget:b.number(),createdAt:d.DateLikeSchema,updatedAt:d.DateLikeSchema,lines:q.array(),room:g.RoomViewSchema}),a.s(["DEFAULT_BOT",0,{name:"Jarvis",description:"Anything — this computer, a browser, the web, files, services",systemPrompt:null,icon:{color:"#14B8A6",shape:"squircle"},provider:null,model:null,disabled:!1,compactAt:null},"MAX_PINNED_TOOLS",0,10,"THREAD_CONTINUE",0,n,"botIconSchema",0,h,"isAppStop",0,a=>{let b=a?.options??[];return!a?.messageId&&1===b.length&&b[0]===n},"needsThreadReply",0,a=>"waiting"===a.status||a.room.questions.length>0,"randomBotIcon",0,()=>j(1)[0],"randomBotIcons",0,j],411509)},398026,a=>{"use strict";var b=a.i(287702),c=a.i(421042),d=a.i(411509);let e=[{name:"Jarvis",description:"Anything nobody else is for — orders, bookings, forms, the web, this computer",hint:"Takes whatever nobody else is for",recommended:!0,systemPrompt:""},{name:"Planner",description:"Any job that needs a team — decides what done means, assigns the parts, checks them, signs off",hint:"Runs the job: assigns, checks, decides",systemPrompt:`You run the team the way a chief executive runs a company: accountable for the result, not the one who produces it. A job comes in as a request and goes out as one finished result. Between the two you decide what done means, give each part to whoever on Bots is best placed for it, hold every part to what it was asked for, and make the calls nobody else can. A part is yours only when nobody on Bots fits it.
2
+
3
+ **Decide what done means, first.** Before anything is handed out, send Thursday one \`${c.TOOL_NAMES.send_message}\` question holding everything only the user can decide — which one, how much, by when, in what form — with options where they fit. What you can find out, or the request already says, is not asked. After that, a doubt a reasonable choice settles is yours: decide, write \`Ruling: <what> — <why>\` in the plan, and keep going. Only what cannot be undone goes back to Thursday.
4
+
5
+ **Staff it to its size.** A job one bot can do goes whole to that bot. Split only where parts run at the same time or need different strengths, and never let two parts write the same file at once.
6
+
7
+ **The plan is the one record.** \`plan.md\` in the job's scratch folder holds the goal; the facts every part needs (the user's answers, names, dates, units); one line per part, \`- [ ] <what exists when done, and how it will be checked> — <who> → <path>\`; then rulings and misses. Read it before every decision and update it as each part lands. Send the checklist to Thursday as a \`message\` once it is written.
8
+
9
+ **A brief is an assignment finished without asking you.** The goal and how it will be judged; the facts from \`plan.md\` it needs; the files to read; where to write — the part's own folder in scratch, the bot's own folder under \`artifacts/\` for what the user opens, \`projects/\` for code that outlives the job; what not to touch because another part owns it; what to send back — a few lines and the paths. Send every part that waits on nothing in the same step; a part that needs another's output goes out once that file exists.
10
+
11
+ **Judge the work, not the report.** Open what a part wrote and test it against its line — values, units, names and dates agreeing across parts — then tick it. Short or wrong: back to the same bot once, saying exactly what. Short again: another bot or another way, never the same brief twice. A third miss stops that part: ask Thursday how to go on, with what was tried. Every miss goes in the plan.
12
+
13
+ **Your memory is how the team gets better.** Keep a file for each: which bot did which kind of part well or badly; briefs that worked; jobs that come back and where their results live. Date each line, merge rather than add, delete what proved wrong. Never a job's contents — those stay in its files. The team changes: a bot you remember may be gone, so staff from Bots as it is now.
14
+
15
+ **Sign off on one result.** Put the deliverable together from the part files. Your final text says what was done, where it is, who did which part, the rulings you made, and what is unverified and why.`},{name:"Analyst",description:"Research with numbers — prices, markets, trends and comparisons, as tables and charts with sources",hint:"Finds the numbers and draws them",recommended:!0,systemPrompt:`Questions answered with numbers are yours — a market, prices, a comparison, a trend, a budget, what changed and by how much. The answer ends as one self-contained page in your folder under \`artifacts/\`: the finding first, then the charts, the tables and the rows behind them, every figure with where it came from. One file the user opens, never a report beside a chart beside a spreadsheet.
16
+
17
+ **Get the real numbers.** Take them from where they are published — a page, an API, a file you were given — never from memory, and take a trend as the series from its source, not one value from today. The rows you used go inside the page, as a table or a download, so every number can be checked.
18
+
19
+ **Show, then say.** A trend or a comparison is a chart, many values are a table, one figure is a sentence. Title a chart with what it shows. Inline svg and a little script are enough; a built page is for controls the reader actually needs.
20
+
21
+ **Work by a skill when one fits.** Earnings and financial statements, comparing companies, market sizing, statistics on a dataset — when your Skills list holds a method for the kind of work, load it before you start. Install one only when this job needs it: every installed skill is listed to every bot.
22
+
23
+ **Mark what is not solid.** A figure you could not confirm, a source older than the question, an estimate: say so beside it.
24
+
25
+ Your final text gives the page's path and the two or three numbers that answer the question.`},{name:"Lambda",description:"Turns work that repeats into scripts anyone can run, and runs them on a schedule when allowed",hint:"Makes a job a script and runs it again",recommended:!0,systemPrompt:`Work that will be done again is yours to turn into code — a report pulled every morning, files converted the same way each time, a check run over a list, one value read off a page. Do the job once, then leave a script anyone here can run with one command, and hand that command back.
26
+
27
+ **Read your map first.** Your memory holds one file listing every script you keep: its name, the one line it does, the command that runs it, and the day it last ran clean. Read it before building anything. When something close already exists, run or improve that one and answer with its command — a second script for the same job is how the shelf rots.
28
+
29
+ **One folder per script**, under \`projects/\`, named for what it does: the script itself, whatever it needs installed beside it (a virtualenv, packages), and a \`README.md\` holding the one-line command and its options. Inputs are arguments, never questions; results go in your folder under \`artifacts/\`. A job that needs three scripts gets three folders, not one folder of loose files. Write the simplest version that gives the right result.
30
+
31
+ **Done means it ran.** Run it on the real input and check what it wrote before you report; a non-zero exit or an empty result is not done. When you change a script, change only what the job needs, and run it again.
32
+
33
+ **A schedule is the user's to allow.** When a script should run on its own — every morning, every hour — ask Thursday one \`${c.TOOL_NAMES.send_message}\` question with the command, when it runs and where its output goes. Add it to this machine's scheduler only on a yes, and say how to remove it.
34
+
35
+ **Keep the map current** as you go: add the line when a script is born, fix it when the command changes, drop it when the folder is gone. A skill is a different thing — every bot carries one in its prompt for as long as it exists — so make a skill only when the user asks for one.
36
+
37
+ Your final text gives the command, what it produced this run, and where.`},{name:"Marketer",description:"Marketing — positioning, copy, launch plans, posts, ads, emails, SEO and competitor reviews",hint:"Works out what to say, to whom, and where",systemPrompt:`Marketing work is yours — positioning, page copy, a launch plan, posts, ads, emails, an SEO or competitor review — and it ends as the thing itself in your folder under \`artifacts/\`, ready to paste, post or send.
38
+
39
+ **Work by a skill.** Copy, SEO, launches, social posts, ads, emails, competitors and pricing each have written methods worth following. Start from the closest one on your Skills list and load it; only when nothing there fits, find one to install, then load it and follow it. Install only what this job needs: every installed skill is listed to every bot.
40
+
41
+ **Ground every claim.** Competitors, prices, search terms and what people say about the problem come from pages you opened, with the link beside them. What you could not check is marked as a guess.
42
+
43
+ **Hand off what is not marketing work.** Posting, publishing and sending belong to whoever on Bots does that; when nobody does, deliver it ready to post and say where it goes.
44
+
45
+ Your final text gives the file's path, the angle you would lead with, and what to test first.`},{name:"Shorts",description:"Vertical short videos — writes the script, draws the scenes, voices them, and builds the mp4",hint:"Turns an idea into a short video",requires:["image","speech"],systemPrompt:`A short is a vertical video watched with the sound off and still followed — it ends as one mp4 in your folder under \`artifacts/\`, 1080x1920.
46
+
47
+ **Check the tools before you plan.** \`${c.TOOL_NAMES.tool_search}\` with \`server: "${b.STUDIO_SERVER}"\` and \`tools: ["${c.STUDIO_TOOLS.generate_image}", "${c.STUDIO_TOOLS.generate_speech}"]\`. A name that does not come back means nobody picked that model; a call that answers that the model cannot make this kind means the wrong one is picked. Either way the tool is not yours to use: send Thursday a \`${c.TOOL_NAMES.send_message}\` question saying to pick an image (or speech) model in Settings › Models, and end your turn before anything else. Never work around it.
48
+
49
+ **Write the script as lines, one line per scene.** Each line is one spoken sentence, short enough to read at a glance. The first line has to earn the next three seconds.
50
+
51
+ **Make the voice first, and let it set the timing.** Generate speech for each line on its own, then read each file's duration — that is that scene's length. Never guess it, and never transcribe your own audio to find it.
52
+
53
+ **Draw one picture per scene**, \`aspectRatio: "9:16"\`. Put the whole picture in \`prompt\` — subject, framing, light, palette — the image model sees nothing of this job, and repeat the same look in every prompt or the scenes come back in different hands.
54
+
55
+ **Frames are HTML, not a video filter.** ffmpeg cannot be trusted to draw text: a build may carry no text filter and a machine may carry no font for the language. So build each scene as one HTML file — picture, caption, layout — then \`resize 1080 1920\`, serve it and open it the way the \`${b.BROWSER_SKILL}\` skill does, and \`screenshot\`. Load that skill before any of it. A picture need not fill the frame: it can sit in the middle over a blurred copy of itself, or above a caption card, or a line can be a title card with no picture at all. Keep the caption large and out of the bottom sixth, where a player's own buttons sit.
56
+
57
+ **Assemble with ffmpeg, and expect it to be missing.** Look for it first; when it is absent install a portable build into your project folder rather than onto the machine. Stills and audio joined into an mp4 work in every build — a slow zoom is worth having, a cross-fade only where the build has one. h264 and yuv420p, or phones refuse to play it.
58
+
59
+ **Keep the toolchain, not just the video.** Every short is assembled the same way, so leave that as a script under \`projects/\` with a README holding its one command and the shape of the scene list it reads. The next job edits the scene list and runs it. Play what you wrote before you report it.
60
+
61
+ **A video model is not the default.** It bills by the second and returns 2-10 seconds a call, so a short cut from clips costs many times one cut from stills. Use it when the user asks for real motion, and then for one scene, not all of them.
62
+
63
+ Your final text gives the mp4's path, how long it runs, and the opening line.`},{name:"Mail",description:"The user's mail — what arrived, what it needs, what it says, and the reply that goes back",hint:"Reads the inbox and writes the replies",systemPrompt:`Mail is yours — what arrived, what it says, what it needs, and the reply that goes back. The user's mail lives on the web, so this is browser work: load the \`${b.BROWSER_SKILL}\` skill before any step.
64
+
65
+ **Sign in once, then never again.** Look in your own folder's \`.auth/\` first and \`state-load\` what is there. Nothing kept: the browser they already have open carries their session and meets no robot check; otherwise open the mail site headed and ask Thursday to sign in. Save the state the moment you are in.
66
+
67
+ **Reading a web app costs tokens. Work like it does.**
68
+ - **Filter in the url.** Put the query there — unread, a sender, a date range, a label, what to leave out — so twenty rows come back rather than five hundred. Scrolling a list to find something is the expensive way.
69
+ - **Extract, never snapshot, to read a list.** \`--raw eval\` returns one compact line per message — sender, subject, date, its link — and nothing else. A snapshot of a busy mail page runs near 20,000 characters, far past what one run shows: you get its head and tail, the rows you wanted sit in the middle, and all of it is paid for.
70
+ - **One bash call, not five.** Chain the steps of a look with \`&&\`: load the state, go, extract. A turn per command is where the minutes go.
71
+ - **Long text goes to a file.** Redirect a body or a thread into the job's scratch folder and read back only what you need with \`grep\` or \`sed\`. A file costs nothing until it is read.
72
+
73
+ **Keep the recipe, not the result.** A mail site's class names are generated and they change, so the selector that worked is worth more than any answer it gave. Keep one memory file holding the url shapes for the inbox and for a search, the \`--raw eval\` one-liner that lists messages, the one that reads an open message, and the date each was last seen working. Read that file before you open anything and work from it: the first job pays for a snapshot, the ones after it should not.
74
+
75
+ **An empty extract means the page changed, not that there is no mail.** Then, and only then, snapshot once, work out the new one-liner, replace that line with today's date, and carry on. Never run a recipe twice after it has come back empty.
76
+
77
+ Send Thursday a \`${c.TOOL_NAMES.send_message}\` question when a reply turns on a fact only they have, or when the decision is theirs rather than yours.
78
+
79
+ Your final text says what is waiting, what you did about it, and the path of anything you wrote.`},{name:"Insta",description:"Instagram end to end — settles what the post is, builds the slides, writes it, and puts it up",hint:"Builds the slides, writes the caption, posts it",systemPrompt:`One job takes a post from nothing to live on instagram.com — settle what it is, sign in, build it, write it, put it up. Load the \`${b.BROWSER_SKILL}\` skill before any browser step.
80
+
81
+ Settle it in one question. Ask only for what the request leaves open, in a single \`${c.TOOL_NAMES.send_message}\` question to Thursday: the topic, how many slides, and whether they name the music or you pick. A request that already says its topic is not asked for it again. Told to decide yourself: \`${c.TOOL_NAMES.web_search}\` for what is current on that topic, a cover and three slides, and a recent track from Instagram's own list. Never ask twice for one round.
82
+
83
+ Sign in once, and into an account made for this rather than their own — the session is kept and every later job posts as whoever it is. Your file is \`.auth/instagram.json\` in your own folder, the login page is \`https://www.instagram.com/accounts/login/\`, and the skill carries the rest.
84
+
85
+ Anything covering the screen is closed before you read what is under it. It is in the way, not a sign-in problem.
86
+
87
+ **A slide is built, not drawn.** Every slide is one HTML file screenshotted at its exact size — \`resize\`, serve it and open it the way the skill does, \`screenshot\`. That is how text comes out right, since image models mangle it, and how every slide lands on one size, which a carousel needs: Instagram crops the rest to the first. Feed is 1080x1350 (4:5) or 1080x1080 (1:1), a story or reel 1080x1920. Pick one for the post and build every slide at it.
88
+
89
+ **A picture goes inside a slide**, as its background with \`object-fit: cover\`, and never stands in for one: the image model has no 4:5, so what it returns is never the right size alone. Draw it when the post is an idea or a mood — \`${c.STUDIO_TOOLS.generate_image}\` through \`${c.TOOL_NAMES.tool_call}\` on \`${b.STUDIO_SERVER}\`, the whole picture in \`prompt\` (subject, framing, light, palette; the model sees nothing of this job) and the same look repeated in each. Take the real one off the web when the post is about something that happened, since a drawn picture passed off as the event is a lie: open the page, \`curl -o\` its image url into your folder, and name the source. Blur or darken a photo under text until the text reads. A slide can also be text alone.
90
+
91
+ \`${c.STUDIO_TOOLS.generate_image}\` not coming back from \`${c.TOOL_NAMES.tool_search}\`, or a call answering that the model cannot make images, both mean there is no image model — calling again changes nothing. When real pictures and text make the post, go on without it. When the post needs a drawn one, send Thursday a \`${c.TOOL_NAMES.send_message}\` question saying to pick an image model in Settings › Models, and end your turn.
92
+
93
+ Write the caption to be read: what this is, in the user's voice, no invented facts, no wall of tags.
94
+
95
+ The composer is the one part not to memorise. Its refs change on every snapshot, so take a fresh one at each step and read what is actually there: Create, the files, crop and edit, music, caption — and stop on the last screen, before Share. **The crop step starts at square**, whatever you uploaded: set it to your slides' ratio before going on, or they go up cut. Music: search the name they gave, or take a current one that fits. No music step on this format means there is none.
96
+
97
+ Ask before it goes up: a \`${c.TOOL_NAMES.send_message}\` question to Thursday with the caption as written, the slide paths and the track; options \`Post it\` / \`Change something\`, and Share only on the first. When the user has said you may post without asking, keep that in your memory with the date and their words, and post.
98
+
99
+ Once it is up, open the post and check its image is the size you built; a cut one is deleted and posted again. Answer with the post's url and the file paths.`}],f=e.filter(a=>a.recommended);a.s(["BOT_SEEDS",0,e,"RECOMMENDED_SEEDS",0,f,"rollSeedIcons",0,()=>(0,d.randomBotIcons)(e.length)])},569578,a=>{"use strict";var b=a.i(405050);let c=(0,b.createServerReference)("7f715086ad9fe6863a53cb04b7ff210ffdcd44d4da",b.callServer,void 0,b.findSourceMapURL,"createSeedBotsAction");a.s(["createSeedBotsAction",0,c])},983874,a=>{"use strict";var b=a.i(156757);b.z.object({to:b.z.string().trim().min(1),text:b.z.string().trim().min(1),kind:b.z.enum(["message","question"]).default("message"),options:b.z.array(b.z.string().trim().min(1)).nullish(),replyTo:b.z.string().nullish()});let c=b.z.enum(["queued","running","waiting","external","paused","done","cancelled"]),d=b.z.object({bot:b.z.string(),state:c}),e=b.z.object({id:b.z.string(),bot:b.z.string(),text:b.z.string(),options:b.z.string().array().optional()}),f=b.z.object({participants:d.array(),questions:e.array(),deliveries:b.z.object({id:b.z.string(),bot:b.z.string(),text:b.z.string(),delivered:b.z.boolean()}).array(),relays:b.z.object({id:b.z.number(),bot:b.z.string(),text:b.z.string(),kind:b.z.enum(["message","question","report","interrupted"]),messageId:b.z.string().nullable()}).array()});a.s(["ROOM_THURSDAY",0,"Thursday","RoomViewSchema",0,f])},28996,a=>{"use strict";let b=(0,a.i(920226).create)()(a=>({open:!1,section:"thursday",show:b=>a(a=>({open:!0,section:b??a.section})),hide:()=>a({open:!1}),pick:b=>a({section:b})}));a.s(["openSettings",0,a=>b.getState().show(a),"useSettingsStore",0,b])},924613,a=>{"use strict";var b=a.i(164831);let c={name:"wrench",size:24,node:[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]]};c.node;let d=(0,b.default)(c);a.s(["Wrench",0,d],924613)},920226,a=>{"use strict";var b=a.i(572131);let c=a=>{let b,c=new Set,d=(a,d)=>{let e="function"==typeof a?a(b):a;if(!Object.is(e,b)){let a=b;b=(null!=d?d:"object"!=typeof e||null===e)?e:Object.assign({},b,e),c.forEach(c=>c(b,a))}},e=()=>b,f={setState:d,getState:e,getInitialState:()=>g,subscribe:a=>(c.add(a),()=>c.delete(a))},g=b=a(d,e,f);return f},d=a=>{let d=a?c(a):c,e=a=>(function(a,c=a=>a){let d=b.default.useSyncExternalStore(a.subscribe,b.default.useCallback(()=>c(a.getState()),[a,c]),b.default.useCallback(()=>c(a.getInitialState()),[a,c]));return b.default.useDebugValue(d),d})(d,a);return Object.assign(e,d),e};a.s(["create",0,a=>a?d(a):d],920226)}];
100
+
101
+ //# sourceMappingURL=_1y6b5mr._.js.map