thursday-agent 0.12.0 → 0.13.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 (470) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/prerender-manifest.json +4 -4
  4. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  5. package/.next/server/app/_global-error.html +1 -1
  6. package/.next/server/app/_global-error.rsc +1 -1
  7. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  10. package/.next/server/app/_not-found/page.js +1 -1
  11. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  12. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  13. package/.next/server/app/_not-found.html +1 -1
  14. package/.next/server/app/_not-found.rsc +18 -19
  15. package/.next/server/app/_not-found.segments/_full.segment.rsc +18 -19
  16. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +14 -15
  17. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  18. package/.next/server/app/api/artifact/route.js +8 -8
  19. package/.next/server/app/api/artifact/route.js.nft.json +1 -1
  20. package/.next/server/app/api/bot/keep-working/route.js +7 -7
  21. package/.next/server/app/api/bot/keep-working/route.js.nft.json +1 -1
  22. package/.next/server/app/api/bot/memory/files/route.js.nft.json +1 -1
  23. package/.next/server/app/api/bot/memory/route.js +7 -7
  24. package/.next/server/app/api/bot/memory/route.js.nft.json +1 -1
  25. package/.next/server/app/api/bot/route.js +7 -7
  26. package/.next/server/app/api/bot/route.js.nft.json +1 -1
  27. package/.next/server/app/api/bot/thread/[id]/route.js +5 -5
  28. package/.next/server/app/api/bot/thread/[id]/route.js.nft.json +1 -1
  29. package/.next/server/app/api/bot/thread/route.js +3 -3
  30. package/.next/server/app/api/bot/thread/route.js.nft.json +1 -1
  31. package/.next/server/app/api/config/route.js +3 -3
  32. package/.next/server/app/api/config/route.js.nft.json +1 -1
  33. package/.next/server/app/api/events/route.js.nft.json +1 -1
  34. package/.next/server/app/api/favicon/[host]/route.js.nft.json +1 -1
  35. package/.next/server/app/api/file/[...path]/route.js +2 -2
  36. package/.next/server/app/api/file/[...path]/route.js.nft.json +1 -1
  37. package/.next/server/app/api/llm-model/catalog/route.js +4 -4
  38. package/.next/server/app/api/llm-model/catalog/route.js.nft.json +1 -1
  39. package/.next/server/app/api/llm-model/credits/route.js +4 -4
  40. package/.next/server/app/api/llm-model/credits/route.js.nft.json +1 -1
  41. package/.next/server/app/api/llm-model/route.js +6 -6
  42. package/.next/server/app/api/llm-model/route.js.nft.json +1 -1
  43. package/.next/server/app/api/llm-model/subscription/route.js +6 -6
  44. package/.next/server/app/api/llm-model/subscription/route.js.nft.json +1 -1
  45. package/.next/server/app/api/mcp/[name]/route.js +5 -5
  46. package/.next/server/app/api/mcp/[name]/route.js.nft.json +1 -1
  47. package/.next/server/app/api/mcp/oauth/callback/route.js +5 -5
  48. package/.next/server/app/api/mcp/oauth/callback/route.js.nft.json +1 -1
  49. package/.next/server/app/api/mcp/route.js +5 -5
  50. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  51. package/.next/server/app/api/mcp/tools/route.js +5 -5
  52. package/.next/server/app/api/mcp/tools/route.js.nft.json +1 -1
  53. package/.next/server/app/api/memory/edit/route.js +15 -14
  54. package/.next/server/app/api/memory/edit/route.js.nft.json +1 -1
  55. package/.next/server/app/api/memory/route.js +4 -4
  56. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  57. package/.next/server/app/api/reach/route.js +13 -12
  58. package/.next/server/app/api/reach/route.js.nft.json +1 -1
  59. package/.next/server/app/api/routine/route.js +8 -9
  60. package/.next/server/app/api/routine/route.js.nft.json +1 -1
  61. package/.next/server/app/api/signins/route.js.nft.json +1 -1
  62. package/.next/server/app/api/skills/[source]/[name]/route.js +2 -2
  63. package/.next/server/app/api/skills/[source]/[name]/route.js.nft.json +1 -1
  64. package/.next/server/app/api/skills/route.js +2 -2
  65. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  66. package/.next/server/app/api/thursday/call/route.js +6 -6
  67. package/.next/server/app/api/thursday/call/route.js.nft.json +1 -1
  68. package/.next/server/app/api/thursday/skills/route.js +6 -6
  69. package/.next/server/app/api/thursday/skills/route.js.nft.json +1 -1
  70. package/.next/server/app/api/thursday/text/route.js +14 -13
  71. package/.next/server/app/api/thursday/text/route.js.nft.json +1 -1
  72. package/.next/server/app/api/thursday/tool-call/route.js +15 -14
  73. package/.next/server/app/api/thursday/tool-call/route.js.nft.json +1 -1
  74. package/.next/server/app/api/workspace/files/route.js +10 -6
  75. package/.next/server/app/api/workspace/files/route.js.nft.json +1 -1
  76. package/.next/server/app/api/workspace/route.js +9 -4
  77. package/.next/server/app/api/workspace/route.js.nft.json +1 -1
  78. package/.next/server/app/artifact/[...path]/page/server-reference-manifest.json +2 -2
  79. package/.next/server/app/artifact/[...path]/page.js +5 -4
  80. package/.next/server/app/artifact/[...path]/page.js.nft.json +1 -1
  81. package/.next/server/app/artifact/[...path]/page_client-reference-manifest.js +1 -1
  82. package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  83. package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  84. package/.next/server/app/page/server-reference-manifest.json +67 -56
  85. package/.next/server/app/page.js +10 -11
  86. package/.next/server/app/page.js.nft.json +1 -1
  87. package/.next/server/app/page_client-reference-manifest.js +1 -1
  88. package/.next/server/chunks/{[root-of-the-server]__0o49ztf._.js → [root-of-the-server]__0-k4_ie._.js} +2 -2
  89. package/.next/server/chunks/[root-of-the-server]__0209ah4._.js +6 -6
  90. package/.next/server/chunks/[root-of-the-server]__04wldw9._.js +1 -1
  91. package/.next/server/chunks/[root-of-the-server]__0h_x6q6._.js +2 -2
  92. package/.next/server/chunks/{[root-of-the-server]__0cfszwn._.js → [root-of-the-server]__0i23tc1._.js} +2 -2
  93. package/.next/server/chunks/[root-of-the-server]__0mrk2it._.js +1 -1
  94. package/.next/server/chunks/[root-of-the-server]__0nr-v8s._.js +1 -1
  95. package/.next/server/chunks/{[root-of-the-server]__1tg5got._.js → [root-of-the-server]__0paqm5y._.js} +2 -2
  96. package/.next/server/chunks/[root-of-the-server]__0qog7sm._.js +8 -0
  97. package/.next/server/chunks/[root-of-the-server]__0sm5xvm._.js +1 -1
  98. package/.next/server/chunks/[root-of-the-server]__0yisc5v._.js +5 -0
  99. package/.next/server/chunks/[root-of-the-server]__1-swlkw._.js +3 -3
  100. package/.next/server/chunks/[root-of-the-server]__12iddfq._.js +2 -2
  101. package/.next/server/chunks/{[root-of-the-server]__0npn_pn._.js → [root-of-the-server]__15p29m3._.js} +2 -2
  102. package/.next/server/chunks/[root-of-the-server]__17ses32._.js +3 -0
  103. package/.next/server/chunks/[root-of-the-server]__18-2tsq._.js +2 -2
  104. package/.next/server/chunks/[root-of-the-server]__1cjxw0-._.js +1 -1
  105. package/.next/server/chunks/[root-of-the-server]__1gi2nns._.js +5 -0
  106. package/.next/server/chunks/{[root-of-the-server]__0rqgb17._.js → [root-of-the-server]__1iauz8a._.js} +2 -2
  107. package/.next/server/chunks/[root-of-the-server]__1k3j52n._.js +1 -1
  108. package/.next/server/chunks/{[root-of-the-server]__209k6pk._.js → [root-of-the-server]__1lb_pxg._.js} +2 -2
  109. package/.next/server/chunks/[root-of-the-server]__1ndi14y._.js +1 -1
  110. package/.next/server/chunks/[root-of-the-server]__1orn-5b._.js +1 -1
  111. package/.next/server/chunks/[root-of-the-server]__1xqsrqq._.js +5 -0
  112. package/.next/server/chunks/[root-of-the-server]__1ygplx1._.js +1 -1
  113. package/.next/server/chunks/[root-of-the-server]__2163i40._.js +5 -0
  114. package/.next/server/chunks/_0ci0abh._.js +3 -0
  115. package/.next/server/chunks/_0eauz4t._.js +1 -1
  116. package/.next/server/chunks/_0f6ts7z._.js +1 -1
  117. package/.next/server/chunks/_0fg-1oj._.js +5 -0
  118. package/.next/server/chunks/_0khihjk._.js +2 -2
  119. package/.next/server/chunks/_0n74zsf._.js +1 -1
  120. package/.next/server/chunks/_0na2fj1._.js +2 -2
  121. package/.next/server/chunks/_0oh_99-._.js +3 -0
  122. package/.next/server/chunks/_0x-ej3f._.js +24 -24
  123. package/.next/server/chunks/_0z3nz21._.js +3 -0
  124. package/.next/server/chunks/_10tkr26._.js +1 -1
  125. package/.next/server/chunks/_12-amdu._.js +2 -2
  126. package/.next/server/chunks/_136j09a._.js +1 -1
  127. package/.next/server/chunks/_15740dw._.js +1 -1
  128. package/.next/server/chunks/_18izeh1._.js +5 -0
  129. package/.next/server/chunks/_1_5mnq4._.js +1 -1
  130. package/.next/server/chunks/_1ajbhv6._.js +2 -2
  131. package/.next/server/chunks/_1dc_d1q._.js +2 -2
  132. package/.next/server/chunks/_1drgfx4._.js +1 -1
  133. package/.next/server/chunks/_1e48czp._.js +2 -2
  134. package/.next/server/chunks/_1f06zo4._.js +3 -0
  135. package/.next/server/chunks/_1ic3bew._.js +2 -2
  136. package/.next/server/chunks/_1jn-aep._.js +2 -2
  137. package/.next/server/chunks/_1jn5btd._.js +6 -0
  138. package/.next/server/chunks/_1kg70wc._.js +2 -2
  139. package/.next/server/chunks/_1m2i5pt._.js +5 -0
  140. package/.next/server/chunks/_1ogqovh._.js +4 -4
  141. package/.next/server/chunks/_1qxheoa._.js +1 -1
  142. package/.next/server/chunks/_1ry6afh._.js +18 -0
  143. package/.next/server/chunks/_1taa4bs._.js +1 -1
  144. package/.next/server/chunks/_1tpr507._.js +1 -1
  145. package/.next/server/chunks/_1y8w80a._.js +1 -1
  146. package/.next/server/chunks/_1zxp-p6._.js +1 -1
  147. package/.next/server/chunks/_204744f._.js +5 -0
  148. package/.next/server/chunks/_20fsr_z._.js +1 -1
  149. package/.next/server/chunks/config_ts_1g4sz5o._.js +1 -1
  150. package/.next/server/chunks/features_0-cnt0l._.js +1 -1
  151. package/.next/server/chunks/features_0hdaci0._.js +1 -1
  152. package/.next/server/chunks/features_0p85gv6._.js +3 -0
  153. package/.next/server/chunks/{node_modules_zod_v4_0_v5xf5._.js → node_modules_zod_v4_01bha1c._.js} +2 -2
  154. package/.next/server/chunks/{node_modules_zod_v4_0q9hvql._.js → node_modules_zod_v4_0b99z6a._.js} +2 -2
  155. package/.next/server/chunks/{node_modules_zod_v4_1jg8iwg._.js → node_modules_zod_v4_1zz6lo1._.js} +2 -2
  156. package/.next/server/chunks/ssr/[root-of-the-server]__04upd5v._.js +3 -0
  157. package/.next/server/chunks/ssr/[root-of-the-server]__0dxszdt._.js +3 -0
  158. package/.next/server/chunks/ssr/[root-of-the-server]__0eezycw._.js +3 -0
  159. package/.next/server/chunks/ssr/[root-of-the-server]__0hpp3nw._.js +1 -1
  160. package/.next/server/chunks/ssr/[root-of-the-server]__0yngu44._.js +3 -0
  161. package/.next/server/chunks/ssr/[root-of-the-server]__16z72ny._.js +6 -0
  162. package/.next/server/chunks/ssr/[root-of-the-server]__1u_ry86._.js +3 -0
  163. package/.next/server/chunks/ssr/{[root-of-the-server]__1iwyp1e._.js → [root-of-the-server]__1unh_ew._.js} +1 -1
  164. package/.next/server/chunks/ssr/[root-of-the-server]__20re7ya._.js +3 -0
  165. package/.next/server/chunks/ssr/_00pgq9d._.js +5 -0
  166. package/.next/server/chunks/ssr/_07ke63g._.js +3 -0
  167. package/.next/server/chunks/ssr/_0agcbk7._.js +3 -0
  168. package/.next/server/chunks/ssr/_0e-gw2_._.js +3 -0
  169. package/.next/server/chunks/ssr/{_0fbi6om._.js → _0f_om6y._.js} +3 -3
  170. package/.next/server/chunks/ssr/_0fqhhwi._.js +1 -1
  171. package/.next/server/chunks/ssr/{_026qnc9._.js → _0gpn71k._.js} +3 -3
  172. package/.next/server/chunks/ssr/_0iizjr9._.js +3 -0
  173. package/.next/server/chunks/ssr/_0ixvzo6._.js +75 -0
  174. package/.next/server/chunks/ssr/_0kkdx7t._.js +3 -0
  175. package/.next/server/chunks/ssr/_0lufvw7._.js +118 -0
  176. package/.next/server/chunks/ssr/_0vi6ky6._.js +115 -0
  177. package/.next/server/chunks/ssr/{_10f-jib._.js → _0yhji3e._.js} +2 -2
  178. package/.next/server/chunks/ssr/_0z38nha._.js +3 -0
  179. package/.next/server/chunks/ssr/{_10mo72m._.js → _11nx2d4._.js} +2 -2
  180. package/.next/server/chunks/ssr/_12mijol._.js +2 -2
  181. package/.next/server/chunks/ssr/_150463c._.js +164 -0
  182. package/.next/server/chunks/ssr/{_0rmaf32._.js → _17d2ikl._.js} +2 -2
  183. package/.next/server/chunks/ssr/_19jez1a._.js +3 -0
  184. package/.next/server/chunks/ssr/_1blui1m._.js +3 -0
  185. package/.next/server/chunks/ssr/_1d423aj._.js +4 -4
  186. package/.next/server/chunks/ssr/_1kbk28w._.js +3 -0
  187. package/.next/server/chunks/ssr/_1kj_r9v._.js +3 -0
  188. package/.next/server/chunks/ssr/_1mqn9mc._.js +1 -1
  189. package/.next/server/chunks/ssr/{_0u5xv6g._.js → _1myh7ss._.js} +2 -2
  190. package/.next/server/chunks/ssr/_1neoj22._.js +1 -1
  191. package/.next/server/chunks/ssr/_1ou5sj0._.js +3 -0
  192. package/.next/server/chunks/ssr/_1p8xorg._.js +3 -0
  193. package/.next/server/chunks/ssr/_1tzacpl._.js +3 -0
  194. package/.next/server/chunks/ssr/_1xoch6f._.js +1 -1
  195. package/.next/server/chunks/ssr/_1yh5bj5._.js +1 -1
  196. package/.next/server/chunks/ssr/{_02c7o30._.js → _2021n9-._.js} +2 -2
  197. package/.next/server/chunks/ssr/_20argo3._.js +3 -0
  198. package/.next/server/chunks/ssr/features_bot_1ll3wp7._.js +3 -0
  199. package/.next/server/chunks/ssr/features_bot_1s_-2vj._.js +1 -1
  200. package/.next/server/chunks/ssr/features_bot_thread_query_ts_023eklt._.js +1 -1
  201. package/.next/server/chunks/ssr/features_config_1qxe5ur._.js +20 -0
  202. package/.next/server/chunks/ssr/features_connectors_components_mcp-setting_tsx_0jmbgvp._.js +3 -3
  203. package/.next/server/chunks/ssr/features_memory_components_memory-setting_tsx_0oa43sw._.js +1 -1
  204. package/.next/server/chunks/ssr/features_routine_components_routine-setting_tsx_055fknz._.js +1 -1
  205. package/.next/server/chunks/ssr/features_workspace_00jz2hu._.js +1 -1
  206. package/.next/server/chunks/ssr/{node_modules_0ky76fz._.js → node_modules_06e0wlv._.js} +1 -1
  207. package/.next/server/chunks/ssr/{node_modules_0-x0zxm._.js → node_modules_0cj26-9._.js} +1 -1
  208. package/.next/server/chunks/ssr/{node_modules_0operbz._.js → node_modules_0d1rf5e._.js} +1 -1
  209. package/.next/server/chunks/ssr/{node_modules_0b0iy01._.js → node_modules_0e86703._.js} +1 -1
  210. package/.next/server/chunks/ssr/{node_modules_05b6e99._.js → node_modules_0es09am._.js} +1 -1
  211. package/.next/server/chunks/ssr/{node_modules_1iau_ea._.js → node_modules_0gr_dzf._.js} +1 -1
  212. package/.next/server/chunks/ssr/{node_modules_1hv-j1l._.js → node_modules_0gtcwz9._.js} +1 -1
  213. package/.next/server/chunks/ssr/{node_modules_1c2ikr9._.js → node_modules_0hi9h8f._.js} +1 -1
  214. package/.next/server/chunks/ssr/{node_modules_01u4ea3._.js → node_modules_0lkop0t._.js} +1 -1
  215. package/.next/server/chunks/ssr/{node_modules_1wvf3oo._.js → node_modules_0nghisk._.js} +1 -1
  216. package/.next/server/chunks/ssr/{node_modules_0yzmxfq._.js → node_modules_0stovz0._.js} +1 -1
  217. package/.next/server/chunks/ssr/{node_modules_00nrzz_._.js → node_modules_0we85kr._.js} +1 -1
  218. package/.next/server/chunks/ssr/{node_modules_01ed0yi._.js → node_modules_0ya7y1s._.js} +1 -1
  219. package/.next/server/chunks/ssr/{node_modules_0m3_5ge._.js → node_modules_0yrbwkj._.js} +1 -1
  220. package/.next/server/chunks/ssr/{node_modules_0v_-uht._.js → node_modules_1-x70ie._.js} +1 -1
  221. package/.next/server/chunks/ssr/{node_modules_07jp6tj._.js → node_modules_12fd9g0._.js} +1 -1
  222. package/.next/server/chunks/ssr/{node_modules_1wgnj8q._.js → node_modules_12wxrgr._.js} +1 -1
  223. package/.next/server/chunks/ssr/{node_modules_0azd56x._.js → node_modules_139uu4q._.js} +1 -1
  224. package/.next/server/chunks/ssr/{node_modules_1omg9xr._.js → node_modules_14gpoe1._.js} +1 -1
  225. package/.next/server/chunks/ssr/{node_modules_1ma_y68._.js → node_modules_18fmji6._.js} +1 -1
  226. package/.next/server/chunks/ssr/{node_modules_0ucridu._.js → node_modules_19kkel8._.js} +1 -1
  227. package/.next/server/chunks/ssr/{node_modules_0fpnetd._.js → node_modules_1gcine1._.js} +1 -1
  228. package/.next/server/chunks/ssr/{node_modules_1z3sh11._.js → node_modules_1h4trkm._.js} +1 -1
  229. package/.next/server/chunks/ssr/{node_modules_0lautv3._.js → node_modules_1mub_qu._.js} +1 -1
  230. package/.next/server/chunks/ssr/{node_modules_0ou0all._.js → node_modules_1p78svs._.js} +1 -1
  231. package/.next/server/chunks/ssr/{node_modules_19b0bir._.js → node_modules_1xp-7ep._.js} +1 -1
  232. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0tmjn9w._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0ay7_oi._.js} +1 -1
  233. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1_e8c3o._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_182ydq_._.js} +1 -1
  234. package/.next/server/middleware-build-manifest.js +3 -3
  235. package/.next/server/pages/404.html +1 -1
  236. package/.next/server/pages/500.html +1 -1
  237. package/.next/server/server-reference-manifest.js +1 -1
  238. package/.next/server/server-reference-manifest.json +69 -58
  239. package/.next/static/chunks/03df16hs01-xi.js +1 -0
  240. package/.next/static/chunks/0crocb7272z8k.js +1 -0
  241. package/.next/static/chunks/{0p9jcyqkpq71f.js → 0dqsenl3uk_8z.js} +1 -1
  242. package/.next/static/chunks/0hhn8mf953761.js +1 -0
  243. package/.next/static/chunks/0n1o3k0z4m7c_.js +1 -0
  244. package/.next/static/chunks/0oe2zavre2a7d.css +1 -0
  245. package/.next/static/chunks/0srg9tv4105-i.js +1 -0
  246. package/.next/static/chunks/0t599wrclly7i.js +18 -0
  247. package/.next/static/chunks/0x34bhth_sn35.js +1 -0
  248. package/.next/static/chunks/{0mscosx0eh3ee.js → 0x_6z8vt8hyf4.js} +3 -3
  249. package/.next/static/chunks/{0p50d-au6-3hx.js → 1_wstwzu1md-6.js} +2 -2
  250. package/.next/static/chunks/{40ij3wsn3vt7h.js → 1aughn81slf90.js} +1 -1
  251. package/.next/static/chunks/1g1j03h_l-e67.js +1 -0
  252. package/.next/static/chunks/1lp02y2nmddxg.js +1 -0
  253. package/.next/static/chunks/211s4xjtecj2l.js +1 -0
  254. package/.next/static/chunks/2244-cat2jlvd.js +1 -0
  255. package/.next/static/chunks/{2r6xnyg7ezyxr.js → 2eev_i93slion.js} +2 -2
  256. package/.next/static/chunks/2sjq4gsimlfqr.js +113 -0
  257. package/.next/static/chunks/{0qgn3u86jkbm7.js → 2uleilh8ph06-.js} +1 -1
  258. package/.next/static/chunks/{1czfknd4luo6t.js → 2zchsg03a1pdp.js} +1 -1
  259. package/.next/static/chunks/32tmfirfjpulv.js +1 -0
  260. package/.next/static/chunks/{2_c7mu6x1lu49.js → 376-s_i83irs-.js} +1 -1
  261. package/.next/static/chunks/3blk-kpn39xr-.js +1 -0
  262. package/.next/static/chunks/3eieehp7wquyu.js +1 -0
  263. package/.next/static/chunks/3kc-e7pcj50ae.js +1 -0
  264. package/.next/static/chunks/3rwpyuo9nrrop.js +17 -0
  265. package/.next/static/chunks/3sf4l25l353ja.js +1 -0
  266. package/.next/static/chunks/3vz7m1w688juj.js +3 -0
  267. package/.next/static/chunks/43skgt0h9woyu.js +1 -0
  268. package/app/api/events/app-event.client.ts +8 -2
  269. package/app/api/events/app-event.server.ts +7 -5
  270. package/app/api/events/app-event.ts +19 -8
  271. package/app/api/query-key.ts +13 -5
  272. package/bin/database.mjs +21 -11
  273. package/bin/thursday.mjs +5 -2
  274. package/components/ui/shiny-text.tsx +2 -2
  275. package/database/migrations/20260920024909_messy_baron_strucker/migration.sql +1 -0
  276. package/database/migrations/20260920024909_messy_baron_strucker/snapshot.json +1937 -0
  277. package/features/artifact/components/artifact-setting.tsx +18 -24
  278. package/features/bot/bot.action.ts +3 -0
  279. package/features/bot/bot.runner.ts +25 -3
  280. package/features/bot/bot.seed.ts +98 -22
  281. package/features/bot/components/bot-badge.tsx +2 -2
  282. package/features/bot/components/bot-mark.tsx +12 -3
  283. package/features/bot/components/bot-room.tsx +33 -10
  284. package/features/bot/components/bot-setting.tsx +88 -34
  285. package/features/bot/components/crew-motion.ts +161 -0
  286. package/features/bot/components/mark-palette.tsx +3 -3
  287. package/features/bot/components/room-conversation.tsx +13 -8
  288. package/features/bot/components/room-list.tsx +9 -5
  289. package/features/bot/components/room-pill.tsx +131 -41
  290. package/features/bot/components/thread-badge.tsx +4 -4
  291. package/features/bot/components/thread-setting.tsx +58 -19
  292. package/features/bot/mark.const.ts +24 -0
  293. package/features/bot/thread.query.ts +32 -14
  294. package/features/bot/thread.store.ts +19 -16
  295. package/features/config/components/config-badge.tsx +2 -2
  296. package/features/config/components/config-setting.tsx +63 -213
  297. package/features/config/config.const.ts +2 -1
  298. package/features/connectors/components/mcp-setting.tsx +60 -29
  299. package/features/intro/components/intro.tsx +2 -2
  300. package/features/memory/components/memory-setting.tsx +11 -7
  301. package/features/reach/channel.ts +9 -1
  302. package/features/reach/components/reach-guide.tsx +606 -105
  303. package/features/reach/discord.ts +18 -3
  304. package/features/reach/reach.schema.ts +6 -0
  305. package/features/reach/reach.ts +55 -2
  306. package/features/reach/slack.ts +2 -1
  307. package/features/reach/telegram.ts +5 -1
  308. package/features/routine/components/routine-setting.tsx +46 -18
  309. package/features/settings/components/setting-ui.tsx +17 -68
  310. package/features/settings/components/settings.tsx +4 -3
  311. package/features/settings/settings.alert.ts +8 -8
  312. package/features/skills/components/skills-setting.tsx +78 -12
  313. package/features/skills/skills.action.ts +12 -0
  314. package/features/skills/skills.query.ts +24 -0
  315. package/features/thursday/components/call-log.tsx +19 -14
  316. package/features/thursday/components/side-captions.tsx +3 -2
  317. package/features/thursday/components/thursday-setting.tsx +5 -6
  318. package/features/thursday/components/thursday.tsx +8 -9
  319. package/features/thursday/components/write-line.tsx +10 -5
  320. package/features/thursday/thursday.action.ts +4 -0
  321. package/features/thursday/thursday.query.ts +3 -2
  322. package/features/thursday/thursday.schema.ts +5 -0
  323. package/features/thursday/use-call-ring.ts +6 -1
  324. package/features/thursday/use-text-call.ts +25 -10
  325. package/features/thursday/use-thursday.ts +10 -1
  326. package/features/workspace/components/artifact-view.tsx +42 -33
  327. package/features/workspace/components/file-thumb.tsx +8 -4
  328. package/features/workspace/components/file-view.tsx +25 -2
  329. package/features/workspace/components/workspace-setting.tsx +27 -23
  330. package/features/workspace/workspace.query.ts +20 -1
  331. package/features/workspace/workspace.ts +14 -0
  332. package/guide/bots.md +27 -4
  333. package/guide/calls.md +5 -3
  334. package/guide/phone.md +23 -12
  335. package/guide/setup.md +20 -5
  336. package/guide/trouble.md +1 -1
  337. package/hooks/use-theme.ts +14 -0
  338. package/lib/protocol/events.client.ts +56 -14
  339. package/lib/protocol/events.server.ts +41 -12
  340. package/lib/utils.ts +1 -1
  341. package/package.json +1 -1
  342. package/scripts/reach-channels.test.mts +15 -2
  343. package/seed-skills/brief/daily-brief/SKILL.md +39 -0
  344. package/seed-skills/brief/daily-brief/page/brief.css +406 -0
  345. package/seed-skills/brief/daily-brief/references/brief.md +106 -0
  346. package/seed-skills/brief/daily-brief/references/preferences.md +67 -0
  347. package/seed-skills/brief/daily-brief/scripts/glance.mjs +128 -0
  348. package/seed-skills/brief/daily-brief/scripts/lib.mjs +182 -0
  349. package/seed-skills/brief/daily-brief/scripts/news.mjs +320 -0
  350. package/seed-skills/brief/daily-brief/scripts/page.mjs +322 -0
  351. package/seed-skills/brief/daily-brief/scripts/story.mjs +265 -0
  352. package/seed-skills/digest/README.md +20 -0
  353. package/seed-skills/digest/media-digest/SKILL.md +32 -0
  354. package/seed-skills/digest/media-digest/references/no-captions.md +20 -0
  355. package/seed-skills/digest/media-digest/references/page.md +56 -0
  356. package/seed-skills/digest/media-digest/references/reading.md +56 -0
  357. package/seed-skills/digest/media-digest/scripts/audio.mjs +232 -0
  358. package/seed-skills/digest/media-digest/scripts/digest.mjs +379 -0
  359. package/seed-skills/digest/media-digest/scripts/lib.mjs +284 -0
  360. package/seed-skills/digest/media-digest/scripts/part.mjs +16 -0
  361. package/seed-skills/digest/media-digest/scripts/text.mjs +287 -0
  362. package/seed-skills/digest/media-digest/scripts/yt.mjs +487 -0
  363. package/seed-skills/docs/README.md +32 -0
  364. package/seed-skills/docs/documents/SKILL.md +34 -0
  365. package/seed-skills/docs/documents/kit/package-lock.json +1596 -0
  366. package/seed-skills/docs/documents/kit/package.json +17 -0
  367. package/seed-skills/docs/documents/references/deck.md +63 -0
  368. package/seed-skills/docs/documents/references/invoice.md +64 -0
  369. package/seed-skills/docs/documents/references/pdf.md +59 -0
  370. package/seed-skills/docs/documents/references/print.md +43 -0
  371. package/seed-skills/docs/documents/references/sheets.md +49 -0
  372. package/seed-skills/docs/documents/references/translate.md +37 -0
  373. package/seed-skills/docs/documents/references/word.md +45 -0
  374. package/seed-skills/docs/documents/scripts/doc.mjs +123 -0
  375. package/seed-skills/docs/documents/scripts/lib/browser.mjs +259 -0
  376. package/seed-skills/docs/documents/scripts/lib/deck-chart.mjs +150 -0
  377. package/seed-skills/docs/documents/scripts/lib/deck.mjs +1132 -0
  378. package/seed-skills/docs/documents/scripts/lib/invoice.mjs +505 -0
  379. package/seed-skills/docs/documents/scripts/lib/kit.mjs +244 -0
  380. package/seed-skills/docs/documents/scripts/lib/pdf.mjs +645 -0
  381. package/seed-skills/docs/documents/scripts/lib/report.mjs +38 -0
  382. package/seed-skills/docs/documents/scripts/lib/sheet.mjs +523 -0
  383. package/seed-skills/docs/documents/scripts/lib/templates.mjs +34 -0
  384. package/seed-skills/docs/documents/scripts/lib/translate.mjs +691 -0
  385. package/seed-skills/docs/documents/scripts/lib/word.mjs +678 -0
  386. package/seed-skills/docs/documents/templates/letter.html +56 -0
  387. package/seed-skills/docs/documents/templates/print.css +219 -0
  388. package/seed-skills/docs/documents/templates/report.html +47 -0
  389. package/seed-skills/docs/documents/templates/resume.html +61 -0
  390. package/seed-skills/insta/instagram/references/post.md +31 -7
  391. package/seed-skills/trip/README.md +11 -0
  392. package/seed-skills/trip/travel/SKILL.md +40 -0
  393. package/seed-skills/trip/travel/page/itinerary.css +488 -0
  394. package/seed-skills/trip/travel/references/itinerary.md +70 -0
  395. package/seed-skills/trip/travel/references/plan.md +75 -0
  396. package/seed-skills/trip/travel/references/watch-and-book.md +39 -0
  397. package/seed-skills/trip/travel/scripts/flights.mjs +374 -0
  398. package/seed-skills/trip/travel/scripts/fx.mjs +57 -0
  399. package/seed-skills/trip/travel/scripts/hotels.mjs +356 -0
  400. package/seed-skills/trip/travel/scripts/itinerary.mjs +482 -0
  401. package/seed-skills/trip/travel/scripts/lib.mjs +120 -0
  402. package/seed-skills/trip/travel/scripts/selectors.mjs +78 -0
  403. package/seed-skills/trip/travel/scripts/watch.mjs +147 -0
  404. package/seed-skills/trip/travel/scripts/weather.mjs +150 -0
  405. package/seed-skills/tutor/picture-book/SKILL.md +6 -0
  406. package/seed-skills/tutor/picture-book/references/picture-book.md +22 -2
  407. package/.next/server/chunks/[root-of-the-server]__014ydvq._.js +0 -8
  408. package/.next/server/chunks/[root-of-the-server]__01d285y._.js +0 -5
  409. package/.next/server/chunks/[root-of-the-server]__04r4h-2._.js +0 -7
  410. package/.next/server/chunks/[root-of-the-server]__0ayldfn._.js +0 -5
  411. package/.next/server/chunks/[root-of-the-server]__17weeeg._.js +0 -5
  412. package/.next/server/chunks/[root-of-the-server]__1ai5lme._.js +0 -8
  413. package/.next/server/chunks/_05v8k21._.js +0 -7
  414. package/.next/server/chunks/_0k6qjcf._.js +0 -5
  415. package/.next/server/chunks/_1d_enhu._.js +0 -3
  416. package/.next/server/chunks/_1jc5g4p._.js +0 -6
  417. package/.next/server/chunks/_1nfr-75._.js +0 -3
  418. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0md6j0x._.js +0 -3
  419. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_14ih1vy._.js +0 -3
  420. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1d6ez5-._.js +0 -3
  421. package/.next/server/chunks/ssr/[root-of-the-server]__0a967km._.js +0 -3
  422. package/.next/server/chunks/ssr/[root-of-the-server]__0tzekbl._.js +0 -68
  423. package/.next/server/chunks/ssr/[root-of-the-server]__1756892._.js +0 -3
  424. package/.next/server/chunks/ssr/[root-of-the-server]__1mzi-ju._.js +0 -3
  425. package/.next/server/chunks/ssr/[root-of-the-server]__1nqw56a._.js +0 -3
  426. package/.next/server/chunks/ssr/[root-of-the-server]__1r77-88._.js +0 -3
  427. package/.next/server/chunks/ssr/[root-of-the-server]__1w9hqq8._.js +0 -8
  428. package/.next/server/chunks/ssr/_05pl_u8._.js +0 -3
  429. package/.next/server/chunks/ssr/_097-ljd._.js +0 -4
  430. package/.next/server/chunks/ssr/_0euzzf8._.js +0 -3
  431. package/.next/server/chunks/ssr/_0evkpto._.js +0 -3
  432. package/.next/server/chunks/ssr/_0igfcax._.js +0 -20
  433. package/.next/server/chunks/ssr/_0lu1n_x._.js +0 -3
  434. package/.next/server/chunks/ssr/_0nvh1h9._.js +0 -3
  435. package/.next/server/chunks/ssr/_0qmpw35._.js +0 -3
  436. package/.next/server/chunks/ssr/_0uv-qs4._.js +0 -3
  437. package/.next/server/chunks/ssr/_132qkfz._.js +0 -5
  438. package/.next/server/chunks/ssr/_15zqt-t._.js +0 -3
  439. package/.next/server/chunks/ssr/_16gfxpn._.js +0 -3
  440. package/.next/server/chunks/ssr/_184327j._.js +0 -3
  441. package/.next/server/chunks/ssr/_18ujhhq._.js +0 -3
  442. package/.next/server/chunks/ssr/_1lx6w_o._.js +0 -67
  443. package/.next/server/chunks/ssr/_1ntpny5._.js +0 -3
  444. package/.next/server/chunks/ssr/_1o1g4uk._.js +0 -5
  445. package/.next/server/chunks/ssr/_1xx4zlb._.js +0 -3
  446. package/.next/server/chunks/ssr/_2008vmi._.js +0 -164
  447. package/.next/server/chunks/ssr/features_bot_1n1s7bh._.js +0 -3
  448. package/.next/static/chunks/09pkygbht7ki8.js +0 -18
  449. package/.next/static/chunks/0bm-nhblcmmj4.js +0 -17
  450. package/.next/static/chunks/0c_g4-11sha-1.js +0 -1
  451. package/.next/static/chunks/0hhza87hkbqaz.js +0 -1
  452. package/.next/static/chunks/0samf80yu2b17.js +0 -1
  453. package/.next/static/chunks/0vlgzqo9ka90v.js +0 -1
  454. package/.next/static/chunks/1g9yyvculuxj2.js +0 -1
  455. package/.next/static/chunks/1jz8n0mhtdzr8.js +0 -1
  456. package/.next/static/chunks/206laxm6maiz2.js +0 -1
  457. package/.next/static/chunks/23nfu5g4vl_m7.js +0 -1
  458. package/.next/static/chunks/2h-tlhb2ffhkk.js +0 -1
  459. package/.next/static/chunks/2i5_w8olnrvo0.js +0 -3
  460. package/.next/static/chunks/2m6jd3586ijb-.js +0 -1
  461. package/.next/static/chunks/2m8iqwc6sykln.js +0 -1
  462. package/.next/static/chunks/33fyp-byw48ju.js +0 -65
  463. package/.next/static/chunks/35yd_27d9ylra.js +0 -1
  464. package/.next/static/chunks/3ag1i3__yl94f.js +0 -1
  465. package/.next/static/chunks/3m_ejzg-xn21r.css +0 -1
  466. package/.next/static/chunks/3s-jpd3ky49-n.js +0 -1
  467. package/features/reach/components/reach-state.tsx +0 -71
  468. /package/.next/static/{QSe0rTdXU5kh5BBzr2XBB → fiNGsQfna8qldl8wU8wqr}/_buildManifest.js +0 -0
  469. /package/.next/static/{QSe0rTdXU5kh5BBzr2XBB → fiNGsQfna8qldl8wU8wqr}/_clientMiddlewareManifest.js +0 -0
  470. /package/.next/static/{QSe0rTdXU5kh5BBzr2XBB → fiNGsQfna8qldl8wU8wqr}/_ssgManifest.js +0 -0
@@ -0,0 +1,3 @@
1
+ module.exports=[767561,a=>{"use strict";let b=a=>a.split("/").map(encodeURIComponent).join("/");a.s(["queryKey",0,{memory:"/api/memory",memoryPage:a=>({url:"/api/memory",query:{offset:a||null}}),notePath:a=>({url:"/api/memory",query:{path:a}}),mcp:"/api/mcp",mcpServer:a=>({url:"/api/mcp",pathVariable:[a]}),mcpTools:"/api/mcp/tools",skills:"/api/skills",skillNode:(a,b,c)=>({url:"/api/skills",pathVariable:[a,b],query:{path:c}}),bot:"/api/bot",botMemory:"/api/bot/memory",botKeepWorking:"/api/bot/keep-working",botMemoryFiles:a=>({url:"/api/bot/memory/files",query:{bot:a}}),routines:"/api/routine",threads:"/api/bot/thread",threadHistory:a=>({url:"/api/bot/thread",query:{history:1,before:a}}),thread:a=>({url:"/api/bot/thread",query:{id:a}}),toolResult:(a,b)=>({url:"/api/bot/thread",pathVariable:[a],query:{call:b}}),workspace:"/api/workspace",workspaceFolder:(a,b)=>({url:"/api/workspace",query:{path:a||null,rows:b}}),workspaceFiles:a=>({url:"/api/workspace/files",query:{paths:JSON.stringify(a)}}),artifacts:"/api/artifact",artifactShelf:a=>({url:"/api/artifact",query:{rows:a}}),artifactSet:(a,b)=>({url:"/api/artifact",query:{set:a,rows:b}}),file:a=>`/api/file/${b(a)}`,favicon:a=>`/api/favicon/${encodeURIComponent(a)}`,fileView:a=>`/artifact/${b(a)}`,events:"/api/events",config:"/api/config",callHistory:a=>({url:"/api/thursday/call",query:{before:a}}),callSkills:"/api/thursday/skills",toolCall:"/api/thursday/tool-call",signIns:"/api/signins",reach:"/api/reach",textCall:"/api/thursday/text",memoryEdit:"/api/memory/edit",llmModel:"/api/llm-model",modelCatalog:"/api/llm-model/catalog",gatewayCredits:"/api/llm-model/credits",subscriptionUsage:"/api/llm-model/subscription"}])},965733,a=>{"use strict";var b=a.i(187924);a.s([],203497),a.i(203497);var c=a.i(572131),d=a.i(854662);let e=c.createContext(void 0);function f(a){let b=c.useContext(e);if(!a&&void 0===b)throw Error((0,d.default)(27));return b}var g=a.i(926184),h=a.i(304478);let i=c.forwardRef(function(a,b){let{render:c,className:d,style:e,forceRender:i=!1,...j}=a,k=f(),l=k.useState("open"),m=k.useState("nested"),n=k.useState("mounted"),o=k.useState("transitionStatus");return(0,g.useRenderElement)("div",a,{state:{open:l,transitionStatus:o},ref:[k.context.backdropRef,b],stateAttributesMapping:h.popupTransitionStateMapping,props:[{role:"presentation",hidden:!n,style:{userSelect:"none",WebkitUserSelect:"none"}},j],enabled:i||!m})});var j=a.i(221436),k=a.i(394552),l=a.i(307436);let m=c.forwardRef(function(a,b){let{render:c,className:d,style:e,disabled:h=!1,nativeButton:i=!0,...m}=a,n=f(),o=n.useState("open"),{getButtonProps:p,buttonRef:q}=(0,j.useButton)({disabled:h,native:i});return(0,g.useRenderElement)("button",a,{state:{disabled:h},ref:[b,q],props:[{onClick:function(a){o&&n.setOpen(!1,(0,k.createChangeEventDetails)(l.REASONS.closePress,a.nativeEvent))}},m,p]})});var n=a.i(300557);let o=c.forwardRef(function(a,b){let{render:c,className:d,style:e,id:h,...i}=a,j=f(),k=(0,n.useBaseUiId)(h);return j.useSyncedValueWithCleanup("descriptionElementId",k),(0,g.useRenderElement)("p",a,{ref:b,props:[{id:k},i]})});var p=a.i(150687);let q=c.createContext(void 0);function r(){let a=c.useContext(q);if(void 0===a)throw Error((0,d.default)(26));return a}var s=a.i(305687),t=a.i(669649),u=a.i(284204),v=a.i(407393),w=a.i(284923),w=w;w.open,w.closed,w.startingStyle,w.endingStyle;let x={...h.popupStateMapping,...v.transitionStatusMapping,nestedDialogOpen:a=>a?{"data-nested-dialog-open":""}:null},y=c.forwardRef(function(a,c){let{render:d,className:e,style:h,finalFocus:i,initialFocus:j,...k}=a,l=f(),m=l.useState("descriptionElementId"),n=l.useState("disablePointerDismissal"),o=l.useState("floatingRootContext"),q=l.useState("popupProps"),v=l.useState("modal"),w=l.useState("mounted"),y=l.useState("nested"),z=l.useState("nestedOpenDialogCount"),A=l.useState("open"),B=l.useState("openMethod"),C=l.useState("titleElementId"),D=l.useState("transitionStatus"),E=l.useState("role"),F=o.useState("floatingId");r(),(0,s.useOpenChangeComplete)({open:A,ref:l.context.popupRef,onComplete(){A&&l.context.onOpenChangeComplete?.(!0)}});let G=void 0===j?(0,u.createDefaultInitialFocus)(l.context.popupRef):j,H=l.useStateSetter("popupElement"),I=(0,g.useRenderElement)("div",a,{state:{open:A,nested:y,transitionStatus:D,nestedDialogOpen:z>0},props:[q,{id:F,"aria-labelledby":C,"aria-describedby":m,role:E,...u.FOCUSABLE_POPUP_PROPS,hidden:!w,onKeyDown(a){t.COMPOSITE_KEYS.has(a.key)&&a.stopPropagation()},style:{"--nested-dialogs":z}},k],ref:[c,l.context.popupRef,H],stateAttributesMapping:x});return(0,b.jsx)(p.FloatingFocusManager,{context:o,openInteractionType:B,disabled:!w,closeOnFocusOut:!n,initialFocus:G,returnFocus:i,modal:!1!==v,restoreFocus:"popup",children:I})});var z=a.i(454125),A=a.i(354098),B=a.i(330076);let C=c.forwardRef(function(a,c){let{keepMounted:d=!1,...e}=a,g=f(),h=g.useState("mounted"),i=g.useState("modal"),j=g.useState("open");return h||d?(0,b.jsx)(q.Provider,{value:d,children:(0,b.jsxs)(A.FloatingPortal,{ref:c,...e,children:[h&&!0===i&&(0,b.jsx)(B.InternalBackdrop,{ref:g.context.internalBackdropRef,inert:(0,z.inertValue)(!j)}),a.children]})}):null});var D=a.i(722050),E=a.i(357738),F=a.i(113259),G=a.i(138939),H=a.i(30116);function I({store:a,parentContext:b,isDrawer:d}){let e=a.useState("open"),f=a.useState("disablePointerDismissal"),g=a.useState("modal"),h=a.useState("popupElement"),i=a.useState("floatingRootContext"),[j,k]=c.useState(0),[l,m]=c.useState(0),n=0===j,o=(0,G.useDismiss)(i,{outsidePressEvent:()=>a.context.internalBackdropRef.current||a.context.backdropRef.current?"intentional":{mouse:"trap-focus"===g?"sloppy":"intentional",touch:"sloppy"},outsidePress(b){if(!a.context.outsidePressEnabledRef.current||"button"in b&&0!==b.button)return!1;if("touches"in b){if("touchend"===b.type){if(1!==b.changedTouches.length||0!==b.touches.length)return!1}else if(1!==b.touches.length)return!1}let c=(0,H.getTarget)(b);if(n&&!f){if(g){let b=a.context.internalBackdropRef.current,d=a.context.backdropRef.current;return!b&&!d||b===c||d===c||(0,H.contains)(c,h)&&!c?.hasAttribute("data-base-ui-portal")}return!0}return!1},escapeKey:n});return(0,F.useScrollLock)(e&&!0===g,h),a.useContextCallback("onNestedDialogOpen",(a,b)=>{k(a),m(b)}),(0,E.useIsoLayoutEffect)(()=>(b?.onNestedDialogOpen&&(e?b.onNestedDialogOpen(j+1,l+ +!!d):b.onNestedDialogOpen(0,0)),()=>{b?.onNestedDialogOpen&&e&&b.onNestedDialogOpen(0,0)}),[d,e,j,l,b]),(0,u.usePopupInteractionProps)(a,{activeTriggerProps:o.reference,inactiveTriggerProps:o.trigger,popupProps:o.floating,nestedOpenDialogCount:j,nestedOpenDrawerCount:l}),null}var J=a.i(417498),K=a.i(14239),L=a.i(717017),M=a.i(151943);let N={...L.popupStoreSelectors,modal:a=>a.modal,nested:a=>a.nested,nestedOpenDialogCount:a=>a.nestedOpenDialogCount,nestedOpenDrawerCount:a=>a.nestedOpenDrawerCount,disablePointerDismissal:a=>a.disablePointerDismissal,openMethod:a=>a.openMethod,descriptionElementId:a=>a.descriptionElementId,titleElementId:a=>a.titleElementId,viewportElement:a=>a.viewportElement,role:a=>a.role};class O extends J.ReactStore{constructor(a,b,c){const d=new M.PopupTriggerMap;super(P(a,d,b,c),Q(d),N)}setOpen=(a,b)=>{b.preventUnmountOnClose=()=>{this.set("preventUnmountingOnClose",!0)},a||null!=b.trigger||null==this.state.activeTriggerId||(b.trigger=this.state.activeTriggerElement??void 0),this.context.onOpenChange?.(a,b),b.isCanceled||(this.state.floatingRootContext.dispatchOpenChange(a,b),this.update((0,u.createPopupOpenState)(this.state,a,b.trigger)))}}function P(a,b,c,d=!1){return{...(0,L.createInitialPopupStoreState)(b,c,d),modal:!0,disablePointerDismissal:!1,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,nestedOpenDrawerCount:0,role:"dialog",...a}}function Q(a){return{popupRef:c.createRef(),backdropRef:c.createRef(),internalBackdropRef:c.createRef(),outsidePressEnabledRef:{current:!0},triggerElements:a,onOpenChange:void 0,onOpenChangeComplete:void 0}}let R=(0,D.fastComponent)(function(a){return function(a,d){let{children:g,open:h,defaultOpen:i=!1,onOpenChange:j,onOpenChangeComplete:m,disablePointerDismissal:n=!1,modal:o=!0,actionsRef:p,handle:q,triggerId:r,defaultTriggerId:s=null}=d,t="alert-dialog"===a,v=f(!0),w={modal:!!t||o,disablePointerDismissal:t||n,nested:null!=v,role:t?"alertdialog":"dialog"},x=(0,u.usePopupRootStore)((a,b)=>new O({open:i,openProp:h,activeTriggerId:s,triggerIdProp:r,...w},a,b),!0);x.useControlledProp("openProp",h),x.useControlledProp("triggerIdProp",r),x.useSyncedValues(w),x.useContextCallback("onOpenChange",j),x.useContextCallback("onOpenChangeComplete",m);let y=x.useState("open"),z=x.useState("mounted"),A=x.useState("payload");(0,u.usePopupRootSync)(x,y),(0,u.useImplicitActiveTrigger)(x);let{forceUnmount:B}=(0,u.useOpenStateTransitions)(y,x);c.useImperativeHandle(p,()=>({unmount:B,close:()=>x.setOpen(!1,(0,k.createChangeEventDetails)(l.REASONS.imperativeAction))}),[B,x]);let C=y||z;return(0,b.jsxs)(e.Provider,{value:x,children:[q&&(0,b.jsx)(u.PopupHandleAttachment,{handle:q,store:x}),C&&(0,b.jsx)(I,{store:x,parentContext:v?.context,isDrawer:"drawer"===a}),"function"==typeof g?g({payload:A}):g]})}("dialog",a)}),S=c.forwardRef(function(a,b){let{render:c,className:d,style:e,children:h,...i}=a,j=r(),k=f(),l=k.useState("open"),m=k.useState("nested"),n=k.useState("transitionStatus"),o=k.useState("nestedOpenDialogCount"),p=k.useState("mounted"),q=k.useStateSetter("viewportElement");return(0,g.useRenderElement)("div",a,{enabled:j||p,state:{open:l,nested:m,transitionStatus:n,nestedDialogOpen:o>0},ref:[b,q],stateAttributesMapping:x,props:[{role:"presentation",hidden:!p,style:{pointerEvents:l?void 0:"none"},children:h},i]})}),T=c.forwardRef(function(a,b){let{render:c,className:d,style:e,id:h,...i}=a,j=f(),k=(0,n.useBaseUiId)(h);return j.useSyncedValueWithCleanup("titleElementId",k),(0,g.useRenderElement)("h2",a,{ref:b,props:[{id:k},i]})});var U=a.i(82204),V=a.i(497151),W=a.i(331973),X=a.i(629752);let Y=(0,D.fastComponentRef)(function(a,b){let{render:e,className:i,style:k,disabled:l=!1,nativeButton:m=!0,id:o,payload:p,handle:q,...r}=a,s=f(!0),t=(0,V.usePopupHandleStore)(q)??s;if(!t)throw Error((0,d.default)(79));let v=(0,n.useBaseUiId)(o),w=t.useState("floatingRootContext"),x=t.useState("isOpenedByTrigger",v),y=t.useState("triggerPopupId",v),z=c.useRef(null),{registerTrigger:A,isMountedByThisTrigger:B}=(0,u.useTriggerDataForwarding)(v,z,t,{payload:p}),{getButtonProps:C,buttonRef:D}=(0,j.useButton)({disabled:l,native:m}),E=(0,W.useClick)(w),F=(0,X.useOpenMethodTriggerProps)(()=>t.select("open"),a=>{t.set("openMethod",a)}),G=t.useState("triggerProps",B);return(0,g.useRenderElement)("button",a,{state:{disabled:l,open:x},ref:[D,b,A,z],props:[E.reference,G,F,{[U.CLICK_TRIGGER_IDENTIFIER]:"",id:v,"aria-haspopup":"dialog","aria-expanded":x,"aria-controls":y},r,C],stateAttributesMapping:h.triggerOpenStateMapping})});var Z=a.i(4675);class $ extends Z.BasePopupHandle{constructor(){super(function(){let a=new M.PopupTriggerMap;return new K.NullStore(Object.freeze(P(void 0,a)),Object.freeze(Q(a)),N)}(),"Dialog",!1)}open(a){this.openByTrigger(a)}openWithPayload(a){let b=this.attachedStore;null===b||(b.set("payload",a),b.setOpen(!0,(0,k.createChangeEventDetails)(l.REASONS.imperativeAction)))}close(){this.closePopup()}get isOpen(){return this.attachedStore?.select("open")??!1}}a.s(["Backdrop",0,i,"Close",0,m,"Description",0,o,"Handle",0,$,"Popup",0,y,"Portal",0,C,"Root",0,R,"Title",0,T,"Trigger",0,Y,"Viewport",0,S,"createHandle",0,function(){return new $}],917953);var _=a.i(917953),_=_,aa=a.i(323251),ab=a.i(340695),ac=a.i(497895);function ad({...a}){return(0,b.jsx)(_.Portal,{"data-slot":"dialog-portal",...a})}function ae({className:a,...c}){return(0,b.jsx)(_.Backdrop,{"data-slot":"dialog-overlay",className:(0,ac.cn)("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",a),...c})}a.s(["Dialog",0,function({...a}){return(0,b.jsx)(_.Root,{"data-slot":"dialog",...a})},"DialogClose",0,function({...a}){return(0,b.jsx)(_.Close,{"data-slot":"dialog-close",...a})},"DialogContent",0,function({className:a,children:c,showCloseButton:d=!0,...e}){return(0,b.jsxs)(ad,{children:[(0,b.jsx)(ae,{}),(0,b.jsxs)(_.Popup,{"data-slot":"dialog-content",className:(0,ac.cn)("fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",a),...e,children:[c,d&&(0,b.jsxs)(_.Close,{"data-slot":"dialog-close",render:(0,b.jsx)(ab.Button,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,b.jsx)(aa.XIcon,{}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"DialogDescription",0,function({className:a,...c}){return(0,b.jsx)(_.Description,{"data-slot":"dialog-description",className:(0,ac.cn)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",a),...c})},"DialogFooter",0,function({className:a,showCloseButton:c=!1,children:d,...e}){return(0,b.jsxs)("div",{"data-slot":"dialog-footer",className:(0,ac.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",a),...e,children:[d,c&&(0,b.jsx)(_.Close,{render:(0,b.jsx)(ab.Button,{variant:"outline"}),children:"Close"})]})},"DialogHeader",0,function({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"dialog-header",className:(0,ac.cn)("flex flex-col gap-2",a),...c})},"DialogPopup",0,function({className:a,...c}){return(0,b.jsx)(_.Popup,{"data-slot":"dialog-popup",className:(0,ac.cn)("outline-none",a),...c})},"DialogPortal",0,ad,"DialogTitle",0,function({className:a,...c}){return(0,b.jsx)(_.Title,{"data-slot":"dialog-title",className:(0,ac.cn)("font-heading text-base leading-none font-medium",a),...c})},"DialogTrigger",0,function({...a}){return(0,b.jsx)(_.Trigger,{"data-slot":"dialog-trigger",...a})}],965733)},950463,a=>{"use strict";var b=a.i(187924),c=a.i(497895);a.s(["Skeleton",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"skeleton",className:(0,c.cn)("animate-pulse rounded-md bg-muted",a),...d})}])},576271,a=>{"use strict";let b=a=>!!a&&"object"==typeof a&&(!0===a.$ok||!1===a.$ok),c=a=>b(a)&&a.$ok;a.s(["isResult",0,b,"isResultOk",0,c,"result",0,{ok:a=>({$ok:!0,data:a}),error:a=>({$ok:!1,message:a})},"unwrapResult",0,a=>{if(!c(a))throw Error(a.message??"Something went wrong");return a.data}])},313237,a=>{"use strict";var b=a.i(572131),c=a.i(864037),d=a.i(497895),e=a.i(576271);let f="Something went wrong";a.s(["useServerAction",0,function(a,g={}){let[h,i]=(0,b.useState)(!1),[j,k]=(0,b.useState)(),[l,m]=(0,b.useState)(),n=(0,b.useRef)(g);n.current=g;let o=(0,b.useRef)(0),p=(0,b.useCallback)(async(...b)=>{let g=++o.current;i(!0);try{let h=await a(...b).catch(a=>e.result.error((0,d.errorToString)(a))),{onOk:i,onError:j,okMessage:l,errorMessage:p}=n.current;if((0,e.isResultOk)(h)){g===o.current&&(k(h.data),m(void 0));let a="function"==typeof l?l(h.data):l;return a&&c.toast.add({type:"success",title:a}),i?.(h.data),h.data}if(g===o.current&&m(h.message??f),!1!==p){let a="function"==typeof p?p(h.message):p??h.message??f;c.toast.add({type:"error",title:a})}throw j?.(h.message),Error(h.message??f)}finally{g===o.current&&i(!1)}},[a]);return[(0,b.useCallback)((...a)=>{let b=p(...a);return b.catch(()=>{}),b},[p]),h,j,l,(0,b.useCallback)(()=>{k(void 0),m(void 0)},[])]}])},150687,a=>{"use strict";var b=a.i(572131),c=a.i(426476),d=a.i(168536),e=a.i(43074),f=a.i(801811),g=a.i(389862),h=a.i(854401),i=a.i(357738),j=a.i(736069),k=a.i(151086),l=a.i(754184),m=a.i(187828),n=a.i(744530),o=a.i(261394),p=a.i(30116),q=a.i(361813),r=a.i(614209),s=a.i(456498),t=a.i(287084),u=a.i(796e3),v=a.i(394552),w=a.i(307436),x=a.i(380362),y=a.i(303889);let z={inert:new WeakMap,"aria-hidden":new WeakMap},A="data-base-ui-inert",B={inert:new WeakSet,"aria-hidden":new WeakSet},C=new WeakMap,D=0,E=(a,b)=>b.map(b=>{if(a.contains(b))return b;let d=function a(b){return b?(0,c.isShadowRoot)(b)?b.host:a(b.parentNode):null}(b);return a.contains(d)?d:null}).filter(a=>null!=a),F=a=>{let b=new Set;return a.forEach(a=>{let c=a;for(;c&&!b.has(c);)b.add(c),c=c.parentNode}),b},G=(a,b,d)=>{let e=[],f=a=>{!a||d.has(a)||Array.from(a.children).forEach(a=>{"script"!==(0,c.getNodeName)(a)&&(b.has(a)?f(a):e.push(a))})};return f(a),e};function H(a,b={}){let{ariaHidden:c=!1,inert:d=!1,mark:e=!0}=b,f=(0,m.ownerDocument)(a[0]).body;return function(a,b,c,d,{mark:e=!0}){let f=null;d?f="inert":c&&(f="aria-hidden");let g=null,h=null,i=E(b,a),j=e?G(b,F(i),new Set(i)):[],k=[],l=[];if(f){let a=z[f],c=B[f];h=c,g=a;let d=E(b,Array.from(b.querySelectorAll("[aria-live]"))),e=i.concat(d);G(b,F(e),new Set(e)).forEach(b=>{let d=b.getAttribute(f),e=null!==d&&"false"!==d,g=(a.get(b)||0)+1;a.set(b,g),k.push(b),1===g&&e&&c.add(b),e||b.setAttribute(f,"inert"===f?"":"true")})}return e&&j.forEach(a=>{let b=(C.get(a)||0)+1;C.set(a,b),l.push(a),1===b&&a.setAttribute(A,"")}),D+=1,()=>{g&&k.forEach(a=>{let b=(g.get(a)||0)-1;g.set(a,b),b||(!h?.has(a)&&f&&a.removeAttribute(f),h?.delete(a))}),e&&l.forEach(a=>{let b=(C.get(a)||0)-1;C.set(a,b),b||a.removeAttribute(A)}),(D-=1)||(z.inert=new WeakMap,z["aria-hidden"]=new WeakMap,B.inert=new WeakSet,B["aria-hidden"]=new WeakSet,C=new WeakMap)}}(a,f,c,d,{mark:e})}var I=a.i(354098),J=a.i(925123),K=a.i(82204),L=a.i(480326),M=a.i(187924);let N=[];function O(){N=N.filter(a=>a.deref()?.isConnected)}function P(a){O(),a&&"body"!==(0,c.getNodeName)(a)&&(N.push(new WeakRef(a)),N.length>20&&(N=N.slice(-20)))}function Q(){return O(),N[N.length-1]?.deref()}function R(a){if(a.hasAttribute("tabindex")&&!a.hasAttribute("data-tabindex")||!a.getAttribute("role")?.includes("dialog"))return;let b=(0,s.focusable)(a).filter(a=>{let b=a.getAttribute("data-tabindex")||"";return(0,s.isTabbable)(a)||a.hasAttribute("data-tabindex")&&!b.startsWith("-")}),c=a.getAttribute("tabindex");0===b.length?"0"!==c&&(a.setAttribute("tabindex","0"),a.setAttribute("data-tabindex","0")):("-1"!==c||a.hasAttribute("data-tabindex")&&"-1"!==a.getAttribute("data-tabindex"))&&(a.setAttribute("tabindex","-1"),a.setAttribute("data-tabindex","-1"))}a.s(["FloatingFocusManager",0,function(a){let{context:z,children:A,disabled:B=!1,initialFocus:C=!0,returnFocus:D=!0,restoreFocus:E=!1,modal:F=!0,closeOnFocusOut:G=!0,openInteractionType:N="",nextFocusableElement:S,previousFocusableElement:T,beforeContentFocusGuardRef:U,externalTree:V,getInsideElements:W}=a,X="rootStore"in z?z.rootStore:z,Y=X.useState("open"),Z=X.useState("domReferenceElement"),$=X.useState("floatingElement"),{events:_,dataRef:aa}=X.context,ab=(0,h.useStableCallback)(()=>aa.current.floatingContext?.nodeId),ac=(0,q.isTypeableCombobox)(Z)&&!1===C,ad=(0,g.useValueAsRef)(C),ae=(0,g.useValueAsRef)(D),af=(0,g.useValueAsRef)(N),ag=(0,g.useValueAsRef)(Y),ah=(0,J.useFloatingTree)(V),ai=(0,I.usePortalContext)(),aj=b.useRef(!1),ak=b.useRef(!1),al=b.useRef(!1),am=b.useRef(null),an=b.useRef(""),ao=b.useRef(""),ap=b.useRef(null),aq=b.useRef(null),ar=(0,f.useMergedRefs)(ap,U,ai?.beforeInsideRef),as=(0,f.useMergedRefs)(aq,ai?.afterInsideRef),at=(0,j.useTimeout)(),au=(0,j.useTimeout)(),av=(0,l.useAnimationFrame)(),aw=null!=ai,ax=(0,q.getFloatingFocusElement)($),ay=(0,h.useStableCallback)((a=ax)=>a?(0,s.tabbable)(a):[]),az=(0,h.useStableCallback)(()=>W?.().filter(a=>null!=a)??[]);b.useEffect(()=>{if(B||!F)return;let a=(0,m.ownerDocument)(ax);return(0,d.addEventListener)(a,"keydown",function(a){"Tab"===a.key&&(0,p.contains)(ax,(0,p.activeElement)((0,m.ownerDocument)(ax)))&&0===ay().length&&!ac&&(0,r.stopEvent)(a)})},[B,ax,F,ac,ay]),b.useEffect(()=>{if(B||!Y)return;let a=(0,m.ownerDocument)(ax);function b(){al.current=!1}return(0,e.mergeCleanups)((0,d.addEventListener)(a,"pointerdown",function(a){let b=(0,p.getTarget)(a),c=az();al.current=!((0,p.contains)($,b)||(0,p.contains)(Z,b)||(0,p.contains)(ai?.portalNode,b)||c.some(a=>a===b||(0,p.contains)(a,b))),ao.current=a.pointerType||"keyboard",b?.closest(`[${K.CLICK_TRIGGER_IDENTIFIER}]`)&&(ak.current=!0,au.start(0,()=>{ak.current=!1}))},!0),(0,d.addEventListener)(a,"pointerup",b,!0),(0,d.addEventListener)(a,"pointercancel",b,!0),(0,d.addEventListener)(a,"keydown",function(){ao.current="keyboard"},!0),b)},[B,$,Z,ax,Y,ai,au,az]),b.useEffect(()=>{if(B||!G)return;let a=(0,m.ownerDocument)(ax);function b(b){let d=b.relatedTarget,e=b.currentTarget,f=(0,p.getTarget)(b);F&&null==d&&null!=f&&(0,p.contains)($,f)&&P(f),queueMicrotask(()=>{let g=ab(),h=X.context.triggerElements,i=az(),j=d?.hasAttribute((0,x.createAttribute)("focus-guard"))&&[ap.current,aq.current,ai?.beforeInsideRef.current,ai?.afterInsideRef.current,ai?.beforeOutsideRef.current,ai?.afterOutsideRef.current,(0,L.resolveRef)(T),(0,L.resolveRef)(S)].includes(d),k=!((0,p.contains)(Z,d)||(0,p.contains)($,d)||(0,p.contains)(d,$)||(0,p.contains)(ai?.portalNode,d)||i.some(a=>a===d||(0,p.contains)(a,d))||h.hasMatchingElement(a=>(0,p.contains)(a,d))||j||ah&&((0,t.getNodeChildren)(ah.nodesRef.current,g).find(a=>(0,p.contains)(a.context?.elements.floating,d)||(0,p.contains)(a.context?.elements.domReference,d))||(0,t.getNodeAncestors)(ah.nodesRef.current,g).find(a=>[a.context?.elements.floating,(0,q.getFloatingFocusElement)(a.context?.elements.floating)].includes(d)||a.context?.elements.domReference===d)));if(e===Z&&ax&&R(ax),E&&e!==Z&&!(0,u.isElementVisible)(f)&&(0,p.activeElement)(a)===a.body){if((0,c.isHTMLElement)(ax)&&(ax.focus(),"popup"===E))return void av.request(()=>{ax.focus()});let a=ay(),b=am.current,d=(b&&a.includes(b)?b:null)||a[a.length-1]||ax;(0,c.isHTMLElement)(d)&&d.focus()}if(aa.current.insideReactTree){aa.current.insideReactTree=!1;return}(ac||!F)&&d&&k&&!ak.current&&(ac||d!==Q())&&(aj.current=!0,X.setOpen(!1,(0,v.createChangeEventDetails)(w.REASONS.focusOut,b)))})}let f=(0,c.isHTMLElement)(Z)?Z:null;if($||f)return(0,e.mergeCleanups)(f&&(0,d.addEventListener)(f,"focusout",b),f&&(0,d.addEventListener)(f,"pointerdown",function(){ak.current=!0,au.start(0,()=>{ak.current=!1})}),$&&(0,d.addEventListener)($,"focusin",function(a){let b=(0,p.getTarget)(a);(0,s.isTabbable)(b)&&(am.current=b)}),$&&(0,d.addEventListener)($,"focusout",b),$&&ai&&(0,d.addEventListener)($,"focusout",function(){al.current||(aa.current.insideReactTree=!0,at.start(0,()=>{aa.current.insideReactTree=!1}))},!0))},[B,Z,$,ax,F,ah,ai,X,G,E,ay,ac,ab,aa,at,au,av,S,T,az]),b.useEffect(()=>{if(B||!$||!Y)return;let a=Array.from(ai?.portalNode?.querySelectorAll(`[${(0,x.createAttribute)("portal")}]`)||[]),b=ah?(0,t.getNodeAncestors)(ah.nodesRef.current,ab()):[],c=b.find(a=>(0,q.isTypeableCombobox)(a.context?.elements.domReference||null))?.context?.elements.domReference,d=H([$,...a,ap.current,aq.current,ai?.beforeOutsideRef.current,ai?.afterOutsideRef.current,...az(),c,(0,L.resolveRef)(T),(0,L.resolveRef)(S),ac?Z:null].filter(a=>null!=a),{ariaHidden:F||ac,mark:!1}),e=H([$,...a].filter(a=>null!=a));return()=>{e(),d()}},[Y,B,Z,$,F,ai,ac,ah,ab,S,T,az]),(0,i.useIsoLayoutEffect)(()=>{if(!Y||B||!(0,c.isHTMLElement)(ax))return;an.current="",ao.current="";let a=(0,m.ownerDocument)(ax),b=(0,p.activeElement)(a);queueMicrotask(()=>{let c,d=ad.current,e="function"==typeof d?d(af.current||""):d;if(void 0===e||!1===e||(0,p.contains)(ax,b))return;let f=null,g=()=>(null==f&&(f=ay(ax)),f[0]||ax);c=(c=!0===e||null===e?g():(0,L.resolveRef)(e))||g();let h=(0,p.contains)(ax,(0,p.activeElement)(a));(0,y.enqueueFocus)(c,{preventScroll:c===ax,shouldFocus(){if(!ag.current)return!1;if(h)return!0;let b=(0,p.activeElement)(a);return!(b!==c&&(0,p.contains)(ax,b))}})})},[B,Y,ax,ay,ad,af,ag]),(0,i.useIsoLayoutEffect)(()=>{if(B||!ax)return;let a=(0,m.ownerDocument)(ax),b=(0,p.activeElement)(a),d=null==af.current;function e(a){var b,c;let d;if(a.open||(b=a.nativeEvent,c=ao.current,d=(0,n.ownerWindow)((0,p.getTarget)(b)),an.current=b instanceof d.KeyboardEvent?"keyboard":b instanceof d.FocusEvent?c||"keyboard":"pointerType"in b?b.pointerType||"keyboard":"touches"in b?"touch":b instanceof d.MouseEvent?c||(0===b.detail?"keyboard":"mouse"):""),a.reason===w.REASONS.triggerHover&&"mouseleave"===a.nativeEvent.type&&(aj.current=!0),a.reason===w.REASONS.outsidePress)if(a.nested)aj.current=!1;else if((0,r.isVirtualClick)(a.nativeEvent)||(0,r.isVirtualPointerEvent)(a.nativeEvent))aj.current=!1;else{let a=!1;(0,m.ownerDocument)(ax).createElement("div").focus({get preventScroll(){return a=!0,!1}}),a?aj.current=!1:aj.current=!0}}return P(b),_.on("openchange",e),()=>{_.off("openchange",e);let f=(0,p.activeElement)(a),g=az(),h=(0,p.contains)($,f)||g.some(a=>a===f||(0,p.contains)(a,f))||ah&&(0,t.getNodeChildren)(ah.nodesRef.current,ab(),!1).some(a=>(0,p.contains)(a.context?.elements.floating,f)),i=ae.current,j=an.current,k=function(a){let e=ae.current,f="function"==typeof e?e(a):e;if(void 0===f||!1===f)return null;null===f&&(f=!0);let g=Z?.isConnected?Z:null,h=b?.isConnected&&"body"!==(0,c.getNodeName)(b)?b:null,i=d?h||g:g||h;return(i||(i=Q()||null),"boolean"==typeof f)?i:(0,L.resolveRef)(f)||i||null}(j);queueMicrotask(()=>{let b=k?(0,s.isTabbable)(k)?k:(0,s.tabbable)(k)[0]||k:null;if(i&&!aj.current&&(0,c.isHTMLElement)(b)&&("boolean"!=typeof i||b===f||f===a.body||h)){let a={preventScroll:!0};"keyboard"===j&&(a.focusVisible=!0),b.focus(a)}aj.current=!1})}},[B,$,ax,ae,af,_,ah,Z,ab,az]),(0,i.useIsoLayoutEffect)(()=>{if(!k.platform.engine.webkit||Y||!$)return;let a=(0,p.activeElement)((0,m.ownerDocument)($));(0,c.isHTMLElement)(a)&&(0,q.isTypeableElement)(a)&&(0,p.contains)($,a)&&a.blur()},[Y,$]),(0,i.useIsoLayoutEffect)(()=>{if(!B&&ai)return ai.setFocusManagerState({modal:F,closeOnFocusOut:G,open:Y,onOpenChange:X.setOpen,domReference:Z}),()=>{ai.setFocusManagerState(null)}},[B,ai,F,Y,X,G,Z]),(0,i.useIsoLayoutEffect)(()=>{if(!B&&ax)return R(ax),()=>{queueMicrotask(O)}},[B,ax]);let aA=!B&&(!F||!ac)&&(aw||F);return(0,M.jsxs)(b.Fragment,{children:[aA&&(0,M.jsx)(o.FocusGuard,{"data-type":"inside",ref:ar,onFocus:a=>{if(F){let a=ay();(0,y.enqueueFocus)(a[a.length-1])}else if(ai?.portalNode)if(aj.current=!1,(0,s.isOutsideEvent)(a,ai.portalNode)){let a=(0,s.getNextTabbable)(Z);a?.focus()}else(0,L.resolveRef)(T??ai.beforeOutsideRef)?.focus()}}),A,aA&&(0,M.jsx)(o.FocusGuard,{"data-type":"inside",ref:as,onFocus:a=>{if(F)(0,y.enqueueFocus)(ay()[0]);else if(ai?.portalNode)if(G&&(aj.current=!0),(0,s.isOutsideEvent)(a,ai.portalNode)){let a=(0,s.getPreviousTabbable)(Z);a?.focus()}else(0,L.resolveRef)(S??ai.afterOutsideRef)?.focus()}})]})}],150687)},331973,a=>{"use strict";var b=a.i(572131),c=a.i(754184),d=a.i(736069),e=a.i(524715),f=a.i(30116),g=a.i(361813),h=a.i(614209),i=a.i(394552),j=a.i(307436);a.s(["useClick",0,function(a,k={}){let{enabled:l=!0,event:m="click",toggle:n=!0,ignoreMouse:o=!1,stickIfOpen:p=!0,touchOpenDelay:q=0,reason:r=j.REASONS.triggerPress}=k,s="rootStore"in a?a.rootStore:a,t=s.context.dataRef,u=b.useRef(void 0),v=(0,c.useAnimationFrame)(),w=(0,d.useTimeout)(),x=b.useMemo(()=>{function a(a,b,c,d){let e=(0,i.createChangeEventDetails)(r,b,c);a&&"touch"===d&&q>0?w.start(q,()=>{s.setOpen(!0,e)}):s.setOpen(a,e)}function b(a,b,c){let d=t.current.openEvent,e=s.select("domReferenceElement")!==b;return!!a&&!!e||!a||!n||!!d&&!!p&&!c(d.type)}return{onPointerDown(a){u.current=(0,h.isMouseLikePointerType)(a.pointerType,!0)&&(0,h.isVirtualPointerEvent)(a.nativeEvent)?"virtual":a.pointerType},onMouseDown(c){let d=u.current,e=c.nativeEvent,i=s.select("open");if(0!==c.button||"click"===m||(0,h.isMouseLikePointerType)(d,!0)&&o)return;let j=b(i,c.currentTarget,a=>"click"===a||"mousedown"===a),k=(0,f.getTarget)(e);if((0,g.isTypeableElement)(k))return void a(j,e,k,d);let l=c.currentTarget;v.request(()=>{a(j,e,l,d)})},onClick(c){if("mousedown-only"===m)return;let d=u.current;if("mousedown"===m&&d){u.current=void 0;return}(0,h.isMouseLikePointerType)(d,!0)&&o||a(b(s.select("open"),c.currentTarget,a=>"click"===a||"mousedown"===a||"keydown"===a||"keyup"===a),c.nativeEvent,c.currentTarget,d)},onKeyDown(){u.current=void 0}}},[t,m,o,r,s,p,n,v,w,q]);return b.useMemo(()=>l?{reference:x}:e.EMPTY_OBJECT,[l,x])}])},138939,a=>{"use strict";var b=a.i(572131),c=a.i(168536),d=a.i(43074),e=a.i(187828),f=a.i(854401),g=a.i(736069),h=a.i(426476),i=a.i(151086),j=a.i(925123),k=a.i(394552),l=a.i(307436),m=a.i(380362),n=a.i(30116),o=a.i(361813),p=a.i(614209),q=a.i(287084);function r(){return!1}a.s(["useDismiss",0,function(a,s={}){let{enabled:t=!0,escapeKey:u=!0,outsidePress:v=!0,outsidePressEvent:w="sloppy",referencePress:x=r,bubbles:y,externalTree:z}=s,A="rootStore"in a?a.rootStore:a,B=A.useState("open"),C=A.useState("floatingElement"),{dataRef:D,events:E}=A.context,F=(0,j.useFloatingTree)(z),G=(0,f.useStableCallback)("function"==typeof v?v:()=>!1),H="function"==typeof v?G:v,I=!1!==H,J=(0,f.useStableCallback)(()=>w),{escapeKey:K,outsidePress:L}={escapeKey:"boolean"==typeof y?y:y?.escapeKey??!1,outsidePress:"boolean"==typeof y?y:y?.outsidePress??!0},M=b.useRef(!1),N=b.useRef(!1),O=b.useRef(!1),P=b.useRef(!1),Q=b.useRef(!1),R=b.useRef(""),S=b.useRef(null),T=(0,g.useTimeout)(),U=(0,g.useTimeout)(),V=(0,f.useStableCallback)(()=>{U.clear(),D.current.insideReactTree=!1}),W=(0,f.useStableCallback)(a=>{let b=D.current.floatingContext?.nodeId;return(F?(0,q.getNodeChildren)(F.nodesRef.current,b):[]).some(b=>b.context?.open&&!b.context.dataRef.current[a])}),X=(0,f.useStableCallback)(a=>(0,o.isEventTargetWithin)(a,A.select("floatingElement"))||(0,o.isEventTargetWithin)(a,A.select("domReferenceElement"))),Y=(0,f.useStableCallback)(a=>{x()&&A.setOpen(!1,(0,k.createChangeEventDetails)(l.REASONS.triggerPress,a.nativeEvent))}),Z=(0,f.useStableCallback)(a=>{if(!B||!t||!u||"Escape"!==a.key||Q.current||!K&&W("__escapeKeyBubbles"))return;let b=(0,p.isReactEvent)(a)?a.nativeEvent:a,c=(0,k.createChangeEventDetails)(l.REASONS.escapeKey,b);A.setOpen(!1,c),c.isCanceled||a.preventDefault(),K||c.isPropagationAllowed||a.stopPropagation()}),$=(0,f.useStableCallback)(()=>{D.current.insideReactTree=!0,U.start(0,V)}),_=(0,f.useStableCallback)(a=>{if(!B||!t||0!==a.button)return;let b=(0,n.getTarget)(a.nativeEvent);(0,n.contains)(A.select("floatingElement"),b)&&(M.current||(M.current=!0,N.current=!1))}),aa=(0,f.useStableCallback)(a=>{!B||!t||(a.defaultPrevented||a.nativeEvent.defaultPrevented)&&M.current&&(N.current=!0)});b.useEffect(()=>{function a(a){a.open||(P.current=!1)}return E.on("openchange",a),()=>{E.off("openchange",a)}},[E]),b.useEffect(()=>{if(!B||!t)return B||(P.current=!1),V;D.current.__escapeKeyBubbles=K,D.current.__outsidePressBubbles=L;let a=new g.Timeout,b=new g.Timeout,f=(0,e.ownerDocument)(C);function j(){O.current=!0,b.start(0,()=>{O.current=!1})}function r(){M.current=!1,N.current=!1}function s(){let a=R.current,b=J(),c="function"==typeof b?b():b;return"string"==typeof c?c:c["pen"!==a&&a?a:"mouse"]}function v(a){let b=D.current.floatingContext?.nodeId,c=F&&(0,q.getNodeChildren)(F.nodesRef.current,b).some(b=>(0,o.isEventTargetWithin)(a,b.context?.elements.floating));return X(a)||c}function w(a){let c;if("intentional"===(c=s())&&"click"!==a.type||"sloppy"===c&&"click"===a.type){"click"===a.type||X(a)||(b.clear(),O.current=!1),V();return}if(D.current.insideReactTree)return void V();let d=(0,n.getTarget)(a),f=`[${(0,m.createAttribute)("inert")}]`,g=(0,h.isElement)(d)?d.getRootNode():null,i=Array.from(((0,h.isShadowRoot)(g)?g:(0,e.ownerDocument)(A.select("floatingElement"))).querySelectorAll(f)),j=A.context.triggerElements;if(d&&(j.hasElement(d)||j.hasMatchingElement(a=>(0,n.contains)(a,d))))return;let q=(0,h.isElement)(d)?d:null;for(;q&&!(0,h.isLastTraversableNode)(q);){let a=(0,h.getParentNode)(q);if((0,h.isLastTraversableNode)(a)||!(0,h.isElement)(a))break;q=a}if(!(i.length&&(0,h.isElement)(d)&&!(0,o.isRootElement)(d)&&!(0,n.contains)(d,A.select("floatingElement"))&&i.every(a=>!(0,n.contains)(q,a)))){if((0,h.isHTMLElement)(d)&&!("touches"in a)){let b=(0,h.isLastTraversableNode)(d),c=(0,h.getComputedStyle)(d),e=/auto|scroll/,f=b||e.test(c.overflowX),g=b||e.test(c.overflowY),i=f&&d.clientWidth>0&&d.scrollWidth>d.clientWidth,j=g&&d.clientHeight>0&&d.scrollHeight>d.clientHeight,k="rtl"===c.direction,l=j&&(k?a.offsetX<=d.offsetWidth-d.clientWidth:a.offsetX>d.clientWidth),m=i&&a.offsetY>d.clientHeight;if(l||m)return}if(!v(a)){if("intentional"===s()){if(0!==a.detail&&!(0,p.isVirtualClick)(a)&&!P.current)return;if(O.current){b.clear(),O.current=!1;return}}"function"==typeof H&&!H(a)||W("__outsidePressBubbles")||(A.setOpen(!1,(0,k.createChangeEventDetails)(l.REASONS.outsidePress,a)),V())}}}function x(a){if("sloppy"!==s()||!A.select("open")||!t||X(a))return;let b=a.touches[0];b&&(S.current={startTime:Date.now(),startX:b.clientX,startY:b.clientY,dismissOnTouchEnd:!1,dismissOnMouseDown:!0},T.start(1e3,()=>{S.current&&(S.current.dismissOnTouchEnd=!1,S.current.dismissOnMouseDown=!1)}))}function y(a,b){let d=(0,n.getTarget)(a);if(!d)return;let e=(0,c.addEventListener)(d,a.type,()=>{b(a),e()})}function z(a){T.clear(),"pointerdown"===a.type&&(0===a.button&&(P.current=!0),R.current=a.pointerType),("mousedown"!==a.type||!S.current||S.current.dismissOnMouseDown)&&y(a,a=>{if("pointerdown"===a.type)"sloppy"!==s()||"touch"===a.pointerType||!A.select("open")||!t||X(a)||w(a);else w(a)})}function E(a){if("pointercancel"===a.type&&(P.current=!1),!M.current)return;let c=N.current;if(r(),"intentional"===s()){if("pointercancel"===a.type){c&&j();return}v(a)||(c?j():("function"!=typeof H||H(a))&&(b.clear(),O.current=!0,V()))}}function G(a){if("sloppy"!==s()||!S.current||X(a))return;let b=a.touches[0];if(!b)return;let c=Math.abs(b.clientX-S.current.startX),d=Math.abs(b.clientY-S.current.startY),e=Math.sqrt(c*c+d*d);e>5&&(S.current.dismissOnTouchEnd=!0),e>10&&(w(a),T.clear(),S.current=null)}function U(a){"sloppy"!==s()||!S.current||X(a)||(S.current.dismissOnTouchEnd&&w(a),T.clear(),S.current=null)}let Y=(0,d.mergeCleanups)(u&&(0,d.mergeCleanups)((0,c.addEventListener)(f,"keydown",Z),(0,c.addEventListener)(f,"compositionstart",function(){a.clear(),Q.current=!0}),(0,c.addEventListener)(f,"compositionend",function(){a.start(5*!!i.platform.engine.webkit,()=>{Q.current=!1})})),I&&(0,d.mergeCleanups)((0,c.addEventListener)(f,"click",z,!0),(0,c.addEventListener)(f,"pointerdown",z,!0),(0,c.addEventListener)(f,"pointerup",E,!0),(0,c.addEventListener)(f,"pointercancel",E,!0),(0,c.addEventListener)(f,"mousedown",z,!0),(0,c.addEventListener)(f,"mouseup",E,!0),(0,c.addEventListener)(f,"touchstart",function(a){R.current="touch",y(a,x)},{capture:!0,passive:!0}),(0,c.addEventListener)(f,"touchmove",function(a){y(a,G)},{capture:!0,passive:!0}),(0,c.addEventListener)(f,"touchend",function(a){y(a,U)},{capture:!0,passive:!0})));return()=>{Y(),a.clear(),b.clear(),r(),O.current=!1,V()}},[D,C,u,I,H,B,t,K,L,Z,V,J,W,X,F,A,T]);let ab=b.useMemo(()=>({onKeyDown:Z,onPointerDown:Y,onClick:Y}),[Z,Y]),ac=b.useMemo(()=>({onKeyDown:Z,onPointerDown:aa,onMouseDown:aa,onClickCapture:$,onMouseDownCapture(a){$(),_(a)},onPointerDownCapture(a){$(),_(a)},onMouseUpCapture:$,onTouchEndCapture:$,onTouchMoveCapture:$}),[Z,$,_,aa]);return b.useMemo(()=>t?{reference:ab,floating:ac,trigger:ab}:{},[t,ab,ac])}])},303889,a=>{"use strict";var b=a.i(524715);let c=0;a.s(["enqueueFocus",0,function(a,d={}){let{preventScroll:e=!1,sync:f=!1,shouldFocus:g}=d;function h(){(!g||g())&&a?.focus({preventScroll:e})}if(cancelAnimationFrame(c),f)return h(),b.NOOP;let i=requestAnimationFrame(h);return c=i,()=>{c===i&&(cancelAnimationFrame(i),c=0)}}])},287084,a=>{"use strict";a.s(["getNodeAncestors",0,function(a,b){let c=[],d=a.find(a=>a.id===b)?.parentId;for(;d;){let b=a.find(a=>a.id===d);d=b?.parentId,b&&(c=c.concat(b))}return c},"getNodeChildren",0,function a(b,c,d=!0){return b.filter(a=>a.parentId===c).flatMap(c=>[...!d||c.context?.open?[c]:[],...a(b,c.id,d)])}])},669649,a=>{"use strict";var b=a.i(426476);let c="ArrowUp",d="ArrowDown",e="ArrowLeft",f="ArrowRight",g="Home",h=new Set([c,d,e,f,g,"End"]),i="Shift",j=[i,"Control","Alt","Meta"];function k(a,b,c){let d="left"===c?"offsetLeft":"offsetTop",e=0;for(;b.offsetParent&&(e+=b[d],b.offsetParent!==a);)b=b.offsetParent;return e}function l(a){let b=getComputedStyle(a);return{scrollMarginTop:parseFloat(b.scrollMarginTop)||0,scrollMarginRight:parseFloat(b.scrollMarginRight)||0,scrollMarginBottom:parseFloat(b.scrollMarginBottom)||0,scrollMarginLeft:parseFloat(b.scrollMarginLeft)||0,scrollPaddingTop:parseFloat(b.scrollPaddingTop)||0,scrollPaddingRight:parseFloat(b.scrollPaddingRight)||0,scrollPaddingBottom:parseFloat(b.scrollPaddingBottom)||0,scrollPaddingLeft:parseFloat(b.scrollPaddingLeft)||0}}a.s(["ARROW_DOWN",0,d,"ARROW_LEFT",0,e,"ARROW_RIGHT",0,f,"ARROW_UP",0,c,"COMPOSITE_KEYS",0,h,"END",0,"End","HOME",0,g,"MODIFIER_KEYS",0,j,"SHIFT",0,i,"isNativeInput",0,function(a){return!!((0,b.isHTMLElement)(a)&&"INPUT"===a.tagName&&null!=a.selectionStart||(0,b.isHTMLElement)(a)&&"TEXTAREA"===a.tagName)},"scrollIntoViewIfNeeded",0,function(a,b,c,d){if(!a||!b||!b.scrollTo)return;let e=a.scrollLeft,f=a.scrollTop,g=a.clientWidth<a.scrollWidth,h=a.clientHeight<a.scrollHeight;if(g&&"vertical"!==d){let d=k(a,b,"left"),f=l(a),g=l(b);"ltr"===c&&(d+b.offsetWidth+g.scrollMarginRight>a.scrollLeft+a.clientWidth-f.scrollPaddingRight?e=d+b.offsetWidth+g.scrollMarginRight-a.clientWidth+f.scrollPaddingRight:d-g.scrollMarginLeft<a.scrollLeft+f.scrollPaddingLeft&&(e=d-g.scrollMarginLeft-f.scrollPaddingLeft)),"rtl"===c&&(d-g.scrollMarginLeft<a.scrollLeft+f.scrollPaddingLeft?e=d-g.scrollMarginLeft-f.scrollPaddingLeft:d+b.offsetWidth+g.scrollMarginRight>a.scrollLeft+a.clientWidth-f.scrollPaddingRight&&(e=d+b.offsetWidth+g.scrollMarginRight-a.clientWidth+f.scrollPaddingRight))}if(h&&"horizontal"!==d){let c=k(a,b,"top"),d=l(a),e=l(b);c-e.scrollMarginTop<a.scrollTop+d.scrollPaddingTop?f=c-e.scrollMarginTop-d.scrollPaddingTop:c+b.offsetHeight+e.scrollMarginBottom>a.scrollTop+a.clientHeight-d.scrollPaddingBottom&&(f=c+b.offsetHeight+e.scrollMarginBottom-a.clientHeight+d.scrollPaddingBottom)}a.scrollTo({left:e,top:f,behavior:"auto"})}])},300557,a=>{"use strict";var b=a.i(329275);a.s(["useBaseUiId",0,function(a){return(0,b.useId)(a,"base-ui")}])},348250,a=>{"use strict";var b=a.i(572131),c=a.i(357738),d=a.i(754184);a.s(["useTransitionStatus",0,function(a,e=!1,f=!1,g=!1){let[h,i]=b.useState(a&&e?"idle":void 0),[j,k]=b.useState(a&&!g);return a&&!j&&(k(!0),i("starting")),a||!j||"ending"===h||f||i("ending"),a||j||"ending"!==h||i(void 0),(0,c.useIsoLayoutEffect)(()=>{if(!a&&j&&"ending"!==h&&f){let a=d.AnimationFrame.request(()=>{i("ending")});return()=>{d.AnimationFrame.cancel(a)}}},[a,j,h,f]),(0,c.useIsoLayoutEffect)(()=>{if(!a||e)return;let b=d.AnimationFrame.request(()=>{i(void 0)});return()=>{d.AnimationFrame.cancel(b)}},[e,a]),(0,c.useIsoLayoutEffect)(()=>{if(!a||!e)return;a&&j&&"idle"!==h&&i("starting");let b=d.AnimationFrame.request(()=>{i("idle")});return()=>{d.AnimationFrame.cancel(b)}},[e,a,j,h]),{mounted:j,setMounted:k,transitionStatus:h}}])},964072,a=>{"use strict";var b=a.i(572131),c=a.i(357738),d=a.i(854401);a.s(["useValueChanged",0,function(a,e){let f=b.useRef(a),g=(0,d.useStableCallback)(e);(0,c.useIsoLayoutEffect)(()=>{f.current!==a&&g(f.current),f.current=a},[a,g])}])},330076,113259,a=>{"use strict";var b=a.i(572131),c=a.i(187924);let d=b.forwardRef(function(a,b){let d,{cutout:e,...f}=a;if(e){let a=e.getBoundingClientRect();d=`polygon(0% 0%,100% 0%,100% 100%,0% 100%,0% 0%,${a.left}px ${a.top}px,${a.left}px ${a.bottom}px,${a.right}px ${a.bottom}px,${a.right}px ${a.top}px,${a.left}px ${a.top}px)`}return(0,c.jsx)("div",{ref:b,role:"presentation","data-base-ui-inert":"",...f,style:{position:"fixed",inset:0,userSelect:"none",WebkitUserSelect:"none",clipPath:d}})});a.s(["InternalBackdrop",0,d],330076);var e=a.i(426476),f=a.i(168536),g=a.i(151086),h=a.i(187828),i=a.i(744530),j=a.i(357738),k=a.i(736069),l=a.i(754184);let m={},n={},o="";function p(a,b){return(0,e.isOverflowElement)(a)?a:b}function q(a,b,c){return/hidden|clip/.test(a.getComputedStyle(p(b,c)).overflowY)}class r{lockCount=0;restore=null;timeoutLock=k.Timeout.create();timeoutUnlock=k.Timeout.create();acquire(a){return this.lockCount+=1,1===this.lockCount&&null===this.restore&&this.timeoutLock.start(0,()=>this.lock(a)),this.release}release=()=>{this.lockCount-=1,0===this.lockCount&&this.restore&&this.timeoutUnlock.start(0,this.unlock)};unlock=()=>{0===this.lockCount&&this.restore&&(this.restore?.(),this.restore=null)};lock(a){let b,c,d;if(0===this.lockCount||null!==this.restore)return;let e=(0,h.ownerDocument)(a),j=e.documentElement,k=e.body,r=(0,i.ownerWindow)(j);if(q(r,j,k)){let b=new r.MutationObserver(()=>{q(r,j,k)||(b.disconnect(),this.restore=null,this.lock(a))}),c={attributes:!0};b.observe(j,c),b.observe(k,c),this.restore=()=>b.disconnect();return}let s=g.platform.os.ios||!function(a){if("u"<typeof document)return!1;let b=(0,h.ownerDocument)(a);return(0,i.ownerWindow)(b).innerWidth-b.documentElement.clientWidth>0}(a);this.restore=s?(d={overflowY:(c=p((b=(0,h.ownerDocument)(a)).documentElement,b.body)).style.overflowY,overflowX:c.style.overflowX},Object.assign(c.style,{overflowY:"hidden",overflowX:"hidden"}),()=>{Object.assign(c.style,d)}):function(a){let b=(0,h.ownerDocument)(a),c=b.documentElement,d=b.body,e=(0,i.ownerWindow)(c),j=0,k=0,q=!1,r=l.AnimationFrame.create();if(g.platform.engine.webkit&&(e.visualViewport?.scale??1)!==1)return()=>{};function s(){let b=e.getComputedStyle(c),f=e.getComputedStyle(d),g=(b.scrollbarGutter||"").includes("both-edges")?"stable both-edges":"stable";j=c.scrollTop,k=c.scrollLeft,m={scrollbarGutter:c.style.scrollbarGutter,overflowY:c.style.overflowY,overflowX:c.style.overflowX},o=c.style.scrollBehavior,n={position:d.style.position,height:d.style.height,width:d.style.width,boxSizing:d.style.boxSizing,overflowY:d.style.overflowY,overflowX:d.style.overflowX,scrollBehavior:d.style.scrollBehavior};let i=c.scrollHeight>c.clientHeight,l=c.scrollWidth>c.clientWidth,r="scroll"===b.overflowY||"scroll"===f.overflowY,s="scroll"===b.overflowX||"scroll"===f.overflowX,t=Math.max(0,e.innerWidth-d.clientWidth),u=Math.max(0,e.innerHeight-d.clientHeight),v=parseFloat(f.marginTop)+parseFloat(f.marginBottom),w=parseFloat(f.marginLeft)+parseFloat(f.marginRight),x=p(c,d);if(q=function(a){if(!("u">typeof CSS&&CSS.supports&&CSS.supports("scrollbar-gutter","stable"))||"u"<typeof document)return!1;let b=(0,h.ownerDocument)(a),c=b.documentElement,d=p(c,b.body),e=d.style.overflowY,f=c.style.scrollbarGutter;c.style.scrollbarGutter="stable",d.style.overflowY="scroll";let g=d.offsetWidth;d.style.overflowY="hidden";let i=d.offsetWidth;return d.style.overflowY=e,c.style.scrollbarGutter=f,g===i}(a)){c.style.scrollbarGutter=g,x.style.overflowY="hidden",x.style.overflowX="hidden";return}Object.assign(c.style,{scrollbarGutter:g,overflowY:"hidden",overflowX:"hidden"}),(i||r)&&(c.style.overflowY="scroll"),(l||s)&&(c.style.overflowX="scroll"),Object.assign(d.style,{position:"relative",height:v||u?`calc(100dvh - ${v+u}px)`:"100dvh",width:w||t?`calc(100vw - ${w+t}px)`:"100vw",boxSizing:"border-box",overflowY:"hidden",overflowX:"hidden",scrollBehavior:"unset"}),d.scrollTop=j,d.scrollLeft=k,c.setAttribute("data-base-ui-scroll-locked",""),c.style.scrollBehavior="unset"}function t(){Object.assign(c.style,m),Object.assign(d.style,n),q||(c.scrollTop=j,c.scrollLeft=k,c.removeAttribute("data-base-ui-scroll-locked"),c.style.scrollBehavior=o)}s();let u=(0,f.addEventListener)(e,"resize",function(){t(),r.request(s)});return()=>{r.cancel(),t(),"function"==typeof e.removeEventListener&&u()}}(a)}}let s=new r;a.s(["useScrollLock",0,function(a=!0,b=null){(0,j.useIsoLayoutEffect)(()=>{if(a)return s.acquire(b)},[a,b])}],113259)},14239,717017,497151,4675,a=>{"use strict";var b=a.i(417498);class c extends b.ReactStore{setState(a){}update(a){}set(a,b){}notifyAll(){}}a.s(["NullStore",0,c],14239);var d=a.i(524715),e=a.i(694368);let f=a=>a.triggerIdProp??a.activeTriggerId,g=a=>a.openProp??a.open,h=a=>(a.popupElement?.id??a.floatingId)||void 0;function i(a,b){return void 0!==b&&g(a)&&f(a)===b}a.s(["createInitialPopupStoreState",0,function(a,b,c=!1){return{open:!1,openProp:void 0,mounted:!1,transitionStatus:void 0,floatingRootContext:new e.FloatingRootStore({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:a,floatingId:b,syncOnly:!0,nested:c,onOpenChange:void 0}),floatingId:b,triggerCount:0,preventUnmountingOnClose:!1,payload:void 0,activeTriggerId:null,activeTriggerElement:null,triggerIdProp:void 0,popupElement:null,positionerElement:null,activeTriggerProps:d.EMPTY_OBJECT,inactiveTriggerProps:d.EMPTY_OBJECT,popupProps:d.EMPTY_OBJECT}},"popupStoreSelectors",0,{open:g,mounted:a=>a.mounted,transitionStatus:a=>a.transitionStatus,floatingRootContext:a=>a.floatingRootContext,triggerCount:a=>a.triggerCount,preventUnmountingOnClose:a=>a.preventUnmountingOnClose,payload:a=>a.payload,activeTriggerId:f,activeTriggerElement:a=>a.mounted?a.activeTriggerElement:null,popupId:h,isTriggerActive:(a,b)=>void 0!==b&&f(a)===b,isOpenedByTrigger:(a,b)=>i(a,b),isMountedByTrigger:(a,b)=>void 0!==b&&f(a)===b&&a.mounted,triggerProps:(a,b)=>b?a.activeTriggerProps:a.inactiveTriggerProps,triggerPopupId:(a,b)=>i(a,b)||void 0!==b&&g(a)&&null==f(a)&&1===a.triggerCount?h(a):void 0,popupProps:a=>a.popupProps,popupElement:a=>a.popupElement,positionerElement:a=>a.positionerElement}],717017);var j=a.i(572131),k=a.i(487610);a.s(["usePopupHandleStore",0,function(a){let b=j.useCallback(b=>void 0===a?d.NOOP:a.subscribeStore(b),[a]),c=j.useCallback(()=>void 0===a?void 0:a.store,[a]);return(0,k.useSyncExternalStore)(b,c,()=>a?.serverStore)}],497151);var l=a.i(854662),m=a.i(394552),n=a.i(307436);class o{attachedStores=[];attachedStoreValue=null;storeListeners=new Set;constructor(a,b,c=!0){this.fallbackStore=a,this.componentName=b,this.throwOnMissingTrigger=c}get attachedStore(){return this.attachedStoreValue}get store(){return this.attachedStoreValue??this.fallbackStore}get serverStore(){return this.fallbackStore}subscribeStore(a){return this.storeListeners.add(a),()=>{this.storeListeners.delete(a)}}attachStore(a){return this.attachedStores.push(a),this.setActiveStore(a),()=>{let b=this.attachedStores.lastIndexOf(a);-1!==b&&this.attachedStores.splice(b,1),this.setActiveStore(this.attachedStores[this.attachedStores.length-1]??null)}}setActiveStore(a){this.attachedStoreValue!==a&&(this.attachedStoreValue=a,this.storeListeners.forEach(a=>{a()}))}openByTrigger(a){let b,c=this.attachedStore;if(null!==c){if(a){for(let c=this.attachedStores.length-1;c>=0&&!b;c-=1)b=this.attachedStores[c].context.triggerElements.getById(a);b??=this.fallbackStore.context.triggerElements.getById(a)}if(a&&!b&&this.throwOnMissingTrigger)throw Error((0,l.default)(99,this.componentName,a,this.componentName));c.setOpen(!0,(0,m.createChangeEventDetails)(n.REASONS.imperativeAction,void 0,b))}}closePopup(){let a=this.attachedStore;null===a||a.setOpen(!1,(0,m.createChangeEventDetails)(n.REASONS.imperativeAction))}}a.s(["BasePopupHandle",0,o],4675)},284204,625903,a=>{"use strict";var b=a.i(572131),c=a.i(935112),d=a.i(524715),e=a.i(329275),f=a.i(854401),g=a.i(357738),h=a.i(779549),i=a.i(532186),j=a.i(925123),k=a.i(426476),l=a.i(694368);function m(a){let{popupStore:c,treatPopupAsFloatingElement:d=!1,floatingRootContext:e,floatingId:f,nested:h,onOpenChange:i}=a,j=c.useState("open"),m=c.useState("activeTriggerElement"),n=c.useState(d?"popupElement":"positionerElement"),o=c.context.triggerElements,p=b.useRef(null);void 0===e&&null===p.current&&(p.current=new l.FloatingRootStore({open:j,transitionStatus:void 0,referenceElement:m,floatingElement:n,triggerElements:o,onOpenChange:i,floatingId:f,syncOnly:!0,nested:h}));let q=e??p.current;return c.useSyncedValue("floatingId",f),(0,g.useIsoLayoutEffect)(()=>{let a={open:j,floatingId:f,referenceElement:m,floatingElement:n};(0,k.isElement)(m)&&(a.domReferenceElement=m),q.state.positionReference===q.state.referenceElement&&(a.positionReference=m),q.update(a)},[j,f,m,n,q]),q.context.onOpenChange=i,q.context.nested=h,q}a.s(["useSyncedFloatingRootContext",0,m],625903);var n=a.i(348250),o=a.i(305687),p=a.i(394552),q=a.i(307436);let r={tabIndex:-1,[i.FOCUSABLE_ATTRIBUTE]:""};function s(a){let b=a.context.triggerElements.size;a.select("open")&&a.state.triggerCount!==b&&a.set("triggerCount",b)}function t(a,c){let d=b.useRef(null);return(0,f.useStableCallback)(b=>{let e=d.current;if(null!==e){if(e.element===b&&e.store===c&&e.id===a)return;d.current=null;let f=e.store;f.context.triggerElements.getById(e.id)===e.element&&(f.context.triggerElements.delete(e.id),s(f))}null!==b&&void 0!==a&&(d.current={store:c,id:a,element:b},c.context.triggerElements.add(a,b),s(c))})}function u(a,b,c,d=!1){let e=a.preventUnmountingOnClose;b?e=!1:d&&(e=!0);let f=c?.id??null,g=a.activeTriggerId,h=a.activeTriggerElement;return(f||b)&&(g=f,h=c??null),{open:b,preventUnmountingOnClose:e,activeTriggerId:g,activeTriggerElement:h}}function v(a){let b=!1;return a.preventUnmountOnClose=()=>{b=!0},()=>b}a.s(["FOCUSABLE_POPUP_PROPS",0,r,"PopupHandleAttachment",0,function({handle:a,store:b}){return(0,g.useIsoLayoutEffect)(()=>a.attachStore(b),[a,b]),null},"applyPopupOpenChange",0,function(a,b,d,e={}){let f=d.reason,g=f===q.REASONS.triggerHover,h=b&&f===q.REASONS.triggerFocus,i=!b&&(f===q.REASONS.triggerPress||f===q.REASONS.escapeKey),j=v(d);if(a.context.onOpenChange?.(b,d),d.isCanceled)return;e.onBeforeDispatch?.(),a.state.floatingRootContext.dispatchOpenChange(b,d);let k=()=>{let c=u(a.state,b,d.trigger,j()),f={...e.extraState,...c};h?f.instantType="focus":i?f.instantType="dismiss":g&&(f.instantType=void 0),a.update(f)};g?c.flushSync(k):k()},"attachPreventUnmountOnClose",0,v,"createDefaultInitialFocus",0,function(a){return b=>"touch"!==b||a.current},"createPopupOpenState",0,u,"useImplicitActiveTrigger",0,function(a,c={}){let{closeOnActiveTriggerUnmount:d=!1}=c,e=b.useRef(null),f=a.useState("open"),h=a.useState("triggerCount"),i=a.useState("activeTriggerId"),j=a.useState("activeTriggerElement");(0,g.useIsoLayoutEffect)(()=>{if(!f){e.current=null,0!==a.state.triggerCount&&a.set("triggerCount",0);return}let b=a.context.triggerElements.size,c={};a.state.triggerCount!==b&&(c.triggerCount=b);let g=a.select("activeTriggerId"),h=null;if(g){let b=a.context.triggerElements.getById(g);if(b)e.current=g,b!==a.state.activeTriggerElement&&(c.activeTriggerElement=b);else{for(let[b,d]of a.context.triggerElements.entries())if(d===a.state.activeTriggerElement){c.activeTriggerId=b,c.activeTriggerElement=d,e.current=b;break}void 0===c.activeTriggerId&&(e.current===g?h=g:e.current=null)}}else e.current=null;if(!h&&!g&&1===b){let b=a.context.triggerElements.entries().next();if(!b.done){let[a,d]=b.value;c.activeTriggerId=a,c.activeTriggerElement=d,e.current=a}}(void 0!==c.triggerCount||void 0!==c.activeTriggerId||void 0!==c.activeTriggerElement)&&a.update(c),h&&d&&queueMicrotask(()=>{if(a.select("open")&&a.select("activeTriggerId")===h&&!a.context.triggerElements.getById(h)){let b=(0,p.createChangeEventDetails)(q.REASONS.none);a.setOpen(!1,b),b.isCanceled||a.update({activeTriggerId:null,activeTriggerElement:null})}})},[f,a,h,i,j,d])},"useOpenStateTransitions",0,function(a,b,c,d){let{mounted:e,setMounted:g,transitionStatus:h}=(0,n.useTransitionStatus)(a,!1,!1,d),i=b.useState("preventUnmountingOnClose"),j=!a&&i;b.useSyncedValues({mounted:e,transitionStatus:h,preventUnmountingOnClose:j});let k=(0,f.useStableCallback)(()=>{g(!1),b.update({activeTriggerId:null,activeTriggerElement:null,mounted:!1,preventUnmountingOnClose:!1}),c?.(),b.context.onOpenChangeComplete?.(!1)});return(0,o.useOpenChangeComplete)({enabled:e&&!a&&!j,open:a,ref:b.context.popupRef,onComplete(){a||k()}}),{forceUnmount:k,transitionStatus:h}},"usePopupInteractionProps",0,function(a,b){a.useSyncedValues(b),(0,g.useIsoLayoutEffect)(()=>()=>{a.update({activeTriggerProps:d.EMPTY_OBJECT,inactiveTriggerProps:d.EMPTY_OBJECT,popupProps:d.EMPTY_OBJECT})},[a])},"usePopupRootStore",0,function(a,b=!1){let c=(0,e.useId)(),d=null!=(0,j.useFloatingParentNodeId)(),f=(0,h.useRefWithInit)(()=>a(c,d)).current;return m({popupStore:f,treatPopupAsFloatingElement:b,floatingRootContext:f.state.floatingRootContext,floatingId:c,nested:d,onOpenChange:f.setOpen}),f},"usePopupRootSync",0,function(a,b){(0,g.useIsoLayoutEffect)(()=>{b||null===a.state.openMethod||a.set("openMethod",null)},[b,a]),(0,g.useIsoLayoutEffect)(()=>()=>{null!==a.state.openMethod&&a.set("openMethod",null)},[a])},"useTriggerDataForwarding",0,function(a,b,c,d){let e=c.useState("isMountedByTrigger",a),h=t(a,c),i=(0,f.useStableCallback)(b=>{let e=c.select("open"),f=c.select("activeTriggerId");if(f===a){let a={activeTriggerElement:b,...e?d:null};c.update(a);return}if(null==f&&e){let e={activeTriggerId:a??null,activeTriggerElement:b,...d};c.update(e)}}),j=(0,f.useStableCallback)(a=>{h(a),a&&i(a)});return(0,g.useIsoLayoutEffect)(()=>(j(b.current),()=>j(null)),[j,b,c,a]),(0,g.useIsoLayoutEffect)(()=>{if(e){let a={activeTriggerElement:b.current,...d};c.update(a)}},[e,c,b,...Object.values(d)]),{registerTrigger:j,isMountedByThisTrigger:e}},"useTriggerRegistration",0,t],284204)},629752,a=>{"use strict";var b=a.i(572131),c=a.i(854401),d=a.i(151086),e=a.i(964072);function f(a,e){var f;let g,h,{onClick:i,onPointerDown:j}=(f=(0,c.useStableCallback)((b,c)=>{("function"==typeof a?a():a)||e(c||(d.platform.os.ios?"touch":""))}),g=b.useRef(""),h=b.useCallback(a=>{a.defaultPrevented||(g.current=a.pointerType,f(a,a.pointerType))},[f]),{onClick:b.useCallback(a=>{0===a.detail?f(a,"keyboard"):("pointerType"in a?f(a,a.pointerType):f(a,g.current),g.current="")},[f]),onPointerDown:h});return b.useMemo(()=>({onClick:i,onPointerDown:j}),[i,j])}a.s(["useOpenInteractionType",0,function(a){let[c,d]=b.useState(null),g=f(a,d);return(0,e.useValueChanged)(a,b=>{b&&!a&&d(null)}),b.useMemo(()=>({openMethod:c,triggerProps:g}),[c,g])},"useOpenMethodTriggerProps",0,f],629752)},405050,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={callServer:function(){return f.callServer},createServerReference:function(){return h.createServerReference},findSourceMapURL:function(){return g.findSourceMapURL}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(120611),g=a.r(1722),h=a.r(738783)},288347,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d,e,f={ACTION_HMR_REFRESH:function(){return l},ACTION_NAVIGATE:function(){return i},ACTION_REFRESH:function(){return h},ACTION_RESTORE:function(){return j},ACTION_SERVER_ACTION:function(){return m},ACTION_SERVER_PATCH:function(){return k},PrefetchKind:function(){return n},ScrollBehavior:function(){return o}};for(var g in f)Object.defineProperty(c,g,{enumerable:!0,get:f[g]});let h="refresh",i="navigate",j="restore",k="server-patch",l="hmr-refresh",m="server-action";var n=((d={}).AUTO="auto",d.FULL="full",d),o=((e={})[e.Default=0]="Default",e[e.NoScroll=1]="NoScroll",e);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},467009,(a,b,c)=>{"use strict";function d(a){return null!==a&&"object"==typeof a&&"then"in a&&"function"==typeof a.then}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isThenable",{enumerable:!0,get:function(){return d}})},190841,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={dispatchAppRouterAction:function(){return i},dispatchGestureState:function(){return j},refreshOnInstantNavigationUnlock:function(){return h},useActionQueue:function(){return k}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(346058)._(a.r(572131)),g=a.r(467009);a.r(288347);function h(){}function i(a){!0;throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}function j(a){!0;throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}function k(a){let[b,c]=f.default.useState(a.state),[d,e]=(0,f.useOptimistic)(b),h=(0,f.useMemo)(()=>d,[d]);return(0,g.isThenable)(h)?(0,f.use)(h):h}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},120611,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"callServer",{enumerable:!0,get:function(){return g}});let d=a.r(572131),e=a.r(288347),f=a.r(190841);async function g(a,b){return new Promise((c,g)=>{(0,d.startTransition)(()=>{(0,f.dispatchAppRouterAction)({type:e.ACTION_SERVER_ACTION,actionId:a,actionArgs:b,resolve:c,reject:g})})})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},1722,(a,b,c)=>{"use strict";let d;Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"findSourceMapURL",{enumerable:!0,get:function(){return d}});("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)}];
2
+
3
+ //# sourceMappingURL=_0z38nha._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[869480,a=>{"use strict";var b=a.i(187924),c=a.i(767561),d=a.i(280281),e=a.i(313237),f=a.i(759497),g=a.i(405050);let h=(0,g.createServerReference)("7f3dc1c7787c59bd2c3c24559f88e7e41638c1b78d",g.callServer,void 0,g.findSourceMapURL,"setKeepWorkingOnAction"),i="Work while the app is closed";a.s(["KeepWorkingSwitch",0,function(){let{data:a,mutate:g}=(0,f.useServerRoute)(c.queryKey.botKeepWorking),[j]=(0,e.useServerAction)(h,{onOk:()=>(0,f.revalidate)(c.queryKey.botKeepWorking)});return(0,b.jsxs)(b.Fragment,{children:[(0,b.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:i}),(0,b.jsx)(d.Switch,{checked:a??!1,disabled:void 0===a,onCheckedChange:a=>{g(a,!1),j(a)},"aria-label":i})]})}],869480)},119486,a=>{"use strict";var b=a.i(405050);let c=(0,b.createServerReference)("7fecf7a8f59fb3b540c294fcbc5574664cfd32cc22",b.callServer,void 0,b.findSourceMapURL,"deleteWorkspaceFileAction");a.s(["deleteWorkspaceFileAction",0,c])},30681,a=>{"use strict";var b=a.i(572131),c=a.i(497895);a.s(["useObjectState",0,a=>{let[d,e]=(0,b.useState)(a);return[d,(0,b.useMemo)(()=>{let a=a=>{e(b=>{let d=(0,c.isFunction)(a)?a(b):a;return Object.keys(d).some(a=>!Object.is(b[a],d[a]))?{...b,...d}:b})},b=new Map;return new Proxy(a,{get(d,e,f){if("symbol"==typeof e)return Reflect.get(d,e,f);let g=b.get(e);return g||(g=b=>{a(a=>({[e]:(0,c.isFunction)(b)?b(a[e]):b}))},b.set(e,g)),g}})},[])]}])},951675,a=>{"use strict";var b=a.i(164831);let c={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"]};c.node;let d=(0,b.default)(c);a.s(["Trash2",0,d],951675)}];
1
+ module.exports=[869480,a=>{"use strict";var b=a.i(187924),c=a.i(767561),d=a.i(280281),e=a.i(313237),f=a.i(759497),g=a.i(405050);let h=(0,g.createServerReference)("7fa00e3079a1fdce34072f8f4950ff89062514435f",g.callServer,void 0,g.findSourceMapURL,"setKeepWorkingOnAction"),i="Work while the app is closed";a.s(["KeepWorkingSwitch",0,function(){let{data:a,mutate:g}=(0,f.useServerRoute)(c.queryKey.botKeepWorking),[j]=(0,e.useServerAction)(h,{onOk:()=>(0,f.revalidate)(c.queryKey.botKeepWorking)});return(0,b.jsxs)(b.Fragment,{children:[(0,b.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:i}),(0,b.jsx)(d.Switch,{checked:a??!1,disabled:void 0===a,onCheckedChange:a=>{g(a,!1),j(a)},"aria-label":i})]})}],869480)},292945,a=>{"use strict";var b=a.i(405050);let c=(0,b.createServerReference)("7fd3a8b14d131f17a3ee8e56630e3f2ec5fed81cbb",b.callServer,void 0,b.findSourceMapURL,"deleteWorkspaceFileAction");a.s(["deleteWorkspaceFileAction",0,c])},30681,a=>{"use strict";var b=a.i(572131),c=a.i(497895);a.s(["useObjectState",0,a=>{let[d,e]=(0,b.useState)(a);return[d,(0,b.useMemo)(()=>{let a=a=>{e(b=>{let d=(0,c.isFunction)(a)?a(b):a;return Object.keys(d).some(a=>!Object.is(b[a],d[a]))?{...b,...d}:b})},b=new Map;return new Proxy(a,{get(d,e,f){if("symbol"==typeof e)return Reflect.get(d,e,f);let g=b.get(e);return g||(g=b=>{a(a=>({[e]:(0,c.isFunction)(b)?b(a[e]):b}))},b.set(e,g)),g}})},[])]}])},951675,a=>{"use strict";var b=a.i(164831);let c={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"]};c.node;let d=(0,b.default)(c);a.s(["Trash2",0,d],951675)}];
2
2
 
3
- //# sourceMappingURL=_10mo72m._.js.map
3
+ //# sourceMappingURL=_11nx2d4._.js.map
@@ -57,9 +57,9 @@ ${(0,o.recentCallLines)(w.map(a=>({...a,jobs:x.filter(b=>b.callId===a.callId)}))
57
57
 
58
58
  Written by the user. Follow them together with everything above.
59
59
 
60
- ${a.trim()}`:"";a.s(["loadThursdayPrompt",0,q]),c()}catch(a){c(a)}},!1),936292,a=>{"use strict";a.s(["ChannelRefusal",0,class extends Error{}])},242104,a=>{"use strict";a.s(["inPieces",0,function(a,b){let c=[],d=a;for(;d.length>b;){let a=d.slice(0,b),e=Math.max(a.lastIndexOf("\n\n"),a.lastIndexOf("\n")),f=e>b/2?e:b;c.push(d.slice(0,f).trim()),d=d.slice(f).trim()}return d&&c.push(d),c},"runSocket",0,function(a,b,c){return new Promise((d,e)=>{let f=new WebSocket(a),g=a=>{f.readyState===WebSocket.OPEN&&f.send(JSON.stringify(a))},h=()=>f.close(1e3);c.addEventListener("abort",h,{once:!0}),f.addEventListener("message",a=>{try{b.message(JSON.parse(String(a.data)),g)}catch{}}),f.addEventListener("error",()=>{f.readyState!==WebSocket.OPEN&&e(Error(`Could not connect to ${new URL(a).host}`))}),f.addEventListener("close",a=>{c.removeEventListener("abort",h),d({code:a.code,reason:a.reason})})})}])},479286,a=>{"use strict";var b=a.i(936292),c=a.i(242104);let d={4004:"Discord did not take the bot token.",4013:"Discord refused the intents this bot asked for.",4014:"Discord refused an intent this bot is not allowed — check the bot's page."};a.s(["createDiscord",0,function(a){async function e(c,d,e){let f=e instanceof FormData,g=await fetch(`https://discord.com/api/v10${d}`,{method:c,headers:{authorization:`Bot ${a}`,...f||!e?{}:{"content-type":"application/json"}},body:f?e:e?JSON.stringify(e):void 0});if(g.ok)return 204===g.status?null:await g.json();let h=await g.json().catch(()=>null),i=h?.message??`Discord answered ${g.status}`;throw 401===g.status?new b.ChannelRefusal(i):Error(i)}let f=a=>{let b=a.length<=5?1:5,c=[];for(let d=0;d<a.length&&c.length<5;d+=b)c.push({type:1,components:a.slice(d,d+b).map(a=>({type:2,style:2,label:a.text.slice(0,80),custom_id:a.data}))});return c};return{async listen(f,g){let h,i=null;try{let j=await (0,c.runSocket)("wss://gateway.discord.gg/?v=10&encoding=json",{message(b,c){let{op:d,d:g,s:j,t:k}=b;if(null!==j&&(i=j),10===d){let b=g.heartbeat_interval;h=setInterval(()=>c({op:1,d:i}),b),c({op:2,d:{token:a,intents:4096,properties:{os:process.platform,browser:"thursday",device:"thursday"}}})}else if(1===d)c({op:1,d:i});else if(0===d&&"READY"===k)f.ready(g.user.username);else if(0===d&&k){var l,m;let a=(l=k,m=g,"MESSAGE_CREATE"===l?m.guild_id||m.author.bot?null:{kind:"message",chat:m.channel_id,name:m.author.global_name||m.author.username,words:m.content.trim(),files:(m.attachments??[]).map(a=>({name:a.filename,fetch:async()=>{let b=await fetch(a.url);if(!b.ok)throw Error(`Discord answered ${b.status} for the file`);return new File([await b.arrayBuffer()],a.filename,{type:a.content_type??""})}})),unreadable:!1}:"INTERACTION_CREATE"===l?3!==m.type||m.guild_id?null:(e("POST",`/interactions/${m.id}/${m.token}/callback`,{type:6}).catch(()=>{}),{kind:"press",chat:m.channel_id,data:m.data?.custom_id??"",under:m.message?{id:m.message.id,text:m.message.content}:null}):null);a&&f.incoming(a)}}},g),k=d[j.code];if(k)throw new b.ChannelRefusal(k);if(!g.aborted)throw Error(`Discord closed the connection (${j.code})`)}finally{clearInterval(h)}},async say(a,b,d){let g=(0,c.inPieces)(b,1900);for(let[b,c]of g.entries())await e("POST",`/channels/${a}/messages`,{content:c,...d?.length&&b===g.length-1?{components:f(d)}:{}})},async typing(a){await e("POST",`/channels/${a}/typing`).catch(()=>{})},async settle(a,b,c){await e("PATCH",`/channels/${a}/messages/${b}`,{content:c.slice(0,1900),components:[]}).catch(()=>{})},async sendFile(a,b,c){let d=new FormData;d.set("payload_json",JSON.stringify({attachments:[{id:0,filename:c}]})),d.set("files[0]",new Blob([b]),c),await e("POST",`/channels/${a}/messages`,d)}}}])},129167,a=>{"use strict";var b=a.i(936292),c=a.i(242104);let d="https://slack.com/api",e=new Set(["invalid_auth","not_authed","account_inactive","token_revoked","not_allowed_token_type","missing_scope"]);a.s(["createSlack",0,function(a,f){async function g(a,c,h=f){let i=await fetch(`${d}/${a}`,{method:"POST",headers:{authorization:`Bearer ${h}`,"content-type":"application/json; charset=utf-8"},body:JSON.stringify(c)}),j=await i.json().catch(()=>null);if(j?.ok)return j;let k=j?.error??`http_${i.status}`,l="missing_scope"===k?`Slack says the app lacks a permission (${j?.needed??"a scope"}) — make it from the manifest in the guide.`:`Slack answered ${k} to ${a}`;throw e.has(k)?new b.ChannelRefusal(l):Error(l)}let h=new Map;async function i(a){let b=h.get(a);if(b)return b;let c=await g("users.info",{user:a}).then(b=>b.user?.real_name||b.user?.name||a).catch(()=>a);return h.set(a,c),c}async function j(a,b){if("events_api"===a){let a=b.event??{},c=!a.subtype||"file_share"===a.subtype;return"message"===a.type&&"im"===a.channel_type&&c&&!a.bot_id&&a.user&&a.channel?{kind:"message",chat:a.channel,name:await i(a.user),words:(a.text??"").trim(),files:(a.files??[]).flatMap(a=>{let b=a.url_private_download;if(!b)return[];let c=a.name??"file";return[{name:c,fetch:async()=>{let d=await fetch(b,{headers:{authorization:`Bearer ${f}`}});if(!d.ok)throw Error(`Slack answered ${d.status} for the file`);return new File([await d.arrayBuffer()],c,{type:a.mimetype??""})}}]}),unreadable:!1}:null}return"interactive"===a&&"block_actions"===b.type?b.channel?.id?{kind:"press",chat:b.channel.id,data:b.actions?.[0]?.value??"",under:b.message?.ts&&b.message.text?{id:b.message.ts,text:b.message.text}:null}:null:null}return{async listen(b,d){let e=await g("auth.test",{}),{url:f}=await g("apps.connections.open",{},a);b.ready(e.user?`@${e.user}`:"the app");let h=await (0,c.runSocket)(f,{message(a,c){let{type:d,envelope_id:e,payload:f}=a;e&&c({envelope_id:e}),d&&f&&j(d,f).then(a=>{a&&b.incoming(a)})}},d);if(!d.aborted)throw Error(`Slack closed the connection (${h.code})`)},async say(a,b,d){let e=(0,c.inPieces)(b,2900);for(let[b,c]of e.entries()){let f=d?.length&&b===e.length-1;await g("chat.postMessage",{channel:a,text:c,unfurl_links:!1,...f?{blocks:[{type:"section",text:{type:"plain_text",text:c}},{type:"actions",elements:d.slice(0,25).map((a,b)=>({type:"button",action_id:`choice_${b}`,text:{type:"plain_text",text:a.text.slice(0,75)},value:a.data}))}]}:{}})}},async typing(){},async settle(a,b,c){await g("chat.update",{channel:a,ts:b,text:c.slice(0,2900),blocks:[]}).catch(()=>{})},async sendFile(a,b,c){let e=new URLSearchParams({filename:c,length:String(b.byteLength)}),h=await fetch(`${d}/files.getUploadURLExternal`,{method:"POST",headers:{authorization:`Bearer ${f}`},body:e}),i=await h.json();if(!i.ok||!i.upload_url||!i.file_id)throw Error(`Slack answered ${i.error??h.status} to the upload`);await fetch(i.upload_url,{method:"POST",body:new Blob([b])}),await g("files.completeUploadExternal",{files:[{id:i.file_id,title:c}],channel_id:a})}}}])},319261,a=>{"use strict";var b=a.i(569572),c=a.i(936292);let d="https://api.telegram.org";a.s(["createTelegram",0,function(a){async function e(b,e,f){let g=e instanceof FormData,h=await fetch(`${d}/bot${a}/${b}`,{method:"POST",signal:f,...g?{body:e}:{headers:{"content-type":"application/json"},body:JSON.stringify(e??{})}}),i=await h.json().catch(()=>null);if(i?.ok)return i.result;let j=i?.description??`Telegram answered ${h.status}`;throw 401===h.status?new c.ChannelRefusal(j):Error(j)}async function f(b,c,f){let{file_path:g}=await e("getFile",{file_id:b});if(!g)throw Error("Telegram did not say where the file is");let h=await fetch(`${d}/file/bot${a}/${g}`);if(!h.ok)throw Error(`Telegram answered ${h.status} for the file`);let i=g.includes(".")?g.slice(g.lastIndexOf(".")):"";return new File([await h.arrayBuffer()],c.includes(".")?c:`${c}${i}`,f?{type:f}:void 0)}return{async listen(a,c){let d=await e("getMe",void 0,c);a.ready(d.username?`@${d.username}`:d.first_name??"the bot");let g=0;for(;!c.aborted;)for(let d of(await e("getUpdates",{offset:g,timeout:b.REACH.pollSeconds,allowed_updates:["message","callback_query"]},AbortSignal.any([c,AbortSignal.timeout((b.REACH.pollSeconds+15)*1e3)])))){g=d.update_id+1;let b=function(a){let b,c=a.callback_query;if(c)return e("answerCallbackQuery",{callback_query_id:c.id}).catch(()=>{}),{kind:"press",chat:String(c.from.id),data:c.data??"",under:c.message?.text?{id:String(c.message.message_id),text:c.message.text}:null};let d=a.message;if(!d?.from||"private"!==d.chat.type)return null;let g=d.photo?.at(-1),h=d.document?{id:d.document.file_id,name:d.document.file_name??"file",type:d.document.mime_type}:g?{id:g.file_id,name:`photo-${d.message_id}`,type:""}:null;return{kind:"message",chat:String(d.chat.id),name:(b=d.from,[b?.first_name,b?.last_name].filter(Boolean).join(" ")||(b?.username?`@${b.username}`:"Someone")),words:(d.text??d.caption??"").trim(),files:h?[{name:h.name,fetch:()=>f(h.id,h.name,h.type)}]:[],unreadable:!!(d.voice||d.audio||d.video)}}(d);b&&a.incoming(b)}},async say(a,b,c){await e("sendMessage",{chat_id:a,text:b,link_preview_options:{is_disabled:!0},...c?.length?{reply_markup:{inline_keyboard:c.map(a=>[{text:a.text,callback_data:a.data}])}}:{}})},async typing(a){await e("sendChatAction",{chat_id:a,action:"typing"}).catch(()=>{})},async settle(a,b,c){await e("editMessageText",{chat_id:a,message_id:Number(b),text:c,link_preview_options:{is_disabled:!0}}).catch(()=>{})},async sendFile(a,b,c,d){let f=new FormData;f.set("chat_id",a),f.set(d?"photo":"document",new Blob([b]),c),await e(d?"sendPhoto":"sendDocument",f)}}}])},233398,a=>a.a(async(b,c)=>{try{var d=a.i(912714),e=a.i(203469),f=a.i(569572),g=a.i(552556),h=a.i(875931),i=a.i(674986),j=a.i(839430),k=a.i(344853),l=a.i(725466),m=a.i(92706),n=a.i(569549),o=a.i(143699),p=a.i(684321),q=a.i(821415),r=a.i(941981),s=a.i(176668),t=a.i(293480),u=a.i(182248),v=a.i(936292),w=a.i(479286),x=a.i(558067),y=a.i(129167),z=a.i(319261),A=b([h,i,j,k,l,n,o]);[h,i,j,k,l,n,o]=A.then?(await A)():A;let P={telegram:a=>(0,z.createTelegram)(a),discord:a=>(0,w.createDiscord)(a),slack:(a,b)=>(0,y.createSlack)(a,b)},Q=globalThis,R=Q.__reach??={live:new Map,last:null,told:new Set,due:new Map,choices:new Map,listening:null,looking:null},S=()=>e.appEvents.emit({type:"reach"});async function B(a){let b=await (0,l.readConfig)((0,x.reachPersonKey)(a));if(!b)return null;try{let a=JSON.parse(b);return"string"==typeof a.chat&&"string"==typeof a.name?{chat:a.chat,name:a.name}:null}catch{return null}}async function C(a){for(let b of a?[a]:x.REACH_CHANNELS){let c=R.live.get(b);c?.stop.abort(),R.live.delete(b),a&&(await (0,l.removeConfig)((0,x.reachPersonKey)(b)),c?.line&&await (0,n.endCall)(c.line.callId).catch(()=>{}));let d=await Promise.all(x.REACH_KEYS[b].map(l.readConfig));if(!d.every(a=>!!a))continue;let e={name:b,channel:P[b](...d),stop:new AbortController,bot:null,problem:null,asking:null,line:null,turn:Promise.resolve()};R.live.set(b,e),D(e)}R.live.size&&(R.listening??=e.appEvents.subscribe(a=>{"threads"!==a.type||R.looking||(R.looking=setTimeout(()=>{R.looking=null,M().catch(a=>s.logger.error("reach: open work",a))},2e3))})),S()}async function D(a){let{signal:b}=a.stop,c=b=>{a.problem!==b&&(a.problem=b,S())};for(;!b.aborted;){try{await a.channel.listen({ready:b=>{a.bot=b,a.problem=null,S()},incoming:b=>void E(a,b).catch(b=>s.logger.error(`reach ${a.name}: what arrived`,b))},b)}catch(e){if(b.aborted)return;let d=e instanceof Error?e.message:String(e);if(e instanceof v.ChannelRefusal)return s.logger.warn(`reach ${a.name}: ${d}`),c(d);c(d)}await new Promise(a=>setTimeout(a,f.REACH.retryMs))}}async function E(a,b){let{channel:c}=a,d=await B(a.name);if("press"===b.kind){if(d?.chat!==b.chat)return;return O(a,d,b.data,b.under)}if(d?.chat!==b.chat)return d?void await c.say(b.chat,"This Thursday already answers someone else."):(a.asking={chat:b.chat,name:b.name},S(),void await c.say(b.chat,"Almost there. Open Thursday on your computer and press Allow, then write again."));R.last=a.name;let e=b.files.length?await (0,r.keepGivenFiles)(await Promise.all(b.files.map(a=>a.fetch()))):[],f=[b.words,...e].filter(Boolean).join("\n");if(!f){b.unreadable&&await c.say(b.chat,"I can read words, pictures and files here — not voice or video yet. Write it instead.");return}I(a,d,f,f)}async function F(a,b){let c=R.live.get(a),d=c?.asking;c&&d&&d.chat===b&&(await (0,l.writeConfig)((0,x.reachPersonKey)(a),JSON.stringify(d)),c.asking=null,S(),await c.channel.say(b,"You are in. Write here and Thursday answers.").catch(b=>s.logger.warn(`reach ${a}: could not say so`,b)))}async function G(a){await (0,l.removeConfig)((0,x.reachPersonKey)(a));let b=R.live.get(a);b&&await H(b),S()}async function H(a){let b=a.line;a.line=null,b&&await (0,n.endCall)(b.callId).catch(()=>{})}function I(a,b,c,d,e){let f=a.turn.then(()=>J(a,b,c,d,e));return a.turn=f.then(()=>{},()=>{}),f}async function J(a,b,c,d,e){let{channel:i}=a;i.typing(b.chat).catch(()=>{});let j=setInterval(()=>void i.typing(b.chat).catch(()=>{}),4e3);try{let h=g.LiveSettingsSchema.parse({}),j=a.line;(!j||Date.now()-j.lastAt>f.REACH.idleMs||!await (0,n.isCallOpen)(j.callId))&&(await H(a),a.line={...await (0,o.openTextCall)(h),messages:[],lastAt:0});let k=a.line,l=await (0,o.answerInWriting)({callId:k.callId,settings:h,standing:k.standing,messages:[...k.messages,{role:"user",content:c}],said:d});k.messages=l.messages,k.lastAt=Date.now();let m=(0,u.plainText)(l.text)||l.did.join("\n"),p=function(a){let b=[],c=a;for(;c.length>f.REACH.chars;){let a=c.slice(0,f.REACH.chars),d=Math.max(a.lastIndexOf("\n\n"),a.lastIndexOf("\n")),e=d>f.REACH.chars/2?d:f.REACH.chars;b.push(c.slice(0,e).trim()),c=c.slice(e).trim()}return c&&b.push(c),b}(m||"…");for(let[a,c]of p.entries())await i.say(b.chat,c,a===p.length-1?e:void 0);return await K(a,b,l.text),!0}catch(d){let c=(0,t.isPublicError)(d)?d.message:(0,h.modelErrorToString)(d);return s.logger.warn(`reach ${a.name}: ${c}`),await i.say(b.chat,c).catch(()=>{}),!1}finally{clearInterval(j)}}async function K(a,b,c){for(let e of(await (0,q.filesOnDisk)((0,p.pathsIn)(c),null)).slice(-f.REACH.files)){let c=await (0,q.insideWorkspace)(e),g=c?await (0,d.stat)(c).catch(()=>null):null;c&&g&&!(g.size>f.REACH.fileBytes)&&await a.channel.sendFile(b.chat,await (0,d.readFile)(c),e.split("/").pop()??"file","image"===(0,p.viewKindOf)(e)).catch(b=>s.logger.warn(`reach ${a.name}: could not send ${e}`,b))}}async function L(){for(let a of[...R.last?[R.last]:[],...x.REACH_CHANNELS.filter(a=>a!==R.last)]){let b=R.live.get(a),c=b?await B(a):null;if(b&&c)return{live:b,person:c}}return null}async function M(){if(!await L())return;let a=T(await (0,k.listInboxThreads)()),b=new Set(a.map(a=>a.key));for(let[a,c]of R.due)b.has(a)||(clearTimeout(c),R.due.delete(a));for(let b of a)R.told.has(b.key)||R.due.has(b.key)||R.due.set(b.key,setTimeout(()=>void N(b.key),f.REACH.notifyAfterMs))}let T=a=>(0,m.openWork)(a).filter(a=>"progress"!==a.kind);async function N(a){R.due.delete(a);let b=await L();if(!b||R.told.has(a))return;let c=await (0,k.listInboxThreads)(),d=T(c).find(b=>b.key===a);if(!d)return;let e=c.find(b=>b.room.questions.some(b=>`question:${b.id}`===a)),f=e?.room.questions.find(b=>`question:${b.id}`===a),g=(f?.options??[]).map((a,b)=>{let c=`${f?.id.slice(0,40)}:${b}`;return R.choices.set(c,{threadId:e?.id??"",bot:f?.bot??"",question:f?.id??"",answer:a}),{text:a,data:c}});R.told.add(a),await I(b.live,b.person,d.line,null,g)?await (0,j.acceptRoomRelays)(d.relayIds):R.told.delete(a)}async function O(a,b,c,d){let e=R.choices.get(c);if(!e)return void await a.channel.say(b.chat,"That question is no longer open here. Write your answer instead.");for(let[a,b]of R.choices)b.question===e.question&&R.choices.delete(a);try{await (0,i.answerThread)(e.threadId,e.answer,"user",e.bot),d&&await a.channel.settle(b.chat,d.id,`${d.text}
60
+ ${a.trim()}`:"";a.s(["loadThursdayPrompt",0,q]),c()}catch(a){c(a)}},!1),936292,a=>{"use strict";a.s(["ChannelRefusal",0,class extends Error{}])},242104,a=>{"use strict";a.s(["inPieces",0,function(a,b){let c=[],d=a;for(;d.length>b;){let a=d.slice(0,b),e=Math.max(a.lastIndexOf("\n\n"),a.lastIndexOf("\n")),f=e>b/2?e:b;c.push(d.slice(0,f).trim()),d=d.slice(f).trim()}return d&&c.push(d),c},"runSocket",0,function(a,b,c){return new Promise((d,e)=>{let f=new WebSocket(a),g=a=>{f.readyState===WebSocket.OPEN&&f.send(JSON.stringify(a))},h=()=>f.close(1e3);c.addEventListener("abort",h,{once:!0}),f.addEventListener("message",a=>{try{b.message(JSON.parse(String(a.data)),g)}catch{}}),f.addEventListener("error",()=>{f.readyState!==WebSocket.OPEN&&e(Error(`Could not connect to ${new URL(a).host}`))}),f.addEventListener("close",a=>{c.removeEventListener("abort",h),d({code:a.code,reason:a.reason})})})}])},479286,a=>{"use strict";var b=a.i(936292),c=a.i(242104);let d={4004:"Discord did not take the bot token.",4013:"Discord refused the intents this bot asked for.",4014:"Discord refused an intent this bot is not allowed — check the bot's page."};a.s(["createDiscord",0,function(a){async function e(c,d,e){let f=e instanceof FormData,g=await fetch(`https://discord.com/api/v10${d}`,{method:c,headers:{authorization:`Bot ${a}`,...f||!e?{}:{"content-type":"application/json"}},body:f?e:e?JSON.stringify(e):void 0});if(g.ok)return 204===g.status?null:await g.json();let h=await g.json().catch(()=>null),i=h?.message??`Discord answered ${g.status}`;throw 401===g.status?new b.ChannelRefusal(i):Error(i)}let f=a=>{let b=a.length<=5?1:5,c=[];for(let d=0;d<a.length&&c.length<5;d+=b)c.push({type:1,components:a.slice(d,d+b).map(a=>({type:2,style:2,label:a.text.slice(0,80),custom_id:a.data}))});return c};return{async listen(f,g){let h,i=null;try{let j=await (0,c.runSocket)("wss://gateway.discord.gg/?v=10&encoding=json",{message(b,c){let{op:d,d:g,s:j,t:k}=b;if(null!==j&&(i=j),10===d){let b=g.heartbeat_interval;h=setInterval(()=>c({op:1,d:i}),b),c({op:2,d:{token:a,intents:4096,properties:{os:process.platform,browser:"thursday",device:"thursday"}}})}else if(1===d)c({op:1,d:i});else if(0===d&&"READY"===k){let a;f.ready(g.user.username,(a=g.application?.id)?`https://discord.com/oauth2/authorize?client_id=${a}&scope=bot&permissions=0`:null)}else if(0===d&&k){var l,m;let a=(l=k,m=g,"MESSAGE_CREATE"===l?m.guild_id||m.author.bot?null:{kind:"message",chat:m.channel_id,name:m.author.global_name||m.author.username,words:m.content.trim(),files:(m.attachments??[]).map(a=>({name:a.filename,fetch:async()=>{let b=await fetch(a.url);if(!b.ok)throw Error(`Discord answered ${b.status} for the file`);return new File([await b.arrayBuffer()],a.filename,{type:a.content_type??""})}})),unreadable:!1}:"INTERACTION_CREATE"===l?3!==m.type||m.guild_id?null:(e("POST",`/interactions/${m.id}/${m.token}/callback`,{type:6}).catch(()=>{}),{kind:"press",chat:m.channel_id,data:m.data?.custom_id??"",under:m.message?{id:m.message.id,text:m.message.content}:null}):null);a&&f.incoming(a)}}},g),k=d[j.code];if(k)throw new b.ChannelRefusal(k);if(!g.aborted)throw Error(`Discord closed the connection (${j.code})`)}finally{clearInterval(h)}},async say(a,b,d){let g=(0,c.inPieces)(b,1900);for(let[b,c]of g.entries())await e("POST",`/channels/${a}/messages`,{content:c,...d?.length&&b===g.length-1?{components:f(d)}:{}})},async typing(a){await e("POST",`/channels/${a}/typing`).catch(()=>{})},async settle(a,b,c){await e("PATCH",`/channels/${a}/messages/${b}`,{content:c.slice(0,1900),components:[]}).catch(()=>{})},async sendFile(a,b,c){let d=new FormData;d.set("payload_json",JSON.stringify({attachments:[{id:0,filename:c}]})),d.set("files[0]",new Blob([b]),c),await e("POST",`/channels/${a}/messages`,d)}}}])},129167,a=>{"use strict";var b=a.i(936292),c=a.i(242104);let d="https://slack.com/api",e=new Set(["invalid_auth","not_authed","account_inactive","token_revoked","not_allowed_token_type","missing_scope"]);a.s(["createSlack",0,function(a,f){async function g(a,c,h=f){let i=await fetch(`${d}/${a}`,{method:"POST",headers:{authorization:`Bearer ${h}`,"content-type":"application/json; charset=utf-8"},body:JSON.stringify(c)}),j=await i.json().catch(()=>null);if(j?.ok)return j;let k=j?.error??`http_${i.status}`,l="missing_scope"===k?`Slack says the app lacks a permission (${j?.needed??"a scope"}) — make it from the manifest in the guide.`:`Slack answered ${k} to ${a}`;throw e.has(k)?new b.ChannelRefusal(l):Error(l)}let h=new Map;async function i(a){let b=h.get(a);if(b)return b;let c=await g("users.info",{user:a}).then(b=>b.user?.real_name||b.user?.name||a).catch(()=>a);return h.set(a,c),c}async function j(a,b){if("events_api"===a){let a=b.event??{},c=!a.subtype||"file_share"===a.subtype;return"message"===a.type&&"im"===a.channel_type&&c&&!a.bot_id&&a.user&&a.channel?{kind:"message",chat:a.channel,name:await i(a.user),words:(a.text??"").trim(),files:(a.files??[]).flatMap(a=>{let b=a.url_private_download;if(!b)return[];let c=a.name??"file";return[{name:c,fetch:async()=>{let d=await fetch(b,{headers:{authorization:`Bearer ${f}`}});if(!d.ok)throw Error(`Slack answered ${d.status} for the file`);return new File([await d.arrayBuffer()],c,{type:a.mimetype??""})}}]}),unreadable:!1}:null}return"interactive"===a&&"block_actions"===b.type?b.channel?.id?{kind:"press",chat:b.channel.id,data:b.actions?.[0]?.value??"",under:b.message?.ts&&b.message.text?{id:b.message.ts,text:b.message.text}:null}:null:null}return{async listen(b,d){let e=await g("auth.test",{}),{url:f}=await g("apps.connections.open",{},a);b.ready(e.user?`@${e.user}`:"the app",null);let h=await (0,c.runSocket)(f,{message(a,c){let{type:d,envelope_id:e,payload:f}=a;e&&c({envelope_id:e}),d&&f&&j(d,f).then(a=>{a&&b.incoming(a)})}},d);if(!d.aborted)throw Error(`Slack closed the connection (${h.code})`)},async say(a,b,d){let e=(0,c.inPieces)(b,2900);for(let[b,c]of e.entries()){let f=d?.length&&b===e.length-1;await g("chat.postMessage",{channel:a,text:c,unfurl_links:!1,...f?{blocks:[{type:"section",text:{type:"plain_text",text:c}},{type:"actions",elements:d.slice(0,25).map((a,b)=>({type:"button",action_id:`choice_${b}`,text:{type:"plain_text",text:a.text.slice(0,75)},value:a.data}))}]}:{}})}},async typing(){},async settle(a,b,c){await g("chat.update",{channel:a,ts:b,text:c.slice(0,2900),blocks:[]}).catch(()=>{})},async sendFile(a,b,c){let e=new URLSearchParams({filename:c,length:String(b.byteLength)}),h=await fetch(`${d}/files.getUploadURLExternal`,{method:"POST",headers:{authorization:`Bearer ${f}`},body:e}),i=await h.json();if(!i.ok||!i.upload_url||!i.file_id)throw Error(`Slack answered ${i.error??h.status} to the upload`);await fetch(i.upload_url,{method:"POST",body:new Blob([b])}),await g("files.completeUploadExternal",{files:[{id:i.file_id,title:c}],channel_id:a})}}}])},319261,a=>{"use strict";var b=a.i(569572),c=a.i(936292);let d="https://api.telegram.org";a.s(["createTelegram",0,function(a){async function e(b,e,f){let g=e instanceof FormData,h=await fetch(`${d}/bot${a}/${b}`,{method:"POST",signal:f,...g?{body:e}:{headers:{"content-type":"application/json"},body:JSON.stringify(e??{})}}),i=await h.json().catch(()=>null);if(i?.ok)return i.result;let j=i?.description??`Telegram answered ${h.status}`;throw 401===h.status?new c.ChannelRefusal(j):Error(j)}async function f(b,c,f){let{file_path:g}=await e("getFile",{file_id:b});if(!g)throw Error("Telegram did not say where the file is");let h=await fetch(`${d}/file/bot${a}/${g}`);if(!h.ok)throw Error(`Telegram answered ${h.status} for the file`);let i=g.includes(".")?g.slice(g.lastIndexOf(".")):"";return new File([await h.arrayBuffer()],c.includes(".")?c:`${c}${i}`,f?{type:f}:void 0)}return{async listen(a,c){let d=await e("getMe",void 0,c);a.ready(d.username?`@${d.username}`:d.first_name??"the bot",d.username?`https://t.me/${d.username}`:null);let g=0;for(;!c.aborted;)for(let d of(await e("getUpdates",{offset:g,timeout:b.REACH.pollSeconds,allowed_updates:["message","callback_query"]},AbortSignal.any([c,AbortSignal.timeout((b.REACH.pollSeconds+15)*1e3)])))){g=d.update_id+1;let b=function(a){let b,c=a.callback_query;if(c)return e("answerCallbackQuery",{callback_query_id:c.id}).catch(()=>{}),{kind:"press",chat:String(c.from.id),data:c.data??"",under:c.message?.text?{id:String(c.message.message_id),text:c.message.text}:null};let d=a.message;if(!d?.from||"private"!==d.chat.type)return null;let g=d.photo?.at(-1),h=d.document?{id:d.document.file_id,name:d.document.file_name??"file",type:d.document.mime_type}:g?{id:g.file_id,name:`photo-${d.message_id}`,type:""}:null;return{kind:"message",chat:String(d.chat.id),name:(b=d.from,[b?.first_name,b?.last_name].filter(Boolean).join(" ")||(b?.username?`@${b.username}`:"Someone")),words:(d.text??d.caption??"").trim(),files:h?[{name:h.name,fetch:()=>f(h.id,h.name,h.type)}]:[],unreadable:!!(d.voice||d.audio||d.video)}}(d);b&&a.incoming(b)}},async say(a,b,c){await e("sendMessage",{chat_id:a,text:b,link_preview_options:{is_disabled:!0},...c?.length?{reply_markup:{inline_keyboard:c.map(a=>[{text:a.text,callback_data:a.data}])}}:{}})},async typing(a){await e("sendChatAction",{chat_id:a,action:"typing"}).catch(()=>{})},async settle(a,b,c){await e("editMessageText",{chat_id:a,message_id:Number(b),text:c,link_preview_options:{is_disabled:!0}}).catch(()=>{})},async sendFile(a,b,c,d){let f=new FormData;f.set("chat_id",a),f.set(d?"photo":"document",new Blob([b]),c),await e(d?"sendPhoto":"sendDocument",f)}}}])},233398,a=>a.a(async(b,c)=>{try{var d=a.i(912714),e=a.i(203469),f=a.i(569572),g=a.i(552556),h=a.i(875931),i=a.i(674986),j=a.i(839430),k=a.i(344853),l=a.i(725466),m=a.i(92706),n=a.i(569549),o=a.i(143699),p=a.i(684321),q=a.i(821415),r=a.i(941981),s=a.i(176668),t=a.i(293480),u=a.i(182248),v=a.i(936292),w=a.i(479286),x=a.i(558067),y=a.i(129167),z=a.i(319261),A=b([h,i,j,k,l,n,o,r]);[h,i,j,k,l,n,o,r]=A.then?(await A)():A;let Q={telegram:a=>(0,z.createTelegram)(a),discord:a=>(0,w.createDiscord)(a),slack:(a,b)=>(0,y.createSlack)(a,b)},R=globalThis,S=R.__reach??={live:new Map,last:null,told:new Set,due:new Map,choices:new Map,listening:null,looking:null,idle:null},T=()=>e.appEvents.emit({type:"reach"});async function B(a){let b=await (0,l.readConfig)((0,x.reachPersonKey)(a));if(!b)return null;try{let a=JSON.parse(b);return"string"==typeof a.chat&&"string"==typeof a.name?{chat:a.chat,name:a.name}:null}catch{return null}}async function C(a){for(let b of a?[a]:x.REACH_CHANNELS){let c=S.live.get(b);c?.stop.abort(),S.live.delete(b),a&&(await (0,l.removeConfig)((0,x.reachPersonKey)(b)),c?.line&&await (0,n.endCall)(c.line.callId).catch(()=>{}));let d=await Promise.all(x.REACH_KEYS[b].map(l.readConfig));if(!d.every(a=>!!a))continue;let e={name:b,channel:Q[b](...d),stop:new AbortController,bot:null,link:null,problem:null,asking:null,line:null,turn:Promise.resolve()};S.live.set(b,e),D(e)}S.live.size&&(S.listening??=e.appEvents.subscribe(a=>{"threads"!==a.type||S.looking||(S.looking=setTimeout(()=>{S.looking=null,N().catch(a=>s.logger.error("reach: open work",a))},2e3))}),N().catch(a=>s.logger.error("reach: open work",a)),S.idle??=setInterval(()=>{H().catch(a=>s.logger.error("reach: idle lines",a))},f.REACH.idleMs).unref()),T()}async function D(a){let{signal:b}=a.stop,c=b=>{a.problem!==b&&(a.problem=b,T())};for(;!b.aborted;){try{await a.channel.listen({ready:(b,c)=>{a.bot=b,a.link=c,a.problem=null,T()},incoming:b=>void E(a,b).catch(b=>s.logger.error(`reach ${a.name}: what arrived`,b))},b)}catch(e){if(b.aborted)return;let d=e instanceof Error?e.message:String(e);if(e instanceof v.ChannelRefusal)return s.logger.warn(`reach ${a.name}: ${d}`),c(d);c(d)}await new Promise(a=>setTimeout(a,f.REACH.retryMs))}}async function E(a,b){let{channel:c}=a,d=await B(a.name);if("press"===b.kind){if(d?.chat!==b.chat)return;return P(a,d,b.data,b.under)}if(d?.chat!==b.chat)return d?void await c.say(b.chat,"This Thursday already answers someone else."):a.asking&&a.asking.chat!==b.chat?void await c.say(b.chat,"Someone else is already waiting to be let in here."):(a.asking={chat:b.chat,name:b.name},T(),void await c.say(b.chat,"Almost there. Open Thursday on your computer and press Allow, then write again."));S.last=a.name;let e=b.files.length?await (0,r.keepGivenFiles)(await Promise.all(b.files.map(a=>a.fetch()))):[],f=[b.words,...e].filter(Boolean).join("\n");if(!f){b.unreadable&&await c.say(b.chat,"I can read words, pictures and files here — not voice or video yet. Write it instead.");return}J(a,d,f,f)}async function F(a,b){let c=S.live.get(a),d=c?.asking;c&&d&&d.chat===b&&(await (0,l.writeConfig)((0,x.reachPersonKey)(a),JSON.stringify(d)),c.asking=null,T(),await c.channel.say(b,"You are in. Write here and Thursday answers.").catch(b=>s.logger.warn(`reach ${a}: could not say so`,b)))}async function G(a){await (0,l.removeConfig)((0,x.reachPersonKey)(a));let b=S.live.get(a);b&&await I(b),T()}async function H(){let a=Date.now();for(let b of S.live.values())b.line?.lastAt&&a-b.line.lastAt>f.REACH.idleMs&&await I(b)}async function I(a){let b=a.line;a.line=null,b&&await (0,n.endCall)(b.callId).catch(()=>{})}function J(a,b,c,d,e){let f=a.turn.then(()=>K(a,b,c,d,e));return a.turn=f.then(()=>{},()=>{}),f}async function K(a,b,c,d,e){let{channel:i}=a;i.typing(b.chat).catch(()=>{});let j=setInterval(()=>void i.typing(b.chat).catch(()=>{}),4e3);try{let h=g.LiveSettingsSchema.parse({}),j=a.line;(!j||Date.now()-j.lastAt>f.REACH.idleMs||!await (0,n.isCallOpen)(j.callId))&&(await I(a),a.line={...await (0,o.openTextCall)(h),messages:[],lastAt:0});let k=a.line,l=await (0,o.answerInWriting)({callId:k.callId,settings:h,standing:k.standing,messages:[...k.messages,{role:"user",content:c}],said:d});k.messages=l.messages,k.lastAt=Date.now();let m=(0,u.plainText)(l.text)||l.did.join("\n"),p=function(a){let b=[],c=a;for(;c.length>f.REACH.chars;){let a=c.slice(0,f.REACH.chars),d=Math.max(a.lastIndexOf("\n\n"),a.lastIndexOf("\n")),e=d>f.REACH.chars/2?d:f.REACH.chars;b.push(c.slice(0,e).trim()),c=c.slice(e).trim()}return c&&b.push(c),b}(m||"…");for(let[a,c]of p.entries())await i.say(b.chat,c,a===p.length-1?e:void 0);return await L(a,b,l.text),!0}catch(d){let c=(0,t.isPublicError)(d)?d.message:(0,h.modelErrorToString)(d);return s.logger.warn(`reach ${a.name}: ${c}`),await i.say(b.chat,c).catch(()=>{}),!1}finally{clearInterval(j)}}async function L(a,b,c){for(let e of(await (0,q.filesOnDisk)((0,p.pathsIn)(c),null)).slice(-f.REACH.files)){let c=await (0,q.insideWorkspace)(e),g=c?await (0,d.stat)(c).catch(()=>null):null;c&&g&&!(g.size>f.REACH.fileBytes)&&await a.channel.sendFile(b.chat,await (0,d.readFile)(c),e.split("/").pop()??"file","image"===(0,p.viewKindOf)(e)).catch(b=>s.logger.warn(`reach ${a.name}: could not send ${e}`,b))}}async function M(){for(let a of[...S.last?[S.last]:[],...x.REACH_CHANNELS.filter(a=>a!==S.last)]){let b=S.live.get(a),c=b?await B(a):null;if(b&&c)return{live:b,person:c}}return null}async function N(){if(!await M())return;let a=U(await (0,k.listInboxThreads)()),b=new Set(a.map(a=>a.key));for(let[a,c]of S.due)b.has(a)||(clearTimeout(c),S.due.delete(a));for(let a of S.told)b.has(a)||S.told.delete(a);for(let[a,c]of S.choices)b.has(`question:${c.question}`)||S.choices.delete(a);for(let b of a)S.told.has(b.key)||S.due.has(b.key)||S.due.set(b.key,setTimeout(()=>void O(b.key),f.REACH.notifyAfterMs))}let U=a=>(0,m.openWork)(a).filter(a=>"progress"!==a.kind);async function O(a){S.due.delete(a);let b=await M();if(!b||S.told.has(a))return;let c=await (0,k.listInboxThreads)(),d=U(c).find(b=>b.key===a);if(!d)return;let e=c.find(b=>b.room.questions.some(b=>`question:${b.id}`===a)),f=e?.room.questions.find(b=>`question:${b.id}`===a),g=(f?.options??[]).map((a,b)=>{let c=`${f?.id.slice(0,40)}:${b}`;return S.choices.set(c,{threadId:e?.id??"",bot:f?.bot??"",question:f?.id??"",answer:a}),{text:a,data:c}});S.told.add(a),await J(b.live,b.person,d.line,null,g)?await (0,j.acceptRoomRelays)(d.relayIds):S.told.delete(a)}async function P(a,b,c,d){let e=S.choices.get(c);if(!e)return void await a.channel.say(b.chat,"That question is no longer open here. Write your answer instead.");for(let[a,b]of S.choices)b.question===e.question&&S.choices.delete(a);try{await (0,i.answerThread)(e.threadId,e.answer,"user",e.bot),d&&await a.channel.settle(b.chat,d.id,`${d.text}
61
61
 
62
- → ${e.answer}`),a.line?.messages.push({role:"user",content:`[The user answered ${e.bot}'s question from their phone: ${e.answer}. It has reached ${e.bot}.]`})}catch(c){await a.channel.say(b.chat,(0,t.isPublicError)(c)?c.message:"That answer did not get through.")}}a.s(["allowReach",0,F,"declineReach",0,function(a){let b=R.live.get(a);b&&(b.asking=null),S()},"forgetReach",0,G,"reachChannelOf",0,a=>x.REACH_CHANNELS.find(b=>x.REACH_KEYS[b].includes(a))??null,"startReach",0,C]),c()}catch(a){c(a)}},!1),92706,a=>{"use strict";var b=a.i(569572),c=a.i(446957),d=a.i(706210);let e={message:"says",question:"asks",report:"reports",interrupted:"was cut off"},f={question:0,stopped:1,done:2,progress:3};function g(a){let c=a.trim();if(c.length<=b.CALL_RELAY.chars)return c;let d=c.slice(0,b.CALL_RELAY.chars),e=Math.max(d.lastIndexOf("\n\n"),d.lastIndexOf(". "),d.lastIndexOf(".\n"),d.lastIndexOf("。")),f=(e>b.CALL_RELAY.chars/3?d.slice(0,e+1):d).trim();return`${f}
62
+ → ${e.answer}`),a.line?.messages.push({role:"user",content:`[The user answered ${e.bot}'s question from their phone: ${e.answer}. It has reached ${e.bot}.]`})}catch(c){await a.channel.say(b.chat,(0,t.isPublicError)(c)?c.message:"That answer did not get through.")}}a.s(["allowReach",0,F,"declineReach",0,function(a){let b=S.live.get(a);b&&(b.asking=null),T()},"forgetReach",0,G,"reachChannelOf",0,a=>x.REACH_CHANNELS.find(b=>x.REACH_KEYS[b].includes(a))??null,"startReach",0,C]),c()}catch(a){c(a)}},!1),92706,a=>{"use strict";var b=a.i(569572),c=a.i(446957),d=a.i(706210);let e={message:"says",question:"asks",report:"reports",interrupted:"was cut off"},f={question:0,stopped:1,done:2,progress:3};function g(a){let c=a.trim();if(c.length<=b.CALL_RELAY.chars)return c;let d=c.slice(0,b.CALL_RELAY.chars),e=Math.max(d.lastIndexOf("\n\n"),d.lastIndexOf(". "),d.lastIndexOf(".\n"),d.lastIndexOf("。")),f=(e>b.CALL_RELAY.chars/3?d.slice(0,e+1):d).trim();return`${f}
63
63
  [The message goes on; the rest is in its thread on screen.]`}a.s(["openWork",0,function(a){let b=[];for(let h of a){let{relays:a,questions:i}=h.room,j=(0,d.toDate)(h.updatedAt).getTime(),k=(a,b)=>`[${a} → Thursday, thread "${h.label}" (${h.id}), ${b}.]`,l=(a,b)=>({kind:"relay",name:h.label,line:b,done:!0,bot:a});for(let c of i){let d=c.options?.length?` Options: ${c.options.join(" / ")}.`:"";b.push({rank:f.question,key:`question:${c.id}`,kind:"question",line:`${k(c.bot,"question")}
64
64
  ${g(c.text)}${d}`,relayIds:a.filter(a=>a.messageId===c.id).map(a=>a.id),show:l(c.bot,`${c.bot} asks`)})}let m=a.filter(a=>!i.some(b=>b.id===a.messageId)),n="done"===h.status,o="waiting"===h.status&&(0,c.isAppStop)(h.ask)&&!h.ask?.auto;if(n||o){if(h.seen)continue;let a=o?"stopped":"done",c="stopped"===a?`It stopped before finishing. Where it got to: ${g(h.ask?.question??h.outcome??"")}`:`Done. Its answer: ${g(h.outcome??"")}`;b.push({rank:f[a],key:`${a}:${h.id}@${j}`,kind:"ending",line:`${k(h.bot,a)}
65
65
  ${c}`,relayIds:m.map(a=>a.id),show:l(h.bot,"stopped"===a?`${h.bot} stopped`:`${h.bot} finished`)});continue}for(let a of m)b.push({rank:f.progress,key:`progress:${a.id}`,kind:"progress",line:`${k(a.bot,a.kind)}