thursday-agent 0.8.0 → 0.10.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 (301) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/prerender-manifest.json +3 -3
  4. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  5. package/.next/server/app/_global-error.html +1 -1
  6. package/.next/server/app/_global-error.rsc +1 -1
  7. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  10. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  11. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/_not-found.html +1 -1
  13. package/.next/server/app/_not-found.rsc +2 -2
  14. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  15. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  16. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  17. package/.next/server/app/api/artifact/route.js.nft.json +1 -1
  18. package/.next/server/app/api/bot/keep-working/route.js.nft.json +1 -1
  19. package/.next/server/app/api/bot/memory/files/route.js.nft.json +1 -1
  20. package/.next/server/app/api/bot/memory/route.js.nft.json +1 -1
  21. package/.next/server/app/api/bot/route.js.nft.json +1 -1
  22. package/.next/server/app/api/bot/thread/[id]/route.js.nft.json +1 -1
  23. package/.next/server/app/api/bot/thread/route.js.nft.json +1 -1
  24. package/.next/server/app/api/config/route.js.nft.json +1 -1
  25. package/.next/server/app/api/events/route.js.nft.json +1 -1
  26. package/.next/server/app/api/favicon/[host]/route.js.nft.json +1 -1
  27. package/.next/server/app/api/file/[...path]/route.js.nft.json +1 -1
  28. package/.next/server/app/api/llm-model/catalog/route.js.nft.json +1 -1
  29. package/.next/server/app/api/llm-model/credits/route.js.nft.json +1 -1
  30. package/.next/server/app/api/llm-model/route.js.nft.json +1 -1
  31. package/.next/server/app/api/llm-model/subscription/route.js.nft.json +1 -1
  32. package/.next/server/app/api/mcp/[name]/route.js.nft.json +1 -1
  33. package/.next/server/app/api/mcp/oauth/callback/route.js.nft.json +1 -1
  34. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  35. package/.next/server/app/api/mcp/tools/route.js.nft.json +1 -1
  36. package/.next/server/app/api/memory/edit/route.js +1 -1
  37. package/.next/server/app/api/memory/edit/route.js.nft.json +1 -1
  38. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  39. package/.next/server/app/api/probe/route.js.nft.json +1 -1
  40. package/.next/server/app/api/reach/route.js +11 -11
  41. package/.next/server/app/api/reach/route.js.nft.json +1 -1
  42. package/.next/server/app/api/routine/route.js +6 -6
  43. package/.next/server/app/api/routine/route.js.nft.json +1 -1
  44. package/.next/server/app/api/signins/route.js.nft.json +1 -1
  45. package/.next/server/app/api/skills/[source]/[name]/route.js.nft.json +1 -1
  46. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  47. package/.next/server/app/api/thursday/call/route.js.nft.json +1 -1
  48. package/.next/server/app/api/thursday/skills/route.js.nft.json +1 -1
  49. package/.next/server/app/api/thursday/text/route.js +11 -11
  50. package/.next/server/app/api/thursday/text/route.js.nft.json +1 -1
  51. package/.next/server/app/api/thursday/tool-call/route.js +6 -6
  52. package/.next/server/app/api/thursday/tool-call/route.js.nft.json +1 -1
  53. package/.next/server/app/api/workspace/files/route.js.nft.json +1 -1
  54. package/.next/server/app/api/workspace/route.js.nft.json +1 -1
  55. package/.next/server/app/artifact/[...path]/page/server-reference-manifest.json +1 -1
  56. package/.next/server/app/artifact/[...path]/page.js.nft.json +1 -1
  57. package/.next/server/app/artifact/[...path]/page_client-reference-manifest.js +1 -1
  58. package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  59. package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  60. package/.next/server/app/page/server-reference-manifest.json +56 -56
  61. package/.next/server/app/page.js +3 -3
  62. package/.next/server/app/page.js.nft.json +1 -1
  63. package/.next/server/app/page_client-reference-manifest.js +1 -1
  64. package/.next/server/chunks/[root-of-the-server]__012s2o8._.js +1 -1
  65. package/.next/server/chunks/[root-of-the-server]__04r4h-2._.js +1 -1
  66. package/.next/server/chunks/[root-of-the-server]__0mrk2it._.js +1 -1
  67. package/.next/server/chunks/[root-of-the-server]__0nmhgeo._.js +3 -0
  68. package/.next/server/chunks/[root-of-the-server]__1fy2g82._.js +3 -0
  69. package/.next/server/chunks/[root-of-the-server]__1ndi14y._.js +1 -1
  70. package/.next/server/chunks/[root-of-the-server]__1nmflqk._.js +3 -0
  71. package/.next/server/chunks/[root-of-the-server]__1v7-zke._.js +1 -1
  72. package/.next/server/chunks/[root-of-the-server]__1wnzmx9._.js +3 -0
  73. package/.next/server/chunks/[root-of-the-server]__1xv-5cq._.js +1 -1
  74. package/.next/server/chunks/[root-of-the-server]__1ygplx1._.js +1 -1
  75. package/.next/server/chunks/_05v8k21._.js +1 -1
  76. package/.next/server/chunks/_0awtznl._.js +4 -4
  77. package/.next/server/chunks/_0k6qjcf._.js +1 -1
  78. package/.next/server/chunks/_0na2fj1._.js +5 -5
  79. package/.next/server/chunks/_0x-ej3f._.js +21 -21
  80. package/.next/server/chunks/_1dc_d1q._.js +22 -20
  81. package/.next/server/chunks/_1jc5g4p._.js +2 -2
  82. package/.next/server/chunks/_1jn-aep._.js +50 -48
  83. package/.next/server/chunks/{_1u8ygbz._.js → _1m88lkh._.js} +7 -7
  84. package/.next/server/chunks/_1uuucy-._.js +4 -4
  85. package/.next/server/chunks/_1v9r2ke._.js +1 -1
  86. package/.next/server/chunks/ssr/{[root-of-the-server]__1h4bnrf._.js → [root-of-the-server]__0cxqzfc._.js} +2 -2
  87. package/.next/server/chunks/ssr/{[root-of-the-server]__1kyi568._.js → [root-of-the-server]__0tvavy9._.js} +1 -1
  88. package/.next/server/chunks/ssr/[root-of-the-server]__0tzekbl._.js +1 -1
  89. package/.next/server/chunks/ssr/[root-of-the-server]__1-d2tgh._.js +3 -0
  90. package/.next/server/chunks/ssr/[root-of-the-server]__1se25x0._.js +1 -1
  91. package/.next/server/chunks/ssr/{_1i3ddn7._.js → _05pl_u8._.js} +1 -1
  92. package/.next/server/chunks/ssr/_05rxyf9._.js +3 -0
  93. package/.next/server/chunks/ssr/_070nv1_._.js +3 -0
  94. package/.next/server/chunks/ssr/_097-ljd._.js +1 -1
  95. package/.next/server/chunks/ssr/{_10y6r1n._.js → _0bp-_fi._.js} +3 -3
  96. package/.next/server/chunks/ssr/_0fqhhwi._.js +1 -1
  97. package/.next/server/chunks/ssr/_0hlxij-._.js +3 -0
  98. package/.next/server/chunks/ssr/_0ld9_qq._.js +1 -1
  99. package/.next/server/chunks/ssr/{_0z8jpch._.js → _0p9pmxe._.js} +2 -2
  100. package/.next/server/chunks/ssr/{_1y-ea28._.js → _0s41irp._.js} +2 -2
  101. package/.next/server/chunks/ssr/_0tg0vf8._.js +164 -0
  102. package/.next/server/chunks/ssr/_0u5xv6g._.js +3 -0
  103. package/.next/server/chunks/ssr/{_1_rqu8x._.js → _12mijol._.js} +7 -7
  104. package/.next/server/chunks/ssr/_15zqt-t._.js +1 -1
  105. package/.next/server/chunks/ssr/{_1oijqjw._.js → _173siic._.js} +2 -2
  106. package/.next/server/chunks/ssr/_17v-33v._.js +20 -0
  107. package/.next/server/chunks/ssr/_184327j._.js +1 -1
  108. package/.next/server/chunks/ssr/{_1nod5hh._.js → _19n08g5._.js} +2 -2
  109. package/.next/server/chunks/ssr/_1alxym6._.js +3 -0
  110. package/.next/server/chunks/ssr/{_0hzz82u._.js → _1d423aj._.js} +25 -23
  111. package/.next/server/chunks/ssr/{_0ewory0._.js → _1doidrw._.js} +2 -2
  112. package/.next/server/chunks/ssr/{_0pm-2p-._.js → _1flsjeo._.js} +2 -2
  113. package/.next/server/chunks/ssr/_1mqn9mc._.js +1 -1
  114. package/.next/server/chunks/ssr/_1neoj22._.js +1 -1
  115. package/.next/server/chunks/ssr/_1ng831c._.js +3 -0
  116. package/.next/server/chunks/ssr/{_19g570d._.js → _1u2jw0i._.js} +3 -3
  117. package/.next/server/chunks/ssr/_1xoch6f._.js +1 -1
  118. package/.next/server/chunks/ssr/{_1u1mxu9._.js → _1yk6yak._.js} +2 -2
  119. package/.next/server/chunks/ssr/features_bot_1s_-2vj._.js +1 -1
  120. package/.next/server/chunks/ssr/features_bot_1yr-_pm._.js +3 -0
  121. package/.next/server/chunks/ssr/features_connectors_components_mcp-setting_tsx_0jmbgvp._.js +1 -1
  122. package/.next/server/chunks/ssr/features_memory_components_memory-setting_tsx_0oa43sw._.js +1 -1
  123. package/.next/server/chunks/ssr/features_routine_components_routine-setting_tsx_055fknz._.js +1 -1
  124. package/.next/server/chunks/ssr/{node_modules_1_8mv4v._.js → node_modules_048wmmj._.js} +1 -1
  125. package/.next/server/chunks/ssr/{node_modules_1p9rdsy._.js → node_modules_04t200t._.js} +1 -1
  126. package/.next/server/chunks/ssr/{node_modules_03ptrl9._.js → node_modules_0511ha-._.js} +1 -1
  127. package/.next/server/chunks/ssr/{node_modules_07ih6wb._.js → node_modules_08g12f-._.js} +1 -1
  128. package/.next/server/chunks/ssr/{node_modules_01f8_se._.js → node_modules_0cdu6jq._.js} +1 -1
  129. package/.next/server/chunks/ssr/{node_modules_111sh9o._.js → node_modules_0eb4rx7._.js} +1 -1
  130. package/.next/server/chunks/ssr/{node_modules_10gbm2y._.js → node_modules_0f2k5l0._.js} +1 -1
  131. package/.next/server/chunks/ssr/{node_modules_1ix-g49._.js → node_modules_0piws2a._.js} +1 -1
  132. package/.next/server/chunks/ssr/{node_modules_0t-44lj._.js → node_modules_0pk6i-e._.js} +1 -1
  133. package/.next/server/chunks/ssr/{node_modules_0lg75qx._.js → node_modules_0s1lwc9._.js} +1 -1
  134. package/.next/server/chunks/ssr/{node_modules_1v9tc1c._.js → node_modules_0wq4-ts._.js} +1 -1
  135. package/.next/server/chunks/ssr/{node_modules_1m3gb16._.js → node_modules_0zjqwz7._.js} +1 -1
  136. package/.next/server/chunks/ssr/{node_modules_0b8df3s._.js → node_modules_11hbkuj._.js} +1 -1
  137. package/.next/server/chunks/ssr/{node_modules_00jv9_3._.js → node_modules_18woe20._.js} +1 -1
  138. package/.next/server/chunks/ssr/{node_modules_1x825hz._.js → node_modules_1_afpz7._.js} +1 -1
  139. package/.next/server/chunks/ssr/{node_modules_0woscox._.js → node_modules_1_ban4u._.js} +1 -1
  140. package/.next/server/chunks/ssr/{node_modules_0gt-uw9._.js → node_modules_1cxc8kn._.js} +1 -1
  141. package/.next/server/chunks/ssr/{node_modules_059vtf2._.js → node_modules_1dcbvfw._.js} +1 -1
  142. package/.next/server/chunks/ssr/{node_modules_1lsyy7k._.js → node_modules_1expacw._.js} +1 -1
  143. package/.next/server/chunks/ssr/{node_modules_1-7qawg._.js → node_modules_1ksh9gy._.js} +1 -1
  144. package/.next/server/chunks/ssr/{node_modules_06w645b._.js → node_modules_1m2ho33._.js} +1 -1
  145. package/.next/server/chunks/ssr/{node_modules_0sz5yg1._.js → node_modules_1n0h9sf._.js} +1 -1
  146. package/.next/server/chunks/ssr/{node_modules_1teyzfa._.js → node_modules_1qehmwm._.js} +1 -1
  147. package/.next/server/chunks/ssr/{node_modules_0yv-re6._.js → node_modules_1xzo2wn._.js} +1 -1
  148. package/.next/server/chunks/ssr/{node_modules_20xmwtu._.js → node_modules_1zf46lp._.js} +1 -1
  149. package/.next/server/chunks/ssr/{node_modules_0ii1l89._.js → node_modules_1zkpek5._.js} +1 -1
  150. package/.next/server/chunks/ssr/{node_modules_@base-ui_react_0jne69c._.js → node_modules_@base-ui_react_0buz1-j._.js} +1 -1
  151. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_00q1oa3._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0avl8-1._.js} +1 -1
  152. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1-2_5z7._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_14oslro._.js} +1 -1
  153. package/.next/server/middleware-build-manifest.js +3 -3
  154. package/.next/server/pages/404.html +1 -1
  155. package/.next/server/pages/500.html +1 -1
  156. package/.next/server/server-reference-manifest.js +1 -1
  157. package/.next/server/server-reference-manifest.json +57 -57
  158. package/.next/static/chunks/03kgfyrli_0gz.js +1 -0
  159. package/.next/static/chunks/{1e4yrzs5evq_r.js → 09120tms63y21.js} +1 -1
  160. package/.next/static/chunks/{2zhfdbq50ee5i.js → 0o980477kfqez.js} +1 -1
  161. package/.next/static/chunks/{1ocy4w0v20a3v.js → 0oz3rs47yy3p8.js} +2 -2
  162. package/.next/static/chunks/{2be08eqxsfc1y.js → 0w20wnnfrscq7.js} +1 -1
  163. package/.next/static/chunks/{09c13vnqy7al3.js → 19ojn4lomsk0r.js} +2 -2
  164. package/.next/static/chunks/{2om4lkg86feb4.js → 1mwee7xvitlp9.js} +1 -1
  165. package/.next/static/chunks/1p764d75_0lhv.js +18 -0
  166. package/.next/static/chunks/{0oz7a68qanm99.js → 1pjygp7hqib6j.js} +1 -1
  167. package/.next/static/chunks/22shnca_6zfzs.js +1 -0
  168. package/.next/static/chunks/{34s52v8f841zo.js → 24dst4mgurbsh.js} +1 -1
  169. package/.next/static/chunks/25zq8gzhbdsr7.js +1 -0
  170. package/.next/static/chunks/2d4z3er53ng8r.js +1 -0
  171. package/.next/static/chunks/{2d3yhjtafgmtw.js → 2ky81z-jgvasc.js} +1 -1
  172. package/.next/static/chunks/2m6jd3586ijb-.js +1 -0
  173. package/.next/static/chunks/{0k5tkt_qi52kb.js → 2ndw4w4u2x51r.js} +1 -1
  174. package/.next/static/chunks/2qod5tqlpz8b7.js +17 -0
  175. package/.next/static/chunks/{21gf2t_whhurc.js → 30skcjexa57zn.js} +2 -2
  176. package/.next/static/chunks/{2upc9mkcc3nlq.js → 35kwn237o4wdn.js} +1 -1
  177. package/.next/static/chunks/{2u9yjkpkoij75.js → 3exjsi8pfdvzj.js} +1 -1
  178. package/.next/static/chunks/3obf9n3cxj99k.js +1 -0
  179. package/.next/static/chunks/3qq4o8w2rv_e9.css +1 -0
  180. package/.next/static/chunks/{0g1p98s2pfx2w.js → 3vynnr71ghvom.js} +2 -2
  181. package/.next/static/chunks/{44kjmi5h_p8px.js → 42890jqk049q1.js} +1 -1
  182. package/README.md +35 -14
  183. package/bin/port.mjs +11 -7
  184. package/bin/thursday.mjs +1 -1
  185. package/components/ui/radio-group.tsx +1 -1
  186. package/components/ui/shiny-text.tsx +3 -22
  187. package/docs/how-it-works.md +11 -3
  188. package/docs/images/first-run.png +0 -0
  189. package/docs/images/keeps-going.png +0 -0
  190. package/docs/images/two-minds.png +0 -0
  191. package/features/ai/components/model-browser.tsx +1 -1
  192. package/features/ai/components/model-picker.tsx +1 -1
  193. package/features/ai/guide.ts +9 -4
  194. package/features/ai/prompts/bot.prompt.ts +4 -1
  195. package/features/ai/tools/routine.tool.ts +28 -16
  196. package/features/bot/bot.runner.ts +3 -1
  197. package/features/bot/components/bot-mark.tsx +6 -1
  198. package/features/bot/components/bot-setting.tsx +4 -6
  199. package/features/bot/components/bot-tool.tsx +2 -0
  200. package/features/bot/components/room-list.tsx +12 -3
  201. package/features/bot/components/room-pill.tsx +26 -19
  202. package/features/config/components/config-setting.tsx +17 -5
  203. package/features/config/components/voice-key.tsx +38 -18
  204. package/features/connectors/mcp.const.ts +90 -59
  205. package/features/intro/components/intro.tsx +50 -27
  206. package/features/routine/components/routine-mark.tsx +4 -6
  207. package/features/routine/components/routine-setting.tsx +332 -143
  208. package/features/routine/routine.query.ts +24 -3
  209. package/features/routine/routine.schema.ts +55 -4
  210. package/features/settings/components/install-app.tsx +1 -4
  211. package/features/settings/components/setting-ui.tsx +1 -1
  212. package/features/skills/skills.discover.ts +2 -1
  213. package/features/skills/skills.query.ts +5 -1
  214. package/features/skills/skills.schema.ts +2 -0
  215. package/features/thursday/components/ascii-orb.tsx +39 -10
  216. package/features/thursday/components/connect-wave.tsx +284 -0
  217. package/features/thursday/components/side-captions.tsx +29 -17
  218. package/features/thursday/components/thursday-setting.tsx +3 -3
  219. package/features/thursday/components/thursday.tsx +130 -58
  220. package/features/thursday/components/voice-picker.tsx +1 -1
  221. package/features/thursday/components/write-line.tsx +2 -2
  222. package/features/thursday/open-work.ts +11 -3
  223. package/features/thursday/tool-line.ts +94 -12
  224. package/features/thursday/use-text-call.ts +3 -2
  225. package/features/thursday/use-thursday.ts +5 -2
  226. package/features/workspace/components/artifact-view.tsx +129 -7
  227. package/guide/bots.md +17 -5
  228. package/guide/calls.md +15 -7
  229. package/guide/setup.md +10 -2
  230. package/knip.json +1 -0
  231. package/lib/desktop-notify.ts +3 -2
  232. package/package.json +1 -1
  233. package/scripts/bot-context.test.mts +1 -1
  234. package/seed-skills/analyst/README.md +19 -0
  235. package/seed-skills/analyst/data-report/SKILL.md +59 -0
  236. package/seed-skills/analyst/data-report/references/brief.md +31 -0
  237. package/seed-skills/analyst/data-report/references/company.md +41 -0
  238. package/seed-skills/analyst/data-report/references/comparison.md +42 -0
  239. package/seed-skills/analyst/data-report/references/decision.md +28 -0
  240. package/seed-skills/analyst/data-report/references/market-size.md +49 -0
  241. package/seed-skills/analyst/data-report/references/price-check.md +33 -0
  242. package/seed-skills/analyst/data-report/references/sources.md +51 -0
  243. package/seed-skills/analyst/data-report/references/trend.md +39 -0
  244. package/seed-skills/analyst/data-report/scripts/chart.mjs +679 -0
  245. package/seed-skills/analyst/data-report/scripts/fetch.mjs +521 -0
  246. package/seed-skills/insta/instagram/SKILL.md +33 -0
  247. package/seed-skills/insta/instagram/references/dm.md +49 -0
  248. package/seed-skills/insta/instagram/references/post.md +74 -0
  249. package/seed-skills/insta/instagram/scripts/compose.mjs +329 -0
  250. package/seed-skills/insta/instagram/scripts/image-size.mjs +30 -0
  251. package/seed-skills/insta/instagram/scripts/inbox.mjs +159 -0
  252. package/seed-skills/insta/instagram/scripts/lib.mjs +91 -0
  253. package/seed-skills/insta/instagram/scripts/media.mjs +104 -0
  254. package/seed-skills/insta/instagram/scripts/profile.mjs +139 -0
  255. package/seed-skills/insta/instagram/scripts/read.mjs +240 -0
  256. package/seed-skills/insta/instagram/scripts/render.mjs +126 -0
  257. package/seed-skills/insta/instagram/scripts/search.mjs +133 -0
  258. package/seed-skills/insta/instagram/scripts/selectors.mjs +56 -0
  259. package/seed-skills/insta/instagram/scripts/sheet.mjs +100 -0
  260. package/seed-skills/insta/instagram/scripts/webimage.mjs +105 -0
  261. package/seed-skills/insta/instagram/templates/carousel.html +62 -0
  262. package/seed-skills/mail/mail/SKILL.md +37 -0
  263. package/seed-skills/mail/mail/recipes/gmail.mjs +448 -0
  264. package/seed-skills/mail/mail/references/recipes.md +55 -0
  265. package/seed-skills/mail/mail/scripts/mail.mjs +202 -0
  266. package/seed-skills/marketer/README.md +6 -4
  267. package/seed-skills/marketer/copywriting/SKILL.md +1 -1
  268. package/seed-skills/marketer/emails/SKILL.md +1 -1
  269. package/seed-skills/marketer/launch/SKILL.md +1 -1
  270. package/seed-skills/marketer/product-marketing/SKILL.md +5 -5
  271. package/seed-skills/marketer/seo-audit/SKILL.md +1 -1
  272. package/seed-skills/marketer/social/SKILL.md +1 -1
  273. package/skills/computer/SKILL.md +1 -0
  274. package/skills/interactive-page/SKILL.md +4 -0
  275. package/.next/server/chunks/[root-of-the-server]__0n-l_n_._.js +0 -3
  276. package/.next/server/chunks/[root-of-the-server]__0wvo2of._.js +0 -3
  277. package/.next/server/chunks/[root-of-the-server]__1e6aut3._.js +0 -3
  278. package/.next/server/chunks/[root-of-the-server]__1ziojdq._.js +0 -3
  279. package/.next/server/chunks/ssr/[root-of-the-server]__1srp8l5._.js +0 -3
  280. package/.next/server/chunks/ssr/_0mes4s0._.js +0 -3
  281. package/.next/server/chunks/ssr/_0ya0cb0._.js +0 -3
  282. package/.next/server/chunks/ssr/_0yto5s7._.js +0 -20
  283. package/.next/server/chunks/ssr/_10dw2nv._.js +0 -3
  284. package/.next/server/chunks/ssr/_1p0gxeo._.js +0 -164
  285. package/.next/server/chunks/ssr/_1r41yvh._.js +0 -3
  286. package/.next/server/chunks/ssr/_1r79ksv._.js +0 -3
  287. package/.next/server/chunks/ssr/features_bot_1ogjt52._.js +0 -3
  288. package/.next/server/chunks/ssr/node_modules_@base-ui_react_0b3d4m9._.js +0 -3
  289. package/.next/static/chunks/03omwz_vi2ndg.js +0 -1
  290. package/.next/static/chunks/0_1bqgd6wt_og.js +0 -1
  291. package/.next/static/chunks/0abgkzikaznxc.js +0 -1
  292. package/.next/static/chunks/0bddkpash59-o.js +0 -17
  293. package/.next/static/chunks/0c2-bzhy3a0ib.js +0 -1
  294. package/.next/static/chunks/0iilfb1ocevnx.js +0 -1
  295. package/.next/static/chunks/0imbhx-j830a_.css +0 -1
  296. package/.next/static/chunks/24h1y9dhy3m_2.js +0 -1
  297. package/.next/static/chunks/2f_5saocsko_b.js +0 -1
  298. package/.next/static/chunks/2lwbr5vx0ixaj.js +0 -18
  299. /package/.next/static/{UiOMPYpQ4fqGyu5PzS-7j → Ar5V4kMdL4CE1trx8anrH}/_buildManifest.js +0 -0
  300. /package/.next/static/{UiOMPYpQ4fqGyu5PzS-7j → Ar5V4kMdL4CE1trx8anrH}/_clientMiddlewareManifest.js +0 -0
  301. /package/.next/static/{UiOMPYpQ4fqGyu5PzS-7j → Ar5V4kMdL4CE1trx8anrH}/_ssgManifest.js +0 -0
@@ -1,2 +1,2 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,507906,e=>{"use strict";var t,n,r,o,a,i,l,s,c=e.i(843476),u=e.i(689664),d=e.i(867927),f=e.i(456420);let m={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"]};m.node;let p=(0,f.default)(m);var h=e.i(569644);let v={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"]};v.node;let g=(0,f.default)(v);var x=e.i(77071),b=e.i(759659),y=e.i(747925),w=e.i(263676),E=e.i(271645),j=e.i(798120),k=e.i(167881),S=/[\\\/_+.#"@\[\(\{&]/,N=/[\\\/_+.#"@\[\(\{&]/g,C=/[\s-]/,A=/[\s-]/g;function R(e){return e.toLowerCase().replace(A," ")}var O=Object.defineProperty,P=(e,t)=>O(e,"name",{value:t,configurable:!0}),M=!!("u">typeof window&&window.document&&window.document.createElement);function D(e,t,{checkForDefaultPrevented:n=!0}={}){return P(function(r){if(e?.(r),!1===n||!r||!r.defaultPrevented)return t?.(r)},"handleEvent")}function I(e){if(!M)throw Error("Cannot access document outside of the DOM");return e?.ownerDocument??document}function T(e){return"IFRAME"===e.tagName}P(D,"composeEventHandlers"),P(function(e){if(!M)throw Error("Cannot access window outside of the DOM");return e?.ownerDocument?.defaultView??window},"getOwnerWindow"),P(I,"getOwnerDocument"),P(function e(t,n=!1){let{activeElement:r}=I(t);if(!r?.nodeName)return null;if(T(r)&&r.contentDocument)return e(r.contentDocument.body,n);if(n){let e=r.getAttribute("aria-activedescendant");if(e){let t=I(r).getElementById(e);if(t)return t}}return r},"getActiveElement"),P(T,"isFrame");var L=Object.defineProperty,_=(e,t)=>L(e,"name",{value:t,configurable:!0});function F(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function B(...e){return t=>{let n=!1,r=e.map(e=>{let r=F(e,t);return n||"function"!=typeof r||(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];"function"==typeof n?n():F(e[t],null)}}}}function $(...e){return E.useCallback(B(...e),e)}_(F,"setRef"),_(B,"composeRefs"),_($,"useComposedRefs");var z=Object.defineProperty,W=(e,t)=>z(e,"name",{value:t,configurable:!0});function K(e,t=[]){let n=[];function r(t,r){let o=E.createContext(r);o.displayName=t+"Context";let a=n.length;n=[...n,r];let i=W(t=>{let{scope:n,children:r,...i}=t,l=n?.[e]?.[a]||o,s=E.useMemo(()=>i,Object.values(i));return(0,c.jsx)(l.Provider,{value:s,children:r})},"Provider");function l(n,i,s={}){let{optional:c=!1}=s,u=i?.[e]?.[a]||o,d=E.useContext(u);if(d)return d;if(void 0!==r)return r;if(!c)throw Error(`\`${n}\` must be used within \`${t}\``)}return i.displayName=t+"Provider",W(l,"useContext"),[i,l]}W(r,"createContext");let o=W(()=>{let t=n.map(e=>E.createContext(e));return W(function(n){let r=n?.[e]||t;return E.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])},"useScope")},"createScope");return o.scopeName=e,[r,U(o,...t)]}function U(...e){let t=e[0];if(1===e.length)return t;let n=W(()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return W(function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let o=n(e)[`__scope${r}`];return{...t,...o}},{});return E.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])},"useComposedScopes")},"createScope");return n.scopeName=t.scopeName,n}W(function(e,t){let n=E.createContext(t);n.displayName=e+"Context";let r=W(e=>{let{children:t,...r}=e,o=E.useMemo(()=>r,Object.values(r));return(0,c.jsx)(n.Provider,{value:o,children:t})},"Provider");function o(r,a={}){let{optional:i=!1}=a,l=E.useContext(n);if(l)return l;if(void 0!==t)return t;if(!i)throw Error(`\`${r}\` must be used within \`${e}\``)}return r.displayName=e+"Provider",W(o,"useContext"),[r,o]},"createContext"),W(K,"createContextScope"),W(U,"composeContextScopes");var V=globalThis?.document?E.useLayoutEffect:()=>{},q=Object.defineProperty,H=E[" useId ".trim().toString()]||(()=>void 0),X=0;function Y(e){let[t,n]=E.useState(H());return V(()=>{e||n(e=>e??String(X++))},[e]),e||(t?`radix-${t}`:"")}q(Y,"name",{value:"useId",configurable:!0});var G=Object.defineProperty,Z=E[" useEffectEvent ".trim().toString()],J=E[" useInsertionEffect ".trim().toString()];function Q(e){if("function"==typeof Z)return Z(e);let t=E.useRef(()=>{throw Error("Cannot call an event handler while rendering.")});return"function"==typeof J?J(()=>{t.current=e}):V(()=>{t.current=e}),E.useMemo(()=>(...e)=>t.current?.(...e),[])}G(Q,"name",{value:"useEffectEvent",configurable:!0});var ee=Object.defineProperty,et=(e,t)=>ee(e,"name",{value:t,configurable:!0}),en=E[" useInsertionEffect ".trim().toString()]||V;function er({prop:e,defaultProp:t,onChange:n=et(()=>{},"onChange"),caller:r}){let[o,a,i]=eo({defaultProp:t,onChange:n}),l=void 0!==e,s=l?e:o;return[s,E.useCallback(t=>{if(l){let n=ea(t)?t(e):t;n!==e&&i.current?.(n)}else a(t)},[l,e,a,i])]}function eo({defaultProp:e,onChange:t}){let[n,r]=E.useState(e),o=E.useRef(n),a=E.useRef(t);return en(()=>{a.current=t},[t]),E.useEffect(()=>{o.current!==n&&(a.current?.(n),o.current=n)},[n,o]),[n,r,a]}function ea(e){return"function"==typeof e}et(er,"useControllableState"),et(eo,"useUncontrolledState"),et(ea,"isFunction");var ei=Symbol("RADIX:SYNC_STATE");et(function(e,t,n,r){let{prop:o,defaultProp:a,onChange:i,caller:l}=t,s=void 0!==o,c=Q(i),u=[{...n,state:a}];r&&u.push(r);let[d,f]=E.useReducer((t,n)=>{if(n.type===ei)return{...t,state:n.state};let r=e(t,n);return s&&!Object.is(r.state,t.state)&&c(r.state),r},...u),m=d.state,p=E.useRef(m);E.useEffect(()=>{p.current!==m&&(p.current=m,s||c(m))},[m,p,s]);let h=E.useMemo(()=>void 0!==o?{...d,state:o}:d,[d,o]);return E.useEffect(()=>{s&&!Object.is(o,d.state)&&f({type:ei,state:o})},[o,d.state,s]),[h,f]},"useControllableStateReducer");var el=e.i(174080),es=Object.defineProperty,ec=(e,t)=>es(e,"name",{value:t,configurable:!0});function eu(e){let t=E.forwardRef((t,n)=>{let{children:r,...o}=t,a=null,i=!1,l=[];eg(r)&&"function"==typeof ew&&(r=ew(r._payload)),E.Children.forEach(r,e=>{if(eh(e)){i=!0;let t="child"in e.props?e.props.child:e.props.children;eg(t)&&"function"==typeof ew&&(t=ew(t._payload)),a=ef(e,t),l.push(a?.props?.children)}else l.push(e)}),a?a=E.cloneElement(a,void 0,l):!i&&1===E.Children.count(r)&&E.isValidElement(r)&&(a=r);let s=a?ep(a):void 0,c=$(n,s);if(!a){if(r||0===r)throw Error(i?ey(e):eb(e));return r}let u=em(o,a.props??{});return a.type!==E.Fragment&&(u.ref=n?c:s),E.cloneElement(a,u)});return t.displayName=`${e}.Slot`,t}ec(eu,"createSlot");var ed=Symbol.for("radix.slottable");ec(function(e){let t=ec(e=>"child"in e?e.children(e.child):e.children,"Slottable");return t.displayName=`${e}.Slottable`,t.__radixId=ed,t},"createSlottable");var ef=ec((e,t)=>{if("child"in e.props){let t=e.props.child;return E.isValidElement(t)?E.cloneElement(t,void 0,e.props.children(t.props.children)):null}return E.isValidElement(t)?t:null},"getSlottableElementFromSlottable");function em(e,t){let n={...t};for(let r in t){let o=e[r],a=t[r];/^on[A-Z]/.test(r)?o&&a?n[r]=(...e)=>{let t=a(...e);return o(...e),t}:o&&(n[r]=o):"style"===r?n[r]={...o,...a}:"className"===r&&(n[r]=[o,a].filter(Boolean).join(" "))}return{...e,...n}}function ep(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(n=(t=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning)?e.props.ref:e.props.ref||e.ref}function eh(e){return E.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===ed}ec(em,"mergeProps"),ec(ep,"getElementRef"),ec(eh,"isSlottable");var ev=Symbol.for("react.lazy");function eg(e){return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===ev&&"_payload"in e&&ex(e._payload)}function ex(e){return"object"==typeof e&&null!==e&&"then"in e}ec(eg,"isLazyComponent"),ec(ex,"isPromiseLike");var eb=ec(e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,"createSlotError"),ey=ec(e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,"createSlottableError"),ew=E[" use ".trim().toString()],eE=Object.defineProperty,ej=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{let n=eu(`Primitive.${t}`),r=E.forwardRef((e,r)=>{let{asChild:o,...a}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,c.jsx)(o?n:t,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function ek(e,t){e&&el.flushSync(()=>e.dispatchEvent(t))}function eS(e){let t=E.useRef(e);return E.useEffect(()=>{t.current=e}),E.useMemo(()=>(...e)=>t.current?.(...e),[])}eE(ek,"name",{value:"dispatchDiscreteCustomEvent",configurable:!0}),(0,Object.defineProperty)(eS,"name",{value:"useCallbackRef",configurable:!0});var eN=Object.defineProperty,eC=(e,t)=>eN(e,"name",{value:t,configurable:!0}),eA="dismissableLayer.update",eR=E.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),eO=E.forwardRef(eC(function(e,t){let{disableOutsidePointerEvents:n=!1,deferPointerDownOutside:r=!1,onEscapeKeyDown:o,onPointerDownOutside:a,onFocusOutside:i,onInteractOutside:s,onDismiss:u,...d}=e,f=E.useContext(eR),[m,p]=E.useState(null),h=m?.ownerDocument??globalThis?.document,[,v]=E.useState({}),g=$(t,p),x=Array.from(f.layers),[b]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),y=b?x.indexOf(b):-1,w=m?x.indexOf(m):-1,j=f.layersWithOutsidePointerEventsDisabled.size>0,k=w>=y,S=E.useRef(!1),N=eD(e=>{a?.(e),s?.(e),e.defaultPrevented||u?.()},{ownerDocument:h,deferPointerDownOutside:r,isDeferredPointerDownOutsideRef:S,dismissableSurfaces:f.dismissableSurfaces,shouldHandlePointerDownOutside:E.useCallback(e=>{if(!(e instanceof Node))return!1;let t=[...f.branches].some(t=>t.contains(e));return k&&!t},[f.branches,k])}),C=eI(e=>{if(r&&S.current)return;let t=e.target;![...f.branches].some(e=>e.contains(t))&&(i?.(e),s?.(e),e.defaultPrevented||u?.())},h),A=!!m&&w===x.length-1,R=eS(e=>{"Escape"===e.key&&(o?.(e),!e.defaultPrevented&&u&&(e.preventDefault(),u()))});return E.useEffect(()=>{if(A)return h.addEventListener("keydown",R,{capture:!0}),()=>h.removeEventListener("keydown",R,{capture:!0})},[h,A,R]),E.useEffect(()=>{if(m)return n&&(0===f.layersWithOutsidePointerEventsDisabled.size&&(l=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(m)),f.layers.add(m),eT(),()=>{n&&(f.layersWithOutsidePointerEventsDisabled.delete(m),0===f.layersWithOutsidePointerEventsDisabled.size&&(h.body.style.pointerEvents=l))}},[m,h,n,f]),E.useEffect(()=>()=>{m&&(f.layers.delete(m),f.layersWithOutsidePointerEventsDisabled.delete(m),eT())},[m,f]),E.useEffect(()=>{let e=eC(()=>v({}),"handleUpdate");return document.addEventListener(eA,e),()=>document.removeEventListener(eA,e)},[]),(0,c.jsx)(ej.div,{...d,ref:g,style:{pointerEvents:j?k?"auto":"none":void 0,...e.style},onFocusCapture:D(e.onFocusCapture,C.onFocusCapture),onBlurCapture:D(e.onBlurCapture,C.onBlurCapture),onPointerDownCapture:D(e.onPointerDownCapture,N.onPointerDownCapture)})},"DismissableLayer"));function eP(){let e=E.useContext(eR),[t,n]=E.useState(null);return E.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}eC(eP,"useDismissableLayerSurface");var eM=eC(()=>!0,"IS_TRUE");function eD(e,t){let{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:o,dismissableSurfaces:a,shouldHandlePointerDownOutside:i=eM}=t,l=eS(e),s=E.useRef(!1),c=E.useRef(!1),u=E.useRef(new Map),d=E.useRef(()=>{});return E.useEffect(()=>{function e(){c.current=!1,o.current=!1,u.current.clear()}function t(){return Array.from(u.current.values()).some(Boolean)}function f(e){if(!c.current)return;let t=e.target;t instanceof Node&&[...a].some(e=>e.contains(t))||u.current.set(e.type,!0),"click"===e.type&&window.setTimeout(()=>{c.current&&d.current()},0)}function m(e){c.current&&u.current.set(e.type,!1)}eC(e,"resetOutsideInteraction"),eC(t,"isOutsideInteractionIntercepted"),eC(f,"handleInteractionCapture"),eC(m,"handleInteractionBubble");let p=eC(a=>{if(a.target&&!s.current){let f=function(){n.removeEventListener("click",d.current);let r=t();e(),r||eL("dismissableLayer.pointerDownOutside",l,m,{discrete:!0})};if(eC(f,"handleAndDispatchPointerDownOutsideEvent"),!i(a.target)){n.removeEventListener("click",d.current),e(),s.current=!1;return}let m={originalEvent:a};c.current=!0,o.current=r&&0===a.button,u.current.clear(),r&&0===a.button?(n.removeEventListener("click",d.current),d.current=f,n.addEventListener("click",d.current,{once:!0})):f()}else n.removeEventListener("click",d.current),e();s.current=!1},"handlePointerDown"),h=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(let e of h)n.addEventListener(e,f,!0),n.addEventListener(e,m);let v=window.setTimeout(()=>{n.addEventListener("pointerdown",p)},0);return()=>{for(let e of(window.clearTimeout(v),n.removeEventListener("pointerdown",p),n.removeEventListener("click",d.current),h))n.removeEventListener(e,f,!0),n.removeEventListener(e,m)}},[n,l,r,o,a,i]),{onPointerDownCapture:eC(()=>s.current=!0,"onPointerDownCapture")}}function eI(e,t=globalThis?.document){let n=eS(e),r=E.useRef(!1);return E.useEffect(()=>{let e=eC(e=>{e.target&&!r.current&&eL("dismissableLayer.focusOutside",n,{originalEvent:e},{discrete:!1})},"handleFocus");return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)},[t,n]),{onFocusCapture:eC(()=>r.current=!0,"onFocusCapture"),onBlurCapture:eC(()=>r.current=!1,"onBlurCapture")}}function eT(){let e=new CustomEvent(eA);document.dispatchEvent(e)}function eL(e,t,n,{discrete:r}){let o=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?ek(o,a):o.dispatchEvent(a)}eC(eD,"usePointerDownOutside"),eC(eI,"useFocusOutside"),eC(eT,"dispatchUpdate"),eC(eL,"handleAndDispatchCustomEvent");var e_=Object.defineProperty,eF=(e,t)=>e_(e,"name",{value:t,configurable:!0}),eB="focusScope.autoFocusOnMount",e$="focusScope.autoFocusOnUnmount",ez={bubbles:!1,cancelable:!0},eW=E.forwardRef(eF(function(e,t){let{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:a,...i}=e,[l,s]=E.useState(null),u=eS(o),d=eS(a),f=E.useRef(null),m=$(t,s),p=E.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;E.useEffect(()=>{if(r){let e=function(e){if(p.paused||!l)return;let t=e.target;l.contains(t)?f.current=t:eY(f.current,{select:!0})},t=function(e){if(p.paused||!l)return;let t=e.relatedTarget;null!==t&&(l.contains(t)||eY(f.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&eY(l)};eF(e,"handleFocusIn"),eF(t,"handleFocusOut"),eF(n,"handleMutations"),document.addEventListener("focusin",e),document.addEventListener("focusout",t);let r=new MutationObserver(n);return l&&r.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),r.disconnect()}}},[r,l,p.paused]),E.useEffect(()=>{if(l){eG.add(p);let e=document.activeElement;if(!l.contains(e)){let t=new CustomEvent(eB,ez);l.addEventListener(eB,u),l.dispatchEvent(t),t.defaultPrevented||(eK(eQ(eV(l)),{select:!0}),document.activeElement===e&&eY(l))}return()=>{l.removeEventListener(eB,u),setTimeout(()=>{let t=new CustomEvent(e$,ez);l.addEventListener(e$,d),l.dispatchEvent(t),t.defaultPrevented||eY(e??document.body,{select:!0}),l.removeEventListener(e$,d),eG.remove(p)},0)}}},[l,u,d,p]);let h=E.useCallback(e=>{if(!n&&!r||p.paused)return;let t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,o=document.activeElement;if(t&&o){let t=e.currentTarget,[r,a]=eU(t);r&&a?e.shiftKey||o!==a?e.shiftKey&&o===r&&(e.preventDefault(),n&&eY(a,{select:!0})):(e.preventDefault(),n&&eY(r,{select:!0})):o===t&&e.preventDefault()}},[n,r,p.paused]);return(0,c.jsx)(ej.div,{tabIndex:-1,...i,ref:m,onKeyDown:h})},"FocusScope"));function eK(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(eY(r,{select:t}),document.activeElement!==n)return}function eU(e){let t=eV(e);return[eq(t,e),eq(t.reverse(),e)]}function eV(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:eF(e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},"acceptNode")});for(;n.nextNode();)t.push(n.currentNode);return t}function eq(e,t){let n="function"==typeof t.checkVisibility&&t.checkVisibility({checkVisibilityCSS:!0});for(let r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):eH(r,{upTo:t})))return r}function eH(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e&&(void 0===t||e!==t);){if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}function eX(e){return e instanceof HTMLInputElement&&"select"in e}function eY(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&eX(e)&&t&&e.select()}}eF(eK,"focusFirst"),eF(eU,"getTabbableEdges"),eF(eV,"getTabbableCandidates"),eF(eq,"findVisible"),eF(eH,"isHidden"),eF(eX,"isSelectableInput"),eF(eY,"focus");var eG=eZ();function eZ(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),(e=eJ(e,t)).unshift(t)},remove(t){e=eJ(e,t),e[0]?.resume()}}}function eJ(e,t){let n=[...e],r=n.indexOf(t);return -1!==r&&n.splice(r,1),n}function eQ(e){return e.filter(e=>"A"!==e.tagName)}eF(eZ,"createFocusScopesStack"),eF(eJ,"arrayRemove"),eF(eQ,"removeLinks");var e0=Object.defineProperty,e1=E.forwardRef(e0(function(e,t){let{container:n,...r}=e,[o,a]=E.useState(!1);V(()=>a(!0),[]);let i=n||o&&globalThis?.document?.body;return i?el.createPortal((0,c.jsx)(ej.div,{...r,ref:t}),i):null},"name",{value:"Portal",configurable:!0})),e2=Object.defineProperty,e3=(e,t)=>e2(e,"name",{value:t,configurable:!0});function e5(e,t){return E.useReducer((e,n)=>t[e][n]??e,e)}e3(e5,"useStateMachine");var e6=e3(e=>{let{present:t,children:n}=e,r=e9(t),o="function"==typeof n?n({present:r.isPresent}):E.Children.only(n),a=e7(r.ref,te(o));return"function"==typeof n||r.isPresent?E.cloneElement(o,{ref:a}):null},"Presence");function e9(e){let[t,n]=E.useState(),r=E.useRef(null),o=E.useRef(e),a=E.useRef("none"),i=E.useRef(void 0),[l,s]=e5(e?"mounted":"unmounted",{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return E.useEffect(()=>{"mounted"===l?(a.current=i.current??e8(r.current),i.current=void 0):a.current="none"},[l]),V(()=>{let t=r.current,n=o.current;if(n!==e){let r=a.current,l=e8(t);e?(i.current=l,s("MOUNT")):"none"===l||t?.display==="none"?s("UNMOUNT"):n&&r!==l?s("ANIMATION_OUT"):s("UNMOUNT"),o.current=e}},[e,s]),V(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,i=e3(a=>{let i=e8(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&i&&(s("ANIMATION_END"),!o.current)){let r=t.style.animationFillMode;t.style.animationFillMode="forwards",e=n.setTimeout(()=>{"forwards"===t.style.animationFillMode&&(t.style.animationFillMode=r)})}},"handleAnimationEnd"),l=e3(e=>{e.target===t&&(a.current=e8(r.current))},"handleAnimationStart");return t.addEventListener("animationstart",l),t.addEventListener("animationcancel",i),t.addEventListener("animationend",i),()=>{n.clearTimeout(e),t.removeEventListener("animationstart",l),t.removeEventListener("animationcancel",i),t.removeEventListener("animationend",i)}}s("ANIMATION_END")},[t,s]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:E.useCallback(e=>{if(e){let t=getComputedStyle(e);r.current=t,i.current=e8(t)}else r.current=null;n(e)},[])}}function e4(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function e7(...e){let t=E.useRef(e);return t.current=e,E.useCallback(e=>{let n=t.current,r=!1,o=n.map(t=>{let n=e4(t,e);return r||"function"!=typeof n||(r=!0),n});if(r)return()=>{for(let e=0;e<o.length;e++){let t=o[e];"function"==typeof t?t():e4(n[e],null)}}},[])}function e8(e){return e?.animationName||"none"}function te(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(n=(t=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning)?e.props.ref:e.props.ref||e.ref}e3(e9,"usePresence"),e3(e4,"setRef"),e3(e7,"useStableComposedRefs"),e3(e8,"getAnimationName"),e3(te,"getElementRef");var tt=Object.defineProperty,tn=(e,t)=>tt(e,"name",{value:t,configurable:!0}),tr=0,to=null;function ta(){E.useEffect(()=>{to||(to={start:ti(),end:ti()});let{start:e,end:t}=to;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement("afterbegin",e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement("beforeend",t),tr++,()=>{1===tr&&(to?.start.remove(),to?.end.remove(),to=null),tr=Math.max(0,tr-1)}},[])}function ti(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}tn(function(e){return ta(),e.children},"FocusGuards"),tn(ta,"useFocusGuards"),tn(ti,"createFocusGuard");var tl=function(){return(tl=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function ts(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)0>t.indexOf(r[o])&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}var tc=("function"==typeof SuppressedError&&SuppressedError,"right-scroll-bar-position"),tu="width-before-scroll-bar";function td(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var tf="u">typeof window?E.useLayoutEffect:E.useEffect,tm=new WeakMap,tp=(void 0===t&&(t={}),(void 0===n&&(n=function(e){return e}),r=[],o=!1,a={read:function(){if(o)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return r.length?r[r.length-1]:null},useMedium:function(e){var t=n(e,o);return r.push(t),function(){r=r.filter(function(e){return e!==t})}},assignSyncMedium:function(e){for(o=!0;r.length;){var t=r;r=[],t.forEach(e)}r={push:function(t){return e(t)},filter:function(){return r}}},assignMedium:function(e){o=!0;var t=[];if(r.length){var n=r;r=[],n.forEach(e),t=r}var a=function(){var n=t;t=[],n.forEach(e)},i=function(){return Promise.resolve().then(a)};i(),r={push:function(e){t.push(e),i()},filter:function(e){return t=t.filter(e),r}}}}).options=tl({async:!0,ssr:!1},t),a),th=function(){},tv=E.forwardRef(function(e,t){var n,r,o,a,i=E.useRef(null),l=E.useState({onScrollCapture:th,onWheelCapture:th,onTouchMoveCapture:th}),s=l[0],c=l[1],u=e.forwardProps,d=e.children,f=e.className,m=e.removeScrollBar,p=e.enabled,h=e.shards,v=e.sideCar,g=e.noRelative,x=e.noIsolation,b=e.inert,y=e.allowPinchZoom,w=e.as,j=e.gapMode,k=ts(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),S=(n=[i,t],r=function(e){return n.forEach(function(t){return td(t,e)})},(o=(0,E.useState)(function(){return{value:null,callback:r,facade:{get current(){return o.value},set current(value){var e=o.value;e!==value&&(o.value=value,o.callback(value,e))}}}})[0]).callback=r,a=o.facade,tf(function(){var e=tm.get(a);if(e){var t=new Set(e),r=new Set(n),o=a.current;t.forEach(function(e){r.has(e)||td(e,null)}),r.forEach(function(e){t.has(e)||td(e,o)})}tm.set(a,n)},[n]),a),N=tl(tl({},k),s);return E.createElement(E.Fragment,null,p&&E.createElement(v,{sideCar:tp,removeScrollBar:m,shards:h,noRelative:g,noIsolation:x,inert:b,setCallbacks:c,allowPinchZoom:!!y,lockRef:i,gapMode:j}),u?E.cloneElement(E.Children.only(d),tl(tl({},N),{ref:S})):E.createElement(void 0===w?"div":w,tl({},N,{className:f,ref:S}),d))});tv.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},tv.classNames={fullWidth:tu,zeroRight:tc};var tg=function(e){var t=e.sideCar,n=ts(e,["sideCar"]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error("Sidecar medium not found");return E.createElement(r,tl({},n))};tg.isSideCarExport=!0;var tx=function(){var e=0,t=null;return{add:function(n){if(0==e&&(t=function(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=s||("u">typeof __webpack_nonce__?__webpack_nonce__:void 0);return t&&e.setAttribute("nonce",t),e}())){var r,o;(r=t).styleSheet?r.styleSheet.cssText=n:r.appendChild(document.createTextNode(n)),o=t,(document.head||document.getElementsByTagName("head")[0]).appendChild(o)}e++},remove:function(){--e||!t||(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},tb=function(){var e=tx();return function(t,n){E.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},ty=function(){var e=tb();return function(t){return e(t.styles,t.dynamic),null}},tw={left:0,top:0,right:0,gap:0},tE=function(e){return parseInt(e||"",10)||0},tj=function(e){var t=window.getComputedStyle(document.body),n=t["padding"===e?"paddingLeft":"marginLeft"],r=t["padding"===e?"paddingTop":"marginTop"],o=t["padding"===e?"paddingRight":"marginRight"];return[tE(n),tE(r),tE(o)]},tk=function(e){if(void 0===e&&(e="margin"),"u"<typeof window)return tw;var t=tj(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},tS=ty(),tN="data-scroll-locked",tC=function(e,t,n,r){var o=e.left,a=e.top,i=e.right,l=e.gap;return void 0===n&&(n="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(r,";\n padding-right: ").concat(l,"px ").concat(r,";\n }\n body[").concat(tN,"] {\n overflow: hidden ").concat(r,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(r,";"),"margin"===n&&"\n padding-left: ".concat(o,"px;\n padding-top: ").concat(a,"px;\n padding-right: ").concat(i,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(l,"px ").concat(r,";\n "),"padding"===n&&"padding-right: ".concat(l,"px ").concat(r,";")].filter(Boolean).join(""),"\n }\n \n .").concat(tc," {\n right: ").concat(l,"px ").concat(r,";\n }\n \n .").concat(tu," {\n margin-right: ").concat(l,"px ").concat(r,";\n }\n \n .").concat(tc," .").concat(tc," {\n right: 0 ").concat(r,";\n }\n \n .").concat(tu," .").concat(tu," {\n margin-right: 0 ").concat(r,";\n }\n \n body[").concat(tN,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(l,"px;\n }\n")},tA=function(){var e=parseInt(document.body.getAttribute(tN)||"0",10);return isFinite(e)?e:0},tR=function(){E.useEffect(function(){return document.body.setAttribute(tN,(tA()+1).toString()),function(){var e=tA()-1;e<=0?document.body.removeAttribute(tN):document.body.setAttribute(tN,e.toString())}},[])},tO=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=void 0===r?"margin":r;tR();var a=E.useMemo(function(){return tk(o)},[o]);return E.createElement(tS,{styles:tC(a,!t,o,n?"":"!important")})},tP=!1;if("u">typeof window)try{var tM=Object.defineProperty({},"passive",{get:function(){return tP=!0,!0}});window.addEventListener("test",tM,tM),window.removeEventListener("test",tM,tM)}catch(e){tP=!1}var tD=!!tP&&{passive:!1},tI=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return"hidden"!==n[t]&&(n.overflowY!==n.overflowX||"TEXTAREA"===e.tagName||"visible"!==n[t])},tT=function(e,t){var n=t.ownerDocument,r=t;do{if("u">typeof ShadowRoot&&r instanceof ShadowRoot&&(r=r.host),tL(e,r)){var o=t_(e,r);if(o[1]>o[2])return!0}r=r.parentNode}while(r&&r!==n.body)return!1},tL=function(e,t){return"v"===e?tI(t,"overflowY"):tI(t,"overflowX")},t_=function(e,t){return"v"===e?[t.scrollTop,t.scrollHeight,t.clientHeight]:[t.scrollLeft,t.scrollWidth,t.clientWidth]},tF=function(e,t,n,r,o){var a,i=(a=window.getComputedStyle(t).direction,"h"===e&&"rtl"===a?-1:1),l=i*r,s=n.target,c=t.contains(s),u=!1,d=l>0,f=0,m=0;do{if(!s)break;var p=t_(e,s),h=p[0],v=p[1]-p[2]-i*h;(h||v)&&tL(e,s)&&(f+=v,m+=h);var g=s.parentNode;s=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!c&&s!==document.body||c&&(t.contains(s)||t===s))return d&&(o&&1>Math.abs(f)||!o&&l>f)?u=!0:!d&&(o&&1>Math.abs(m)||!o&&-l>m)&&(u=!0),u},tB=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},t$=function(e){return[e.deltaX,e.deltaY]},tz=function(e){return e&&"current"in e?e.current:e},tW=0,tK=[];let tU=(i=function(e){var t=E.useRef([]),n=E.useRef([0,0]),r=E.useRef(),o=E.useState(tW++)[0],a=E.useState(ty)[0],i=E.useRef(e);E.useEffect(function(){i.current=e},[e]),E.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var t=(function(e,t,n){if(n||2==arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))})([e.lockRef.current],(e.shards||[]).map(tz),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),t.forEach(function(e){return e.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var l=E.useCallback(function(e,t){if("touches"in e&&2===e.touches.length||"wheel"===e.type&&e.ctrlKey)return!i.current.allowPinchZoom;var o,a=tB(e),l=n.current,s="deltaX"in e?e.deltaX:l[0]-a[0],c="deltaY"in e?e.deltaY:l[1]-a[1],u=e.target,d=Math.abs(s)>Math.abs(c)?"h":"v";if("touches"in e&&"h"===d&&"range"===u.type)return!1;var f=window.getSelection(),m=f&&f.anchorNode;if(m&&(m===u||m.contains(u)))return!1;var p=tT(d,u);if(!p)return!0;if(p?o=d:(o="v"===d?"h":"v",p=tT(d,u)),!p)return!1;if(!r.current&&"changedTouches"in e&&(s||c)&&(r.current=o),!o)return!0;var h=r.current||o;return tF(h,t,e,"h"===h?s:c,!0)},[]),s=E.useCallback(function(e){if(tK.length&&tK[tK.length-1]===a){var n="deltaY"in e?t$(e):tB(e),r=t.current.filter(function(t){var r;return t.name===e.type&&(t.target===e.target||e.target===t.shadowParent)&&(r=t.delta,r[0]===n[0]&&r[1]===n[1])})[0];if(r&&r.should){e.cancelable&&e.preventDefault();return}if(!r){var o=(i.current.shards||[]).map(tz).filter(Boolean).filter(function(t){return t.contains(e.target)});(o.length>0?l(e,o[0]):!i.current.noIsolation)&&e.cancelable&&e.preventDefault()}}},[]),c=E.useCallback(function(e,n,r,o){var a={name:e,delta:n,target:r,should:o,shadowParent:function(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),u=E.useCallback(function(e){n.current=tB(e),r.current=void 0},[]),d=E.useCallback(function(t){c(t.type,t$(t),t.target,l(t,e.lockRef.current))},[]),f=E.useCallback(function(t){c(t.type,tB(t),t.target,l(t,e.lockRef.current))},[]);E.useEffect(function(){return tK.push(a),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener("wheel",s,tD),document.addEventListener("touchmove",s,tD),document.addEventListener("touchstart",u,tD),function(){tK=tK.filter(function(e){return e!==a}),document.removeEventListener("wheel",s,tD),document.removeEventListener("touchmove",s,tD),document.removeEventListener("touchstart",u,tD)}},[]);var m=e.removeScrollBar,p=e.inert;return E.createElement(E.Fragment,null,p?E.createElement(a,{styles:"\n .block-interactivity-".concat(o," {pointer-events: none;}\n .allow-interactivity-").concat(o," {pointer-events: all;}\n")}):null,m?E.createElement(tO,{noRelative:e.noRelative,gapMode:e.gapMode}):null)},tp.useMedium(i),tg);var tV=E.forwardRef(function(e,t){return E.createElement(tv,tl({},e,{ref:t,sideCar:tU}))});tV.classNames=tv.classNames;var tq=new WeakMap,tH=new WeakMap,tX={},tY=0,tG=function(e){return e&&(e.host||tG(e.parentNode))},tZ=function(e,t,n,r){var o=(Array.isArray(e)?e:[e]).map(function(e){if(t.contains(e))return e;var n=tG(e);return n&&t.contains(n)?n:(console.error("aria-hidden",e,"in not contained inside",t,". Doing nothing"),null)}).filter(function(e){return!!e});tX[n]||(tX[n]=new WeakMap);var a=tX[n],i=[],l=new Set,s=new Set(o),c=function(e){!e||l.has(e)||(l.add(e),c(e.parentNode))};o.forEach(c);var u=function(e){!e||s.has(e)||Array.prototype.forEach.call(e.children,function(e){if(l.has(e))u(e);else try{var t=e.getAttribute(r),o=null!==t&&"false"!==t,s=(tq.get(e)||0)+1,c=(a.get(e)||0)+1;tq.set(e,s),a.set(e,c),i.push(e),1===s&&o&&tH.set(e,!0),1===c&&e.setAttribute(n,"true"),o||e.setAttribute(r,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}})};return u(t),l.clear(),tY++,function(){i.forEach(function(e){var t=tq.get(e)-1,o=a.get(e)-1;tq.set(e,t),a.set(e,o),t||(tH.has(e)||e.removeAttribute(r),tH.delete(e)),o||e.removeAttribute(n)}),--tY||(tq=new WeakMap,tq=new WeakMap,tH=new WeakMap,tX={})}},tJ=function(e,t,n){void 0===n&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=t||("u"<typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live], script"))),tZ(r,o,n,"aria-hidden")):function(){return null}},tQ=Object.defineProperty,t0=(e,t)=>tQ(e,"name",{value:t,configurable:!0}),t1="Dialog",[t2,t3]=K(t1),[t5,t6]=t2(t1),t9=t0(e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:o,onOpenChange:a,modal:i=!0}=e,l=E.useRef(null),s=E.useRef(null),[u,d]=er({prop:r,defaultProp:o??!1,onChange:a,caller:t1}),[f,m]=E.useState(0),[p,h]=E.useState(0);return(0,c.jsx)(t5,{scope:t,triggerRef:l,contentRef:s,contentId:Y(),titleId:Y(),descriptionId:Y(),titlePresent:f>0,descriptionPresent:p>0,setTitleCount:m,setDescriptionCount:h,open:u,onOpenChange:d,onOpenToggle:E.useCallback(()=>d(e=>!e),[d]),modal:i,children:n})},"Dialog"),t4="DialogPortal",[t7,t8]=t2(t4,{forceMount:void 0}),ne=t0(e=>{let{__scopeDialog:t,forceMount:n,children:r,container:o}=e,a=t6(t4,t);return(0,c.jsx)(t7,{scope:t,forceMount:n,children:E.Children.map(r,e=>(0,c.jsx)(e6,{present:n||a.open,children:(0,c.jsx)(e1,{asChild:!0,container:o,children:e})}))})},"DialogPortal"),nt="DialogOverlay",nn=E.forwardRef(t0(function(e,t){let n=t8(nt,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=t6(nt,e.__scopeDialog);return a.modal?(0,c.jsx)(e6,{present:r||a.open,children:(0,c.jsx)(no,{...o,ref:t})}):null},"DialogOverlay")),nr=eu("DialogOverlay.RemoveScroll"),no=E.forwardRef(t0(function(e,t){let{__scopeDialog:n,...r}=e,o=t6(nt,n),a=$(t,eP());return(0,c.jsx)(tV,{as:nr,allowPinchZoom:!0,shards:[o.contentRef],children:(0,c.jsx)(ej.div,{"data-state":nu(o.open),...r,ref:a,style:{pointerEvents:"auto",...r.style}})})},"DialogOverlayImpl")),na="DialogContent",ni=E.forwardRef(t0(function(e,t){let n=t8(na,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=t6(na,e.__scopeDialog);return(0,c.jsx)(e6,{present:r||a.open,children:a.modal?(0,c.jsx)(nl,{...o,ref:t}):(0,c.jsx)(ns,{...o,ref:t})})},"DialogContent")),nl=E.forwardRef(t0(function(e,t){let n=t6(na,e.__scopeDialog),r=E.useRef(null),o=$(t,n.contentRef,r);return E.useEffect(()=>{let e=r.current;if(e)return tJ(e)},[]),(0,c.jsx)(nc,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:D(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:D(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey;(2===t.button||n)&&e.preventDefault()}),onFocusOutside:D(e.onFocusOutside,e=>e.preventDefault())})},"DialogContentModal")),ns=E.forwardRef(t0(function(e,t){let n=t6(na,e.__scopeDialog),r=E.useRef(!1),o=E.useRef(!1);return(0,c.jsx)(nc,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,o.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,"pointerdown"===t.detail.originalEvent.type&&(o.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&o.current&&t.preventDefault()}})},"DialogContentNonModal")),nc=E.forwardRef(t0(function(e,t){let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:a,...i}=e,l=t6(na,n);return ta(),(0,c.jsx)(c.Fragment,{children:(0,c.jsx)(eW,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:a,children:(0,c.jsx)(eO,{role:"dialog",id:l.contentId,"aria-describedby":l.descriptionPresent?l.descriptionId:void 0,"aria-labelledby":l.titlePresent?l.titleId:void 0,"data-state":nu(l.open),...i,ref:t,deferPointerDownOutside:!0,onDismiss:()=>l.onOpenChange(!1)})})})},"DialogContentImpl"));function nu(e){return e?"open":"closed"}t0(nu,"getState");var nd='[cmdk-group=""]',nf='[cmdk-group-items=""]',nm='[cmdk-item=""]',np=`${nm}:not([aria-disabled="true"])`,nh="cmdk-item-select",nv="data-value",ng=(e,t,n)=>{var r;return r=e,function e(t,n,r,o,a,i,l){if(i===n.length)return a===t.length?1:.99;var s=`${a},${i}`;if(void 0!==l[s])return l[s];for(var c,u,d,f,m=o.charAt(i),p=r.indexOf(m,a),h=0;p>=0;)(c=e(t,n,r,o,p+1,i+1,l))>h&&(p===a?c*=1:S.test(t.charAt(p-1))?(c*=.8,(d=t.slice(a,p-1).match(N))&&a>0&&(c*=Math.pow(.999,d.length))):C.test(t.charAt(p-1))?(c*=.9,(f=t.slice(a,p-1).match(A))&&a>0&&(c*=Math.pow(.999,f.length))):(c*=.17,a>0&&(c*=Math.pow(.999,p-a))),t.charAt(p)!==n.charAt(i)&&(c*=.9999)),(c<.1&&r.charAt(p-1)===o.charAt(i+1)||o.charAt(i+1)===o.charAt(i)&&r.charAt(p-1)!==o.charAt(i))&&.1*(u=e(t,n,r,o,p+1,i+2,l))>c&&(c=.1*u),c>h&&(h=c),p=r.indexOf(m,p+1);return l[s]=h,h}(r=n&&n.length>0?`${r+" "+n.join(" ")}`:r,t,R(r),R(t),0,0,{})},nx=E.createContext(void 0),nb=E.createContext(void 0),ny=E.createContext(void 0),nw=E.forwardRef((e,t)=>{let n=nP(()=>{var t,n;return{search:"",value:null!=(n=null!=(t=e.value)?t:e.defaultValue)?n:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=nP(()=>new Set),o=nP(()=>new Map),a=nP(()=>new Map),i=nP(()=>new Set),l=nR(e),{label:s,children:c,value:u,onValueChange:d,filter:f,shouldFilter:m,loop:p,disablePointerSelection:h=!1,vimBindings:v=!0,...g}=e,x=Y(),b=Y(),y=Y(),w=E.useRef(null),j=nI();nO(()=>{if(void 0!==u){let e=u.trim();n.current.value=e,k.emit()}},[u]),nO(()=>{j(6,O)},[]);let k=E.useMemo(()=>({subscribe:e=>(i.current.add(e),()=>i.current.delete(e)),snapshot:()=>n.current,setState:(e,t,r)=>{var o,a,i,s;if(!Object.is(n.current[e],t)){if(n.current[e]=t,"search"===e)R(),C(),j(1,A);else if("value"===e){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let e=document.getElementById(y);e?e.focus():null==(o=document.getElementById(x))||o.focus()}if(j(7,()=>{var e;n.current.selectedItemId=null==(e=P())?void 0:e.id,k.emit()}),r||j(5,O),(null==(a=l.current)?void 0:a.value)!==void 0){null==(s=(i=l.current).onValueChange)||s.call(i,null!=t?t:"");return}}k.emit()}},emit:()=>{i.current.forEach(e=>e())}}),[]),S=E.useMemo(()=>({value:(e,t,r)=>{var o;t!==(null==(o=a.current.get(e))?void 0:o.value)&&(a.current.set(e,{value:t,keywords:r}),n.current.filtered.items.set(e,N(t,r)),j(2,()=>{C(),k.emit()}))},item:(e,t)=>(r.current.add(e),t&&(o.current.has(t)?o.current.get(t).add(e):o.current.set(t,new Set([e]))),j(3,()=>{R(),C(),n.current.value||A(),k.emit()}),()=>{a.current.delete(e),r.current.delete(e),n.current.filtered.items.delete(e);let t=P();j(4,()=>{R(),(null==t?void 0:t.getAttribute("id"))===e&&A(),k.emit()})}),group:e=>(o.current.has(e)||o.current.set(e,new Set),()=>{a.current.delete(e),o.current.delete(e)}),filter:()=>l.current.shouldFilter,label:s||e["aria-label"],getDisablePointerSelection:()=>l.current.disablePointerSelection,listId:x,inputId:y,labelId:b,listInnerRef:w}),[]);function N(e,t){var r,o;let a=null!=(o=null==(r=l.current)?void 0:r.filter)?o:ng;return e?a(e,n.current.search,t):0}function C(){if(!n.current.search||!1===l.current.shouldFilter)return;let e=n.current.filtered.items,t=[];n.current.filtered.groups.forEach(n=>{let r=o.current.get(n),a=0;r.forEach(t=>{a=Math.max(e.get(t),a)}),t.push([n,a])});let r=w.current;M().sort((t,n)=>{var r,o;let a=t.getAttribute("id"),i=n.getAttribute("id");return(null!=(r=e.get(i))?r:0)-(null!=(o=e.get(a))?o:0)}).forEach(e=>{let t=e.closest(nf);t?t.appendChild(e.parentElement===t?e:e.closest(`${nf} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${nf} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{var t;let n=null==(t=w.current)?void 0:t.querySelector(`${nd}[${nv}="${encodeURIComponent(e[0])}"]`);null==n||n.parentElement.appendChild(n)})}function A(){let e=M().find(e=>"true"!==e.getAttribute("aria-disabled")),t=null==e?void 0:e.getAttribute(nv);k.setState("value",t||void 0)}function R(){var e,t,i,s;if(!n.current.search||!1===l.current.shouldFilter){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let c=0;for(let o of r.current){let r=N(null!=(t=null==(e=a.current.get(o))?void 0:e.value)?t:"",null!=(s=null==(i=a.current.get(o))?void 0:i.keywords)?s:[]);n.current.filtered.items.set(o,r),r>0&&c++}for(let[e,t]of o.current)for(let r of t)if(n.current.filtered.items.get(r)>0){n.current.filtered.groups.add(e);break}n.current.filtered.count=c}function O(){var e,t,n;let r=P();r&&((null==(e=r.parentElement)?void 0:e.firstChild)===r&&(null==(n=null==(t=r.closest(nd))?void 0:t.querySelector('[cmdk-group-heading=""]'))||n.scrollIntoView({block:"nearest"})),r.scrollIntoView({block:"nearest"}))}function P(){var e;return null==(e=w.current)?void 0:e.querySelector(`${nm}[aria-selected="true"]`)}function M(){var e;return Array.from((null==(e=w.current)?void 0:e.querySelectorAll(np))||[])}function D(e){let t=M()[e];t&&k.setState("value",t.getAttribute(nv))}function I(e){var t;let n=P(),r=M(),o=r.findIndex(e=>e===n),a=r[o+e];null!=(t=l.current)&&t.loop&&(a=o+e<0?r[r.length-1]:o+e===r.length?r[0]:r[o+e]),a&&k.setState("value",a.getAttribute(nv))}function T(e){let t=P(),n=null==t?void 0:t.closest(nd),r;for(;n&&!r;)r=null==(n=e>0?function(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}(n,nd):function(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}(n,nd))?void 0:n.querySelector(np);r?k.setState("value",r.getAttribute(nv)):I(e)}let L=()=>D(M().length-1),_=e=>{e.preventDefault(),e.metaKey?L():e.altKey?T(1):I(1)},F=e=>{e.preventDefault(),e.metaKey?D(0):e.altKey?T(-1):I(-1)};return E.createElement(ej.div,{ref:t,tabIndex:-1,...g,"cmdk-root":"",onKeyDown:e=>{var t;null==(t=g.onKeyDown)||t.call(g,e);let n=e.nativeEvent.isComposing||229===e.keyCode;if(!(e.defaultPrevented||n))switch(e.key){case"n":case"j":v&&e.ctrlKey&&_(e);break;case"ArrowDown":_(e);break;case"p":case"k":v&&e.ctrlKey&&F(e);break;case"ArrowUp":F(e);break;case"Home":e.preventDefault(),D(0);break;case"End":e.preventDefault(),L();break;case"Enter":{e.preventDefault();let t=P();if(t){let e=new Event(nh);t.dispatchEvent(e)}}}}},E.createElement("label",{"cmdk-label":"",htmlFor:S.inputId,id:S.labelId,style:nL},s),nT(e,e=>E.createElement(nb.Provider,{value:k},E.createElement(nx.Provider,{value:S},e))))}),nE=E.forwardRef((e,t)=>{var n,r;let o=Y(),a=E.useRef(null),i=E.useContext(ny),l=E.useContext(nx),s=nR(e),c=null!=(r=null==(n=s.current)?void 0:n.forceMount)?r:null==i?void 0:i.forceMount;nO(()=>{if(!c)return l.item(o,null==i?void 0:i.id)},[c]);let u=nD(o,a,[e.value,e.children,a],e.keywords),d=E.useContext(nb),f=nM(e=>e.value&&e.value===u.current),m=nM(e=>!!c||!1===l.filter()||!e.search||e.filtered.items.get(o)>0);function p(){var e,t;h(),null==(t=(e=s.current).onSelect)||t.call(e,u.current)}function h(){d.setState("value",u.current,!0)}if(E.useEffect(()=>{let t=a.current;if(!(!t||e.disabled))return t.addEventListener(nh,p),()=>t.removeEventListener(nh,p)},[m,e.onSelect,e.disabled]),!m)return null;let{disabled:v,value:g,onSelect:x,forceMount:b,keywords:y,...w}=e;return E.createElement(ej.div,{ref:B(a,t),...w,id:o,"cmdk-item":"",role:"option","aria-disabled":!!v,"aria-selected":!!f,"data-disabled":!!v,"data-selected":!!f,onPointerMove:v||l.getDisablePointerSelection()?void 0:h,onClick:v?void 0:p},e.children)}),nj=E.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:o,...a}=e,i=Y(),l=E.useRef(null),s=E.useRef(null),c=Y(),u=E.useContext(nx),d=nM(e=>!!o||!1===u.filter()||!e.search||e.filtered.groups.has(i));nO(()=>u.group(i),[]),nD(i,l,[e.value,e.heading,s]);let f=E.useMemo(()=>({id:i,forceMount:o}),[o]);return E.createElement(ej.div,{ref:B(l,t),...a,"cmdk-group":"",role:"presentation",hidden:!d||void 0},n&&E.createElement("div",{ref:s,"cmdk-group-heading":"","aria-hidden":!0,id:c},n),nT(e,e=>E.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?c:void 0},E.createElement(ny.Provider,{value:f},e))))}),nk=E.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,o=E.useRef(null),a=nM(e=>!e.search);return n||a?E.createElement(ej.div,{ref:B(o,t),...r,"cmdk-separator":"",role:"separator"}):null}),nS=E.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,o=null!=e.value,a=E.useContext(nb),i=nM(e=>e.search),l=nM(e=>e.selectedItemId),s=E.useContext(nx);return E.useEffect(()=>{null!=e.value&&a.setState("search",e.value)},[e.value]),E.createElement(ej.input,{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":s.listId,"aria-labelledby":s.labelId,"aria-activedescendant":l,id:s.inputId,type:"text",value:o?e.value:i,onChange:e=>{o||a.setState("search",e.target.value),null==n||n(e.target.value)}})}),nN=E.forwardRef((e,t)=>{let{children:n,label:r="Suggestions",...o}=e,a=E.useRef(null),i=E.useRef(null),l=nM(e=>e.selectedItemId),s=E.useContext(nx);return E.useEffect(()=>{if(i.current&&a.current){let e=i.current,t=a.current,n,r=new ResizeObserver(()=>{n=requestAnimationFrame(()=>{let n=e.offsetHeight;t.style.setProperty("--cmdk-list-height",n.toFixed(1)+"px")})});return r.observe(e),()=>{cancelAnimationFrame(n),r.unobserve(e)}}},[]),E.createElement(ej.div,{ref:B(a,t),...o,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":l,"aria-label":r,id:s.listId},nT(e,e=>E.createElement("div",{ref:B(i,s.listInnerRef),"cmdk-list-sizer":""},e)))}),nC=E.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:o,contentClassName:a,container:i,...l}=e;return E.createElement(t9,{open:n,onOpenChange:r},E.createElement(ne,{container:i},E.createElement(nn,{"cmdk-overlay":"",className:o}),E.createElement(ni,{"aria-label":e.label,"cmdk-dialog":"",className:a},E.createElement(nw,{ref:t,...l}))))}),nA=Object.assign(nw,{List:nN,Item:nE,Input:nS,Group:nj,Separator:nk,Dialog:nC,Empty:E.forwardRef((e,t)=>nM(e=>0===e.filtered.count)?E.createElement(ej.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),Loading:E.forwardRef((e,t)=>{let{progress:n,children:r,label:o="Loading...",...a}=e;return E.createElement(ej.div,{ref:t,...a,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":o},nT(e,e=>E.createElement("div",{"aria-hidden":!0},e)))})});function nR(e){let t=E.useRef(e);return nO(()=>{t.current=e}),t}var nO="u"<typeof window?E.useEffect:E.useLayoutEffect;function nP(e){let t=E.useRef();return void 0===t.current&&(t.current=e()),t}function nM(e){let t=E.useContext(nb),n=()=>e(t.snapshot());return E.useSyncExternalStore(t.subscribe,n,n)}function nD(e,t,n,r=[]){let o=E.useRef(),a=E.useContext(nx);return nO(()=>{var i;let l=(()=>{var e;for(let t of n){if("string"==typeof t)return t.trim();if("object"==typeof t&&"current"in t)return t.current?null==(e=t.current.textContent)?void 0:e.trim():o.current}})(),s=r.map(e=>e.trim());a.value(e,l,s),null==(i=t.current)||i.setAttribute(nv,l),o.current=l}),o}var nI=()=>{let[e,t]=E.useState(),n=nP(()=>new Map);return nO(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function nT({asChild:e,children:t},n){let r;return e&&E.isValidElement(t)?E.cloneElement("function"==typeof(r=t.type)?r(t.props):"render"in r?r.render(t.props):t,{ref:t.ref},n(t.props.children)):n(t)}var nL={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},n_=e.i(593698),nF=e.i(630299),nF=nF;e.i(630374);var nB=e.i(225913),n$=e.i(23750),nz=e.i(184762),nW=e.i(647163);function nK({className:e,...t}){return(0,c.jsx)("div",{"data-slot":"input-group",role:"group",className:(0,nW.cn)("group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5",e),...t})}let nU=(0,nB.cva)("flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",{variants:{align:{"inline-start":"order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]","inline-end":"order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]","block-start":"order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2","block-end":"order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2"}},defaultVariants:{align:"inline-start"}});function nV({className:e,align:t="inline-start",...n}){return(0,c.jsx)("div",{role:"group","data-slot":"input-group-addon","data-align":t,className:(0,nW.cn)(nU({align:t}),e),onClick:e=>{e.target.closest("button")||e.currentTarget.parentElement?.querySelector("input")?.focus()},...n})}function nq({className:e,...t}){return(0,c.jsx)("span",{className:(0,nW.cn)("flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",e),...t})}function nH({className:e,...t}){return(0,c.jsx)(n$.Input,{"data-slot":"input-group-control",className:(0,nW.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",e),...t})}function nX({className:e,...t}){return(0,c.jsx)(nA,{"data-slot":"command",className:(0,nW.cn)("flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground",e),...t})}function nY({className:e,...t}){return(0,c.jsx)("div",{"data-slot":"command-input-wrapper",className:"p-1 pb-0",children:(0,c.jsxs)(nK,{className:"h-8! rounded-lg! border-input/30 bg-input/30 shadow-none! *:data-[slot=input-group-addon]:pl-2!",children:[(0,c.jsx)(nA.Input,{"data-slot":"command-input",className:(0,nW.cn)("w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",e),...t}),(0,c.jsx)(nV,{children:(0,c.jsx)(nF.default,{className:"size-4 shrink-0 opacity-50"})})]})})}function nG({className:e,...t}){return(0,c.jsx)(nA.List,{"data-slot":"command-list",className:(0,nW.cn)("no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none",e),...t})}function nZ({className:e,...t}){return(0,c.jsx)(nA.Empty,{"data-slot":"command-empty",className:(0,nW.cn)("py-6 text-center text-sm",e),...t})}function nJ({className:e,...t}){return(0,c.jsx)(nA.Group,{"data-slot":"command-group",className:(0,nW.cn)("overflow-hidden p-1 text-foreground **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground",e),...t})}function nQ({className:e,children:t,...n}){return(0,c.jsxs)(nA.Item,{"data-slot":"command-item",className:(0,nW.cn)("group/command-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg! data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-selected:bg-muted data-selected:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-selected:*:[svg]:text-foreground",e),...n,children:[t,(0,c.jsx)(n_.CheckIcon,{className:"ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100"})]})}(0,nB.cva)("flex items-center gap-2 text-sm shadow-none",{variants:{size:{xs:"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5",sm:"","icon-xs":"size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0","icon-sm":"size-8 p-0 has-[>svg]:p-0"}},defaultVariants:{size:"xs"}});var n0=e.i(917162),n1=e.i(660302),n2=e.i(671428),n3=e.i(319036),n5=e.i(41533),n6=e.i(146538),n9=e.i(265402),n4=e.i(95187);let n7=(0,n4.createServerReference)("7f53f7bf918d66cd38748c5bd5c6c61494aa5236e1",n4.callServer,void 0,n4.findSourceMapURL,"createBotAction");var n8=e.i(721806);let re=(0,n4.createServerReference)("7f2276793bc11708fa9dd4ab776cc73f6059f5cf1d",n4.callServer,void 0,n4.findSourceMapURL,"deleteBotAction"),rt=(0,n4.createServerReference)("7f9307a597e2614e8faeba3868b7f345495e0d778a",n4.callServer,void 0,n4.findSourceMapURL,"setBotMemoryOnAction"),rn=(0,n4.createServerReference)("7f9f16a7ba99550070a8b38ce9a89085cc4f1389c5",n4.callServer,void 0,n4.findSourceMapURL,"updateBotAction");var rr=e.i(451888),ro=e.i(463625),ra=e.i(635963),ri=e.i(638475);function rl({color:e,background:t,label:n,picked:r,onPick:o}){return(0,c.jsx)("button",{type:"button",onClick:o,"aria-label":n??e??"Follow the theme",style:t?{background:t}:e?{backgroundColor:e}:void 0,className:(0,nW.cn)("size-5 rounded-full outline-none transition-transform hover:scale-110 focus-visible:ring-3 focus-visible:ring-ring/50",!e&&!t&&"bg-foreground",r&&"ring-2 ring-foreground/40 ring-offset-2 ring-offset-background")})}var rs=e.i(864723);function rc({color:e,themePicked:t,onTheme:n,onPick:r,paint:o,onPaint:a}){return(0,c.jsxs)("div",{className:"flex flex-wrap items-center justify-center gap-2 px-2",children:[(0,c.jsx)(rl,{color:null,picked:t,onPick:n}),rs.MARK_PALETTE.map(t=>(0,c.jsx)(rl,{color:t,picked:e===t,onPick:()=>r(t)},t)),a&&rs.MARK_PAINT_IDS.map(e=>(0,c.jsx)(rl,{color:null,background:(0,rs.paintSwatch)(e),label:rs.MARK_PAINTS[e].label,picked:o===e,onPick:()=>a(e)},e))]})}var ru=e.i(992112),rd=e.i(895836),rf=e.i(989409),rm=e.i(621285),rp=e.i(616172),rh=e.i(284201),rv=e.i(289971),rg=e.i(333999),rx=e.i(245629),rb=e.i(981203),ry=e.i(609856),rw=e.i(283653);let rE=" new";function rj({bot:e,job:t,active:n,onPick:r}){var o,a,i;let l=(o=t,a=e.lastJobAt,i=e.disabled,o?.status==="waiting"?{text:"waiting on you",shine:!0,amber:!0}:o?.status==="running"?{text:`working \xb7 ${o.label}`,shine:!0}:i?{text:"off"}:o?{text:`idle \xb7 last job ${rk(o.updatedAt)}`}:a?{text:`idle \xb7 last job ${rk(a)}`}:{text:"idle · no jobs yet"});return(0,c.jsxs)("button",{type:"button",onClick:r,className:(0,nW.cn)("mx-2 flex items-center gap-2.5 rounded-md px-2 py-2 text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",n?"bg-secondary":"hover:bg-muted/60"),children:[(0,c.jsx)(ra.BotMark,{size:32,...rP(e.name,e.icon),state:t?.status==="running"?"thinking":"idle",notify:t?.status==="waiting",crossed:t?.status==="cancelled",className:(0,nW.cn)("shrink-0",e.disabled&&"opacity-45")}),(0,c.jsxs)("span",{className:(0,nW.cn)("min-w-0 flex-1 space-y-0.5",e.disabled&&"opacity-45"),children:[(0,c.jsx)("span",{className:(0,nW.cn)("block truncate text-[13px]",n?"font-medium":"text-foreground/90"),children:e.name}),l.shine?(0,c.jsx)(n1.ShinyText,{text:l.text,tone:l.amber?"waiting":"muted",className:"block truncate font-mono text-[11px] leading-4"}):(0,c.jsx)("span",{className:"block truncate font-mono text-[11px] leading-4 text-muted-foreground",children:l.text})]})]})}function rk(e){let t=(0,rx.shortAgo)(e);return"now"===t?"just now":`${t} ago`}function rS(e,t,n){let[r,o]=(0,E.useState)(new Set),[a,i]=(0,ry.useServerAction)(n8.createSeedBotsAction,{onOk:e=>{(0,rw.revalidate)(j.queryKey.bot),n(e.created[0]??null)}}),{data:l}=(0,rw.useServerRoute)(j.queryKey.config),s=ro.BOT_SEEDS.filter(t=>!e.has(t.name)),c=s.filter(e=>!r.has(e.name));return{isSet:e=>(0,ru.isConfigSet)(l,e),adding:i,addable:s,wanted:c,ticked:t=>e.has(t.name)||!r.has(t.name),toggle:e=>o(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),submit:()=>a(c.map(e=>({name:e.name,icon:t[ro.BOT_SEEDS.indexOf(e)]})))}}function rN({have:e,faces:t,picks:n}){return(0,c.jsx)("div",{className:"flex flex-col gap-2",children:ro.BOT_SEEDS.map((r,o)=>{var a;let i,l=e.has(r.name),s=n.ticked(r),d=(a=n.isSet,(i=(r.requires??[]).filter(e=>!a(ru.MEDIA_MODEL_KEYS[e]))).length?`needs ${i.map(ru.mediaModelWords).join(" and ")}`:null);return(0,c.jsx)("div",{className:(0,nW.cn)("rounded-xl ring-1 transition-colors",l?"opacity-45 ring-border/60":s?"ring-foreground":"ring-border/60"),children:(0,c.jsxs)("button",{type:"button",disabled:l||n.adding,"aria-pressed":s,onClick:()=>n.toggle(r.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,c.jsx)(ra.BotMark,{size:28,...rP(r.name,t[o]),className:(0,nW.cn)("shrink-0 transition-opacity",!s&&"opacity-35")}),(0,c.jsxs)("span",{className:"min-w-0 flex-1 space-y-px",children:[(0,c.jsx)("span",{className:"block text-[14px] leading-[18px] font-medium",children:r.name}),(0,c.jsx)("span",{className:"block truncate text-[12px] leading-[17px] text-muted-foreground",children:r.hint})]}),l?(0,c.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted-foreground",children:"already added"}):d?(0,c.jsxs)("span",{className:(0,nW.cn)("flex shrink-0 items-center gap-1.5 font-mono text-[11px]",nW.WAITING_INK),children:[(0,c.jsx)(p,{className:"size-3"}),d]}):null,(0,c.jsx)("span",{className:(0,nW.cn)("grid size-5 shrink-0 place-items-center rounded-full transition-colors",s?"bg-brand text-brand-foreground":"ring-1 ring-border/60 ring-inset"),children:s&&(0,c.jsx)(u.Check,{className:"size-3"})})]})},r.name)})})}function rC({picks:e,onCancel:t}){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(k.Button,{variant:"ghost",onClick:t,children:"Cancel"}),(0,c.jsxs)(k.Button,{loading:e.adding,disabled:0===e.wanted.length,onClick:e.submit,children:[(0,c.jsx)(x.Plus,{}),1===e.wanted.length?`Add ${e.wanted[0].name}`:`Add ${e.wanted.length} bots`]})]})}function rA({have:e,faces:t,onDone:n}){let r=rS(e,t,n);return(0,c.jsxs)("div",{className:"flex min-h-full flex-col",children:[(0,c.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,c.jsxs)("div",{className:"px-8 pt-7 pb-1",children:[(0,c.jsx)("h3",{className:"text-[17px] font-medium tracking-tight",children:"Bots you can add"}),(0,c.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,c.jsx)("div",{className:"px-8 pt-4",children:(0,c.jsx)(rN,{have:e,faces:t,picks:r})}),(0,c.jsxs)("div",{className:"mt-auto flex items-center gap-3 border-t border-border/60 px-8 py-4",children:[(0,c.jsx)("span",{className:"flex-1 font-mono text-[11px] text-muted-foreground",children:0===r.wanted.length?"nothing ticked":`${r.wanted.length} of ${r.addable.length} ticked`}),(0,c.jsx)(rC,{picks:r,onCancel:()=>n(null)})]})]})}function rR({have:e,faces:t,onDone:n}){let r=rS(e,t,n);return(0,c.jsx)(rd.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,c.jsx)(rC,{picks:r,onCancel:()=>n(null)}),children:(0,c.jsx)(rN,{have:e,faces:t,picks:r})})}function rO({missing:e,faces:t,have:n,onDone:r}){return(0,c.jsxs)("button",{type:"button",title:"Ready-made bots","aria-label":`Ready-made bots, ${e.length} on offer`,onClick:()=>n0.notify.component({className:"sm:max-w-xl",renderer:({close:e})=>(0,c.jsx)(rR,{have:n,faces:t,onDone:t=>{e(),r(t)}})}),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,c.jsx)(x.Plus,{className:"size-3 shrink-0"}),e.map((n,r)=>(0,c.jsx)("span",{className:(0,nW.cn)("block",r>0&&"-ml-1.5"),style:{zIndex:e.length-r},children:(0,c.jsx)(ra.BotMark,{size:20,...rP(n.name,t[ro.BOT_SEEDS.indexOf(n)]),notify:!1})},n.name))]})}function rP(e,t){return{seed:e||"bot",color:t?.color,shape:t?.shape,outline:t?.outline,paint:t?.paint}}function rM({bot:e,jobs:t,onDone:n,onCancel:r}){let[o,a]=(0,rg.useObjectState)(()=>({name:e?.name??"",description:e?.description??"",systemPrompt:e?.systemPrompt??"",icon:e?.icon??(0,rr.randomBotIcon)(),provider:e?.provider??null,model:e?.model??"",compactAt:e?.compactAt?String(e.compactAt/1e3):"",toolIds:e?.tools.map(e=>e.id)??[]})),{name:i,description:l,systemPrompt:s,icon:u,provider:d,model:f,compactAt:m,toolIds:p}=o,[h,v]=(0,E.useState)(!!e?.compactAt),g=(0,rw.useServerRoute)(j.queryKey.modelCatalog),x=(e,t)=>e&&t.trim()?(0,n9.contextWindowOf)(e,t.trim(),g.data):null,y=x(d,f),w=d&&f.trim()?rF(y)/1e3:null,S=h?m:null===w?"":String(w),[N]=(0,ry.useServerAction)(rn,{onOk:()=>(0,rw.revalidate)(j.queryKey.bot)}),C=t=>{e&&N(e.name,t)},[A,R,,O]=(0,ry.useServerAction)(n7,{errorMessage:!1,okMessage:"Bot created",onOk:e=>{(0,rw.revalidate)(j.queryKey.bot),n(e.name)}}),[P,M]=(0,ry.useServerAction)(re,{okMessage:"Bot deleted",onOk:()=>{(0,rw.revalidate)(j.queryKey.bot),n(null)}}),D=i.trim()&&l.trim()&&d&&f.trim()&&!R,I=async()=>{!e||await n0.notify.confirm({title:`Delete ${e.name}?`,description:"The agent can no longer hand work to it.",okText:"Delete",destructive:!0})&&P(e.name)};return(0,c.jsxs)("div",{className:"flex min-h-full flex-col",children:[(0,c.jsxs)("div",{className:"flex h-11 shrink-0 items-center gap-2 border-b border-border/60 px-4",children:[(0,c.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[11px] text-muted-foreground",children:e?e.name:"New bot"}),e&&(0,c.jsxs)(c.Fragment,{children:[e.disabled&&(0,c.jsx)("span",{className:"font-mono text-[10px] text-muted-foreground",children:"off"}),(0,c.jsx)(n3.Switch,{checked:!e.disabled,onCheckedChange:e=>C({disabled:!e}),"aria-label":`${e.name} on or off`,className:"mr-1 shrink-0"}),(0,c.jsx)(k.Button,{size:"icon-sm",variant:"ghost",loading:M,"aria-label":"Delete this bot",onClick:I,className:"text-muted-foreground hover:text-destructive",children:(0,c.jsx)(b.Trash2,{})})]})]}),(0,c.jsxs)("div",{className:"flex-1 space-y-5 p-6",children:[(0,c.jsx)(rz,{name:i,icon:u,onChange:e=>{a({icon:e}),C({icon:e})}}),(0,c.jsxs)(rB,{label:"Name",children:[e?(0,c.jsx)("p",{className:"truncate text-sm leading-8 font-medium",children:e.name}):(0,c.jsx)(n$.Input,{value:i,onChange:e=>a({name:e.target.value}),placeholder:"researcher",spellCheck:!1,maxLength:rb.COMMON_VALIDATE.name.max,autoFocus:!0}),(0,c.jsx)("p",{className:"text-xs text-muted-foreground",children:e?`What ${n5.APP_NAME} calls it when she hands it work. Fixed once the bot is made.`:`What ${n5.APP_NAME} calls it when she hands it work. Up to ${rb.COMMON_VALIDATE.name.max} characters, and it can’t be renamed later.`})]}),(0,c.jsxs)(rB,{label:"Description",children:[(0,c.jsx)(n$.Input,{value:l,onChange:e=>a({description:e.target.value}),onBlur:()=>{let t=l.trim();e&&t&&t!==e.description&&C({description:t})},placeholder:"Searches the web and answers",maxLength:rb.COMMON_VALIDATE.description.max}),(0,c.jsxs)("p",{className:"text-xs text-muted-foreground",children:["The one line ",n5.APP_NAME," and the other bots read when they decide who gets a job."]})]}),(0,c.jsx)(rB,{label:"Runs on",children:(0,c.jsx)(n6.ModelPicker,{provider:d,model:f,onChange:e=>{a({provider:e.provider,model:e.model}),v(!1),e.model&&C({...e,compactAt:rF(x(e.provider,e.model))})},onUnset:()=>{a({provider:null,model:""}),v(!1),C({provider:null,model:null,compactAt:null})}})}),(0,c.jsxs)(rB,{label:"Compacts at",children:[(0,c.jsxs)(nK,{children:[(0,c.jsx)(nH,{inputMode:"decimal",value:S,placeholder:f.trim()?"":"Pick a model first",onChange:e=>{v(!0),a({compactAt:e.target.value})},onBlur:()=>{if(!h)return;let e=r_(m);null===e?v(!1):a({compactAt:String(e/1e3)}),C({compactAt:e??(f.trim()?rF(y):null)})}}),(0,c.jsx)(nV,{align:"inline-end",children:(0,c.jsx)(nq,{children:"k tokens"})})]}),(0,c.jsx)("p",{className:"text-xs text-muted-foreground",children:function(e){if(!e.model)return"Filled in from the model once one is picked.";let t=rF(e.window),n="A job summarizes itself here and carries on.";return null!==e.shown&&e.shown!==t?`Set by hand. Picking a model fills in its own again. ${n}`:e.window?`${Math.round(100*n5.BOT_RUN.compactHeadroom)}% of this model's ${(e.window/1e3).toLocaleString()}k context window. ${n}`:`This model's context window is unknown, so the default is filled in. ${n}`}({model:f.trim(),window:y,shown:r_(S)})})]}),(0,c.jsx)(rB,{label:"Tools",children:(0,c.jsx)(rW,{selected:p,onChange:e=>{a({toolIds:e}),C({toolIds:e})}})}),(0,c.jsxs)(rB,{label:"Prompt",children:[(0,c.jsx)(nz.Textarea,{value:s,onChange:e=>a({systemPrompt:e.target.value}),onBlur:()=>{let t=s.trim();e&&t!==(e.systemPrompt??"")&&C({systemPrompt:t})},placeholder:`How it should work (optional). e.g.
2
- Search the web, answer with a short summary and links.`,maxLength:rb.COMMON_VALIDATE.prompt.max,className:"max-h-48 min-h-24 resize-none overflow-y-auto text-sm"}),s.length>0&&(0,c.jsxs)("p",{className:"text-right font-mono text-[10px] text-muted-foreground",children:[s.length,"/",rb.COMMON_VALIDATE.prompt.max]})]}),e&&(0,c.jsx)(rD,{bot:e.name}),e&&(0,c.jsx)(r$,{jobs:t}),!e&&(0,c.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-1",children:[(0,c.jsx)(k.Button,{variant:"ghost",onClick:r,children:"Cancel"}),(0,c.jsx)(k.Button,{loading:R,disabled:!D,onClick:()=>{D&&d&&A({name:i.trim(),description:l.trim(),systemPrompt:s.trim()||void 0,icon:u,provider:d,model:f.trim(),compactAt:h?r_(m):rF(y),toolIds:p})},children:"Create"})]}),O&&(0,c.jsx)("p",{className:"font-mono text-xs text-destructive",children:O})]})]})}function rD({bot:e}){let t=j.queryKey.botMemoryFiles(e),{data:n,isLoading:r}=(0,rw.useServerRoute)(t),[o,a]=(0,E.useState)(null),[i]=(0,ry.useServerAction)(rv.openFileAction),[l,s]=(0,ry.useServerAction)(rh.deleteWorkspaceFileAction,{okMessage:"File deleted",onOk:()=>{a(null),(0,rw.revalidate)(t),(0,rw.revalidate)(j.queryKey.workspace)}}),u=async t=>{await n0.notify.confirm({title:`Delete ${t.file}?`,description:`It is deleted from disk for good, and ${e}'s next job starts without it.`,okText:"Delete",destructive:!0})&&l(t.path)};return(0,c.jsxs)("div",{className:"pt-1",children:[(0,c.jsxs)("div",{className:"flex h-6 items-center",children:[(0,c.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:"Memory"}),(0,c.jsx)("span",{className:"flex-1"}),n&&n.total>0&&(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("span",{className:"pr-1 font-mono text-[11px] text-muted-foreground tabular-nums",children:1===n.total?"1 file":`${n.total} files`}),(0,c.jsxs)("button",{type:"button",title:"Show in the file manager",onClick:()=>i(n.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,c.jsx)(h.FolderOpen,{className:"size-3"}),"Folder"]})]})]}),r?(0,c.jsx)("div",{className:"flex h-9 items-center border-t border-border/60",children:(0,c.jsx)(n2.Skeleton,{className:"h-3 w-56"})}):n?.entries.length?n.entries.map(e=>{let t=o===e.path;return(0,c.jsxs)("div",{className:"border-t border-border/60",children:[(0,c.jsxs)("button",{type:"button","aria-expanded":t,onClick:()=>a(t?null:e.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,c.jsx)("span",{className:(0,nW.cn)("min-w-0 flex-1 truncate",t&&"font-medium"),children:e.line||e.file}),(0,c.jsx)("span",{className:"w-36 shrink-0 truncate font-mono text-[11px] text-muted-foreground",children:e.file}),(0,c.jsx)("span",{className:"w-28 shrink-0 text-right font-mono text-[11px] text-muted-foreground tabular-nums",children:(0,rx.whenOf)(e.at)}),(0,c.jsx)(d.ChevronRight,{className:(0,nW.cn)("size-3 shrink-0 text-muted-foreground transition-transform",t&&"rotate-90")})]}),t&&(0,c.jsxs)("div",{className:"flex items-start gap-3",children:[(0,c.jsx)("div",{className:"max-h-96 min-w-0 flex-1 overflow-y-auto",children:(0,c.jsx)(rI,{path:e.path})}),(0,c.jsx)(k.Button,{size:"icon-sm",variant:"ghost","aria-label":`Delete ${e.file}`,loading:s,onClick:()=>u(e),className:"text-muted-foreground hover:text-destructive",children:(0,c.jsx)(b.Trash2,{})})]})]},e.path)}):(0,c.jsx)("p",{className:"py-2 text-[13px] text-muted-foreground",children:"Nothing kept yet."})]})}function rI({path:e}){let{content:t,failure:n,truncated:r}=(0,rm.useFileText)(e);if(n)return(0,c.jsx)("p",{className:"pb-3 font-mono text-xs text-destructive",children:n});if(null===t)return(0,c.jsxs)("div",{className:"space-y-2 pb-3",children:[(0,c.jsx)(n2.Skeleton,{className:"h-4 w-5/6"}),(0,c.jsx)(n2.Skeleton,{className:"h-4 w-2/3"})]});let o=(0,rp.viewKindOf)(e);return(0,c.jsx)(rm.FileBody,{kind:o,content:"markdown"===o?rT(t):t,truncated:r,where:"inline"})}let rT=e=>e.replace(/^---\n[\s\S]*?\n---\n/,"").replace(/^\s*#[^\n]*\n?/,"");function rL({bot:e}){let{data:t,mutate:n}=(0,rw.useServerRoute)(j.queryKey.botMemory),[r]=(0,ry.useServerAction)(rt,{onOk:()=>(0,rw.revalidate)(j.queryKey.botMemory)}),o=e?e.tokens.input+e.tokens.output:0;return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(rd.SettingRailNote,{children:e?(0,c.jsxs)("span",{className:"font-mono text-[11px]",children:[e.name,e.disabled&&(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("span",{className:"px-1.5 opacity-50",children:"·"}),"off"]}),(0,c.jsx)("span",{className:"px-1.5 opacity-50",children:"·"}),(0,c.jsx)("span",{title:`in ${(0,nW.formatCount)(e.tokens.input)} \xb7 out ${(0,nW.formatCount)(e.tokens.output)}`,children:o>0?`${(0,nW.formatCount)(o)} tokens`:"no tokens yet"}),(0,c.jsx)("span",{className:"px-1.5 opacity-50",children:"·"}),"since ",(0,rx.whenOf)(e.createdAt)]}):"Becomes a bot once it has a name and a model"}),(0,c.jsx)(ri.KeepWorkingSwitch,{}),(0,c.jsx)("span",{className:"h-4 w-px shrink-0 bg-border"}),(0,c.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground",children:"Bots keep their own memory"}),(0,c.jsx)(n3.Switch,{checked:t??!0,disabled:void 0===t,onCheckedChange:e=>{n(e,!1),r(e)},"aria-label":"Bots keep their own memory"})]})}function r_(e){let t=Number(e.replace(/[^0-9.]/g,""));return Number.isFinite(t)&&t>0?Math.round(1e3*t):null}let rF=e=>1e3*Math.round((0,n9.compactAtFor)(e)/1e3);function rB({label:e,children:t}){return(0,c.jsxs)("div",{className:"flex gap-3",children:[(0,c.jsx)("span",{className:"w-20 shrink-0 pt-2 font-mono text-xs text-muted-foreground",children:e}),(0,c.jsx)("div",{className:"min-w-0 flex-1 space-y-1.5",children:t})]})}function r$({jobs:e}){return(0,c.jsxs)("div",{className:"pt-1",children:[(0,c.jsxs)("div",{className:"flex h-6 items-center",children:[(0,c.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:"Recent"}),(0,c.jsx)("span",{className:"flex-1"}),(0,c.jsxs)("button",{type:"button",onClick:()=>(0,rf.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,c.jsx)(g,{className:"size-3"}),"History"]})]}),0===e.length?(0,c.jsx)("p",{className:"py-2 text-[13px] text-muted-foreground",children:"Nothing handed over yet."}):e.map(e=>{let t=function(e){switch(e.status){case"waiting":return{text:"waiting on you",tone:nW.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"}}}(e);return(0,c.jsxs)("div",{className:"flex h-9 items-center gap-3 border-t border-border/60 text-[13px]",children:[(0,c.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e.label}),"running"===e.status?(0,c.jsx)(n1.ShinyText,{text:t.text,className:"shrink-0 font-mono text-[11px]"}):(0,c.jsx)("span",{className:(0,nW.cn)("shrink-0 font-mono text-[11px]",t.tone),children:t.text}),(0,c.jsx)("span",{className:"w-28 shrink-0 text-right font-mono text-[11px] text-muted-foreground tabular-nums",children:(0,rx.whenOf)(e.updatedAt)})]},e.id)})]})}function rz({name:e,icon:t,onChange:n}){return(0,c.jsxs)("div",{className:"flex flex-col items-center gap-4 pt-3 pb-2",children:[(0,c.jsx)(ra.BotMark,{size:112,...rP(e,t),className:"shrink-0"}),(0,c.jsx)(rc,{color:t.paint?void 0:t.color,themePicked:!t.paint&&t.color===rs.MARK_SYSTEM,onTheme:()=>n({...t,paint:void 0,color:rs.MARK_SYSTEM}),onPick:e=>n({...t,paint:void 0,color:t.paint||t.color!==e?e:void 0}),paint:t.paint,onPaint:e=>n({...t,paint:t.paint===e?void 0:e})}),(0,c.jsxs)("div",{className:"flex gap-1",children:[rs.MARK_SHAPES.map(e=>(0,c.jsx)("button",{type:"button",onClick:()=>n({...t,shape:t.shape===e?void 0:e}),className:(0,nW.cn)("rounded-md px-2 py-1 font-mono text-[11px] capitalize transition-colors",t.shape===e?"bg-foreground text-background":"bg-muted text-muted-foreground hover:text-foreground"),children:e},e)),(0,c.jsx)("span",{className:"mx-1 w-px self-stretch bg-border/60"}),(0,c.jsx)("button",{type:"button",onClick:()=>n({...t,outline:!t.outline||void 0}),className:(0,nW.cn)("rounded-md px-2 py-1 font-mono text-[11px] transition-colors",t.outline?"bg-foreground text-background":"bg-muted text-muted-foreground hover:text-foreground"),children:"outline"})]})]})}function rW({selected:e,onChange:t}){let{data:n=[]}=(0,rw.useServerRoute)(j.queryKey.mcpTools),[r,o]=(0,E.useState)(!1),a=e.length>=rr.MAX_PINNED_TOOLS,i=[...new Set(n.map(e=>e.serverName))],l=e.map(e=>n.find(t=>t.id===e)).filter(e=>!!e),s=r?l:l.slice(0,4),d=l.length-s.length,f=n=>t(e.includes(n)?e.filter(e=>e!==n):[...e,n]);return 0===n.length?(0,c.jsx)("p",{className:"pt-1.5 text-xs text-muted-foreground",children:"Nothing to pin — connect an MCP server first (Settings › Connectors)."}):(0,c.jsxs)("div",{className:"space-y-2",children:[(0,c.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,c.jsx)(k.Button,{size:"icon-sm",variant:r?"secondary":"outline",onClick:()=>o(!r),"aria-label":"Pick tools",className:"border-dashed",children:(0,c.jsx)(y.Wrench,{})}),s.map(e=>(0,c.jsxs)("span",{className:"flex items-center gap-1 rounded-full bg-muted py-1 pr-1.5 pl-2.5 font-mono text-[11px]",children:[e.name,(0,c.jsx)("button",{type:"button","aria-label":`Unpin ${e.name}`,onClick:()=>f(e.id),className:"rounded-full p-0.5 text-muted-foreground transition-colors hover:bg-foreground/10 hover:text-foreground",children:(0,c.jsx)(w.X,{className:"size-3"})})]},e.id)),d>0&&(0,c.jsxs)("button",{type:"button",onClick:()=>o(!0),className:"rounded-full bg-muted px-2.5 py-1 font-mono text-[11px] text-muted-foreground transition-colors hover:text-foreground",children:["+",d]}),0===l.length&&(0,c.jsx)("span",{className:"text-xs text-muted-foreground",children:"Loaded from the start — everything else stays searchable"}),(0,c.jsx)("span",{className:"flex-1"}),(0,c.jsxs)("span",{className:(0,nW.cn)("font-mono text-[11px] text-muted-foreground",a&&"text-foreground"),children:[e.length,"/",rr.MAX_PINNED_TOOLS]})]}),r&&(0,c.jsxs)(nX,{className:"rounded-lg border border-input",children:[(0,c.jsx)(nY,{placeholder:"Search tools"}),(0,c.jsxs)(nG,{className:"max-h-44",children:[(0,c.jsx)(nZ,{children:"Nothing matches"}),i.map(t=>(0,c.jsx)(nJ,{heading:t,children:n.filter(e=>e.serverName===t).map(t=>{let n=e.includes(t.id);return(0,c.jsxs)(nQ,{value:`${t.serverName}/${t.name}`,disabled:!n&&a,onSelect:()=>f(t.id),children:[(0,c.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-xs",children:t.name}),n&&(0,c.jsx)(u.Check,{className:"size-3.5 shrink-0 text-brand"})]},t.id)})},t))]})]})]})}e.s(["BotSetting",0,function(){let{data:e,isLoading:t,error:n}=(0,rw.useServerRoute)(j.queryKey.bot),r=e??[],{data:o}=(0,rw.useServerRoute)(j.queryKey.threadHistory(null)),a=o??[],[i,l]=(0,E.useState)(null),[s]=(0,E.useState)(ro.rollSeedIcons);if(t)return(0,c.jsx)(rd.SettingPanesSkeleton,{});if(n)return(0,c.jsx)(rd.SettingError,{message:n.message});let u=i===rE,d=r.filter(e=>!e.disabled).length,f=new Set(r.map(e=>e.name)),m=ro.BOT_SEEDS.filter(e=>!f.has(e.name)),p=u?null:r.find(e=>e.name===i)??r[0]??null;return(0,c.jsx)(rd.SettingPanes,{footer:0===r.length?null:(0,c.jsx)(rL,{bot:p}),left:(0,c.jsxs)("div",{className:"flex flex-col py-2",children:[(0,c.jsxs)("div",{className:"mx-2 mb-1 flex items-center gap-1",children:[(0,c.jsxs)("button",{type:"button",onClick:()=>l(rE),className:(0,nW.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",u?"bg-secondary text-foreground":"text-muted-foreground hover:bg-muted/60 hover:text-foreground"),children:[(0,c.jsx)(x.Plus,{className:"size-3.5 shrink-0"}),"New bot"]}),r.length>0&&m.length>0&&(0,c.jsx)(rO,{missing:m,faces:s,have:f,onDone:e=>l(e)})]}),r.map(e=>(0,c.jsx)(rj,{bot:e,job:a.find(t=>t.bot===e.name)??null,active:!u&&e.name===p?.name,onPick:()=>l(e.name)},e.name)),d>n5.PROMPT_CROWDED.bots&&(0,c.jsxs)(rd.SettingNote,{className:"mx-3 mt-2 leading-relaxed",children:[d," bots are on. Each is a line in every prompt, and one more for Thursday to choose between."]})]}),right:u?(0,c.jsx)(rM,{jobs:[],onDone:e=>l(e),onCancel:()=>l(null)},"new"):p?(0,c.jsx)(rM,{bot:p,jobs:a.filter(e=>e.bot===p.name).slice(0,3),onDone:()=>l(null)},p.name):m.length>0?(0,c.jsx)(rA,{have:f,faces:s,onDone:e=>l(e)}):(0,c.jsxs)("div",{className:"space-y-4 p-8",children:[(0,c.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,c.jsxs)(k.Button,{variant:"outline",onClick:()=>l(rE),children:[(0,c.jsx)(x.Plus,{}),"New bot"]})]})})}],507906)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,507906,e=>{"use strict";var t,n,r,o,a,i,l,s,c=e.i(843476),u=e.i(689664),d=e.i(867927),f=e.i(456420);let m={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"]};m.node;let p=(0,f.default)(m);var h=e.i(569644);let v={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"]};v.node;let g=(0,f.default)(v);var x=e.i(77071),b=e.i(759659),y=e.i(747925),w=e.i(263676),E=e.i(271645),j=e.i(798120),k=e.i(167881),S=/[\\\/_+.#"@\[\(\{&]/,N=/[\\\/_+.#"@\[\(\{&]/g,C=/[\s-]/,A=/[\s-]/g;function R(e){return e.toLowerCase().replace(A," ")}var O=Object.defineProperty,P=(e,t)=>O(e,"name",{value:t,configurable:!0}),M=!!("u">typeof window&&window.document&&window.document.createElement);function D(e,t,{checkForDefaultPrevented:n=!0}={}){return P(function(r){if(e?.(r),!1===n||!r||!r.defaultPrevented)return t?.(r)},"handleEvent")}function I(e){if(!M)throw Error("Cannot access document outside of the DOM");return e?.ownerDocument??document}function T(e){return"IFRAME"===e.tagName}P(D,"composeEventHandlers"),P(function(e){if(!M)throw Error("Cannot access window outside of the DOM");return e?.ownerDocument?.defaultView??window},"getOwnerWindow"),P(I,"getOwnerDocument"),P(function e(t,n=!1){let{activeElement:r}=I(t);if(!r?.nodeName)return null;if(T(r)&&r.contentDocument)return e(r.contentDocument.body,n);if(n){let e=r.getAttribute("aria-activedescendant");if(e){let t=I(r).getElementById(e);if(t)return t}}return r},"getActiveElement"),P(T,"isFrame");var L=Object.defineProperty,_=(e,t)=>L(e,"name",{value:t,configurable:!0});function F(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function B(...e){return t=>{let n=!1,r=e.map(e=>{let r=F(e,t);return n||"function"!=typeof r||(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];"function"==typeof n?n():F(e[t],null)}}}}function $(...e){return E.useCallback(B(...e),e)}_(F,"setRef"),_(B,"composeRefs"),_($,"useComposedRefs");var z=Object.defineProperty,W=(e,t)=>z(e,"name",{value:t,configurable:!0});function K(e,t=[]){let n=[];function r(t,r){let o=E.createContext(r);o.displayName=t+"Context";let a=n.length;n=[...n,r];let i=W(t=>{let{scope:n,children:r,...i}=t,l=n?.[e]?.[a]||o,s=E.useMemo(()=>i,Object.values(i));return(0,c.jsx)(l.Provider,{value:s,children:r})},"Provider");function l(n,i,s={}){let{optional:c=!1}=s,u=i?.[e]?.[a]||o,d=E.useContext(u);if(d)return d;if(void 0!==r)return r;if(!c)throw Error(`\`${n}\` must be used within \`${t}\``)}return i.displayName=t+"Provider",W(l,"useContext"),[i,l]}W(r,"createContext");let o=W(()=>{let t=n.map(e=>E.createContext(e));return W(function(n){let r=n?.[e]||t;return E.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])},"useScope")},"createScope");return o.scopeName=e,[r,U(o,...t)]}function U(...e){let t=e[0];if(1===e.length)return t;let n=W(()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return W(function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let o=n(e)[`__scope${r}`];return{...t,...o}},{});return E.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])},"useComposedScopes")},"createScope");return n.scopeName=t.scopeName,n}W(function(e,t){let n=E.createContext(t);n.displayName=e+"Context";let r=W(e=>{let{children:t,...r}=e,o=E.useMemo(()=>r,Object.values(r));return(0,c.jsx)(n.Provider,{value:o,children:t})},"Provider");function o(r,a={}){let{optional:i=!1}=a,l=E.useContext(n);if(l)return l;if(void 0!==t)return t;if(!i)throw Error(`\`${r}\` must be used within \`${e}\``)}return r.displayName=e+"Provider",W(o,"useContext"),[r,o]},"createContext"),W(K,"createContextScope"),W(U,"composeContextScopes");var V=globalThis?.document?E.useLayoutEffect:()=>{},q=Object.defineProperty,H=E[" useId ".trim().toString()]||(()=>void 0),X=0;function Y(e){let[t,n]=E.useState(H());return V(()=>{e||n(e=>e??String(X++))},[e]),e||(t?`radix-${t}`:"")}q(Y,"name",{value:"useId",configurable:!0});var G=Object.defineProperty,Z=E[" useEffectEvent ".trim().toString()],J=E[" useInsertionEffect ".trim().toString()];function Q(e){if("function"==typeof Z)return Z(e);let t=E.useRef(()=>{throw Error("Cannot call an event handler while rendering.")});return"function"==typeof J?J(()=>{t.current=e}):V(()=>{t.current=e}),E.useMemo(()=>(...e)=>t.current?.(...e),[])}G(Q,"name",{value:"useEffectEvent",configurable:!0});var ee=Object.defineProperty,et=(e,t)=>ee(e,"name",{value:t,configurable:!0}),en=E[" useInsertionEffect ".trim().toString()]||V;function er({prop:e,defaultProp:t,onChange:n=et(()=>{},"onChange"),caller:r}){let[o,a,i]=eo({defaultProp:t,onChange:n}),l=void 0!==e,s=l?e:o;return[s,E.useCallback(t=>{if(l){let n=ea(t)?t(e):t;n!==e&&i.current?.(n)}else a(t)},[l,e,a,i])]}function eo({defaultProp:e,onChange:t}){let[n,r]=E.useState(e),o=E.useRef(n),a=E.useRef(t);return en(()=>{a.current=t},[t]),E.useEffect(()=>{o.current!==n&&(a.current?.(n),o.current=n)},[n,o]),[n,r,a]}function ea(e){return"function"==typeof e}et(er,"useControllableState"),et(eo,"useUncontrolledState"),et(ea,"isFunction");var ei=Symbol("RADIX:SYNC_STATE");et(function(e,t,n,r){let{prop:o,defaultProp:a,onChange:i,caller:l}=t,s=void 0!==o,c=Q(i),u=[{...n,state:a}];r&&u.push(r);let[d,f]=E.useReducer((t,n)=>{if(n.type===ei)return{...t,state:n.state};let r=e(t,n);return s&&!Object.is(r.state,t.state)&&c(r.state),r},...u),m=d.state,p=E.useRef(m);E.useEffect(()=>{p.current!==m&&(p.current=m,s||c(m))},[m,p,s]);let h=E.useMemo(()=>void 0!==o?{...d,state:o}:d,[d,o]);return E.useEffect(()=>{s&&!Object.is(o,d.state)&&f({type:ei,state:o})},[o,d.state,s]),[h,f]},"useControllableStateReducer");var el=e.i(174080),es=Object.defineProperty,ec=(e,t)=>es(e,"name",{value:t,configurable:!0});function eu(e){let t=E.forwardRef((t,n)=>{let{children:r,...o}=t,a=null,i=!1,l=[];eg(r)&&"function"==typeof ew&&(r=ew(r._payload)),E.Children.forEach(r,e=>{if(eh(e)){i=!0;let t="child"in e.props?e.props.child:e.props.children;eg(t)&&"function"==typeof ew&&(t=ew(t._payload)),a=ef(e,t),l.push(a?.props?.children)}else l.push(e)}),a?a=E.cloneElement(a,void 0,l):!i&&1===E.Children.count(r)&&E.isValidElement(r)&&(a=r);let s=a?ep(a):void 0,c=$(n,s);if(!a){if(r||0===r)throw Error(i?ey(e):eb(e));return r}let u=em(o,a.props??{});return a.type!==E.Fragment&&(u.ref=n?c:s),E.cloneElement(a,u)});return t.displayName=`${e}.Slot`,t}ec(eu,"createSlot");var ed=Symbol.for("radix.slottable");ec(function(e){let t=ec(e=>"child"in e?e.children(e.child):e.children,"Slottable");return t.displayName=`${e}.Slottable`,t.__radixId=ed,t},"createSlottable");var ef=ec((e,t)=>{if("child"in e.props){let t=e.props.child;return E.isValidElement(t)?E.cloneElement(t,void 0,e.props.children(t.props.children)):null}return E.isValidElement(t)?t:null},"getSlottableElementFromSlottable");function em(e,t){let n={...t};for(let r in t){let o=e[r],a=t[r];/^on[A-Z]/.test(r)?o&&a?n[r]=(...e)=>{let t=a(...e);return o(...e),t}:o&&(n[r]=o):"style"===r?n[r]={...o,...a}:"className"===r&&(n[r]=[o,a].filter(Boolean).join(" "))}return{...e,...n}}function ep(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(n=(t=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning)?e.props.ref:e.props.ref||e.ref}function eh(e){return E.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===ed}ec(em,"mergeProps"),ec(ep,"getElementRef"),ec(eh,"isSlottable");var ev=Symbol.for("react.lazy");function eg(e){return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===ev&&"_payload"in e&&ex(e._payload)}function ex(e){return"object"==typeof e&&null!==e&&"then"in e}ec(eg,"isLazyComponent"),ec(ex,"isPromiseLike");var eb=ec(e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,"createSlotError"),ey=ec(e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,"createSlottableError"),ew=E[" use ".trim().toString()],eE=Object.defineProperty,ej=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{let n=eu(`Primitive.${t}`),r=E.forwardRef((e,r)=>{let{asChild:o,...a}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,c.jsx)(o?n:t,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function ek(e,t){e&&el.flushSync(()=>e.dispatchEvent(t))}function eS(e){let t=E.useRef(e);return E.useEffect(()=>{t.current=e}),E.useMemo(()=>(...e)=>t.current?.(...e),[])}eE(ek,"name",{value:"dispatchDiscreteCustomEvent",configurable:!0}),(0,Object.defineProperty)(eS,"name",{value:"useCallbackRef",configurable:!0});var eN=Object.defineProperty,eC=(e,t)=>eN(e,"name",{value:t,configurable:!0}),eA="dismissableLayer.update",eR=E.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),eO=E.forwardRef(eC(function(e,t){let{disableOutsidePointerEvents:n=!1,deferPointerDownOutside:r=!1,onEscapeKeyDown:o,onPointerDownOutside:a,onFocusOutside:i,onInteractOutside:s,onDismiss:u,...d}=e,f=E.useContext(eR),[m,p]=E.useState(null),h=m?.ownerDocument??globalThis?.document,[,v]=E.useState({}),g=$(t,p),x=Array.from(f.layers),[b]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),y=b?x.indexOf(b):-1,w=m?x.indexOf(m):-1,j=f.layersWithOutsidePointerEventsDisabled.size>0,k=w>=y,S=E.useRef(!1),N=eD(e=>{a?.(e),s?.(e),e.defaultPrevented||u?.()},{ownerDocument:h,deferPointerDownOutside:r,isDeferredPointerDownOutsideRef:S,dismissableSurfaces:f.dismissableSurfaces,shouldHandlePointerDownOutside:E.useCallback(e=>{if(!(e instanceof Node))return!1;let t=[...f.branches].some(t=>t.contains(e));return k&&!t},[f.branches,k])}),C=eI(e=>{if(r&&S.current)return;let t=e.target;![...f.branches].some(e=>e.contains(t))&&(i?.(e),s?.(e),e.defaultPrevented||u?.())},h),A=!!m&&w===x.length-1,R=eS(e=>{"Escape"===e.key&&(o?.(e),!e.defaultPrevented&&u&&(e.preventDefault(),u()))});return E.useEffect(()=>{if(A)return h.addEventListener("keydown",R,{capture:!0}),()=>h.removeEventListener("keydown",R,{capture:!0})},[h,A,R]),E.useEffect(()=>{if(m)return n&&(0===f.layersWithOutsidePointerEventsDisabled.size&&(l=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(m)),f.layers.add(m),eT(),()=>{n&&(f.layersWithOutsidePointerEventsDisabled.delete(m),0===f.layersWithOutsidePointerEventsDisabled.size&&(h.body.style.pointerEvents=l))}},[m,h,n,f]),E.useEffect(()=>()=>{m&&(f.layers.delete(m),f.layersWithOutsidePointerEventsDisabled.delete(m),eT())},[m,f]),E.useEffect(()=>{let e=eC(()=>v({}),"handleUpdate");return document.addEventListener(eA,e),()=>document.removeEventListener(eA,e)},[]),(0,c.jsx)(ej.div,{...d,ref:g,style:{pointerEvents:j?k?"auto":"none":void 0,...e.style},onFocusCapture:D(e.onFocusCapture,C.onFocusCapture),onBlurCapture:D(e.onBlurCapture,C.onBlurCapture),onPointerDownCapture:D(e.onPointerDownCapture,N.onPointerDownCapture)})},"DismissableLayer"));function eP(){let e=E.useContext(eR),[t,n]=E.useState(null);return E.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}eC(eP,"useDismissableLayerSurface");var eM=eC(()=>!0,"IS_TRUE");function eD(e,t){let{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:o,dismissableSurfaces:a,shouldHandlePointerDownOutside:i=eM}=t,l=eS(e),s=E.useRef(!1),c=E.useRef(!1),u=E.useRef(new Map),d=E.useRef(()=>{});return E.useEffect(()=>{function e(){c.current=!1,o.current=!1,u.current.clear()}function t(){return Array.from(u.current.values()).some(Boolean)}function f(e){if(!c.current)return;let t=e.target;t instanceof Node&&[...a].some(e=>e.contains(t))||u.current.set(e.type,!0),"click"===e.type&&window.setTimeout(()=>{c.current&&d.current()},0)}function m(e){c.current&&u.current.set(e.type,!1)}eC(e,"resetOutsideInteraction"),eC(t,"isOutsideInteractionIntercepted"),eC(f,"handleInteractionCapture"),eC(m,"handleInteractionBubble");let p=eC(a=>{if(a.target&&!s.current){let f=function(){n.removeEventListener("click",d.current);let r=t();e(),r||eL("dismissableLayer.pointerDownOutside",l,m,{discrete:!0})};if(eC(f,"handleAndDispatchPointerDownOutsideEvent"),!i(a.target)){n.removeEventListener("click",d.current),e(),s.current=!1;return}let m={originalEvent:a};c.current=!0,o.current=r&&0===a.button,u.current.clear(),r&&0===a.button?(n.removeEventListener("click",d.current),d.current=f,n.addEventListener("click",d.current,{once:!0})):f()}else n.removeEventListener("click",d.current),e();s.current=!1},"handlePointerDown"),h=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(let e of h)n.addEventListener(e,f,!0),n.addEventListener(e,m);let v=window.setTimeout(()=>{n.addEventListener("pointerdown",p)},0);return()=>{for(let e of(window.clearTimeout(v),n.removeEventListener("pointerdown",p),n.removeEventListener("click",d.current),h))n.removeEventListener(e,f,!0),n.removeEventListener(e,m)}},[n,l,r,o,a,i]),{onPointerDownCapture:eC(()=>s.current=!0,"onPointerDownCapture")}}function eI(e,t=globalThis?.document){let n=eS(e),r=E.useRef(!1);return E.useEffect(()=>{let e=eC(e=>{e.target&&!r.current&&eL("dismissableLayer.focusOutside",n,{originalEvent:e},{discrete:!1})},"handleFocus");return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)},[t,n]),{onFocusCapture:eC(()=>r.current=!0,"onFocusCapture"),onBlurCapture:eC(()=>r.current=!1,"onBlurCapture")}}function eT(){let e=new CustomEvent(eA);document.dispatchEvent(e)}function eL(e,t,n,{discrete:r}){let o=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?ek(o,a):o.dispatchEvent(a)}eC(eD,"usePointerDownOutside"),eC(eI,"useFocusOutside"),eC(eT,"dispatchUpdate"),eC(eL,"handleAndDispatchCustomEvent");var e_=Object.defineProperty,eF=(e,t)=>e_(e,"name",{value:t,configurable:!0}),eB="focusScope.autoFocusOnMount",e$="focusScope.autoFocusOnUnmount",ez={bubbles:!1,cancelable:!0},eW=E.forwardRef(eF(function(e,t){let{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:a,...i}=e,[l,s]=E.useState(null),u=eS(o),d=eS(a),f=E.useRef(null),m=$(t,s),p=E.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;E.useEffect(()=>{if(r){let e=function(e){if(p.paused||!l)return;let t=e.target;l.contains(t)?f.current=t:eY(f.current,{select:!0})},t=function(e){if(p.paused||!l)return;let t=e.relatedTarget;null!==t&&(l.contains(t)||eY(f.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&eY(l)};eF(e,"handleFocusIn"),eF(t,"handleFocusOut"),eF(n,"handleMutations"),document.addEventListener("focusin",e),document.addEventListener("focusout",t);let r=new MutationObserver(n);return l&&r.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),r.disconnect()}}},[r,l,p.paused]),E.useEffect(()=>{if(l){eG.add(p);let e=document.activeElement;if(!l.contains(e)){let t=new CustomEvent(eB,ez);l.addEventListener(eB,u),l.dispatchEvent(t),t.defaultPrevented||(eK(eQ(eV(l)),{select:!0}),document.activeElement===e&&eY(l))}return()=>{l.removeEventListener(eB,u),setTimeout(()=>{let t=new CustomEvent(e$,ez);l.addEventListener(e$,d),l.dispatchEvent(t),t.defaultPrevented||eY(e??document.body,{select:!0}),l.removeEventListener(e$,d),eG.remove(p)},0)}}},[l,u,d,p]);let h=E.useCallback(e=>{if(!n&&!r||p.paused)return;let t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,o=document.activeElement;if(t&&o){let t=e.currentTarget,[r,a]=eU(t);r&&a?e.shiftKey||o!==a?e.shiftKey&&o===r&&(e.preventDefault(),n&&eY(a,{select:!0})):(e.preventDefault(),n&&eY(r,{select:!0})):o===t&&e.preventDefault()}},[n,r,p.paused]);return(0,c.jsx)(ej.div,{tabIndex:-1,...i,ref:m,onKeyDown:h})},"FocusScope"));function eK(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(eY(r,{select:t}),document.activeElement!==n)return}function eU(e){let t=eV(e);return[eq(t,e),eq(t.reverse(),e)]}function eV(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:eF(e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},"acceptNode")});for(;n.nextNode();)t.push(n.currentNode);return t}function eq(e,t){let n="function"==typeof t.checkVisibility&&t.checkVisibility({checkVisibilityCSS:!0});for(let r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):eH(r,{upTo:t})))return r}function eH(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e&&(void 0===t||e!==t);){if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}function eX(e){return e instanceof HTMLInputElement&&"select"in e}function eY(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&eX(e)&&t&&e.select()}}eF(eK,"focusFirst"),eF(eU,"getTabbableEdges"),eF(eV,"getTabbableCandidates"),eF(eq,"findVisible"),eF(eH,"isHidden"),eF(eX,"isSelectableInput"),eF(eY,"focus");var eG=eZ();function eZ(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),(e=eJ(e,t)).unshift(t)},remove(t){e=eJ(e,t),e[0]?.resume()}}}function eJ(e,t){let n=[...e],r=n.indexOf(t);return -1!==r&&n.splice(r,1),n}function eQ(e){return e.filter(e=>"A"!==e.tagName)}eF(eZ,"createFocusScopesStack"),eF(eJ,"arrayRemove"),eF(eQ,"removeLinks");var e0=Object.defineProperty,e1=E.forwardRef(e0(function(e,t){let{container:n,...r}=e,[o,a]=E.useState(!1);V(()=>a(!0),[]);let i=n||o&&globalThis?.document?.body;return i?el.createPortal((0,c.jsx)(ej.div,{...r,ref:t}),i):null},"name",{value:"Portal",configurable:!0})),e2=Object.defineProperty,e3=(e,t)=>e2(e,"name",{value:t,configurable:!0});function e5(e,t){return E.useReducer((e,n)=>t[e][n]??e,e)}e3(e5,"useStateMachine");var e6=e3(e=>{let{present:t,children:n}=e,r=e4(t),o="function"==typeof n?n({present:r.isPresent}):E.Children.only(n),a=e7(r.ref,te(o));return"function"==typeof n||r.isPresent?E.cloneElement(o,{ref:a}):null},"Presence");function e4(e){let[t,n]=E.useState(),r=E.useRef(null),o=E.useRef(e),a=E.useRef("none"),i=E.useRef(void 0),[l,s]=e5(e?"mounted":"unmounted",{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return E.useEffect(()=>{"mounted"===l?(a.current=i.current??e8(r.current),i.current=void 0):a.current="none"},[l]),V(()=>{let t=r.current,n=o.current;if(n!==e){let r=a.current,l=e8(t);e?(i.current=l,s("MOUNT")):"none"===l||t?.display==="none"?s("UNMOUNT"):n&&r!==l?s("ANIMATION_OUT"):s("UNMOUNT"),o.current=e}},[e,s]),V(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,i=e3(a=>{let i=e8(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&i&&(s("ANIMATION_END"),!o.current)){let r=t.style.animationFillMode;t.style.animationFillMode="forwards",e=n.setTimeout(()=>{"forwards"===t.style.animationFillMode&&(t.style.animationFillMode=r)})}},"handleAnimationEnd"),l=e3(e=>{e.target===t&&(a.current=e8(r.current))},"handleAnimationStart");return t.addEventListener("animationstart",l),t.addEventListener("animationcancel",i),t.addEventListener("animationend",i),()=>{n.clearTimeout(e),t.removeEventListener("animationstart",l),t.removeEventListener("animationcancel",i),t.removeEventListener("animationend",i)}}s("ANIMATION_END")},[t,s]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:E.useCallback(e=>{if(e){let t=getComputedStyle(e);r.current=t,i.current=e8(t)}else r.current=null;n(e)},[])}}function e9(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function e7(...e){let t=E.useRef(e);return t.current=e,E.useCallback(e=>{let n=t.current,r=!1,o=n.map(t=>{let n=e9(t,e);return r||"function"!=typeof n||(r=!0),n});if(r)return()=>{for(let e=0;e<o.length;e++){let t=o[e];"function"==typeof t?t():e9(n[e],null)}}},[])}function e8(e){return e?.animationName||"none"}function te(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(n=(t=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning)?e.props.ref:e.props.ref||e.ref}e3(e4,"usePresence"),e3(e9,"setRef"),e3(e7,"useStableComposedRefs"),e3(e8,"getAnimationName"),e3(te,"getElementRef");var tt=Object.defineProperty,tn=(e,t)=>tt(e,"name",{value:t,configurable:!0}),tr=0,to=null;function ta(){E.useEffect(()=>{to||(to={start:ti(),end:ti()});let{start:e,end:t}=to;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement("afterbegin",e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement("beforeend",t),tr++,()=>{1===tr&&(to?.start.remove(),to?.end.remove(),to=null),tr=Math.max(0,tr-1)}},[])}function ti(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}tn(function(e){return ta(),e.children},"FocusGuards"),tn(ta,"useFocusGuards"),tn(ti,"createFocusGuard");var tl=function(){return(tl=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function ts(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)0>t.indexOf(r[o])&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}var tc=("function"==typeof SuppressedError&&SuppressedError,"right-scroll-bar-position"),tu="width-before-scroll-bar";function td(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var tf="u">typeof window?E.useLayoutEffect:E.useEffect,tm=new WeakMap,tp=(void 0===t&&(t={}),(void 0===n&&(n=function(e){return e}),r=[],o=!1,a={read:function(){if(o)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return r.length?r[r.length-1]:null},useMedium:function(e){var t=n(e,o);return r.push(t),function(){r=r.filter(function(e){return e!==t})}},assignSyncMedium:function(e){for(o=!0;r.length;){var t=r;r=[],t.forEach(e)}r={push:function(t){return e(t)},filter:function(){return r}}},assignMedium:function(e){o=!0;var t=[];if(r.length){var n=r;r=[],n.forEach(e),t=r}var a=function(){var n=t;t=[],n.forEach(e)},i=function(){return Promise.resolve().then(a)};i(),r={push:function(e){t.push(e),i()},filter:function(e){return t=t.filter(e),r}}}}).options=tl({async:!0,ssr:!1},t),a),th=function(){},tv=E.forwardRef(function(e,t){var n,r,o,a,i=E.useRef(null),l=E.useState({onScrollCapture:th,onWheelCapture:th,onTouchMoveCapture:th}),s=l[0],c=l[1],u=e.forwardProps,d=e.children,f=e.className,m=e.removeScrollBar,p=e.enabled,h=e.shards,v=e.sideCar,g=e.noRelative,x=e.noIsolation,b=e.inert,y=e.allowPinchZoom,w=e.as,j=e.gapMode,k=ts(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),S=(n=[i,t],r=function(e){return n.forEach(function(t){return td(t,e)})},(o=(0,E.useState)(function(){return{value:null,callback:r,facade:{get current(){return o.value},set current(value){var e=o.value;e!==value&&(o.value=value,o.callback(value,e))}}}})[0]).callback=r,a=o.facade,tf(function(){var e=tm.get(a);if(e){var t=new Set(e),r=new Set(n),o=a.current;t.forEach(function(e){r.has(e)||td(e,null)}),r.forEach(function(e){t.has(e)||td(e,o)})}tm.set(a,n)},[n]),a),N=tl(tl({},k),s);return E.createElement(E.Fragment,null,p&&E.createElement(v,{sideCar:tp,removeScrollBar:m,shards:h,noRelative:g,noIsolation:x,inert:b,setCallbacks:c,allowPinchZoom:!!y,lockRef:i,gapMode:j}),u?E.cloneElement(E.Children.only(d),tl(tl({},N),{ref:S})):E.createElement(void 0===w?"div":w,tl({},N,{className:f,ref:S}),d))});tv.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},tv.classNames={fullWidth:tu,zeroRight:tc};var tg=function(e){var t=e.sideCar,n=ts(e,["sideCar"]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error("Sidecar medium not found");return E.createElement(r,tl({},n))};tg.isSideCarExport=!0;var tx=function(){var e=0,t=null;return{add:function(n){if(0==e&&(t=function(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=s||("u">typeof __webpack_nonce__?__webpack_nonce__:void 0);return t&&e.setAttribute("nonce",t),e}())){var r,o;(r=t).styleSheet?r.styleSheet.cssText=n:r.appendChild(document.createTextNode(n)),o=t,(document.head||document.getElementsByTagName("head")[0]).appendChild(o)}e++},remove:function(){--e||!t||(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},tb=function(){var e=tx();return function(t,n){E.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},ty=function(){var e=tb();return function(t){return e(t.styles,t.dynamic),null}},tw={left:0,top:0,right:0,gap:0},tE=function(e){return parseInt(e||"",10)||0},tj=function(e){var t=window.getComputedStyle(document.body),n=t["padding"===e?"paddingLeft":"marginLeft"],r=t["padding"===e?"paddingTop":"marginTop"],o=t["padding"===e?"paddingRight":"marginRight"];return[tE(n),tE(r),tE(o)]},tk=function(e){if(void 0===e&&(e="margin"),"u"<typeof window)return tw;var t=tj(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},tS=ty(),tN="data-scroll-locked",tC=function(e,t,n,r){var o=e.left,a=e.top,i=e.right,l=e.gap;return void 0===n&&(n="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(r,";\n padding-right: ").concat(l,"px ").concat(r,";\n }\n body[").concat(tN,"] {\n overflow: hidden ").concat(r,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(r,";"),"margin"===n&&"\n padding-left: ".concat(o,"px;\n padding-top: ").concat(a,"px;\n padding-right: ").concat(i,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(l,"px ").concat(r,";\n "),"padding"===n&&"padding-right: ".concat(l,"px ").concat(r,";")].filter(Boolean).join(""),"\n }\n \n .").concat(tc," {\n right: ").concat(l,"px ").concat(r,";\n }\n \n .").concat(tu," {\n margin-right: ").concat(l,"px ").concat(r,";\n }\n \n .").concat(tc," .").concat(tc," {\n right: 0 ").concat(r,";\n }\n \n .").concat(tu," .").concat(tu," {\n margin-right: 0 ").concat(r,";\n }\n \n body[").concat(tN,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(l,"px;\n }\n")},tA=function(){var e=parseInt(document.body.getAttribute(tN)||"0",10);return isFinite(e)?e:0},tR=function(){E.useEffect(function(){return document.body.setAttribute(tN,(tA()+1).toString()),function(){var e=tA()-1;e<=0?document.body.removeAttribute(tN):document.body.setAttribute(tN,e.toString())}},[])},tO=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=void 0===r?"margin":r;tR();var a=E.useMemo(function(){return tk(o)},[o]);return E.createElement(tS,{styles:tC(a,!t,o,n?"":"!important")})},tP=!1;if("u">typeof window)try{var tM=Object.defineProperty({},"passive",{get:function(){return tP=!0,!0}});window.addEventListener("test",tM,tM),window.removeEventListener("test",tM,tM)}catch(e){tP=!1}var tD=!!tP&&{passive:!1},tI=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return"hidden"!==n[t]&&(n.overflowY!==n.overflowX||"TEXTAREA"===e.tagName||"visible"!==n[t])},tT=function(e,t){var n=t.ownerDocument,r=t;do{if("u">typeof ShadowRoot&&r instanceof ShadowRoot&&(r=r.host),tL(e,r)){var o=t_(e,r);if(o[1]>o[2])return!0}r=r.parentNode}while(r&&r!==n.body)return!1},tL=function(e,t){return"v"===e?tI(t,"overflowY"):tI(t,"overflowX")},t_=function(e,t){return"v"===e?[t.scrollTop,t.scrollHeight,t.clientHeight]:[t.scrollLeft,t.scrollWidth,t.clientWidth]},tF=function(e,t,n,r,o){var a,i=(a=window.getComputedStyle(t).direction,"h"===e&&"rtl"===a?-1:1),l=i*r,s=n.target,c=t.contains(s),u=!1,d=l>0,f=0,m=0;do{if(!s)break;var p=t_(e,s),h=p[0],v=p[1]-p[2]-i*h;(h||v)&&tL(e,s)&&(f+=v,m+=h);var g=s.parentNode;s=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!c&&s!==document.body||c&&(t.contains(s)||t===s))return d&&(o&&1>Math.abs(f)||!o&&l>f)?u=!0:!d&&(o&&1>Math.abs(m)||!o&&-l>m)&&(u=!0),u},tB=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},t$=function(e){return[e.deltaX,e.deltaY]},tz=function(e){return e&&"current"in e?e.current:e},tW=0,tK=[];let tU=(i=function(e){var t=E.useRef([]),n=E.useRef([0,0]),r=E.useRef(),o=E.useState(tW++)[0],a=E.useState(ty)[0],i=E.useRef(e);E.useEffect(function(){i.current=e},[e]),E.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var t=(function(e,t,n){if(n||2==arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))})([e.lockRef.current],(e.shards||[]).map(tz),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),t.forEach(function(e){return e.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var l=E.useCallback(function(e,t){if("touches"in e&&2===e.touches.length||"wheel"===e.type&&e.ctrlKey)return!i.current.allowPinchZoom;var o,a=tB(e),l=n.current,s="deltaX"in e?e.deltaX:l[0]-a[0],c="deltaY"in e?e.deltaY:l[1]-a[1],u=e.target,d=Math.abs(s)>Math.abs(c)?"h":"v";if("touches"in e&&"h"===d&&"range"===u.type)return!1;var f=window.getSelection(),m=f&&f.anchorNode;if(m&&(m===u||m.contains(u)))return!1;var p=tT(d,u);if(!p)return!0;if(p?o=d:(o="v"===d?"h":"v",p=tT(d,u)),!p)return!1;if(!r.current&&"changedTouches"in e&&(s||c)&&(r.current=o),!o)return!0;var h=r.current||o;return tF(h,t,e,"h"===h?s:c,!0)},[]),s=E.useCallback(function(e){if(tK.length&&tK[tK.length-1]===a){var n="deltaY"in e?t$(e):tB(e),r=t.current.filter(function(t){var r;return t.name===e.type&&(t.target===e.target||e.target===t.shadowParent)&&(r=t.delta,r[0]===n[0]&&r[1]===n[1])})[0];if(r&&r.should){e.cancelable&&e.preventDefault();return}if(!r){var o=(i.current.shards||[]).map(tz).filter(Boolean).filter(function(t){return t.contains(e.target)});(o.length>0?l(e,o[0]):!i.current.noIsolation)&&e.cancelable&&e.preventDefault()}}},[]),c=E.useCallback(function(e,n,r,o){var a={name:e,delta:n,target:r,should:o,shadowParent:function(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),u=E.useCallback(function(e){n.current=tB(e),r.current=void 0},[]),d=E.useCallback(function(t){c(t.type,t$(t),t.target,l(t,e.lockRef.current))},[]),f=E.useCallback(function(t){c(t.type,tB(t),t.target,l(t,e.lockRef.current))},[]);E.useEffect(function(){return tK.push(a),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener("wheel",s,tD),document.addEventListener("touchmove",s,tD),document.addEventListener("touchstart",u,tD),function(){tK=tK.filter(function(e){return e!==a}),document.removeEventListener("wheel",s,tD),document.removeEventListener("touchmove",s,tD),document.removeEventListener("touchstart",u,tD)}},[]);var m=e.removeScrollBar,p=e.inert;return E.createElement(E.Fragment,null,p?E.createElement(a,{styles:"\n .block-interactivity-".concat(o," {pointer-events: none;}\n .allow-interactivity-").concat(o," {pointer-events: all;}\n")}):null,m?E.createElement(tO,{noRelative:e.noRelative,gapMode:e.gapMode}):null)},tp.useMedium(i),tg);var tV=E.forwardRef(function(e,t){return E.createElement(tv,tl({},e,{ref:t,sideCar:tU}))});tV.classNames=tv.classNames;var tq=new WeakMap,tH=new WeakMap,tX={},tY=0,tG=function(e){return e&&(e.host||tG(e.parentNode))},tZ=function(e,t,n,r){var o=(Array.isArray(e)?e:[e]).map(function(e){if(t.contains(e))return e;var n=tG(e);return n&&t.contains(n)?n:(console.error("aria-hidden",e,"in not contained inside",t,". Doing nothing"),null)}).filter(function(e){return!!e});tX[n]||(tX[n]=new WeakMap);var a=tX[n],i=[],l=new Set,s=new Set(o),c=function(e){!e||l.has(e)||(l.add(e),c(e.parentNode))};o.forEach(c);var u=function(e){!e||s.has(e)||Array.prototype.forEach.call(e.children,function(e){if(l.has(e))u(e);else try{var t=e.getAttribute(r),o=null!==t&&"false"!==t,s=(tq.get(e)||0)+1,c=(a.get(e)||0)+1;tq.set(e,s),a.set(e,c),i.push(e),1===s&&o&&tH.set(e,!0),1===c&&e.setAttribute(n,"true"),o||e.setAttribute(r,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}})};return u(t),l.clear(),tY++,function(){i.forEach(function(e){var t=tq.get(e)-1,o=a.get(e)-1;tq.set(e,t),a.set(e,o),t||(tH.has(e)||e.removeAttribute(r),tH.delete(e)),o||e.removeAttribute(n)}),--tY||(tq=new WeakMap,tq=new WeakMap,tH=new WeakMap,tX={})}},tJ=function(e,t,n){void 0===n&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=t||("u"<typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live], script"))),tZ(r,o,n,"aria-hidden")):function(){return null}},tQ=Object.defineProperty,t0=(e,t)=>tQ(e,"name",{value:t,configurable:!0}),t1="Dialog",[t2,t3]=K(t1),[t5,t6]=t2(t1),t4=t0(e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:o,onOpenChange:a,modal:i=!0}=e,l=E.useRef(null),s=E.useRef(null),[u,d]=er({prop:r,defaultProp:o??!1,onChange:a,caller:t1}),[f,m]=E.useState(0),[p,h]=E.useState(0);return(0,c.jsx)(t5,{scope:t,triggerRef:l,contentRef:s,contentId:Y(),titleId:Y(),descriptionId:Y(),titlePresent:f>0,descriptionPresent:p>0,setTitleCount:m,setDescriptionCount:h,open:u,onOpenChange:d,onOpenToggle:E.useCallback(()=>d(e=>!e),[d]),modal:i,children:n})},"Dialog"),t9="DialogPortal",[t7,t8]=t2(t9,{forceMount:void 0}),ne=t0(e=>{let{__scopeDialog:t,forceMount:n,children:r,container:o}=e,a=t6(t9,t);return(0,c.jsx)(t7,{scope:t,forceMount:n,children:E.Children.map(r,e=>(0,c.jsx)(e6,{present:n||a.open,children:(0,c.jsx)(e1,{asChild:!0,container:o,children:e})}))})},"DialogPortal"),nt="DialogOverlay",nn=E.forwardRef(t0(function(e,t){let n=t8(nt,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=t6(nt,e.__scopeDialog);return a.modal?(0,c.jsx)(e6,{present:r||a.open,children:(0,c.jsx)(no,{...o,ref:t})}):null},"DialogOverlay")),nr=eu("DialogOverlay.RemoveScroll"),no=E.forwardRef(t0(function(e,t){let{__scopeDialog:n,...r}=e,o=t6(nt,n),a=$(t,eP());return(0,c.jsx)(tV,{as:nr,allowPinchZoom:!0,shards:[o.contentRef],children:(0,c.jsx)(ej.div,{"data-state":nu(o.open),...r,ref:a,style:{pointerEvents:"auto",...r.style}})})},"DialogOverlayImpl")),na="DialogContent",ni=E.forwardRef(t0(function(e,t){let n=t8(na,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=t6(na,e.__scopeDialog);return(0,c.jsx)(e6,{present:r||a.open,children:a.modal?(0,c.jsx)(nl,{...o,ref:t}):(0,c.jsx)(ns,{...o,ref:t})})},"DialogContent")),nl=E.forwardRef(t0(function(e,t){let n=t6(na,e.__scopeDialog),r=E.useRef(null),o=$(t,n.contentRef,r);return E.useEffect(()=>{let e=r.current;if(e)return tJ(e)},[]),(0,c.jsx)(nc,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:D(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:D(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey;(2===t.button||n)&&e.preventDefault()}),onFocusOutside:D(e.onFocusOutside,e=>e.preventDefault())})},"DialogContentModal")),ns=E.forwardRef(t0(function(e,t){let n=t6(na,e.__scopeDialog),r=E.useRef(!1),o=E.useRef(!1);return(0,c.jsx)(nc,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,o.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,"pointerdown"===t.detail.originalEvent.type&&(o.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&o.current&&t.preventDefault()}})},"DialogContentNonModal")),nc=E.forwardRef(t0(function(e,t){let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:a,...i}=e,l=t6(na,n);return ta(),(0,c.jsx)(c.Fragment,{children:(0,c.jsx)(eW,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:a,children:(0,c.jsx)(eO,{role:"dialog",id:l.contentId,"aria-describedby":l.descriptionPresent?l.descriptionId:void 0,"aria-labelledby":l.titlePresent?l.titleId:void 0,"data-state":nu(l.open),...i,ref:t,deferPointerDownOutside:!0,onDismiss:()=>l.onOpenChange(!1)})})})},"DialogContentImpl"));function nu(e){return e?"open":"closed"}t0(nu,"getState");var nd='[cmdk-group=""]',nf='[cmdk-group-items=""]',nm='[cmdk-item=""]',np=`${nm}:not([aria-disabled="true"])`,nh="cmdk-item-select",nv="data-value",ng=(e,t,n)=>{var r;return r=e,function e(t,n,r,o,a,i,l){if(i===n.length)return a===t.length?1:.99;var s=`${a},${i}`;if(void 0!==l[s])return l[s];for(var c,u,d,f,m=o.charAt(i),p=r.indexOf(m,a),h=0;p>=0;)(c=e(t,n,r,o,p+1,i+1,l))>h&&(p===a?c*=1:S.test(t.charAt(p-1))?(c*=.8,(d=t.slice(a,p-1).match(N))&&a>0&&(c*=Math.pow(.999,d.length))):C.test(t.charAt(p-1))?(c*=.9,(f=t.slice(a,p-1).match(A))&&a>0&&(c*=Math.pow(.999,f.length))):(c*=.17,a>0&&(c*=Math.pow(.999,p-a))),t.charAt(p)!==n.charAt(i)&&(c*=.9999)),(c<.1&&r.charAt(p-1)===o.charAt(i+1)||o.charAt(i+1)===o.charAt(i)&&r.charAt(p-1)!==o.charAt(i))&&.1*(u=e(t,n,r,o,p+1,i+2,l))>c&&(c=.1*u),c>h&&(h=c),p=r.indexOf(m,p+1);return l[s]=h,h}(r=n&&n.length>0?`${r+" "+n.join(" ")}`:r,t,R(r),R(t),0,0,{})},nx=E.createContext(void 0),nb=E.createContext(void 0),ny=E.createContext(void 0),nw=E.forwardRef((e,t)=>{let n=nP(()=>{var t,n;return{search:"",value:null!=(n=null!=(t=e.value)?t:e.defaultValue)?n:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=nP(()=>new Set),o=nP(()=>new Map),a=nP(()=>new Map),i=nP(()=>new Set),l=nR(e),{label:s,children:c,value:u,onValueChange:d,filter:f,shouldFilter:m,loop:p,disablePointerSelection:h=!1,vimBindings:v=!0,...g}=e,x=Y(),b=Y(),y=Y(),w=E.useRef(null),j=nI();nO(()=>{if(void 0!==u){let e=u.trim();n.current.value=e,k.emit()}},[u]),nO(()=>{j(6,O)},[]);let k=E.useMemo(()=>({subscribe:e=>(i.current.add(e),()=>i.current.delete(e)),snapshot:()=>n.current,setState:(e,t,r)=>{var o,a,i,s;if(!Object.is(n.current[e],t)){if(n.current[e]=t,"search"===e)R(),C(),j(1,A);else if("value"===e){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let e=document.getElementById(y);e?e.focus():null==(o=document.getElementById(x))||o.focus()}if(j(7,()=>{var e;n.current.selectedItemId=null==(e=P())?void 0:e.id,k.emit()}),r||j(5,O),(null==(a=l.current)?void 0:a.value)!==void 0){null==(s=(i=l.current).onValueChange)||s.call(i,null!=t?t:"");return}}k.emit()}},emit:()=>{i.current.forEach(e=>e())}}),[]),S=E.useMemo(()=>({value:(e,t,r)=>{var o;t!==(null==(o=a.current.get(e))?void 0:o.value)&&(a.current.set(e,{value:t,keywords:r}),n.current.filtered.items.set(e,N(t,r)),j(2,()=>{C(),k.emit()}))},item:(e,t)=>(r.current.add(e),t&&(o.current.has(t)?o.current.get(t).add(e):o.current.set(t,new Set([e]))),j(3,()=>{R(),C(),n.current.value||A(),k.emit()}),()=>{a.current.delete(e),r.current.delete(e),n.current.filtered.items.delete(e);let t=P();j(4,()=>{R(),(null==t?void 0:t.getAttribute("id"))===e&&A(),k.emit()})}),group:e=>(o.current.has(e)||o.current.set(e,new Set),()=>{a.current.delete(e),o.current.delete(e)}),filter:()=>l.current.shouldFilter,label:s||e["aria-label"],getDisablePointerSelection:()=>l.current.disablePointerSelection,listId:x,inputId:y,labelId:b,listInnerRef:w}),[]);function N(e,t){var r,o;let a=null!=(o=null==(r=l.current)?void 0:r.filter)?o:ng;return e?a(e,n.current.search,t):0}function C(){if(!n.current.search||!1===l.current.shouldFilter)return;let e=n.current.filtered.items,t=[];n.current.filtered.groups.forEach(n=>{let r=o.current.get(n),a=0;r.forEach(t=>{a=Math.max(e.get(t),a)}),t.push([n,a])});let r=w.current;M().sort((t,n)=>{var r,o;let a=t.getAttribute("id"),i=n.getAttribute("id");return(null!=(r=e.get(i))?r:0)-(null!=(o=e.get(a))?o:0)}).forEach(e=>{let t=e.closest(nf);t?t.appendChild(e.parentElement===t?e:e.closest(`${nf} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${nf} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{var t;let n=null==(t=w.current)?void 0:t.querySelector(`${nd}[${nv}="${encodeURIComponent(e[0])}"]`);null==n||n.parentElement.appendChild(n)})}function A(){let e=M().find(e=>"true"!==e.getAttribute("aria-disabled")),t=null==e?void 0:e.getAttribute(nv);k.setState("value",t||void 0)}function R(){var e,t,i,s;if(!n.current.search||!1===l.current.shouldFilter){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let c=0;for(let o of r.current){let r=N(null!=(t=null==(e=a.current.get(o))?void 0:e.value)?t:"",null!=(s=null==(i=a.current.get(o))?void 0:i.keywords)?s:[]);n.current.filtered.items.set(o,r),r>0&&c++}for(let[e,t]of o.current)for(let r of t)if(n.current.filtered.items.get(r)>0){n.current.filtered.groups.add(e);break}n.current.filtered.count=c}function O(){var e,t,n;let r=P();r&&((null==(e=r.parentElement)?void 0:e.firstChild)===r&&(null==(n=null==(t=r.closest(nd))?void 0:t.querySelector('[cmdk-group-heading=""]'))||n.scrollIntoView({block:"nearest"})),r.scrollIntoView({block:"nearest"}))}function P(){var e;return null==(e=w.current)?void 0:e.querySelector(`${nm}[aria-selected="true"]`)}function M(){var e;return Array.from((null==(e=w.current)?void 0:e.querySelectorAll(np))||[])}function D(e){let t=M()[e];t&&k.setState("value",t.getAttribute(nv))}function I(e){var t;let n=P(),r=M(),o=r.findIndex(e=>e===n),a=r[o+e];null!=(t=l.current)&&t.loop&&(a=o+e<0?r[r.length-1]:o+e===r.length?r[0]:r[o+e]),a&&k.setState("value",a.getAttribute(nv))}function T(e){let t=P(),n=null==t?void 0:t.closest(nd),r;for(;n&&!r;)r=null==(n=e>0?function(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}(n,nd):function(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}(n,nd))?void 0:n.querySelector(np);r?k.setState("value",r.getAttribute(nv)):I(e)}let L=()=>D(M().length-1),_=e=>{e.preventDefault(),e.metaKey?L():e.altKey?T(1):I(1)},F=e=>{e.preventDefault(),e.metaKey?D(0):e.altKey?T(-1):I(-1)};return E.createElement(ej.div,{ref:t,tabIndex:-1,...g,"cmdk-root":"",onKeyDown:e=>{var t;null==(t=g.onKeyDown)||t.call(g,e);let n=e.nativeEvent.isComposing||229===e.keyCode;if(!(e.defaultPrevented||n))switch(e.key){case"n":case"j":v&&e.ctrlKey&&_(e);break;case"ArrowDown":_(e);break;case"p":case"k":v&&e.ctrlKey&&F(e);break;case"ArrowUp":F(e);break;case"Home":e.preventDefault(),D(0);break;case"End":e.preventDefault(),L();break;case"Enter":{e.preventDefault();let t=P();if(t){let e=new Event(nh);t.dispatchEvent(e)}}}}},E.createElement("label",{"cmdk-label":"",htmlFor:S.inputId,id:S.labelId,style:nL},s),nT(e,e=>E.createElement(nb.Provider,{value:k},E.createElement(nx.Provider,{value:S},e))))}),nE=E.forwardRef((e,t)=>{var n,r;let o=Y(),a=E.useRef(null),i=E.useContext(ny),l=E.useContext(nx),s=nR(e),c=null!=(r=null==(n=s.current)?void 0:n.forceMount)?r:null==i?void 0:i.forceMount;nO(()=>{if(!c)return l.item(o,null==i?void 0:i.id)},[c]);let u=nD(o,a,[e.value,e.children,a],e.keywords),d=E.useContext(nb),f=nM(e=>e.value&&e.value===u.current),m=nM(e=>!!c||!1===l.filter()||!e.search||e.filtered.items.get(o)>0);function p(){var e,t;h(),null==(t=(e=s.current).onSelect)||t.call(e,u.current)}function h(){d.setState("value",u.current,!0)}if(E.useEffect(()=>{let t=a.current;if(!(!t||e.disabled))return t.addEventListener(nh,p),()=>t.removeEventListener(nh,p)},[m,e.onSelect,e.disabled]),!m)return null;let{disabled:v,value:g,onSelect:x,forceMount:b,keywords:y,...w}=e;return E.createElement(ej.div,{ref:B(a,t),...w,id:o,"cmdk-item":"",role:"option","aria-disabled":!!v,"aria-selected":!!f,"data-disabled":!!v,"data-selected":!!f,onPointerMove:v||l.getDisablePointerSelection()?void 0:h,onClick:v?void 0:p},e.children)}),nj=E.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:o,...a}=e,i=Y(),l=E.useRef(null),s=E.useRef(null),c=Y(),u=E.useContext(nx),d=nM(e=>!!o||!1===u.filter()||!e.search||e.filtered.groups.has(i));nO(()=>u.group(i),[]),nD(i,l,[e.value,e.heading,s]);let f=E.useMemo(()=>({id:i,forceMount:o}),[o]);return E.createElement(ej.div,{ref:B(l,t),...a,"cmdk-group":"",role:"presentation",hidden:!d||void 0},n&&E.createElement("div",{ref:s,"cmdk-group-heading":"","aria-hidden":!0,id:c},n),nT(e,e=>E.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?c:void 0},E.createElement(ny.Provider,{value:f},e))))}),nk=E.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,o=E.useRef(null),a=nM(e=>!e.search);return n||a?E.createElement(ej.div,{ref:B(o,t),...r,"cmdk-separator":"",role:"separator"}):null}),nS=E.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,o=null!=e.value,a=E.useContext(nb),i=nM(e=>e.search),l=nM(e=>e.selectedItemId),s=E.useContext(nx);return E.useEffect(()=>{null!=e.value&&a.setState("search",e.value)},[e.value]),E.createElement(ej.input,{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":s.listId,"aria-labelledby":s.labelId,"aria-activedescendant":l,id:s.inputId,type:"text",value:o?e.value:i,onChange:e=>{o||a.setState("search",e.target.value),null==n||n(e.target.value)}})}),nN=E.forwardRef((e,t)=>{let{children:n,label:r="Suggestions",...o}=e,a=E.useRef(null),i=E.useRef(null),l=nM(e=>e.selectedItemId),s=E.useContext(nx);return E.useEffect(()=>{if(i.current&&a.current){let e=i.current,t=a.current,n,r=new ResizeObserver(()=>{n=requestAnimationFrame(()=>{let n=e.offsetHeight;t.style.setProperty("--cmdk-list-height",n.toFixed(1)+"px")})});return r.observe(e),()=>{cancelAnimationFrame(n),r.unobserve(e)}}},[]),E.createElement(ej.div,{ref:B(a,t),...o,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":l,"aria-label":r,id:s.listId},nT(e,e=>E.createElement("div",{ref:B(i,s.listInnerRef),"cmdk-list-sizer":""},e)))}),nC=E.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:o,contentClassName:a,container:i,...l}=e;return E.createElement(t4,{open:n,onOpenChange:r},E.createElement(ne,{container:i},E.createElement(nn,{"cmdk-overlay":"",className:o}),E.createElement(ni,{"aria-label":e.label,"cmdk-dialog":"",className:a},E.createElement(nw,{ref:t,...l}))))}),nA=Object.assign(nw,{List:nN,Item:nE,Input:nS,Group:nj,Separator:nk,Dialog:nC,Empty:E.forwardRef((e,t)=>nM(e=>0===e.filtered.count)?E.createElement(ej.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),Loading:E.forwardRef((e,t)=>{let{progress:n,children:r,label:o="Loading...",...a}=e;return E.createElement(ej.div,{ref:t,...a,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":o},nT(e,e=>E.createElement("div",{"aria-hidden":!0},e)))})});function nR(e){let t=E.useRef(e);return nO(()=>{t.current=e}),t}var nO="u"<typeof window?E.useEffect:E.useLayoutEffect;function nP(e){let t=E.useRef();return void 0===t.current&&(t.current=e()),t}function nM(e){let t=E.useContext(nb),n=()=>e(t.snapshot());return E.useSyncExternalStore(t.subscribe,n,n)}function nD(e,t,n,r=[]){let o=E.useRef(),a=E.useContext(nx);return nO(()=>{var i;let l=(()=>{var e;for(let t of n){if("string"==typeof t)return t.trim();if("object"==typeof t&&"current"in t)return t.current?null==(e=t.current.textContent)?void 0:e.trim():o.current}})(),s=r.map(e=>e.trim());a.value(e,l,s),null==(i=t.current)||i.setAttribute(nv,l),o.current=l}),o}var nI=()=>{let[e,t]=E.useState(),n=nP(()=>new Map);return nO(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function nT({asChild:e,children:t},n){let r;return e&&E.isValidElement(t)?E.cloneElement("function"==typeof(r=t.type)?r(t.props):"render"in r?r.render(t.props):t,{ref:t.ref},n(t.props.children)):n(t)}var nL={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},n_=e.i(593698),nF=e.i(630299),nF=nF;e.i(630374);var nB=e.i(225913),n$=e.i(23750),nz=e.i(184762),nW=e.i(647163);function nK({className:e,...t}){return(0,c.jsx)("div",{"data-slot":"input-group",role:"group",className:(0,nW.cn)("group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5",e),...t})}let nU=(0,nB.cva)("flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",{variants:{align:{"inline-start":"order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]","inline-end":"order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]","block-start":"order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2","block-end":"order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2"}},defaultVariants:{align:"inline-start"}});function nV({className:e,align:t="inline-start",...n}){return(0,c.jsx)("div",{role:"group","data-slot":"input-group-addon","data-align":t,className:(0,nW.cn)(nU({align:t}),e),onClick:e=>{e.target.closest("button")||e.currentTarget.parentElement?.querySelector("input")?.focus()},...n})}function nq({className:e,...t}){return(0,c.jsx)("span",{className:(0,nW.cn)("flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",e),...t})}function nH({className:e,...t}){return(0,c.jsx)(n$.Input,{"data-slot":"input-group-control",className:(0,nW.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",e),...t})}function nX({className:e,...t}){return(0,c.jsx)(nA,{"data-slot":"command",className:(0,nW.cn)("flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground",e),...t})}function nY({className:e,...t}){return(0,c.jsx)("div",{"data-slot":"command-input-wrapper",className:"p-1 pb-0",children:(0,c.jsxs)(nK,{className:"h-8! rounded-lg! border-input/30 bg-input/30 shadow-none! *:data-[slot=input-group-addon]:pl-2!",children:[(0,c.jsx)(nA.Input,{"data-slot":"command-input",className:(0,nW.cn)("w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",e),...t}),(0,c.jsx)(nV,{children:(0,c.jsx)(nF.default,{className:"size-4 shrink-0 opacity-50"})})]})})}function nG({className:e,...t}){return(0,c.jsx)(nA.List,{"data-slot":"command-list",className:(0,nW.cn)("no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none",e),...t})}function nZ({className:e,...t}){return(0,c.jsx)(nA.Empty,{"data-slot":"command-empty",className:(0,nW.cn)("py-6 text-center text-sm",e),...t})}function nJ({className:e,...t}){return(0,c.jsx)(nA.Group,{"data-slot":"command-group",className:(0,nW.cn)("overflow-hidden p-1 text-foreground **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground",e),...t})}function nQ({className:e,children:t,...n}){return(0,c.jsxs)(nA.Item,{"data-slot":"command-item",className:(0,nW.cn)("group/command-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg! data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-selected:bg-muted data-selected:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-selected:*:[svg]:text-foreground",e),...n,children:[t,(0,c.jsx)(n_.CheckIcon,{className:"ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100"})]})}(0,nB.cva)("flex items-center gap-2 text-sm shadow-none",{variants:{size:{xs:"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5",sm:"","icon-xs":"size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0","icon-sm":"size-8 p-0 has-[>svg]:p-0"}},defaultVariants:{size:"xs"}});var n0=e.i(917162),n1=e.i(660302),n2=e.i(671428),n3=e.i(319036),n5=e.i(41533),n6=e.i(146538),n4=e.i(265402),n9=e.i(95187);let n7=(0,n9.createServerReference)("7f7ca82113b8278c5168f11773f16e846d6564f381",n9.callServer,void 0,n9.findSourceMapURL,"createBotAction");var n8=e.i(73946);let re=(0,n9.createServerReference)("7ff47426c79c61ecc5d58430b429618aa0c876b4b5",n9.callServer,void 0,n9.findSourceMapURL,"deleteBotAction"),rt=(0,n9.createServerReference)("7f310ddb07a3f1442164b623a079f9fa30c7570da3",n9.callServer,void 0,n9.findSourceMapURL,"setBotMemoryOnAction"),rn=(0,n9.createServerReference)("7f5026021c071658e8c9fd14fc0ba9406e0c6562f8",n9.callServer,void 0,n9.findSourceMapURL,"updateBotAction");var rr=e.i(451888),ro=e.i(463625),ra=e.i(635963),ri=e.i(638475);function rl({color:e,background:t,label:n,picked:r,onPick:o}){return(0,c.jsx)("button",{type:"button",onClick:o,"aria-label":n??e??"Follow the theme",style:t?{background:t}:e?{backgroundColor:e}:void 0,className:(0,nW.cn)("size-5 rounded-full outline-none transition-transform hover:scale-110 focus-visible:ring-3 focus-visible:ring-ring/50",!e&&!t&&"bg-foreground",r&&"ring-2 ring-foreground/40 ring-offset-2 ring-offset-background")})}var rs=e.i(864723);function rc({color:e,themePicked:t,onTheme:n,onPick:r,paint:o,onPaint:a}){return(0,c.jsxs)("div",{className:"flex flex-wrap items-center justify-center gap-2 px-2",children:[(0,c.jsx)(rl,{color:null,picked:t,onPick:n}),rs.MARK_PALETTE.map(t=>(0,c.jsx)(rl,{color:t,picked:e===t,onPick:()=>r(t)},t)),a&&rs.MARK_PAINT_IDS.map(e=>(0,c.jsx)(rl,{color:null,background:(0,rs.paintSwatch)(e),label:rs.MARK_PAINTS[e].label,picked:o===e,onPick:()=>a(e)},e))]})}var ru=e.i(992112),rd=e.i(895836),rf=e.i(989409),rm=e.i(621285),rp=e.i(616172),rh=e.i(888669),rv=e.i(343488),rg=e.i(333999),rx=e.i(245629),rb=e.i(981203),ry=e.i(609856),rw=e.i(283653);let rE=" new";function rj({bot:e,job:t,active:n,onPick:r}){var o,a,i;let l=(o=t,a=e.lastJobAt,i=e.disabled,o?.status==="waiting"?{text:"waiting on you",shine:!0,amber:!0}:o?.status==="running"?{text:`working \xb7 ${o.label}`,shine:!0}:i?{text:"off"}:o?{text:`idle \xb7 last job ${rk(o.updatedAt)}`}:a?{text:`idle \xb7 last job ${rk(a)}`}:{text:"idle · no jobs yet"});return(0,c.jsxs)("button",{type:"button",onClick:r,className:(0,nW.cn)("mx-2 flex items-center gap-2.5 rounded-md px-2 py-2 text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",n?"bg-secondary":"hover:bg-muted/60"),children:[(0,c.jsx)(ra.BotMark,{size:32,...rP(e.name,e.icon),state:t?.status==="running"?"thinking":"idle",notify:t?.status==="waiting",crossed:t?.status==="cancelled",className:(0,nW.cn)("shrink-0",e.disabled&&"opacity-45")}),(0,c.jsxs)("span",{className:(0,nW.cn)("min-w-0 flex-1 space-y-0.5",e.disabled&&"opacity-45"),children:[(0,c.jsx)("span",{className:(0,nW.cn)("block truncate text-[13px]",n?"font-medium":"text-foreground/90"),children:e.name}),l.shine?(0,c.jsx)(n1.ShinyText,{text:l.text,tone:l.amber?"waiting":"muted",className:"block truncate font-mono text-[11px] leading-4"}):(0,c.jsx)("span",{className:"block truncate font-mono text-[11px] leading-4 text-muted-foreground",children:l.text})]})]})}function rk(e){let t=(0,rx.shortAgo)(e);return"now"===t?"just now":`${t} ago`}function rS(e,t,n){let[r,o]=(0,E.useState)(new Set),[a,i]=(0,ry.useServerAction)(n8.createSeedBotsAction,{onOk:e=>{(0,rw.revalidate)(j.queryKey.bot),n(e.created[0]??null)}}),{data:l}=(0,rw.useServerRoute)(j.queryKey.config),s=ro.BOT_SEEDS.filter(t=>!e.has(t.name)),c=s.filter(e=>!r.has(e.name));return{isSet:e=>(0,ru.isConfigSet)(l,e),adding:i,addable:s,wanted:c,ticked:t=>e.has(t.name)||!r.has(t.name),toggle:e=>o(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),submit:()=>a(c.map(e=>({name:e.name,icon:t[ro.BOT_SEEDS.indexOf(e)]})))}}function rN({have:e,faces:t,picks:n}){return(0,c.jsx)("div",{className:"flex flex-col gap-2",children:ro.BOT_SEEDS.map((r,o)=>{var a;let i,l=e.has(r.name),s=n.ticked(r),d=(a=n.isSet,(i=(r.requires??[]).filter(e=>!a(ru.MEDIA_MODEL_KEYS[e]))).length?`needs ${i.map(ru.mediaModelWords).join(" and ")}`:null);return(0,c.jsx)("div",{className:(0,nW.cn)("rounded-xl ring-1 transition-colors",l?"opacity-45 ring-border/60":s?"ring-brand":"ring-border/60"),children:(0,c.jsxs)("button",{type:"button",disabled:l||n.adding,"aria-pressed":s,onClick:()=>n.toggle(r.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,c.jsx)(ra.BotMark,{size:28,...rP(r.name,t[o]),className:(0,nW.cn)("shrink-0 transition-opacity",!s&&"opacity-35")}),(0,c.jsxs)("span",{className:"min-w-0 flex-1 space-y-px",children:[(0,c.jsx)("span",{className:"block text-[14px] leading-[18px] font-medium",children:r.name}),(0,c.jsx)("span",{className:"block truncate text-[12px] leading-[17px] text-muted-foreground",children:r.hint})]}),l?(0,c.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted-foreground",children:"already added"}):d?(0,c.jsxs)("span",{className:(0,nW.cn)("flex shrink-0 items-center gap-1.5 font-mono text-[11px]",nW.WAITING_INK),children:[(0,c.jsx)(p,{className:"size-3"}),d]}):null,(0,c.jsx)("span",{className:(0,nW.cn)("grid size-5 shrink-0 place-items-center rounded-full transition-colors",s?"bg-brand text-brand-foreground":"ring-1 ring-border/60 ring-inset"),children:s&&(0,c.jsx)(u.Check,{className:"size-3"})})]})},r.name)})})}function rC({picks:e,onCancel:t}){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(k.Button,{variant:"ghost",onClick:t,children:"Cancel"}),(0,c.jsxs)(k.Button,{loading:e.adding,disabled:0===e.wanted.length,onClick:e.submit,children:[(0,c.jsx)(x.Plus,{}),1===e.wanted.length?`Add ${e.wanted[0].name}`:`Add ${e.wanted.length} bots`]})]})}function rA({have:e,faces:t,onDone:n}){let r=rS(e,t,n);return(0,c.jsxs)("div",{className:"flex min-h-full flex-col",children:[(0,c.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,c.jsxs)("div",{className:"px-8 pt-7 pb-1",children:[(0,c.jsx)("h3",{className:"text-[17px] font-medium tracking-tight",children:"Bots you can add"}),(0,c.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,c.jsx)("div",{className:"px-8 pt-4",children:(0,c.jsx)(rN,{have:e,faces:t,picks:r})}),(0,c.jsxs)("div",{className:"mt-auto flex items-center gap-3 border-t border-border/60 px-8 py-4",children:[(0,c.jsx)("span",{className:"flex-1 font-mono text-[11px] text-muted-foreground",children:0===r.wanted.length?"nothing ticked":`${r.wanted.length} of ${r.addable.length} ticked`}),(0,c.jsx)(rC,{picks:r,onCancel:()=>n(null)})]})]})}function rR({have:e,faces:t,onDone:n}){let r=rS(e,t,n);return(0,c.jsx)(rd.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,c.jsx)(rC,{picks:r,onCancel:()=>n(null)}),children:(0,c.jsx)(rN,{have:e,faces:t,picks:r})})}function rO({missing:e,faces:t,have:n,onDone:r}){return(0,c.jsxs)("button",{type:"button",title:"Ready-made bots","aria-label":`Ready-made bots, ${e.length} on offer`,onClick:()=>n0.notify.component({className:"sm:max-w-xl",renderer:({close:e})=>(0,c.jsx)(rR,{have:n,faces:t,onDone:t=>{e(),r(t)}})}),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,c.jsx)(x.Plus,{className:"size-3 shrink-0"}),e.map((n,r)=>(0,c.jsx)("span",{className:(0,nW.cn)("block",r>0&&"-ml-1.5"),style:{zIndex:e.length-r},children:(0,c.jsx)(ra.BotMark,{size:20,...rP(n.name,t[ro.BOT_SEEDS.indexOf(n)]),notify:!1})},n.name))]})}function rP(e,t){return{seed:e||"bot",color:t?.color,shape:t?.shape,outline:t?.outline,paint:t?.paint}}function rM({bot:e,jobs:t,onDone:n,onCancel:r}){let[o,a]=(0,rg.useObjectState)(()=>({name:e?.name??"",description:e?.description??"",systemPrompt:e?.systemPrompt??"",icon:e?.icon??(0,rr.randomBotIcon)(),provider:e?.provider??null,model:e?.model??"",compactAt:e?.compactAt?String(e.compactAt/1e3):"",toolIds:e?.tools.map(e=>e.id)??[]})),{name:i,description:l,systemPrompt:s,icon:u,provider:d,model:f,compactAt:m,toolIds:p}=o,[h,v]=(0,E.useState)(!!e?.compactAt),g=(0,rw.useServerRoute)(j.queryKey.modelCatalog),x=(e,t)=>e&&t.trim()?(0,n4.contextWindowOf)(e,t.trim(),g.data):null,y=x(d,f),w=d&&f.trim()?rF(y)/1e3:null,S=h?m:null===w?"":String(w),[N]=(0,ry.useServerAction)(rn,{onOk:()=>(0,rw.revalidate)(j.queryKey.bot)}),C=t=>{e&&N(e.name,t)},[A,R,,O]=(0,ry.useServerAction)(n7,{errorMessage:!1,okMessage:"Bot created",onOk:e=>{(0,rw.revalidate)(j.queryKey.bot),n(e.name)}}),[P,M]=(0,ry.useServerAction)(re,{okMessage:"Bot deleted",onOk:()=>{(0,rw.revalidate)(j.queryKey.bot),n(null)}}),D=i.trim()&&l.trim()&&d&&f.trim()&&!R,I=async()=>{!e||await n0.notify.confirm({title:`Delete ${e.name}?`,description:"The agent can no longer hand work to it.",okText:"Delete",destructive:!0})&&P(e.name)};return(0,c.jsxs)("div",{className:"flex min-h-full flex-col",children:[(0,c.jsxs)("div",{className:"flex h-11 shrink-0 items-center gap-2 border-b border-border/60 px-4",children:[(0,c.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[11px] text-muted-foreground",children:e?e.name:"New bot"}),e&&(0,c.jsxs)(c.Fragment,{children:[e.disabled&&(0,c.jsx)("span",{className:"font-mono text-[10px] text-muted-foreground",children:"off"}),(0,c.jsx)(n3.Switch,{checked:!e.disabled,onCheckedChange:e=>C({disabled:!e}),"aria-label":`${e.name} on or off`,className:"mr-1 shrink-0"}),(0,c.jsx)(k.Button,{size:"icon-sm",variant:"ghost",loading:M,"aria-label":"Delete this bot",onClick:I,className:"text-muted-foreground hover:text-destructive",children:(0,c.jsx)(b.Trash2,{})})]})]}),(0,c.jsxs)("div",{className:"flex-1 space-y-5 p-6",children:[(0,c.jsx)(rz,{name:i,icon:u,onChange:e=>{a({icon:e}),C({icon:e})}}),(0,c.jsxs)(rB,{label:"Name",children:[e?(0,c.jsx)("p",{className:"truncate text-sm leading-8 font-medium",children:e.name}):(0,c.jsx)(n$.Input,{value:i,onChange:e=>a({name:e.target.value}),placeholder:"researcher",spellCheck:!1,maxLength:rb.COMMON_VALIDATE.name.max,autoFocus:!0}),(0,c.jsx)("p",{className:"text-xs text-muted-foreground",children:e?`What ${n5.APP_NAME} calls it when she hands it work. Fixed once the bot is made.`:`What ${n5.APP_NAME} calls it when she hands it work. Up to ${rb.COMMON_VALIDATE.name.max} characters, and it can’t be renamed later.`})]}),(0,c.jsxs)(rB,{label:"Description",children:[(0,c.jsx)(n$.Input,{value:l,onChange:e=>a({description:e.target.value}),onBlur:()=>{let t=l.trim();e&&t&&t!==e.description&&C({description:t})},placeholder:"Searches the web and answers",maxLength:rb.COMMON_VALIDATE.description.max}),(0,c.jsxs)("p",{className:"text-xs text-muted-foreground",children:["The one line ",n5.APP_NAME," and the other bots read when they decide who gets a job."]})]}),(0,c.jsx)(rB,{label:"Runs on",children:(0,c.jsx)(n6.ModelPicker,{provider:d,model:f,onChange:e=>{a({provider:e.provider,model:e.model}),v(!1),e.model&&C({...e,compactAt:rF(x(e.provider,e.model))})},onUnset:()=>{a({provider:null,model:""}),v(!1),C({provider:null,model:null,compactAt:null})}})}),(0,c.jsxs)(rB,{label:"Compacts at",children:[(0,c.jsxs)(nK,{children:[(0,c.jsx)(nH,{inputMode:"decimal",value:S,placeholder:f.trim()?"":"Pick a model first",onChange:e=>{v(!0),a({compactAt:e.target.value})},onBlur:()=>{if(!h)return;let e=r_(m);null===e?v(!1):a({compactAt:String(e/1e3)}),C({compactAt:e??(f.trim()?rF(y):null)})}}),(0,c.jsx)(nV,{align:"inline-end",children:(0,c.jsx)(nq,{children:"k tokens"})})]}),(0,c.jsx)("p",{className:"text-xs text-muted-foreground",children:function(e){if(!e.model)return"Filled in from the model once one is picked.";let t=rF(e.window),n="A job summarizes itself here and carries on.";return null!==e.shown&&e.shown!==t?`Set by hand. Picking a model fills in its own again. ${n}`:e.window?`${Math.round(100*n5.BOT_RUN.compactHeadroom)}% of this model's ${(e.window/1e3).toLocaleString()}k context window. ${n}`:`This model's context window is unknown, so the default is filled in. ${n}`}({model:f.trim(),window:y,shown:r_(S)})})]}),(0,c.jsx)(rB,{label:"Tools",children:(0,c.jsx)(rW,{selected:p,onChange:e=>{a({toolIds:e}),C({toolIds:e})}})}),(0,c.jsxs)(rB,{label:"Prompt",children:[(0,c.jsx)(nz.Textarea,{value:s,onChange:e=>a({systemPrompt:e.target.value}),onBlur:()=>{let t=s.trim();e&&t!==(e.systemPrompt??"")&&C({systemPrompt:t})},placeholder:`How it should work (optional). e.g.
2
+ Search the web, answer with a short summary and links.`,maxLength:rb.COMMON_VALIDATE.prompt.max,className:"max-h-48 min-h-24 resize-none overflow-y-auto text-sm"}),s.length>0&&(0,c.jsxs)("p",{className:"text-right font-mono text-[10px] text-muted-foreground",children:[s.length,"/",rb.COMMON_VALIDATE.prompt.max]})]}),e&&(0,c.jsx)(rD,{bot:e.name}),e&&(0,c.jsx)(r$,{jobs:t}),!e&&(0,c.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-1",children:[(0,c.jsx)(k.Button,{variant:"ghost",onClick:r,children:"Cancel"}),(0,c.jsx)(k.Button,{loading:R,disabled:!D,onClick:()=>{D&&d&&A({name:i.trim(),description:l.trim(),systemPrompt:s.trim()||void 0,icon:u,provider:d,model:f.trim(),compactAt:h?r_(m):rF(y),toolIds:p})},children:"Create"})]}),O&&(0,c.jsx)("p",{className:"font-mono text-xs text-destructive",children:O})]})]})}function rD({bot:e}){let t=j.queryKey.botMemoryFiles(e),{data:n,isLoading:r}=(0,rw.useServerRoute)(t),[o,a]=(0,E.useState)(null),[i]=(0,ry.useServerAction)(rv.openFileAction),[l,s]=(0,ry.useServerAction)(rh.deleteWorkspaceFileAction,{okMessage:"File deleted",onOk:()=>{a(null),(0,rw.revalidate)(t),(0,rw.revalidate)(j.queryKey.workspace)}}),u=async t=>{await n0.notify.confirm({title:`Delete ${t.file}?`,description:`It is deleted from disk for good, and ${e}'s next job starts without it.`,okText:"Delete",destructive:!0})&&l(t.path)};return(0,c.jsxs)("div",{className:"pt-1",children:[(0,c.jsxs)("div",{className:"flex h-6 items-center",children:[(0,c.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:"Memory"}),(0,c.jsx)("span",{className:"flex-1"}),n&&n.total>0&&(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("span",{className:"pr-1 font-mono text-[11px] text-muted-foreground tabular-nums",children:1===n.total?"1 file":`${n.total} files`}),(0,c.jsxs)("button",{type:"button",title:"Show in the file manager",onClick:()=>i(n.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,c.jsx)(h.FolderOpen,{className:"size-3"}),"Folder"]})]})]}),r?(0,c.jsx)("div",{className:"flex h-9 items-center border-t border-border/60",children:(0,c.jsx)(n2.Skeleton,{className:"h-3 w-56"})}):n?.entries.length?n.entries.map(e=>{let t=o===e.path;return(0,c.jsxs)("div",{className:"border-t border-border/60",children:[(0,c.jsxs)("button",{type:"button","aria-expanded":t,onClick:()=>a(t?null:e.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,c.jsx)("span",{className:(0,nW.cn)("min-w-0 flex-1 truncate",t&&"font-medium"),children:e.line||e.file}),(0,c.jsx)("span",{className:"w-36 shrink-0 truncate font-mono text-[11px] text-muted-foreground",children:e.file}),(0,c.jsx)("span",{className:"w-28 shrink-0 text-right font-mono text-[11px] text-muted-foreground tabular-nums",children:(0,rx.whenOf)(e.at)}),(0,c.jsx)(d.ChevronRight,{className:(0,nW.cn)("size-3 shrink-0 text-muted-foreground transition-transform",t&&"rotate-90")})]}),t&&(0,c.jsxs)("div",{className:"flex items-start gap-3",children:[(0,c.jsx)("div",{className:"max-h-96 min-w-0 flex-1 overflow-y-auto",children:(0,c.jsx)(rI,{path:e.path})}),(0,c.jsx)(k.Button,{size:"icon-sm",variant:"ghost","aria-label":`Delete ${e.file}`,loading:s,onClick:()=>u(e),className:"text-muted-foreground hover:text-destructive",children:(0,c.jsx)(b.Trash2,{})})]})]},e.path)}):(0,c.jsx)("p",{className:"py-2 text-[13px] text-muted-foreground",children:"Nothing kept yet."})]})}function rI({path:e}){let{content:t,failure:n,truncated:r}=(0,rm.useFileText)(e);if(n)return(0,c.jsx)("p",{className:"pb-3 font-mono text-xs text-destructive",children:n});if(null===t)return(0,c.jsxs)("div",{className:"space-y-2 pb-3",children:[(0,c.jsx)(n2.Skeleton,{className:"h-4 w-5/6"}),(0,c.jsx)(n2.Skeleton,{className:"h-4 w-2/3"})]});let o=(0,rp.viewKindOf)(e);return(0,c.jsx)(rm.FileBody,{kind:o,content:"markdown"===o?rT(t):t,truncated:r,where:"inline"})}let rT=e=>e.replace(/^---\n[\s\S]*?\n---\n/,"").replace(/^\s*#[^\n]*\n?/,"");function rL({bot:e}){let{data:t,mutate:n}=(0,rw.useServerRoute)(j.queryKey.botMemory),[r]=(0,ry.useServerAction)(rt,{onOk:()=>(0,rw.revalidate)(j.queryKey.botMemory)}),o=e?e.tokens.input+e.tokens.output:0;return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(rd.SettingRailNote,{children:e?(0,c.jsxs)("span",{className:"font-mono text-[11px]",children:[e.name,e.disabled&&(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("span",{className:"px-1.5 opacity-50",children:"·"}),"off"]}),(0,c.jsx)("span",{className:"px-1.5 opacity-50",children:"·"}),(0,c.jsx)("span",{title:`in ${(0,nW.formatCount)(e.tokens.input)} \xb7 out ${(0,nW.formatCount)(e.tokens.output)}`,children:o>0?`${(0,nW.formatCount)(o)} tokens`:"no tokens yet"}),(0,c.jsx)("span",{className:"px-1.5 opacity-50",children:"·"}),"since ",(0,rx.whenOf)(e.createdAt)]}):"Becomes a bot once it has a name and a model"}),(0,c.jsx)(ri.KeepWorkingSwitch,{}),(0,c.jsx)("span",{className:"h-4 w-px shrink-0 bg-border"}),(0,c.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground",children:"Bots keep their own memory"}),(0,c.jsx)(n3.Switch,{checked:t??!0,disabled:void 0===t,onCheckedChange:e=>{n(e,!1),r(e)},"aria-label":"Bots keep their own memory"})]})}function r_(e){let t=Number(e.replace(/[^0-9.]/g,""));return Number.isFinite(t)&&t>0?Math.round(1e3*t):null}let rF=e=>1e3*Math.round((0,n4.compactAtFor)(e)/1e3);function rB({label:e,children:t}){return(0,c.jsxs)("div",{className:"flex gap-3",children:[(0,c.jsx)("span",{className:"w-20 shrink-0 pt-2 font-mono text-xs text-muted-foreground",children:e}),(0,c.jsx)("div",{className:"min-w-0 flex-1 space-y-1.5",children:t})]})}function r$({jobs:e}){return(0,c.jsxs)("div",{className:"pt-1",children:[(0,c.jsxs)("div",{className:"flex h-6 items-center",children:[(0,c.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:"Recent"}),(0,c.jsx)("span",{className:"flex-1"}),(0,c.jsxs)("button",{type:"button",onClick:()=>(0,rf.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,c.jsx)(g,{className:"size-3"}),"History"]})]}),0===e.length?(0,c.jsx)("p",{className:"py-2 text-[13px] text-muted-foreground",children:"Nothing handed over yet."}):e.map(e=>{let t=function(e){switch(e.status){case"waiting":return{text:"waiting on you",tone:nW.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"}}}(e);return(0,c.jsxs)("div",{className:"flex h-9 items-center gap-3 border-t border-border/60 text-[13px]",children:[(0,c.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e.label}),"running"===e.status?(0,c.jsx)(n1.ShinyText,{text:t.text,className:"shrink-0 font-mono text-[11px]"}):(0,c.jsx)("span",{className:(0,nW.cn)("shrink-0 font-mono text-[11px]",t.tone),children:t.text}),(0,c.jsx)("span",{className:"w-28 shrink-0 text-right font-mono text-[11px] text-muted-foreground tabular-nums",children:(0,rx.whenOf)(e.updatedAt)})]},e.id)})]})}function rz({name:e,icon:t,onChange:n}){return(0,c.jsxs)("div",{className:"flex flex-col items-center gap-4 pt-3 pb-2",children:[(0,c.jsx)(ra.BotMark,{size:112,...rP(e,t),className:"shrink-0"}),(0,c.jsx)(rc,{color:t.paint?void 0:t.color,themePicked:!t.paint&&t.color===rs.MARK_SYSTEM,onTheme:()=>n({...t,paint:void 0,color:rs.MARK_SYSTEM}),onPick:e=>n({...t,paint:void 0,color:t.paint||t.color!==e?e:void 0}),paint:t.paint,onPaint:e=>n({...t,paint:t.paint===e?void 0:e})}),(0,c.jsxs)("div",{className:"flex gap-1",children:[rs.MARK_SHAPES.map(e=>(0,c.jsx)("button",{type:"button",onClick:()=>n({...t,shape:t.shape===e?void 0:e}),className:(0,nW.cn)("rounded-md px-2 py-1 font-mono text-[11px] capitalize transition-colors",t.shape===e?"bg-brand text-brand-foreground":"bg-muted text-muted-foreground hover:text-foreground"),children:e},e)),(0,c.jsx)("span",{className:"mx-1 w-px self-stretch bg-border/60"}),(0,c.jsx)("button",{type:"button",onClick:()=>n({...t,outline:!t.outline||void 0}),className:(0,nW.cn)("rounded-md px-2 py-1 font-mono text-[11px] transition-colors",t.outline?"bg-brand text-brand-foreground":"bg-muted text-muted-foreground hover:text-foreground"),children:"outline"})]})]})}function rW({selected:e,onChange:t}){let{data:n=[]}=(0,rw.useServerRoute)(j.queryKey.mcpTools),[r,o]=(0,E.useState)(!1),a=e.length>=rr.MAX_PINNED_TOOLS,i=[...new Set(n.map(e=>e.serverName))],l=e.map(e=>n.find(t=>t.id===e)).filter(e=>!!e),s=r?l:l.slice(0,4),d=l.length-s.length,f=n=>t(e.includes(n)?e.filter(e=>e!==n):[...e,n]);return 0===n.length?(0,c.jsx)("p",{className:"pt-1.5 text-xs text-muted-foreground",children:"Nothing to pin — connect an MCP server first (Settings › Connectors)."}):(0,c.jsxs)("div",{className:"space-y-2",children:[(0,c.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,c.jsx)(k.Button,{size:"icon-sm",variant:r?"secondary":"outline",onClick:()=>o(!r),"aria-label":"Pick tools",className:"border-dashed",children:(0,c.jsx)(y.Wrench,{})}),s.map(e=>(0,c.jsxs)("span",{className:"flex items-center gap-1 rounded-full bg-muted py-1 pr-1.5 pl-2.5 font-mono text-[11px]",children:[e.name,(0,c.jsx)("button",{type:"button","aria-label":`Unpin ${e.name}`,onClick:()=>f(e.id),className:"rounded-full p-0.5 text-muted-foreground transition-colors hover:bg-foreground/10 hover:text-foreground",children:(0,c.jsx)(w.X,{className:"size-3"})})]},e.id)),d>0&&(0,c.jsxs)("button",{type:"button",onClick:()=>o(!0),className:"rounded-full bg-muted px-2.5 py-1 font-mono text-[11px] text-muted-foreground transition-colors hover:text-foreground",children:["+",d]}),0===l.length&&(0,c.jsx)("span",{className:"text-xs text-muted-foreground",children:"Loaded from the start — everything else stays searchable"}),(0,c.jsx)("span",{className:"flex-1"}),(0,c.jsxs)("span",{className:(0,nW.cn)("font-mono text-[11px] text-muted-foreground",a&&"text-foreground"),children:[e.length,"/",rr.MAX_PINNED_TOOLS]})]}),r&&(0,c.jsxs)(nX,{className:"rounded-lg border border-input",children:[(0,c.jsx)(nY,{placeholder:"Search tools"}),(0,c.jsxs)(nG,{className:"max-h-44",children:[(0,c.jsx)(nZ,{children:"Nothing matches"}),i.map(t=>(0,c.jsx)(nJ,{heading:t,children:n.filter(e=>e.serverName===t).map(t=>{let n=e.includes(t.id);return(0,c.jsxs)(nQ,{value:`${t.serverName}/${t.name}`,disabled:!n&&a,onSelect:()=>f(t.id),children:[(0,c.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-xs",children:t.name}),n&&(0,c.jsx)(u.Check,{className:"size-3.5 shrink-0"})]},t.id)})},t))]})]})]})}e.s(["BotSetting",0,function(){let{data:e,isLoading:t,error:n}=(0,rw.useServerRoute)(j.queryKey.bot),r=e??[],{data:o}=(0,rw.useServerRoute)(j.queryKey.threadHistory(null)),a=o??[],[i,l]=(0,E.useState)(null),[s]=(0,E.useState)(ro.rollSeedIcons);if(t)return(0,c.jsx)(rd.SettingPanesSkeleton,{});if(n)return(0,c.jsx)(rd.SettingError,{message:n.message});let u=i===rE,d=r.filter(e=>!e.disabled).length,f=new Set(r.map(e=>e.name)),m=ro.BOT_SEEDS.filter(e=>!f.has(e.name)),p=u?null:r.find(e=>e.name===i)??r[0]??null;return(0,c.jsx)(rd.SettingPanes,{footer:0===r.length?null:(0,c.jsx)(rL,{bot:p}),left:(0,c.jsxs)("div",{className:"flex flex-col py-2",children:[(0,c.jsxs)("div",{className:"mx-2 mb-1 flex items-center gap-1",children:[(0,c.jsxs)("button",{type:"button",onClick:()=>l(rE),className:(0,nW.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",u?"bg-secondary text-foreground":"text-muted-foreground hover:bg-muted/60 hover:text-foreground"),children:[(0,c.jsx)(x.Plus,{className:"size-3.5 shrink-0"}),"New bot"]}),r.length>0&&m.length>0&&(0,c.jsx)(rO,{missing:m,faces:s,have:f,onDone:e=>l(e)})]}),r.map(e=>(0,c.jsx)(rj,{bot:e,job:a.find(t=>t.bot===e.name)??null,active:!u&&e.name===p?.name,onPick:()=>l(e.name)},e.name)),d>n5.PROMPT_CROWDED.bots&&(0,c.jsxs)(rd.SettingNote,{className:"mx-3 mt-2 leading-relaxed",children:[d," bots are on. Each is a line in every prompt, and one more for Thursday to choose between."]})]}),right:u?(0,c.jsx)(rM,{jobs:[],onDone:e=>l(e),onCancel:()=>l(null)},"new"):p?(0,c.jsx)(rM,{bot:p,jobs:a.filter(e=>e.bot===p.name).slice(0,3),onDone:()=>l(null)},p.name):m.length>0?(0,c.jsx)(rA,{have:f,faces:s,onDone:e=>l(e)}):(0,c.jsxs)("div",{className:"space-y-4 p-8",children:[(0,c.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,c.jsxs)(k.Button,{variant:"outline",onClick:()=>l(rE),children:[(0,c.jsx)(x.Plus,{}),"New bot"]})]})})}],507906)}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,638475,e=>{"use strict";var t=e.i(843476),r=e.i(798120),i=e.i(319036),a=e.i(609856),s=e.i(283653),n=e.i(95187);let o=(0,n.createServerReference)("7f24ac631f68d73a9c5488441088ee871097f35a63",n.callServer,void 0,n.findSourceMapURL,"setKeepWorkingOnAction"),c="Work while the app is closed";e.s(["KeepWorkingSwitch",0,function(){let{data:e,mutate:n}=(0,s.useServerRoute)(r.queryKey.botKeepWorking),[l]=(0,a.useServerAction)(o,{onOk:()=>(0,s.revalidate)(r.queryKey.botKeepWorking)});return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground",title:"Off, closing the last tab stops running jobs and holds routines until one is open again. On, they run until the server stops.",children:c}),(0,t.jsx)(i.Switch,{checked:e??!1,disabled:void 0===e,onCheckedChange:e=>{n(e,!1),l(e)},"aria-label":c})]})}],638475)},284201,e=>{"use strict";var t=e.i(95187);let r=(0,t.createServerReference)("7f88aa9d4f071f0ca59f62a7efd73449ccb68a55fc",t.callServer,void 0,t.findSourceMapURL,"deleteWorkspaceFileAction");e.s(["deleteWorkspaceFileAction",0,r])},333999,e=>{"use strict";var t=e.i(271645),r=e.i(647163);e.s(["useObjectState",0,e=>{let[i,a]=(0,t.useState)(e);return[i,(0,t.useMemo)(()=>{let e=e=>{a(t=>{let i=(0,r.isFunction)(e)?e(t):e;return Object.keys(i).some(e=>!Object.is(t[e],i[e]))?{...t,...i}:t})},t=new Map;return new Proxy(e,{get(i,a,s){if("symbol"==typeof a)return Reflect.get(i,a,s);let n=t.get(a);return n||(n=t=>{e(e=>({[a]:(0,r.isFunction)(t)?t(e[a]):t}))},t.set(a,n)),n}})},[])]}])},759659,e=>{"use strict";var t=e.i(456420);let r={name:"trash",size:24,node:[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],aliases:["trash-2"]};r.node;let i=(0,t.default)(r);e.s(["Trash2",0,i],759659)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,638475,e=>{"use strict";var t=e.i(843476),r=e.i(798120),i=e.i(319036),s=e.i(609856),n=e.i(283653),a=e.i(95187);let o=(0,a.createServerReference)("7f6153547e2d9efcc9931df21e4985a569be7fbcf6",a.callServer,void 0,a.findSourceMapURL,"setKeepWorkingOnAction"),c="Work while the app is closed";e.s(["KeepWorkingSwitch",0,function(){let{data:e,mutate:a}=(0,n.useServerRoute)(r.queryKey.botKeepWorking),[l]=(0,s.useServerAction)(o,{onOk:()=>(0,n.revalidate)(r.queryKey.botKeepWorking)});return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground",title:"Off, closing the last tab stops running jobs and holds routines until one is open again. On, they run until the server stops.",children:c}),(0,t.jsx)(i.Switch,{checked:e??!1,disabled:void 0===e,onCheckedChange:e=>{a(e,!1),l(e)},"aria-label":c})]})}],638475)},888669,e=>{"use strict";var t=e.i(95187);let r=(0,t.createServerReference)("7f1f247b8563afa66ec2d6f726f46f905b44817052",t.callServer,void 0,t.findSourceMapURL,"deleteWorkspaceFileAction");e.s(["deleteWorkspaceFileAction",0,r])},333999,e=>{"use strict";var t=e.i(271645),r=e.i(647163);e.s(["useObjectState",0,e=>{let[i,s]=(0,t.useState)(e);return[i,(0,t.useMemo)(()=>{let e=e=>{s(t=>{let i=(0,r.isFunction)(e)?e(t):e;return Object.keys(i).some(e=>!Object.is(t[e],i[e]))?{...t,...i}:t})},t=new Map;return new Proxy(e,{get(i,s,n){if("symbol"==typeof s)return Reflect.get(i,s,n);let a=t.get(s);return a||(a=t=>{e(e=>({[s]:(0,r.isFunction)(t)?t(e[s]):t}))},t.set(s,a)),a}})},[])]}])},759659,e=>{"use strict";var t=e.i(456420);let r={name:"trash",size:24,node:[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],aliases:["trash-2"]};r.node;let i=(0,t.default)(r);e.s(["Trash2",0,i],759659)}]);
package/README.md CHANGED
@@ -4,16 +4,20 @@
4
4
 
5
5
  ### Everyone wanted Friday. This is Thursday.
6
6
 
7
- **An open-source voice assistant that runs on your computer, with a team of AI bots behind it.**<br>
8
- You talk. Bots take the slow work to a real browser, a shell and your files. The conversation never stops.
7
+ **An open-source voice assistant on GPT-Live 1 that runs on your computer, with a team of AI bots behind it.**<br>
8
+ You talk. Bots take the slow work to a real browser, a shell and your files, and she keeps talking while they work.
9
9
 
10
10
  [![npm](https://img.shields.io/npm/v/thursday-agent?style=flat-square&color=111&label=npm)](https://www.npmjs.com/package/thursday-agent)
11
11
  [![CI](https://img.shields.io/github/actions/workflow/status/cgoinglove/thursday/ci.yml?style=flat-square&label=ci)](https://github.com/cgoinglove/thursday/actions/workflows/ci.yml)
12
12
  [![MIT](https://img.shields.io/badge/license-MIT-111?style=flat-square)](LICENSE)
13
- [![stars](https://img.shields.io/github/stars/cgoinglove/thursday?style=flat-square&color=111)](https://github.com/cgoinglove/thursday/stargazers)
13
+ [![node](https://img.shields.io/node/v/thursday-agent?style=flat-square&color=111)](https://nodejs.org)
14
14
 
15
15
  [English](README.md) · [한국어](README.ko.md)
16
16
 
17
+ ![A live call: she answers a weather question herself while a bot's finished page lands in the corner](docs/images/demo.gif)
18
+
19
+ [▶ Watch the 90-second demo, with sound](https://youtu.be/V7fBDY3cYRU)
20
+
17
21
  </div>
18
22
 
19
23
  ## Quick start
@@ -22,41 +26,58 @@ You talk. Bots take the slow work to a real browser, a shell and your files. The
22
26
  npx thursday-agent
23
27
  ```
24
28
 
25
- Paste an OpenAI API key, pick your starter bots, and say **“hey thursday.”** No account, no `.env`.
29
+ Needs Node.js 22.18+ and one OpenAI API key, pasted into the first screen. Pick your starter bots and **tap her face**. No account, no `.env`. The voice costs about $0.05 a minute on that key.
30
+
31
+ ![The first run: a key, the starter bots, and one button that places the first call](docs/images/first-run.png)
32
+
33
+ ## Try saying
34
+
35
+ - “Find me a coat under two hundred dollars and put the options on one page.”
36
+ - “Every weekday at nine, go through my mail and draft the replies.”
37
+ - “Remember my sister's birthday is March third.”
38
+ - “Where is that coat job?”, while it is still running.
26
39
 
27
40
  ## Talk while it works
28
41
 
29
- Most agents make you type and wait. Thursday is a real-time voice call you can interrupt. Anything that takes more than a few seconds goes to a bot in the background, so the call never goes quiet, and she tells you when it's back.
42
+ A speech model that opens a browser goes silent for a minute, and a silent call is a dead call. So Thursday splits the call in two: GPT-Live 1 holds the conversation, and anything slower than a few seconds goes to a bot in the background. Interrupt her, change the subject, or ask how the job is going.
30
43
 
31
- ![A voice call with Thursday while a bot looks for hotels in the background](docs/images/call.png)
44
+ ![Asked how a job is going, she answers with the step the bot is on, while the call goes on](docs/images/call.png)
32
45
 
33
46
  ## One sentence, a whole team
34
47
 
35
48
  Bots hand parts of a job to each other, check what comes back, and ask you only when a decision is yours. Every handoff is saved: open the thread to see who did what, or step in.
36
49
 
37
- ![A planner bot splits a trip request between two bots and one asks the user a question](docs/images/room.png)
50
+ ![Bots split a request, trade findings, ask the user one question, and each message becomes part of the finished page](docs/images/team.png)
38
51
 
39
52
  ## Errands, in a real browser
40
53
 
41
- Orders, bookings, forms, the inbox. Bots use their own browser or the Chrome you're already signed into, and ask before using a login you gave them. A purchase stops at the Pay button, left open on your screen.
54
+ Orders, bookings, forms, the inbox. Bots use their own browser or the Chrome you're already signed into. When a site needs you, the bot opens a window, you sign in yourself, and the app keeps that sign-in for the bots you allow. A purchase stops at the Pay button, left open on your screen.
42
55
 
43
- ![A checkout a bot filled in and left open, with the Pay button for the user to press](docs/images/errands.png)
56
+ ![A checkout a bot filled in and left open, with the Pay button left for the user to press](docs/images/errands.png)
44
57
 
45
58
  ## Results you can keep
46
59
 
47
60
  Pages, charts, videos, slides, docs and scripts, saved as files on your machine. A finished one shows up in the corner of your screen, and “show me” opens it.
48
61
 
49
- ![Files made by six different bots: a rent chart, a short video, a carousel, a trip page, launch copy, and a script](docs/images/artifacts.png)
62
+ ![A finished page waiting in the corner of the screen while she says the job is back](docs/images/results.png)
50
63
 
51
64
  ## Your crew
52
65
 
53
66
  Pick starter bots on the first run, or make your own with a name and one sentence about what it's for. Give each its own model and tools.
54
67
 
55
- ![A lineup of bots, each with its own face and job, plus a slot to make your own](docs/images/bots.png)
68
+ ![Picking the starter bots on the first run, each with its own face and job](docs/images/bots.png)
69
+
70
+ ## From your phone
71
+
72
+ Write to her from Telegram, Discord or Slack while the app runs at home. A bot's question arrives as buttons, and the files she names come with her answer. Nothing on your computer is opened to the internet.
73
+
74
+ ![A chat with Thursday on a phone: a page sent back, and a bot's question as two buttons](docs/images/phone.png)
56
75
 
57
76
  ## And also
58
77
 
59
- - **Hang up, it keeps going.** Jobs run on your machine, and Thursday tells you when they finish, or calls you if you turn that on.
78
+ - **Hang up, it keeps going.** Jobs run on your machine, and Thursday tells you when they finish, or rings your screen if you turn that on.
79
+ - **Type instead.** Press `/` and write to her: the same memory and bots, no microphone, nothing billed by the minute.
80
+ - **Routines.** “Every weekday at nine, go through my mail”: a bot, a job and a time, set up by saying it.
60
81
  - **Memory you can read.** What she knows about you is plain notes. Open, edit, or delete any line.
61
82
  - **Skills and MCP.** Teach bots new methods with Agent Skills, and connect any MCP server.
62
83
  - **Any model.** OpenAI, Anthropic, Google, xAI, Vercel AI Gateway, or your ChatGPT sign-in, per bot.
@@ -78,7 +99,7 @@ Thursday is free and MIT-licensed. You bring the keys: OpenAI bills the voice at
78
99
  <details>
79
100
  <summary><b>Where does my data go?</b></summary>
80
101
 
81
- What you say on a call and what bots work on go to the model providers you set up and the services you connect. “Hey thursday” uses your browser's speech recognition, which in Chrome sends microphone audio to Google while the app is open and no call is; switch it off in Settings › Thursday and start calls with a tap or `alt+shift+T`. The app listens only on `127.0.0.1`, and your calls, memory and files live in `~/.thursday` (or the checkout, when you run from source).
102
+ What you say on a call and what bots work on go to the model providers you set up and the services you connect. The “hey thursday” wake phrase is off until you switch it on: it uses your browser's speech recognition, which in Chrome sends microphone audio to Google while the tab is open. A tap on her face or `alt+shift+T` starts a call without it. The app listens only on `127.0.0.1`, and your calls, memory and files live in `~/.thursday` (or the checkout, when you run from source).
82
103
 
83
104
  </details>
84
105
 
@@ -109,6 +130,6 @@ Requires pnpm 10+.
109
130
 
110
131
  **[How it works](docs/how-it-works.md)** · [Contributing](CONTRIBUTING.md) · [Security](SECURITY.md) · [MIT](LICENSE)
111
132
 
112
- If you'd rather say it than type it, [star Thursday](https://github.com/cgoinglove/thursday).
133
+ If you'd rather say it than type it, [star Thursday](https://github.com/cgoinglove/thursday). Ran it? [Tell me where it stopped](https://github.com/cgoinglove/thursday/issues/new): that list is the roadmap.
113
134
 
114
135
  </div>