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
@@ -1,6 +1,6 @@
1
- module.exports=[26444,a=>{"use strict";var b=a.i(187924),c=a.i(752562),d=a.i(589027),e=a.i(141146),f=a.i(738835),g=a.i(403512),h=a.i(164831);let i={name:"refresh-cw",size:24,node:[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]};i.node;let j=(0,h.default)(i),k={name:"server",size:24,node:[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]};k.node;let l=(0,h.default)(k);var m=a.i(951675),n=a.i(474215),o=a.i(572131),p=a.i(767561),q=a.i(340695),r=a.i(316474),s=a.i(205522),t=a.i(497895);let u=(0,o.memo)(({data:a,name:c,initialExpandDepth:d=2})=>{let e=(0,o.useMemo)(()=>"string"==typeof a?function(a){let b=a.trim();if(!(b.startsWith("{")&&b.endsWith("}"))&&!(b.startsWith("[")&&b.endsWith("]")))return{success:!1,data:a};try{return{success:!0,data:JSON.parse(a)}}catch{return{success:!1,data:a}}}(a).data:a,[a]);return(0,b.jsx)("div",{className:" text-sm transition-all duration-300",children:(0,b.jsx)(v,{data:e,name:c,depth:0,initialExpandDepth:d})})});u.displayName="JsonView";let v=(0,o.memo)(({data:a,name:c,depth:d=0,initialExpandDepth:e})=>{var f;let g=void 0===a?"undefined":Array.isArray(a)?"array":null===a?"null":typeof a,[h,i]=(0,o.useState)("string"!==g&&d<e),j={number:"text-blue-500",boolean:"text-amber-500",null:"text-purple-500",undefined:"text-gray-500",string:"text-foreground break-all whitespace-pre-wrap",default:"text-muted-foreground"};switch(g){case"object":case"array":let k,l,m;return l=(k=(f="array"===g)?a:Object.entries(a)).length,m={open:f?"[":"{",close:f?"]":"}",collapsed:f?"[ ... ]":"{ ... }",empty:f?"[]":"{}"},0===l?(0,b.jsxs)("div",{className:"flex items-center",children:[c&&(0,b.jsxs)("span",{className:"mr-1 text-muted-foreground",children:[c,":"]}),(0,b.jsx)("span",{className:"text-muted-foreground",children:m.empty})]}):(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsxs)("div",{className:"flex items-center mr-1 rounded cursor-pointer group hover:bg-input/30",onClick:()=>i(!h),children:[c&&(0,b.jsxs)("span",{className:"mr-1 text-muted-foreground hover:text-foreground",children:[c,":"]}),h?(0,b.jsx)("span",{className:"text-muted-foreground group-hover:text-foreground",children:m.open}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-muted-foreground group-hover:text-foreground",children:m.collapsed}),(0,b.jsxs)("span",{className:"ml-1 text-muted-foreground group-hover:text-foreground",children:[l," ",1===l?"item":"items"]})]})]}),h&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"pl-2 ml-4 border-l border-border",children:f?k.map((a,c)=>(0,b.jsx)("div",{className:"my-1",children:(0,b.jsx)(v,{data:a,name:`${c}`,depth:d+1,initialExpandDepth:e})},c)):k.map(([a,c])=>(0,b.jsx)("div",{className:"my-1",children:(0,b.jsx)(v,{data:c,name:a,depth:d+1,initialExpandDepth:e})},a))}),(0,b.jsx)("div",{className:"text-muted-foreground",children:m.close})]})]});case"string":return a.length>100?(0,b.jsxs)("div",{className:"flex mr-1 rounded group hover:bg-input/30",children:[c&&(0,b.jsxs)("span",{className:"mr-1 text-muted-foreground hover:text-foreground",children:[c,":"]}),(0,b.jsx)("pre",{className:(0,t.cn)(j.string,"cursor-pointer group-hover:text-foreground"),onClick:()=>i(!h),title:h?"Click to collapse":"Click to expand",children:h?`"${a}"`:`"${a.slice(0,100)}..."`})]}):(0,b.jsxs)("div",{className:"flex mr-1 rounded hover:bg-input/30",children:[c&&(0,b.jsxs)("span",{className:"mr-1 text-muted-foreground",children:[c,":"]}),(0,b.jsxs)("pre",{className:j.string,children:['"',a,'"']})]});case"undefined":return(0,b.jsxs)("div",{className:"flex items-center mr-1 rounded hover:bg-input/30",children:[c&&(0,b.jsxs)("span",{className:"mr-1 text-muted-foreground",children:[c,":"]}),(0,b.jsx)("span",{className:j.undefined,children:"undefined"})]});default:return(0,b.jsxs)("div",{className:"flex items-center mr-1 rounded hover:bg-input/30",children:[c&&(0,b.jsxs)("span",{className:"mr-1 text-muted-foreground",children:[c,":"]}),(0,b.jsx)("span",{className:j[g]||j.default,children:null===a?"null":String(a)})]})}});v.displayName="JsonNode";var w=a.i(446181),x=a.i(341889),y=a.i(280281),z=a.i(621958),A=a.i(546893),B=a.i(864037),C=a.i(405050);let D=(0,C.createServerReference)("7f59e554bf61a252814429c5c20d4990c9c511e34c",C.callServer,void 0,C.findSourceMapURL,"callToolAction"),E=(0,C.createServerReference)("7f595858ee3c9f58da5a2d30fb299bea22d8b2a4e2",C.callServer,void 0,C.findSourceMapURL,"deleteServerAction"),F=(0,C.createServerReference)("7f2567b779055e4492dd88b3a33d42b38baaac7f24",C.callServer,void 0,C.findSourceMapURL,"refreshServerAction"),G=(0,C.createServerReference)("7f14156357071ab1027d6ee1a94e32f6b1c882cfe6",C.callServer,void 0,C.findSourceMapURL,"registerServerAction");var H=a.i(156757),I=a.i(199169);let J=H.z.object({url:H.z.url(),headers:H.z.record(H.z.string(),H.z.string()).optional(),oauthClient:H.z.object({clientId:H.z.string().min(1),clientSecret:H.z.string().optional()}).optional()}),K=H.z.object({command:H.z.string().min(1),args:H.z.array(H.z.string()).optional(),env:H.z.record(H.z.string(),H.z.string()).optional()}),L=H.z.union([J,K]),M=H.z.object({name:H.z.string(),description:H.z.string().optional(),inputSchema:H.z.looseObject({}).optional(),outputSchema:H.z.looseObject({}).optional()});function N(a){return"url"in a}H.z.object({clientInformation:H.z.looseObject({}).optional(),tokens:H.z.looseObject({}).optional(),authorizationServer:H.z.looseObject({}).optional(),codeVerifier:H.z.string().optional(),state:H.z.string().optional()});let O=H.z.object({name:H.z.string().min(1).max(40),config:L,toolCount:H.z.number().int(),lastError:H.z.string().nullish()}),P=M.extend({id:H.z.number().int(),description:H.z.string().nullish()});O.omit({toolCount:!0}).extend({tools:P.array().default([]),toolsSyncedAt:I.DateLikeSchema});let Q=H.z.object({name:H.z.string().min(1,"Name is required").max(40).regex(/^[a-zA-Z0-9_-]+$/,"Only letters, numbers, - and _ are allowed"),config:L}),R=H.z.union([H.z.object({mcpServers:H.z.record(H.z.string(),L)}),H.z.record(H.z.string(),L)]),S=[{name:"todoist",icon:"todoist.com",description:"Tasks, projects, and due dates",config:{url:"https://ai.todoist.net/mcp"}},{name:"home-assistant",icon:"home-assistant.io",description:"Lights, switches, and the rest of the house — your address and a long-lived token",config:{url:"http://homeassistant.local:8123/api/mcp",headers:{Authorization:"Bearer <your-home-assistant-token>"}}},{name:"kiwi",icon:"kiwi.com",description:"Flight search — no account",config:{url:"https://mcp.kiwi.com"}},{name:"zapier",icon:"zapier.com",description:"Gmail, Google Calendar, and thousands of apps you connect there",config:{url:"https://mcp.zapier.com/api/v1/connect"}},{name:"notion",icon:"notion.so",description:"Pages, databases, and search",config:{url:"https://mcp.notion.com/mcp"}},{name:"canva",icon:"canva.com",description:"Create and manage designs",config:{url:"https://mcp.canva.com/mcp"}},{name:"slack",icon:"slack.com",description:"Channels, messages, and search",config:{url:"https://mcp.slack.com/mcp"}},{name:"box",icon:"box.com",description:"Files, folders, and content search",config:{url:"https://mcp.box.com/mcp"}},{name:"airtable",icon:"airtable.com",description:"Bases, tables, and records",config:{url:"https://mcp.airtable.com/mcp"}},{name:"fireflies",icon:"fireflies.ai",description:"Meeting transcripts and summaries",config:{url:"https://mcp.fireflies.ai/mcp"}},{name:"figma",icon:"figma.com",description:"Design files and components",config:{url:"https://mcp.figma.com/mcp"}},{name:"asana",icon:"asana.com",description:"Tasks, projects, and portfolios",config:{url:"https://mcp.asana.com/mcp"}},{name:"monday",icon:"monday.com",description:"Boards, items, and updates",config:{url:"https://mcp.monday.com/mcp"}},{name:"clickup",icon:"clickup.com",description:"Tasks, docs, and spaces",config:{url:"https://mcp.clickup.com/mcp"}},{name:"linear",icon:"linear.app",description:"Issues, projects, and cycles",config:{url:"https://mcp.linear.app/mcp"}},{name:"atlassian",icon:"atlassian.com",description:"Jira and Confluence",config:{url:"https://mcp.atlassian.com/v1/mcp"}},{name:"hubspot",icon:"hubspot.com",description:"Contacts, deals, and companies",config:{url:"https://app.hubspot.com/mcp/v1/http"}},{name:"attio",icon:"attio.com",description:"CRM records and lists",config:{url:"https://mcp.attio.com/mcp"}},{name:"intercom",icon:"intercom.com",description:"Conversations and support tickets",config:{url:"https://mcp.intercom.com/mcp"}},{name:"wix",icon:"wix.com",description:"Sites, stores, and bookings",config:{url:"https://mcp.wix.com/mcp"}},{name:"webflow",icon:"webflow.com",description:"Sites, pages, and CMS collections",config:{url:"https://mcp.webflow.com/mcp"}},{name:"sanity",icon:"sanity.io",description:"Structured content and datasets",config:{url:"https://mcp.sanity.io/mcp"}},{name:"stripe",icon:"stripe.com",description:"Payments, invoices, and customers",config:{url:"https://mcp.stripe.com"}},{name:"paypal",icon:"paypal.com",description:"Payments and orders",config:{url:"https://mcp.paypal.com/mcp"}},{name:"square",icon:"squareup.com",description:"Payments, catalog, and orders",config:{url:"https://mcp.squareup.com/mcp"}},{name:"ramp",icon:"ramp.com",description:"Spend, cards, and transactions",config:{url:"https://mcp.ramp.com/mcp"}},{name:"github",icon:"github.com",description:"Repos, issues, PRs — paste a personal access token",config:{url:"https://api.githubcopilot.com/mcp/",headers:{Authorization:"Bearer <your-github-pat>"}}},{name:"vercel",icon:"vercel.com",description:"Deployments and projects",config:{url:"https://mcp.vercel.com"}},{name:"netlify",icon:"netlify.com",description:"Sites, builds, and deploys",config:{url:"https://mcp.netlify.com/mcp"}},{name:"cloudflare",icon:"cloudflare.com",description:"Workers bindings — D1, R2, KV",config:{url:"https://bindings.mcp.cloudflare.com/mcp"}},{name:"supabase",icon:"supabase.com",description:"Projects, tables, and SQL",config:{url:"https://mcp.supabase.com/mcp"}},{name:"neon",icon:"neon.tech",description:"Postgres branches and queries",config:{url:"https://mcp.neon.tech/mcp"}},{name:"prisma",icon:"prisma.io",description:"Postgres databases and schema",config:{url:"https://mcp.prisma.io/mcp"}},{name:"sentry",icon:"sentry.io",description:"Errors and performance issues",config:{url:"https://mcp.sentry.dev/mcp"}},{name:"grafana",icon:"grafana.com",description:"Dashboards, metrics, and alerts",config:{url:"https://mcp.grafana.com/mcp"}},{name:"semgrep",icon:"semgrep.dev",description:"Scan code for security findings",config:{url:"https://mcp.semgrep.ai/mcp"}},{name:"postman",icon:"postman.com",description:"Collections, environments, and requests",config:{url:"https://mcp.postman.com/mcp"}},{name:"resend",icon:"resend.com",description:"Send email and manage audiences",config:{url:"https://mcp.resend.com/mcp"}},{name:"hugging-face",icon:"huggingface.co",description:"Models, datasets, and Spaces",config:{url:"https://huggingface.co/mcp"}},{name:"apify",icon:"apify.com",description:"Run scrapers and automation actors",config:{url:"https://mcp.apify.com"}},{name:"exa",icon:"exa.ai",description:"Web search for agents",config:{url:"https://mcp.exa.ai/mcp"}},{name:"kagi",icon:"kagi.com",description:"Search, summarize, and answer",config:{url:"https://mcp.kagi.com/mcp"}},{name:"context7",icon:"context7.com",description:"Up-to-date library docs",config:{url:"https://mcp.context7.com/mcp"}},{name:"deepwiki",icon:"deepwiki.com",description:"Ask questions about any GitHub repo",config:{url:"https://mcp.deepwiki.com/mcp"}},{name:"microsoft-learn",icon:"learn.microsoft.com",description:"Microsoft and Azure docs — no account",config:{url:"https://learn.microsoft.com/api/mcp"}},{name:"aws-knowledge",icon:"aws.amazon.com",description:"AWS docs and API references — no account",config:{url:"https://knowledge-mcp.global.api.aws"}},{name:"cloudflare-docs",icon:"developers.cloudflare.com",description:"Cloudflare docs — no account",config:{url:"https://docs.mcp.cloudflare.com/mcp"}},{name:"stack-overflow",icon:"stackoverflow.com",description:"Questions, answers, and teams",config:{url:"https://mcp.stackoverflow.com"}},{name:"playwright",icon:"playwright.dev",description:"Drive a real browser",config:{command:"npx",args:["@playwright/mcp@latest"]}},{name:"chrome-devtools",icon:"developer.chrome.com",description:"Inspect and debug Chrome",config:{command:"npx",args:["chrome-devtools-mcp@latest"]}}];var T=a.i(619477),U=a.i(30681),V=a.i(313237),W=a.i(759497);function X({name:a,onDone:c}){let{data:d,isLoading:e}=(0,W.useServerRoute)(p.queryKey.mcpServer(a)),[f,g]=(0,V.useServerAction)(F,{...ah,onOk:b=>{ah.onOk(b),(0,W.revalidate)(p.queryKey.mcpServer(a))}}),[h,i]=(0,V.useServerAction)(E,{okMessage:"Server deleted",onOk:()=>{c(),(0,W.revalidate)(p.queryKey.mcp)}}),k=async()=>{await w.notify.confirm({title:`Delete ${a}?`,description:"Its connection and saved authorization go with it.",okText:"Delete",destructive:!0})&&h(a)};if(e)return(0,b.jsx)(T.SettingSkeleton,{rows:4});if(!d)return null;let l=d.tools.length,n=N(d.config)?"HTTP":"STDIO";return(0,b.jsxs)(T.SettingDialogContent,{title:d.name,description:(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[(0,b.jsx)("span",{className:"shrink-0 rounded-sm bg-muted px-1.5 py-0.5 font-mono text-[10px]",children:n}),(0,b.jsx)("span",{className:"truncate font-mono",children:aj(d.config)})]}),footer:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(q.Button,{variant:"ghost",loading:i,onClick:k,children:[(0,b.jsx)(m.Trash2,{}),"Delete"]}),(0,b.jsxs)(q.Button,{variant:"outline",loading:g,onClick:()=>f(d.name),children:[(0,b.jsx)(j,{}),"Reconnect"]})]}),children:[d.lastError&&(0,b.jsx)("p",{className:"rounded-lg bg-destructive/10 px-3 py-2 font-mono text-xs text-destructive",children:d.lastError}),(0,b.jsxs)("p",{className:"text-right font-mono text-xs text-muted-foreground",children:[l," ",1===l?"tool":"tools"]}),d.tools.map(a=>(0,b.jsx)($,{tool:a,serverName:d.name},a.name))]})}function Y({server:a}){let d=a.toolCount,f=a.lastError?"error":d>0?"connected":"idle";return(0,b.jsxs)("button",{type:"button",onClick:()=>{w.notify.component({className:"sm:max-w-3xl",renderer:({close:c})=>(0,b.jsx)(X,{name:a.name,onDone:c})})},className:"group flex w-full items-center gap-3 p-4 text-left outline-none transition-colors hover:bg-muted/50 focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",children:[(0,b.jsx)("span",{className:"grid size-10 shrink-0 place-items-center rounded-lg bg-muted text-muted-foreground",children:(0,b.jsx)(Z,{server:a})}),(0,b.jsxs)("span",{className:"min-w-0 flex-1 space-y-0.5",children:[(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:a.name}),"connected"===f&&(0,b.jsx)(c.Check,{className:"size-3 shrink-0 text-muted-foreground"})]}),(0,b.jsx)("span",{className:"block truncate text-xs text-muted-foreground",children:"error"===f?(0,b.jsx)("span",{className:"text-destructive",children:a.lastError}):(0,b.jsxs)(b.Fragment,{children:[d>0?`${d} ${1===d?"tool":"tools"}`:"No tools yet",(0,b.jsxs)("span",{className:"font-mono text-[11px] text-muted-foreground/70",children:[" · ",aj(a.config)]})]})})]}),(0,b.jsx)(e.ChevronRight,{className:"size-4 shrink-0 text-muted-foreground/60 transition-colors group-hover:text-foreground"})]})}function Z({server:a}){let c,d=(c=S.find(b=>N(b.config)?N(a.config)&&b.config.url.replace(/\/+$/,"")===a.config.url.replace(/\/+$/,""):!N(a.config)&&b.config.command===a.config.command&&(b.config.args??[]).join(" ")===(a.config.args??[]).join(" "))??S.find(b=>b.name===a.name),c?.icon);return d?(0,b.jsx)(x.SiteIcon,{host:d,className:"size-5",fallback:(0,b.jsx)(l,{className:"size-4"})}):(0,b.jsx)(l,{className:"size-4"})}function $({tool:a,serverName:c}){let[f,g]=(0,o.useState)(!1),[h,i]=(0,o.useState)(!1),[j,k]=(0,o.useState)(!1),l=[["inputSchema",a.inputSchema],["outputSchema",a.outputSchema]].filter(([,a])=>a);return(0,b.jsxs)("div",{className:"rounded-xl border border-border/60 bg-background p-4",children:[(0,b.jsxs)("div",{className:"min-w-0 space-y-1",children:[(0,b.jsx)("span",{className:"block truncate font-mono text-sm",children:a.name}),a.description?(0,b.jsx)("p",{className:(0,t.cn)("text-xs text-muted-foreground",!j&&"line-clamp-2",a.description.length>140&&"cursor-pointer"),onClick:()=>k(!j),children:a.description}):null]}),(0,b.jsxs)("div",{className:"mt-2 flex justify-end gap-1",children:[l.length>0&&(0,b.jsxs)(q.Button,{size:"xs",variant:"ghost",className:"font-mono",onClick:()=>g(!f),children:[f?(0,b.jsx)(d.ChevronDown,{}):(0,b.jsx)(e.ChevronRight,{}),"Schema"]}),(0,b.jsxs)(q.Button,{size:"xs",variant:"ghost",className:"font-mono",onClick:()=>i(!h),children:[h?(0,b.jsx)(d.ChevronDown,{}):(0,b.jsx)(e.ChevronRight,{}),"Test"]})]}),f?(0,b.jsx)("div",{className:"mt-2 space-y-3 overflow-x-auto rounded-lg border border-input p-3",children:l.map(([a,c])=>(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("span",{className:"block font-mono text-xs text-muted-foreground",children:"inputSchema"===a?"in":"out"}),(0,b.jsx)("pre",{className:"font-mono text-xs leading-relaxed whitespace-pre",children:function a(b,c=0){if(!b||"object"!=typeof b)return"unknown";let d=" ".repeat(c+1),e=" ".repeat(c);if(Array.isArray(b.enum))return b.enum.map(a=>JSON.stringify(a)).join(" | ");let f=b.anyOf??b.oneOf;if(Array.isArray(f))return f.map(b=>a(b,c)).join(" | ");if("array"===b.type){let d=a(b.items,c);return/[|{]/.test(d)?`(${d})[]`:`${d}[]`}if("object"===b.type||b.properties){let f=b.properties;if(!f||0===Object.keys(f).length)return"{}";let g=b.required??[],h=Object.entries(f).map(([b,e])=>{let f=g.includes(b)?"":"?",h=e?.description,i="string"==typeof h&&h.length<=60?` // ${h}`:"";return`${d}${b}${f}: ${a(e,c+1)}${i}`});return`{
1
+ module.exports=[26444,a=>{"use strict";var b=a.i(187924),c=a.i(752562),d=a.i(589027),e=a.i(141146),f=a.i(738835),g=a.i(403512),h=a.i(164831);let i={name:"refresh-cw",size:24,node:[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]};i.node;let j=(0,h.default)(i),k={name:"server",size:24,node:[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]};k.node;let l=(0,h.default)(k);var m=a.i(951675),n=a.i(474215),o=a.i(572131),p=a.i(767561),q=a.i(340695),r=a.i(316474),s=a.i(205522),t=a.i(497895);let u=(0,o.memo)(({data:a,name:c,initialExpandDepth:d=2})=>{let e=(0,o.useMemo)(()=>"string"==typeof a?function(a){let b=a.trim();if(!(b.startsWith("{")&&b.endsWith("}"))&&!(b.startsWith("[")&&b.endsWith("]")))return{success:!1,data:a};try{return{success:!0,data:JSON.parse(a)}}catch{return{success:!1,data:a}}}(a).data:a,[a]);return(0,b.jsx)("div",{className:" text-sm transition-all duration-300",children:(0,b.jsx)(v,{data:e,name:c,depth:0,initialExpandDepth:d})})});u.displayName="JsonView";let v=(0,o.memo)(({data:a,name:c,depth:d=0,initialExpandDepth:e})=>{var f;let g=void 0===a?"undefined":Array.isArray(a)?"array":null===a?"null":typeof a,[h,i]=(0,o.useState)("string"!==g&&d<e),j={number:"text-blue-500",boolean:"text-amber-500",null:"text-purple-500",undefined:"text-gray-500",string:"text-foreground break-all whitespace-pre-wrap",default:"text-muted-foreground"};switch(g){case"object":case"array":let k,l,m;return l=(k=(f="array"===g)?a:Object.entries(a)).length,m={open:f?"[":"{",close:f?"]":"}",collapsed:f?"[ ... ]":"{ ... }",empty:f?"[]":"{}"},0===l?(0,b.jsxs)("div",{className:"flex items-center",children:[c&&(0,b.jsxs)("span",{className:"mr-1 text-muted-foreground",children:[c,":"]}),(0,b.jsx)("span",{className:"text-muted-foreground",children:m.empty})]}):(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsxs)("div",{className:"flex items-center mr-1 rounded cursor-pointer group hover:bg-input/30",onClick:()=>i(!h),children:[c&&(0,b.jsxs)("span",{className:"mr-1 text-muted-foreground hover:text-foreground",children:[c,":"]}),h?(0,b.jsx)("span",{className:"text-muted-foreground group-hover:text-foreground",children:m.open}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-muted-foreground group-hover:text-foreground",children:m.collapsed}),(0,b.jsxs)("span",{className:"ml-1 text-muted-foreground group-hover:text-foreground",children:[l," ",1===l?"item":"items"]})]})]}),h&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"pl-2 ml-4 border-l border-border",children:f?k.map((a,c)=>(0,b.jsx)("div",{className:"my-1",children:(0,b.jsx)(v,{data:a,name:`${c}`,depth:d+1,initialExpandDepth:e})},c)):k.map(([a,c])=>(0,b.jsx)("div",{className:"my-1",children:(0,b.jsx)(v,{data:c,name:a,depth:d+1,initialExpandDepth:e})},a))}),(0,b.jsx)("div",{className:"text-muted-foreground",children:m.close})]})]});case"string":return a.length>100?(0,b.jsxs)("div",{className:"flex mr-1 rounded group hover:bg-input/30",children:[c&&(0,b.jsxs)("span",{className:"mr-1 text-muted-foreground hover:text-foreground",children:[c,":"]}),(0,b.jsx)("pre",{className:(0,t.cn)(j.string,"cursor-pointer group-hover:text-foreground"),onClick:()=>i(!h),title:h?"Click to collapse":"Click to expand",children:h?`"${a}"`:`"${a.slice(0,100)}..."`})]}):(0,b.jsxs)("div",{className:"flex mr-1 rounded hover:bg-input/30",children:[c&&(0,b.jsxs)("span",{className:"mr-1 text-muted-foreground",children:[c,":"]}),(0,b.jsxs)("pre",{className:j.string,children:['"',a,'"']})]});case"undefined":return(0,b.jsxs)("div",{className:"flex items-center mr-1 rounded hover:bg-input/30",children:[c&&(0,b.jsxs)("span",{className:"mr-1 text-muted-foreground",children:[c,":"]}),(0,b.jsx)("span",{className:j.undefined,children:"undefined"})]});default:return(0,b.jsxs)("div",{className:"flex items-center mr-1 rounded hover:bg-input/30",children:[c&&(0,b.jsxs)("span",{className:"mr-1 text-muted-foreground",children:[c,":"]}),(0,b.jsx)("span",{className:j[g]||j.default,children:null===a?"null":String(a)})]})}});v.displayName="JsonNode";var w=a.i(446181),x=a.i(341889),y=a.i(280281),z=a.i(621958),A=a.i(546893),B=a.i(864037),C=a.i(405050);let D=(0,C.createServerReference)("7f0b922637590726045ca47318cb6e60183b7a5019",C.callServer,void 0,C.findSourceMapURL,"callToolAction"),E=(0,C.createServerReference)("7fc49faef09006d9cb0bf43007b1499cab738531c5",C.callServer,void 0,C.findSourceMapURL,"deleteServerAction"),F=(0,C.createServerReference)("7f868ad6bbcd2eb1dda03b79dd75bfa74d592dba97",C.callServer,void 0,C.findSourceMapURL,"refreshServerAction"),G=(0,C.createServerReference)("7f58282e9535aa746a4e1210617d21d0f05a287287",C.callServer,void 0,C.findSourceMapURL,"registerServerAction");var H=a.i(156757),I=a.i(199169);let J=H.z.object({url:H.z.url(),headers:H.z.record(H.z.string(),H.z.string()).optional(),oauthClient:H.z.object({clientId:H.z.string().min(1),clientSecret:H.z.string().optional()}).optional()}),K=H.z.object({command:H.z.string().min(1),args:H.z.array(H.z.string()).optional(),env:H.z.record(H.z.string(),H.z.string()).optional()}),L=H.z.union([J,K]),M=H.z.object({name:H.z.string(),description:H.z.string().optional(),inputSchema:H.z.looseObject({}).optional(),outputSchema:H.z.looseObject({}).optional()});function N(a){return"url"in a}H.z.object({clientInformation:H.z.looseObject({}).optional(),tokens:H.z.looseObject({}).optional(),authorizationServer:H.z.looseObject({}).optional(),codeVerifier:H.z.string().optional(),state:H.z.string().optional()});let O=H.z.object({name:H.z.string().min(1).max(40),config:L,toolCount:H.z.number().int(),lastError:H.z.string().nullish()}),P=M.extend({id:H.z.number().int(),description:H.z.string().nullish()});O.omit({toolCount:!0}).extend({tools:P.array().default([]),toolsSyncedAt:I.DateLikeSchema});let Q=H.z.object({name:H.z.string().min(1,"Name is required").max(40).regex(/^[a-zA-Z0-9_-]+$/,"Only letters, numbers, - and _ are allowed"),config:L}),R=H.z.union([H.z.object({mcpServers:H.z.record(H.z.string(),L)}),H.z.record(H.z.string(),L)]),S=[{name:"todoist",icon:"todoist.com",description:"Tasks, projects, and due dates",config:{url:"https://ai.todoist.net/mcp"}},{name:"home-assistant",icon:"home-assistant.io",description:"Lights, switches, and the rest of the house — your address and a long-lived token",config:{url:"http://homeassistant.local:8123/api/mcp",headers:{Authorization:"Bearer <your-home-assistant-token>"}}},{name:"kiwi",icon:"kiwi.com",description:"Flight search — no account",config:{url:"https://mcp.kiwi.com"}},{name:"zapier",icon:"zapier.com",description:"Gmail, Google Calendar, and thousands of apps you connect there",config:{url:"https://mcp.zapier.com/api/v1/connect"}},{name:"notion",icon:"notion.so",description:"Pages, databases, and search",config:{url:"https://mcp.notion.com/mcp"}},{name:"canva",icon:"canva.com",description:"Create and manage designs",config:{url:"https://mcp.canva.com/mcp"}},{name:"slack",icon:"slack.com",description:"Channels, messages, and search",config:{url:"https://mcp.slack.com/mcp"}},{name:"box",icon:"box.com",description:"Files, folders, and content search",config:{url:"https://mcp.box.com/mcp"}},{name:"airtable",icon:"airtable.com",description:"Bases, tables, and records",config:{url:"https://mcp.airtable.com/mcp"}},{name:"fireflies",icon:"fireflies.ai",description:"Meeting transcripts and summaries",config:{url:"https://mcp.fireflies.ai/mcp"}},{name:"figma",icon:"figma.com",description:"Design files and components",config:{url:"https://mcp.figma.com/mcp"}},{name:"asana",icon:"asana.com",description:"Tasks, projects, and portfolios",config:{url:"https://mcp.asana.com/mcp"}},{name:"monday",icon:"monday.com",description:"Boards, items, and updates",config:{url:"https://mcp.monday.com/mcp"}},{name:"clickup",icon:"clickup.com",description:"Tasks, docs, and spaces",config:{url:"https://mcp.clickup.com/mcp"}},{name:"linear",icon:"linear.app",description:"Issues, projects, and cycles",config:{url:"https://mcp.linear.app/mcp"}},{name:"atlassian",icon:"atlassian.com",description:"Jira and Confluence",config:{url:"https://mcp.atlassian.com/v1/mcp"}},{name:"hubspot",icon:"hubspot.com",description:"Contacts, deals, and companies",config:{url:"https://app.hubspot.com/mcp/v1/http"}},{name:"attio",icon:"attio.com",description:"CRM records and lists",config:{url:"https://mcp.attio.com/mcp"}},{name:"intercom",icon:"intercom.com",description:"Conversations and support tickets",config:{url:"https://mcp.intercom.com/mcp"}},{name:"wix",icon:"wix.com",description:"Sites, stores, and bookings",config:{url:"https://mcp.wix.com/mcp"}},{name:"webflow",icon:"webflow.com",description:"Sites, pages, and CMS collections",config:{url:"https://mcp.webflow.com/mcp"}},{name:"sanity",icon:"sanity.io",description:"Structured content and datasets",config:{url:"https://mcp.sanity.io/mcp"}},{name:"stripe",icon:"stripe.com",description:"Payments, invoices, and customers",config:{url:"https://mcp.stripe.com"}},{name:"paypal",icon:"paypal.com",description:"Payments and orders",config:{url:"https://mcp.paypal.com/mcp"}},{name:"square",icon:"squareup.com",description:"Payments, catalog, and orders",config:{url:"https://mcp.squareup.com/mcp"}},{name:"ramp",icon:"ramp.com",description:"Spend, cards, and transactions",config:{url:"https://mcp.ramp.com/mcp"}},{name:"github",icon:"github.com",description:"Repos, issues, PRs — paste a personal access token",config:{url:"https://api.githubcopilot.com/mcp/",headers:{Authorization:"Bearer <your-github-pat>"}}},{name:"vercel",icon:"vercel.com",description:"Deployments and projects",config:{url:"https://mcp.vercel.com"}},{name:"netlify",icon:"netlify.com",description:"Sites, builds, and deploys",config:{url:"https://mcp.netlify.com/mcp"}},{name:"cloudflare",icon:"cloudflare.com",description:"Workers bindings — D1, R2, KV",config:{url:"https://bindings.mcp.cloudflare.com/mcp"}},{name:"supabase",icon:"supabase.com",description:"Projects, tables, and SQL",config:{url:"https://mcp.supabase.com/mcp"}},{name:"neon",icon:"neon.tech",description:"Postgres branches and queries",config:{url:"https://mcp.neon.tech/mcp"}},{name:"prisma",icon:"prisma.io",description:"Postgres databases and schema",config:{url:"https://mcp.prisma.io/mcp"}},{name:"sentry",icon:"sentry.io",description:"Errors and performance issues",config:{url:"https://mcp.sentry.dev/mcp"}},{name:"grafana",icon:"grafana.com",description:"Dashboards, metrics, and alerts",config:{url:"https://mcp.grafana.com/mcp"}},{name:"semgrep",icon:"semgrep.dev",description:"Scan code for security findings",config:{url:"https://mcp.semgrep.ai/mcp"}},{name:"postman",icon:"postman.com",description:"Collections, environments, and requests",config:{url:"https://mcp.postman.com/mcp"}},{name:"resend",icon:"resend.com",description:"Send email and manage audiences",config:{url:"https://mcp.resend.com/mcp"}},{name:"hugging-face",icon:"huggingface.co",description:"Models, datasets, and Spaces",config:{url:"https://huggingface.co/mcp"}},{name:"apify",icon:"apify.com",description:"Run scrapers and automation actors",config:{url:"https://mcp.apify.com"}},{name:"exa",icon:"exa.ai",description:"Web search for agents",config:{url:"https://mcp.exa.ai/mcp"}},{name:"kagi",icon:"kagi.com",description:"Search, summarize, and answer",config:{url:"https://mcp.kagi.com/mcp"}},{name:"context7",icon:"context7.com",description:"Up-to-date library docs",config:{url:"https://mcp.context7.com/mcp"}},{name:"deepwiki",icon:"deepwiki.com",description:"Ask questions about any GitHub repo",config:{url:"https://mcp.deepwiki.com/mcp"}},{name:"microsoft-learn",icon:"learn.microsoft.com",description:"Microsoft and Azure docs — no account",config:{url:"https://learn.microsoft.com/api/mcp"}},{name:"aws-knowledge",icon:"aws.amazon.com",description:"AWS docs and API references — no account",config:{url:"https://knowledge-mcp.global.api.aws"}},{name:"cloudflare-docs",icon:"developers.cloudflare.com",description:"Cloudflare docs — no account",config:{url:"https://docs.mcp.cloudflare.com/mcp"}},{name:"stack-overflow",icon:"stackoverflow.com",description:"Questions, answers, and teams",config:{url:"https://mcp.stackoverflow.com"}},{name:"playwright",icon:"playwright.dev",description:"Drive a real browser",config:{command:"npx",args:["@playwright/mcp@latest"]}},{name:"chrome-devtools",icon:"developer.chrome.com",description:"Inspect and debug Chrome",config:{command:"npx",args:["chrome-devtools-mcp@latest"]}}];var T=a.i(619477),U=a.i(30681),V=a.i(313237),W=a.i(759497);function X({name:a,onDone:c}){let[d,e]=(0,o.useState)(""),{data:f,isLoading:g}=(0,W.useServerRoute)(p.queryKey.mcpServer(a)),[h,i]=(0,V.useServerAction)(F,{...ah,onOk:b=>{ah.onOk(b),(0,W.revalidate)(p.queryKey.mcpServer(a))}}),[k,l]=(0,V.useServerAction)(E,{okMessage:"Server deleted",onOk:()=>{c(),(0,W.revalidate)(p.queryKey.mcp)}}),n=async()=>{await w.notify.confirm({title:`Delete ${a}?`,description:"Its connection and saved authorization go with it.",okText:"Delete",destructive:!0})&&k(a)};if(g)return(0,b.jsx)(T.SettingSkeleton,{rows:4});if(!f)return null;let r=f.tools.length,s=d.trim().toLowerCase(),t=s?f.tools.filter(a=>`${a.name} ${a.description??""}`.toLowerCase().includes(s)):f.tools,u=N(f.config)?"HTTP":"STDIO";return(0,b.jsxs)(T.SettingDialogContent,{title:f.name,description:(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[(0,b.jsx)("span",{className:"shrink-0 rounded-sm bg-muted px-1.5 py-0.5 font-mono text-[10px]",children:u}),(0,b.jsx)("span",{className:"truncate font-mono",children:aj(f.config)})]}),footer:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(q.Button,{variant:"ghost",loading:l,onClick:n,className:"mr-auto text-destructive hover:text-destructive",children:[(0,b.jsx)(m.Trash2,{}),"Delete"]}),(0,b.jsxs)(q.Button,{variant:"outline",loading:i,onClick:()=>h(f.name),children:[(0,b.jsx)(j,{}),"Reconnect"]})]}),children:[f.lastError&&(0,b.jsx)("p",{className:"rounded-lg bg-destructive/10 px-3 py-2 font-mono text-xs text-destructive",children:f.lastError}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)(T.SettingFilter,{value:d,onChange:e,placeholder:"Filter tools"}),(0,b.jsxs)("span",{className:"shrink-0 font-mono text-xs text-muted-foreground",children:[r," ",1===r?"tool":"tools"]})]}),t.map(a=>(0,b.jsx)($,{tool:a,serverName:f.name},a.name)),0===t.length&&r>0&&(0,b.jsx)("p",{className:"py-6 text-center text-sm text-muted-foreground",children:"No tool here goes by that."})]})}function Y({server:a}){let d=a.toolCount,f=a.lastError?"error":d>0?"connected":"idle";return(0,b.jsxs)("button",{type:"button",onClick:()=>{w.notify.component({className:"sm:max-w-3xl",renderer:({close:c})=>(0,b.jsx)(X,{name:a.name,onDone:c})})},className:"group flex w-full items-center gap-3 p-4 text-left outline-none transition-colors hover:bg-muted/50 focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",children:[(0,b.jsx)("span",{className:"grid size-10 shrink-0 place-items-center rounded-lg bg-muted text-muted-foreground",children:(0,b.jsx)(Z,{server:a})}),(0,b.jsxs)("span",{className:"min-w-0 flex-1 space-y-0.5",children:[(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:a.name}),"connected"===f&&(0,b.jsx)(c.Check,{className:"size-3 shrink-0 text-muted-foreground"})]}),(0,b.jsx)("span",{className:"block truncate text-xs text-muted-foreground",children:"error"===f?(0,b.jsx)("span",{className:"text-destructive",children:a.lastError}):(0,b.jsxs)(b.Fragment,{children:[d>0?`${d} ${1===d?"tool":"tools"}`:"No tools yet",(0,b.jsxs)("span",{className:"font-mono text-[11px] text-muted-foreground/70",children:[" · ",aj(a.config)]})]})})]}),(0,b.jsx)(e.ChevronRight,{className:"size-4 shrink-0 text-muted-foreground/60 transition-colors group-hover:text-foreground"})]})}function Z({server:a}){let c,d=(c=S.find(b=>N(b.config)?N(a.config)&&b.config.url.replace(/\/+$/,"")===a.config.url.replace(/\/+$/,""):!N(a.config)&&b.config.command===a.config.command&&(b.config.args??[]).join(" ")===(a.config.args??[]).join(" "))??S.find(b=>b.name===a.name),c?.icon);return d?(0,b.jsx)(x.SiteIcon,{host:d,className:"size-5",fallback:(0,b.jsx)(l,{className:"size-4"})}):(0,b.jsx)(l,{className:"size-4"})}function $({tool:a,serverName:c}){let[f,g]=(0,o.useState)(!1),[h,i]=(0,o.useState)(!1),[j,k]=(0,o.useState)(!1),l=[["inputSchema",a.inputSchema],["outputSchema",a.outputSchema]].filter(([,a])=>a);return(0,b.jsxs)("div",{className:"rounded-xl border border-border/60 bg-background p-4",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-sm",children:a.name}),l.length>0&&(0,b.jsxs)(q.Button,{size:"xs",variant:"ghost",className:"shrink-0 font-mono",onClick:()=>g(!f),children:[f?(0,b.jsx)(d.ChevronDown,{}):(0,b.jsx)(e.ChevronRight,{}),"Schema"]}),(0,b.jsxs)(q.Button,{size:"xs",variant:"ghost",className:"shrink-0 font-mono",onClick:()=>i(!h),children:[h?(0,b.jsx)(d.ChevronDown,{}):(0,b.jsx)(e.ChevronRight,{}),"Test"]})]}),a.description?(0,b.jsx)("p",{className:(0,t.cn)("mt-0.5 text-xs leading-relaxed text-muted-foreground",!j&&"line-clamp-2",a.description.length>140&&"cursor-pointer"),onClick:()=>k(!j),children:a.description}):null,f?(0,b.jsx)("div",{className:"mt-2 space-y-3 overflow-x-auto rounded-lg border border-input p-3",children:l.map(([a,c])=>(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("span",{className:"block font-mono text-xs text-muted-foreground",children:"inputSchema"===a?"in":"out"}),(0,b.jsx)("pre",{className:"font-mono text-xs leading-relaxed whitespace-pre",children:function a(b,c=0){if(!b||"object"!=typeof b)return"unknown";let d=" ".repeat(c+1),e=" ".repeat(c);if(Array.isArray(b.enum))return b.enum.map(a=>JSON.stringify(a)).join(" | ");let f=b.anyOf??b.oneOf;if(Array.isArray(f))return f.map(b=>a(b,c)).join(" | ");if("array"===b.type){let d=a(b.items,c);return/[|{]/.test(d)?`(${d})[]`:`${d}[]`}if("object"===b.type||b.properties){let f=b.properties;if(!f||0===Object.keys(f).length)return"{}";let g=b.required??[],h=Object.entries(f).map(([b,e])=>{let f=g.includes(b)?"":"?",h=e?.description,i="string"==typeof h&&h.length<=60?` // ${h}`:"";return`${d}${b}${f}: ${a(e,c+1)}${i}`});return`{
2
2
  ${h.join("\n")}
3
- ${e}}`}return Array.isArray(b.type)?b.type.join(" | "):"string"==typeof b.type?b.type:"unknown"}(c)})]},a))}):null,h?(0,b.jsx)(_,{tool:a,serverName:c}):null]})}function _({tool:a,serverName:c}){let[d,e]=(0,o.useState)(()=>(function(a){let b=a.inputSchema?.properties;if(!b||"object"!=typeof b)return"{}";let c={};for(let[a,d]of Object.entries(b))c[a]=d?.type==="number"||d?.type==="integer"?0:d?.type!=="boolean"&&(d?.type==="array"?[]:d?.type==="object"?{}:"");return JSON.stringify(c,null,2)})(a)),[g,h]=(0,o.useState)(""),[i,j,k,l,m]=(0,V.useServerAction)(D,{errorMessage:!1});return(0,b.jsxs)("div",{className:"mt-2 space-y-2 rounded-lg border border-input p-3",children:[(0,b.jsx)(A.Textarea,{value:d,onChange:a=>e(a.target.value),spellCheck:!1,className:"min-h-24 resize-none font-mono text-xs"}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"font-mono text-xs text-destructive",children:g||l}),(0,b.jsxs)(q.Button,{size:"sm",loading:j,onClick:()=>{let b;try{b=d.trim()?JSON.parse(d):void 0}catch{h("Not valid JSON");return}h(""),m(),i(c,a.name,b)},children:[!j&&(0,b.jsx)(f.Play,{}),"Run"]})]}),void 0!==k&&(0,b.jsx)("div",{className:"overflow-x-auto rounded-lg bg-muted/40 p-3",children:(0,b.jsx)(u,{data:k,initialExpandDepth:3})})]})}function aa(a){return w.notify.component({className:"sm:max-w-lg",renderer:({close:c})=>(0,b.jsx)(ab,{initial:a,onDone:c})})}function ab({initial:a,onDone:c}){let d=a&&N(a.config)?a.config:void 0,e=a&&!N(a.config)?a.config:void 0,[f,g]=(0,U.useObjectState)({mode:e?"stdio":"http",name:a?.name??"",url:d?.url??"",headers:ae(d?.headers),clientId:d?.oauthClient?.clientId??"",clientSecret:d?.oauthClient?.clientSecret??"",command:e?.command??"",args:(e?.args??[]).join(" "),env:ae(e?.env),raw:""}),{mode:h,name:i,url:j,headers:k,clientId:l,clientSecret:m,command:n,args:p,env:t,raw:u}=f,[v,w]=(0,V.useServerAction)(G,{...ah,onOk:a=>{ah.onOk(a),"error"!==a.status&&c()}}),x=(0,o.useMemo)(()=>{var a,b,c,d,e,f,g;let i,o;return"json"===h?function(a){let b,c=a.trim();if(!c)return{value:null,error:""};try{b=JSON.parse(c)}catch{return{value:null,error:"Not valid JSON"}}let d=L.safeParse(b);if(d.success)return{value:{name:null,config:d.data},error:""};let e=R.safeParse(b);if(!e.success)return{value:null,error:"Needs a url or a command"};let f=Object.entries("mcpServers"in e.data?e.data.mcpServers:e.data)[0];return f?{value:{name:f[0],config:f[1]},error:""}:{value:null,error:"No server in there"}}(u):"http"===h?(a=j,b=k,c=l,d=m,(i=J.safeParse({url:a.trim(),headers:af(b),oauthClient:c.trim()?{clientId:c.trim(),clientSecret:d.trim()}:void 0})).success?{value:{name:null,config:i.data},error:""}:{value:null,error:a.trim()?"Needs a valid url":""}):(e=n,f=p,g=t,(o=K.safeParse({command:e.trim(),args:f.split(/\s+/).filter(Boolean),env:af(g)})).success?{value:{name:null,config:o.data},error:""}:{value:null,error:e.trim()?"Needs a command":""})},[h,u,j,k,l,m,n,p,t]),B="json"===h?u:JSON.stringify([h,j,k,l,m,n,p,t]),[C,D]=(0,o.useState)(B);(0,o.useEffect)(()=>{let a=setTimeout(()=>D(B),700);return()=>clearTimeout(a)},[B]);let E=C===B?x.error:"",F=i||x.value?.name||"",H=Q.safeParse({name:F,config:x.value?.config});function I(a){let b=x.value?.config;return b?"json"===a?g({mode:a,raw:JSON.stringify(b,null,2)}):"http"===a&&N(b)?g({mode:a,url:b.url,headers:ae(b.headers),clientId:b.oauthClient?.clientId??"",clientSecret:b.oauthClient?.clientSecret??""}):"stdio"!==a||N(b)?void g({mode:a}):g({mode:a,command:b.command,args:(b.args??[]).join(" "),env:ae(b.env)}):g({mode:a})}let M=(0,b.jsxs)("span",{className:"flex items-center gap-2 font-mono text-xs text-muted-foreground",children:["JSON",(0,b.jsx)(y.Switch,{size:"sm",checked:"json"===h,onCheckedChange:a=>{let b;return a?I("json"):void I((b=x.value?.config)&&!N(b)?"stdio":"http")}})]});return(0,b.jsx)(T.SettingDialogContent,{title:"Add MCP server",description:"Its tools become available to Thursday and every sub-agent.",footer:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(q.Button,{variant:"ghost",onClick:c,children:"Cancel"}),(0,b.jsx)(q.Button,{disabled:!H.success,loading:w,onClick:()=>{H.success&&!w&&v(H.data)},children:"Connect"})]}),children:(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)(r.Field,{children:[(0,b.jsx)(r.FieldLabel,{children:"Name"}),(0,b.jsx)(s.Input,{value:F,onChange:a=>g({name:a.target.value}),placeholder:"notion",spellCheck:!1})]}),"json"===h?(0,b.jsxs)(r.Field,{children:[(0,b.jsxs)("div",{className:"flex min-h-6 items-center justify-between gap-2",children:[(0,b.jsx)(r.FieldLabel,{children:"JSON"}),M]}),(0,b.jsx)(A.Textarea,{value:u,onChange:a=>g({raw:a.target.value}),spellCheck:!1,placeholder:ag,className:"min-h-64 resize-none font-mono text-xs"})]}):(0,b.jsxs)(z.Tabs,{value:h,onValueChange:a=>I(a),className:"gap-6",children:[(0,b.jsxs)(r.Field,{children:[(0,b.jsxs)("div",{className:"flex min-h-6 items-center justify-between gap-2",children:[(0,b.jsx)(r.FieldLabel,{children:"Transport"}),M]}),(0,b.jsxs)(z.TabsList,{className:"w-full",children:[(0,b.jsx)(z.TabsTrigger,{value:"http",children:"HTTP"}),(0,b.jsx)(z.TabsTrigger,{value:"stdio",children:"STDIO"})]})]}),(0,b.jsxs)(z.TabsContent,{value:"http",className:"space-y-6",children:[(0,b.jsxs)(r.Field,{children:[(0,b.jsx)(r.FieldLabel,{children:"URL"}),(0,b.jsx)(s.Input,{value:j,onChange:a=>g({url:a.target.value}),placeholder:"https://mcp.notion.com/mcp",spellCheck:!1,className:"font-mono text-xs"})]}),(0,b.jsx)(ac,{label:"Headers",pairs:k,onChange:a=>g({headers:a}),keyPlaceholder:"Authorization",valuePlaceholder:"Bearer sk-..."}),(0,b.jsxs)(r.Field,{children:[(0,b.jsx)(r.FieldLabel,{children:"OAuth client"}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(s.Input,{value:l,onChange:a=>g({clientId:a.target.value}),placeholder:"Client ID",spellCheck:!1,className:"font-mono text-xs"}),(0,b.jsx)(s.Input,{value:m,onChange:a=>g({clientSecret:a.target.value}),placeholder:"Client secret",spellCheck:!1,type:"password",className:"font-mono text-xs"})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Only for servers that refuse to register clients on their own, like Figma. Leave empty and one is created during sign-in."})]})]}),(0,b.jsxs)(z.TabsContent,{value:"stdio",className:"space-y-6",children:[(0,b.jsxs)(r.Field,{children:[(0,b.jsx)(r.FieldLabel,{children:"Command"}),(0,b.jsx)(s.Input,{value:n,onChange:a=>g({command:a.target.value}),placeholder:"npx",spellCheck:!1,className:"font-mono text-xs"})]}),(0,b.jsxs)(r.Field,{children:[(0,b.jsx)(r.FieldLabel,{children:"Args"}),(0,b.jsx)(s.Input,{value:p,onChange:a=>g({args:a.target.value}),placeholder:"-y @notionhq/notion-mcp-server",spellCheck:!1,className:"font-mono text-xs"})]}),(0,b.jsx)(ac,{label:"Env",pairs:t,onChange:a=>g({env:a}),keyPlaceholder:"NOTION_TOKEN",valuePlaceholder:"ntn_..."})]})]}),E&&(0,b.jsx)("p",{className:"font-mono text-xs text-destructive",children:E})]})})}function ac({label:a,pairs:c,onChange:d,keyPlaceholder:e,valuePlaceholder:f}){let h=(a,b)=>d(c.map(c=>c.id===a?{...c,...b}:c));return(0,b.jsxs)(r.Field,{children:[(0,b.jsx)(r.FieldLabel,{children:a}),(0,b.jsxs)("div",{className:"space-y-2",children:[c.map(a=>(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(s.Input,{value:a.key,onChange:b=>h(a.id,{key:b.target.value}),placeholder:e,spellCheck:!1,className:"font-mono text-xs"}),(0,b.jsx)(s.Input,{value:a.value,onChange:b=>h(a.id,{value:b.target.value}),placeholder:f,spellCheck:!1,className:"font-mono text-xs"}),(0,b.jsx)(q.Button,{variant:"ghost",size:"icon",onClick:()=>d(c.filter(b=>b.id!==a.id)),children:(0,b.jsx)(n.X,{})})]},a.id)),(0,b.jsxs)(q.Button,{variant:"outline",size:"sm",onClick:()=>d([...c,ad()]),children:[(0,b.jsx)(g.Plus,{}),"Add"]})]})]})}let ad=(a="",b="")=>({id:crypto.randomUUID(),key:a,value:b}),ae=a=>Object.entries(a??{}).map(([a,b])=>ad(a,b)),af=a=>{let b=a.filter(a=>a.key.trim());if(b.length)return Object.fromEntries(b.map(a=>[a.key.trim(),a.value]))},ag=`/** STDIO Example */
3
+ ${e}}`}return Array.isArray(b.type)?b.type.join(" | "):"string"==typeof b.type?b.type:"unknown"}(c)})]},a))}):null,h?(0,b.jsx)(_,{tool:a,serverName:c}):null]})}function _({tool:a,serverName:c}){let[d,e]=(0,o.useState)(()=>(function(a){let b=a.inputSchema?.properties;if(!b||"object"!=typeof b)return"{}";let c={};for(let[a,d]of Object.entries(b))c[a]=d?.type==="number"||d?.type==="integer"?0:d?.type!=="boolean"&&(d?.type==="array"?[]:d?.type==="object"?{}:"");return JSON.stringify(c,null,2)})(a)),[g,h]=(0,o.useState)(""),[i,j,k,l,m]=(0,V.useServerAction)(D,{errorMessage:!1});return(0,b.jsxs)("div",{className:"mt-2 space-y-2 rounded-lg border border-input p-3",children:[(0,b.jsx)(A.Textarea,{value:d,onChange:a=>e(a.target.value),spellCheck:!1,className:"min-h-24 resize-none font-mono text-xs"}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"font-mono text-xs text-destructive",children:g||l}),(0,b.jsxs)(q.Button,{size:"sm",loading:j,onClick:()=>{let b;try{b=d.trim()?JSON.parse(d):void 0}catch{h("Not valid JSON");return}h(""),m(),i(c,a.name,b)},children:[!j&&(0,b.jsx)(f.Play,{}),"Run"]})]}),void 0!==k&&(0,b.jsx)("div",{className:"overflow-x-auto rounded-lg bg-muted/40 p-3",children:(0,b.jsx)(u,{data:k,initialExpandDepth:3})})]})}function aa(a){return w.notify.component({className:"sm:max-w-lg",renderer:({close:c})=>(0,b.jsx)(ab,{initial:a,onDone:c})})}function ab({initial:a,onDone:c}){let d=a&&N(a.config)?a.config:void 0,f=a&&!N(a.config)?a.config:void 0,[g,h]=(0,U.useObjectState)({mode:f?"stdio":"http",name:a?.name??"",url:d?.url??"",headers:ae(d?.headers),clientId:d?.oauthClient?.clientId??"",clientSecret:d?.oauthClient?.clientSecret??"",command:f?.command??"",args:(f?.args??[]).join(" "),env:ae(f?.env),raw:""}),{mode:i,name:j,url:k,headers:l,clientId:m,clientSecret:n,command:p,args:t,env:u,raw:v}=g,[w,x]=(0,V.useServerAction)(G,{...ah,onOk:a=>{ah.onOk(a),"error"!==a.status&&c()}}),B=(0,o.useMemo)(()=>{var a,b,c,d,e,f,g;let h,j;return"json"===i?function(a){let b,c=a.trim();if(!c)return{value:null,error:""};try{b=JSON.parse(c)}catch{return{value:null,error:"Not valid JSON"}}let d=L.safeParse(b);if(d.success)return{value:{name:null,config:d.data},error:""};let e=R.safeParse(b);if(!e.success)return{value:null,error:"Needs a url or a command"};let f=Object.entries("mcpServers"in e.data?e.data.mcpServers:e.data)[0];return f?{value:{name:f[0],config:f[1]},error:""}:{value:null,error:"No server in there"}}(v):"http"===i?(a=k,b=l,c=m,d=n,(h=J.safeParse({url:a.trim(),headers:af(b),oauthClient:c.trim()?{clientId:c.trim(),clientSecret:d.trim()}:void 0})).success?{value:{name:null,config:h.data},error:""}:{value:null,error:a.trim()?"Needs a valid url":""}):(e=p,f=t,g=u,(j=K.safeParse({command:e.trim(),args:f.split(/\s+/).filter(Boolean),env:af(g)})).success?{value:{name:null,config:j.data},error:""}:{value:null,error:e.trim()?"Needs a command":""})},[i,v,k,l,m,n,p,t,u]),C="json"===i?v:JSON.stringify([i,k,l,m,n,p,t,u]),[D,E]=(0,o.useState)(C);(0,o.useEffect)(()=>{let a=setTimeout(()=>E(C),700);return()=>clearTimeout(a)},[C]);let F=D===C?B.error:"",H=j||B.value?.name||"",I=Q.safeParse({name:H,config:B.value?.config});function M(a){let b=B.value?.config;return b?"json"===a?h({mode:a,raw:JSON.stringify(b,null,2)}):"http"===a&&N(b)?h({mode:a,url:b.url,headers:ae(b.headers),clientId:b.oauthClient?.clientId??"",clientSecret:b.oauthClient?.clientSecret??""}):"stdio"!==a||N(b)?void h({mode:a}):h({mode:a,command:b.command,args:(b.args??[]).join(" "),env:ae(b.env)}):h({mode:a})}let O=(0,b.jsxs)("span",{className:"flex items-center gap-2 font-mono text-xs text-muted-foreground",children:["JSON",(0,b.jsx)(y.Switch,{size:"sm",checked:"json"===i,onCheckedChange:a=>{let b;return a?M("json"):void M((b=B.value?.config)&&!N(b)?"stdio":"http")}})]});return(0,b.jsx)(T.SettingDialogContent,{title:"Add MCP server",description:"Its tools become available to Thursday and every bot.",footer:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(q.Button,{variant:"ghost",onClick:c,children:"Cancel"}),(0,b.jsx)(q.Button,{disabled:!I.success,loading:x,onClick:()=>{I.success&&!x&&w(I.data)},children:"Connect"})]}),children:(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)(r.Field,{children:[(0,b.jsx)(r.FieldLabel,{children:"Name"}),(0,b.jsx)(s.Input,{value:H,onChange:a=>h({name:a.target.value}),placeholder:"notion",spellCheck:!1})]}),"json"===i?(0,b.jsxs)(r.Field,{children:[(0,b.jsxs)("div",{className:"flex min-h-6 items-center justify-between gap-2",children:[(0,b.jsx)(r.FieldLabel,{children:"JSON"}),O]}),(0,b.jsx)(A.Textarea,{value:v,onChange:a=>h({raw:a.target.value}),spellCheck:!1,placeholder:ag,className:"min-h-64 resize-none font-mono text-xs"})]}):(0,b.jsxs)(z.Tabs,{value:i,onValueChange:a=>M(a),className:"gap-6",children:[(0,b.jsxs)(r.Field,{children:[(0,b.jsxs)("div",{className:"flex min-h-6 items-center justify-between gap-2",children:[(0,b.jsx)(r.FieldLabel,{children:"Transport"}),O]}),(0,b.jsxs)(z.TabsList,{className:"w-full",children:[(0,b.jsx)(z.TabsTrigger,{value:"http",children:"HTTP"}),(0,b.jsx)(z.TabsTrigger,{value:"stdio",children:"STDIO"})]})]}),(0,b.jsxs)(z.TabsContent,{value:"http",className:"space-y-6",children:[(0,b.jsxs)(r.Field,{children:[(0,b.jsx)(r.FieldLabel,{children:"URL"}),(0,b.jsx)(s.Input,{value:k,onChange:a=>h({url:a.target.value}),placeholder:"https://mcp.notion.com/mcp",spellCheck:!1,className:"font-mono text-xs"})]}),(0,b.jsx)(ac,{label:"Headers",pairs:l,onChange:a=>h({headers:a}),keyPlaceholder:"Authorization",valuePlaceholder:"Bearer sk-..."}),(0,b.jsxs)("details",{className:"group space-y-3",children:[(0,b.jsxs)("summary",{className:"flex w-fit cursor-pointer list-none items-center gap-1 rounded-sm text-xs text-muted-foreground outline-none hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50 [&::-webkit-details-marker]:hidden",children:["Advanced: OAuth client",(0,b.jsx)(e.ChevronRight,{className:"size-3.5 transition-transform group-open:rotate-90"})]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(s.Input,{value:m,onChange:a=>h({clientId:a.target.value}),placeholder:"Client ID",spellCheck:!1,className:"font-mono text-xs"}),(0,b.jsx)(s.Input,{value:n,onChange:a=>h({clientSecret:a.target.value}),placeholder:"Client secret",spellCheck:!1,type:"password",className:"font-mono text-xs"})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Only for servers that refuse to register clients on their own, like Figma. Leave empty and one is created during sign-in."})]})]}),(0,b.jsxs)(z.TabsContent,{value:"stdio",className:"space-y-6",children:[(0,b.jsxs)(r.Field,{children:[(0,b.jsx)(r.FieldLabel,{children:"Command"}),(0,b.jsx)(s.Input,{value:p,onChange:a=>h({command:a.target.value}),placeholder:"npx",spellCheck:!1,className:"font-mono text-xs"})]}),(0,b.jsxs)(r.Field,{children:[(0,b.jsx)(r.FieldLabel,{children:"Args"}),(0,b.jsx)(s.Input,{value:t,onChange:a=>h({args:a.target.value}),placeholder:"-y @notionhq/notion-mcp-server",spellCheck:!1,className:"font-mono text-xs"})]}),(0,b.jsx)(ac,{label:"Env",pairs:u,onChange:a=>h({env:a}),keyPlaceholder:"NOTION_TOKEN",valuePlaceholder:"ntn_..."})]})]}),F&&(0,b.jsx)("p",{className:"font-mono text-xs text-destructive",children:F})]})})}function ac({label:a,pairs:c,onChange:d,keyPlaceholder:e,valuePlaceholder:f}){let h=(a,b)=>d(c.map(c=>c.id===a?{...c,...b}:c));return(0,b.jsxs)(r.Field,{children:[(0,b.jsx)(r.FieldLabel,{children:a}),(0,b.jsxs)("div",{className:"space-y-2",children:[c.map(a=>(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(s.Input,{value:a.key,onChange:b=>h(a.id,{key:b.target.value}),placeholder:e,spellCheck:!1,className:"font-mono text-xs"}),(0,b.jsx)(s.Input,{value:a.value,onChange:b=>h(a.id,{value:b.target.value}),placeholder:f,spellCheck:!1,className:"font-mono text-xs"}),(0,b.jsx)(q.Button,{variant:"ghost",size:"icon",onClick:()=>d(c.filter(b=>b.id!==a.id)),children:(0,b.jsx)(n.X,{})})]},a.id)),(0,b.jsxs)(q.Button,{variant:"outline",size:"sm",onClick:()=>d([...c,ad()]),children:[(0,b.jsx)(g.Plus,{}),"Add"]})]})]})}let ad=(a="",b="")=>({id:crypto.randomUUID(),key:a,value:b}),ae=a=>Object.entries(a??{}).map(([a,b])=>ad(a,b)),af=a=>{let b=a.filter(a=>a.key.trim());if(b.length)return Object.fromEntries(b.map(a=>[a.key.trim(),a.value]))},ag=`/** STDIO Example */
4
4
  {
5
5
  "command": "node",
6
6
  "args": ["index.js"],
@@ -15,6 +15,6 @@ ${e}}`}return Array.isArray(b.type)?b.type.join(" | "):"string"==typeof b.type?b
15
15
  "headers": {
16
16
  "Authorization": "Bearer sk-..."
17
17
  }
18
- }`,ah={onOk:a=>{(0,W.revalidate)(p.queryKey.mcp),function(a){if("auth_required"===a.status&&a.authorizationUrl){let b=window.open(a.authorizationUrl,"thursday-oauth","popup,width=520,height=720");B.toast.add({title:`${a.name} needs authorization`,description:"Approve access in the window that just opened"});let c=Date.now()+3e5,d=setInterval(()=>{let a=!b||b.closed;!(!a&&Date.now()<c)&&(clearInterval(d),a&&(0,W.revalidate)(p.queryKey.mcp))},700);return}"error"===a.status?B.toast.add({type:"error",title:`${a.name} could not connect`,description:a.error}):B.toast.add({type:"success",title:`${a.name} connected`,description:`${a.toolCount} ${1===a.toolCount?"tool":"tools"} available`})}(a)}};function ai({filter:a,onFilter:c,onPreset:d}){let e=a.trim().toLowerCase(),f=S.filter(a=>!e||`${a.name} ${a.description}`.toLowerCase().includes(e));return(0,b.jsx)(T.SettingGroup,{label:"Presets",filter:(0,b.jsx)(T.SettingFilter,{value:a,onChange:c,placeholder:"Filter presets",className:"w-56"}),right:e?`${f.length} of ${S.length}`:void 0,children:(0,b.jsx)("div",{className:"grid grid-cols-[repeat(4,minmax(0,1fr))] gap-3",children:f.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>d(a),className:"group relative flex flex-col gap-2 rounded-xl border border-border/60 p-3 text-left text-muted-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,b.jsx)(g.Plus,{className:"absolute top-3 right-3 size-3.5 shrink-0 text-muted-foreground/50 group-hover:text-foreground"}),(0,b.jsx)("span",{className:"grid size-6 shrink-0 place-items-center rounded-md bg-muted text-muted-foreground",children:a.icon?(0,b.jsx)(x.SiteIcon,{host:a.icon,className:"size-4",fallback:(0,b.jsx)(l,{className:"size-3.5"})}):(0,b.jsx)(l,{className:"size-3.5"})}),(0,b.jsxs)("span",{className:"min-w-0",children:[(0,b.jsx)("span",{className:"block truncate font-mono text-xs font-semibold",children:a.name}),(0,b.jsx)("span",{className:"block truncate text-xs",children:a.description})]})]},a.name))})})}function aj(a){return N(a)?a.url:[a.command,...a.args??[]].join(" ")}a.s(["McpSetting",0,function(){let[a,c]=(0,o.useState)(""),{data:d=[],isLoading:e,error:f}=(0,W.useServerRoute)(p.queryKey.mcp);if(e)return(0,b.jsx)(T.SettingSkeleton,{rows:3});if(f)return(0,b.jsx)(T.SettingError,{message:f.message});let g=d.reduce((a,b)=>a+b.toolCount,0),h=d.filter(a=>a.lastError).length;return(0,b.jsxs)(T.SettingScreen,{footer:(0,b.jsx)(T.SettingRailNote,{children:0===d.length?"Nothing connected yet — a preset is the shortest way in":(0,b.jsxs)(b.Fragment,{children:[d.length," connected · ",g," tools",h>0&&` \xb7 ${h} failed`]})}),children:[(0,b.jsx)(T.SettingGroup,{label:"Connected",children:(0,b.jsx)(T.SettingItems,{addRow:{label:"Add server",onClick:()=>aa()},children:d.map(a=>(0,b.jsx)(Y,{server:a},a.name))})}),(0,b.jsx)(ai,{filter:a,onFilter:c,onPreset:aa})]})}],26444)}];
18
+ }`,ah={onOk:a=>{(0,W.revalidate)(p.queryKey.mcp),function(a){if("auth_required"===a.status&&a.authorizationUrl){let b=window.open(a.authorizationUrl,"thursday-oauth","popup,width=520,height=720");B.toast.add({title:`${a.name} needs authorization`,description:"Approve access in the window that just opened"});let c=Date.now()+3e5,d=setInterval(()=>{let a=!b||b.closed;!(!a&&Date.now()<c)&&(clearInterval(d),a&&(0,W.revalidate)(p.queryKey.mcp))},700);return}"error"===a.status?B.toast.add({type:"error",title:`${a.name} could not connect`,description:a.error}):B.toast.add({type:"success",title:`${a.name} connected`,description:`${a.toolCount} ${1===a.toolCount?"tool":"tools"} available`})}(a)}};function ai({filter:a,onFilter:c,onPreset:d}){let e=a.trim().toLowerCase(),f=S.filter(a=>!e||`${a.name} ${a.description}`.toLowerCase().includes(e));return(0,b.jsx)(T.SettingGroup,{label:"Presets",filter:(0,b.jsx)(T.SettingFilter,{value:a,onChange:c,placeholder:"Filter presets",className:"w-56"}),right:e?`${f.length} of ${S.length}`:void 0,children:(0,b.jsx)("div",{className:"grid grid-cols-[repeat(4,minmax(0,1fr))] gap-3",children:f.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>d(a),className:"group relative flex flex-col gap-2 rounded-xl border border-border/60 p-3 text-left text-muted-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,b.jsx)(g.Plus,{className:"absolute top-3 right-3 size-3.5 shrink-0 text-muted-foreground/50 group-hover:text-foreground"}),(0,b.jsx)("span",{className:"grid size-6 shrink-0 place-items-center rounded-md bg-muted text-muted-foreground",children:a.icon?(0,b.jsx)(x.SiteIcon,{host:a.icon,className:"size-4",fallback:(0,b.jsx)(l,{className:"size-3.5"})}):(0,b.jsx)(l,{className:"size-3.5"})}),(0,b.jsxs)("span",{className:"min-w-0",children:[(0,b.jsx)("span",{className:"block truncate font-mono text-xs font-semibold",children:a.name}),(0,b.jsx)("span",{className:"block truncate text-xs",children:a.description})]})]},a.name))})})}function aj(a){return N(a)?a.url:[a.command,...a.args??[]].join(" ")}a.s(["McpSetting",0,function(){let[a,c]=(0,o.useState)(""),{data:d=[],isLoading:e,error:f}=(0,W.useServerRoute)(p.queryKey.mcp);if(e)return(0,b.jsx)(T.SettingSkeleton,{rows:3});if(f)return(0,b.jsx)(T.SettingError,{message:f.message});let g=d.reduce((a,b)=>a+b.toolCount,0),h=d.filter(a=>a.lastError).length;return(0,b.jsxs)(T.SettingScreen,{footer:(0,b.jsx)(T.SettingRailNote,{children:0===d.length?"Nothing connected yet — a preset is the shortest way in":(0,b.jsxs)(b.Fragment,{children:[d.length-h," connected · ",g," tools",h>0&&` \xb7 ${h} failed`]})}),children:[(0,b.jsx)(T.SettingGroup,{label:"Connected",children:(0,b.jsx)(T.SettingItems,{addRow:{label:"Add server",onClick:()=>aa()},children:d.map(a=>(0,b.jsx)(Y,{server:a},a.name))})}),(0,b.jsx)(ai,{filter:a,onFilter:c,onPreset:aa})]})}],26444)}];
19
19
 
20
20
  //# sourceMappingURL=features_connectors_components_mcp-setting_tsx_0jmbgvp._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[857022,a=>{"use strict";var b=a.i(187924),c=a.i(256711),d=a.i(752562),e=a.i(141146),f=a.i(164831);let g={name:"pencil",size:24,node:[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]};g.node;let h=(0,f.default)(g),i={name:"pin",size:24,node:[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]};i.node;let j=(0,f.default)(i);var k=a.i(403512),l=a.i(951675),m=a.i(474215),n=a.i(572131),o=a.i(767561),p=a.i(340695),q=a.i(316474),r=a.i(205522),s=a.i(446181),t=a.i(950463),u=a.i(621958),v=a.i(546893),w=a.i(287702),x=a.i(379630),y=a.i(61876),z=a.i(275086),A=a.i(172654),B=a.i(327598);let C={name:"book-open",size:24,node:[["path",{d:"M12 5v16",key:"1f6ucr"}],["path",{d:"M20.001 19A2 2 0 0022 17V5a2 2 0 00-1.999-2L16 3.002A5 5 0 0012 5a5 5 0 00-4-2H4a2 2 0 00-2 2v12a2 2 0 001.999 2H8a5 5 0 014 2 5 5 0 014-2z",key:"1fyvmf"}]]};C.node;let D=(0,f.default)(C);var E=a.i(589027),F=a.i(875160);let G={name:"minus",size:24,node:[["path",{d:"M5 12h14",key:"1ays0h"}]]};G.node;let H=(0,f.default)(G);var I=a.i(545097),J=a.i(608902),K=a.i(421042),L=a.i(497895);let M=new A.DefaultChatTransport({api:o.queryKey.memoryEdit});function N({notes:a}){let[c,d]=(0,n.useState)(""),[e,f]=(0,n.useState)({provider:null,model:""}),[g,h]=(0,n.useState)(!1),{messages:i,sendMessage:j,setMessages:k,status:l,stop:m,error:o,clearError:q}=(0,z.useChat)({transport:M}),r=(0,n.useRef)(m);r.current=m,(0,n.useEffect)(()=>()=>{r.current()},[]);let s=(0,n.useRef)(new Map);for(let b of a)for(let a of b.facts)s.current.set(a.id,{text:a.text,path:b.path});let t="submitted"===l||"streaming"===l,u=!!(e.provider&&e.model.trim()),v=[...i].reverse().find(a=>"assistant"===a.role),w=v?.parts??[],y=w.filter(A.isToolUIPart),C=w.flatMap(a=>"text"===a.type?[a.text]:[]).join(" ").trim(),D=!!o||y.some(a=>"output-error"===a.state),F=y.filter(a=>"output-available"===a.state&&(0,A.getToolName)(a)!==K.TOOL_NAMES.memory_recall).length;(0,n.useEffect)(()=>{if("ready"!==l||D||0===i.length)return;let a=setTimeout(()=>k([]),4e3);return()=>clearTimeout(a)},[l,D,i.length,k]);let G=t?(0,b.jsx)(I.ShinyText,{text:"Working on memory",className:"text-xs"}):o?(0,b.jsx)("span",{className:"text-xs text-destructive",children:o.message}):v?(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:C||(0===F?"Nothing to change":1===F?"1 change saved":`${F} changes saved`)}):null;return(0,b.jsx)("div",{className:"pointer-events-none absolute inset-x-0 bottom-18 z-10 flex justify-center px-8",children:(0,b.jsxs)("div",{className:"pointer-events-auto flex w-full max-w-120 flex-col items-center gap-2",children:[g&&(0,b.jsx)("div",{className:"w-full rounded-xl bg-popover p-2 shadow-lg ring-1 ring-foreground/10",children:(0,b.jsx)(J.ModelPicker,{provider:e.provider,model:e.model,unset:"Provider",onChange:f})}),y.length>0&&(0,b.jsx)("ul",{className:"w-full divide-y divide-border/60 overflow-hidden rounded-xl bg-popover shadow-lg ring-1 ring-foreground/10",children:y.map(a=>(0,b.jsx)(P,{name:(0,A.getToolName)(a),input:a.input,state:a.state,errorText:"output-error"===a.state?a.errorText:void 0,known:s.current},a.toolCallId))}),G&&(0,b.jsx)("p",{className:"max-w-full truncate px-1",children:G}),(0,b.jsxs)("form",{onSubmit:a=>{a.preventDefault();let b=c.trim();b&&u&&!t&&(d(""),h(!1),q(),k([]),j({text:b},{body:{model:e}}))},className:"flex h-10 w-full items-center gap-1.5 rounded-xl bg-popover pr-1.5 pl-3.5 shadow-lg ring-1 ring-foreground/10",children:[(0,b.jsx)("input",{autoFocus:!0,value:c,onChange:a=>d(a.target.value),disabled:t,"aria-label":"Edit memory",placeholder:"Tell memory what changed",className:"min-w-0 flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground disabled:opacity-60"}),(0,b.jsxs)(p.Button,{type:"button",size:"xs",variant:"ghost",onClick:()=>h(!g),className:(0,L.cn)("max-w-44",!u&&"text-muted-foreground"),children:[u&&e.provider?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(x.ProviderIcon,{provider:e.provider,className:"size-3"}),(0,b.jsx)("span",{className:"truncate",children:e.model})]}):"Model",(0,b.jsx)(E.ChevronDown,{className:"text-muted-foreground"})]}),(0,b.jsx)(p.Button,{type:"submit",size:"icon-sm",loading:t,disabled:!c.trim()||!u||t,"aria-label":"Send",children:!t&&(0,b.jsx)(B.ArrowUp,{})})]})]})})}let O={Remember:k.Plus,Replace:h,Forget:H,Rename:h,Opened:D};function P({name:a,input:c,state:e,errorText:f,known:g}){let h=function(a,b,c){let d=b??{};if(a===K.TOOL_NAMES.memory_recall)return{kind:"Opened",path:d.path??"",lines:[],carried:!1};if(a===K.TOOL_NAMES.memory_forget){let a=(d.factIds??[]).filter(a=>null!=a),b=a.map(a=>c.get(a));return{kind:"Forget",path:b.find(a=>a)?.path??"",lines:a.map((a,c)=>({before:b[c]?.text??`Fact #${a}`})),carried:!1}}let e=(d.facts??[]).filter(a=>null!=a),f=e.map(a=>null!=a.replaces?{before:c.get(a.replaces)?.text??`Fact #${a.replaces}`,after:a.text}:{after:a.text});d.description&&f.push({after:`“${d.description}”`});let g=(d.aliases??[]).filter(Boolean);return g.length&&f.push({after:`Called ${g.map(a=>`“${a}”`).join(", ")}`}),{kind:e.some(a=>null!=a.replaces)?"Replace":e.length?"Remember":"Rename",path:d.path??"",lines:f,carried:e.some(a=>a.alwaysLoad)}}(a,c,g),i=O[h.kind],j="output-error"===e;return(0,b.jsxs)("li",{className:"flex animate-in items-start gap-2.5 px-3 py-2.5 duration-200 fade-in slide-in-from-bottom-1",children:[(0,b.jsx)(i,{className:"mt-1 size-3.5 shrink-0 text-muted-foreground"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 space-y-0.5",children:[h.lines.map((a,c)=>(0,b.jsxs)("div",{children:[a.before&&(0,b.jsx)("p",{className:"text-[13px] leading-5 text-muted-foreground/60 line-through",children:a.before}),a.after&&(0,b.jsx)("p",{className:"text-sm leading-5 text-foreground/90",children:a.after})]},`${h.kind}-${c}`)),(0,b.jsxs)("p",{className:"pt-0.5 font-mono text-[11px] text-muted-foreground",children:[h.kind,h.path&&` \xb7 ${h.path}`,h.carried&&" · carried into every call"]}),j&&f&&(0,b.jsx)("p",{className:"text-xs text-destructive",children:f})]}),(0,b.jsx)("span",{className:"mt-0.5 flex size-5 shrink-0 items-center justify-center text-muted-foreground",children:j?(0,b.jsx)(m.X,{className:"size-3.5 text-destructive"}):"output-available"===e?(0,b.jsx)(d.Check,{className:"size-3.5"}):(0,b.jsx)(F.Loader2,{className:"size-3.5 animate-spin"})})]})}var Q=a.i(405050);let R=(0,Q.createServerReference)("7f3d3958951c383dd4ebb10af86cfbcad19895bf89",Q.callServer,void 0,Q.findSourceMapURL,"addFactsAction"),S=(0,Q.createServerReference)("7fa3b9c4f93dcdd094a2195a28d0991caba0ae50b6",Q.callServer,void 0,Q.findSourceMapURL,"createNoteAction"),T=(0,Q.createServerReference)("7fe828f1b32683a2b99c0ce44ddc59f9d9c58ea70b",Q.callServer,void 0,Q.findSourceMapURL,"deleteNoteAction"),U=(0,Q.createServerReference)("7f8080b114b946c314387e423e89536de9d7b90f4c",Q.callServer,void 0,Q.findSourceMapURL,"forgetFactAction"),V=(0,Q.createServerReference)("7ff1c0e8ec9950d14c31a0342a6a22dfb76f91325a",Q.callServer,void 0,Q.findSourceMapURL,"reviseFactAction"),W=(0,Q.createServerReference)("7f7aef7266b7786b29a663ff595c3d7c74343c24d2",Q.callServer,void 0,Q.findSourceMapURL,"setFactAlwaysLoadAction"),X=(0,Q.createServerReference)("7fb07800634295b9b67d266d6060a4facfb2973e91",Q.callServer,void 0,Q.findSourceMapURL,"updateNoteAction");var Y=a.i(156757),Z=a.i(199169);let $=Y.z.enum(["user","call","bot"]),_=Y.z.object({id:Y.z.number(),text:Y.z.string(),alwaysLoad:Y.z.boolean(),source:$.nullish(),createdAt:Z.DateLikeSchema});Y.z.object({id:Y.z.number(),path:Y.z.string(),description:Y.z.string(),aliases:Y.z.string().array().nullish(),ownedByUser:Y.z.boolean(),hits:Y.z.number(),lastReadAt:Z.DateLikeSchema.nullable(),createdAt:Z.DateLikeSchema,updatedAt:Z.DateLikeSchema,factCount:Y.z.number(),facts:_.array()});let aa=[{path:"profile",of:"The user themselves — their name, age, what they do, where they live, and whatever else says who they are"},{path:"preferences",of:"How they want things done, and said"},{path:"people/",of:"Someone in their life, and what matters about them"},{path:"projects/",of:"Something with an end — a trip, a purchase, a deadline, a thing being built"},{path:"topics/",of:"Something ongoing that keeps coming back"}],ab=aa.filter(a=>!a.path.endsWith("/")).map(a=>a.path),ac=aa.filter(a=>a.path.endsWith("/")).map(a=>a.path.slice(0,-1));RegExp(`^(?:${ab.join("|")}|(?:${ac.join("|")})/.+)$`);let ad=["profile","preferences"];var ae=a.i(619477),af=a.i(313237),ag=a.i(862966),ah=a.i(759497);let ai=[{key:"you",label:"You"},{key:"people",label:"People"},{key:"projects",label:"Projects"},{key:"topics",label:"Topics"},{key:"other",label:"Other"}],aj={onOk:()=>(0,ah.revalidate)(o.queryKey.memory)},ak=y.textModelProviderSchema.options.filter(a=>"chatgpt"!==a);function al(){return(0,b.jsx)("span",{className:"mr-0.5 flex items-center",children:ak.map(a=>(0,b.jsx)("span",{className:"-ml-1.5 grid size-5 place-items-center rounded-full bg-background ring-1 ring-border first:ml-0",children:(0,b.jsx)(x.ProviderIcon,{provider:a,className:"size-3"})},a))})}function am(a,b){return c=>{c.nativeEvent.isComposing||229===c.keyCode||("Enter"===c.key&&(c.preventDefault(),a()),"Escape"===c.key&&(c.stopPropagation(),b()))}}function an({note:a,open:c,onToggle:d}){var f;let g,i,j,k,m,[o,q]=(0,n.useState)(!1),[r,t]=(0,af.useServerAction)(T,aj),u=async()=>{await s.notify.confirm({title:`Forget ${a.path}?`,description:"Every fact in this note is deleted for good.",okText:"Delete",destructive:!0})&&r(a.id)},v=(0,b.jsx)("span",{className:"w-36 shrink-0 truncate text-sm font-medium",children:-1===(g=(f=a.path).indexOf("/"))?f:f.slice(g+1)});return(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"flex h-12 items-center gap-3 pr-2 pl-4",children:o?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.ChevronRight,{className:"size-3.5 shrink-0 rotate-90 text-muted-foreground"}),v,(0,b.jsx)(ao,{note:a,onDone:()=>q(!1)})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("button",{type:"button","aria-expanded":c,onClick:d,className:(0,L.cn)("flex h-full min-w-0 flex-1 items-center gap-3 text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",(i=a.path,!ad.includes(i)&&.15>(j=(0,Z.toDate)(a.lastReadAt??a.createdAt),k=Math.max(0,(Date.now()-j.getTime())/864e5),(a.hits+1)/(1+k))&&!c&&"opacity-55")),children:[(0,b.jsx)(e.ChevronRight,{className:(0,L.cn)("size-3.5 shrink-0 text-muted-foreground transition-transform",c&&"rotate-90")}),v,(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-[13px] text-muted-foreground",children:a.description}),(0,b.jsxs)("span",{className:"w-16 shrink-0 text-right font-mono text-[11px] text-muted-foreground/70",children:[a.factCount," ",1===a.factCount?"fact":"facts"]}),(0,b.jsx)("span",{className:"w-10 shrink-0 text-right font-mono text-[11px] text-muted-foreground/50",title:a.lastReadAt?"Last read back":"Never read back",children:a.lastReadAt?(0,Z.shortAgo)(a.lastReadAt):"—"})]}),(0,b.jsx)("span",{className:"flex w-15 shrink-0 justify-end",children:c&&(0,b.jsxs)(b.Fragment,{children:[(m=a.path,!ad.includes(m)&&(0,b.jsx)(p.Button,{size:"icon-sm",variant:"ghost",className:"text-muted-foreground","aria-label":"Edit the note's line",onClick:()=>q(!0),children:(0,b.jsx)(h,{})})),(0,b.jsx)(p.Button,{size:"icon-sm",variant:"ghost",className:"text-muted-foreground","aria-label":"Forget this note",loading:t,onClick:u,children:!t&&(0,b.jsx)(l.Trash2,{})})]})})]})}),c&&(0,b.jsxs)("div",{className:"space-y-1 border-t border-border/60 bg-muted/40 py-2.5 pr-2 pl-10",children:[(0,b.jsx)(ap,{noteId:a.id}),a.facts.map(c=>(0,b.jsx)(aq,{noteId:a.id,fact:c},c.id))]})]})}function ao({note:a,onDone:c}){let[e,f]=(0,n.useState)(a.description),[g,h]=(0,af.useServerAction)(X,{onOk:()=>{c(),(0,ah.revalidate)(o.queryKey.memory)}}),i=()=>{let b=e.trim();if(!b||b===a.description)return c();g(a.id,{description:b})};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(r.Input,{autoFocus:!0,value:e,onChange:a=>f(a.target.value),onKeyDown:am(i,c),"aria-label":"The note's line",placeholder:"One line the agent sees in its note list",className:"h-8 min-w-0 flex-1 text-[13px]"}),(0,b.jsx)(p.Button,{size:"icon-sm",variant:"ghost","aria-label":"Save",loading:h,onClick:i,children:!h&&(0,b.jsx)(d.Check,{})}),(0,b.jsx)(p.Button,{size:"icon-sm",variant:"ghost","aria-label":"Cancel",onClick:c,children:(0,b.jsx)(m.X,{})})]})}function ap({noteId:a}){let[c,d]=(0,n.useState)(""),[e,f]=(0,af.useServerAction)(R,{onOk:()=>{d(""),(0,ah.revalidate)(o.queryKey.memory)}}),g=()=>{let b=c.trim();b&&!f&&e(a,[b])};return(0,b.jsxs)("div",{className:"flex items-center gap-1.5 pb-1",children:[(0,b.jsx)(r.Input,{value:c,onChange:a=>d(a.target.value),onKeyDown:am(g,()=>d("")),"aria-label":"Add a fact",placeholder:"Add a fact",className:"h-8 min-w-0 flex-1 bg-background text-sm"}),(0,b.jsxs)(p.Button,{size:"sm",variant:"outline",loading:f,disabled:!c.trim(),onClick:g,children:[!f&&(0,b.jsx)(k.Plus,{}),"Add"]})]})}function aq({noteId:a,fact:e}){let f,[g,i]=(0,n.useState)(!1),[k,q]=(0,n.useState)(e.text),[s,t]=(0,af.useServerAction)(V,{onOk:()=>{i(!1),(0,ah.revalidate)(o.queryKey.memory)}}),[u,v]=(0,af.useServerAction)(W,aj),[w,x]=(0,af.useServerAction)(U,aj),y=()=>{let b=k.trim();if(!b||b===e.text)return i(!1);s(a,e.id,b)},z="user"===(f=e.source)?"you":"call"===f?"on a call":"bot"===f?"a bot":"";return(0,b.jsxs)("div",{className:"flex min-h-10 items-center gap-1.5",children:[(0,b.jsx)(p.Button,{size:"icon-sm",variant:e.alwaysLoad?"secondary":"ghost","aria-pressed":e.alwaysLoad,"aria-label":e.alwaysLoad?"Stop carrying into calls":"Carry into every call",title:"Carried into every call, without opening this note",loading:v,onClick:()=>u(a,e.id,!e.alwaysLoad),children:!v&&(0,b.jsx)(j,{className:(0,L.cn)(!e.alwaysLoad&&"text-muted-foreground/45")})}),g?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(r.Input,{autoFocus:!0,value:k,onChange:a=>q(a.target.value),onKeyDown:am(y,()=>i(!1)),"aria-label":"Fact",className:"h-8 min-w-0 flex-1 bg-background text-sm"}),(0,b.jsx)(p.Button,{size:"icon-sm",variant:"ghost","aria-label":"Save",loading:t,onClick:y,children:!t&&(0,b.jsx)(d.Check,{})}),(0,b.jsx)(p.Button,{size:"icon-sm",variant:"ghost","aria-label":"Cancel",onClick:()=>i(!1),children:(0,b.jsx)(m.X,{})})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"min-w-0 flex-1 pl-1 text-sm leading-relaxed text-foreground/90",children:e.text}),(0,b.jsxs)("span",{className:"shrink-0 pr-1 font-mono text-[11px] text-muted-foreground/50",children:[(0,c.format)(e.createdAt,"yyyy.MM.dd"),z&&` \xb7 ${z}`]}),(0,b.jsx)(p.Button,{size:"icon-sm",variant:"ghost",className:"text-muted-foreground","aria-label":"Edit this fact",onClick:()=>{q(e.text),i(!0)},children:(0,b.jsx)(h,{})}),(0,b.jsx)(p.Button,{size:"icon-sm",variant:"ghost",className:"text-muted-foreground","aria-label":"Forget this fact",loading:x,onClick:()=>w(a,e.id),children:!x&&(0,b.jsx)(l.Trash2,{})})]})]})}let ar=[{key:"people",label:"Person",placeholder:"jihoon",fact:"Moved to the platform team in March"},{key:"projects",label:"Project",placeholder:"thursday",fact:"Ships behind a feature flag until April"},{key:"topics",label:"Topic",placeholder:"scheduling",fact:"No meetings before 10am"}];function as(){return s.notify.component({className:"sm:max-w-lg",renderer:({close:a})=>(0,b.jsx)(at,{onDone:a})})}function at({onDone:a}){let[c,d]=(0,n.useState)("people"),[e,f]=(0,n.useState)(""),[g,h]=(0,n.useState)(""),[i,j]=(0,n.useState)(""),[l,m,,s]=(0,af.useServerAction)(S,{errorMessage:!1,onOk:()=>{(0,ah.revalidate)(o.queryKey.memory),a()}}),t=ar.find(a=>a.key===c),w=e.trim()&&g.trim()&&!m,x=()=>{w&&l(`${c}/${e.trim()}`,g.trim(),i.split("\n").map(a=>a.trim()).filter(Boolean))};return(0,b.jsxs)(ae.SettingDialogContent,{title:"New note",description:"Where the agent files what it learns about this subject.",footer:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(p.Button,{variant:"ghost",onClick:a,children:"Cancel"}),(0,b.jsxs)(p.Button,{disabled:!w,loading:m,onClick:x,children:[!m&&(0,b.jsx)(k.Plus,{}),"Create"]})]}),children:[(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)(q.Field,{children:[(0,b.jsx)(q.FieldLabel,{children:"Kind"}),(0,b.jsx)(u.Tabs,{value:c,onValueChange:a=>d(a),children:(0,b.jsx)(u.TabsList,{className:"w-full",children:ar.map(a=>(0,b.jsx)(u.TabsTrigger,{value:a.key,children:a.label},a.key))})})]}),(0,b.jsxs)(q.Field,{children:[(0,b.jsx)(q.FieldLabel,{htmlFor:"note-name",children:"Name"}),(0,b.jsxs)(q.FieldContent,{children:[(0,b.jsx)(r.Input,{id:"note-name",value:e,onChange:a=>f(a.target.value),placeholder:t?.placeholder,spellCheck:!1,required:!0}),(0,b.jsxs)("p",{className:"font-mono text-[11px] text-muted-foreground",children:[c,"/",e.trim()||"…"]})]})]}),(0,b.jsxs)(q.Field,{children:[(0,b.jsx)(q.FieldLabel,{htmlFor:"note-summary",children:"Summary"}),(0,b.jsx)(q.FieldContent,{children:(0,b.jsx)(r.Input,{id:"note-summary",value:g,onChange:a=>h(a.target.value),onKeyDown:a=>"Enter"===a.key&&x(),placeholder:"One line the agent sees in its note list",required:!0})})]}),(0,b.jsxs)(q.Field,{children:[(0,b.jsx)(q.FieldLabel,{htmlFor:"note-facts",children:"Facts"}),(0,b.jsx)(v.Textarea,{id:"note-facts",value:i,onChange:a=>j(a.target.value),placeholder:`One per line
1
+ module.exports=[857022,a=>{"use strict";var b=a.i(187924),c=a.i(256711),d=a.i(752562),e=a.i(141146),f=a.i(164831);let g={name:"pencil",size:24,node:[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]};g.node;let h=(0,f.default)(g),i={name:"pin",size:24,node:[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]};i.node;let j=(0,f.default)(i);var k=a.i(403512),l=a.i(951675),m=a.i(474215),n=a.i(572131),o=a.i(767561),p=a.i(340695),q=a.i(316474),r=a.i(205522),s=a.i(446181),t=a.i(950463),u=a.i(621958),v=a.i(546893),w=a.i(287702),x=a.i(379630),y=a.i(61876),z=a.i(275086),A=a.i(172654),B=a.i(327598);let C={name:"book-open",size:24,node:[["path",{d:"M12 5v16",key:"1f6ucr"}],["path",{d:"M20.001 19A2 2 0 0022 17V5a2 2 0 00-1.999-2L16 3.002A5 5 0 0012 5a5 5 0 00-4-2H4a2 2 0 00-2 2v12a2 2 0 001.999 2H8a5 5 0 014 2 5 5 0 014-2z",key:"1fyvmf"}]]};C.node;let D=(0,f.default)(C);var E=a.i(589027),F=a.i(875160);let G={name:"minus",size:24,node:[["path",{d:"M5 12h14",key:"1ays0h"}]]};G.node;let H=(0,f.default)(G);var I=a.i(545097),J=a.i(608902),K=a.i(421042),L=a.i(497895);let M=new A.DefaultChatTransport({api:o.queryKey.memoryEdit});function N({notes:a}){let[c,d]=(0,n.useState)(""),[e,f]=(0,n.useState)({provider:null,model:""}),[g,h]=(0,n.useState)(!1),{messages:i,sendMessage:j,setMessages:k,status:l,stop:m,error:o,clearError:q}=(0,z.useChat)({transport:M}),r=(0,n.useRef)(m);r.current=m,(0,n.useEffect)(()=>()=>{r.current()},[]);let s=(0,n.useRef)(new Map);for(let b of a)for(let a of b.facts)s.current.set(a.id,{text:a.text,path:b.path});let t="submitted"===l||"streaming"===l,u=!!(e.provider&&e.model.trim()),v=[...i].reverse().find(a=>"assistant"===a.role),w=v?.parts??[],y=w.filter(A.isToolUIPart),C=w.flatMap(a=>"text"===a.type?[a.text]:[]).join(" ").trim(),D=!!o||y.some(a=>"output-error"===a.state),F=y.filter(a=>"output-available"===a.state&&(0,A.getToolName)(a)!==K.TOOL_NAMES.memory_recall).length;(0,n.useEffect)(()=>{if("ready"!==l||D||0===i.length)return;let a=setTimeout(()=>k([]),4e3);return()=>clearTimeout(a)},[l,D,i.length,k]);let G=t?(0,b.jsx)(I.ShinyText,{text:"Working on memory",className:"text-xs"}):o?(0,b.jsx)("span",{className:"text-xs text-destructive",children:o.message}):v?(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:C||(0===F?"Nothing to change":1===F?"1 change saved":`${F} changes saved`)}):null;return(0,b.jsx)("div",{className:"pointer-events-none absolute inset-x-0 bottom-18 z-10 flex justify-center px-8",children:(0,b.jsxs)("div",{className:"pointer-events-auto flex w-full max-w-120 flex-col items-center gap-2",children:[g&&(0,b.jsx)("div",{className:"w-full rounded-xl bg-popover p-2 shadow-lg ring-1 ring-foreground/10",children:(0,b.jsx)(J.ModelPicker,{provider:e.provider,model:e.model,unset:"Provider",onChange:f})}),y.length>0&&(0,b.jsx)("ul",{className:"w-full divide-y divide-border/60 overflow-hidden rounded-xl bg-popover shadow-lg ring-1 ring-foreground/10",children:y.map(a=>(0,b.jsx)(P,{name:(0,A.getToolName)(a),input:a.input,state:a.state,errorText:"output-error"===a.state?a.errorText:void 0,known:s.current},a.toolCallId))}),G&&(0,b.jsx)("p",{className:"max-w-full truncate px-1",children:G}),(0,b.jsxs)("form",{onSubmit:a=>{a.preventDefault();let b=c.trim();b&&u&&!t&&(d(""),h(!1),q(),k([]),j({text:b},{body:{model:e}}))},className:"flex h-10 w-full items-center gap-1.5 rounded-xl bg-popover pr-1.5 pl-3.5 shadow-lg ring-1 ring-foreground/10",children:[(0,b.jsx)("input",{autoFocus:!0,value:c,onChange:a=>d(a.target.value),disabled:t,"aria-label":"Edit memory",placeholder:"Tell memory what changed",className:"min-w-0 flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground disabled:opacity-60"}),(0,b.jsxs)(p.Button,{type:"button",size:"xs",variant:"ghost",onClick:()=>h(!g),className:(0,L.cn)("max-w-44",!u&&"text-muted-foreground"),children:[u&&e.provider?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(x.ProviderIcon,{provider:e.provider,className:"size-3"}),(0,b.jsx)("span",{className:"truncate",children:e.model})]}):"Model",(0,b.jsx)(E.ChevronDown,{className:"text-muted-foreground"})]}),(0,b.jsx)(p.Button,{type:"submit",size:"icon-sm",loading:t,disabled:!c.trim()||!u||t,"aria-label":"Send",children:!t&&(0,b.jsx)(B.ArrowUp,{})})]})]})})}let O={Remember:k.Plus,Replace:h,Forget:H,Rename:h,Opened:D};function P({name:a,input:c,state:e,errorText:f,known:g}){let h=function(a,b,c){let d=b??{};if(a===K.TOOL_NAMES.memory_recall)return{kind:"Opened",path:d.path??"",lines:[],carried:!1};if(a===K.TOOL_NAMES.memory_forget){let a=(d.factIds??[]).filter(a=>null!=a),b=a.map(a=>c.get(a));return{kind:"Forget",path:b.find(a=>a)?.path??"",lines:a.map((a,c)=>({before:b[c]?.text??`Fact #${a}`})),carried:!1}}let e=(d.facts??[]).filter(a=>null!=a),f=e.map(a=>null!=a.replaces?{before:c.get(a.replaces)?.text??`Fact #${a.replaces}`,after:a.text}:{after:a.text});d.description&&f.push({after:`“${d.description}”`});let g=(d.aliases??[]).filter(Boolean);return g.length&&f.push({after:`Called ${g.map(a=>`“${a}”`).join(", ")}`}),{kind:e.some(a=>null!=a.replaces)?"Replace":e.length?"Remember":"Rename",path:d.path??"",lines:f,carried:e.some(a=>a.alwaysLoad)}}(a,c,g),i=O[h.kind],j="output-error"===e;return(0,b.jsxs)("li",{className:"flex animate-in items-start gap-2.5 px-3 py-2.5 duration-200 fade-in slide-in-from-bottom-1",children:[(0,b.jsx)(i,{className:"mt-1 size-3.5 shrink-0 text-muted-foreground"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 space-y-0.5",children:[h.lines.map((a,c)=>(0,b.jsxs)("div",{children:[a.before&&(0,b.jsx)("p",{className:"text-[13px] leading-5 text-muted-foreground/60 line-through",children:a.before}),a.after&&(0,b.jsx)("p",{className:"text-sm leading-5 text-foreground/90",children:a.after})]},`${h.kind}-${c}`)),(0,b.jsxs)("p",{className:"pt-0.5 font-mono text-[11px] text-muted-foreground",children:[h.kind,h.path&&` \xb7 ${h.path}`,h.carried&&" · carried into every call"]}),j&&f&&(0,b.jsx)("p",{className:"text-xs text-destructive",children:f})]}),(0,b.jsx)("span",{className:"mt-0.5 flex size-5 shrink-0 items-center justify-center text-muted-foreground",children:j?(0,b.jsx)(m.X,{className:"size-3.5 text-destructive"}):"output-available"===e?(0,b.jsx)(d.Check,{className:"size-3.5"}):(0,b.jsx)(F.Loader2,{className:"size-3.5 animate-spin"})})]})}var Q=a.i(405050);let R=(0,Q.createServerReference)("7f1cd872cc880eeb62bf24c8c528ed75234a1a85e4",Q.callServer,void 0,Q.findSourceMapURL,"addFactsAction"),S=(0,Q.createServerReference)("7f50757e9d7e6f383fd66fa3270a67482eb3aad7fe",Q.callServer,void 0,Q.findSourceMapURL,"createNoteAction"),T=(0,Q.createServerReference)("7f7ad4e27616e08091a2a0c51337523e528fc54250",Q.callServer,void 0,Q.findSourceMapURL,"deleteNoteAction"),U=(0,Q.createServerReference)("7fb17ddf07f086a5de564324609d776bb33dcfedce",Q.callServer,void 0,Q.findSourceMapURL,"forgetFactAction"),V=(0,Q.createServerReference)("7fbd1c4426cf280c7564105f30872c2bcf6448df1b",Q.callServer,void 0,Q.findSourceMapURL,"reviseFactAction"),W=(0,Q.createServerReference)("7f4a26fc7fcc90d13ee24aa9b41175a4a6b74dcf8b",Q.callServer,void 0,Q.findSourceMapURL,"setFactAlwaysLoadAction"),X=(0,Q.createServerReference)("7f30c55353cbf246851082ad5f24a36f145e13d314",Q.callServer,void 0,Q.findSourceMapURL,"updateNoteAction");var Y=a.i(156757),Z=a.i(199169);let $=Y.z.enum(["user","call","bot"]),_=Y.z.object({id:Y.z.number(),text:Y.z.string(),alwaysLoad:Y.z.boolean(),source:$.nullish(),createdAt:Z.DateLikeSchema});Y.z.object({id:Y.z.number(),path:Y.z.string(),description:Y.z.string(),aliases:Y.z.string().array().nullish(),ownedByUser:Y.z.boolean(),hits:Y.z.number(),lastReadAt:Z.DateLikeSchema.nullable(),createdAt:Z.DateLikeSchema,updatedAt:Z.DateLikeSchema,factCount:Y.z.number(),facts:_.array()});let aa=[{path:"profile",of:"The user themselves — their name, age, what they do, where they live, and whatever else says who they are"},{path:"preferences",of:"How they want things done, and said"},{path:"people/",of:"Someone in their life, and what matters about them"},{path:"projects/",of:"Something with an end — a trip, a purchase, a deadline, a thing being built"},{path:"topics/",of:"Something ongoing that keeps coming back"}],ab=aa.filter(a=>!a.path.endsWith("/")).map(a=>a.path),ac=aa.filter(a=>a.path.endsWith("/")).map(a=>a.path.slice(0,-1));RegExp(`^(?:${ab.join("|")}|(?:${ac.join("|")})/.+)$`);let ad=["profile","preferences"];var ae=a.i(619477),af=a.i(313237),ag=a.i(862966),ah=a.i(759497);let ai=[{key:"you",label:"You"},{key:"people",label:"People"},{key:"projects",label:"Projects"},{key:"topics",label:"Topics"},{key:"other",label:"Other"}],aj={onOk:()=>(0,ah.revalidate)(o.queryKey.memory)},ak=y.textModelProviderSchema.options.filter(a=>"chatgpt"!==a).slice(0,3);function al(){return(0,b.jsx)("span",{className:"mr-0.5 flex items-center",children:ak.map(a=>(0,b.jsx)("span",{className:"-ml-1.5 grid size-5 place-items-center rounded-full bg-background ring-1 ring-border first:ml-0",children:(0,b.jsx)(x.ProviderIcon,{provider:a,className:"size-3"})},a))})}function am(a,b){return c=>{c.nativeEvent.isComposing||229===c.keyCode||("Enter"===c.key&&(c.preventDefault(),a()),"Escape"===c.key&&(c.stopPropagation(),b()))}}function an({note:a,open:c,onToggle:d}){var f;let g,i,j,k,m,[o,q]=(0,n.useState)(!1),[r,t]=(0,af.useServerAction)(T,aj),u=async()=>{await s.notify.confirm({title:`Forget ${a.path}?`,description:"Every fact in this note is deleted for good.",okText:"Delete",destructive:!0})&&r(a.id)},v=(0,b.jsx)("span",{className:"w-36 shrink-0 truncate text-sm font-medium",children:-1===(g=(f=a.path).indexOf("/"))?f:f.slice(g+1)});return(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"flex h-12 items-center gap-3 pr-2 pl-4",children:o?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.ChevronRight,{className:"size-3.5 shrink-0 rotate-90 text-muted-foreground"}),v,(0,b.jsx)(ao,{note:a,onDone:()=>q(!1)})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("button",{type:"button","aria-expanded":c,onClick:d,className:(0,L.cn)("flex h-full min-w-0 flex-1 items-center gap-3 text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",(i=a.path,!ad.includes(i)&&.15>(j=(0,Z.toDate)(a.lastReadAt??a.createdAt),k=Math.max(0,(Date.now()-j.getTime())/864e5),(a.hits+1)/(1+k))&&!c&&"opacity-55")),children:[(0,b.jsx)(e.ChevronRight,{className:(0,L.cn)("size-3.5 shrink-0 text-muted-foreground transition-transform",c&&"rotate-90")}),v,(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-[13px] text-muted-foreground",children:a.description}),(0,b.jsxs)("span",{className:"w-16 shrink-0 text-right font-mono text-[11px] text-muted-foreground/70",children:[a.factCount," ",1===a.factCount?"fact":"facts"]}),(0,b.jsx)("span",{className:"w-10 shrink-0 text-right font-mono text-[11px] text-muted-foreground/50",title:a.lastReadAt?"Last read back":"Never read back",children:a.lastReadAt?(0,Z.shortAgo)(a.lastReadAt):"—"})]}),(0,b.jsx)("span",{className:"flex w-15 shrink-0 justify-end",children:c&&(0,b.jsxs)(b.Fragment,{children:[(m=a.path,!ad.includes(m)&&(0,b.jsx)(p.Button,{size:"icon-sm",variant:"ghost",className:"text-muted-foreground","aria-label":"Edit the note's line",onClick:()=>q(!0),children:(0,b.jsx)(h,{})})),(0,b.jsx)(p.Button,{size:"icon-sm",variant:"ghost",className:"text-muted-foreground","aria-label":"Forget this note",loading:t,onClick:u,children:!t&&(0,b.jsx)(l.Trash2,{})})]})})]})}),c&&(0,b.jsxs)("div",{className:"space-y-1 border-t border-border/60 bg-muted/40 py-2.5 pr-2 pl-10",children:[(0,b.jsx)(ap,{noteId:a.id}),a.facts.map(c=>(0,b.jsx)(aq,{noteId:a.id,fact:c},c.id))]})]})}function ao({note:a,onDone:c}){let[e,f]=(0,n.useState)(a.description),[g,h]=(0,af.useServerAction)(X,{onOk:()=>{c(),(0,ah.revalidate)(o.queryKey.memory)}}),i=()=>{let b=e.trim();if(!b||b===a.description)return c();g(a.id,{description:b})};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(r.Input,{autoFocus:!0,value:e,onChange:a=>f(a.target.value),onKeyDown:am(i,c),"aria-label":"The note's line",placeholder:"One line Thursday sees in her list",className:"h-8 min-w-0 flex-1 text-[13px]"}),(0,b.jsx)(p.Button,{size:"icon-sm",variant:"ghost","aria-label":"Save",loading:h,onClick:i,children:!h&&(0,b.jsx)(d.Check,{})}),(0,b.jsx)(p.Button,{size:"icon-sm",variant:"ghost","aria-label":"Cancel",onClick:c,children:(0,b.jsx)(m.X,{})})]})}function ap({noteId:a}){let[c,d]=(0,n.useState)(""),[e,f]=(0,af.useServerAction)(R,{onOk:()=>{d(""),(0,ah.revalidate)(o.queryKey.memory)}}),g=()=>{let b=c.trim();b&&!f&&e(a,[b])};return(0,b.jsxs)("div",{className:"flex items-center gap-1.5 pb-1",children:[(0,b.jsx)(r.Input,{value:c,onChange:a=>d(a.target.value),onKeyDown:am(g,()=>d("")),"aria-label":"Add a fact",placeholder:"Add a fact",className:"h-8 min-w-0 flex-1 bg-background text-sm"}),(0,b.jsxs)(p.Button,{size:"sm",variant:"outline",loading:f,disabled:!c.trim(),onClick:g,children:[!f&&(0,b.jsx)(k.Plus,{}),"Add"]})]})}function aq({noteId:a,fact:e}){let f,[g,i]=(0,n.useState)(!1),[k,q]=(0,n.useState)(e.text),[s,t]=(0,af.useServerAction)(V,{onOk:()=>{i(!1),(0,ah.revalidate)(o.queryKey.memory)}}),[u,v]=(0,af.useServerAction)(W,aj),[w,x]=(0,af.useServerAction)(U,aj),y=()=>{let b=k.trim();if(!b||b===e.text)return i(!1);s(a,e.id,b)},z="user"===(f=e.source)?"you":"call"===f?"on a call":"bot"===f?"a bot":"";return(0,b.jsxs)("div",{className:"flex min-h-10 items-center gap-1.5",children:[(0,b.jsx)(p.Button,{size:"icon-sm",variant:e.alwaysLoad?"secondary":"ghost","aria-pressed":e.alwaysLoad,"aria-label":e.alwaysLoad?"Stop carrying into calls":"Carry into every call",title:"Carried into every call, without opening this note",loading:v,onClick:()=>u(a,e.id,!e.alwaysLoad),children:!v&&(0,b.jsx)(j,{className:(0,L.cn)(!e.alwaysLoad&&"text-muted-foreground/45")})}),g?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(r.Input,{autoFocus:!0,value:k,onChange:a=>q(a.target.value),onKeyDown:am(y,()=>i(!1)),"aria-label":"Fact",className:"h-8 min-w-0 flex-1 bg-background text-sm"}),(0,b.jsx)(p.Button,{size:"icon-sm",variant:"ghost","aria-label":"Save",loading:t,onClick:y,children:!t&&(0,b.jsx)(d.Check,{})}),(0,b.jsx)(p.Button,{size:"icon-sm",variant:"ghost","aria-label":"Cancel",onClick:()=>i(!1),children:(0,b.jsx)(m.X,{})})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"min-w-0 flex-1 pl-1 text-sm leading-relaxed text-foreground/90",children:e.text}),(0,b.jsxs)("span",{className:"shrink-0 pr-1 font-mono text-[11px] text-muted-foreground/50",children:[(0,c.format)(e.createdAt,"yyyy.MM.dd"),z&&` \xb7 ${z}`]}),(0,b.jsx)(p.Button,{size:"icon-sm",variant:"ghost",className:"text-muted-foreground","aria-label":"Edit this fact",onClick:()=>{q(e.text),i(!0)},children:(0,b.jsx)(h,{})}),(0,b.jsx)(p.Button,{size:"icon-sm",variant:"ghost",className:"text-muted-foreground","aria-label":"Forget this fact",loading:x,onClick:()=>w(a,e.id),children:!x&&(0,b.jsx)(l.Trash2,{})})]})]})}let ar=[{key:"people",label:"Person",placeholder:"jihoon",fact:"Moved to the platform team in March"},{key:"projects",label:"Project",placeholder:"thursday",fact:"Ships behind a feature flag until April"},{key:"topics",label:"Topic",placeholder:"scheduling",fact:"No meetings before 10am"}];function as(){return s.notify.component({className:"sm:max-w-lg",renderer:({close:a})=>(0,b.jsx)(at,{onDone:a})})}function at({onDone:a}){let[c,d]=(0,n.useState)("people"),[e,f]=(0,n.useState)(""),[g,h]=(0,n.useState)(""),[i,j]=(0,n.useState)(""),[l,m,,s]=(0,af.useServerAction)(S,{errorMessage:!1,onOk:()=>{(0,ah.revalidate)(o.queryKey.memory),a()}}),t=ar.find(a=>a.key===c),w=e.trim()&&g.trim()&&!m,x=()=>{w&&l(`${c}/${e.trim()}`,g.trim(),i.split("\n").map(a=>a.trim()).filter(Boolean))};return(0,b.jsxs)(ae.SettingDialogContent,{title:"New note",description:"Where Thursday keeps what she learns about this.",footer:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(p.Button,{variant:"ghost",onClick:a,children:"Cancel"}),(0,b.jsxs)(p.Button,{disabled:!w,loading:m,onClick:x,children:[!m&&(0,b.jsx)(k.Plus,{}),"Create"]})]}),children:[(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)(q.Field,{children:[(0,b.jsx)(q.FieldLabel,{children:"Kind"}),(0,b.jsx)(u.Tabs,{value:c,onValueChange:a=>d(a),children:(0,b.jsx)(u.TabsList,{className:"w-full",children:ar.map(a=>(0,b.jsx)(u.TabsTrigger,{value:a.key,children:a.label},a.key))})})]}),(0,b.jsxs)(q.Field,{children:[(0,b.jsx)(q.FieldLabel,{htmlFor:"note-name",children:"Name"}),(0,b.jsxs)(q.FieldContent,{children:[(0,b.jsx)(r.Input,{id:"note-name",value:e,onChange:a=>f(a.target.value),placeholder:t?.placeholder,spellCheck:!1,required:!0}),(0,b.jsxs)("p",{className:"font-mono text-[11px] text-muted-foreground",children:[c,"/",e.trim()||"…"]})]})]}),(0,b.jsxs)(q.Field,{children:[(0,b.jsx)(q.FieldLabel,{htmlFor:"note-summary",children:"Summary"}),(0,b.jsx)(q.FieldContent,{children:(0,b.jsx)(r.Input,{id:"note-summary",value:g,onChange:a=>h(a.target.value),onKeyDown:a=>"Enter"===a.key&&x(),placeholder:"One line Thursday sees in her list",required:!0})})]}),(0,b.jsxs)(q.Field,{children:[(0,b.jsx)(q.FieldLabel,{htmlFor:"note-facts",children:"Facts"}),(0,b.jsx)(v.Textarea,{id:"note-facts",value:i,onChange:a=>j(a.target.value),placeholder:`One per line
2
2
  ${t?.fact??""}`,className:"min-h-24 resize-none text-sm"})]})]}),s&&(0,b.jsx)("p",{className:"font-mono text-xs text-destructive",children:s})]})}a.s(["MemorySetting",0,function(){let{items:a,isLoading:c,isLoadingMore:d,error:e,hasMore:f,sentinelRef:g}=(0,ag.useServerPages)({key:a=>o.queryKey.memoryPage(a*w.PAGE_SIZE)}),[h,i]=(0,n.useState)(""),[j,l]=(0,n.useState)(new Set),[m,q]=(0,n.useState)(!1);if(c)return(0,b.jsx)(ae.SettingSkeleton,{});if(e)return(0,b.jsx)(ae.SettingError,{message:e.message});let r=h.trim().toLowerCase(),s=r?a.filter(a=>[a.path,a.description,...a.aliases??[],...a.facts.map(a=>a.text)].some(a=>a.toLowerCase().includes(r))):a,u=a.reduce((a,b)=>a+b.factCount,0),v=a.reduce((a,b)=>a+b.facts.filter(a=>a.alwaysLoad).length,0),x=f?"+":"";return(0,b.jsxs)("div",{className:"relative h-full min-h-0",children:[(0,b.jsxs)(ae.SettingScreen,{footer:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(ae.SettingRailNote,{children:(0,b.jsxs)("span",{className:"font-mono",children:[v," of ",w.MEMORY_LIMITS.carried," carried into every call"]})}),(0,b.jsxs)(p.Button,{size:"sm",variant:m?"secondary":"ghost","aria-pressed":m,onClick:()=>q(!m),children:[(0,b.jsx)(al,{}),"Edit with a model"]})]}),children:[(0,b.jsx)(ae.SettingToolbar,{count:(0,b.jsxs)("span",{className:"flex items-center gap-3",children:[`${a.length}${x} notes \xb7 ${u}${x} facts`,(0,b.jsxs)(p.Button,{size:"sm",variant:"outline",className:"font-sans",onClick:as,children:[(0,b.jsx)(k.Plus,{}),"New note"]})]}),children:(0,b.jsx)(ae.SettingFilter,{value:h,onChange:i,placeholder:"Filter memory"})}),r&&0===s.length&&(0,b.jsx)("p",{className:"px-1 text-xs text-muted-foreground/60",children:"Nothing matches"}),ai.map(({key:a,label:c})=>{let d=s.filter(b=>(function(a){if("profile"===a||"preferences"===a)return"you";let b=a.slice(0,a.indexOf("/"));return ac.includes(b)?b:"other"})(b.path)===a);return 0===d.length?null:(0,b.jsx)(ae.SettingGroup,{label:c,children:(0,b.jsx)(ae.SettingItems,{children:d.map(a=>(0,b.jsx)(an,{note:a,open:j.has(a.id)!==!!r,onToggle:()=>{let b;return b=a.id,l(a=>{let c=new Set(a);return c.delete(b)||c.add(b),c})}},a.id))})},a)}),(0,b.jsx)(ae.SettingMore,{hasMore:f,loading:d,sentinelRef:g,ghost:(0,b.jsxs)("div",{className:"flex h-12 items-center gap-3 px-4",children:[(0,b.jsx)(t.Skeleton,{className:"h-3 w-24"}),(0,b.jsx)(t.Skeleton,{className:"h-3 w-56"})]})})]}),m&&(0,b.jsx)(N,{notes:a})]})}],857022)}];
3
3
 
4
4
  //# sourceMappingURL=features_memory_components_memory-setting_tsx_0oa43sw._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[41014,a=>{"use strict";var b=a.i(187924),c=a.i(256711),d=a.i(987234),e=a.i(164831);let f={name:"calendar-days",size:24,node:[["path",{d:"M8 2v3",key:"1ioesn"}],["path",{d:"M16 2v3",key:"otl347"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M8 13h.01",key:"1sbv64"}],["path",{d:"M12 13h.01",key:"y0uutt"}],["path",{d:"M16 13h.01",key:"wip0gl"}],["path",{d:"M8 17h.01",key:"p3bg7i"}],["path",{d:"M12 17h.01",key:"p32p05"}],["path",{d:"M16 17h.01",key:"ql8jdd"}]]};f.node;let g=(0,e.default)(f);var h=a.i(589027),i=a.i(141146),j=a.i(875160),k=a.i(272944),l=a.i(738835),m=a.i(951675),n=a.i(474215),o=a.i(572131),p=a.i(767561),q=a.i(340695),r=a.i(965733),s=a.i(676504),t=a.i(205522),u=a.i(446181),v=a.i(777794),w=a.i(545097),x=a.i(280281),y=a.i(546893),z=a.i(287702),A=a.i(913834),B=a.i(869480),C=a.i(135432),D=a.i(619477),E=a.i(28996),F=a.i(199169),G=a.i(313237),H=a.i(759497),I=a.i(497895),J=a.i(405050);let K=(0,J.createServerReference)("7fac817ed1eba7a48ad4eecfc0084ed682f61483cc",J.callServer,void 0,J.findSourceMapURL,"createRoutineAction"),L=(0,J.createServerReference)("7f1bb0587d0cb866036edaa1a9d3ddbb1ace60f525",J.callServer,void 0,J.findSourceMapURL,"deleteRoutineAction"),M=(0,J.createServerReference)("7f3cdf6be1eacd8a5feb8c1d1434cd715aba6dffc3",J.callServer,void 0,J.findSourceMapURL,"runRoutineNowAction"),N=(0,J.createServerReference)("7f10820c7adb61eb66a42c611e5a2ffd7605f3956c",J.callServer,void 0,J.findSourceMapURL,"updateRoutineAction");var O=a.i(702080);let P=[1,2,3,4,5,6,7],Q=O.default.string().regex(/^([01]\d|2[0-3]):[0-5]\d$/,"A time is HH:MM, 00:00 to 23:59");function R(a){let[b,c]=a.split(" "),[d,e,f]=b.split("-").map(Number),[g,h]=c.split(":").map(Number);return new Date(d,e-1,f,g,h)}let S=/^\d{4}-\d\d-\d\d ([01]\d|2[0-3]):[0-5]\d$/,T=O.default.string().regex(S,'A moment is "YYYY-MM-DD HH:MM"').refine(a=>{if(!S.test(a))return!0;let b=R(a);return b.getMonth()===Number(a.slice(5,7))-1&&b.getDate()===Number(a.slice(8,10))},"There is no such day"),U=O.default.discriminatedUnion("kind",[O.default.object({kind:O.default.literal("once"),at:T}),O.default.object({kind:O.default.literal("daily"),time:Q,days:O.default.array(O.default.number().int().min(1).max(7)).min(1,"Pick at least one day").transform(a=>[...new Set(a)].sort((a,b)=>a-b))}),O.default.object({kind:O.default.literal("every"),hours:O.default.number().int().min(z.ROUTINE.minHours,`No more often than every ${z.ROUTINE.minHours}h`).max(168)})]),V=O.default.object({bot:O.default.string().trim().min(1,"Pick a bot"),label:O.default.string().trim().min(1,"Give it a name").max(80),request:O.default.string().trim().min(1,"Say what it should do"),schedule:U}),W=O.default.object({id:O.default.string(),status:O.default.enum(["running","waiting","done","cancelled"]),outcome:O.default.string().nullable(),updatedAt:F.DateLikeSchema});V.extend({id:O.default.string(),enabled:O.default.boolean(),nextRunAt:F.DateLikeSchema,runs:O.default.array(W)});let X=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Y=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Z(a){if("once"===a.kind){let[b,c]=a.at.split(" "),[,d,e]=b.split("-").map(Number);return`Once \xb7 ${Y[d-1]} ${e} ${c}`}if("every"===a.kind)return 1===a.hours?"Every hour":`Every ${a.hours} hours`;let{days:b,time:c}=a;if(7===b.length)return`Daily ${c}`;if(1===b.length)return`${X[b[0]-1]} ${c}`;let d=b.every((a,c)=>0===c||a===b[c-1]+1)?`${X[b[0]-1]}–${X[b.at(-1)-1]}`:b.map(a=>X[a-1]).join(" ");return`Daily ${c} \xb7 ${d}`}var $=a.i(156819);let _=(a,b)=>{let c=b?.find(b=>b.name===a)?.icon;return{color:c?.color,shape:c?.shape,outline:c?.outline,paint:c?.paint}};function aa({routine:a,bots:c,open:d,onOpen:e,onSwitch:f}){let g=function(a,b){let c=a.runs[0],d=c?.outcome?(0,I.plainText)(c.outcome):"",e=c?`${(0,F.whenOf)(c.updatedAt)}${d?` — ${d}`:""}`:"Not run yet";if(!a.enabled)return{text:`Off \xb7 ${e}`,tone:"text-muted-foreground"};let f=b?.find(b=>b.name===a.bot);return b&&(!f||f.disabled)?{text:f?`${a.bot} is switched off`:`${a.bot} is gone — pick another bot`,tone:I.WAITING_INK,waits:!0}:c?.status==="running"?{text:"Running now",tone:"",shine:!0}:c?.status==="waiting"?{text:`The last run waits on you${d?`: ${d}`:""}`,tone:I.WAITING_INK,waits:!0}:{text:e,tone:"text-muted-foreground"}}(a,c),h=a.runs[0]?.status==="running";return(0,b.jsxs)("div",{className:(0,I.cn)("flex items-center gap-3 p-4 transition-colors",d?"bg-muted/80":"hover:bg-muted/50"),children:[(0,b.jsxs)("button",{type:"button",onClick:e,className:(0,I.cn)("flex min-w-0 flex-1 items-center gap-3 rounded-md text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",!a.enabled&&"opacity-70"),children:[(0,b.jsx)(A.BotMark,{size:40,seed:a.bot,..._(a.bot,c),state:h?"thinking":"idle",notify:!!g.waits,className:"shrink-0"}),(0,b.jsxs)("span",{className:"min-w-0 flex-1 space-y-0.5",children:[(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:a.label}),h&&(0,b.jsx)(j.Loader2,{className:"size-3 shrink-0 animate-spin text-muted-foreground"})]}),(0,b.jsx)("span",{className:"flex min-w-0 text-[13px] leading-snug",children:g.shine?(0,b.jsx)(w.ShinyText,{text:g.text,speed:2.2,className:"min-w-0 truncate"}):(0,b.jsx)("span",{className:(0,I.cn)("min-w-0 truncate",g.tone),children:g.text})})]}),(0,b.jsxs)("span",{className:"flex w-44 shrink-0 flex-col items-end gap-0.5 font-mono text-[11px] leading-4 text-muted-foreground tabular-nums",children:[(0,b.jsxs)("span",{className:"flex max-w-full items-center gap-1.5 text-foreground",children:[(0,b.jsx)($.RoutineMark,{className:"size-3 shrink-0 text-muted-foreground"}),(0,b.jsx)("span",{className:"truncate",children:Z(a.schedule)})]}),(0,b.jsx)("span",{className:"max-w-full truncate text-muted-foreground/70",children:a.enabled?`next ${(0,F.whenOf)(a.nextRunAt)}`:"off"})]})]}),(0,b.jsx)(x.Switch,{checked:a.enabled,onCheckedChange:f,"aria-label":`${a.label} on or off`,className:"shrink-0"}),(0,b.jsx)("button",{type:"button",onClick:e,"aria-label":`Open ${a.label}`,className:"shrink-0 rounded-md text-muted-foreground outline-none focus-visible:ring-3 focus-visible:ring-ring/50",children:(0,b.jsx)(i.ChevronRight,{className:"size-4"})})]})}let ab=a=>String(a).padStart(2,"0");function ac(a,b=new Date){let c=new Date(b);return c.setDate(c.getDate()+a),`${c.getFullYear()}-${ab(c.getMonth()+1)}-${ab(c.getDate())}`}let ad=(a,b)=>{let c=a?.schedule;return{label:a?.label??"",bot:a?.bot??b.find(a=>!a.disabled)?.name??"",request:a?.request??"",kind:c?.kind??"daily",time:c?.kind==="daily"?c.time:c?.kind==="once"?c.at.slice(11):"09:00",days:c?.kind==="daily"?c.days:[...P],hours:c?.kind==="every"?c.hours:6,date:c?.kind==="once"?c.at.slice(0,10):ac(1)}};function ae(a){let b=/^\d\d:\d\d$/.test(a.time);return"once"===a.kind?b&&a.date?{kind:"once",at:`${a.date} ${a.time}`}:null:"daily"===a.kind?a.days.length&&b?{kind:"daily",time:a.time,days:a.days}:null:{kind:"every",hours:a.hours}}let af=a=>a?.kind==="once"&&R(a.at)<=new Date,ag=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],ah=[{label:"Every day",days:[1,2,3,4,5,6,7]},{label:"Weekdays",days:[1,2,3,4,5]},{label:"Weekends",days:[6,7]}],ai=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],aj=[1,2,3,6,12,24].filter(a=>a>=z.ROUTINE.minHours);function ak({routine:a,bots:c,onClose:d,onMade:e}){var f,g;let j,[w,z]=(0,o.useState)(null),B=(0,o.useCallback)(a=>{z(a?.closest("[data-slot=dialog-content]")??null)},[]),D="new"===a?null:a,J="new"===a?"new":a?.id??"",[O,Q]=(0,o.useState)(()=>ad(D,c));(0,o.useEffect)(()=>Q(ad(D,c)),[J]);let R=a=>Q(b=>({...b,...a})),S=()=>(0,H.revalidate)(p.queryKey.routines),[T,U]=(0,G.useServerAction)(K,{onOk:a=>{S(),e(a.id)}}),[V]=(0,G.useServerAction)(N,{onOk:S}),[W]=(0,G.useServerAction)(L,{onOk:S}),[X,Y]=(0,G.useServerAction)(M,{onOk:()=>{S(),(0,H.revalidate)(p.queryKey.threads)}}),aa=ae(O),ao=aa&&!af(aa)&&O.label.trim()&&O.bot&&O.request.trim()?{label:O.label.trim(),bot:O.bot,request:O.request.trim(),schedule:aa}:null,at=a=>{D&&V(D.id,a).catch(()=>{})},au=a=>{R(a);let b=ae({...O,...a});!b||af(b)||at({schedule:b,..."once"===b.kind?{enabled:!0}:{}})},av=async()=>{!D||await u.notify.confirm({title:`Delete "${D.label}"?`,description:"It starts no more. The jobs it already opened stay.",okText:"Delete",destructive:!0})&&(await W(D.id).catch(()=>{}),d())},aw=c.find(a=>a.name===O.bot),ax=D?.runs[0]?.status==="running"||D?.runs[0]?.status==="waiting";return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{ref:B,hidden:!0}),(0,b.jsx)(r.Dialog,{open:!!(a&&w),onOpenChange:a=>!a&&d(),modal:!1,disablePointerDismissal:!0,children:(0,b.jsx)(r.DialogPortal,{container:w,children:(0,b.jsx)(r.DialogPopup,{className:"absolute inset-y-0 right-0 z-10 flex w-[min(35rem,calc(100%-13rem))] flex-col border-l border-border/60 bg-popover text-popover-foreground shadow-2xl shadow-black/10 duration-150 data-open:animate-in data-open:fade-in-0 data-open:slide-in-from-right-4 data-closed:animate-out data-closed:fade-out-0 data-closed:slide-out-to-right-4",children:a&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2.5 pt-3.5 pr-3 pb-1.5 pl-5",children:[aw?(0,b.jsx)(A.BotMark,{size:28,seed:aw.name,..._(aw.name,c),notify:!1,className:"shrink-0"}):(0,b.jsx)("span",{className:"flex size-7 shrink-0 items-center justify-center rounded-full bg-muted text-muted-foreground",children:(0,b.jsx)($.RoutineMark,{className:"size-3.5"})}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)(r.DialogTitle,{className:"sr-only",children:D?D.label:"New routine"}),(0,b.jsx)("p",{className:"truncate text-[15px] leading-5 font-semibold",children:D?D.label:"New routine"}),D&&(0,b.jsxs)("p",{className:"mt-0.5 flex min-w-0 items-center gap-1.5 font-mono text-[11px] text-muted-foreground",children:[(0,b.jsx)($.RoutineMark,{className:"size-3 shrink-0"}),(0,b.jsxs)("span",{className:"truncate",children:[D.bot," · ",Z(D.schedule),D.enabled&&` \xb7 next ${(0,F.whenOf)(D.nextRunAt)}`]})]})]}),D&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(x.Switch,{checked:D.enabled,onCheckedChange:a=>void V(D.id,{enabled:a}).catch(()=>{}),"aria-label":`${D.label} on or off`,className:"mr-1 shrink-0"}),(0,b.jsxs)(s.DropdownMenu,{children:[(0,b.jsx)(s.DropdownMenuTrigger,{render:(0,b.jsx)(q.Button,{size:"icon-sm",variant:"ghost","aria-label":"More",className:"text-muted-foreground"}),children:(0,b.jsx)(k.MoreHorizontal,{})}),(0,b.jsx)(s.DropdownMenuContent,{align:"end",children:(0,b.jsxs)(s.DropdownMenuItem,{variant:"destructive",onClick:av,children:[(0,b.jsx)(m.Trash2,{}),"Delete"]})})]})]}),(0,b.jsx)(r.DialogClose,{render:(0,b.jsx)(q.Button,{size:"icon-sm",variant:"ghost","aria-label":"Close the routine"}),children:(0,b.jsx)(n.X,{})})]}),(0,b.jsxs)("div",{className:"min-h-0 flex-1 space-y-4 overflow-y-auto px-5 pt-3 pb-5",children:[(0,b.jsxs)(as,{label:"Name",htmlFor:"routine-name",children:[(0,b.jsx)(t.Input,{id:"routine-name",value:O.label,onChange:a=>R({label:a.target.value}),onBlur:()=>{let a=O.label.trim();a&&a!==D?.label&&at({label:a})},placeholder:"Morning mail",maxLength:80,autoFocus:!D}),(0,b.jsx)(al,{children:"What it is called in this list, and what she calls it on a call."})]}),(0,b.jsxs)(as,{label:"Bot",children:[(0,b.jsxs)(s.DropdownMenu,{children:[(0,b.jsxs)(s.DropdownMenuTrigger,{render:(0,b.jsx)(q.Button,{variant:"outline",className:"justify-start gap-2 pl-1.5 font-normal"}),children:[aw?(0,b.jsx)(A.BotMark,{size:20,seed:aw.name,..._(aw.name,c),notify:!1,className:"shrink-0"}):null,(0,b.jsx)("span",{className:(0,I.cn)(!aw&&"pl-1.5 text-muted-foreground"),children:aw?.name??(O.bot||"Pick a bot")}),(0,b.jsx)(h.ChevronDown,{className:"ml-1 size-3.5 text-muted-foreground"})]}),(0,b.jsx)(s.DropdownMenuContent,{align:"start",children:(0,b.jsx)(s.DropdownMenuGroup,{children:c.filter(a=>!a.disabled).map(a=>(0,b.jsxs)(s.DropdownMenuItem,{onClick:()=>{R({bot:a.name}),a.name!==D?.bot&&at({bot:a.name})},children:[(0,b.jsx)(A.BotMark,{size:16,seed:a.name,..._(a.name,c),notify:!1,className:"shrink-0"}),a.name]},a.name))})})]}),(0,b.jsx)(al,{children:"Who does the job each time it starts."})]}),(0,b.jsx)(as,{label:"When",children:(0,b.jsxs)("div",{className:"space-y-3.5",children:[(0,b.jsx)(v.Segmented,{"aria-label":"How it starts",value:O.kind,onChange:a=>au({kind:a}),options:[{value:"once",label:"Once"},{value:"daily",label:"On set days"},{value:"every",label:"Every few hours"}]}),(0,b.jsx)("div",{className:"space-y-2.5",children:"once"===O.kind?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(an,{word:"On",children:(0,b.jsx)(ap,{value:O.date,onPick:a=>au({date:a})})}),(0,b.jsxs)(an,{word:"At",children:[(0,b.jsx)(aq,{value:O.time,onChange:a=>R({time:a}),onDone:()=>au({})}),(0,b.jsx)("span",{className:"text-[13px] text-muted-foreground",children:"or"}),(0,b.jsx)(am,{picked:!1,onClick:()=>{let a;return au(((a=new Date(Date.now()+36e5)).setMinutes(5*Math.ceil(a.getMinutes()/5),0,0),{date:ac(0,a),time:`${ab(a.getHours())}:${ab(a.getMinutes())}`}))},children:"In an hour"})]})]}):"daily"===O.kind?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(an,{word:"On",children:P.map(a=>{let c=O.days.includes(a);return(0,b.jsx)(am,{picked:c,"aria-label":ai[a-1],onClick:()=>au({days:c?O.days.filter(b=>b!==a):[...O.days,a].sort((a,b)=>a-b)}),children:ag[a-1]},a)})}),(0,b.jsx)(an,{children:ah.map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>au({days:[...a.days]}),className:"h-6.5 rounded-full bg-muted px-2.5 text-xs text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:a.label},a.label))}),(0,b.jsx)(an,{word:"At",children:(0,b.jsx)(aq,{value:O.time,onChange:a=>R({time:a}),onDone:()=>au({})})})]}):(0,b.jsxs)(an,{word:"Every",children:[(aj.includes(O.hours)?aj:[...aj,O.hours].sort((a,b)=>a-b)).map(a=>(0,b.jsx)(am,{picked:a===O.hours,onClick:()=>au({hours:a}),className:"min-w-10 px-3",children:a},a)),(0,b.jsx)("span",{className:"text-[13px] text-muted-foreground",children:"hours"})]})}),(0,b.jsx)(ar,{schedule:aa,kind:O.kind})]})}),(0,b.jsxs)(as,{label:"Job",htmlFor:"routine-request",children:[(0,b.jsx)(y.Textarea,{id:"routine-request",value:O.request,onChange:a=>R({request:a.target.value}),onBlur:()=>{let a=O.request.trim();a&&a!==D?.request&&at({request:a})},placeholder:"Go through the mail that came since the last run and draft replies to what needs one. Send nothing.",className:"min-h-28"}),(0,b.jsx)(al,{children:"Handed to the bot as a new thread each time, with a line on how the last run ended. Nobody is there to ask, so say everything it needs."})]}),D&&(0,b.jsxs)("div",{className:"pt-1",children:[(0,b.jsx)("div",{className:"flex h-6 items-center",children:(0,b.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:"Runs"})}),0===D.runs.length?(0,b.jsx)("p",{className:"py-2 text-[13px] text-muted-foreground",children:"Not run yet."}):D.runs.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>{var b;return b=a.id,void(E.useSettingsStore.getState().hide(),C.roomOpens.open(b))},className:"flex h-9 w-full items-center gap-3 border-t border-border/60 text-left text-[13px] outline-none focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,b.jsx)("span",{className:"w-28 shrink-0 font-mono text-[11px] text-muted-foreground tabular-nums",children:(0,F.whenOf)(a.updatedAt)}),(0,b.jsx)("span",{className:(0,I.cn)("min-w-0 flex-1 truncate","waiting"===a.status?I.WAITING_INK:"text-muted-foreground"),children:"running"===a.status?"Running now":a.outcome?(0,I.plainText)(a.outcome):"cancelled"===a.status?"Stopped":"No words"}),(0,b.jsx)(i.ChevronRight,{className:"size-3 shrink-0 text-muted-foreground"})]},a.id))]})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-3 border-t border-border/60 px-5 py-3",children:[(0,b.jsx)("p",{className:"min-w-0 flex-1 text-xs leading-4 text-muted-foreground",children:D||ao?"Starts while Thursday is running on this computer, with a tab open unless work goes on with the app closed. A time that passed meanwhile starts once, not once for each.":`Still needs ${f=O,g=aa,(j=[f.label.trim()?null:"a name",f.bot?null:"a bot",!g?"a time":af(g)?"a time still ahead":null,f.request.trim()?null:"a job"].filter(a=>null!==a)).length>1?`${j.slice(0,-1).join(", ")} and ${j.at(-1)}`:j[0]??"nothing"}.`}),D?(0,b.jsxs)(q.Button,{variant:"outline",size:"sm",loading:Y,disabled:ax,title:ax?"Its last run is still open":void 0,onClick:()=>void X(D.id).catch(()=>{}),children:[(0,b.jsx)(l.Play,{}),"Run now"]}):(0,b.jsx)(q.Button,{variant:"brand",size:"sm",loading:U,disabled:!ao,onClick:()=>ao&&void T(ao).catch(()=>{}),children:"Create"})]})]})})})})]})}let al=({children:a})=>(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a});function am({picked:a,className:c,...d}){return(0,b.jsx)("button",{type:"button","aria-pressed":a,className:(0,I.cn)("inline-flex h-8 items-center justify-center gap-1.5 rounded-full px-3.5 text-[13px] whitespace-nowrap outline-none transition-colors focus-visible:ring-3 focus-visible:ring-ring/50",a?"bg-brand font-medium text-brand-foreground":"text-foreground ring-1 ring-border ring-inset hover:bg-muted",c),...d})}function an({word:a,children:c}){return(0,b.jsxs)("div",{className:"flex items-start gap-2.5",children:[(0,b.jsx)("span",{className:"flex h-8 w-9 shrink-0 items-center text-[13px] text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"flex min-w-0 flex-1 flex-wrap items-center gap-1.5",children:c})]})}function ao(a){let b=R(`${a} 00:00`),d=(b.getTime()-R(`${ac(0)} 00:00`).getTime())/864e5;return(0,c.format)(b,d<7?"EEE d":"EEE, MMM d")}function ap({value:a,onPick:c}){let d=(0,o.useRef)(null),e=[0,1,2,3].map(a=>ac(a)),f=()=>d.current?.showPicker();return(0,b.jsxs)(b.Fragment,{children:[e.map((d,e)=>(0,b.jsx)(am,{picked:d===a,onClick:()=>c(d),children:0===e?"Today":1===e?"Tomorrow":ao(d)},d)),!e.includes(a)&&(0,b.jsx)(am,{picked:!0,onClick:f,children:ao(a)}),(0,b.jsxs)("span",{className:"relative",children:[(0,b.jsx)(am,{picked:!1,"aria-label":"Another day",onClick:f,className:"w-8 px-0",children:(0,b.jsx)(g,{className:"size-3.5"})}),(0,b.jsx)("input",{ref:d,type:"date",tabIndex:-1,"aria-hidden":!0,min:e[0],value:a,onChange:a=>a.target.value&&c(a.target.value),className:"pointer-events-none absolute inset-0 opacity-0"})]})]})}function aq({value:a,onChange:c,onDone:d}){return(0,b.jsx)(t.Input,{type:"time","aria-label":"Time of day",value:a,onChange:a=>c(a.target.value),onBlur:d,onClick:a=>a.currentTarget.showPicker?.(),className:"h-8.5 w-28 px-3 text-[15px] tabular-nums md:text-[15px] [&::-webkit-calendar-picker-indicator]:hidden"})}function ar({schedule:a,kind:c}){if(!a||af(a))return(0,b.jsx)("p",{className:"text-xs text-destructive",children:a?"That time has passed. Pick a later one.":"daily"===c?"Pick a time and at least one day.":"Pick a time."});let e=function(a,b){if("once"===a.kind)return R(a.at);if("every"===a.kind)return new Date(b.getTime()+36e5*a.hours);let[c,d]=a.time.split(":").map(Number);for(let e=0;e<=7;e++){let f=new Date(b);f.setDate(f.getDate()+e),f.setHours(c,d,0,0);let g=0===f.getDay()?7:f.getDay();if(f>b&&a.days.includes(g))return f}return new Date(b.getTime()+864e5)}(a,new Date);return(0,b.jsxs)("p",{className:"flex items-start gap-2 text-[13px] leading-5",children:[(0,b.jsx)($.RoutineMark,{className:"mt-0.75 size-3.5 shrink-0 text-muted-foreground"}),(0,b.jsxs)("span",{className:"min-w-0",children:[Z(a),(0,b.jsxs)("span",{className:"text-muted-foreground",children:[" · ","once"===a.kind?`${(0,d.formatDistanceToNowStrict)(e,{addSuffix:!0})}, then it switches itself off`:`first start ${(0,F.whenOf)(e)}`]})]})]})}function as({label:a,htmlFor:c,children:d}){return(0,b.jsxs)("div",{className:"flex gap-3",children:[(0,b.jsx)("label",{htmlFor:c,className:"w-14 shrink-0 pt-2 font-mono text-xs text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"min-w-0 flex-1 space-y-1.5",children:d})]})}a.s(["RoutineSetting",0,function(){let[a,c]=(0,o.useState)(null),{data:d,isLoading:e,error:f}=(0,H.useServerRoute)(p.queryKey.routines),{data:g}=(0,H.useServerRoute)(p.queryKey.bot),[h]=(0,G.useServerAction)(N,{onOk:()=>(0,H.revalidate)(p.queryKey.routines)});if(e)return(0,b.jsx)(D.SettingSkeleton,{rows:3});if(f)return(0,b.jsx)(D.SettingError,{message:f.message});let i=d??[],j=i.filter(a=>a.enabled).length,k=i.find(b=>b.id===a);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(D.SettingScreen,{footer:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(D.SettingRailNote,{children:[i.length," of ",z.ROUTINE.max," · ",j," on"]}),(0,b.jsx)(B.KeepWorkingSwitch,{})]}),children:(0,b.jsx)(D.SettingItems,{addRow:i.length<z.ROUTINE.max?{label:"New routine",onClick:()=>c("new")}:void 0,children:0===i.length?(0,b.jsx)("p",{className:"p-4 text-sm leading-relaxed text-muted-foreground",children:'Nothing starts by itself yet. Tell Thursday what should — "every weekday at nine, go through my mail" — or make one here.'}):i.map(d=>(0,b.jsx)(aa,{routine:d,bots:g,open:d.id===a,onOpen:()=>c(d.id),onSwitch:a=>h(d.id,{enabled:a})},d.id))})}),(0,b.jsx)(ak,{routine:"new"===a?"new":k??null,bots:g??[],onClose:()=>c(null),onMade:a=>c(a)})]})}],41014)}];
1
+ module.exports=[41014,a=>{"use strict";var b=a.i(187924),c=a.i(256711),d=a.i(987234),e=a.i(164831);let f={name:"calendar-days",size:24,node:[["path",{d:"M8 2v3",key:"1ioesn"}],["path",{d:"M16 2v3",key:"otl347"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M8 13h.01",key:"1sbv64"}],["path",{d:"M12 13h.01",key:"y0uutt"}],["path",{d:"M16 13h.01",key:"wip0gl"}],["path",{d:"M8 17h.01",key:"p3bg7i"}],["path",{d:"M12 17h.01",key:"p32p05"}],["path",{d:"M16 17h.01",key:"ql8jdd"}]]};f.node;let g=(0,e.default)(f);var h=a.i(752562),i=a.i(589027),j=a.i(141146),k=a.i(875160),l=a.i(272944),m=a.i(738835),n=a.i(951675),o=a.i(474215),p=a.i(572131),q=a.i(767561),r=a.i(340695),s=a.i(965733),t=a.i(676504),u=a.i(205522),v=a.i(446181),w=a.i(777794),x=a.i(545097),y=a.i(280281),z=a.i(546893),A=a.i(287702),B=a.i(913834),C=a.i(869480),D=a.i(135432),E=a.i(619477),F=a.i(28996),G=a.i(199169),H=a.i(313237),I=a.i(759497),J=a.i(497895),K=a.i(405050);let L=(0,K.createServerReference)("7fb523fe983f832c81051137aae2655e448b96a244",K.callServer,void 0,K.findSourceMapURL,"createRoutineAction"),M=(0,K.createServerReference)("7f4a2d943906ef393fd3761bea7fa86b742785db01",K.callServer,void 0,K.findSourceMapURL,"deleteRoutineAction"),N=(0,K.createServerReference)("7ffbb46355685d1d40fd6c8276d9dee306b287f267",K.callServer,void 0,K.findSourceMapURL,"runRoutineNowAction"),O=(0,K.createServerReference)("7fb08fa1086632c5a517c205667506eaceaeba9f8e",K.callServer,void 0,K.findSourceMapURL,"updateRoutineAction");var P=a.i(702080);let Q=[1,2,3,4,5,6,7],R=P.default.string().regex(/^([01]\d|2[0-3]):[0-5]\d$/,"A time is HH:MM, 00:00 to 23:59");function S(a){let[b,c]=a.split(" "),[d,e,f]=b.split("-").map(Number),[g,h]=c.split(":").map(Number);return new Date(d,e-1,f,g,h)}let T=/^\d{4}-\d\d-\d\d ([01]\d|2[0-3]):[0-5]\d$/,U=P.default.string().regex(T,'A moment is "YYYY-MM-DD HH:MM"').refine(a=>{if(!T.test(a))return!0;let b=S(a);return b.getMonth()===Number(a.slice(5,7))-1&&b.getDate()===Number(a.slice(8,10))},"There is no such day"),V=P.default.discriminatedUnion("kind",[P.default.object({kind:P.default.literal("once"),at:U}),P.default.object({kind:P.default.literal("daily"),time:R,days:P.default.array(P.default.number().int().min(1).max(7)).min(1,"Pick at least one day").transform(a=>[...new Set(a)].sort((a,b)=>a-b))}),P.default.object({kind:P.default.literal("every"),hours:P.default.number().int().min(A.ROUTINE.minHours,`No more often than every ${A.ROUTINE.minHours}h`).max(168)})]),W=P.default.object({bot:P.default.string().trim().min(1,"Pick a bot"),label:P.default.string().trim().min(1,"Give it a name").max(80),request:P.default.string().trim().min(1,"Say what it should do"),schedule:V}),X=P.default.object({id:P.default.string(),status:P.default.enum(["running","waiting","done","cancelled"]),outcome:P.default.string().nullable(),updatedAt:G.DateLikeSchema});W.extend({id:P.default.string(),enabled:P.default.boolean(),nextRunAt:G.DateLikeSchema,runs:P.default.array(X)});let Y=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Z=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function $(a){if("once"===a.kind){let[b,c]=a.at.split(" "),[,d,e]=b.split("-").map(Number);return`Once \xb7 ${Z[d-1]} ${e} ${c}`}if("every"===a.kind)return 1===a.hours?"Every hour":`Every ${a.hours} hours`;let{days:b,time:c}=a;if(7===b.length)return`Daily ${c}`;if(1===b.length)return`${Y[b[0]-1]} ${c}`;let d=b.every((a,c)=>0===c||a===b[c-1]+1)?`${Y[b[0]-1]}–${Y[b.at(-1)-1]}`:b.map(a=>Y[a-1]).join(" ");return`Daily ${c} \xb7 ${d}`}var _=a.i(156819);let aa=(a,b)=>{let c=b?.find(b=>b.name===a)?.icon;return{color:c?.color,shape:c?.shape,outline:c?.outline,paint:c?.paint}};function ab({routine:a,bots:c,open:d,onOpen:e,onSwitch:f}){let g=function(a,b){let c=a.runs[0],d=c?.outcome?(0,J.plainText)(c.outcome):"",e=c?`${(0,G.whenOf)(c.updatedAt)}${d?` — ${d}`:""}`:"Not run yet";if(!a.enabled)return{text:`Off \xb7 ${e}`,tone:"text-muted-foreground"};let f=b?.find(b=>b.name===a.bot);return b&&(!f||f.disabled)?{text:f?`${a.bot} is switched off`:`${a.bot} is gone — pick another bot`,tone:J.WAITING_INK,waits:!0}:c?.status==="running"?{text:"Running now",tone:"",shine:!0}:c?.status==="waiting"?{text:`The last run waits on you${d?`: ${d}`:""}`,tone:J.WAITING_INK,waits:!0}:{text:e,tone:"text-muted-foreground"}}(a,c),h=a.runs[0]?.status==="running";return(0,b.jsxs)("div",{className:(0,J.cn)("flex items-center gap-3 p-4 transition-colors",d?"bg-muted/80":"hover:bg-muted/50"),children:[(0,b.jsxs)("button",{type:"button",onClick:e,className:(0,J.cn)("flex min-w-0 flex-1 items-center gap-3 rounded-md text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",!a.enabled&&"opacity-70"),children:[(0,b.jsx)(B.BotMark,{size:40,seed:a.bot,...aa(a.bot,c),state:h?"thinking":"idle",notify:!!g.waits,className:"shrink-0"}),(0,b.jsxs)("span",{className:"min-w-0 flex-1 space-y-0.5",children:[(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:a.label}),h&&(0,b.jsx)(k.Loader2,{className:"size-3 shrink-0 animate-spin text-muted-foreground"})]}),(0,b.jsx)("span",{className:"flex min-w-0 text-[13px] leading-snug",children:g.shine?(0,b.jsx)(x.ShinyText,{text:g.text,speed:2.2,className:"min-w-0 truncate"}):(0,b.jsx)("span",{className:(0,J.cn)("min-w-0 truncate",g.tone),children:g.text})})]}),(0,b.jsxs)("span",{className:"flex w-44 shrink-0 flex-col items-end gap-0.5 font-mono text-[11px] leading-4 text-muted-foreground tabular-nums",children:[(0,b.jsxs)("span",{className:"flex max-w-full items-center gap-1.5 text-foreground",children:[(0,b.jsx)(_.RoutineMark,{className:"size-3 shrink-0 text-muted-foreground"}),(0,b.jsx)("span",{className:"truncate",children:$(a.schedule)})]}),(0,b.jsx)("span",{className:"max-w-full truncate text-muted-foreground/70",children:a.enabled?`next ${(0,G.whenOf)(a.nextRunAt)}`:"off"})]})]}),(0,b.jsx)(y.Switch,{checked:a.enabled,onCheckedChange:f,"aria-label":`${a.label} on or off`,className:"shrink-0"}),(0,b.jsx)("button",{type:"button",onClick:e,"aria-label":`Open ${a.label}`,className:"shrink-0 rounded-md text-muted-foreground outline-none focus-visible:ring-3 focus-visible:ring-ring/50",children:(0,b.jsx)(j.ChevronRight,{className:"size-4"})})]})}let ac=a=>String(a).padStart(2,"0");function ad(a,b=new Date){let c=new Date(b);return c.setDate(c.getDate()+a),`${c.getFullYear()}-${ac(c.getMonth()+1)}-${ac(c.getDate())}`}let ae=(a,b)=>{let c=a?.schedule;return{label:a?.label??"",bot:a?.bot??b.find(a=>!a.disabled)?.name??"",request:a?.request??"",kind:c?.kind??"daily",time:c?.kind==="daily"?c.time:c?.kind==="once"?c.at.slice(11):"09:00",days:c?.kind==="daily"?c.days:[...Q],hours:c?.kind==="every"?c.hours:6,date:c?.kind==="once"?c.at.slice(0,10):ad(1)}};function af(a){let b=/^\d\d:\d\d$/.test(a.time);return"once"===a.kind?b&&a.date?{kind:"once",at:`${a.date} ${a.time}`}:null:"daily"===a.kind?a.days.length&&b?{kind:"daily",time:a.time,days:a.days}:null:{kind:"every",hours:a.hours}}let ag=a=>a?.kind==="once"&&S(a.at)<=new Date,ah=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],ai=[{label:"Every day",days:[1,2,3,4,5,6,7]},{label:"Weekdays",days:[1,2,3,4,5]},{label:"Weekends",days:[6,7]}],aj=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],ak=[1,2,3,6,12,24].filter(a=>a>=A.ROUTINE.minHours);function al({routine:a,bots:c,onClose:d,onMade:e}){var f,g;let h,[k,x]=(0,p.useState)(null),A=(0,p.useCallback)(a=>{x(a?.closest("[data-slot=dialog-content]")??null)},[]),C="new"===a?null:a,E="new"===a?"new":a?.id??"",[K,P]=(0,p.useState)(()=>ae(C,c));(0,p.useEffect)(()=>P(ae(C,c)),[E]);let R=a=>P(b=>({...b,...a})),S=()=>(0,I.revalidate)(q.queryKey.routines),[T,U]=(0,H.useServerAction)(L,{onOk:a=>{S(),e(a.id)}}),[V]=(0,H.useServerAction)(O,{onOk:S}),[W]=(0,H.useServerAction)(M,{onOk:S}),[X,Y]=(0,H.useServerAction)(N,{onOk:()=>{S(),(0,I.revalidate)(q.queryKey.threads)}}),Z=af(K),ab=Z&&!ag(Z)&&K.label.trim()&&K.bot&&K.request.trim()?{label:K.label.trim(),bot:K.bot,request:K.request.trim(),schedule:Z}:null,ap=a=>{C&&V(C.id,a).catch(()=>{})},au=a=>{R(a);let b=af({...K,...a});!b||ag(b)||ap({schedule:b,..."once"===b.kind?{enabled:!0}:{}})},av=!!(C&&(K.label.trim()&&K.label.trim()!==C.label||K.request.trim()&&K.request.trim()!==C.request)),aw=async()=>{!C||await v.notify.confirm({title:`Delete "${C.label}"?`,description:"It starts no more. The jobs it already opened stay.",okText:"Delete",destructive:!0})&&(await W(C.id).catch(()=>{}),d())},ax=c.find(a=>a.name===K.bot),ay=C?.runs[0]?.status==="running"||C?.runs[0]?.status==="waiting";return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{ref:A,hidden:!0}),(0,b.jsx)(s.Dialog,{open:!!(a&&k),onOpenChange:a=>!a&&d(),modal:!1,disablePointerDismissal:!0,children:(0,b.jsx)(s.DialogPortal,{container:k,children:(0,b.jsx)(s.DialogPopup,{className:"absolute inset-y-0 right-0 z-10 flex w-[min(35rem,calc(100%-13rem))] flex-col border-l border-border/60 bg-popover text-popover-foreground shadow-2xl shadow-black/10 duration-150 data-open:animate-in data-open:fade-in-0 data-open:slide-in-from-right-4 data-closed:animate-out data-closed:fade-out-0 data-closed:slide-out-to-right-4",children:a&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2.5 pt-3.5 pr-3 pb-1.5 pl-5",children:[ax?(0,b.jsx)(B.BotMark,{size:28,seed:ax.name,...aa(ax.name,c),notify:!1,className:"shrink-0"}):(0,b.jsx)("span",{className:"flex size-7 shrink-0 items-center justify-center rounded-full bg-muted text-muted-foreground",children:(0,b.jsx)(_.RoutineMark,{className:"size-3.5"})}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)(s.DialogTitle,{className:"sr-only",children:C?C.label:"New routine"}),(0,b.jsx)("p",{className:"truncate text-[15px] leading-5 font-semibold",children:C?C.label:"New routine"}),C&&(0,b.jsxs)("p",{className:"mt-0.5 flex min-w-0 items-center gap-1.5 font-mono text-[11px] text-muted-foreground",children:[(0,b.jsx)(_.RoutineMark,{className:"size-3 shrink-0"}),(0,b.jsxs)("span",{className:"truncate",children:[C.bot," · ",$(C.schedule),C.enabled&&` \xb7 next ${(0,G.whenOf)(C.nextRunAt)}`]})]})]}),C&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(y.Switch,{checked:C.enabled,onCheckedChange:a=>void V(C.id,{enabled:a}).catch(()=>{}),"aria-label":`${C.label} on or off`,className:"mr-1 shrink-0"}),(0,b.jsxs)(t.DropdownMenu,{children:[(0,b.jsx)(t.DropdownMenuTrigger,{render:(0,b.jsx)(r.Button,{size:"icon-sm",variant:"ghost","aria-label":"More",className:"text-muted-foreground"}),children:(0,b.jsx)(l.MoreHorizontal,{})}),(0,b.jsx)(t.DropdownMenuContent,{align:"end",children:(0,b.jsxs)(t.DropdownMenuItem,{variant:"destructive",onClick:aw,children:[(0,b.jsx)(n.Trash2,{}),"Delete"]})})]})]}),(0,b.jsx)(s.DialogClose,{render:(0,b.jsx)(r.Button,{size:"icon-sm",variant:"ghost","aria-label":"Close the routine"}),children:(0,b.jsx)(o.X,{})})]}),(0,b.jsxs)("div",{className:"min-h-0 flex-1 space-y-4 overflow-y-auto px-5 pt-3 pb-5",children:[(0,b.jsxs)(at,{label:"Name",htmlFor:"routine-name",children:[(0,b.jsx)(u.Input,{id:"routine-name",value:K.label,onChange:a=>R({label:a.target.value}),placeholder:"Morning mail",maxLength:80,autoFocus:!C}),(0,b.jsx)(am,{children:"What it is called in this list, and what she calls it on a call."})]}),(0,b.jsxs)(at,{label:"Bot",children:[(0,b.jsxs)(t.DropdownMenu,{children:[(0,b.jsxs)(t.DropdownMenuTrigger,{render:(0,b.jsx)(r.Button,{variant:"outline",className:"justify-start gap-2 pl-1.5 font-normal"}),children:[ax?(0,b.jsx)(B.BotMark,{size:20,seed:ax.name,...aa(ax.name,c),notify:!1,className:"shrink-0"}):null,(0,b.jsx)("span",{className:(0,J.cn)(!ax&&"pl-1.5 text-muted-foreground"),children:ax?.name??(K.bot||"Pick a bot")}),(0,b.jsx)(i.ChevronDown,{className:"ml-1 size-3.5 text-muted-foreground"})]}),(0,b.jsx)(t.DropdownMenuContent,{align:"start",children:(0,b.jsx)(t.DropdownMenuGroup,{children:c.filter(a=>!a.disabled).map(a=>(0,b.jsxs)(t.DropdownMenuItem,{onClick:()=>{R({bot:a.name}),a.name!==C?.bot&&ap({bot:a.name})},children:[(0,b.jsx)(B.BotMark,{size:16,seed:a.name,...aa(a.name,c),notify:!1,className:"shrink-0"}),a.name]},a.name))})})]}),(0,b.jsx)(am,{children:"Who does the job each time it starts."})]}),(0,b.jsx)(at,{label:"When",children:(0,b.jsxs)("div",{className:"space-y-3.5",children:[(0,b.jsx)(w.Segmented,{"aria-label":"How it starts",value:K.kind,onChange:a=>au({kind:a}),options:[{value:"once",label:"Once"},{value:"daily",label:"On set days"},{value:"every",label:"Every few hours"}]}),(0,b.jsx)("div",{className:"space-y-2.5",children:"once"===K.kind?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(ao,{word:"On",children:(0,b.jsx)(aq,{value:K.date,onPick:a=>au({date:a})})}),(0,b.jsxs)(ao,{word:"At",children:[(0,b.jsx)(ar,{value:K.time,onChange:a=>R({time:a}),onDone:()=>au({})}),(0,b.jsx)("span",{className:"text-[13px] text-muted-foreground",children:"or"}),(0,b.jsx)(an,{picked:!1,onClick:()=>{let a;return au(((a=new Date(Date.now()+36e5)).setMinutes(5*Math.ceil(a.getMinutes()/5),0,0),{date:ad(0,a),time:`${ac(a.getHours())}:${ac(a.getMinutes())}`}))},children:"In an hour"})]})]}):"daily"===K.kind?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(ao,{word:"On",children:Q.map(a=>{let c=K.days.includes(a);return(0,b.jsx)(an,{picked:c,several:!0,"aria-label":aj[a-1],onClick:()=>au({days:c?K.days.filter(b=>b!==a):[...K.days,a].sort((a,b)=>a-b)}),children:ah[a-1]},a)})}),(0,b.jsx)(ao,{children:ai.map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>au({days:[...a.days]}),className:"h-6.5 rounded-full bg-muted px-2.5 text-xs text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:a.label},a.label))}),(0,b.jsx)(ao,{word:"At",children:(0,b.jsx)(ar,{value:K.time,onChange:a=>R({time:a}),onDone:()=>au({})})})]}):(0,b.jsxs)(ao,{word:"Every",children:[(ak.includes(K.hours)?ak:[...ak,K.hours].sort((a,b)=>a-b)).map(a=>(0,b.jsx)(an,{picked:a===K.hours,onClick:()=>au({hours:a}),className:"min-w-10 px-3",children:a},a)),(0,b.jsx)("span",{className:"text-[13px] text-muted-foreground",children:"hours"})]})}),(0,b.jsx)(as,{schedule:Z,kind:K.kind})]})}),(0,b.jsxs)(at,{label:"Job",htmlFor:"routine-request",children:[(0,b.jsx)(z.Textarea,{id:"routine-request",value:K.request,onChange:a=>R({request:a.target.value}),placeholder:"Go through the mail that came since the last run and draft replies to what needs one. Send nothing.",className:"min-h-28"}),(0,b.jsx)(am,{children:"Handed to the bot as a new thread each time, with a line on how the last run ended. Nobody is there to ask, so say everything it needs."})]}),C&&(0,b.jsxs)("div",{className:"pt-1",children:[(0,b.jsx)("div",{className:"flex h-6 items-center",children:(0,b.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:"Runs"})}),0===C.runs.length?(0,b.jsx)("p",{className:"py-2 text-[13px] text-muted-foreground",children:"Not run yet."}):C.runs.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>{var b;return b=a.id,void(F.useSettingsStore.getState().hide(),D.roomOpens.open(b))},className:"flex h-9 w-full items-center gap-3 border-t border-border/60 text-left text-[13px] outline-none focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,b.jsx)("span",{className:"w-28 shrink-0 font-mono text-[11px] text-muted-foreground tabular-nums",children:(0,G.whenOf)(a.updatedAt)}),(0,b.jsx)("span",{className:(0,J.cn)("min-w-0 flex-1 truncate","waiting"===a.status?J.WAITING_INK:"text-muted-foreground"),children:"running"===a.status?"Running now":a.outcome?(0,J.plainText)(a.outcome):"cancelled"===a.status?"Stopped":"No words"}),(0,b.jsx)(j.ChevronRight,{className:"size-3 shrink-0 text-muted-foreground"})]},a.id))]})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-3 border-t border-border/60 px-5 py-3",children:[(0,b.jsx)("p",{className:"min-w-0 flex-1 text-xs leading-4 text-muted-foreground",children:C||ab?"Starts while Thursday is running on this computer, with a tab open unless work goes on with the app closed. A time that passed meanwhile starts once, not once for each.":`Still needs ${f=K,g=Z,(h=[f.label.trim()?null:"a name",f.bot?null:"a bot",!g?"a time":ag(g)?"a time still ahead":null,f.request.trim()?null:"a job"].filter(a=>null!==a)).length>1?`${h.slice(0,-1).join(", ")} and ${h.at(-1)}`:h[0]??"nothing"}.`}),av&&(0,b.jsx)(r.Button,{size:"sm",onClick:()=>{if(!C)return;let a={};K.label.trim()&&K.label.trim()!==C.label&&(a.label=K.label.trim()),K.request.trim()&&K.request.trim()!==C.request&&(a.request=K.request.trim()),Object.keys(a).length&&ap(a)},children:"Save"}),C?(0,b.jsxs)(r.Button,{variant:"outline",size:"sm",loading:Y,disabled:ay,title:ay?"Its last run is still open":void 0,onClick:()=>void X(C.id).catch(()=>{}),children:[(0,b.jsx)(m.Play,{}),"Run now"]}):(0,b.jsx)(r.Button,{size:"sm",loading:U,disabled:!ab,onClick:()=>ab&&void T(ab).catch(()=>{}),children:"Create"})]})]})})})})]})}let am=({children:a})=>(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a});function an({picked:a,several:c=!1,className:d,children:e,...f}){return(0,b.jsxs)("button",{type:"button","aria-pressed":a,className:(0,J.cn)("inline-flex h-8 items-center justify-center gap-1.5 rounded-full px-3.5 text-[13px] whitespace-nowrap outline-none transition-colors focus-visible:ring-3 focus-visible:ring-ring/50",!a&&"text-foreground ring-1 ring-border ring-inset hover:bg-muted",a&&(c?"bg-brand/10 pl-2.5 font-medium text-brand ring-1 ring-brand/30 ring-inset":"bg-brand font-medium text-brand-foreground"),d),...f,children:[a&&c&&(0,b.jsx)(h.Check,{className:"size-3.5"}),e]})}function ao({word:a,children:c}){return(0,b.jsxs)("div",{className:"flex items-start gap-2.5",children:[(0,b.jsx)("span",{className:"flex h-8 w-9 shrink-0 items-center text-[13px] text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"flex min-w-0 flex-1 flex-wrap items-center gap-1.5",children:c})]})}function ap(a){let b=S(`${a} 00:00`),d=(b.getTime()-S(`${ad(0)} 00:00`).getTime())/864e5;return(0,c.format)(b,d<7?"EEE d":"EEE, MMM d")}function aq({value:a,onPick:c}){let d=(0,p.useRef)(null),e=[0,1,2,3].map(a=>ad(a)),f=()=>d.current?.showPicker();return(0,b.jsxs)(b.Fragment,{children:[e.map((d,e)=>(0,b.jsx)(an,{picked:d===a,onClick:()=>c(d),children:0===e?"Today":1===e?"Tomorrow":ap(d)},d)),!e.includes(a)&&(0,b.jsx)(an,{picked:!0,onClick:f,children:ap(a)}),(0,b.jsxs)("span",{className:"relative",children:[(0,b.jsx)(an,{picked:!1,"aria-label":"Another day",onClick:f,className:"w-8 px-0",children:(0,b.jsx)(g,{className:"size-3.5"})}),(0,b.jsx)("input",{ref:d,type:"date",tabIndex:-1,"aria-hidden":!0,min:e[0],value:a,onChange:a=>a.target.value&&c(a.target.value),className:"pointer-events-none absolute inset-0 opacity-0"})]})]})}function ar({value:a,onChange:c,onDone:d}){return(0,b.jsx)(u.Input,{type:"time","aria-label":"Time of day",value:a,onChange:a=>c(a.target.value),onBlur:d,onClick:a=>a.currentTarget.showPicker?.(),className:"h-8.5 w-28 px-3 text-[15px] tabular-nums md:text-[15px] [&::-webkit-calendar-picker-indicator]:hidden"})}function as({schedule:a,kind:c}){if(!a||ag(a))return(0,b.jsx)("p",{className:"text-xs text-destructive",children:a?"That time has passed. Pick a later one.":"daily"===c?"Pick a time and at least one day.":"Pick a time."});let e=function(a,b){if("once"===a.kind)return S(a.at);if("every"===a.kind)return new Date(b.getTime()+36e5*a.hours);let[c,d]=a.time.split(":").map(Number);for(let e=0;e<=7;e++){let f=new Date(b);f.setDate(f.getDate()+e),f.setHours(c,d,0,0);let g=0===f.getDay()?7:f.getDay();if(f>b&&a.days.includes(g))return f}return new Date(b.getTime()+864e5)}(a,new Date);return(0,b.jsxs)("p",{className:"flex items-start gap-2 text-[13px] leading-5",children:[(0,b.jsx)(_.RoutineMark,{className:"mt-0.75 size-3.5 shrink-0 text-muted-foreground"}),(0,b.jsxs)("span",{className:"min-w-0",children:[$(a),(0,b.jsxs)("span",{className:"text-muted-foreground",children:[" · ","once"===a.kind?`${(0,d.formatDistanceToNowStrict)(e,{addSuffix:!0})}, then it switches itself off`:`first start ${(0,G.whenOf)(e)}`]})]})]})}function at({label:a,htmlFor:c,children:d}){return(0,b.jsxs)("div",{className:"flex gap-3",children:[(0,b.jsx)("label",{htmlFor:c,className:"w-14 shrink-0 pt-2 font-mono text-xs text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"min-w-0 flex-1 space-y-1.5",children:d})]})}a.s(["RoutineSetting",0,function(){let[a,c]=(0,p.useState)(null),{data:d,isLoading:e,error:f}=(0,I.useServerRoute)(q.queryKey.routines),{data:g}=(0,I.useServerRoute)(q.queryKey.bot),[h]=(0,H.useServerAction)(O,{onOk:()=>(0,I.revalidate)(q.queryKey.routines)});if(e)return(0,b.jsx)(E.SettingSkeleton,{rows:3});if(f)return(0,b.jsx)(E.SettingError,{message:f.message});let i=d??[],j=i.filter(a=>a.enabled).length,k=i.find(b=>b.id===a);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(E.SettingScreen,{footer:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(E.SettingRailNote,{children:[i.length," set up · ",j," on",i.length>=A.ROUTINE.max&&` \xb7 ${A.ROUTINE.max} is the most`]}),(0,b.jsx)(C.KeepWorkingSwitch,{})]}),children:(0,b.jsx)(E.SettingItems,{addRow:i.length<A.ROUTINE.max?{label:"New routine",onClick:()=>c("new")}:void 0,children:0===i.length?(0,b.jsx)("p",{className:"p-4 text-sm leading-relaxed text-muted-foreground",children:'Nothing starts by itself yet. Tell Thursday what should — "every weekday at nine, go through my mail" — or make one here.'}):i.map(d=>(0,b.jsx)(ab,{routine:d,bots:g,open:d.id===a,onOpen:()=>c(d.id),onSwitch:a=>h(d.id,{enabled:a})},d.id))})}),(0,b.jsx)(al,{routine:"new"===a?"new":k??null,bots:g??[],onClose:()=>c(null),onMade:a=>c(a)})]})}],41014)}];
2
2
 
3
3
  //# sourceMappingURL=features_routine_components_routine-setting_tsx_055fknz._.js.map
@@ -3,6 +3,6 @@ module.exports=[684321,148016,a=>{"use strict";let b=a=>a.split("/").map(encodeU
3
3
  [${b} cut at ${e.max.toLocaleString("en")} chars — the whole thing (${j} lines) is at ${i}. Read the part you need with \`sed -n\`.]
4
4
 
5
5
  ${a.slice(-e.tail).trimStart()}`}let n=g.APP_DIR,o=(0,f.join)(g.DATA_DIR,g.PATHS.workspace),p=(process.env.THURSDAY_TOOL_PATH?.split(":")??[(0,f.join)(n,"node_modules",".bin")]).filter(Boolean),q=(0,f.join)(o,g.PATHS.artifacts),r=[g.PATHS.artifacts,g.PATHS.projects,g.PATHS.scratch,g.PATHS.bots],s=new Set([...r,".agents"]),t=(a,b)=>b===a||b.startsWith(a+f.sep),u=a=>(0,d.realpath)(a).catch(()=>null);async function v(a){let b=await u(o)??o,c=(0,f.resolve)(o,a);if(!t(o,c))return null;let d=c,e=await u(d);for(;null===e&&(0,f.dirname)(d)!==d;)d=(0,f.dirname)(d),e=await u(d);if(null===e)return null;let g=(0,f.relative)(d,c),h=g?(0,f.join)(e,g):e;return t(b,h)?h:null}function w(a,b){let c=b.trim().toLowerCase().replace(/[^\p{L}\p{N}]+/gu,"-").replace(/^-+|-+$/g,"").slice(0,40)||"job";return`${g.PATHS.scratch}/${c}-${a.slice(0,6)}`}let x=a=>a.replace(/[^\p{L}\p{N}_-]+/gu,"-"),y=a=>`${g.PATHS.bots}/${x(a)}`,z=a=>`${g.PATHS.artifacts}/${x(a)}`;async function A(a){let b=y(a),c=z(a);return await Promise.all([b,c].map(a=>(0,d.mkdir)((0,f.join)(o,a),{recursive:!0}))),{own:b,artifacts:c}}async function B(a,b){let c=w(a,b);return await (0,d.mkdir)((0,f.join)(o,c),{recursive:!0}),c}let C=a=>({PLAYWRIGHT_MCP_BROWSER:"chromium",...a?{PLAYWRIGHT_CLI_SESSION:`thread-${a}`,PLAYWRIGHT_MCP_VIEWPORT_SIZE:g.BROWSER_VIEWPORT}:{}}),D={runtimes:["node","python3","uv","bun","deno"],managers:["pnpm","npm","yarn"]};async function E(a){let b=Object.values(D).flat(),{stdout:c}=await a.exec(b.map(a=>`command -v ${a} >/dev/null 2>&1 && printf '%s ' ${a}`).join("; "),{timeoutMs:1e4}),d=new Set(c.trim().split(/\s+/).filter(Boolean)),e=a=>({found:a.filter(a=>d.has(a)),missing:a.filter(a=>!d.has(a))});return{runtimes:e(D.runtimes),managers:e(D.managers),browser:null}}async function F(){await M(),await L()}async function G(a){await J(a,await K(a,!1))}async function H(a){await K(a,!0)}async function I(a){await J(a,await K(a,!0))}async function J(a,c){let g=process.env.XDG_CACHE_HOME||(0,f.join)((0,e.homedir)(),".cache"),i=await (0,d.realpath)(o).catch(()=>o),j=(0,f.join)(g,"ms-playwright","daemon",(0,b.createHash)("sha1").update(i).digest("hex").slice(0,16)),k=C(a).PLAYWRIGHT_CLI_SESSION;for(let a of(await (0,d.readdir)(j).catch(()=>[]))){let b=a.startsWith("ud-")?a.slice(3):a;(b===k||b.startsWith(`${k}-`)||b.startsWith(`${k}.`))&&(c.some(a=>b===a||b.startsWith(`${a}-`)||b.startsWith(`${a}.`))||await (0,d.rm)((0,f.join)(j,a),{recursive:!0,force:!0}).catch(b=>h.logger.warn(`browser data ${a}: ${String(b)}`)))}}async function K(a,b){let c=await R(),d=C(a),e=await c.exec("playwright-cli list --json",{env:d,timeoutMs:15e3}).catch(()=>null),f=[];try{let{browsers:a}=JSON.parse(e?.stdout??"");f=a?.filter(a=>a.name===d.PLAYWRIGHT_CLI_SESSION||a.name.startsWith(`${d.PLAYWRIGHT_CLI_SESSION}-`))??[]}catch{}let g=[];for(let a of f){if(a.attached||!b&&!1!==a.headed){g.push(a.name);continue}await c.exec("playwright-cli close",{env:{...d,PLAYWRIGHT_CLI_SESSION:a.name},timeoutMs:15e3}).catch(()=>{})}return await F(),g}let L=()=>N(g.PATHS.output),M=()=>N(".playwright-cli");async function N(a){let b=(0,f.join)(o,a),c=await (0,d.readdir)(b,{withFileTypes:!0}).catch(()=>[]),e=Date.now()-g.WORKSPACE_KEEP.forMs;for(let a of c){if(!a.isFile())continue;let c=(0,f.join)(b,a.name),g=await (0,d.stat)(c).catch(()=>null);g&&g.mtimeMs<e&&await (0,d.unlink)(c).catch(()=>{})}}async function O(){return(await (0,d.readdir)((0,f.join)(o,g.PATHS.scratch),{withFileTypes:!0}).catch(()=>[])).filter(a=>a.isDirectory()).map(a=>`${g.PATHS.scratch}/${a.name}`)}async function P(a){let b=Date.now()-g.WORKSPACE_KEEP.forMs,c=[];for(let e of a){let a=(0,f.join)(o,e),g=await (0,d.stat)(a).catch(()=>null);g?.isDirectory()&&!(g.mtimeMs>=b)&&(await (0,d.rm)(a,{recursive:!0,force:!0}).catch(()=>{}),c.push(e))}return c}let Q={"pnpm-workspace.yaml":"packages:\n - '**'\n",".npmrc":"recursive-install=false\n"};async function R(){for(let a of[...r,".playwright"])await (0,d.mkdir)((0,f.join)(o,a),{recursive:!0});for(let[a,b]of Object.entries(Q))await (0,d.writeFile)((0,f.join)(o,a),b,{flag:"wx"}).catch(()=>{});return(({workingDirectory:a,spill:b,toolPath:c})=>{let e=(0,f.resolve)(a),g=(c??[]).filter(Boolean).join(":"),h=a=>a.startsWith("/")||/^[A-Za-z]:/.test(a)?a:(0,f.resolve)(e,a);return{cwd:e,resolve:h,readFile:(a,b)=>(0,d.readFile)(h(a),b),async writeFile(a,b){let c=h(a);await (0,d.mkdir)((0,f.join)(c,".."),{recursive:!0}),await (0,d.writeFile)(c,b)},readdir:(a,b)=>(0,d.readdir)(h(a),b),fold:(a,c="output")=>m(a,c,e,b),async glob(a,{path:b=".",limit:c=200}={}){let d=h(b),e=RegExp("^"+a.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*\//g,"(?:.*/)?").replace(/\*/g,"[^/]*").replace(/\?/g,"[^/]")+"$"),g=[];for await(let a of l(d)){let b=(0,f.relative)(d,a).split(f.sep).join("/");if((e.test(b)||e.test(a))&&g.push(a),g.length>=c)break}return g},exec:(a,{cwd:c,timeoutMs:d=j.EXEC_TIMEOUT_MS,signal:f,env:k}={})=>new Promise(l=>{let n,o,p=function(){let a={...process.env};for(let b of Object.keys(a))/KEY|TOKEN|SECRET|PASSWORD|CREDENTIAL|_AUTH/i.test(b)&&delete a[b];return a.TERM="dumb",a.PAGER="cat",a.GIT_PAGER="cat",a}();g&&(p.PATH=`${p.PATH??""}:${g}`);let q=(0,i.spawn)(a,{shell:!0,cwd:c?h(c):e,env:{...p,...k},detached:!0}),r="",s="";q.stdout?.on("data",a=>r+=a),q.stderr?.on("data",a=>s+=a);let t=a=>{try{q.pid&&process.kill(-q.pid,a)}catch{q.kill(a)}},u=!1,v=async a=>{u||(u=!0,clearTimeout(x),clearTimeout(n),clearTimeout(o),f?.removeEventListener("abort",y),l({...a,stdout:await m(a.stdout,"stdout",e,b),stderr:await m(a.stderr,"stderr",e,b)}))},w=a=>{n||u||(s+=`
6
- [${a}]`,t("SIGTERM"),n=setTimeout(()=>{s+="\n[Killed: it did not exit on SIGTERM]",t("SIGKILL"),o=setTimeout(()=>{q.stdout?.destroy(),q.stderr?.destroy(),v({stdout:r,stderr:s,exitCode:-1})},1e3)},j.EXEC_KILL_GRACE_MS))},x=setTimeout(()=>w(`Timed out after ${d}ms`),d),y=()=>w("Aborted");f?.aborted?y():f?.addEventListener("abort",y,{once:!0}),q.on("close",a=>v({stdout:r,stderr:s,exitCode:a??-1})),q.on("error",a=>v({stdout:r,stderr:s+String(a),exitCode:-1}))})}})({workingDirectory:o,spill:{dir:g.PATHS.output,...g.TOOL_OUTPUT},toolPath:p})}async function S(a,b){let c=a.map(a=>(0,f.resolve)(o,a));if(b){let a=0;for await(let d of l((0,f.join)(o,b)))if(c.push(d),(a+=1)>=500)break}let e=new Map;for(let a of c){let b=await (0,d.stat)(a).catch(()=>null);if(!b?.isFile())continue;let c=(0,f.relative)(o,a);e.set(c&&!c.startsWith("..")?c:a,b.mtimeMs)}return[...e].sort((a,b)=>a[1]-b[1]).map(([a])=>a)}async function T(a,b){await (0,d.rm)((0,f.join)(o,w(a,b)),{recursive:!0,force:!0}).catch(()=>{})}a.s(["ARTIFACTS",0,q,"WORKSPACE",0,o,"botArtifacts",0,z,"botBrowserSession",0,(a,c)=>`${a}-bot-${(0,b.createHash)("sha256").update(c.trim().toLowerCase()).digest("hex").slice(0,20)}`,"botFolder",0,y,"botFolderName",0,x,"botShellEnv",0,a=>({THURSDAY_ARTIFACTS:z(a),THURSDAY_SKILLS:(0,f.join)(g.APP_DIR,g.PATHS.skills.default)}),"closeHiddenBrowser",0,G,"closeJobShell",0,H,"filesOnDisk",0,S,"insideWorkspace",0,v,"jobScratch",0,w,"jobShellEnv",0,C,"listScratchFolders",0,O,"openBotFolders",0,A,"openJobScratch",0,B,"openWorkspace",0,R,"pruneJobFiles",0,F,"readMachineTools",0,E,"removeJobBrowsers",0,I,"removeJobScratch",0,T,"removeUnchangedFolders",0,P,"writeRefusal",0,function(a,b){if(t(o,a)){let d=(0,f.relative)(o,a),[e,h]=d.split(f.sep);return e&&s.has(e)?b&&e===g.PATHS.artifacts&&h&&h.toLowerCase()!==x(b).toLowerCase()&&!(0,c.existsSync)((0,f.join)(q,h))?`Not written: ${d} would sit loose at the top of ${g.PATHS.artifacts}/. Your finished work goes in ${z(b)}/.`:null:`Not written: ${d||"the workspace root"} is outside the workspace's folders. Finished work goes under ${b?z(b):g.PATHS.artifacts}/, code under ${g.PATHS.projects}/, your own kit under ${g.PATHS.bots}/, and this job's working material under ${g.PATHS.scratch}/.`}return t(n,a)?`Not written: ${a} is inside the app that is running you, not the user's files. Work in ${o}; outside it, write only where the user pointed you.`:null}],821415)}];
6
+ [${a}]`,t("SIGTERM"),n=setTimeout(()=>{s+="\n[Killed: it did not exit on SIGTERM]",t("SIGKILL"),o=setTimeout(()=>{q.stdout?.destroy(),q.stderr?.destroy(),v({stdout:r,stderr:s,exitCode:-1})},1e3)},j.EXEC_KILL_GRACE_MS))},x=setTimeout(()=>w(`Timed out after ${d}ms`),d),y=()=>w("Aborted");f?.aborted?y():f?.addEventListener("abort",y,{once:!0}),q.on("close",a=>v({stdout:r,stderr:s,exitCode:a??-1})),q.on("error",a=>v({stdout:r,stderr:s+String(a),exitCode:-1}))})}})({workingDirectory:o,spill:{dir:g.PATHS.output,...g.TOOL_OUTPUT},toolPath:p})}async function S(a,b){let c=a.map(a=>(0,f.resolve)(o,a));if(b){let a=0;for await(let d of l((0,f.join)(o,b)))if(c.push(d),(a+=1)>=500)break}let e=new Map;for(let a of c){let b=await (0,d.stat)(a).catch(()=>null);if(!b?.isFile())continue;let c=(0,f.relative)(o,a);e.set(c&&!c.startsWith("..")?c:a,b.mtimeMs)}return[...e].sort((a,b)=>a[1]-b[1]).map(([a])=>a)}async function T(a,b){await (0,d.rm)((0,f.join)(o,w(a,b)),{recursive:!0,force:!0}).catch(()=>{})}async function U(a){await (0,d.rm)((0,f.join)(o,y(a)),{recursive:!0,force:!0}).catch(()=>{})}a.s(["ARTIFACTS",0,q,"WORKSPACE",0,o,"botArtifacts",0,z,"botBrowserSession",0,(a,c)=>`${a}-bot-${(0,b.createHash)("sha256").update(c.trim().toLowerCase()).digest("hex").slice(0,20)}`,"botFolder",0,y,"botFolderName",0,x,"botShellEnv",0,a=>({THURSDAY_ARTIFACTS:z(a),THURSDAY_SKILLS:(0,f.join)(g.APP_DIR,g.PATHS.skills.default)}),"closeHiddenBrowser",0,G,"closeJobShell",0,H,"filesOnDisk",0,S,"insideWorkspace",0,v,"jobScratch",0,w,"jobShellEnv",0,C,"listScratchFolders",0,O,"openBotFolders",0,A,"openJobScratch",0,B,"openWorkspace",0,R,"pruneJobFiles",0,F,"readMachineTools",0,E,"removeBotFolder",0,U,"removeJobBrowsers",0,I,"removeJobScratch",0,T,"removeUnchangedFolders",0,P,"writeRefusal",0,function(a,b){if(t(o,a)){let d=(0,f.relative)(o,a),[e,h]=d.split(f.sep);return e&&s.has(e)?b&&e===g.PATHS.artifacts&&h&&h.toLowerCase()!==x(b).toLowerCase()&&!(0,c.existsSync)((0,f.join)(q,h))?`Not written: ${d} would sit loose at the top of ${g.PATHS.artifacts}/. Your finished work goes in ${z(b)}/.`:null:`Not written: ${d||"the workspace root"} is outside the workspace's folders. Finished work goes under ${b?z(b):g.PATHS.artifacts}/, code under ${g.PATHS.projects}/, your own kit under ${g.PATHS.bots}/, and this job's working material under ${g.PATHS.scratch}/.`}return t(n,a)?`Not written: ${a} is inside the app that is running you, not the user's files. Work in ${o}; outside it, write only where the user pointed you.`:null}],821415)}];
7
7
 
8
8
  //# sourceMappingURL=features_workspace_00jz2hu._.js.map
@@ -1,3 +1,3 @@
1
1
  module.exports=[529285,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_00ptcss._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(726362)))},568773,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1p161c7._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(702288)))},409811,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0xbyurn._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(33048)))},879004,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0mkvkrn._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(959346)))},240897,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_10l-aox._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(78860)))},979209,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_11iptmm._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(731813)))},265949,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0c6uq4c._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(995889)))},788089,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0d8brvh._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(580288)))},414059,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1lr-xqr._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(566552)))},158161,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1t9e3ef._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(931663)))},621173,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0_iovbk._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(493860)))},594722,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1_98arq._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(337649)))},685272,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_183vuvb._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(898437)))},219771,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0ha29gs._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(650794)))},510010,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0a2p_6-._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(613650)))},474394,328939,782970,a=>{"use strict";function b(a,b){if(!isFinite(a)||0===a)return null;var c=(a=b?a.toExponential(b-1):a.toExponential()).indexOf("e"),d=a.slice(0,c);return[d.length>1?d[0]+d.slice(2):d,+a.slice(c+1)]}function c(a){return(a=b(Math.abs(a)))?a[1]:NaN}a.s(["default",0,c],328939);var d,e,f,g,h=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function i(a){var b;if(!(b=h.exec(a)))throw Error("invalid format: "+a);return new j({fill:b[1],align:b[2],sign:b[3],symbol:b[4],zero:b[5],width:b[6],comma:b[7],precision:b[8]&&b[8].slice(1),trim:b[9],type:b[10]})}function j(a){this.fill=void 0===a.fill?" ":a.fill+"",this.align=void 0===a.align?">":a.align+"",this.sign=void 0===a.sign?"-":a.sign+"",this.symbol=void 0===a.symbol?"":a.symbol+"",this.zero=!!a.zero,this.width=void 0===a.width?void 0:+a.width,this.comma=!!a.comma,this.precision=void 0===a.precision?void 0:+a.precision,this.trim=!!a.trim,this.type=void 0===a.type?"":a.type+""}function k(a,c){var d=b(a,c);if(!d)return a+"";var e=d[0],f=d[1];return f<0?"0."+Array(-f).join("0")+e:e.length>f+1?e.slice(0,f+1)+"."+e.slice(f+1):e+Array(f-e.length+2).join("0")}i.prototype=j.prototype,j.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type},a.s(["default",0,i],782970);let l={"%":(a,b)=>(100*a).toFixed(b),b:a=>Math.round(a).toString(2),c:a=>a+"",d:function(a){return Math.abs(a=Math.round(a))>=1e21?a.toLocaleString("en").replace(/,/g,""):a.toString(10)},e:(a,b)=>a.toExponential(b),f:(a,b)=>a.toFixed(b),g:(a,b)=>a.toPrecision(b),o:a=>Math.round(a).toString(8),p:(a,b)=>k(100*a,b),r:k,s:function(a,c){var e=b(a,c);if(!e)return d=void 0,a.toPrecision(c);var f=e[0],g=e[1],h=g-(d=3*Math.max(-8,Math.min(8,Math.floor(g/3))))+1,i=f.length;return h===i?f:h>i?f+Array(h-i+1).join("0"):h>0?f.slice(0,h)+"."+f.slice(h):"0."+Array(1-h).join("0")+b(a,Math.max(0,c+h-1))[0]},X:a=>Math.round(a).toString(16).toUpperCase(),x:a=>Math.round(a).toString(16)};function m(a){return a}var n=Array.prototype.map,o=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];f=(e=function(a){var b,e,f,g=void 0===a.grouping||void 0===a.thousands?m:(b=n.call(a.grouping,Number),e=a.thousands+"",function(a,c){for(var d=a.length,f=[],g=0,h=b[0],i=0;d>0&&h>0&&(i+h+1>c&&(h=Math.max(1,c-i)),f.push(a.substring(d-=h,d+h)),!((i+=h+1)>c));)h=b[g=(g+1)%b.length];return f.reverse().join(e)}),h=void 0===a.currency?"":a.currency[0]+"",j=void 0===a.currency?"":a.currency[1]+"",k=void 0===a.decimal?".":a.decimal+"",p=void 0===a.numerals?m:(f=n.call(a.numerals,String),function(a){return a.replace(/[0-9]/g,function(a){return f[+a]})}),q=void 0===a.percent?"%":a.percent+"",r=void 0===a.minus?"−":a.minus+"",s=void 0===a.nan?"NaN":a.nan+"";function t(a,b){var c=(a=i(a)).fill,e=a.align,f=a.sign,m=a.symbol,n=a.zero,t=a.width,u=a.comma,v=a.precision,w=a.trim,x=a.type;"n"===x?(u=!0,x="g"):l[x]||(void 0===v&&(v=12),w=!0,x="g"),(n||"0"===c&&"="===e)&&(n=!0,c="0",e="=");var y=(b&&void 0!==b.prefix?b.prefix:"")+("$"===m?h:"#"===m&&/[boxX]/.test(x)?"0"+x.toLowerCase():""),z=("$"===m?j:/[%p]/.test(x)?q:"")+(b&&void 0!==b.suffix?b.suffix:""),A=l[x],B=/[defgprs%]/.test(x);function C(a){var b,h,i,j=y,l=z;if("c"===x)l=A(a)+l,a="";else{var m=(a*=1)<0||1/a<0;if(a=isNaN(a)?s:A(Math.abs(a),v),w&&(a=function(a){a:for(var b,c=a.length,d=1,e=-1;d<c;++d)switch(a[d]){case".":e=b=d;break;case"0":0===e&&(e=d),b=d;break;default:if(!+a[d])break a;e>0&&(e=0)}return e>0?a.slice(0,e)+a.slice(b+1):a}(a)),m&&0==+a&&"+"!==f&&(m=!1),j=(m?"("===f?f:r:"-"===f||"("===f?"":f)+j,l=("s"!==x||isNaN(a)||void 0===d?"":o[8+d/3])+l+(m&&"("===f?")":""),B){for(b=-1,h=a.length;++b<h;)if(48>(i=a.charCodeAt(b))||i>57){l=(46===i?k+a.slice(b+1):a.slice(b))+l,a=a.slice(0,b);break}}}u&&!n&&(a=g(a,1/0));var q=j.length+a.length+l.length,C=q<t?Array(t-q+1).join(c):"";switch(u&&n&&(a=g(C+a,C.length?t-l.length:1/0),C=""),e){case"<":a=j+a+l+C;break;case"=":a=j+C+a+l;break;case"^":a=C.slice(0,q=C.length>>1)+j+a+l+C.slice(q);break;default:a=C+j+a+l}return p(a)}return v=void 0===v?6:/[gprs]/.test(x)?Math.max(1,Math.min(21,v)):Math.max(0,Math.min(20,v)),C.toString=function(){return a+""},C}return{format:t,formatPrefix:function(a,b){var d=3*Math.max(-8,Math.min(8,Math.floor(c(b)/3))),e=Math.pow(10,-d),f=t(((a=i(a)).type="f",a),{suffix:o[8+d/3]});return function(a){return f(e*a)}}}}({thousands:",",grouping:[3],currency:["$",""]})).format,g=e.formatPrefix,a.s(["format",()=>f,"formatPrefix",()=>g],474394)},88935,a=>{"use strict";a.s(["initRange",0,function(a,b){switch(arguments.length){case 0:break;case 1:this.range(a);break;default:this.range(b).domain(a)}return this}])},482464,a=>{"use strict";class b extends Map{constructor(a,b=d){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:b}}),null!=a)for(const[b,c]of a)this.set(b,c)}get(a){return super.get(c(this,a))}has(a){return super.has(c(this,a))}set(a,b){return super.set(function({_intern:a,_key:b},c){let d=b(c);return a.has(d)?a.get(d):(a.set(d,c),c)}(this,a),b)}delete(a){return super.delete(function({_intern:a,_key:b},c){let d=b(c);return a.has(d)&&(c=a.get(d),a.delete(d)),c}(this,a))}}function c({_intern:a,_key:b},d){let e=b(d);return a.has(e)?a.get(e):d}function d(a){return null!==a&&"object"==typeof a?a.valueOf():a}var e=a.i(88935);let f=Symbol("implicit");a.s(["default",0,function a(){var c=new b,d=[],g=[],h=f;function i(a){let b=c.get(a);if(void 0===b){if(h!==f)return h;c.set(a,b=d.push(a)-1)}return g[b%g.length]}return i.domain=function(a){if(!arguments.length)return d.slice();for(let e of(d=[],c=new b,a))c.has(e)||c.set(e,d.push(e)-1);return i},i.range=function(a){return arguments.length?(g=Array.from(a),i):g.slice()},i.unknown=function(a){return arguments.length?(h=a,i):h},i.copy=function(){return a(d,g).unknown(h)},e.initRange.apply(i,arguments),i}],482464)},444668,a=>{"use strict";var b=a.i(482464);a.s(["scaleOrdinal",()=>b.default])},361055,a=>{"use strict";function b(a,b){a.accDescr&&b.setAccDescription?.(a.accDescr),a.accTitle&&b.setAccTitle?.(a.accTitle),a.title&&b.setDiagramTitle?.(a.title)}(0,a.i(539110).__name)(b,"populateCommonDb"),a.s(["populateCommonDb",0,b])},671199,a=>{"use strict";var b=a.i(261234),c=a.i(875117),d=a.i(539110),e=(0,d.__name)((a,d,e,h)=>{a.attr("class",e);let{width:i,height:j,x:k,y:l}=f(a,d);(0,b.configureSvgSize)(a,j,i,h);let m=g(k,l,i,j,d);a.attr("viewBox",m),c.log.debug(`viewBox configured: ${m} with padding: ${d}`)},"setupViewPortForSVG"),f=(0,d.__name)((a,b)=>{let c=a.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:c.width+2*b,height:c.height+2*b,x:c.x,y:c.y}},"calculateDimensionsWithPadding"),g=(0,d.__name)((a,b,c,d,e)=>`${a-e} ${b-e} ${c} ${d}`,"createViewBox");a.s(["setupViewPortForSVG",0,e])}];
2
2
 
3
- //# sourceMappingURL=node_modules_0ky76fz._.js.map
3
+ //# sourceMappingURL=node_modules_06e0wlv._.js.map
@@ -1,3 +1,3 @@
1
1
  module.exports=[529285,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_00ptcss._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(726362)))},568773,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1p161c7._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(702288)))},409811,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0xbyurn._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(33048)))},879004,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0mkvkrn._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(959346)))},240897,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_10l-aox._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(78860)))},979209,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_11iptmm._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(731813)))},265949,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0c6uq4c._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(995889)))},788089,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0d8brvh._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(580288)))},414059,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1lr-xqr._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(566552)))},158161,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1t9e3ef._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(931663)))},621173,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0_iovbk._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(493860)))},594722,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1_98arq._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(337649)))},685272,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_183vuvb._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(898437)))},219771,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0ha29gs._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(650794)))},510010,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0a2p_6-._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(613650)))},525902,a=>{"use strict";var b=a.i(53467),c=a.i(261234),d=a.i(875117),e=a.i(539110),f=a.i(838673),g={parse:(0,e.__name)(async a=>{let b=await (0,f.parse)("info",a);d.log.debug(b)},"parse")},h=(0,e.__name)(()=>"11.17.2","getVersion"),i=(0,e.__name)((a,e,f)=>{d.log.debug("rendering info diagram\n"+a);let g=(0,b.selectSvgElement)(e);(0,c.configureSvgSize)(g,100,400,!0),g.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${f}`)},"draw");a.s(["diagram",0,{parser:g,db:{getVersion:h},renderer:{draw:i}}])}];
2
2
 
3
- //# sourceMappingURL=node_modules_0-x0zxm._.js.map
3
+ //# sourceMappingURL=node_modules_0cj26-9._.js.map
@@ -23,4 +23,4 @@ module.exports=[529285,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@
23
23
  }
24
24
  `},"styles");a.s(["diagram",0,{parser:m,get db(){return new j},renderer:{draw:n},styles:q}])}];
25
25
 
26
- //# sourceMappingURL=node_modules_0operbz._.js.map
26
+ //# sourceMappingURL=node_modules_0d1rf5e._.js.map
@@ -1,3 +1,3 @@
1
1
  module.exports=[529285,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_00ptcss._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(726362)))},568773,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1p161c7._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(702288)))},409811,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0xbyurn._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(33048)))},879004,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0mkvkrn._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(959346)))},240897,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_10l-aox._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(78860)))},979209,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_11iptmm._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(731813)))},265949,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0c6uq4c._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(995889)))},788089,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0d8brvh._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(580288)))},414059,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1lr-xqr._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(566552)))},158161,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1t9e3ef._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(931663)))},621173,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0_iovbk._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(493860)))},594722,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1_98arq._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(337649)))},685272,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_183vuvb._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(898437)))},219771,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0ha29gs._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(650794)))},510010,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0a2p_6-._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(613650)))},21026,a=>{"use strict";var b=a.i(539110),c=class{constructor(a){this.init=a,this.records=this.init()}static{(0,b.__name)(this,"ImperativeState")}reset(){this.records=this.init()}};a.s(["ImperativeState",0,c])},361055,a=>{"use strict";function b(a,b){a.accDescr&&b.setAccDescription?.(a.accDescr),a.accTitle&&b.setAccTitle?.(a.accTitle),a.title&&b.setDiagramTitle?.(a.title)}(0,a.i(539110).__name)(b,"populateCommonDb"),a.s(["populateCommonDb",0,b])}];
2
2
 
3
- //# sourceMappingURL=node_modules_0b0iy01._.js.map
3
+ //# sourceMappingURL=node_modules_0e86703._.js.map