@aitne/dashboard 0.1.10 → 0.1.11

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 (1076) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +6 -9
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/diagnostics/route-bundle-stats.json +592 -614
  5. package/.next/fallback-build-manifest.json +3 -3
  6. package/.next/prerender-manifest.json +54 -126
  7. package/.next/routes-manifest.json +27 -45
  8. package/.next/server/app/_global-error.html +1 -1
  9. package/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/server/app/_not-found/page/next-font-manifest.json +4 -2
  16. package/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -1
  17. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  18. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/.next/server/app/_not-found.html +1 -1
  20. package/.next/server/app/_not-found.rsc +15 -15
  21. package/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  22. package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  23. package/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  24. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  25. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  26. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  27. package/.next/server/app/activity/page/next-font-manifest.json +4 -2
  28. package/.next/server/app/activity/page/react-loadable-manifest.json +1 -1
  29. package/.next/server/app/activity/page.js.nft.json +1 -1
  30. package/.next/server/app/activity/page_client-reference-manifest.js +1 -1
  31. package/.next/server/app/activity.html +1 -1
  32. package/.next/server/app/activity.rsc +27 -25
  33. package/.next/server/app/activity.segments/_full.segment.rsc +27 -25
  34. package/.next/server/app/activity.segments/_head.segment.rsc +4 -4
  35. package/.next/server/app/activity.segments/_index.segment.rsc +10 -10
  36. package/.next/server/app/activity.segments/_tree.segment.rsc +3 -2
  37. package/.next/server/app/activity.segments/activity/__PAGE__.segment.rsc +4 -4
  38. package/.next/server/app/activity.segments/activity.segment.rsc +4 -4
  39. package/.next/server/app/agents/[slug]/executions/page/next-font-manifest.json +4 -2
  40. package/.next/server/app/agents/[slug]/executions/page/react-loadable-manifest.json +1 -1
  41. package/.next/server/app/agents/[slug]/executions/page.js.nft.json +1 -1
  42. package/.next/server/app/agents/[slug]/executions/page_client-reference-manifest.js +1 -1
  43. package/.next/server/app/agents/[slug]/page/next-font-manifest.json +4 -2
  44. package/.next/server/app/agents/[slug]/page/react-loadable-manifest.json +1 -1
  45. package/.next/server/app/agents/[slug]/page.js.nft.json +1 -1
  46. package/.next/server/app/agents/[slug]/page_client-reference-manifest.js +1 -1
  47. package/.next/server/app/agents/page/next-font-manifest.json +4 -2
  48. package/.next/server/app/agents/page/react-loadable-manifest.json +1 -1
  49. package/.next/server/app/agents/page.js.nft.json +1 -1
  50. package/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  51. package/.next/server/app/agents.html +1 -1
  52. package/.next/server/app/agents.rsc +18 -17
  53. package/.next/server/app/agents.segments/_full.segment.rsc +18 -17
  54. package/.next/server/app/agents.segments/_head.segment.rsc +4 -4
  55. package/.next/server/app/agents.segments/_index.segment.rsc +10 -10
  56. package/.next/server/app/agents.segments/_tree.segment.rsc +3 -2
  57. package/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +4 -4
  58. package/.next/server/app/agents.segments/agents.segment.rsc +3 -3
  59. package/.next/server/app/analytics/page/next-font-manifest.json +4 -2
  60. package/.next/server/app/analytics/page/react-loadable-manifest.json +1 -1
  61. package/.next/server/app/analytics/page.js.nft.json +1 -1
  62. package/.next/server/app/analytics/page_client-reference-manifest.js +1 -1
  63. package/.next/server/app/analytics.html +1 -1
  64. package/.next/server/app/analytics.rsc +25 -23
  65. package/.next/server/app/analytics.segments/_full.segment.rsc +25 -23
  66. package/.next/server/app/analytics.segments/_head.segment.rsc +4 -4
  67. package/.next/server/app/analytics.segments/_index.segment.rsc +10 -10
  68. package/.next/server/app/analytics.segments/_tree.segment.rsc +3 -2
  69. package/.next/server/app/analytics.segments/analytics/__PAGE__.segment.rsc +4 -4
  70. package/.next/server/app/analytics.segments/analytics.segment.rsc +4 -4
  71. package/.next/server/app/browser/page/app-paths-manifest.json +3 -0
  72. package/.next/server/app/browser/page/next-font-manifest.json +8 -0
  73. package/.next/server/app/{settings/advanced → browser}/page/react-loadable-manifest.json +1 -1
  74. package/.next/server/app/browser/page.js +15 -0
  75. package/.next/server/app/browser/page.js.nft.json +1 -0
  76. package/.next/server/app/browser/page_client-reference-manifest.js +3 -0
  77. package/.next/server/app/browser-tasks/[id]/page/next-font-manifest.json +4 -2
  78. package/.next/server/app/browser-tasks/[id]/page/react-loadable-manifest.json +1 -1
  79. package/.next/server/app/browser-tasks/[id]/page.js.nft.json +1 -1
  80. package/.next/server/app/browser-tasks/[id]/page_client-reference-manifest.js +1 -1
  81. package/.next/server/app/browser-tasks/page/next-font-manifest.json +4 -2
  82. package/.next/server/app/browser-tasks/page/react-loadable-manifest.json +1 -1
  83. package/.next/server/app/browser-tasks/page.js.nft.json +1 -1
  84. package/.next/server/app/browser-tasks/page_client-reference-manifest.js +1 -1
  85. package/.next/server/app/browser-tasks.html +1 -1
  86. package/.next/server/app/browser-tasks.rsc +18 -17
  87. package/.next/server/app/browser-tasks.segments/_full.segment.rsc +18 -17
  88. package/.next/server/app/browser-tasks.segments/_head.segment.rsc +4 -4
  89. package/.next/server/app/browser-tasks.segments/_index.segment.rsc +10 -10
  90. package/.next/server/app/browser-tasks.segments/_tree.segment.rsc +3 -2
  91. package/.next/server/app/browser-tasks.segments/browser-tasks/__PAGE__.segment.rsc +4 -4
  92. package/.next/server/app/browser-tasks.segments/browser-tasks.segment.rsc +3 -3
  93. package/.next/server/app/browser.html +1 -0
  94. package/.next/server/app/browser.meta +15 -0
  95. package/.next/server/app/browser.rsc +27 -0
  96. package/.next/server/app/browser.segments/_full.segment.rsc +27 -0
  97. package/.next/server/app/browser.segments/_head.segment.rsc +6 -0
  98. package/.next/server/app/browser.segments/_index.segment.rsc +11 -0
  99. package/.next/server/app/browser.segments/_tree.segment.rsc +3 -0
  100. package/.next/server/app/browser.segments/browser/__PAGE__.segment.rsc +9 -0
  101. package/.next/server/app/browser.segments/browser.segment.rsc +5 -0
  102. package/.next/server/app/chat/page/next-font-manifest.json +4 -2
  103. package/.next/server/app/chat/page/react-loadable-manifest.json +1 -1
  104. package/.next/server/app/chat/page.js.nft.json +1 -1
  105. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  106. package/.next/server/app/chat.html +1 -1
  107. package/.next/server/app/chat.rsc +18 -17
  108. package/.next/server/app/chat.segments/_full.segment.rsc +18 -17
  109. package/.next/server/app/chat.segments/_head.segment.rsc +4 -4
  110. package/.next/server/app/chat.segments/_index.segment.rsc +10 -10
  111. package/.next/server/app/chat.segments/_tree.segment.rsc +3 -2
  112. package/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +4 -4
  113. package/.next/server/app/chat.segments/chat.segment.rsc +3 -3
  114. package/.next/server/app/connections/calendar/page/next-font-manifest.json +4 -2
  115. package/.next/server/app/connections/calendar/page/react-loadable-manifest.json +1 -1
  116. package/.next/server/app/connections/calendar/page.js.nft.json +1 -1
  117. package/.next/server/app/connections/calendar/page_client-reference-manifest.js +1 -1
  118. package/.next/server/app/connections/calendar.html +1 -1
  119. package/.next/server/app/connections/calendar.rsc +19 -18
  120. package/.next/server/app/connections/calendar.segments/_full.segment.rsc +19 -18
  121. package/.next/server/app/connections/calendar.segments/_head.segment.rsc +4 -4
  122. package/.next/server/app/connections/calendar.segments/_index.segment.rsc +10 -10
  123. package/.next/server/app/connections/calendar.segments/_tree.segment.rsc +3 -2
  124. package/.next/server/app/connections/calendar.segments/connections/calendar/__PAGE__.segment.rsc +4 -4
  125. package/.next/server/app/connections/calendar.segments/connections/calendar.segment.rsc +3 -3
  126. package/.next/server/app/connections/calendar.segments/connections.segment.rsc +4 -4
  127. package/.next/server/app/connections/journal/page/next-font-manifest.json +4 -2
  128. package/.next/server/app/connections/journal/page/react-loadable-manifest.json +1 -1
  129. package/.next/server/app/connections/journal/page.js.nft.json +1 -1
  130. package/.next/server/app/connections/journal/page_client-reference-manifest.js +1 -1
  131. package/.next/server/app/connections/journal.html +1 -1
  132. package/.next/server/app/connections/journal.rsc +18 -17
  133. package/.next/server/app/connections/journal.segments/_full.segment.rsc +18 -17
  134. package/.next/server/app/connections/journal.segments/_head.segment.rsc +4 -4
  135. package/.next/server/app/connections/journal.segments/_index.segment.rsc +10 -10
  136. package/.next/server/app/connections/journal.segments/_tree.segment.rsc +3 -2
  137. package/.next/server/app/connections/journal.segments/connections/journal/__PAGE__.segment.rsc +3 -3
  138. package/.next/server/app/connections/journal.segments/connections/journal.segment.rsc +3 -3
  139. package/.next/server/app/connections/journal.segments/connections.segment.rsc +4 -4
  140. package/.next/server/app/connections/mail/page/next-font-manifest.json +4 -2
  141. package/.next/server/app/connections/mail/page/react-loadable-manifest.json +1 -1
  142. package/.next/server/app/connections/mail/page.js.nft.json +1 -1
  143. package/.next/server/app/connections/mail/page_client-reference-manifest.js +1 -1
  144. package/.next/server/app/connections/mail.html +1 -1
  145. package/.next/server/app/connections/mail.rsc +19 -18
  146. package/.next/server/app/connections/mail.segments/_full.segment.rsc +19 -18
  147. package/.next/server/app/connections/mail.segments/_head.segment.rsc +4 -4
  148. package/.next/server/app/connections/mail.segments/_index.segment.rsc +10 -10
  149. package/.next/server/app/connections/mail.segments/_tree.segment.rsc +3 -2
  150. package/.next/server/app/connections/mail.segments/connections/mail/__PAGE__.segment.rsc +4 -4
  151. package/.next/server/app/connections/mail.segments/connections/mail.segment.rsc +3 -3
  152. package/.next/server/app/connections/mail.segments/connections.segment.rsc +4 -4
  153. package/.next/server/app/connections/mcp/page/next-font-manifest.json +4 -2
  154. package/.next/server/app/connections/mcp/page/react-loadable-manifest.json +1 -1
  155. package/.next/server/app/connections/mcp/page.js.nft.json +1 -1
  156. package/.next/server/app/connections/mcp/page_client-reference-manifest.js +1 -1
  157. package/.next/server/app/connections/mcp.html +1 -1
  158. package/.next/server/app/connections/mcp.rsc +19 -18
  159. package/.next/server/app/connections/mcp.segments/_full.segment.rsc +19 -18
  160. package/.next/server/app/connections/mcp.segments/_head.segment.rsc +4 -4
  161. package/.next/server/app/connections/mcp.segments/_index.segment.rsc +10 -10
  162. package/.next/server/app/connections/mcp.segments/_tree.segment.rsc +3 -2
  163. package/.next/server/app/connections/mcp.segments/connections/mcp/__PAGE__.segment.rsc +4 -4
  164. package/.next/server/app/connections/mcp.segments/connections/mcp.segment.rsc +3 -3
  165. package/.next/server/app/connections/mcp.segments/connections.segment.rsc +4 -4
  166. package/.next/server/app/connections/messaging/page/next-font-manifest.json +4 -2
  167. package/.next/server/app/connections/messaging/page/react-loadable-manifest.json +1 -1
  168. package/.next/server/app/connections/messaging/page.js.nft.json +1 -1
  169. package/.next/server/app/connections/messaging/page_client-reference-manifest.js +1 -1
  170. package/.next/server/app/connections/messaging.html +1 -1
  171. package/.next/server/app/connections/messaging.rsc +19 -18
  172. package/.next/server/app/connections/messaging.segments/_full.segment.rsc +19 -18
  173. package/.next/server/app/connections/messaging.segments/_head.segment.rsc +4 -4
  174. package/.next/server/app/connections/messaging.segments/_index.segment.rsc +10 -10
  175. package/.next/server/app/connections/messaging.segments/_tree.segment.rsc +3 -2
  176. package/.next/server/app/connections/messaging.segments/connections/messaging/__PAGE__.segment.rsc +4 -4
  177. package/.next/server/app/connections/messaging.segments/connections/messaging.segment.rsc +3 -3
  178. package/.next/server/app/connections/messaging.segments/connections.segment.rsc +4 -4
  179. package/.next/server/app/connections/notes/page/app-paths-manifest.json +3 -0
  180. package/.next/server/app/connections/notes/page/next-font-manifest.json +8 -0
  181. package/.next/server/app/{settings/backends → connections/notes}/page/react-loadable-manifest.json +1 -1
  182. package/.next/server/app/connections/{knowledge → notes}/page.js +6 -6
  183. package/.next/server/app/{settings/schedule → connections/notes}/page.js.nft.json +1 -1
  184. package/.next/server/app/connections/notes/page_client-reference-manifest.js +3 -0
  185. package/.next/server/app/connections/notes.html +1 -0
  186. package/.next/server/app/connections/{knowledge.meta → notes.meta} +3 -3
  187. package/.next/server/app/connections/notes.rsc +28 -0
  188. package/.next/server/app/connections/notes.segments/_full.segment.rsc +28 -0
  189. package/.next/server/app/connections/notes.segments/_head.segment.rsc +6 -0
  190. package/.next/server/app/connections/notes.segments/_index.segment.rsc +11 -0
  191. package/.next/server/app/connections/notes.segments/_tree.segment.rsc +3 -0
  192. package/.next/server/app/connections/notes.segments/connections/notes/__PAGE__.segment.rsc +9 -0
  193. package/.next/server/app/connections/notes.segments/connections/notes.segment.rsc +5 -0
  194. package/.next/server/app/connections/notes.segments/connections.segment.rsc +5 -0
  195. package/.next/server/app/connections/page/next-font-manifest.json +4 -2
  196. package/.next/server/app/connections/page/react-loadable-manifest.json +1 -1
  197. package/.next/server/app/connections/page.js.nft.json +1 -1
  198. package/.next/server/app/connections/page_client-reference-manifest.js +1 -1
  199. package/.next/server/app/connections/repositories/page/next-font-manifest.json +4 -2
  200. package/.next/server/app/connections/repositories/page/react-loadable-manifest.json +1 -1
  201. package/.next/server/app/connections/repositories/page.js.nft.json +1 -1
  202. package/.next/server/app/connections/repositories/page_client-reference-manifest.js +1 -1
  203. package/.next/server/app/connections/repositories.html +1 -1
  204. package/.next/server/app/connections/repositories.rsc +23 -21
  205. package/.next/server/app/connections/repositories.segments/_full.segment.rsc +23 -21
  206. package/.next/server/app/connections/repositories.segments/_head.segment.rsc +4 -4
  207. package/.next/server/app/connections/repositories.segments/_index.segment.rsc +10 -10
  208. package/.next/server/app/connections/repositories.segments/_tree.segment.rsc +3 -2
  209. package/.next/server/app/connections/repositories.segments/connections/repositories/__PAGE__.segment.rsc +4 -4
  210. package/.next/server/app/connections/repositories.segments/connections/repositories.segment.rsc +3 -3
  211. package/.next/server/app/connections/repositories.segments/connections.segment.rsc +4 -4
  212. package/.next/server/app/connections/routines/page/next-font-manifest.json +4 -2
  213. package/.next/server/app/connections/routines/page/react-loadable-manifest.json +1 -1
  214. package/.next/server/app/connections/routines/page.js.nft.json +1 -1
  215. package/.next/server/app/connections/routines/page_client-reference-manifest.js +1 -1
  216. package/.next/server/app/connections/routines.html +1 -1
  217. package/.next/server/app/connections/routines.rsc +18 -17
  218. package/.next/server/app/connections/routines.segments/_full.segment.rsc +18 -17
  219. package/.next/server/app/connections/routines.segments/_head.segment.rsc +4 -4
  220. package/.next/server/app/connections/routines.segments/_index.segment.rsc +10 -10
  221. package/.next/server/app/connections/routines.segments/_tree.segment.rsc +3 -2
  222. package/.next/server/app/connections/routines.segments/connections/routines/__PAGE__.segment.rsc +3 -3
  223. package/.next/server/app/connections/routines.segments/connections/routines.segment.rsc +3 -3
  224. package/.next/server/app/connections/routines.segments/connections.segment.rsc +4 -4
  225. package/.next/server/app/connections.html +1 -1
  226. package/.next/server/app/connections.rsc +17 -16
  227. package/.next/server/app/connections.segments/_full.segment.rsc +17 -16
  228. package/.next/server/app/connections.segments/_head.segment.rsc +4 -4
  229. package/.next/server/app/connections.segments/_index.segment.rsc +10 -10
  230. package/.next/server/app/connections.segments/_tree.segment.rsc +3 -2
  231. package/.next/server/app/connections.segments/connections/__PAGE__.segment.rsc +2 -2
  232. package/.next/server/app/connections.segments/connections.segment.rsc +4 -4
  233. package/.next/server/app/conversations/[id]/page/next-font-manifest.json +4 -2
  234. package/.next/server/app/conversations/[id]/page/react-loadable-manifest.json +1 -1
  235. package/.next/server/app/conversations/[id]/page.js.nft.json +1 -1
  236. package/.next/server/app/conversations/[id]/page_client-reference-manifest.js +1 -1
  237. package/.next/server/app/conversations/page/next-font-manifest.json +4 -2
  238. package/.next/server/app/conversations/page/react-loadable-manifest.json +1 -1
  239. package/.next/server/app/conversations/page.js.nft.json +1 -1
  240. package/.next/server/app/conversations/page_client-reference-manifest.js +1 -1
  241. package/.next/server/app/conversations.html +1 -1
  242. package/.next/server/app/conversations.rsc +16 -15
  243. package/.next/server/app/conversations.segments/_full.segment.rsc +16 -15
  244. package/.next/server/app/conversations.segments/_head.segment.rsc +4 -4
  245. package/.next/server/app/conversations.segments/_index.segment.rsc +10 -10
  246. package/.next/server/app/conversations.segments/_tree.segment.rsc +3 -2
  247. package/.next/server/app/conversations.segments/conversations/__PAGE__.segment.rsc +2 -2
  248. package/.next/server/app/conversations.segments/conversations.segment.rsc +3 -3
  249. package/.next/server/app/docs/[[...slug]]/page/next-font-manifest.json +4 -2
  250. package/.next/server/app/docs/[[...slug]]/page/react-loadable-manifest.json +1 -1
  251. package/.next/server/app/docs/[[...slug]]/page.js.nft.json +1 -1
  252. package/.next/server/app/docs/[[...slug]]/page_client-reference-manifest.js +1 -1
  253. package/.next/server/app/finance/page/next-font-manifest.json +4 -2
  254. package/.next/server/app/finance/page/react-loadable-manifest.json +1 -1
  255. package/.next/server/app/finance/page.js.nft.json +1 -1
  256. package/.next/server/app/finance/page_client-reference-manifest.js +1 -1
  257. package/.next/server/app/finance.html +1 -1
  258. package/.next/server/app/finance.rsc +18 -17
  259. package/.next/server/app/finance.segments/_full.segment.rsc +18 -17
  260. package/.next/server/app/finance.segments/_head.segment.rsc +4 -4
  261. package/.next/server/app/finance.segments/_index.segment.rsc +10 -10
  262. package/.next/server/app/finance.segments/_tree.segment.rsc +3 -2
  263. package/.next/server/app/finance.segments/finance/__PAGE__.segment.rsc +4 -4
  264. package/.next/server/app/finance.segments/finance.segment.rsc +3 -3
  265. package/.next/server/app/git/page/next-font-manifest.json +4 -2
  266. package/.next/server/app/git/page/react-loadable-manifest.json +1 -1
  267. package/.next/server/app/git/page.js.nft.json +1 -1
  268. package/.next/server/app/git/page_client-reference-manifest.js +1 -1
  269. package/.next/server/app/git.html +1 -1
  270. package/.next/server/app/git.rsc +18 -17
  271. package/.next/server/app/git.segments/_full.segment.rsc +18 -17
  272. package/.next/server/app/git.segments/_head.segment.rsc +4 -4
  273. package/.next/server/app/git.segments/_index.segment.rsc +10 -10
  274. package/.next/server/app/git.segments/_tree.segment.rsc +3 -2
  275. package/.next/server/app/git.segments/git/__PAGE__.segment.rsc +4 -4
  276. package/.next/server/app/git.segments/git.segment.rsc +3 -3
  277. package/.next/server/app/health/page/next-font-manifest.json +4 -2
  278. package/.next/server/app/health/page/react-loadable-manifest.json +1 -1
  279. package/.next/server/app/health/page.js.nft.json +1 -1
  280. package/.next/server/app/health/page_client-reference-manifest.js +1 -1
  281. package/.next/server/app/health.html +1 -1
  282. package/.next/server/app/health.rsc +18 -17
  283. package/.next/server/app/health.segments/_full.segment.rsc +18 -17
  284. package/.next/server/app/health.segments/_head.segment.rsc +4 -4
  285. package/.next/server/app/health.segments/_index.segment.rsc +10 -10
  286. package/.next/server/app/health.segments/_tree.segment.rsc +3 -2
  287. package/.next/server/app/health.segments/health/__PAGE__.segment.rsc +4 -4
  288. package/.next/server/app/health.segments/health.segment.rsc +3 -3
  289. package/.next/server/app/index.html +1 -1
  290. package/.next/server/app/index.rsc +18 -17
  291. package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  292. package/.next/server/app/index.segments/_full.segment.rsc +18 -17
  293. package/.next/server/app/index.segments/_head.segment.rsc +4 -4
  294. package/.next/server/app/index.segments/_index.segment.rsc +10 -10
  295. package/.next/server/app/index.segments/_tree.segment.rsc +3 -2
  296. package/.next/server/app/knowledge/page/next-font-manifest.json +4 -2
  297. package/.next/server/app/knowledge/page/react-loadable-manifest.json +1 -1
  298. package/.next/server/app/knowledge/page.js.nft.json +1 -1
  299. package/.next/server/app/knowledge/page_client-reference-manifest.js +1 -1
  300. package/.next/server/app/knowledge.html +1 -1
  301. package/.next/server/app/knowledge.rsc +19 -18
  302. package/.next/server/app/knowledge.segments/_full.segment.rsc +19 -18
  303. package/.next/server/app/knowledge.segments/_head.segment.rsc +4 -4
  304. package/.next/server/app/knowledge.segments/_index.segment.rsc +10 -10
  305. package/.next/server/app/knowledge.segments/_tree.segment.rsc +3 -2
  306. package/.next/server/app/knowledge.segments/knowledge/__PAGE__.segment.rsc +4 -4
  307. package/.next/server/app/knowledge.segments/knowledge.segment.rsc +4 -4
  308. package/.next/server/app/page/next-font-manifest.json +4 -2
  309. package/.next/server/app/page/react-loadable-manifest.json +1 -1
  310. package/.next/server/app/page.js.nft.json +1 -1
  311. package/.next/server/app/page_client-reference-manifest.js +1 -1
  312. package/.next/server/app/reading/page/next-font-manifest.json +4 -2
  313. package/.next/server/app/reading/page/react-loadable-manifest.json +1 -1
  314. package/.next/server/app/reading/page.js.nft.json +1 -1
  315. package/.next/server/app/reading/page_client-reference-manifest.js +1 -1
  316. package/.next/server/app/reading.html +1 -1
  317. package/.next/server/app/reading.rsc +18 -17
  318. package/.next/server/app/reading.segments/_full.segment.rsc +18 -17
  319. package/.next/server/app/reading.segments/_head.segment.rsc +4 -4
  320. package/.next/server/app/reading.segments/_index.segment.rsc +10 -10
  321. package/.next/server/app/reading.segments/_tree.segment.rsc +3 -2
  322. package/.next/server/app/reading.segments/reading/__PAGE__.segment.rsc +4 -4
  323. package/.next/server/app/reading.segments/reading.segment.rsc +3 -3
  324. package/.next/server/app/schedule/page/next-font-manifest.json +4 -2
  325. package/.next/server/app/schedule/page/react-loadable-manifest.json +1 -1
  326. package/.next/server/app/schedule/page.js.nft.json +1 -1
  327. package/.next/server/app/schedule/page_client-reference-manifest.js +1 -1
  328. package/.next/server/app/schedule.html +1 -1
  329. package/.next/server/app/schedule.rsc +18 -17
  330. package/.next/server/app/schedule.segments/_full.segment.rsc +18 -17
  331. package/.next/server/app/schedule.segments/_head.segment.rsc +4 -4
  332. package/.next/server/app/schedule.segments/_index.segment.rsc +10 -10
  333. package/.next/server/app/schedule.segments/_tree.segment.rsc +3 -2
  334. package/.next/server/app/schedule.segments/schedule/__PAGE__.segment.rsc +4 -4
  335. package/.next/server/app/schedule.segments/schedule.segment.rsc +3 -3
  336. package/.next/server/app/settings/commands/page/next-font-manifest.json +4 -2
  337. package/.next/server/app/settings/commands/page/react-loadable-manifest.json +1 -1
  338. package/.next/server/app/settings/commands/page.js.nft.json +1 -1
  339. package/.next/server/app/settings/commands/page_client-reference-manifest.js +1 -1
  340. package/.next/server/app/settings/commands.html +1 -1
  341. package/.next/server/app/settings/commands.rsc +19 -18
  342. package/.next/server/app/settings/commands.segments/_full.segment.rsc +19 -18
  343. package/.next/server/app/settings/commands.segments/_head.segment.rsc +4 -4
  344. package/.next/server/app/settings/commands.segments/_index.segment.rsc +10 -10
  345. package/.next/server/app/settings/commands.segments/_tree.segment.rsc +3 -2
  346. package/.next/server/app/settings/commands.segments/settings/commands/__PAGE__.segment.rsc +4 -4
  347. package/.next/server/app/settings/commands.segments/settings/commands.segment.rsc +3 -3
  348. package/.next/server/app/settings/commands.segments/settings.segment.rsc +4 -4
  349. package/.next/server/app/settings/danger-zone/page/app-paths-manifest.json +3 -0
  350. package/.next/server/app/settings/danger-zone/page/next-font-manifest.json +8 -0
  351. package/.next/server/app/{connections/knowledge → settings/danger-zone}/page/react-loadable-manifest.json +1 -1
  352. package/.next/server/app/settings/{advanced → danger-zone}/page.js +6 -6
  353. package/.next/server/app/settings/{connections → danger-zone}/page.js.nft.json +1 -1
  354. package/.next/server/app/settings/danger-zone/page_client-reference-manifest.js +3 -0
  355. package/.next/server/app/settings/danger-zone.html +1 -0
  356. package/.next/server/app/settings/{advanced.meta → danger-zone.meta} +3 -3
  357. package/.next/server/app/settings/danger-zone.rsc +28 -0
  358. package/.next/server/app/settings/danger-zone.segments/_full.segment.rsc +28 -0
  359. package/.next/server/app/settings/danger-zone.segments/_head.segment.rsc +6 -0
  360. package/.next/server/app/settings/danger-zone.segments/_index.segment.rsc +11 -0
  361. package/.next/server/app/settings/danger-zone.segments/_tree.segment.rsc +3 -0
  362. package/.next/server/app/settings/danger-zone.segments/settings/danger-zone/__PAGE__.segment.rsc +9 -0
  363. package/.next/server/app/settings/danger-zone.segments/settings/danger-zone.segment.rsc +5 -0
  364. package/.next/server/app/settings/danger-zone.segments/settings.segment.rsc +5 -0
  365. package/.next/server/app/settings/hours/page/app-paths-manifest.json +3 -0
  366. package/.next/server/app/settings/hours/page/next-font-manifest.json +8 -0
  367. package/.next/server/app/settings/{connections → hours}/page/react-loadable-manifest.json +1 -1
  368. package/.next/server/app/settings/{routines → hours}/page.js +6 -6
  369. package/.next/server/app/settings/{journal → hours}/page.js.nft.json +1 -1
  370. package/.next/server/app/settings/hours/page_client-reference-manifest.js +3 -0
  371. package/.next/server/app/settings/hours.html +1 -0
  372. package/.next/server/app/settings/{journal.meta → hours.meta} +3 -3
  373. package/.next/server/app/settings/hours.rsc +28 -0
  374. package/.next/server/app/settings/hours.segments/_full.segment.rsc +28 -0
  375. package/.next/server/app/settings/hours.segments/_head.segment.rsc +6 -0
  376. package/.next/server/app/settings/hours.segments/_index.segment.rsc +11 -0
  377. package/.next/server/app/settings/hours.segments/_tree.segment.rsc +3 -0
  378. package/.next/server/app/settings/hours.segments/settings/hours/__PAGE__.segment.rsc +9 -0
  379. package/.next/server/app/settings/hours.segments/settings/hours.segment.rsc +5 -0
  380. package/.next/server/app/settings/hours.segments/settings.segment.rsc +5 -0
  381. package/.next/server/app/settings/infrastructure/page/app-paths-manifest.json +3 -0
  382. package/.next/server/app/settings/infrastructure/page/next-font-manifest.json +8 -0
  383. package/.next/server/app/settings/infrastructure/page/react-loadable-manifest.json +8 -0
  384. package/.next/server/app/settings/{schedule → infrastructure}/page.js +6 -6
  385. package/.next/server/app/settings/{backends → infrastructure}/page.js.nft.json +1 -1
  386. package/.next/server/app/settings/infrastructure/page_client-reference-manifest.js +3 -0
  387. package/.next/server/app/settings/infrastructure.html +1 -0
  388. package/.next/server/app/settings/{connections.meta → infrastructure.meta} +3 -3
  389. package/.next/server/app/settings/infrastructure.rsc +28 -0
  390. package/.next/server/app/settings/infrastructure.segments/_full.segment.rsc +28 -0
  391. package/.next/server/app/settings/infrastructure.segments/_head.segment.rsc +6 -0
  392. package/.next/server/app/settings/infrastructure.segments/_index.segment.rsc +11 -0
  393. package/.next/server/app/settings/infrastructure.segments/_tree.segment.rsc +3 -0
  394. package/.next/server/app/settings/infrastructure.segments/settings/infrastructure/__PAGE__.segment.rsc +9 -0
  395. package/.next/server/app/settings/infrastructure.segments/settings/infrastructure.segment.rsc +5 -0
  396. package/.next/server/app/settings/infrastructure.segments/settings.segment.rsc +5 -0
  397. package/.next/server/app/settings/integrations/browser-history/page/next-font-manifest.json +4 -2
  398. package/.next/server/app/settings/integrations/browser-history/page/react-loadable-manifest.json +1 -1
  399. package/.next/server/app/settings/integrations/browser-history/page.js.nft.json +1 -1
  400. package/.next/server/app/settings/integrations/browser-history/page_client-reference-manifest.js +1 -1
  401. package/.next/server/app/settings/integrations/browser-history-managed/b4/page/next-font-manifest.json +4 -2
  402. package/.next/server/app/settings/integrations/browser-history-managed/b4/page/react-loadable-manifest.json +1 -1
  403. package/.next/server/app/settings/integrations/browser-history-managed/b4/page.js.nft.json +1 -1
  404. package/.next/server/app/settings/integrations/browser-history-managed/b4/page_client-reference-manifest.js +1 -1
  405. package/.next/server/app/settings/integrations/browser-history-managed/b4.html +1 -1
  406. package/.next/server/app/settings/integrations/browser-history-managed/b4.rsc +19 -18
  407. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/_full.segment.rsc +19 -18
  408. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/_head.segment.rsc +4 -4
  409. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/_index.segment.rsc +10 -10
  410. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/_tree.segment.rsc +3 -2
  411. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings/integrations/browser-history-managed/b4/__PAGE__.segment.rsc +4 -4
  412. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings/integrations/browser-history-managed/b4.segment.rsc +3 -3
  413. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings/integrations/browser-history-managed.segment.rsc +3 -3
  414. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings/integrations.segment.rsc +3 -3
  415. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings.segment.rsc +4 -4
  416. package/.next/server/app/settings/integrations/browser-history-managed/page/next-font-manifest.json +4 -2
  417. package/.next/server/app/settings/integrations/browser-history-managed/page/react-loadable-manifest.json +1 -1
  418. package/.next/server/app/settings/integrations/browser-history-managed/page.js.nft.json +1 -1
  419. package/.next/server/app/settings/integrations/browser-history-managed/page_client-reference-manifest.js +1 -1
  420. package/.next/server/app/settings/integrations/browser-history-managed.html +1 -1
  421. package/.next/server/app/settings/integrations/browser-history-managed.rsc +19 -18
  422. package/.next/server/app/settings/integrations/browser-history-managed.segments/_full.segment.rsc +19 -18
  423. package/.next/server/app/settings/integrations/browser-history-managed.segments/_head.segment.rsc +4 -4
  424. package/.next/server/app/settings/integrations/browser-history-managed.segments/_index.segment.rsc +10 -10
  425. package/.next/server/app/settings/integrations/browser-history-managed.segments/_tree.segment.rsc +3 -2
  426. package/.next/server/app/settings/integrations/browser-history-managed.segments/settings/integrations/browser-history-managed/__PAGE__.segment.rsc +4 -4
  427. package/.next/server/app/settings/integrations/browser-history-managed.segments/settings/integrations/browser-history-managed.segment.rsc +3 -3
  428. package/.next/server/app/settings/integrations/browser-history-managed.segments/settings/integrations.segment.rsc +3 -3
  429. package/.next/server/app/settings/integrations/browser-history-managed.segments/settings.segment.rsc +4 -4
  430. package/.next/server/app/settings/integrations/browser-history.html +1 -1
  431. package/.next/server/app/settings/integrations/browser-history.rsc +19 -18
  432. package/.next/server/app/settings/integrations/browser-history.segments/_full.segment.rsc +19 -18
  433. package/.next/server/app/settings/integrations/browser-history.segments/_head.segment.rsc +4 -4
  434. package/.next/server/app/settings/integrations/browser-history.segments/_index.segment.rsc +10 -10
  435. package/.next/server/app/settings/integrations/browser-history.segments/_tree.segment.rsc +3 -2
  436. package/.next/server/app/settings/integrations/browser-history.segments/settings/integrations/browser-history/__PAGE__.segment.rsc +4 -4
  437. package/.next/server/app/settings/integrations/browser-history.segments/settings/integrations/browser-history.segment.rsc +3 -3
  438. package/.next/server/app/settings/integrations/browser-history.segments/settings/integrations.segment.rsc +3 -3
  439. package/.next/server/app/settings/integrations/browser-history.segments/settings.segment.rsc +4 -4
  440. package/.next/server/app/settings/lessons/page/next-font-manifest.json +4 -2
  441. package/.next/server/app/settings/lessons/page/react-loadable-manifest.json +1 -1
  442. package/.next/server/app/settings/lessons/page.js.nft.json +1 -1
  443. package/.next/server/app/settings/lessons/page_client-reference-manifest.js +1 -1
  444. package/.next/server/app/settings/lessons.html +1 -1
  445. package/.next/server/app/settings/lessons.rsc +19 -18
  446. package/.next/server/app/settings/lessons.segments/_full.segment.rsc +19 -18
  447. package/.next/server/app/settings/lessons.segments/_head.segment.rsc +4 -4
  448. package/.next/server/app/settings/lessons.segments/_index.segment.rsc +10 -10
  449. package/.next/server/app/settings/lessons.segments/_tree.segment.rsc +3 -2
  450. package/.next/server/app/settings/lessons.segments/settings/lessons/__PAGE__.segment.rsc +4 -4
  451. package/.next/server/app/settings/lessons.segments/settings/lessons.segment.rsc +3 -3
  452. package/.next/server/app/settings/lessons.segments/settings.segment.rsc +4 -4
  453. package/.next/server/app/settings/management/page/next-font-manifest.json +4 -2
  454. package/.next/server/app/settings/management/page/react-loadable-manifest.json +1 -1
  455. package/.next/server/app/settings/management/page.js.nft.json +1 -1
  456. package/.next/server/app/settings/management/page_client-reference-manifest.js +1 -1
  457. package/.next/server/app/settings/management.html +1 -1
  458. package/.next/server/app/settings/management.rsc +19 -18
  459. package/.next/server/app/settings/management.segments/_full.segment.rsc +19 -18
  460. package/.next/server/app/settings/management.segments/_head.segment.rsc +4 -4
  461. package/.next/server/app/settings/management.segments/_index.segment.rsc +10 -10
  462. package/.next/server/app/settings/management.segments/_tree.segment.rsc +3 -2
  463. package/.next/server/app/settings/management.segments/settings/management/__PAGE__.segment.rsc +4 -4
  464. package/.next/server/app/settings/management.segments/settings/management.segment.rsc +3 -3
  465. package/.next/server/app/settings/management.segments/settings.segment.rsc +4 -4
  466. package/.next/server/app/settings/models/page/next-font-manifest.json +4 -2
  467. package/.next/server/app/settings/models/page/react-loadable-manifest.json +1 -1
  468. package/.next/server/app/settings/models/page.js.nft.json +1 -1
  469. package/.next/server/app/settings/models/page_client-reference-manifest.js +1 -1
  470. package/.next/server/app/settings/models.html +1 -1
  471. package/.next/server/app/settings/models.rsc +19 -18
  472. package/.next/server/app/settings/models.segments/_full.segment.rsc +19 -18
  473. package/.next/server/app/settings/models.segments/_head.segment.rsc +4 -4
  474. package/.next/server/app/settings/models.segments/_index.segment.rsc +10 -10
  475. package/.next/server/app/settings/models.segments/_tree.segment.rsc +3 -2
  476. package/.next/server/app/settings/models.segments/settings/models/__PAGE__.segment.rsc +4 -4
  477. package/.next/server/app/settings/models.segments/settings/models.segment.rsc +3 -3
  478. package/.next/server/app/settings/models.segments/settings.segment.rsc +4 -4
  479. package/.next/server/app/settings/page/next-font-manifest.json +4 -2
  480. package/.next/server/app/settings/page/react-loadable-manifest.json +1 -1
  481. package/.next/server/app/settings/page.js.nft.json +1 -1
  482. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  483. package/.next/server/app/settings/safety/page/app-paths-manifest.json +3 -0
  484. package/.next/server/app/settings/safety/page/next-font-manifest.json +8 -0
  485. package/.next/server/app/settings/safety/page/react-loadable-manifest.json +8 -0
  486. package/.next/server/app/settings/{journal → safety}/page.js +6 -6
  487. package/.next/server/app/settings/{processes → safety}/page.js.nft.json +1 -1
  488. package/.next/server/app/settings/safety/page_client-reference-manifest.js +3 -0
  489. package/.next/server/app/settings/safety.html +1 -0
  490. package/.next/server/app/settings/{backends.meta → safety.meta} +3 -3
  491. package/.next/server/app/settings/safety.rsc +28 -0
  492. package/.next/server/app/settings/safety.segments/_full.segment.rsc +28 -0
  493. package/.next/server/app/settings/safety.segments/_head.segment.rsc +6 -0
  494. package/.next/server/app/settings/safety.segments/_index.segment.rsc +11 -0
  495. package/.next/server/app/settings/safety.segments/_tree.segment.rsc +3 -0
  496. package/.next/server/app/settings/safety.segments/settings/safety/__PAGE__.segment.rsc +9 -0
  497. package/.next/server/app/settings/safety.segments/settings/safety.segment.rsc +5 -0
  498. package/.next/server/app/settings/safety.segments/settings.segment.rsc +5 -0
  499. package/.next/server/app/settings/self-learning/page/next-font-manifest.json +4 -2
  500. package/.next/server/app/settings/self-learning/page/react-loadable-manifest.json +1 -1
  501. package/.next/server/app/settings/self-learning/page.js.nft.json +1 -1
  502. package/.next/server/app/settings/self-learning/page_client-reference-manifest.js +1 -1
  503. package/.next/server/app/settings/self-learning.html +1 -1
  504. package/.next/server/app/settings/self-learning.rsc +19 -18
  505. package/.next/server/app/settings/self-learning.segments/_full.segment.rsc +19 -18
  506. package/.next/server/app/settings/self-learning.segments/_head.segment.rsc +4 -4
  507. package/.next/server/app/settings/self-learning.segments/_index.segment.rsc +10 -10
  508. package/.next/server/app/settings/self-learning.segments/_tree.segment.rsc +3 -2
  509. package/.next/server/app/settings/self-learning.segments/settings/self-learning/__PAGE__.segment.rsc +4 -4
  510. package/.next/server/app/settings/self-learning.segments/settings/self-learning.segment.rsc +3 -3
  511. package/.next/server/app/settings/self-learning.segments/settings.segment.rsc +4 -4
  512. package/.next/server/app/settings/wiki/page/next-font-manifest.json +4 -2
  513. package/.next/server/app/settings/wiki/page/react-loadable-manifest.json +1 -1
  514. package/.next/server/app/settings/wiki/page.js.nft.json +1 -1
  515. package/.next/server/app/settings/wiki/page_client-reference-manifest.js +1 -1
  516. package/.next/server/app/settings/wiki/timeline/page/next-font-manifest.json +4 -2
  517. package/.next/server/app/settings/wiki/timeline/page/react-loadable-manifest.json +1 -1
  518. package/.next/server/app/settings/wiki/timeline/page.js.nft.json +1 -1
  519. package/.next/server/app/settings/wiki/timeline/page_client-reference-manifest.js +1 -1
  520. package/.next/server/app/settings/wiki/timeline.html +1 -1
  521. package/.next/server/app/settings/wiki/timeline.rsc +17 -16
  522. package/.next/server/app/settings/wiki/timeline.segments/_full.segment.rsc +17 -16
  523. package/.next/server/app/settings/wiki/timeline.segments/_head.segment.rsc +4 -4
  524. package/.next/server/app/settings/wiki/timeline.segments/_index.segment.rsc +10 -10
  525. package/.next/server/app/settings/wiki/timeline.segments/_tree.segment.rsc +3 -2
  526. package/.next/server/app/settings/wiki/timeline.segments/settings/wiki/timeline/__PAGE__.segment.rsc +2 -2
  527. package/.next/server/app/settings/wiki/timeline.segments/settings/wiki/timeline.segment.rsc +3 -3
  528. package/.next/server/app/settings/wiki/timeline.segments/settings/wiki.segment.rsc +3 -3
  529. package/.next/server/app/settings/wiki/timeline.segments/settings.segment.rsc +4 -4
  530. package/.next/server/app/settings/wiki.html +1 -1
  531. package/.next/server/app/settings/wiki.rsc +19 -18
  532. package/.next/server/app/settings/wiki.segments/_full.segment.rsc +19 -18
  533. package/.next/server/app/settings/wiki.segments/_head.segment.rsc +4 -4
  534. package/.next/server/app/settings/wiki.segments/_index.segment.rsc +10 -10
  535. package/.next/server/app/settings/wiki.segments/_tree.segment.rsc +3 -2
  536. package/.next/server/app/settings/wiki.segments/settings/wiki/__PAGE__.segment.rsc +4 -4
  537. package/.next/server/app/settings/wiki.segments/settings/wiki.segment.rsc +3 -3
  538. package/.next/server/app/settings/wiki.segments/settings.segment.rsc +4 -4
  539. package/.next/server/app/settings.html +1 -1
  540. package/.next/server/app/settings.rsc +19 -18
  541. package/.next/server/app/settings.segments/_full.segment.rsc +19 -18
  542. package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  543. package/.next/server/app/settings.segments/_index.segment.rsc +10 -10
  544. package/.next/server/app/settings.segments/_tree.segment.rsc +3 -2
  545. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  546. package/.next/server/app/settings.segments/settings.segment.rsc +4 -4
  547. package/.next/server/app/setup/page/next-font-manifest.json +4 -2
  548. package/.next/server/app/setup/page/react-loadable-manifest.json +1 -1
  549. package/.next/server/app/setup/page.js.nft.json +1 -1
  550. package/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  551. package/.next/server/app/setup.html +1 -1
  552. package/.next/server/app/setup.rsc +18 -17
  553. package/.next/server/app/setup.segments/_full.segment.rsc +18 -17
  554. package/.next/server/app/setup.segments/_head.segment.rsc +4 -4
  555. package/.next/server/app/setup.segments/_index.segment.rsc +10 -10
  556. package/.next/server/app/setup.segments/_tree.segment.rsc +3 -2
  557. package/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +4 -4
  558. package/.next/server/app/setup.segments/setup.segment.rsc +3 -3
  559. package/.next/server/app/trip/page/next-font-manifest.json +4 -2
  560. package/.next/server/app/trip/page/react-loadable-manifest.json +1 -1
  561. package/.next/server/app/trip/page.js.nft.json +1 -1
  562. package/.next/server/app/trip/page_client-reference-manifest.js +1 -1
  563. package/.next/server/app/trip.html +1 -1
  564. package/.next/server/app/trip.rsc +18 -17
  565. package/.next/server/app/trip.segments/_full.segment.rsc +18 -17
  566. package/.next/server/app/trip.segments/_head.segment.rsc +4 -4
  567. package/.next/server/app/trip.segments/_index.segment.rsc +10 -10
  568. package/.next/server/app/trip.segments/_tree.segment.rsc +3 -2
  569. package/.next/server/app/trip.segments/trip/__PAGE__.segment.rsc +4 -4
  570. package/.next/server/app/trip.segments/trip.segment.rsc +3 -3
  571. package/.next/server/app/wiki/page/next-font-manifest.json +4 -2
  572. package/.next/server/app/wiki/page/react-loadable-manifest.json +1 -1
  573. package/.next/server/app/wiki/page.js.nft.json +1 -1
  574. package/.next/server/app/wiki/page_client-reference-manifest.js +1 -1
  575. package/.next/server/app/wiki/timeline/page/next-font-manifest.json +4 -2
  576. package/.next/server/app/wiki/timeline/page/react-loadable-manifest.json +1 -1
  577. package/.next/server/app/wiki/timeline/page.js.nft.json +1 -1
  578. package/.next/server/app/wiki/timeline/page_client-reference-manifest.js +1 -1
  579. package/.next/server/app/wiki/timeline.html +1 -1
  580. package/.next/server/app/wiki/timeline.rsc +18 -17
  581. package/.next/server/app/wiki/timeline.segments/_full.segment.rsc +18 -17
  582. package/.next/server/app/wiki/timeline.segments/_head.segment.rsc +4 -4
  583. package/.next/server/app/wiki/timeline.segments/_index.segment.rsc +10 -10
  584. package/.next/server/app/wiki/timeline.segments/_tree.segment.rsc +3 -2
  585. package/.next/server/app/wiki/timeline.segments/wiki/timeline/__PAGE__.segment.rsc +4 -4
  586. package/.next/server/app/wiki/timeline.segments/wiki/timeline.segment.rsc +3 -3
  587. package/.next/server/app/wiki/timeline.segments/wiki.segment.rsc +3 -3
  588. package/.next/server/app/wiki.html +1 -1
  589. package/.next/server/app/wiki.rsc +18 -17
  590. package/.next/server/app/wiki.segments/_full.segment.rsc +18 -17
  591. package/.next/server/app/wiki.segments/_head.segment.rsc +4 -4
  592. package/.next/server/app/wiki.segments/_index.segment.rsc +10 -10
  593. package/.next/server/app/wiki.segments/_tree.segment.rsc +3 -2
  594. package/.next/server/app/wiki.segments/wiki/__PAGE__.segment.rsc +4 -4
  595. package/.next/server/app/wiki.segments/wiki.segment.rsc +3 -3
  596. package/.next/server/app-paths-manifest.json +6 -9
  597. package/.next/server/chunks/0z~i_next_dist_esm_build_templates_app-route_0o_o_hp.js +1 -1
  598. package/.next/server/chunks/[root-of-the-server]__02gp4s0._.js +1 -1
  599. package/.next/server/chunks/[root-of-the-server]__0gckkni._.js +1 -1
  600. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_connections_notes_page_actions_04zn1-i.js +3 -0
  601. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_danger-zone_page_actions_0mp3gc-.js +3 -0
  602. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_safety_page_actions_05rsfax.js +3 -0
  603. package/.next/server/chunks/ssr/0juq_dashboard_src_app_settings_integrations_browser-history_page_tsx_0.30t~j._.js +1 -1
  604. package/.next/server/chunks/ssr/0x9-__next-internal_server_app_settings_infrastructure_page_actions_0u8fwic.js +3 -0
  605. package/.next/server/chunks/ssr/0x9-_src_app_settings_integrations_browser-history-managed_b4_page_tsx_03zkdyv._.js +1 -1
  606. package/.next/server/chunks/ssr/0x9-_src_app_settings_integrations_browser-history-managed_page_tsx_0q.v5ph._.js +1 -1
  607. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0-xf3nq.js +1 -1
  608. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_05t.o5v.js +4 -0
  609. package/.next/server/chunks/ssr/{0z~i_next_dist_esm_build_templates_app-page_0rzk_wb.js → 0z~i_next_dist_esm_build_templates_app-page_07tjgqy.js} +3 -3
  610. package/.next/server/chunks/ssr/{0z~i_next_dist_esm_build_templates_app-page_0dgjd77.js → 0z~i_next_dist_esm_build_templates_app-page_08-8pml.js} +3 -3
  611. package/.next/server/chunks/ssr/{0z~i_next_dist_esm_build_templates_app-page_0~l1-oo.js → 0z~i_next_dist_esm_build_templates_app-page_0_hw.~x.js} +3 -3
  612. package/.next/server/chunks/ssr/{0z~i_next_dist_esm_build_templates_app-page_0i5nfg6.js → 0z~i_next_dist_esm_build_templates_app-page_0gja0sp.js} +3 -3
  613. package/.next/server/chunks/ssr/{0z~i_next_dist_esm_build_templates_app-page_0i3pbzc.js → 0z~i_next_dist_esm_build_templates_app-page_0xk7dvj.js} +3 -3
  614. package/.next/server/chunks/ssr/{[root-of-the-server]__0.oq_nd._.js → [root-of-the-server]__064iw-m._.js} +2 -2
  615. package/.next/server/chunks/ssr/[root-of-the-server]__0bcu47h._.js +3 -0
  616. package/.next/server/chunks/ssr/{[root-of-the-server]__0hxae6t._.js → [root-of-the-server]__0dz8grn._.js} +2 -2
  617. package/.next/server/chunks/ssr/[root-of-the-server]__0e3togs._.js +1 -1
  618. package/.next/server/chunks/ssr/[root-of-the-server]__0own5qk._.js +7 -0
  619. package/.next/server/chunks/ssr/{[root-of-the-server]__0k4~6v4._.js → [root-of-the-server]__0p.rqkz._.js} +2 -2
  620. package/.next/server/chunks/ssr/[root-of-the-server]__0twuzim._.js +1 -1
  621. package/.next/server/chunks/ssr/[root-of-the-server]__0v.2-w_._.js +9 -0
  622. package/.next/server/chunks/ssr/{[root-of-the-server]__0ku1mlh._.js → [root-of-the-server]__0x90fri._.js} +2 -2
  623. package/.next/server/chunks/ssr/{[root-of-the-server]__138v34b._.js → [root-of-the-server]__12ocbb6._.js} +2 -2
  624. package/.next/server/chunks/ssr/_0-fa0e6._.js +3 -0
  625. package/.next/server/chunks/ssr/_0-fv_sr._.js +1 -1
  626. package/.next/server/chunks/ssr/_0.83~vc._.js +3 -0
  627. package/.next/server/chunks/ssr/_0.buz~z._.js +3 -0
  628. package/.next/server/chunks/ssr/_00m~lu3._.js +3 -0
  629. package/.next/server/chunks/ssr/_00yd82b._.js +3 -0
  630. package/.next/server/chunks/ssr/_01u8_20._.js +1 -1
  631. package/.next/server/chunks/ssr/_02-~4_x._.js +3 -0
  632. package/.next/server/chunks/ssr/_03ylkmo._.js +1 -1
  633. package/.next/server/chunks/ssr/_042qll3._.js +3 -0
  634. package/.next/server/chunks/ssr/_05-nasq._.js +3 -0
  635. package/.next/server/chunks/ssr/_052c-d8._.js +1 -1
  636. package/.next/server/chunks/ssr/_05etcnw._.js +3 -0
  637. package/.next/server/chunks/ssr/_06pfh8i._.js +3 -0
  638. package/.next/server/chunks/ssr/_07y8~wo._.js +3 -0
  639. package/.next/server/chunks/ssr/_0837jo1._.js +1 -1
  640. package/.next/server/chunks/ssr/_095g5nv._.js +3 -0
  641. package/.next/server/chunks/ssr/_0_59iz5._.js +3 -0
  642. package/.next/server/chunks/ssr/_0_mohhy._.js +3 -0
  643. package/.next/server/chunks/ssr/_0_qa7ix._.js +3 -0
  644. package/.next/server/chunks/ssr/_0a0gitj._.js +3 -0
  645. package/.next/server/chunks/ssr/_0bbgll1._.js +3 -0
  646. package/.next/server/chunks/ssr/_0bsns8f._.js +3 -0
  647. package/.next/server/chunks/ssr/_0cus~q3._.js +3 -0
  648. package/.next/server/chunks/ssr/_0cwcz17._.js +1 -1
  649. package/.next/server/chunks/ssr/_0do3r93._.js +3 -0
  650. package/.next/server/chunks/ssr/_0eoqkp.._.js +3 -0
  651. package/.next/server/chunks/ssr/_0fse1qi._.js +3 -0
  652. package/.next/server/chunks/ssr/_0g7_r5i._.js +1 -1
  653. package/.next/server/chunks/ssr/_0h-mq6i._.js +3 -0
  654. package/.next/server/chunks/ssr/_0h7l~qt._.js +3 -0
  655. package/.next/server/chunks/ssr/_0hojxqy._.js +1 -1
  656. package/.next/server/chunks/ssr/_0jlpcde._.js +3 -0
  657. package/.next/server/chunks/ssr/_0kn1u4v._.js +3 -0
  658. package/.next/server/chunks/ssr/_0l7uzol._.js +3 -0
  659. package/.next/server/chunks/ssr/_0m~vcd.._.js +3 -0
  660. package/.next/server/chunks/ssr/_0n2_n8d._.js +3 -0
  661. package/.next/server/chunks/ssr/_0p4ugyq._.js +3 -0
  662. package/.next/server/chunks/ssr/_0pbcc~c._.js +3 -0
  663. package/.next/server/chunks/ssr/_0q6ga5s._.js +3 -0
  664. package/.next/server/chunks/ssr/_0rcvmzk._.js +3 -0
  665. package/.next/server/chunks/ssr/_0tl98en._.js +1 -1
  666. package/.next/server/chunks/ssr/_0vtof91._.js +3 -0
  667. package/.next/server/chunks/ssr/_0wj-xi-._.js +1 -1
  668. package/.next/server/chunks/ssr/_0y-w3is._.js +1 -1
  669. package/.next/server/chunks/ssr/_0ys19k1._.js +3 -0
  670. package/.next/server/chunks/ssr/_0zegd8c._.js +3 -0
  671. package/.next/server/chunks/ssr/_0zskdhg._.js +3 -0
  672. package/.next/server/chunks/ssr/_0~5jogr._.js +3 -0
  673. package/.next/server/chunks/ssr/_10t~mm1._.js +5 -0
  674. package/.next/server/chunks/ssr/_12yrbbd._.js +3 -0
  675. package/.next/server/chunks/ssr/_12~voz0._.js +3 -0
  676. package/.next/server/chunks/ssr/_13x8vt3._.js +3 -0
  677. package/.next/server/chunks/ssr/node_modules__pnpm_0hiwu9~._.js +3 -0
  678. package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_browser_page_actions_09ozuw5.js +3 -0
  679. package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_settings_hours_page_actions_090o.uf.js +3 -0
  680. package/.next/server/chunks/ssr/packages_dashboard_src_08ni3k2._.js +1 -1
  681. package/.next/server/chunks/ssr/packages_dashboard_src_0dzu4m3._.js +1 -1
  682. package/.next/server/chunks/ssr/packages_dashboard_src_0l-df62._.js +1 -1
  683. package/.next/server/chunks/ssr/packages_dashboard_src_0somi_b._.js +3 -0
  684. package/.next/server/chunks/ssr/packages_dashboard_src_0uxs9-.._.js +1 -1
  685. package/.next/server/chunks/ssr/packages_dashboard_src_0wg3sud._.js +1 -1
  686. package/.next/server/chunks/ssr/packages_dashboard_src_0yi7124._.js +3 -0
  687. package/.next/server/chunks/ssr/packages_dashboard_src_0zhdaa4._.js +1 -1
  688. package/.next/server/chunks/ssr/packages_dashboard_src_13g~g03._.js +1 -1
  689. package/.next/server/chunks/ssr/packages_dashboard_src_app_activity_loading_tsx_0rzsqef._.js +1 -1
  690. package/.next/server/chunks/ssr/packages_dashboard_src_app_activity_page_tsx_08yep46._.js +1 -1
  691. package/.next/server/chunks/ssr/packages_dashboard_src_app_agents_[slug]_page_tsx_038yph.._.js +1 -1
  692. package/.next/server/chunks/ssr/packages_dashboard_src_app_agents_page_tsx_0simg3k._.js +2 -2
  693. package/.next/server/chunks/ssr/packages_dashboard_src_app_analytics_page_tsx_0tb_amd._.js +1 -1
  694. package/.next/server/chunks/ssr/packages_dashboard_src_app_browser-tasks_[id]_page_tsx_0.80q8e._.js +1 -1
  695. package/.next/server/chunks/ssr/packages_dashboard_src_app_chat_page_tsx_0i0_8pw._.js +1 -1
  696. package/.next/server/chunks/ssr/packages_dashboard_src_app_connections_mcp_page_tsx_0lc.low._.js +2 -2
  697. package/.next/server/chunks/ssr/packages_dashboard_src_app_connections_repositories_page_tsx_08y6paq._.js +1 -1
  698. package/.next/server/chunks/ssr/packages_dashboard_src_app_git_page_tsx_0ah19-6._.js +1 -1
  699. package/.next/server/chunks/ssr/packages_dashboard_src_app_knowledge_page_tsx_0uf4..4._.js +1 -1
  700. package/.next/server/chunks/ssr/packages_dashboard_src_app_page_tsx_0.p6n1a._.js +1 -1
  701. package/.next/server/chunks/ssr/packages_dashboard_src_app_schedule_page_tsx_0znc404._.js +1 -1
  702. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_commands_page_tsx_0nacqrh._.js +1 -1
  703. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_hours_page_tsx_0shgzxo._.js +3 -0
  704. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_infrastructure_page_tsx_0c9oi1c._.js +3 -0
  705. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_management_page_tsx_09mnin5._.js +1 -1
  706. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_models_page_tsx_0djsx88._.js +1 -1
  707. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_page_tsx_13_rdav._.js +1 -1
  708. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_self-learning_page_tsx_0noj6fo._.js +1 -1
  709. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_wiki_page_tsx_0..1tkb._.js +1 -1
  710. package/.next/server/chunks/ssr/packages_dashboard_src_app_setup_page_tsx_06k3via._.js +1 -1
  711. package/.next/server/chunks/ssr/packages_dashboard_src_components_0c08h~y._.js +3 -0
  712. package/.next/server/chunks/ssr/packages_dashboard_src_components_agents_AgentEditor_tsx_1379k-6._.js +2 -2
  713. package/.next/server/chunks/ssr/packages_dashboard_src_components_connections_integration-card_tsx_0yh1a-~._.js +2 -2
  714. package/.next/server/chunks/ssr/packages_dashboard_src_components_connections_slack-card_tsx_0mahejj._.js +1 -1
  715. package/.next/server/chunks/ssr/packages_dashboard_src_components_logs_event-row_tsx_0gwfgqo._.js +3 -0
  716. package/.next/server/chunks/ssr/packages_dashboard_src_components_mail_gmail-card_tsx_0kpway8._.js +1 -1
  717. package/.next/server/chunks/ssr/packages_shared_dist_index_0kuvow-.js +1 -1
  718. package/.next/server/edge/chunks/[root-of-the-server]__0iap10r._.js +1 -1
  719. package/.next/server/middleware/middleware-manifest.json +29 -5
  720. package/.next/server/middleware-build-manifest.js +3 -3
  721. package/.next/server/middleware-manifest.json +29 -5
  722. package/.next/server/next-font-manifest.js +1 -1
  723. package/.next/server/next-font-manifest.json +51 -2
  724. package/.next/server/pages/404.html +1 -1
  725. package/.next/server/pages/500.html +1 -1
  726. package/.next/server/server-reference-manifest.js +1 -1
  727. package/.next/server/server-reference-manifest.json +1 -1
  728. package/.next/static/{i_QR0WWkZFeICcOMbfuUs → 4Wu33OvzutxPxXUu1PWPC}/_clientMiddlewareManifest.js +24 -0
  729. package/.next/static/chunks/0-sq9td.e1huw.js +1 -0
  730. package/.next/static/chunks/0-~s5n1hsw0xz.css +1 -0
  731. package/.next/static/chunks/0.1mo3ft90qg_.js +1 -0
  732. package/.next/static/chunks/0.eu.rxoo07x6.js +1 -0
  733. package/.next/static/chunks/0147tjztlthxv.js +1 -0
  734. package/.next/static/chunks/01~5c-.ttg~hv.js +1 -0
  735. package/.next/static/chunks/02jrxwgg0c4jp.js +1 -0
  736. package/.next/static/chunks/02tb-nh0a2y6t.js +1 -0
  737. package/.next/static/chunks/03ndokpk6o0.5.js +1 -0
  738. package/.next/static/chunks/03qz~hx5zgr~d.js +1 -0
  739. package/.next/static/chunks/042u~0qpgty0o.js +10 -0
  740. package/.next/static/chunks/050-z9-4lo_4l.js +1 -0
  741. package/.next/static/chunks/051m0t~qz1jvu.js +1 -0
  742. package/.next/static/chunks/0755mii5h~0jr.js +1 -0
  743. package/.next/static/chunks/07_-k85izz7.j.js +1 -0
  744. package/.next/static/chunks/07qdiaq4h1bev.js +1 -0
  745. package/.next/static/chunks/07w_f8nwejvtm.js +1 -0
  746. package/.next/static/chunks/087m534nojkn2.js +1 -0
  747. package/.next/static/chunks/08tuvmjn9p090.js +1 -0
  748. package/.next/static/chunks/09k746-3cizz1.js +19 -0
  749. package/.next/static/chunks/09sekcnc01we8.js +1 -0
  750. package/.next/static/chunks/0_-a6t77lnxg4.js +1 -0
  751. package/.next/static/chunks/0_b4esx30vjxq.js +1 -0
  752. package/.next/static/chunks/0_r~att41ue.r.js +1 -0
  753. package/.next/static/chunks/0cj6iorqj7he_.js +1 -0
  754. package/.next/static/chunks/0c~_onh_gv7zj.js +1 -0
  755. package/.next/static/chunks/0d13hqow~d37h.js +1 -0
  756. package/.next/static/chunks/0drk956_8nbwg.js +1 -0
  757. package/.next/static/chunks/0e-txs97b3.x9.js +1 -0
  758. package/.next/static/chunks/0ezl44_wv~csn.js +1 -0
  759. package/.next/static/chunks/0g-eqp3qwkojl.js +1 -0
  760. package/.next/static/chunks/0h5rf~pu59~hu.js +1 -0
  761. package/.next/static/chunks/0i8.oj~1w~u~..js +1 -0
  762. package/.next/static/chunks/0iichp621kqto.js +1 -0
  763. package/.next/static/chunks/{0afrwc5vvwfx4.js → 0iscxmienbk2m.js} +1 -1
  764. package/.next/static/chunks/0iv9k-z7~xtww.js +1 -0
  765. package/.next/static/chunks/0k6jf41ge3u~8.js +1 -0
  766. package/.next/static/chunks/0k9-e5pear~t4.js +3 -0
  767. package/.next/static/chunks/0kib-9vm23r0j.js +1 -0
  768. package/.next/static/chunks/0kj.5xdofdrz7.js +1 -0
  769. package/.next/static/chunks/0lbnukk03a8nv.js +1 -0
  770. package/.next/static/chunks/0m8e4hy-r8y-4.js +1 -0
  771. package/.next/static/chunks/{02k085x_j4_bz.js → 0mkryl3ctt_xh.js} +1 -1
  772. package/.next/static/chunks/0mxp..4l7j1dn.js +1 -0
  773. package/.next/static/chunks/0o61x2xdye~o2.js +1 -0
  774. package/.next/static/chunks/0os-c6-aqwq4d.js +1 -0
  775. package/.next/static/chunks/0pxjn_pm269cw.js +1 -0
  776. package/.next/static/chunks/0qyxjj5z_is.d.js +1 -0
  777. package/.next/static/chunks/0s.cyrhyscm8x.js +1 -0
  778. package/.next/static/chunks/0wvyy~m_e1q5c.js +3 -0
  779. package/.next/static/chunks/0x96~upcinv2_.js +1 -0
  780. package/.next/static/chunks/0zo_ws6shrfnh.js +1 -0
  781. package/.next/static/chunks/0~kj3qxs7kx58.js +1 -0
  782. package/.next/static/chunks/10rtk-h9y-705.js +2 -0
  783. package/.next/static/chunks/115_4xjsk0jzh.js +1 -0
  784. package/.next/static/chunks/12zmqqk8p-b.~.js +1 -0
  785. package/.next/static/chunks/135nkfxk7so9p.js +1 -0
  786. package/.next/static/chunks/153z3m3.a2ubk.js +5 -0
  787. package/.next/static/chunks/15fpord4hyosp.js +1 -0
  788. package/.next/static/chunks/15~h2wegwdbf4.js +1 -0
  789. package/.next/static/chunks/16-i4p1ipmpts.js +1 -0
  790. package/.next/static/chunks/171j55n_9gyxb.js +1 -0
  791. package/.next/static/chunks/17c6~kld51ls5.js +11 -0
  792. package/.next/static/chunks/17tv5jbg2hiup.js +1 -0
  793. package/.next/static/chunks/187a-majiuj8r.js +1 -0
  794. package/.next/static/media/fraunces-latin-ext-wght-normal.08-a-oz-atsnn.woff2 +0 -0
  795. package/.next/static/media/fraunces-latin-wght-normal.0l9v6sgnyeoq8.woff2 +0 -0
  796. package/.next/static/media/fraunces-vietnamese-wght-normal.05ntv1..6v~z7.woff2 +0 -0
  797. package/.next/static/media/instrument-sans-latin-ext-wght-normal.0td0--1m0lec9.woff2 +0 -0
  798. package/.next/static/media/instrument-sans-latin-wght-normal.10bj0-z630vnn.woff2 +0 -0
  799. package/.next/types/routes.d.ts +7 -10
  800. package/.next/types/validator.ts +33 -60
  801. package/package.json +4 -2
  802. package/.next/server/app/connections/knowledge/page/app-paths-manifest.json +0 -3
  803. package/.next/server/app/connections/knowledge/page/next-font-manifest.json +0 -6
  804. package/.next/server/app/connections/knowledge/page.js.nft.json +0 -1
  805. package/.next/server/app/connections/knowledge/page_client-reference-manifest.js +0 -3
  806. package/.next/server/app/connections/knowledge.html +0 -1
  807. package/.next/server/app/connections/knowledge.rsc +0 -27
  808. package/.next/server/app/connections/knowledge.segments/_full.segment.rsc +0 -27
  809. package/.next/server/app/connections/knowledge.segments/_head.segment.rsc +0 -6
  810. package/.next/server/app/connections/knowledge.segments/_index.segment.rsc +0 -11
  811. package/.next/server/app/connections/knowledge.segments/_tree.segment.rsc +0 -2
  812. package/.next/server/app/connections/knowledge.segments/connections/knowledge/__PAGE__.segment.rsc +0 -9
  813. package/.next/server/app/connections/knowledge.segments/connections/knowledge.segment.rsc +0 -5
  814. package/.next/server/app/connections/knowledge.segments/connections.segment.rsc +0 -5
  815. package/.next/server/app/settings/advanced/page/app-paths-manifest.json +0 -3
  816. package/.next/server/app/settings/advanced/page/next-font-manifest.json +0 -6
  817. package/.next/server/app/settings/advanced/page.js.nft.json +0 -1
  818. package/.next/server/app/settings/advanced/page_client-reference-manifest.js +0 -3
  819. package/.next/server/app/settings/advanced.html +0 -1
  820. package/.next/server/app/settings/advanced.rsc +0 -27
  821. package/.next/server/app/settings/advanced.segments/_full.segment.rsc +0 -27
  822. package/.next/server/app/settings/advanced.segments/_head.segment.rsc +0 -6
  823. package/.next/server/app/settings/advanced.segments/_index.segment.rsc +0 -11
  824. package/.next/server/app/settings/advanced.segments/_tree.segment.rsc +0 -2
  825. package/.next/server/app/settings/advanced.segments/settings/advanced/__PAGE__.segment.rsc +0 -9
  826. package/.next/server/app/settings/advanced.segments/settings/advanced.segment.rsc +0 -5
  827. package/.next/server/app/settings/advanced.segments/settings.segment.rsc +0 -5
  828. package/.next/server/app/settings/backends/page/app-paths-manifest.json +0 -3
  829. package/.next/server/app/settings/backends/page/next-font-manifest.json +0 -6
  830. package/.next/server/app/settings/backends/page.js +0 -17
  831. package/.next/server/app/settings/backends/page_client-reference-manifest.js +0 -3
  832. package/.next/server/app/settings/backends.html +0 -1
  833. package/.next/server/app/settings/backends.rsc +0 -24
  834. package/.next/server/app/settings/backends.segments/_full.segment.rsc +0 -24
  835. package/.next/server/app/settings/backends.segments/_head.segment.rsc +0 -6
  836. package/.next/server/app/settings/backends.segments/_index.segment.rsc +0 -11
  837. package/.next/server/app/settings/backends.segments/_tree.segment.rsc +0 -2
  838. package/.next/server/app/settings/backends.segments/settings/backends/__PAGE__.segment.rsc +0 -6
  839. package/.next/server/app/settings/backends.segments/settings/backends.segment.rsc +0 -5
  840. package/.next/server/app/settings/backends.segments/settings.segment.rsc +0 -5
  841. package/.next/server/app/settings/connections/page/app-paths-manifest.json +0 -3
  842. package/.next/server/app/settings/connections/page/next-font-manifest.json +0 -6
  843. package/.next/server/app/settings/connections/page.js +0 -17
  844. package/.next/server/app/settings/connections/page_client-reference-manifest.js +0 -3
  845. package/.next/server/app/settings/connections.html +0 -1
  846. package/.next/server/app/settings/connections.rsc +0 -24
  847. package/.next/server/app/settings/connections.segments/_full.segment.rsc +0 -24
  848. package/.next/server/app/settings/connections.segments/_head.segment.rsc +0 -6
  849. package/.next/server/app/settings/connections.segments/_index.segment.rsc +0 -11
  850. package/.next/server/app/settings/connections.segments/_tree.segment.rsc +0 -2
  851. package/.next/server/app/settings/connections.segments/settings/connections/__PAGE__.segment.rsc +0 -6
  852. package/.next/server/app/settings/connections.segments/settings/connections.segment.rsc +0 -5
  853. package/.next/server/app/settings/connections.segments/settings.segment.rsc +0 -5
  854. package/.next/server/app/settings/journal/page/app-paths-manifest.json +0 -3
  855. package/.next/server/app/settings/journal/page/next-font-manifest.json +0 -6
  856. package/.next/server/app/settings/journal/page/react-loadable-manifest.json +0 -8
  857. package/.next/server/app/settings/journal/page_client-reference-manifest.js +0 -3
  858. package/.next/server/app/settings/journal.html +0 -1
  859. package/.next/server/app/settings/journal.rsc +0 -27
  860. package/.next/server/app/settings/journal.segments/_full.segment.rsc +0 -27
  861. package/.next/server/app/settings/journal.segments/_head.segment.rsc +0 -6
  862. package/.next/server/app/settings/journal.segments/_index.segment.rsc +0 -11
  863. package/.next/server/app/settings/journal.segments/_tree.segment.rsc +0 -2
  864. package/.next/server/app/settings/journal.segments/settings/journal/__PAGE__.segment.rsc +0 -9
  865. package/.next/server/app/settings/journal.segments/settings/journal.segment.rsc +0 -5
  866. package/.next/server/app/settings/journal.segments/settings.segment.rsc +0 -5
  867. package/.next/server/app/settings/messaging/page/app-paths-manifest.json +0 -3
  868. package/.next/server/app/settings/messaging/page/next-font-manifest.json +0 -6
  869. package/.next/server/app/settings/messaging/page/react-loadable-manifest.json +0 -8
  870. package/.next/server/app/settings/messaging/page.js +0 -17
  871. package/.next/server/app/settings/messaging/page.js.nft.json +0 -1
  872. package/.next/server/app/settings/messaging/page_client-reference-manifest.js +0 -3
  873. package/.next/server/app/settings/messaging.html +0 -1
  874. package/.next/server/app/settings/messaging.meta +0 -16
  875. package/.next/server/app/settings/messaging.rsc +0 -24
  876. package/.next/server/app/settings/messaging.segments/_full.segment.rsc +0 -24
  877. package/.next/server/app/settings/messaging.segments/_head.segment.rsc +0 -6
  878. package/.next/server/app/settings/messaging.segments/_index.segment.rsc +0 -11
  879. package/.next/server/app/settings/messaging.segments/_tree.segment.rsc +0 -2
  880. package/.next/server/app/settings/messaging.segments/settings/messaging/__PAGE__.segment.rsc +0 -6
  881. package/.next/server/app/settings/messaging.segments/settings/messaging.segment.rsc +0 -5
  882. package/.next/server/app/settings/messaging.segments/settings.segment.rsc +0 -5
  883. package/.next/server/app/settings/processes/page/app-paths-manifest.json +0 -3
  884. package/.next/server/app/settings/processes/page/build-manifest.json +0 -18
  885. package/.next/server/app/settings/processes/page/next-font-manifest.json +0 -6
  886. package/.next/server/app/settings/processes/page/react-loadable-manifest.json +0 -8
  887. package/.next/server/app/settings/processes/page/server-reference-manifest.json +0 -4
  888. package/.next/server/app/settings/processes/page.js +0 -17
  889. package/.next/server/app/settings/processes/page_client-reference-manifest.js +0 -3
  890. package/.next/server/app/settings/processes.html +0 -1
  891. package/.next/server/app/settings/processes.meta +0 -16
  892. package/.next/server/app/settings/processes.rsc +0 -24
  893. package/.next/server/app/settings/processes.segments/_full.segment.rsc +0 -24
  894. package/.next/server/app/settings/processes.segments/_head.segment.rsc +0 -6
  895. package/.next/server/app/settings/processes.segments/_index.segment.rsc +0 -11
  896. package/.next/server/app/settings/processes.segments/_tree.segment.rsc +0 -2
  897. package/.next/server/app/settings/processes.segments/settings/processes/__PAGE__.segment.rsc +0 -6
  898. package/.next/server/app/settings/processes.segments/settings/processes.segment.rsc +0 -5
  899. package/.next/server/app/settings/processes.segments/settings.segment.rsc +0 -5
  900. package/.next/server/app/settings/routines/page/app-paths-manifest.json +0 -3
  901. package/.next/server/app/settings/routines/page/build-manifest.json +0 -18
  902. package/.next/server/app/settings/routines/page/next-font-manifest.json +0 -6
  903. package/.next/server/app/settings/routines/page/react-loadable-manifest.json +0 -8
  904. package/.next/server/app/settings/routines/page/server-reference-manifest.json +0 -4
  905. package/.next/server/app/settings/routines/page.js.nft.json +0 -1
  906. package/.next/server/app/settings/routines/page_client-reference-manifest.js +0 -3
  907. package/.next/server/app/settings/routines.html +0 -1
  908. package/.next/server/app/settings/routines.meta +0 -16
  909. package/.next/server/app/settings/routines.rsc +0 -27
  910. package/.next/server/app/settings/routines.segments/_full.segment.rsc +0 -27
  911. package/.next/server/app/settings/routines.segments/_head.segment.rsc +0 -6
  912. package/.next/server/app/settings/routines.segments/_index.segment.rsc +0 -11
  913. package/.next/server/app/settings/routines.segments/_tree.segment.rsc +0 -2
  914. package/.next/server/app/settings/routines.segments/settings/routines/__PAGE__.segment.rsc +0 -9
  915. package/.next/server/app/settings/routines.segments/settings/routines.segment.rsc +0 -5
  916. package/.next/server/app/settings/routines.segments/settings.segment.rsc +0 -5
  917. package/.next/server/app/settings/schedule/page/app-paths-manifest.json +0 -3
  918. package/.next/server/app/settings/schedule/page/build-manifest.json +0 -18
  919. package/.next/server/app/settings/schedule/page/next-font-manifest.json +0 -6
  920. package/.next/server/app/settings/schedule/page/react-loadable-manifest.json +0 -8
  921. package/.next/server/app/settings/schedule/page/server-reference-manifest.json +0 -4
  922. package/.next/server/app/settings/schedule/page_client-reference-manifest.js +0 -3
  923. package/.next/server/app/settings/schedule.html +0 -1
  924. package/.next/server/app/settings/schedule.meta +0 -16
  925. package/.next/server/app/settings/schedule.rsc +0 -27
  926. package/.next/server/app/settings/schedule.segments/_full.segment.rsc +0 -27
  927. package/.next/server/app/settings/schedule.segments/_head.segment.rsc +0 -6
  928. package/.next/server/app/settings/schedule.segments/_index.segment.rsc +0 -11
  929. package/.next/server/app/settings/schedule.segments/_tree.segment.rsc +0 -2
  930. package/.next/server/app/settings/schedule.segments/settings/schedule/__PAGE__.segment.rsc +0 -9
  931. package/.next/server/app/settings/schedule.segments/settings/schedule.segment.rsc +0 -5
  932. package/.next/server/app/settings/schedule.segments/settings.segment.rsc +0 -5
  933. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_connections_knowledge_page_actions_06w7ski.js +0 -3
  934. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_advanced_page_actions_0x06bjx.js +0 -3
  935. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_backends_page_actions_0z3vipu.js +0 -3
  936. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_connections_page_actions_0n0b1rb.js +0 -3
  937. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_journal_page_actions_0_.h.-y.js +0 -3
  938. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_messaging_page_actions_0czehcp.js +0 -3
  939. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_processes_page_actions_0zbumx3.js +0 -3
  940. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_routines_page_actions_0-37ia4.js +0 -3
  941. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_schedule_page_actions_045j4zv.js +0 -3
  942. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0s6jb_7.js +0 -4
  943. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0wu80v6.js +0 -4
  944. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0~yic40.js +0 -4
  945. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_113c8xj.js +0 -4
  946. package/.next/server/chunks/ssr/[root-of-the-server]__00ch_ms._.js +0 -3
  947. package/.next/server/chunks/ssr/[root-of-the-server]__00s5z4o._.js +0 -3
  948. package/.next/server/chunks/ssr/[root-of-the-server]__03yuq_v._.js +0 -7
  949. package/.next/server/chunks/ssr/[root-of-the-server]__0kcivrd._.js +0 -3
  950. package/.next/server/chunks/ssr/[root-of-the-server]__0kvyeu1._.js +0 -3
  951. package/.next/server/chunks/ssr/[root-of-the-server]__0t-9jvt._.js +0 -3
  952. package/.next/server/chunks/ssr/_0-3uzu1._.js +0 -3
  953. package/.next/server/chunks/ssr/_0.yhrky._.js +0 -3
  954. package/.next/server/chunks/ssr/_0.zct4p._.js +0 -3
  955. package/.next/server/chunks/ssr/_00_--i0._.js +0 -3
  956. package/.next/server/chunks/ssr/_00ej8j9._.js +0 -3
  957. package/.next/server/chunks/ssr/_03bq.de._.js +0 -3
  958. package/.next/server/chunks/ssr/_04jkn8c._.js +0 -3
  959. package/.next/server/chunks/ssr/_04kt9.8._.js +0 -3
  960. package/.next/server/chunks/ssr/_05jfize._.js +0 -3
  961. package/.next/server/chunks/ssr/_06_m-vp._.js +0 -3
  962. package/.next/server/chunks/ssr/_09-o1vq._.js +0 -3
  963. package/.next/server/chunks/ssr/_095u19_._.js +0 -3
  964. package/.next/server/chunks/ssr/_0_qwmiz._.js +0 -3
  965. package/.next/server/chunks/ssr/_0bzj8lx._.js +0 -3
  966. package/.next/server/chunks/ssr/_0cccma-._.js +0 -3
  967. package/.next/server/chunks/ssr/_0da0k2u._.js +0 -3
  968. package/.next/server/chunks/ssr/_0evcd7w._.js +0 -3
  969. package/.next/server/chunks/ssr/_0e~4oah._.js +0 -3
  970. package/.next/server/chunks/ssr/_0ibeuw6._.js +0 -3
  971. package/.next/server/chunks/ssr/_0ixicrb._.js +0 -3
  972. package/.next/server/chunks/ssr/_0jg6hy0._.js +0 -3
  973. package/.next/server/chunks/ssr/_0jrxrig._.js +0 -3
  974. package/.next/server/chunks/ssr/_0mbbas-._.js +0 -3
  975. package/.next/server/chunks/ssr/_0n5nlcq._.js +0 -3
  976. package/.next/server/chunks/ssr/_0nvpv18._.js +0 -3
  977. package/.next/server/chunks/ssr/_0o~hk.m._.js +0 -3
  978. package/.next/server/chunks/ssr/_0pdbiu.._.js +0 -9
  979. package/.next/server/chunks/ssr/_0pg6_56._.js +0 -3
  980. package/.next/server/chunks/ssr/_0q8o~q1._.js +0 -3
  981. package/.next/server/chunks/ssr/_0r1lb0f._.js +0 -3
  982. package/.next/server/chunks/ssr/_0r25vcp._.js +0 -3
  983. package/.next/server/chunks/ssr/_0r9.4nv._.js +0 -3
  984. package/.next/server/chunks/ssr/_0tf7hjz._.js +0 -3
  985. package/.next/server/chunks/ssr/_0xmdrbq._.js +0 -3
  986. package/.next/server/chunks/ssr/_0zz58.-._.js +0 -5
  987. package/.next/server/chunks/ssr/_0~62r4-._.js +0 -3
  988. package/.next/server/chunks/ssr/_0~fi8o-._.js +0 -3
  989. package/.next/server/chunks/ssr/_10s6iy.._.js +0 -3
  990. package/.next/server/chunks/ssr/_11pdc0s._.js +0 -3
  991. package/.next/server/chunks/ssr/_12u1eq4._.js +0 -3
  992. package/.next/server/chunks/ssr/_12~0n.1._.js +0 -3
  993. package/.next/server/chunks/ssr/_139rl~~._.js +0 -3
  994. package/.next/server/chunks/ssr/node_modules__pnpm_0ehnn5t._.js +0 -3
  995. package/.next/server/chunks/ssr/packages_dashboard_src_0ylj~og._.js +0 -3
  996. package/.next/server/chunks/ssr/packages_dashboard_src_0z~3g5n._.js +0 -3
  997. package/.next/server/chunks/ssr/packages_dashboard_src_app_connections_knowledge_page_tsx_027jwd3._.js +0 -3
  998. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_advanced_page_tsx_0o~_885._.js +0 -3
  999. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_routines_page_tsx_0wcgtqz._.js +0 -27
  1000. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_schedule_page_tsx_0b8zr2l._.js +0 -3
  1001. package/.next/static/chunks/0-7buty0ytvtv.js +0 -1
  1002. package/.next/static/chunks/0-dw-4a8vg9m8.js +0 -1
  1003. package/.next/static/chunks/0.42rv-zt_0x9.js +0 -1
  1004. package/.next/static/chunks/0.za~0o8~5n1~.css +0 -1
  1005. package/.next/static/chunks/0.~7m9beb0bmp.js +0 -11
  1006. package/.next/static/chunks/00bnu7r6428v0.js +0 -5
  1007. package/.next/static/chunks/00w3emoohg-8r.js +0 -1
  1008. package/.next/static/chunks/01v7jn283j2tm.js +0 -1
  1009. package/.next/static/chunks/04l41qp5lpt_e.js +0 -1
  1010. package/.next/static/chunks/04ufv2_7i_b6..js +0 -1
  1011. package/.next/static/chunks/053f~_moi~csx.js +0 -2
  1012. package/.next/static/chunks/05xugzf8sfrxt.js +0 -1
  1013. package/.next/static/chunks/05z4egti~pj9t.js +0 -1
  1014. package/.next/static/chunks/073hnld9_qq5g.js +0 -1
  1015. package/.next/static/chunks/08ql4siwtlgpn.js +0 -1
  1016. package/.next/static/chunks/08wmxlql_xq.d.js +0 -1
  1017. package/.next/static/chunks/0e3ds9mkx7.~v.js +0 -1
  1018. package/.next/static/chunks/0eaf903zc7v~5.js +0 -1
  1019. package/.next/static/chunks/0fri59ogcsfbl.js +0 -1
  1020. package/.next/static/chunks/0gj-lf~wlbr8e.js +0 -1
  1021. package/.next/static/chunks/0gurc-kqffso6.js +0 -1
  1022. package/.next/static/chunks/0gyst06ap~-n~.js +0 -19
  1023. package/.next/static/chunks/0g~py-0sje~1m.js +0 -1
  1024. package/.next/static/chunks/0hk8v-849puw8.js +0 -1
  1025. package/.next/static/chunks/0hlvfkk1o66wf.js +0 -1
  1026. package/.next/static/chunks/0hog4tqr3.skm.js +0 -10
  1027. package/.next/static/chunks/0igwe6jdxslbt.js +0 -1
  1028. package/.next/static/chunks/0ikm~jl5uiw6-.js +0 -1
  1029. package/.next/static/chunks/0j15hn~z~i56..js +0 -1
  1030. package/.next/static/chunks/0jffu_yb.90.i.js +0 -1
  1031. package/.next/static/chunks/0mfem_s.3s4r-.js +0 -1
  1032. package/.next/static/chunks/0n3b0fpsgml2x.js +0 -1
  1033. package/.next/static/chunks/0p.w04inifyq..js +0 -1
  1034. package/.next/static/chunks/0qqty6t-yyty4.js +0 -3
  1035. package/.next/static/chunks/0q~dvm61tpf3~.js +0 -1
  1036. package/.next/static/chunks/0rt76ki54i~hm.js +0 -1
  1037. package/.next/static/chunks/0scggusqhhid7.js +0 -1
  1038. package/.next/static/chunks/0t.xvj-t_vtrp.js +0 -25
  1039. package/.next/static/chunks/0t9rda60_m-vk.js +0 -1
  1040. package/.next/static/chunks/0u9qsqnsm-skj.js +0 -1
  1041. package/.next/static/chunks/0urw8_v9f97en.js +0 -1
  1042. package/.next/static/chunks/0vcwfsuf878wc.js +0 -1
  1043. package/.next/static/chunks/0vivqt8njmkpv.js +0 -1
  1044. package/.next/static/chunks/0vktbjh2e4xpg.js +0 -1
  1045. package/.next/static/chunks/0v~gg~hn-8_k2.js +0 -1
  1046. package/.next/static/chunks/0ws8mq3rp~572.js +0 -1
  1047. package/.next/static/chunks/0x..-zi0av524.js +0 -1
  1048. package/.next/static/chunks/0xsb_r_t_1r-u.js +0 -1
  1049. package/.next/static/chunks/0zaa6zhrjsaik.js +0 -1
  1050. package/.next/static/chunks/0zimhqr6r4xlz.js +0 -1
  1051. package/.next/static/chunks/0~7d6m~du_b.d.js +0 -1
  1052. package/.next/static/chunks/0~nct--xt2~bi.js +0 -1
  1053. package/.next/static/chunks/1121be2-kv8g~.js +0 -1
  1054. package/.next/static/chunks/1257_06cutyq_.js +0 -1
  1055. package/.next/static/chunks/12ee4r9-orwi8.js +0 -1
  1056. package/.next/static/chunks/13kdqs0pmjqy5.js +0 -1
  1057. package/.next/static/chunks/13tf0oa.w743m.js +0 -1
  1058. package/.next/static/chunks/16s5r16k361sd.js +0 -1
  1059. package/.next/static/chunks/16tqshshex~qk.js +0 -1
  1060. package/.next/static/chunks/17846-azlpszq.js +0 -1
  1061. package/.next/static/chunks/17b2~cmid8qeu.js +0 -3
  1062. package/.next/static/chunks/17rcecfesskxn.js +0 -1
  1063. /package/.next/server/app/{connections/knowledge → browser}/page/build-manifest.json +0 -0
  1064. /package/.next/server/app/{connections/knowledge → browser}/page/server-reference-manifest.json +0 -0
  1065. /package/.next/server/app/{settings/advanced → connections/notes}/page/build-manifest.json +0 -0
  1066. /package/.next/server/app/{settings/advanced → connections/notes}/page/server-reference-manifest.json +0 -0
  1067. /package/.next/server/app/settings/{backends → danger-zone}/page/build-manifest.json +0 -0
  1068. /package/.next/server/app/settings/{backends → danger-zone}/page/server-reference-manifest.json +0 -0
  1069. /package/.next/server/app/settings/{connections → hours}/page/build-manifest.json +0 -0
  1070. /package/.next/server/app/settings/{connections → hours}/page/server-reference-manifest.json +0 -0
  1071. /package/.next/server/app/settings/{journal → infrastructure}/page/build-manifest.json +0 -0
  1072. /package/.next/server/app/settings/{journal → infrastructure}/page/server-reference-manifest.json +0 -0
  1073. /package/.next/server/app/settings/{messaging → safety}/page/build-manifest.json +0 -0
  1074. /package/.next/server/app/settings/{messaging → safety}/page/server-reference-manifest.json +0 -0
  1075. /package/.next/static/{i_QR0WWkZFeICcOMbfuUs → 4Wu33OvzutxPxXUu1PWPC}/_buildManifest.js +0 -0
  1076. /package/.next/static/{i_QR0WWkZFeICcOMbfuUs → 4Wu33OvzutxPxXUu1PWPC}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[75068,7325,42097,22696,34389,a=>{"use strict";var b=a.i(39752),c=a.i(34542),d=a.i(81130),e=a.i(54150),f=a.i(40410),g=a.i(59974);function h(a,b,e=2e3){let f=(0,d.useQueryClient)(),i=(0,c.useRef)(null),j=(0,c.useRef)(b),[k,l]=(0,c.useState)(null),[m,n]=(0,c.useState)(!1);(0,c.useEffect)(()=>{j.current=b});let o=(0,c.useCallback)(()=>{i.current&&(clearInterval(i.current),i.current=null),n(!1)},[]),p=(0,c.useCallback)(()=>{i.current||(n(!0),i.current=setInterval(async()=>{try{let b=await g.api.get(a);l(b),j.current(b)&&(i.current&&(clearInterval(i.current),i.current=null),n(!1),await f.invalidateQueries({queryKey:["config"]}),await f.invalidateQueries({queryKey:["health"]}))}catch{}},e))},[a,e,f]),q=(0,c.useCallback)(()=>{o(),l(null)},[o]);return(0,c.useEffect)(()=>()=>{i.current&&(clearInterval(i.current),i.current=null)},[]),{status:k,active:m,start:p,stop:o,reset:q}}var i=a.i(21218),j=a.i(8212),k=a.i(29629),l=a.i(48558);let m={none:"",sm:"space-y-2",md:"space-y-3"};function n({className:a,heading:c,spacing:d="none",children:e,...f}){return(0,b.jsxs)("div",{className:(0,l.cn)("rounded-lg border border-dashed border-input bg-background/50 p-3",m[d],a),...f,children:[null!=c&&(0,b.jsx)("p",{className:"text-xs font-medium",children:c}),e]})}var o=a.i(97055),p=a.i(95827);a.s(["SlackCard",0,function(){let{data:a}=(0,e.useConfig)(),{data:l}=(0,f.useHealth)(),m=(0,d.useQueryClient)(),q=l?.messaging?.slack,[r,s]=(0,c.useState)(""),[t,u]=(0,c.useState)(""),[v,w]=(0,c.useState)(!1),[x,y]=(0,c.useState)(null),[z,A]=(0,c.useState)(null),[B,C]=(0,c.useState)(null),[D,E]=(0,c.useState)(null),[F,G]=(0,c.useState)(null),[H,I]=(0,c.useState)(null),J=h("/messaging/slack/pairing-status",a=>a.paired||!a.pairingActive);if(J.status?.paired&&H&&I(null),J.status&&!J.status.pairingActive&&H&&I(null),!a||!l)return null;let K=async()=>{w(!0),y(null),A(null);try{await g.api.put("/secrets/slack",{...r?{botToken:r}:{},...t?{appToken:t}:{}}),await m.invalidateQueries({queryKey:["config"]}),await m.invalidateQueries({queryKey:["health"]}),A("Updated."),s(""),u("")}catch(a){y(a instanceof Error?a.message:"Failed to save")}finally{w(!1)}},L=async()=>{G("test"),y(null);try{let a=r||void 0,b=await g.api.post("/messaging/slack/test-token",a?{token:a}:void 0);E(b),A(`Token OK — bot: ${b.botName??"(unknown)"}${b.team?` @ ${b.team}`:""}`)}catch(a){y(a instanceof Error?a.message:"Token test failed")}finally{G(null)}},M=async()=>{G("pair"),y(null);try{let a=await g.api.post("/messaging/slack/start-pairing");I(a),J.start()}catch(a){y(a instanceof Error?a.message:"Failed to start pairing")}finally{G(null)}},N=async()=>{J.reset(),I(null);try{await g.api.post("/messaging/slack/cancel-pairing")}catch{}};return(0,b.jsx)(p.ConnectionCard,{name:"Slack",icon:(0,b.jsx)(o.Hash,{className:"h-4 w-4"}),status:(0,p.deriveMessagingStatus)(q),error:q?.error,metadata:(0,p.messagingMetadata)(q),children:(0,b.jsxs)("div",{className:"space-y-4 mt-2",children:[x&&(0,b.jsx)(k.Alert,{variant:"error",children:x}),z&&(0,b.jsx)(k.Alert,{variant:"success",children:z}),(0,b.jsxs)(n,{heading:"Step 1 — Create the Slack app",children:[(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"We'll pre-fill the manifest with the right scopes and Socket Mode enabled."}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2",children:[(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:"manifest"===F,onClick:async()=>{G("manifest"),y(null);try{let a=await g.api.get("/messaging/slack/manifest");C(a),window.open(a.createAppUrl,"_blank","noopener")}catch(a){y(a instanceof Error?a.message:"Failed to load manifest")}finally{G(null)}},children:"manifest"===F?"Loading...":"Open Slack app builder"}),B&&(0,b.jsx)(i.Button,{size:"sm",variant:"ghost",onClick:()=>{navigator.clipboard?.writeText(B.manifestJson),A("Manifest copied.")},children:"Copy manifest JSON"})]}),B&&(0,b.jsx)("ol",{className:"mt-3 list-inside list-decimal space-y-1 text-xs text-muted-foreground",children:B.instructions.map(a=>(0,b.jsx)("li",{children:a.replace(/^\d+\.\s*/,"")},a))})]}),(0,b.jsxs)(n,{heading:"Step 2 — Paste tokens",spacing:"md",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground",children:"Bot token"}),(0,b.jsx)(j.Input,{type:"password",value:r,placeholder:a.slackConfigured?"Configured. Enter a new token to replace it.":"xoxb-...",onChange:a=>s(a.target.value)})]}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground",children:"App token"}),(0,b.jsx)(j.Input,{type:"password",value:t,placeholder:a.slackConfigured?"Configured. Enter a new token to replace it.":"xapp-...",onChange:a=>u(a.target.value)})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:v,onClick:K,children:v?"Saving...":"Save"}),(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:"test"===F,onClick:L,children:"test"===F?"Testing...":"Test token"})]}),D&&(0,b.jsxs)("p",{className:"text-xs text-emerald-700 dark:text-emerald-300",children:["✓ Bot: ",(0,b.jsx)("code",{className:"font-mono",children:D.botName}),D.team&&(0,b.jsxs)(b.Fragment,{children:[" · workspace: ",(0,b.jsx)("code",{className:"font-mono",children:D.team})]}),D.botUserId&&(0,b.jsxs)(b.Fragment,{children:[" · id: ",(0,b.jsx)("code",{className:"font-mono",children:D.botUserId})]})]})]}),(0,b.jsxs)(n,{heading:"Step 3 — Pair with magic phrase",spacing:"sm",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Click below to generate a one-time phrase. Send your bot a DM in Slack containing that exact phrase — only that DM will capture your user ID."}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:!a.slackConfigured||"pair"===F,title:a.slackConfigured?void 0:"Save your tokens first",onClick:M,children:"pair"===F?"Generating...":"Generate pairing phrase"}),J.active&&(0,b.jsx)(i.Button,{size:"sm",variant:"ghost",onClick:N,children:"Cancel"})]}),H&&(0,b.jsxs)("div",{className:"rounded-md bg-muted p-3 text-center",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground mb-1",children:"Send this phrase to your bot in Slack:"}),(0,b.jsx)("code",{className:"font-mono text-base font-semibold tracking-wide",children:H.phrase}),(0,b.jsxs)("p",{className:"mt-2 text-[11px] text-muted-foreground",children:["Expires ",new Date(H.expiresAt).toLocaleTimeString()," · punctuation and case are ignored."]})]}),J.status&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:J.status.paired?(0,b.jsxs)(b.Fragment,{children:["✓ Owner paired: ",(0,b.jsx)("code",{className:"font-mono",children:J.status.ownerUserId})]}):J.active?"Waiting for the phrase...":null})]})]})})}],75068);var q=a.i(5423);let r=(0,q.default)("MessageCircle",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]]);a.s(["TelegramCard",0,function(){let{data:a}=(0,e.useConfig)(),{data:l}=(0,f.useHealth)(),m=(0,d.useQueryClient)(),o=l?.messaging?.telegram,[q,s]=(0,c.useState)(""),[t,u]=(0,c.useState)(!1),[v,w]=(0,c.useState)(null),[x,y]=(0,c.useState)(null),[z,A]=(0,c.useState)(null),[B,C]=(0,c.useState)(null),[D,E]=(0,c.useState)(null),F=h("/messaging/telegram/pairing-status",a=>a.paired);if(!a||!l)return null;let G=async()=>{u(!0),w(null),y(null);try{await g.api.put("/secrets/telegram",{...q?{botToken:q}:{}}),await m.invalidateQueries({queryKey:["config"]}),await m.invalidateQueries({queryKey:["health"]}),y("Updated."),s("")}catch(a){w(a instanceof Error?a.message:"Failed to save")}finally{u(!1)}},H=async()=>{C("test"),w(null);try{let a=q||void 0,b=await g.api.post("/messaging/telegram/test-token",a?{token:a}:void 0);A(b),y(`Token OK — bot: ${b.firstName??b.username??b.id}`)}catch(a){w(a instanceof Error?a.message:"Token test failed")}finally{C(null)}},I=async()=>{C("pair"),w(null);try{let a=await g.api.post("/messaging/telegram/start-pairing");E(a),F.start()}catch(a){w(a instanceof Error?a.message:"Failed to start pairing")}finally{C(null)}},J=async()=>{F.reset(),E(null);try{await g.api.post("/messaging/telegram/cancel-pairing")}catch{}};return(0,b.jsx)(p.ConnectionCard,{name:"Telegram",icon:(0,b.jsx)(r,{className:"h-4 w-4"}),status:(0,p.deriveMessagingStatus)(o),error:o?.error,metadata:(0,p.messagingMetadata)(o),children:(0,b.jsxs)("div",{className:"space-y-4 mt-2",children:[v&&(0,b.jsx)(k.Alert,{variant:"error",children:v}),x&&(0,b.jsx)(k.Alert,{variant:"success",children:x}),(0,b.jsx)(n,{heading:"Step 1 — Create the bot",spacing:"sm",children:(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Open ",(0,b.jsx)("a",{className:"underline",href:"https://t.me/botfather",target:"_blank",rel:"noopener noreferrer",children:"@BotFather"}),", send ",(0,b.jsx)("code",{className:"font-mono",children:"/newbot"}),", give it a name and username, then copy the token."]})}),(0,b.jsxs)(n,{heading:"Step 2 — Paste token",spacing:"md",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground",children:"Bot token"}),(0,b.jsx)(j.Input,{type:"password",value:q,placeholder:a.telegramConfigured?"Configured. Enter a new token to replace it.":"123456:ABC-DEF…",onChange:a=>s(a.target.value)})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:t,onClick:G,children:t?"Saving...":"Save"}),(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:"test"===B,onClick:H,children:"test"===B?"Testing...":"Test token"})]}),z&&(0,b.jsxs)("p",{className:"text-xs text-emerald-700 dark:text-emerald-300",children:["✓ Bot: ",(0,b.jsxs)("code",{className:"font-mono",children:["@",z.username??z.id]})]})]}),(0,b.jsxs)(n,{heading:"Step 3 — Pair with QR",spacing:"sm",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Generate a QR code that opens your bot in Telegram and sends a one-shot pairing token."}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:!a.telegramConfigured||"pair"===B,title:a.telegramConfigured?void 0:"Save your token first",onClick:I,children:"pair"===B?"Generating...":"Pair with QR"}),D&&(0,b.jsx)(i.Button,{size:"sm",variant:"ghost",onClick:J,children:"Cancel"})]}),D&&(0,b.jsxs)("div",{className:"flex flex-col items-center gap-2 rounded-lg bg-muted p-4",children:[(0,b.jsx)("img",{src:D.qrDataUrl,alt:"Telegram pairing QR",width:320,height:320,className:"rounded bg-white p-2"}),(0,b.jsxs)("p",{className:"text-xs text-muted-foreground text-center",children:["Scan with your phone — Telegram will open ",(0,b.jsxs)("code",{className:"font-mono",children:["@",D.botUsername]})," and send the pairing token automatically."]}),(0,b.jsx)("a",{className:"text-xs underline",href:D.deepLink,target:"_blank",rel:"noopener noreferrer",children:"Or open the link directly"})]}),F.status?.paired&&(0,b.jsxs)("p",{className:"text-xs text-emerald-700 dark:text-emerald-300",children:["✓ Paired with chat ID ",(0,b.jsx)("code",{className:"font-mono",children:F.status.ownerChatId})]})]})]})})}],7325);let s=(0,q.default)("Gamepad2",[["line",{x1:"6",x2:"10",y1:"11",y2:"11",key:"1gktln"}],["line",{x1:"8",x2:"8",y1:"9",y2:"13",key:"qnk9ow"}],["line",{x1:"15",x2:"15.01",y1:"12",y2:"12",key:"krot7o"}],["line",{x1:"18",x2:"18.01",y1:"10",y2:"10",key:"1lcuu1"}],["path",{d:"M17.32 5H6.68a4 4 0 0 0-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258-.007-.05-.011-.1-.017-.151A4 4 0 0 0 17.32 5z",key:"mfqc10"}]]);a.s(["DiscordCard",0,function(){let{data:a}=(0,e.useConfig)(),{data:l}=(0,f.useHealth)(),m=(0,d.useQueryClient)(),o=l?.messaging?.discord,[q,r]=(0,c.useState)(""),[t,u]=(0,c.useState)(!1),[v,w]=(0,c.useState)(null),[x,y]=(0,c.useState)(null),[z,A]=(0,c.useState)(null),[B,C]=(0,c.useState)(null),[D,E]=(0,c.useState)(null),F=h("/messaging/discord/pairing-status",a=>a.paired||!a.pairingActive);if(F.status?.paired&&D&&E(null),F.status&&!F.status.pairingActive&&D&&E(null),!a||!l)return null;let G=async()=>{u(!0),w(null),y(null);try{await g.api.put("/secrets/discord",{...q?{botToken:q}:{}}),await m.invalidateQueries({queryKey:["config"]}),await m.invalidateQueries({queryKey:["health"]}),y("Updated."),r("")}catch(a){w(a instanceof Error?a.message:"Failed to save")}finally{u(!1)}},H=async()=>{C("test"),w(null);try{let a=q||void 0,b=await g.api.post("/messaging/discord/test-token",a?{token:a}:void 0);A(b),y(`Token OK — bot: ${b.username}`)}catch(a){w(a instanceof Error?a.message:"Token test failed")}finally{C(null)}},I=async()=>{C("pair"),w(null);try{let a=await g.api.post("/messaging/discord/start-pairing");E(a),F.start()}catch(a){w(a instanceof Error?a.message:"Failed to start pairing")}finally{C(null)}},J=async()=>{F.reset(),E(null);try{await g.api.post("/messaging/discord/cancel-pairing")}catch{}};return(0,b.jsx)(p.ConnectionCard,{name:"Discord",icon:(0,b.jsx)(s,{className:"h-4 w-4"}),status:(0,p.deriveMessagingStatus)(o),error:o?.error,metadata:(0,p.messagingMetadata)(o),children:(0,b.jsxs)("div",{className:"space-y-4 mt-2",children:[v&&(0,b.jsx)(k.Alert,{variant:"error",children:v}),x&&(0,b.jsx)(k.Alert,{variant:"success",children:x}),(0,b.jsx)(n,{heading:"Step 1 — Create the bot",spacing:"sm",children:(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Open the ",(0,b.jsx)("a",{className:"underline",href:"https://discord.com/developers/applications",target:"_blank",rel:"noopener noreferrer",children:"Discord Developer Portal"}),', create an application, add a Bot, enable "Message Content Intent", and copy the token.']})}),(0,b.jsxs)(n,{heading:"Step 2 — Paste token",spacing:"md",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground",children:"Bot token"}),(0,b.jsx)(j.Input,{type:"password",value:q,placeholder:a.discordConfigured?"Configured. Enter a new token to replace it.":"Discord bot token",onChange:a=>r(a.target.value)})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:t,onClick:G,children:t?"Saving...":"Save"}),(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:"test"===B,onClick:H,children:"test"===B?"Testing...":"Test token"})]}),z&&(0,b.jsxs)("p",{className:"text-xs text-emerald-700 dark:text-emerald-300 flex items-center gap-2",children:["✓ Bot: ",(0,b.jsx)("code",{className:"font-mono",children:z.username}),z.avatarUrl&&(0,b.jsx)("img",{src:z.avatarUrl,alt:"",width:16,height:16,className:"rounded-full"})]})]}),(0,b.jsxs)(n,{heading:"Step 3 — Pair with magic phrase",spacing:"sm",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Add the bot to a server, then click below to generate a one-time phrase. DM the bot with that phrase — only that DM captures your user ID."}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:!a.discordConfigured||"pair"===B,title:a.discordConfigured?void 0:"Save your token first",onClick:I,children:"pair"===B?"Generating...":"Generate pairing phrase"}),F.active&&(0,b.jsx)(i.Button,{size:"sm",variant:"ghost",onClick:J,children:"Cancel"})]}),D&&(0,b.jsxs)("div",{className:"rounded-md bg-muted p-3 text-center",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground mb-1",children:"Send this phrase to your bot in Discord:"}),(0,b.jsx)("code",{className:"font-mono text-base font-semibold tracking-wide",children:D.phrase}),(0,b.jsxs)("p",{className:"mt-2 text-[11px] text-muted-foreground",children:["Expires ",new Date(D.expiresAt).toLocaleTimeString()," · punctuation and case are ignored."]})]}),F.status&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:F.status.paired?(0,b.jsxs)(b.Fragment,{children:["✓ Owner paired: ",(0,b.jsx)("code",{className:"font-mono",children:F.status.ownerUserId})]}):F.active?"Waiting for the phrase...":null})]})]})})}],42097);var t=a.i(91534),u=a.i(23780),v=a.i(47696);let w=[{iso2:"AF",name:"Afghanistan",dial:"93"},{iso2:"AL",name:"Albania",dial:"355"},{iso2:"DZ",name:"Algeria",dial:"213"},{iso2:"AD",name:"Andorra",dial:"376"},{iso2:"AO",name:"Angola",dial:"244"},{iso2:"AR",name:"Argentina",dial:"54"},{iso2:"AM",name:"Armenia",dial:"374"},{iso2:"AU",name:"Australia",dial:"61"},{iso2:"AT",name:"Austria",dial:"43"},{iso2:"AZ",name:"Azerbaijan",dial:"994"},{iso2:"BS",name:"Bahamas",dial:"1242"},{iso2:"BH",name:"Bahrain",dial:"973"},{iso2:"BD",name:"Bangladesh",dial:"880"},{iso2:"BB",name:"Barbados",dial:"1246"},{iso2:"BY",name:"Belarus",dial:"375"},{iso2:"BE",name:"Belgium",dial:"32"},{iso2:"BZ",name:"Belize",dial:"501"},{iso2:"BJ",name:"Benin",dial:"229"},{iso2:"BT",name:"Bhutan",dial:"975"},{iso2:"BO",name:"Bolivia",dial:"591"},{iso2:"BA",name:"Bosnia and Herzegovina",dial:"387"},{iso2:"BW",name:"Botswana",dial:"267"},{iso2:"BR",name:"Brazil",dial:"55"},{iso2:"BN",name:"Brunei",dial:"673"},{iso2:"BG",name:"Bulgaria",dial:"359"},{iso2:"BF",name:"Burkina Faso",dial:"226"},{iso2:"BI",name:"Burundi",dial:"257"},{iso2:"KH",name:"Cambodia",dial:"855"},{iso2:"CM",name:"Cameroon",dial:"237"},{iso2:"CA",name:"Canada",dial:"1"},{iso2:"CV",name:"Cape Verde",dial:"238"},{iso2:"CF",name:"Central African Republic",dial:"236"},{iso2:"TD",name:"Chad",dial:"235"},{iso2:"CL",name:"Chile",dial:"56"},{iso2:"CN",name:"China",dial:"86"},{iso2:"CO",name:"Colombia",dial:"57"},{iso2:"KM",name:"Comoros",dial:"269"},{iso2:"CG",name:"Congo",dial:"242"},{iso2:"CD",name:"Congo (DRC)",dial:"243"},{iso2:"CR",name:"Costa Rica",dial:"506"},{iso2:"CI",name:"Côte d'Ivoire",dial:"225"},{iso2:"HR",name:"Croatia",dial:"385"},{iso2:"CU",name:"Cuba",dial:"53"},{iso2:"CY",name:"Cyprus",dial:"357"},{iso2:"CZ",name:"Czech Republic",dial:"420"},{iso2:"DK",name:"Denmark",dial:"45"},{iso2:"DJ",name:"Djibouti",dial:"253"},{iso2:"DM",name:"Dominica",dial:"1767"},{iso2:"DO",name:"Dominican Republic",dial:"1809"},{iso2:"EC",name:"Ecuador",dial:"593"},{iso2:"EG",name:"Egypt",dial:"20"},{iso2:"SV",name:"El Salvador",dial:"503"},{iso2:"GQ",name:"Equatorial Guinea",dial:"240"},{iso2:"ER",name:"Eritrea",dial:"291"},{iso2:"EE",name:"Estonia",dial:"372"},{iso2:"SZ",name:"Eswatini",dial:"268"},{iso2:"ET",name:"Ethiopia",dial:"251"},{iso2:"FJ",name:"Fiji",dial:"679"},{iso2:"FI",name:"Finland",dial:"358"},{iso2:"FR",name:"France",dial:"33"},{iso2:"GA",name:"Gabon",dial:"241"},{iso2:"GM",name:"Gambia",dial:"220"},{iso2:"GE",name:"Georgia",dial:"995"},{iso2:"DE",name:"Germany",dial:"49"},{iso2:"GH",name:"Ghana",dial:"233"},{iso2:"GR",name:"Greece",dial:"30"},{iso2:"GL",name:"Greenland",dial:"299"},{iso2:"GD",name:"Grenada",dial:"1473"},{iso2:"GT",name:"Guatemala",dial:"502"},{iso2:"GN",name:"Guinea",dial:"224"},{iso2:"GW",name:"Guinea-Bissau",dial:"245"},{iso2:"GY",name:"Guyana",dial:"592"},{iso2:"HT",name:"Haiti",dial:"509"},{iso2:"HN",name:"Honduras",dial:"504"},{iso2:"HK",name:"Hong Kong",dial:"852"},{iso2:"HU",name:"Hungary",dial:"36"},{iso2:"IS",name:"Iceland",dial:"354"},{iso2:"IN",name:"India",dial:"91"},{iso2:"ID",name:"Indonesia",dial:"62"},{iso2:"IR",name:"Iran",dial:"98"},{iso2:"IQ",name:"Iraq",dial:"964"},{iso2:"IE",name:"Ireland",dial:"353"},{iso2:"IL",name:"Israel",dial:"972"},{iso2:"IT",name:"Italy",dial:"39"},{iso2:"JM",name:"Jamaica",dial:"1876"},{iso2:"JP",name:"Japan",dial:"81"},{iso2:"JO",name:"Jordan",dial:"962"},{iso2:"KZ",name:"Kazakhstan",dial:"7"},{iso2:"KE",name:"Kenya",dial:"254"},{iso2:"KI",name:"Kiribati",dial:"686"},{iso2:"KW",name:"Kuwait",dial:"965"},{iso2:"KG",name:"Kyrgyzstan",dial:"996"},{iso2:"LA",name:"Laos",dial:"856"},{iso2:"LV",name:"Latvia",dial:"371"},{iso2:"LB",name:"Lebanon",dial:"961"},{iso2:"LS",name:"Lesotho",dial:"266"},{iso2:"LR",name:"Liberia",dial:"231"},{iso2:"LY",name:"Libya",dial:"218"},{iso2:"LI",name:"Liechtenstein",dial:"423"},{iso2:"LT",name:"Lithuania",dial:"370"},{iso2:"LU",name:"Luxembourg",dial:"352"},{iso2:"MO",name:"Macau",dial:"853"},{iso2:"MG",name:"Madagascar",dial:"261"},{iso2:"MW",name:"Malawi",dial:"265"},{iso2:"MY",name:"Malaysia",dial:"60"},{iso2:"MV",name:"Maldives",dial:"960"},{iso2:"ML",name:"Mali",dial:"223"},{iso2:"MT",name:"Malta",dial:"356"},{iso2:"MR",name:"Mauritania",dial:"222"},{iso2:"MU",name:"Mauritius",dial:"230"},{iso2:"MX",name:"Mexico",dial:"52"},{iso2:"FM",name:"Micronesia",dial:"691"},{iso2:"MD",name:"Moldova",dial:"373"},{iso2:"MC",name:"Monaco",dial:"377"},{iso2:"MN",name:"Mongolia",dial:"976"},{iso2:"ME",name:"Montenegro",dial:"382"},{iso2:"MA",name:"Morocco",dial:"212"},{iso2:"MZ",name:"Mozambique",dial:"258"},{iso2:"MM",name:"Myanmar",dial:"95"},{iso2:"NA",name:"Namibia",dial:"264"},{iso2:"NR",name:"Nauru",dial:"674"},{iso2:"NP",name:"Nepal",dial:"977"},{iso2:"NL",name:"Netherlands",dial:"31"},{iso2:"NZ",name:"New Zealand",dial:"64"},{iso2:"NI",name:"Nicaragua",dial:"505"},{iso2:"NE",name:"Niger",dial:"227"},{iso2:"NG",name:"Nigeria",dial:"234"},{iso2:"KP",name:"North Korea",dial:"850"},{iso2:"MK",name:"North Macedonia",dial:"389"},{iso2:"NO",name:"Norway",dial:"47"},{iso2:"OM",name:"Oman",dial:"968"},{iso2:"PK",name:"Pakistan",dial:"92"},{iso2:"PW",name:"Palau",dial:"680"},{iso2:"PS",name:"Palestine",dial:"970"},{iso2:"PA",name:"Panama",dial:"507"},{iso2:"PG",name:"Papua New Guinea",dial:"675"},{iso2:"PY",name:"Paraguay",dial:"595"},{iso2:"PE",name:"Peru",dial:"51"},{iso2:"PH",name:"Philippines",dial:"63"},{iso2:"PL",name:"Poland",dial:"48"},{iso2:"PT",name:"Portugal",dial:"351"},{iso2:"PR",name:"Puerto Rico",dial:"1787"},{iso2:"QA",name:"Qatar",dial:"974"},{iso2:"RO",name:"Romania",dial:"40"},{iso2:"RU",name:"Russia",dial:"7"},{iso2:"RW",name:"Rwanda",dial:"250"},{iso2:"WS",name:"Samoa",dial:"685"},{iso2:"SM",name:"San Marino",dial:"378"},{iso2:"ST",name:"São Tomé and Príncipe",dial:"239"},{iso2:"SA",name:"Saudi Arabia",dial:"966"},{iso2:"SN",name:"Senegal",dial:"221"},{iso2:"RS",name:"Serbia",dial:"381"},{iso2:"SC",name:"Seychelles",dial:"248"},{iso2:"SL",name:"Sierra Leone",dial:"232"},{iso2:"SG",name:"Singapore",dial:"65"},{iso2:"SK",name:"Slovakia",dial:"421"},{iso2:"SI",name:"Slovenia",dial:"386"},{iso2:"SB",name:"Solomon Islands",dial:"677"},{iso2:"SO",name:"Somalia",dial:"252"},{iso2:"ZA",name:"South Africa",dial:"27"},{iso2:"KR",name:"South Korea",dial:"82"},{iso2:"SS",name:"South Sudan",dial:"211"},{iso2:"ES",name:"Spain",dial:"34"},{iso2:"LK",name:"Sri Lanka",dial:"94"},{iso2:"SD",name:"Sudan",dial:"249"},{iso2:"SR",name:"Suriname",dial:"597"},{iso2:"SE",name:"Sweden",dial:"46"},{iso2:"CH",name:"Switzerland",dial:"41"},{iso2:"SY",name:"Syria",dial:"963"},{iso2:"TW",name:"Taiwan",dial:"886"},{iso2:"TJ",name:"Tajikistan",dial:"992"},{iso2:"TZ",name:"Tanzania",dial:"255"},{iso2:"TH",name:"Thailand",dial:"66"},{iso2:"TL",name:"Timor-Leste",dial:"670"},{iso2:"TG",name:"Togo",dial:"228"},{iso2:"TO",name:"Tonga",dial:"676"},{iso2:"TT",name:"Trinidad and Tobago",dial:"1868"},{iso2:"TN",name:"Tunisia",dial:"216"},{iso2:"TR",name:"Turkey",dial:"90"},{iso2:"TM",name:"Turkmenistan",dial:"993"},{iso2:"TV",name:"Tuvalu",dial:"688"},{iso2:"UG",name:"Uganda",dial:"256"},{iso2:"UA",name:"Ukraine",dial:"380"},{iso2:"AE",name:"United Arab Emirates",dial:"971"},{iso2:"GB",name:"United Kingdom",dial:"44"},{iso2:"US",name:"United States",dial:"1"},{iso2:"UY",name:"Uruguay",dial:"598"},{iso2:"UZ",name:"Uzbekistan",dial:"998"},{iso2:"VU",name:"Vanuatu",dial:"678"},{iso2:"VA",name:"Vatican City",dial:"379"},{iso2:"VE",name:"Venezuela",dial:"58"},{iso2:"VN",name:"Vietnam",dial:"84"},{iso2:"YE",name:"Yemen",dial:"967"},{iso2:"ZM",name:"Zambia",dial:"260"},{iso2:"ZW",name:"Zimbabwe",dial:"263"}].map(a=>{var b;return{...a,flag:2!==(b=a.iso2).length?"🏳":String.fromCodePoint(...b.toUpperCase().split("").map(a=>127462+(a.charCodeAt(0)-65)))}}).sort((a,b)=>a.name.localeCompare(b.name)),x=new Map(w.map(a=>[a.iso2,a]));function y(a){return x.get(a.toUpperCase())}let z={1:"US",7:"RU"},A=[...w].sort((a,b)=>{if(b.dial.length!==a.dial.length)return b.dial.length-a.dial.length;let c=z[a.dial];if(c){if(a.iso2===c&&b.iso2!==c)return -1;if(b.iso2===c&&a.iso2!==c)return 1}return a.name.localeCompare(b.name)});function B(a){if(!a)return null;let b=a.replace(/^\+/,"").replace(/\D/g,"");for(let a of A)if(b.startsWith(a.dial))return a;return null}function C(a,b){let c=a.replace(/^\+/,"").replace(/\D/g,"");return c.startsWith(b.dial)?c.slice(b.dial.length):c}function D(a,b){let c=b.replace(/\D/g,"");return`+${a.dial}${c}`}function E({value:a,onChange:d,placeholder:e="Subscriber number",defaultCountryIso2:f="US",disabled:g,id:h}){let i=(0,c.useMemo)(()=>B(a)??y(f)??w[0],[a,f]),[k,l]=(0,c.useState)(i);(0,c.useEffect)(()=>{let b=B(a);b&&b.iso2!==k.iso2&&l(b)},[a]);let m=C(a,k);return(0,b.jsxs)("div",{className:"flex items-stretch gap-2",children:[(0,b.jsxs)(v.Select,{value:k.iso2,onValueChange:a=>{let b=y(a);b&&(l(b),d(D(b,m)))},disabled:g,children:[(0,b.jsx)(v.SelectTrigger,{className:"w-[140px] flex-shrink-0","aria-label":"Country code",children:(0,b.jsx)(v.SelectValue,{children:(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-base leading-none",children:k.flag}),(0,b.jsxs)("span",{className:"text-xs text-muted-foreground",children:["+",k.dial]})]})})}),(0,b.jsx)(v.SelectContent,{className:"max-h-[320px]",children:w.map(a=>(0,b.jsx)(v.SelectItem,{value:a.iso2,children:(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-base leading-none",children:a.flag}),(0,b.jsx)("span",{className:"text-sm",children:a.name}),(0,b.jsxs)("span",{className:"text-xs text-muted-foreground",children:["+",a.dial]})]})},a.iso2))})]}),(0,b.jsx)(j.Input,{id:h,type:"tel",inputMode:"tel",placeholder:e,value:m,onChange:a=>(a=>{if(a.startsWith("+")){let b=B(a);if(b){l(b),d(D(b,C(a,b)));return}}d(D(k,a))})(a.target.value),disabled:g,className:"flex-1"})]})}let F=(0,q.default)("Phone",[["path",{d:"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z",key:"foiqr5"}]]);a.s(["WhatsAppCard",0,function(){let{data:a}=(0,e.useConfig)(),{data:j}=(0,f.useHealth)(),l=(0,d.useQueryClient)(),m=j?.messaging?.whatsapp,[n,o]=(0,c.useState)(""),[q,r]=(0,c.useState)(""),[s,v]=(0,c.useState)(null),[w,x]=(0,c.useState)(null),[y,z]=(0,c.useState)(null),A=h("/messaging/whatsapp/qr",a=>"ok"===a.state||"logged_out"===a.state,3e3);if(!a||!j)return null;let B=async a=>{x(null),z(null);let b=await g.api.patch("/config",a);await l.invalidateQueries({queryKey:["config"]}),await l.invalidateQueries({queryKey:["health"]}),b.requiresRestart.length>0?z(`Updated. Restart daemon for: ${b.requiresRestart.join(", ")}`):z("Updated.")},C=async()=>{v("toggle"),x(null),z(null);try{let b=a.whatsappEnabled,c=await g.api.patch("/config",{whatsappEnabled:!b,...n?{whatsappOwnerPhone:n}:{},...q?{whatsappAuthDir:q}:{}});if(b)A.reset();else try{let a=await g.api.post("/messaging/whatsapp/pair");"ok"!==a.state&&A.start()}catch(a){x(a instanceof Error?a.message:"Failed to start pairing")}await l.invalidateQueries({queryKey:["config"]}),await l.invalidateQueries({queryKey:["health"]}),c.requiresRestart.length>0?z(`Updated. Restart daemon for: ${c.requiresRestart.join(", ")}`):z("Updated.")}catch(a){x(a instanceof Error?a.message:"Failed to toggle WhatsApp")}finally{v(null)}},D=async()=>{v("config");try{await B({...n?{whatsappOwnerPhone:n}:{},...q?{whatsappAuthDir:q}:{}})}catch(a){x(a instanceof Error?a.message:"Failed to save")}finally{v(null)}},G=async()=>{x(null);try{let a=await g.api.post("/messaging/whatsapp/pair");"ok"!==a.state&&A.start(),await l.invalidateQueries({queryKey:["health"]})}catch(a){x(a instanceof Error?a.message:"Failed to request pairing")}},H=async()=>{try{await g.api.get("/messaging/whatsapp/qr"),A.start()}catch(a){x(a instanceof Error?a.message:"Failed to fetch QR")}},I=async()=>{if(window.confirm("Reset WhatsApp connection?\n\nThis wipes the cached pairing data so you can scan a fresh QR from scratch. Use this if WhatsApp says the device is unlinked or pairing keeps failing.")){v("reset"),x(null),z(null);try{let a=await g.api.post("/messaging/whatsapp/reset");await l.invalidateQueries({queryKey:["health"]}),"ok"===a.state?(z("Reset complete. WhatsApp reconnected."),A.reset()):"not_initialized"===a.state?(z("Reset complete. Enable WhatsApp to start a fresh pairing flow."),A.reset()):(z("Reset complete. Scan the new QR to pair the device."),A.start())}catch(a){x(a instanceof Error?a.message:"Failed to reset WhatsApp")}finally{v(null)}}},J=A.status;return(0,b.jsx)(p.ConnectionCard,{name:"WhatsApp",icon:(0,b.jsx)(F,{className:"h-4 w-4"}),status:(0,p.deriveMessagingStatus)(m),error:m?.error,metadata:(0,p.messagingMetadata)(m),children:(0,b.jsxs)("div",{className:"space-y-4 mt-2",children:[w&&(0,b.jsx)(k.Alert,{variant:"error",children:w}),y&&(0,b.jsx)(k.Alert,{variant:"warning",children:y}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(i.Button,{size:"sm",variant:a.whatsappEnabled?"default":"outline",disabled:"toggle"===s||!a.whatsappEnabled&&!a.whatsappOwnerPhoneConfigured&&!n,onClick:C,children:a.whatsappEnabled?"Disable WhatsApp":"Enable WhatsApp"}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a.whatsappEnabled?"Adapter hot-reloads on save — no daemon restart needed.":"Set the owner phone first, then click Enable to start pairing."})]}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground",htmlFor:"whatsapp-owner-phone",children:"Owner phone"}),(0,b.jsx)(E,{id:"whatsapp-owner-phone",value:n,onChange:o,placeholder:a.whatsappOwnerPhoneConfigured?"Configured — type to replace":"Subscriber number",defaultCountryIso2:"US"})]}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground",children:"Auth dir"}),(0,b.jsx)(t.DirectoryPickerField,{value:q,onChange:r,title:"Choose WhatsApp auth directory",placeholder:a.whatsappAuthDir||"~/.personal-agent/whatsapp/auth",defaultPath:a.whatsappAuthDir||void 0})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:"config"===s,onClick:D,children:"config"===s?"Saving...":"Save Config"}),(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:!a.whatsappEnabled||A.active,title:a.whatsappEnabled?void 0:"Enable WhatsApp first",onClick:G,children:A.active?"Pairing...":"Pair device"}),(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:!a.whatsappEnabled,onClick:H,children:"Refresh QR"}),(0,b.jsx)(i.Button,{size:"sm",variant:"destructive",disabled:"reset"===s,title:"Wipe cached pairing data and start over (use after unlinking from the phone)",onClick:I,children:"reset"===s?"Resetting...":"Reset connection"}),A.active&&(0,b.jsx)(i.Button,{size:"sm",variant:"ghost",onClick:()=>A.reset(),children:"Stop polling"})]}),J&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(u.Separator,{}),(0,b.jsxs)("div",{className:"space-y-3",children:[J.dataUrl?(0,b.jsxs)("div",{className:"flex flex-col items-center gap-2 rounded-lg bg-muted p-4",children:[(0,b.jsx)("img",{src:J.dataUrl,alt:"WhatsApp pairing QR",width:320,height:320,className:"rounded bg-white p-2"}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Open WhatsApp → Settings → Linked Devices → Link a device, and scan this code."})]}):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"ok"===J.state?"WhatsApp is paired and connected.":"connecting"===J.state?"Connecting to WhatsApp...":"awaiting_qr"===J.state?"Generating QR code...":"logged_out"===J.state?"Session logged out — click Pair device to start over.":"Waiting for QR code..."}),J.error&&(0,b.jsx)(k.Alert,{variant:"error",children:J.error})]})]})]})})}],22696);var G=a.i(30400);a.s(["DestinationSelector",0,function(){let{data:a}=(0,e.useConfig)(),{data:h}=(0,f.useHealth)(),j=(0,d.useQueryClient)(),k=Object.entries(h?.messaging??{}).filter(([a,b])=>"dashboard"!==a&&b.configured&&b.ownerConfigured).map(([a])=>a),l=a?.defaultNotificationPlatforms??[],[m,n]=(0,c.useState)(l),[o,p]=(0,c.useState)(!1),[q,r]=(0,c.useState)(null),s=l.join(",");if((0,c.useEffect)(()=>{n(l)},[s]),!a||!h)return null;let t=m.length!==l.length||m.some(a=>!l.includes(a)),u=async()=>{p(!0),r(null);try{let a=await g.api.patch("/config",{defaultNotificationPlatforms:m});await Promise.all([j.invalidateQueries({queryKey:["config"]}),j.invalidateQueries({queryKey:["health"]})]),a.requiresRestart.length>0&&r(`Updated. Restart daemon for: ${a.requiresRestart.join(", ")}`)}finally{p(!1)}};return(0,b.jsxs)(G.Card,{children:[(0,b.jsx)(G.CardHeader,{children:(0,b.jsx)(G.CardTitle,{className:"text-base",children:"Default Reminder Destinations"})}),(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[k.map(a=>(0,b.jsx)(i.Button,{size:"sm",variant:m.includes(a)?"default":"outline",onClick:()=>{n(b=>b.includes(a)?b.filter(b=>b!==a):[...b,a])},className:"capitalize",disabled:o,children:a},a)),0===k.length&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"No eligible messaging app is configured yet."})]}),(0,b.jsx)("p",{className:"max-w-prose text-xs text-muted-foreground",children:"Every selected destination receives the same reminder. Replies still go back to the app where the conversation happened, and you can override the destination for a single request without changing this default."}),q&&(0,b.jsx)("p",{className:"text-xs text-amber-700 dark:text-amber-300",children:q}),(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:!t||o,onClick:u,children:o?"Saving...":"Save Reminder Destinations"})]})]})}],34389)}];
1
+ module.exports=[75068,7325,42097,22696,34389,a=>{"use strict";var b=a.i(39752),c=a.i(34542),d=a.i(81130),e=a.i(54150),f=a.i(40410),g=a.i(59974);function h(a,b,e=2e3){let f=(0,d.useQueryClient)(),i=(0,c.useRef)(null),j=(0,c.useRef)(b),[k,l]=(0,c.useState)(null),[m,n]=(0,c.useState)(!1);(0,c.useEffect)(()=>{j.current=b});let o=(0,c.useCallback)(()=>{i.current&&(clearInterval(i.current),i.current=null),n(!1)},[]),p=(0,c.useCallback)(()=>{i.current||(n(!0),i.current=setInterval(async()=>{try{let b=await g.api.get(a);l(b),j.current(b)&&(i.current&&(clearInterval(i.current),i.current=null),n(!1),await f.invalidateQueries({queryKey:["config"]}),await f.invalidateQueries({queryKey:["health"]}))}catch{}},e))},[a,e,f]),q=(0,c.useCallback)(()=>{o(),l(null)},[o]);return(0,c.useEffect)(()=>()=>{i.current&&(clearInterval(i.current),i.current=null)},[]),{status:k,active:m,start:p,stop:o,reset:q}}var i=a.i(21218),j=a.i(8212),k=a.i(29629),l=a.i(48558);let m={none:"",sm:"space-y-2",md:"space-y-3"};function n({className:a,heading:c,spacing:d="none",children:e,...f}){return(0,b.jsxs)("div",{className:(0,l.cn)("rounded-lg border border-dashed border-input bg-background/50 p-3",m[d],a),...f,children:[null!=c&&(0,b.jsx)("p",{className:"text-xs font-medium",children:c}),e]})}var o=a.i(97055),p=a.i(95827);a.s(["SlackCard",0,function(){let{data:a}=(0,e.useConfig)(),{data:l}=(0,f.useHealth)(),m=(0,d.useQueryClient)(),q=l?.messaging?.slack,[r,s]=(0,c.useState)(""),[t,u]=(0,c.useState)(""),[v,w]=(0,c.useState)(!1),[x,y]=(0,c.useState)(null),[z,A]=(0,c.useState)(null),[B,C]=(0,c.useState)(null),[D,E]=(0,c.useState)(null),[F,G]=(0,c.useState)(null),[H,I]=(0,c.useState)(null),J=h("/messaging/slack/pairing-status",a=>a.paired||!a.pairingActive);if(J.status?.paired&&H&&I(null),J.status&&!J.status.pairingActive&&H&&I(null),!a||!l)return null;let K=async()=>{w(!0),y(null),A(null);try{await g.api.put("/secrets/slack",{...r?{botToken:r}:{},...t?{appToken:t}:{}}),await m.invalidateQueries({queryKey:["config"]}),await m.invalidateQueries({queryKey:["health"]}),A("Updated."),s(""),u("")}catch(a){y(a instanceof Error?a.message:"Failed to save")}finally{w(!1)}},L=async()=>{G("test"),y(null);try{let a=r||void 0,b=await g.api.post("/messaging/slack/test-token",a?{token:a}:void 0);E(b),A(`Token OK — bot: ${b.botName??"(unknown)"}${b.team?` @ ${b.team}`:""}`)}catch(a){y(a instanceof Error?a.message:"Token test failed")}finally{G(null)}},M=async()=>{G("pair"),y(null);try{let a=await g.api.post("/messaging/slack/start-pairing");I(a),J.start()}catch(a){y(a instanceof Error?a.message:"Failed to start pairing")}finally{G(null)}},N=async()=>{J.reset(),I(null);try{await g.api.post("/messaging/slack/cancel-pairing")}catch{}};return(0,b.jsx)(p.ConnectionCard,{name:"Slack",icon:(0,b.jsx)(o.Hash,{className:"h-4 w-4"}),status:(0,p.deriveMessagingStatus)(q),error:q?.error,metadata:(0,p.messagingMetadata)(q),children:(0,b.jsxs)("div",{className:"space-y-4 mt-2",children:[x&&(0,b.jsx)(k.Alert,{variant:"error",children:x}),z&&(0,b.jsx)(k.Alert,{variant:"success",children:z}),(0,b.jsxs)(n,{heading:"Step 1 — Create the Slack app",children:[(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"We'll pre-fill the manifest with the right scopes and Socket Mode enabled."}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2",children:[(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:"manifest"===F,onClick:async()=>{G("manifest"),y(null);try{let a=await g.api.get("/messaging/slack/manifest");C(a),window.open(a.createAppUrl,"_blank","noopener")}catch(a){y(a instanceof Error?a.message:"Failed to load manifest")}finally{G(null)}},children:"manifest"===F?"Loading...":"Open Slack app builder"}),B&&(0,b.jsx)(i.Button,{size:"sm",variant:"ghost",onClick:()=>{navigator.clipboard?.writeText(B.manifestJson),A("Manifest copied.")},children:"Copy manifest JSON"})]}),B&&(0,b.jsx)("ol",{className:"mt-3 list-inside list-decimal space-y-1 text-xs text-muted-foreground",children:B.instructions.map(a=>(0,b.jsx)("li",{children:a.replace(/^\d+\.\s*/,"")},a))})]}),(0,b.jsxs)(n,{heading:"Step 2 — Paste tokens",spacing:"md",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground",children:"Bot token"}),(0,b.jsx)(j.Input,{type:"password",value:r,placeholder:a.slackConfigured?"Configured. Enter a new token to replace it.":"xoxb-...",onChange:a=>s(a.target.value)})]}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground",children:"App token"}),(0,b.jsx)(j.Input,{type:"password",value:t,placeholder:a.slackConfigured?"Configured. Enter a new token to replace it.":"xapp-...",onChange:a=>u(a.target.value)})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:v,onClick:K,children:v?"Saving...":"Save"}),(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:"test"===F,onClick:L,children:"test"===F?"Testing...":"Test token"})]}),D&&(0,b.jsxs)("p",{className:"text-xs text-success",children:["✓ Bot: ",(0,b.jsx)("code",{className:"font-mono",children:D.botName}),D.team&&(0,b.jsxs)(b.Fragment,{children:[" · workspace: ",(0,b.jsx)("code",{className:"font-mono",children:D.team})]}),D.botUserId&&(0,b.jsxs)(b.Fragment,{children:[" · id: ",(0,b.jsx)("code",{className:"font-mono",children:D.botUserId})]})]})]}),(0,b.jsxs)(n,{heading:"Step 3 — Pair with magic phrase",spacing:"sm",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Click below to generate a one-time phrase. Send your bot a DM in Slack containing that exact phrase — only that DM will capture your user ID."}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:!a.slackConfigured||"pair"===F,title:a.slackConfigured?void 0:"Save your tokens first",onClick:M,children:"pair"===F?"Generating...":"Generate pairing phrase"}),J.active&&(0,b.jsx)(i.Button,{size:"sm",variant:"ghost",onClick:N,children:"Cancel"})]}),H&&(0,b.jsxs)("div",{className:"rounded-md bg-muted p-3 text-center",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground mb-1",children:"Send this phrase to your bot in Slack:"}),(0,b.jsx)("code",{className:"font-mono text-base font-semibold tracking-wide",children:H.phrase}),(0,b.jsxs)("p",{className:"mt-2 text-[11px] text-muted-foreground",children:["Expires ",new Date(H.expiresAt).toLocaleTimeString()," · punctuation and case are ignored."]})]}),J.status&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:J.status.paired?(0,b.jsxs)(b.Fragment,{children:["✓ Owner paired: ",(0,b.jsx)("code",{className:"font-mono",children:J.status.ownerUserId})]}):J.active?"Waiting for the phrase...":null})]})]})})}],75068);var q=a.i(5423);let r=(0,q.default)("MessageCircle",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]]);a.s(["TelegramCard",0,function(){let{data:a}=(0,e.useConfig)(),{data:l}=(0,f.useHealth)(),m=(0,d.useQueryClient)(),o=l?.messaging?.telegram,[q,s]=(0,c.useState)(""),[t,u]=(0,c.useState)(!1),[v,w]=(0,c.useState)(null),[x,y]=(0,c.useState)(null),[z,A]=(0,c.useState)(null),[B,C]=(0,c.useState)(null),[D,E]=(0,c.useState)(null),F=h("/messaging/telegram/pairing-status",a=>a.paired);if(!a||!l)return null;let G=async()=>{u(!0),w(null),y(null);try{await g.api.put("/secrets/telegram",{...q?{botToken:q}:{}}),await m.invalidateQueries({queryKey:["config"]}),await m.invalidateQueries({queryKey:["health"]}),y("Updated."),s("")}catch(a){w(a instanceof Error?a.message:"Failed to save")}finally{u(!1)}},H=async()=>{C("test"),w(null);try{let a=q||void 0,b=await g.api.post("/messaging/telegram/test-token",a?{token:a}:void 0);A(b),y(`Token OK — bot: ${b.firstName??b.username??b.id}`)}catch(a){w(a instanceof Error?a.message:"Token test failed")}finally{C(null)}},I=async()=>{C("pair"),w(null);try{let a=await g.api.post("/messaging/telegram/start-pairing");E(a),F.start()}catch(a){w(a instanceof Error?a.message:"Failed to start pairing")}finally{C(null)}},J=async()=>{F.reset(),E(null);try{await g.api.post("/messaging/telegram/cancel-pairing")}catch{}};return(0,b.jsx)(p.ConnectionCard,{name:"Telegram",icon:(0,b.jsx)(r,{className:"h-4 w-4"}),status:(0,p.deriveMessagingStatus)(o),error:o?.error,metadata:(0,p.messagingMetadata)(o),children:(0,b.jsxs)("div",{className:"space-y-4 mt-2",children:[v&&(0,b.jsx)(k.Alert,{variant:"error",children:v}),x&&(0,b.jsx)(k.Alert,{variant:"success",children:x}),(0,b.jsx)(n,{heading:"Step 1 — Create the bot",spacing:"sm",children:(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Open ",(0,b.jsx)("a",{className:"underline",href:"https://t.me/botfather",target:"_blank",rel:"noopener noreferrer",children:"@BotFather"}),", send ",(0,b.jsx)("code",{className:"font-mono",children:"/newbot"}),", give it a name and username, then copy the token."]})}),(0,b.jsxs)(n,{heading:"Step 2 — Paste token",spacing:"md",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground",children:"Bot token"}),(0,b.jsx)(j.Input,{type:"password",value:q,placeholder:a.telegramConfigured?"Configured. Enter a new token to replace it.":"123456:ABC-DEF…",onChange:a=>s(a.target.value)})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:t,onClick:G,children:t?"Saving...":"Save"}),(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:"test"===B,onClick:H,children:"test"===B?"Testing...":"Test token"})]}),z&&(0,b.jsxs)("p",{className:"text-xs text-success",children:["✓ Bot: ",(0,b.jsxs)("code",{className:"font-mono",children:["@",z.username??z.id]})]})]}),(0,b.jsxs)(n,{heading:"Step 3 — Pair with QR",spacing:"sm",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Generate a QR code that opens your bot in Telegram and sends a one-shot pairing token."}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:!a.telegramConfigured||"pair"===B,title:a.telegramConfigured?void 0:"Save your token first",onClick:I,children:"pair"===B?"Generating...":"Pair with QR"}),D&&(0,b.jsx)(i.Button,{size:"sm",variant:"ghost",onClick:J,children:"Cancel"})]}),D&&(0,b.jsxs)("div",{className:"flex flex-col items-center gap-2 rounded-lg bg-muted p-4",children:[(0,b.jsx)("img",{src:D.qrDataUrl,alt:"Telegram pairing QR",width:320,height:320,className:"rounded bg-white p-2"}),(0,b.jsxs)("p",{className:"text-xs text-muted-foreground text-center",children:["Scan with your phone — Telegram will open ",(0,b.jsxs)("code",{className:"font-mono",children:["@",D.botUsername]})," and send the pairing token automatically."]}),(0,b.jsx)("a",{className:"text-xs underline",href:D.deepLink,target:"_blank",rel:"noopener noreferrer",children:"Or open the link directly"})]}),F.status?.paired&&(0,b.jsxs)("p",{className:"text-xs text-success",children:["✓ Paired with chat ID ",(0,b.jsx)("code",{className:"font-mono",children:F.status.ownerChatId})]})]})]})})}],7325);let s=(0,q.default)("Gamepad2",[["line",{x1:"6",x2:"10",y1:"11",y2:"11",key:"1gktln"}],["line",{x1:"8",x2:"8",y1:"9",y2:"13",key:"qnk9ow"}],["line",{x1:"15",x2:"15.01",y1:"12",y2:"12",key:"krot7o"}],["line",{x1:"18",x2:"18.01",y1:"10",y2:"10",key:"1lcuu1"}],["path",{d:"M17.32 5H6.68a4 4 0 0 0-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258-.007-.05-.011-.1-.017-.151A4 4 0 0 0 17.32 5z",key:"mfqc10"}]]);a.s(["DiscordCard",0,function(){let{data:a}=(0,e.useConfig)(),{data:l}=(0,f.useHealth)(),m=(0,d.useQueryClient)(),o=l?.messaging?.discord,[q,r]=(0,c.useState)(""),[t,u]=(0,c.useState)(!1),[v,w]=(0,c.useState)(null),[x,y]=(0,c.useState)(null),[z,A]=(0,c.useState)(null),[B,C]=(0,c.useState)(null),[D,E]=(0,c.useState)(null),F=h("/messaging/discord/pairing-status",a=>a.paired||!a.pairingActive);if(F.status?.paired&&D&&E(null),F.status&&!F.status.pairingActive&&D&&E(null),!a||!l)return null;let G=async()=>{u(!0),w(null),y(null);try{await g.api.put("/secrets/discord",{...q?{botToken:q}:{}}),await m.invalidateQueries({queryKey:["config"]}),await m.invalidateQueries({queryKey:["health"]}),y("Updated."),r("")}catch(a){w(a instanceof Error?a.message:"Failed to save")}finally{u(!1)}},H=async()=>{C("test"),w(null);try{let a=q||void 0,b=await g.api.post("/messaging/discord/test-token",a?{token:a}:void 0);A(b),y(`Token OK — bot: ${b.username}`)}catch(a){w(a instanceof Error?a.message:"Token test failed")}finally{C(null)}},I=async()=>{C("pair"),w(null);try{let a=await g.api.post("/messaging/discord/start-pairing");E(a),F.start()}catch(a){w(a instanceof Error?a.message:"Failed to start pairing")}finally{C(null)}},J=async()=>{F.reset(),E(null);try{await g.api.post("/messaging/discord/cancel-pairing")}catch{}};return(0,b.jsx)(p.ConnectionCard,{name:"Discord",icon:(0,b.jsx)(s,{className:"h-4 w-4"}),status:(0,p.deriveMessagingStatus)(o),error:o?.error,metadata:(0,p.messagingMetadata)(o),children:(0,b.jsxs)("div",{className:"space-y-4 mt-2",children:[v&&(0,b.jsx)(k.Alert,{variant:"error",children:v}),x&&(0,b.jsx)(k.Alert,{variant:"success",children:x}),(0,b.jsx)(n,{heading:"Step 1 — Create the bot",spacing:"sm",children:(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Open the ",(0,b.jsx)("a",{className:"underline",href:"https://discord.com/developers/applications",target:"_blank",rel:"noopener noreferrer",children:"Discord Developer Portal"}),', create an application, add a Bot, enable "Message Content Intent", and copy the token.']})}),(0,b.jsxs)(n,{heading:"Step 2 — Paste token",spacing:"md",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground",children:"Bot token"}),(0,b.jsx)(j.Input,{type:"password",value:q,placeholder:a.discordConfigured?"Configured. Enter a new token to replace it.":"Discord bot token",onChange:a=>r(a.target.value)})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:t,onClick:G,children:t?"Saving...":"Save"}),(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:"test"===B,onClick:H,children:"test"===B?"Testing...":"Test token"})]}),z&&(0,b.jsxs)("p",{className:"text-xs text-success flex items-center gap-2",children:["✓ Bot: ",(0,b.jsx)("code",{className:"font-mono",children:z.username}),z.avatarUrl&&(0,b.jsx)("img",{src:z.avatarUrl,alt:"",width:16,height:16,className:"rounded-full"})]})]}),(0,b.jsxs)(n,{heading:"Step 3 — Pair with magic phrase",spacing:"sm",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Add the bot to a server, then click below to generate a one-time phrase. DM the bot with that phrase — only that DM captures your user ID."}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:!a.discordConfigured||"pair"===B,title:a.discordConfigured?void 0:"Save your token first",onClick:I,children:"pair"===B?"Generating...":"Generate pairing phrase"}),F.active&&(0,b.jsx)(i.Button,{size:"sm",variant:"ghost",onClick:J,children:"Cancel"})]}),D&&(0,b.jsxs)("div",{className:"rounded-md bg-muted p-3 text-center",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground mb-1",children:"Send this phrase to your bot in Discord:"}),(0,b.jsx)("code",{className:"font-mono text-base font-semibold tracking-wide",children:D.phrase}),(0,b.jsxs)("p",{className:"mt-2 text-[11px] text-muted-foreground",children:["Expires ",new Date(D.expiresAt).toLocaleTimeString()," · punctuation and case are ignored."]})]}),F.status&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:F.status.paired?(0,b.jsxs)(b.Fragment,{children:["✓ Owner paired: ",(0,b.jsx)("code",{className:"font-mono",children:F.status.ownerUserId})]}):F.active?"Waiting for the phrase...":null})]})]})})}],42097);var t=a.i(91534),u=a.i(23780),v=a.i(47696);let w=[{iso2:"AF",name:"Afghanistan",dial:"93"},{iso2:"AL",name:"Albania",dial:"355"},{iso2:"DZ",name:"Algeria",dial:"213"},{iso2:"AD",name:"Andorra",dial:"376"},{iso2:"AO",name:"Angola",dial:"244"},{iso2:"AR",name:"Argentina",dial:"54"},{iso2:"AM",name:"Armenia",dial:"374"},{iso2:"AU",name:"Australia",dial:"61"},{iso2:"AT",name:"Austria",dial:"43"},{iso2:"AZ",name:"Azerbaijan",dial:"994"},{iso2:"BS",name:"Bahamas",dial:"1242"},{iso2:"BH",name:"Bahrain",dial:"973"},{iso2:"BD",name:"Bangladesh",dial:"880"},{iso2:"BB",name:"Barbados",dial:"1246"},{iso2:"BY",name:"Belarus",dial:"375"},{iso2:"BE",name:"Belgium",dial:"32"},{iso2:"BZ",name:"Belize",dial:"501"},{iso2:"BJ",name:"Benin",dial:"229"},{iso2:"BT",name:"Bhutan",dial:"975"},{iso2:"BO",name:"Bolivia",dial:"591"},{iso2:"BA",name:"Bosnia and Herzegovina",dial:"387"},{iso2:"BW",name:"Botswana",dial:"267"},{iso2:"BR",name:"Brazil",dial:"55"},{iso2:"BN",name:"Brunei",dial:"673"},{iso2:"BG",name:"Bulgaria",dial:"359"},{iso2:"BF",name:"Burkina Faso",dial:"226"},{iso2:"BI",name:"Burundi",dial:"257"},{iso2:"KH",name:"Cambodia",dial:"855"},{iso2:"CM",name:"Cameroon",dial:"237"},{iso2:"CA",name:"Canada",dial:"1"},{iso2:"CV",name:"Cape Verde",dial:"238"},{iso2:"CF",name:"Central African Republic",dial:"236"},{iso2:"TD",name:"Chad",dial:"235"},{iso2:"CL",name:"Chile",dial:"56"},{iso2:"CN",name:"China",dial:"86"},{iso2:"CO",name:"Colombia",dial:"57"},{iso2:"KM",name:"Comoros",dial:"269"},{iso2:"CG",name:"Congo",dial:"242"},{iso2:"CD",name:"Congo (DRC)",dial:"243"},{iso2:"CR",name:"Costa Rica",dial:"506"},{iso2:"CI",name:"Côte d'Ivoire",dial:"225"},{iso2:"HR",name:"Croatia",dial:"385"},{iso2:"CU",name:"Cuba",dial:"53"},{iso2:"CY",name:"Cyprus",dial:"357"},{iso2:"CZ",name:"Czech Republic",dial:"420"},{iso2:"DK",name:"Denmark",dial:"45"},{iso2:"DJ",name:"Djibouti",dial:"253"},{iso2:"DM",name:"Dominica",dial:"1767"},{iso2:"DO",name:"Dominican Republic",dial:"1809"},{iso2:"EC",name:"Ecuador",dial:"593"},{iso2:"EG",name:"Egypt",dial:"20"},{iso2:"SV",name:"El Salvador",dial:"503"},{iso2:"GQ",name:"Equatorial Guinea",dial:"240"},{iso2:"ER",name:"Eritrea",dial:"291"},{iso2:"EE",name:"Estonia",dial:"372"},{iso2:"SZ",name:"Eswatini",dial:"268"},{iso2:"ET",name:"Ethiopia",dial:"251"},{iso2:"FJ",name:"Fiji",dial:"679"},{iso2:"FI",name:"Finland",dial:"358"},{iso2:"FR",name:"France",dial:"33"},{iso2:"GA",name:"Gabon",dial:"241"},{iso2:"GM",name:"Gambia",dial:"220"},{iso2:"GE",name:"Georgia",dial:"995"},{iso2:"DE",name:"Germany",dial:"49"},{iso2:"GH",name:"Ghana",dial:"233"},{iso2:"GR",name:"Greece",dial:"30"},{iso2:"GL",name:"Greenland",dial:"299"},{iso2:"GD",name:"Grenada",dial:"1473"},{iso2:"GT",name:"Guatemala",dial:"502"},{iso2:"GN",name:"Guinea",dial:"224"},{iso2:"GW",name:"Guinea-Bissau",dial:"245"},{iso2:"GY",name:"Guyana",dial:"592"},{iso2:"HT",name:"Haiti",dial:"509"},{iso2:"HN",name:"Honduras",dial:"504"},{iso2:"HK",name:"Hong Kong",dial:"852"},{iso2:"HU",name:"Hungary",dial:"36"},{iso2:"IS",name:"Iceland",dial:"354"},{iso2:"IN",name:"India",dial:"91"},{iso2:"ID",name:"Indonesia",dial:"62"},{iso2:"IR",name:"Iran",dial:"98"},{iso2:"IQ",name:"Iraq",dial:"964"},{iso2:"IE",name:"Ireland",dial:"353"},{iso2:"IL",name:"Israel",dial:"972"},{iso2:"IT",name:"Italy",dial:"39"},{iso2:"JM",name:"Jamaica",dial:"1876"},{iso2:"JP",name:"Japan",dial:"81"},{iso2:"JO",name:"Jordan",dial:"962"},{iso2:"KZ",name:"Kazakhstan",dial:"7"},{iso2:"KE",name:"Kenya",dial:"254"},{iso2:"KI",name:"Kiribati",dial:"686"},{iso2:"KW",name:"Kuwait",dial:"965"},{iso2:"KG",name:"Kyrgyzstan",dial:"996"},{iso2:"LA",name:"Laos",dial:"856"},{iso2:"LV",name:"Latvia",dial:"371"},{iso2:"LB",name:"Lebanon",dial:"961"},{iso2:"LS",name:"Lesotho",dial:"266"},{iso2:"LR",name:"Liberia",dial:"231"},{iso2:"LY",name:"Libya",dial:"218"},{iso2:"LI",name:"Liechtenstein",dial:"423"},{iso2:"LT",name:"Lithuania",dial:"370"},{iso2:"LU",name:"Luxembourg",dial:"352"},{iso2:"MO",name:"Macau",dial:"853"},{iso2:"MG",name:"Madagascar",dial:"261"},{iso2:"MW",name:"Malawi",dial:"265"},{iso2:"MY",name:"Malaysia",dial:"60"},{iso2:"MV",name:"Maldives",dial:"960"},{iso2:"ML",name:"Mali",dial:"223"},{iso2:"MT",name:"Malta",dial:"356"},{iso2:"MR",name:"Mauritania",dial:"222"},{iso2:"MU",name:"Mauritius",dial:"230"},{iso2:"MX",name:"Mexico",dial:"52"},{iso2:"FM",name:"Micronesia",dial:"691"},{iso2:"MD",name:"Moldova",dial:"373"},{iso2:"MC",name:"Monaco",dial:"377"},{iso2:"MN",name:"Mongolia",dial:"976"},{iso2:"ME",name:"Montenegro",dial:"382"},{iso2:"MA",name:"Morocco",dial:"212"},{iso2:"MZ",name:"Mozambique",dial:"258"},{iso2:"MM",name:"Myanmar",dial:"95"},{iso2:"NA",name:"Namibia",dial:"264"},{iso2:"NR",name:"Nauru",dial:"674"},{iso2:"NP",name:"Nepal",dial:"977"},{iso2:"NL",name:"Netherlands",dial:"31"},{iso2:"NZ",name:"New Zealand",dial:"64"},{iso2:"NI",name:"Nicaragua",dial:"505"},{iso2:"NE",name:"Niger",dial:"227"},{iso2:"NG",name:"Nigeria",dial:"234"},{iso2:"KP",name:"North Korea",dial:"850"},{iso2:"MK",name:"North Macedonia",dial:"389"},{iso2:"NO",name:"Norway",dial:"47"},{iso2:"OM",name:"Oman",dial:"968"},{iso2:"PK",name:"Pakistan",dial:"92"},{iso2:"PW",name:"Palau",dial:"680"},{iso2:"PS",name:"Palestine",dial:"970"},{iso2:"PA",name:"Panama",dial:"507"},{iso2:"PG",name:"Papua New Guinea",dial:"675"},{iso2:"PY",name:"Paraguay",dial:"595"},{iso2:"PE",name:"Peru",dial:"51"},{iso2:"PH",name:"Philippines",dial:"63"},{iso2:"PL",name:"Poland",dial:"48"},{iso2:"PT",name:"Portugal",dial:"351"},{iso2:"PR",name:"Puerto Rico",dial:"1787"},{iso2:"QA",name:"Qatar",dial:"974"},{iso2:"RO",name:"Romania",dial:"40"},{iso2:"RU",name:"Russia",dial:"7"},{iso2:"RW",name:"Rwanda",dial:"250"},{iso2:"WS",name:"Samoa",dial:"685"},{iso2:"SM",name:"San Marino",dial:"378"},{iso2:"ST",name:"São Tomé and Príncipe",dial:"239"},{iso2:"SA",name:"Saudi Arabia",dial:"966"},{iso2:"SN",name:"Senegal",dial:"221"},{iso2:"RS",name:"Serbia",dial:"381"},{iso2:"SC",name:"Seychelles",dial:"248"},{iso2:"SL",name:"Sierra Leone",dial:"232"},{iso2:"SG",name:"Singapore",dial:"65"},{iso2:"SK",name:"Slovakia",dial:"421"},{iso2:"SI",name:"Slovenia",dial:"386"},{iso2:"SB",name:"Solomon Islands",dial:"677"},{iso2:"SO",name:"Somalia",dial:"252"},{iso2:"ZA",name:"South Africa",dial:"27"},{iso2:"KR",name:"South Korea",dial:"82"},{iso2:"SS",name:"South Sudan",dial:"211"},{iso2:"ES",name:"Spain",dial:"34"},{iso2:"LK",name:"Sri Lanka",dial:"94"},{iso2:"SD",name:"Sudan",dial:"249"},{iso2:"SR",name:"Suriname",dial:"597"},{iso2:"SE",name:"Sweden",dial:"46"},{iso2:"CH",name:"Switzerland",dial:"41"},{iso2:"SY",name:"Syria",dial:"963"},{iso2:"TW",name:"Taiwan",dial:"886"},{iso2:"TJ",name:"Tajikistan",dial:"992"},{iso2:"TZ",name:"Tanzania",dial:"255"},{iso2:"TH",name:"Thailand",dial:"66"},{iso2:"TL",name:"Timor-Leste",dial:"670"},{iso2:"TG",name:"Togo",dial:"228"},{iso2:"TO",name:"Tonga",dial:"676"},{iso2:"TT",name:"Trinidad and Tobago",dial:"1868"},{iso2:"TN",name:"Tunisia",dial:"216"},{iso2:"TR",name:"Turkey",dial:"90"},{iso2:"TM",name:"Turkmenistan",dial:"993"},{iso2:"TV",name:"Tuvalu",dial:"688"},{iso2:"UG",name:"Uganda",dial:"256"},{iso2:"UA",name:"Ukraine",dial:"380"},{iso2:"AE",name:"United Arab Emirates",dial:"971"},{iso2:"GB",name:"United Kingdom",dial:"44"},{iso2:"US",name:"United States",dial:"1"},{iso2:"UY",name:"Uruguay",dial:"598"},{iso2:"UZ",name:"Uzbekistan",dial:"998"},{iso2:"VU",name:"Vanuatu",dial:"678"},{iso2:"VA",name:"Vatican City",dial:"379"},{iso2:"VE",name:"Venezuela",dial:"58"},{iso2:"VN",name:"Vietnam",dial:"84"},{iso2:"YE",name:"Yemen",dial:"967"},{iso2:"ZM",name:"Zambia",dial:"260"},{iso2:"ZW",name:"Zimbabwe",dial:"263"}].map(a=>{var b;return{...a,flag:2!==(b=a.iso2).length?"🏳":String.fromCodePoint(...b.toUpperCase().split("").map(a=>127462+(a.charCodeAt(0)-65)))}}).sort((a,b)=>a.name.localeCompare(b.name)),x=new Map(w.map(a=>[a.iso2,a]));function y(a){return x.get(a.toUpperCase())}let z={1:"US",7:"RU"},A=[...w].sort((a,b)=>{if(b.dial.length!==a.dial.length)return b.dial.length-a.dial.length;let c=z[a.dial];if(c){if(a.iso2===c&&b.iso2!==c)return -1;if(b.iso2===c&&a.iso2!==c)return 1}return a.name.localeCompare(b.name)});function B(a){if(!a)return null;let b=a.replace(/^\+/,"").replace(/\D/g,"");for(let a of A)if(b.startsWith(a.dial))return a;return null}function C(a,b){let c=a.replace(/^\+/,"").replace(/\D/g,"");return c.startsWith(b.dial)?c.slice(b.dial.length):c}function D(a,b){let c=b.replace(/\D/g,"");return`+${a.dial}${c}`}function E({value:a,onChange:d,placeholder:e="Subscriber number",defaultCountryIso2:f="US",disabled:g,id:h}){let i=(0,c.useMemo)(()=>B(a)??y(f)??w[0],[a,f]),[k,l]=(0,c.useState)(i);(0,c.useEffect)(()=>{let b=B(a);b&&b.iso2!==k.iso2&&l(b)},[a]);let m=C(a,k);return(0,b.jsxs)("div",{className:"flex items-stretch gap-2",children:[(0,b.jsxs)(v.Select,{value:k.iso2,onValueChange:a=>{let b=y(a);b&&(l(b),d(D(b,m)))},disabled:g,children:[(0,b.jsx)(v.SelectTrigger,{className:"w-[140px] flex-shrink-0","aria-label":"Country code",children:(0,b.jsx)(v.SelectValue,{children:(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-base leading-none",children:k.flag}),(0,b.jsxs)("span",{className:"text-xs text-muted-foreground",children:["+",k.dial]})]})})}),(0,b.jsx)(v.SelectContent,{className:"max-h-[320px]",children:w.map(a=>(0,b.jsx)(v.SelectItem,{value:a.iso2,children:(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-base leading-none",children:a.flag}),(0,b.jsx)("span",{className:"text-sm",children:a.name}),(0,b.jsxs)("span",{className:"text-xs text-muted-foreground",children:["+",a.dial]})]})},a.iso2))})]}),(0,b.jsx)(j.Input,{id:h,type:"tel",inputMode:"tel",placeholder:e,value:m,onChange:a=>(a=>{if(a.startsWith("+")){let b=B(a);if(b){l(b),d(D(b,C(a,b)));return}}d(D(k,a))})(a.target.value),disabled:g,className:"flex-1"})]})}let F=(0,q.default)("Phone",[["path",{d:"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z",key:"foiqr5"}]]);a.s(["WhatsAppCard",0,function(){let{data:a}=(0,e.useConfig)(),{data:j}=(0,f.useHealth)(),l=(0,d.useQueryClient)(),m=j?.messaging?.whatsapp,[n,o]=(0,c.useState)(""),[q,r]=(0,c.useState)(""),[s,v]=(0,c.useState)(null),[w,x]=(0,c.useState)(null),[y,z]=(0,c.useState)(null),A=h("/messaging/whatsapp/qr",a=>"ok"===a.state||"logged_out"===a.state,3e3);if(!a||!j)return null;let B=async a=>{x(null),z(null);let b=await g.api.patch("/config",a);await l.invalidateQueries({queryKey:["config"]}),await l.invalidateQueries({queryKey:["health"]}),b.requiresRestart.length>0?z(`Updated. Restart daemon for: ${b.requiresRestart.join(", ")}`):z("Updated.")},C=async()=>{v("toggle"),x(null),z(null);try{let b=a.whatsappEnabled,c=await g.api.patch("/config",{whatsappEnabled:!b,...n?{whatsappOwnerPhone:n}:{},...q?{whatsappAuthDir:q}:{}});if(b)A.reset();else try{let a=await g.api.post("/messaging/whatsapp/pair");"ok"!==a.state&&A.start()}catch(a){x(a instanceof Error?a.message:"Failed to start pairing")}await l.invalidateQueries({queryKey:["config"]}),await l.invalidateQueries({queryKey:["health"]}),c.requiresRestart.length>0?z(`Updated. Restart daemon for: ${c.requiresRestart.join(", ")}`):z("Updated.")}catch(a){x(a instanceof Error?a.message:"Failed to toggle WhatsApp")}finally{v(null)}},D=async()=>{v("config");try{await B({...n?{whatsappOwnerPhone:n}:{},...q?{whatsappAuthDir:q}:{}})}catch(a){x(a instanceof Error?a.message:"Failed to save")}finally{v(null)}},G=async()=>{x(null);try{let a=await g.api.post("/messaging/whatsapp/pair");"ok"!==a.state&&A.start(),await l.invalidateQueries({queryKey:["health"]})}catch(a){x(a instanceof Error?a.message:"Failed to request pairing")}},H=async()=>{try{await g.api.get("/messaging/whatsapp/qr"),A.start()}catch(a){x(a instanceof Error?a.message:"Failed to fetch QR")}},I=async()=>{if(window.confirm("Reset WhatsApp connection?\n\nThis wipes the cached pairing data so you can scan a fresh QR from scratch. Use this if WhatsApp says the device is unlinked or pairing keeps failing.")){v("reset"),x(null),z(null);try{let a=await g.api.post("/messaging/whatsapp/reset");await l.invalidateQueries({queryKey:["health"]}),"ok"===a.state?(z("Reset complete. WhatsApp reconnected."),A.reset()):"not_initialized"===a.state?(z("Reset complete. Enable WhatsApp to start a fresh pairing flow."),A.reset()):(z("Reset complete. Scan the new QR to pair the device."),A.start())}catch(a){x(a instanceof Error?a.message:"Failed to reset WhatsApp")}finally{v(null)}}},J=A.status;return(0,b.jsx)(p.ConnectionCard,{name:"WhatsApp",icon:(0,b.jsx)(F,{className:"h-4 w-4"}),status:(0,p.deriveMessagingStatus)(m),error:m?.error,metadata:(0,p.messagingMetadata)(m),children:(0,b.jsxs)("div",{className:"space-y-4 mt-2",children:[w&&(0,b.jsx)(k.Alert,{variant:"error",children:w}),y&&(0,b.jsx)(k.Alert,{variant:"warning",children:y}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(i.Button,{size:"sm",variant:a.whatsappEnabled?"default":"outline",disabled:"toggle"===s||!a.whatsappEnabled&&!a.whatsappOwnerPhoneConfigured&&!n,onClick:C,children:a.whatsappEnabled?"Disable WhatsApp":"Enable WhatsApp"}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a.whatsappEnabled?"Adapter hot-reloads on save — no daemon restart needed.":"Set the owner phone first, then click Enable to start pairing."})]}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground",htmlFor:"whatsapp-owner-phone",children:"Owner phone"}),(0,b.jsx)(E,{id:"whatsapp-owner-phone",value:n,onChange:o,placeholder:a.whatsappOwnerPhoneConfigured?"Configured — type to replace":"Subscriber number",defaultCountryIso2:"US"})]}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground",children:"Auth dir"}),(0,b.jsx)(t.DirectoryPickerField,{value:q,onChange:r,title:"Choose WhatsApp auth directory",placeholder:a.whatsappAuthDir||"~/.personal-agent/whatsapp/auth",defaultPath:a.whatsappAuthDir||void 0})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:"config"===s,onClick:D,children:"config"===s?"Saving...":"Save Config"}),(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:!a.whatsappEnabled||A.active,title:a.whatsappEnabled?void 0:"Enable WhatsApp first",onClick:G,children:A.active?"Pairing...":"Pair device"}),(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:!a.whatsappEnabled,onClick:H,children:"Refresh QR"}),(0,b.jsx)(i.Button,{size:"sm",variant:"destructive",disabled:"reset"===s,title:"Wipe cached pairing data and start over (use after unlinking from the phone)",onClick:I,children:"reset"===s?"Resetting...":"Reset connection"}),A.active&&(0,b.jsx)(i.Button,{size:"sm",variant:"ghost",onClick:()=>A.reset(),children:"Stop polling"})]}),J&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(u.Separator,{}),(0,b.jsxs)("div",{className:"space-y-3",children:[J.dataUrl?(0,b.jsxs)("div",{className:"flex flex-col items-center gap-2 rounded-lg bg-muted p-4",children:[(0,b.jsx)("img",{src:J.dataUrl,alt:"WhatsApp pairing QR",width:320,height:320,className:"rounded bg-white p-2"}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Open WhatsApp → Settings → Linked Devices → Link a device, and scan this code."})]}):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"ok"===J.state?"WhatsApp is paired and connected.":"connecting"===J.state?"Connecting to WhatsApp...":"awaiting_qr"===J.state?"Generating QR code...":"logged_out"===J.state?"Session logged out — click Pair device to start over.":"Waiting for QR code..."}),J.error&&(0,b.jsx)(k.Alert,{variant:"error",children:J.error})]})]})]})})}],22696);var G=a.i(30400);a.s(["DestinationSelector",0,function(){let{data:a}=(0,e.useConfig)(),{data:h}=(0,f.useHealth)(),j=(0,d.useQueryClient)(),k=Object.entries(h?.messaging??{}).filter(([a,b])=>"dashboard"!==a&&b.configured&&b.ownerConfigured).map(([a])=>a),l=a?.defaultNotificationPlatforms??[],[m,n]=(0,c.useState)(l),[o,p]=(0,c.useState)(!1),[q,r]=(0,c.useState)(null),s=l.join(",");if((0,c.useEffect)(()=>{n(l)},[s]),!a||!h)return null;let t=m.length!==l.length||m.some(a=>!l.includes(a)),u=async()=>{p(!0),r(null);try{let a=await g.api.patch("/config",{defaultNotificationPlatforms:m});await Promise.all([j.invalidateQueries({queryKey:["config"]}),j.invalidateQueries({queryKey:["health"]})]),a.requiresRestart.length>0&&r(`Updated. Restart daemon for: ${a.requiresRestart.join(", ")}`)}finally{p(!1)}};return(0,b.jsxs)(G.Card,{children:[(0,b.jsx)(G.CardHeader,{children:(0,b.jsx)(G.CardTitle,{className:"text-base",children:"Default Reminder Destinations"})}),(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[k.map(a=>(0,b.jsx)(i.Button,{size:"sm",variant:m.includes(a)?"default":"outline",onClick:()=>{n(b=>b.includes(a)?b.filter(b=>b!==a):[...b,a])},className:"capitalize",disabled:o,children:a},a)),0===k.length&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"No eligible messaging app is configured yet."})]}),(0,b.jsx)("p",{className:"max-w-prose text-xs text-muted-foreground",children:"Every selected destination receives the same reminder. Replies still go back to the app where the conversation happened, and you can override the destination for a single request without changing this default."}),q&&(0,b.jsx)("p",{className:"text-xs text-warning",children:q}),(0,b.jsx)(i.Button,{size:"sm",variant:"outline",disabled:!t||o,onClick:u,children:o?"Saving...":"Save Reminder Destinations"})]})]})}],34389)}];
2
2
 
3
3
  //# sourceMappingURL=packages_dashboard_src_components_connections_slack-card_tsx_0mahejj._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[77836,13808,56611,a=>{"use strict";var b=a.i(39752),c=a.i(7384),d=a.i(869),e=a.i(48558),f=a.i(19958),g=a.i(40091);a.s(["EventRow",0,function({event:a,onClick:h}){let i=f.EVENT_TYPE_COLORS[a.action_type]??"gray",j=f.RESULT_COLORS[a.result]??"gray",k=(0,g.parseModelUsage)(a.model_usage_json),l=(0,g.pickDisplayModel)(a.model_used,a.model_usage_json),m=l?(0,g.formatShortModelName)(l):null,n=null!=a.model_used&&k.length>0&&k.some(b=>b.modelId!==a.model_used);return(0,b.jsxs)("tr",{onClick:h,className:"cursor-pointer border-b border-border transition-colors hover:bg-muted/50",children:[(0,b.jsx)("td",{className:"px-3 py-2 text-xs font-mono tabular-nums text-muted-foreground whitespace-nowrap",children:(0,b.jsxs)(d.Tooltip,{children:[(0,b.jsx)(d.TooltipTrigger,{children:(0,e.formatAbsoluteTime)(a.started_at)}),(0,b.jsx)(d.TooltipContent,{children:(0,e.formatRelativeTime)(a.started_at)})]})}),(0,b.jsx)("td",{className:"px-3 py-2",children:(0,b.jsx)(c.Badge,{variant:i,children:a.action_type})}),(0,b.jsx)("td",{className:"hidden xl:table-cell px-3 py-2 text-xs text-muted-foreground",children:a.trigger}),(0,b.jsx)("td",{className:"hidden lg:table-cell px-3 py-2",children:m&&(n?(0,b.jsxs)(d.Tooltip,{children:[(0,b.jsx)(d.TooltipTrigger,{children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,b.jsx)(c.Badge,{variant:(0,g.modelBadgeVariant)(l),children:m}),(0,b.jsx)(c.Badge,{variant:"amber",className:"text-[10px] uppercase tracking-wide",children:"routed"})]})}),(0,b.jsx)(d.TooltipContent,{children:(0,b.jsxs)("div",{className:"space-y-0.5 text-xs font-mono",children:[(0,b.jsxs)("div",{children:["requested: ",(0,g.formatShortModelName)(a.model_used)]}),k.map(a=>(0,b.jsxs)("div",{children:["billed: ",(0,g.formatShortModelName)(a.modelId)]},a.modelId))]})})]}):(0,b.jsx)(c.Badge,{variant:(0,g.modelBadgeVariant)(l),children:m}))}),(0,b.jsx)("td",{className:"hidden xl:table-cell px-3 py-2 text-xs font-mono text-muted-foreground",children:a.model_used?(0,b.jsxs)(d.Tooltip,{children:[(0,b.jsx)(d.TooltipTrigger,{children:(0,e.formatTokens)(a.tokens_input,a.tokens_output,a.cache_creation_tokens,a.cache_read_tokens)}),(0,b.jsx)(d.TooltipContent,{children:(0,b.jsxs)("div",{className:"space-y-0.5 text-xs font-mono",children:[(0,b.jsxs)("div",{children:["fresh in: ",(0,e.formatTokenCount)(a.tokens_input)]}),(0,b.jsxs)("div",{children:["cache write: ",(0,e.formatTokenCount)(a.cache_creation_tokens)]}),(0,b.jsxs)("div",{children:["cache read: ",(0,e.formatTokenCount)(a.cache_read_tokens)]}),(0,b.jsxs)("div",{className:"border-t border-border pt-0.5 mt-1",children:["out: ",(0,e.formatTokenCount)(a.tokens_output)]})]})})]}):null}),(0,b.jsx)("td",{className:"px-3 py-2 text-xs font-mono text-muted-foreground",children:(0,e.formatCurrency)(a.cost_usd)}),(0,b.jsx)("td",{className:"hidden lg:table-cell px-3 py-2 text-xs font-mono text-muted-foreground",children:(0,e.formatDuration)(a.duration_ms)}),(0,b.jsx)("td",{className:"px-3 py-2",children:(0,b.jsx)(c.Badge,{variant:j,children:a.result})})]})}],77836);var h=a.i(34542),i=a.i(61213),j=a.i(57216),k=a.i(78019),l=a.i(33432),m=a.i(81130),n=a.i(79668);function o({docId:a,anchor:c=null,label:d="What is this?",className:f}){let g=(0,m.useQueryClient)();return(0,b.jsxs)("button",{type:"button",onClick:()=>(0,n.openDocsHelpSlideover)(g,{docId:a,anchor:c,autoFocusComposer:!1}),className:(0,e.cn)("inline-flex items-center gap-1 rounded-md border border-border bg-card px-2.5 py-1 text-xs text-muted-foreground transition hover:bg-accent hover:text-foreground",f),"data-testid":"docs-learn-more",children:[(0,b.jsx)("span",{children:d}),(0,b.jsx)(l.ArrowUpRight,{className:"h-3 w-3","aria-hidden":"true"})]})}a.s(["DocsLearnMore",0,o],13808);let p={"routine.morning_routine":"features/routines/morning-routine","routine.evening_review":"features/routines/evening-review","routine.weekly_review":"features/routines/weekly-review","routine.activity_scan":"features/routines/activity-scan","routine.roadmap_refresh":"features/memory-files/roadmap","routine.today_refresh":"features/memory-files/today","routine.user_profile_sweep":"features/memory-files/user-profile","message.received":"features/messaging/overview","scheduled.task":"features/memory-files/schedule","schedule.approaching":"features/operations/schedule-approaching","routine.morning_routine_initial":"features/routines/morning-routine","routine.morning_routine_today":"features/routines/morning-routine","routine.morning_routine_journal":"features/routines/morning-routine","dashboard.docs_qa":"features/operations/activity-and-conversations",gmail_classify:"features/integrations/mail"},q=[{prefix:"routine.custom.",docId:"features/routines/custom-routines"},{prefix:"setup.",docId:"guides/setup-wizard"},{prefix:"calendar.",docId:"features/integrations/calendar"},{prefix:"git.",docId:"features/integrations/git"}];function r({event:a}){let d,l,m,[n,t]=(0,h.useState)(!1),u=f.RESULT_COLORS[a.result]??"gray",v=null;if(a.detail)try{v=JSON.stringify(JSON.parse(a.detail),null,2)}catch{v=a.detail}return(0,b.jsxs)(i.SheetContent,{className:"flex flex-col",children:[(0,b.jsx)(i.SheetHeader,{children:(0,b.jsx)(i.SheetTitle,{children:"Event Detail"})}),(0,b.jsxs)("div",{className:"mt-4 flex-1 space-y-4 overflow-y-auto pr-2 -mr-2",children:[(0,b.jsx)(s,{label:"Event ID",children:(0,b.jsx)("code",{className:"font-mono text-xs",children:a.event_id})}),(0,b.jsx)(s,{label:"Type",children:(0,b.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,b.jsx)(c.Badge,{variant:"blue",children:a.action_type}),(d=function(a){let b=p[a];if(b)return b;for(let b of q)if(a.startsWith(b.prefix))return b.docId;return null}(a.action_type))?(0,b.jsx)(o,{docId:d,label:"Learn →"}):null]})}),(0,b.jsx)(s,{label:"Trigger",children:(0,b.jsx)("span",{className:"text-sm",children:a.trigger})}),(0,b.jsx)(s,{label:"Result",children:(0,b.jsx)(c.Badge,{variant:u,children:a.result})}),(0,b.jsx)(s,{label:"Started",children:(0,b.jsx)("span",{className:"text-sm",children:(0,e.formatAbsoluteTime)(a.started_at)})}),a.completed_at&&(0,b.jsx)(s,{label:"Completed",children:(0,b.jsx)("span",{className:"text-sm",children:(0,e.formatAbsoluteTime)(a.completed_at)})}),(0,b.jsx)(s,{label:"Duration",children:(0,b.jsx)("span",{className:"text-sm font-mono",children:(0,e.formatDuration)(a.duration_ms)})}),(m=1===(l=(0,g.parseModelUsage)(a.model_usage_json)).length&&l[0]?.modelId===a.model_used,0===l.length||m?(0,b.jsx)(s,{label:"Model",children:(0,b.jsx)("span",{className:"text-sm",children:a.model_used??"—"})}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{label:"Model (requested)",children:(0,b.jsx)("span",{className:"text-sm",children:a.model_used??"—"})}),(0,b.jsx)(s,{label:"Model (billed)",children:(0,b.jsx)("div",{className:"space-y-0.5 text-right",children:l.map(a=>(0,b.jsxs)("div",{className:"text-sm font-mono",children:[a.modelId,(0,b.jsxs)("span",{className:"ml-2 text-xs text-muted-foreground",children:["(",(0,e.formatCurrency)(a.costUsd),")"]})]},a.modelId))})})]})),a.model_used&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{label:"Input (fresh)",children:(0,b.jsx)("span",{className:"text-sm font-mono",children:(0,e.formatTokenCount)(a.tokens_input)})}),(0,b.jsx)(s,{label:"Input (cache write)",children:(0,b.jsx)("span",{className:"text-sm font-mono",children:(0,e.formatTokenCount)(a.cache_creation_tokens)})}),(0,b.jsx)(s,{label:"Input (cache read)",children:(0,b.jsx)("span",{className:"text-sm font-mono",children:(0,e.formatTokenCount)(a.cache_read_tokens)})}),(0,b.jsx)(s,{label:"Input total",children:(0,b.jsx)("span",{className:"text-sm font-mono",children:(0,e.formatTokenCount)((a.tokens_input??0)+(a.cache_creation_tokens??0)+(a.cache_read_tokens??0))})}),(0,b.jsx)(s,{label:"Output",children:(0,b.jsx)("span",{className:"text-sm font-mono",children:(0,e.formatTokenCount)(a.tokens_output)})})]}),(0,b.jsx)(s,{label:"Turns",children:(0,b.jsx)("span",{className:"text-sm font-mono",children:a.num_turns})}),(0,b.jsx)(s,{label:"Cost",children:(0,b.jsx)("span",{className:"text-sm font-mono",children:(0,e.formatCurrency)(a.cost_usd)})}),v&&(0,b.jsxs)(j.Collapsible,{open:n,onOpenChange:t,children:[(0,b.jsxs)(j.CollapsibleTrigger,{className:"flex w-full items-center gap-1 text-sm text-muted-foreground hover:text-foreground",children:["Detail",(0,b.jsx)(k.ChevronDown,{className:(0,e.cn)("h-3 w-3 transition-transform",n&&"rotate-180")})]}),(0,b.jsx)(j.CollapsibleContent,{children:(0,b.jsx)("pre",{className:"mt-2 max-h-64 overflow-auto rounded-md bg-muted p-3 text-xs font-mono",children:v})})]}),a.error&&(0,b.jsxs)("div",{className:"rounded-lg bg-destructive/10 p-3",children:[(0,b.jsx)("p",{className:"text-xs font-medium text-destructive",children:"Error"}),(0,b.jsx)("pre",{className:"mt-1 whitespace-pre-wrap text-xs text-destructive",children:a.error})]})]})]})}function s({label:a,children:c}){return(0,b.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,b.jsx)("span",{className:"shrink-0 text-sm text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"text-right",children:c})]})}a.s(["EventDetailSheet",0,function({event:a,onClose:c}){return(0,b.jsx)(i.Sheet,{open:!!a,onOpenChange:a=>!a&&c(),children:a&&(0,b.jsx)(r,{event:a})})}],56611)}];
2
+
3
+ //# sourceMappingURL=packages_dashboard_src_components_logs_event-row_tsx_0gwfgqo._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[47278,7117,54283,14445,a=>{"use strict";var b=a.i(39752),c=a.i(34542),d=a.i(62988),e=a.i(82740),f=a.i(21218),g=a.i(28314),h=a.i(32307),i=a.i(36608),j=a.i(96336),k=a.i(59974),l=a.i(8212),m=a.i(7384),n=a.i(29629),o=a.i(48558),p=a.i(62588),q=a.i(81130);function r(a,b){return(0,p.useQuery)({queryKey:["mail-health",a],queryFn:()=>k.api.get(`/mail/${encodeURIComponent(a)}/health`),refetchInterval:1e4,enabled:b})}function s(){let a=(0,q.useQueryClient)();return()=>{a.invalidateQueries({queryKey:["mail-providers"]}),a.invalidateQueries({queryKey:["mail-accounts"]}),a.invalidateQueries({queryKey:["mail-health"]})}}async function t(a,b,c){let d=new Set(a);c?d.add(b):d.delete(b);let e=["gmail","outlook","yahoo","icloud"].filter(a=>d.has(a));return await k.api.patch("/mail/providers",{enabledKinds:e}),e}a.s(["toggleProviderEnabled",0,t,"useInvalidateMail",0,s,"useMailAccountHealth",0,r,"useMailAccounts",0,function(){return(0,p.useQuery)({queryKey:["mail-accounts"],queryFn:()=>k.api.get("/mail/accounts"),refetchInterval:1e4})},"useMailProviders",0,function(){return(0,p.useQuery)({queryKey:["mail-providers"],queryFn:()=>k.api.get("/mail/providers"),refetchInterval:3e4})}],7117);let u={healthy:{variant:"green",label:"Healthy"},requires_consent:{variant:"amber",label:"Re-authenticate"},degraded:{variant:"red",label:"Degraded"}};function v({account:a,highlight:d=!1,hideActive:e=!1,hideHealth:h=!1,onReauthenticate:l,isLastOfKind:o=!1,onAfterRemove:p}){let q=(0,c.useRef)(null),t=(0,g.useConfirm)(),y=s(),[z,A]=(0,c.useState)(!1),[B,C]=(0,c.useState)(null);(0,c.useEffect)(()=>{d&&q.current&&q.current.scrollIntoView({behavior:"smooth",block:"center"})},[d]);let D=r(a.id,!h).data??null,E="yahoo"===a.kind||"icloud"===a.kind,[F,G]=(0,c.useState)(!1),H=async()=>{C(null),A(!0);try{await k.api.patch(`/mail/accounts/${encodeURIComponent(a.id)}`,{active:!a.active}),y()}catch(a){C(a instanceof Error?a.message:"Failed to update")}finally{A(!1)}},I=async()=>{if(await t({title:`Remove ${a.email}?`,description:"Local credentials are revoked and the account is removed from this app. The mailbox itself is untouched at the provider."+(o?" This is the last account of its kind, so the provider will also be disabled — re-authenticate and toggle Enable to bring it back.":""),confirmLabel:"Remove",variant:"destructive"})){C(null),A(!0);try{await k.api.delete(`/mail/accounts/${encodeURIComponent(a.id)}`),p&&await p(),y()}catch(a){C(a instanceof Error?a.message:"Failed to remove")}finally{A(!1)}}},J=u[a.authStatus],K=h||!a.idleEnabled?null:D?.idleFallbackUntilUtc?{label:"polling (IDLE down)",variant:"amber"}:{label:"IDLE",variant:"green"};return(0,b.jsxs)("div",{ref:q,id:`account-${a.id}`,className:"rounded-md border p-3 transition-colors "+(d?"border-amber-400 ring-1 ring-amber-300/60":"border-border"),children:[(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)(i.Mail,{className:"mt-0.5 h-4 w-4 shrink-0 text-muted-foreground"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,b.jsx)("span",{className:"text-sm font-medium text-foreground truncate",children:a.email}),a.label&&(0,b.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",a.label,")"]}),(0,b.jsx)(m.Badge,{variant:J.variant,children:J.label}),K&&(0,b.jsx)(m.Badge,{variant:K.variant,children:K.label})]}),!h&&(0,b.jsx)(x,{health:D})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[!e&&(0,b.jsxs)("label",{className:"flex items-center gap-1 text-xs cursor-pointer select-none",children:[(0,b.jsx)("input",{type:"checkbox",checked:a.active,disabled:z,onChange:()=>void H(),className:"h-3.5 w-3.5 rounded border-border"}),"Active"]}),"requires_consent"===a.authStatus&&(E?(0,b.jsx)(f.Button,{size:"sm",variant:"outline",disabled:z,onClick:()=>G(a=>!a),className:"h-7 text-xs px-2",children:F?"Cancel":"Re-authenticate"}):l&&(0,b.jsx)(f.Button,{size:"sm",variant:"outline",disabled:z,onClick:()=>void l(),className:"h-7 text-xs px-2",children:"Re-authenticate"})),(0,b.jsx)(f.Button,{size:"sm",variant:"outline",onClick:()=>void I(),disabled:z,className:"h-7 px-2",title:"Remove account",children:(0,b.jsx)(j.Trash2,{className:"h-3.5 w-3.5"})})]})]}),B&&(0,b.jsx)(n.Alert,{variant:"error",className:"mt-2",children:B}),E&&F&&(0,b.jsx)(w,{accountId:a.id,onSuccess:()=>{G(!1),y()}})]})}function w({accountId:a,onSuccess:d}){let[e,g]=(0,c.useState)(""),[h,i]=(0,c.useState)(!1),[j,m]=(0,c.useState)(null),o=async()=>{i(!0),m(null);try{await k.api.post(`/config/mail/app-password/${encodeURIComponent(a)}/refresh`,{appPassword:e.trim()}),g(""),d()}catch(a){m(a instanceof Error?a.message:"Failed to refresh")}finally{i(!1)}};return(0,b.jsxs)("div",{className:"mt-2 rounded-md border border-amber-200 bg-amber-50/50 p-3 dark:border-amber-900 dark:bg-amber-950/30 space-y-2",children:[(0,b.jsx)("p",{className:"text-xs text-foreground",children:"Generate a new app password at the provider, paste it here, and the daemon will swap it in place — the polling cursor and account ID stay intact."}),(0,b.jsx)(l.Input,{type:"password",value:e,onChange:a=>g(a.target.value),placeholder:"paste new app password",className:"h-8 text-xs"}),(0,b.jsx)("div",{className:"flex gap-2",children:(0,b.jsx)(f.Button,{size:"sm",onClick:()=>void o(),disabled:h||0===e.trim().length,className:"h-7 text-xs px-3",children:h?"Verifying…":"Update password"})}),j&&(0,b.jsx)(n.Alert,{variant:"error",children:j})]})}function x({health:a}){if(!a)return(0,b.jsx)("p",{className:"mt-1 text-[11px] text-muted-foreground",children:"Waiting for first poll…"});let c=a.lastPollAtUtc,d=null!=c&&Date.now()-(0,o.parseUtcDate)(c).getTime()>9e5;return(0,b.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-x-3 gap-y-1 text-[11px] text-muted-foreground",children:[(0,b.jsxs)("span",{children:["last poll:"," ",c?(0,b.jsxs)("span",{title:(0,o.formatAbsoluteTime)(c),className:d?"text-amber-600 dark:text-amber-400":void 0,children:[(0,o.formatRelativeTime)(c),d?" · stale":""]}):(0,b.jsx)("span",{children:"never"})]}),a.consecutiveErrorCount>0&&(0,b.jsxs)("span",{className:"text-amber-600 dark:text-amber-400",children:[a.consecutiveErrorCount," consecutive errors"]}),a.lastError&&(0,b.jsxs)("span",{className:"flex items-center gap-1 text-red-600 dark:text-red-400 max-w-full truncate",title:a.lastError,children:[(0,b.jsx)(h.AlertTriangle,{className:"h-3 w-3 shrink-0"}),a.lastError]})]})}var y=a.i(30400),z=a.i(23780);let A={"not-connected":{variant:"gray",label:"Not connected"},"needs-setup":{variant:"gray",label:"Needs setup"},disabled:{variant:"amber",label:"Ready to enable"},enabled:{variant:"green",label:"Enabled"},attention:{variant:"red",label:"Needs attention"}};function B(a){return a.accounts.some(a=>"healthy"!==a.authStatus)?"attention":0===a.accounts.length?a.awaitingProviderSetup?"needs-setup":"not-connected":a.enabled?"enabled":"disabled"}function C(a){let c=A[a.status],d="attention"===a.status?"warning":"enabled"===a.status?"success":"default";return(0,b.jsxs)(y.Card,{tone:d,children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,b.jsx)(i.Mail,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,b.jsx)("h3",{className:"text-base font-semibold text-foreground truncate",children:a.name})]}),(0,b.jsx)(m.Badge,{variant:c.variant,children:c.label})]}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a.description}),(0,b.jsx)("div",{className:"mt-3 space-y-3",children:a.setupSection}),a.accountsSection&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(z.Separator,{className:"my-4"}),(0,b.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground mb-2",children:"Authenticated accounts"}),(0,b.jsx)("div",{className:"space-y-2",children:a.accountsSection})]}),(0,b.jsx)(z.Separator,{className:"my-4"}),(0,b.jsx)(D,{toggle:a.enableToggle})]})}function D({toggle:a}){let[d,e]=(0,c.useState)(null),f=async b=>{e(null);try{await a.onChange(b)}catch(a){e(a instanceof Error?a.message:"Failed to update")}};return(0,b.jsxs)("div",{children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm select-none "+(a.disabled||a.busy?"cursor-not-allowed opacity-60":"cursor-pointer"),title:a.disabled?a.disabledReason:void 0,children:[(0,b.jsx)("input",{type:"checkbox",checked:a.enabled,disabled:a.disabled||a.busy,onChange:a=>void f(a.target.checked),className:"h-4 w-4 rounded border-border"}),(0,b.jsx)("span",{className:"font-medium text-foreground",children:"Enable for the agent"}),a.busy&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"saving…"})]}),a.disabled&&a.disabledReason&&(0,b.jsx)("p",{className:"mt-1 ml-6 text-xs text-muted-foreground",children:a.disabledReason}),!a.disabled&&a.explainer&&(0,b.jsx)("p",{className:"mt-1 ml-6 text-xs text-muted-foreground",children:a.explainer}),d&&(0,b.jsx)(n.Alert,{variant:"error",className:"mt-2",children:d})]})}a.s(["GmailCard",0,function({accounts:a,enabledKinds:h,focusAccountId:i,hideExternalGoogleLink:j=!1}){let k=s(),l=(0,g.useConfirm)(),[m,n]=(0,c.useState)(!1),o=h.includes("gmail"),p=B({accounts:a,enabled:o}),q=async a=>{if(a||await l({title:"Disable Gmail for the agent?",description:"This stops the unified mail poller from observing Gmail — receipts, travel bookings, and Kindle highlights will not be classified until you re-enable Gmail. Tokens stay in the keychain and the integration resumes the moment you flip the switch back on.",confirmLabel:"Disable Gmail",variant:"destructive"})){n(!0);try{await t(h,"gmail",a),k()}finally{n(!1)}}};return(0,b.jsx)(C,{name:"Gmail / Google Workspace",description:(0,b.jsx)(b.Fragment,{children:"Authenticated through your existing Google connection (it is shared with Calendar). Manage Google OAuth on the Connections page."}),status:p,setupSection:0===a.length?(0,b.jsxs)("div",{className:"rounded-md border border-dashed border-border p-3 text-xs",children:[(0,b.jsx)("p",{className:"text-foreground font-medium mb-1",children:"No Gmail account connected yet."}),(0,b.jsx)("p",{className:"text-muted-foreground mb-2",children:j?"Switch the Mode above to Direct and complete the Google connection step on this page — the daemon detects your Gmail address from the OAuth response and registers it here.":"Authenticate Google in Connections — the daemon detects your Gmail address from the OAuth response and registers it here."}),!j&&(0,b.jsx)(d.default,{href:"/connections/calendar#google",children:(0,b.jsxs)(f.Button,{size:"sm",variant:"outline",className:"h-7 text-xs px-3",children:["Open Google connection",(0,b.jsx)(e.ExternalLink,{className:"ml-1 h-3 w-3"})]})})]}):j?null:(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Re-authentication, scope changes, or revoking access live on the"," ",(0,b.jsx)(d.default,{href:"/connections/calendar#google",className:"underline underline-offset-2",children:"Google connection card"}),"."]}),accountsSection:a.length>0?a.map(c=>(0,b.jsx)(v,{account:c,highlight:i===c.id,hideActive:!0,hideHealth:!0,isLastOfKind:1===a.length,onAfterRemove:async()=>{1===a.length&&o&&await t(h,"gmail",!1)}},c.id)):void 0,enableToggle:{enabled:o,disabled:0===a.length,disabledReason:0===a.length?"Connect a Google account first.":void 0,busy:m,onChange:q,explainer:"When enabled, the legacy Gmail poller observes your inbox and the agent can read, draft, and send messages."}})}],47278),a.i(70010);var E=a.i(65021);function F({index:a,title:c,completed:d=!1,disabled:e=!1,children:f}){return(0,b.jsxs)("div",{className:"rounded-md border border-dashed p-3 "+(e?"border-border opacity-50":d?"border-emerald-300 dark:border-emerald-800":"border-border"),children:[(0,b.jsxs)("p",{className:"text-xs font-semibold text-foreground mb-2",children:["Step ",a,": ",c,d&&(0,b.jsx)("span",{className:"ml-2 text-emerald-600 dark:text-emerald-400",children:"✓"})]}),f]})}a.s(["OutlookCard",0,function({accounts:a,enabledKinds:d,focusAccountId:h}){let i=s(),j=(0,g.useConfirm)(),m=d.includes("outlook"),o=(0,p.useQuery)({queryKey:["outlook-client-config"],queryFn:()=>k.api.get("/config/mail/outlook/client-config"),staleTime:3e4}),q=o.data?.configured===!0,r=B({accounts:a,enabled:m,awaitingProviderSetup:!q}),[u,w]=(0,c.useState)(!1),[x,y]=(0,c.useState)(""),[z,A]=(0,c.useState)("common"),[D,G]=(0,c.useState)(""),[H,I]=(0,c.useState)(!1),[J,K]=(0,c.useState)(null),[L,M]=(0,c.useState)(null),[N,O]=(0,c.useState)(null),[P,Q]=(0,c.useState)(!1),R=async a=>{Q(!0);try{await t(d,"outlook",a),i()}finally{Q(!1)}},S=async()=>{I(!0),K(null);try{await k.api.put("/config/mail/outlook/client-config",{clientId:x.trim(),tenant:z.trim()||"common"}),await o.refetch(),w(!1)}catch(a){K(a instanceof Error?a.message:"Failed to save client config")}finally{I(!1)}},T=async()=>{if(await j({title:"Reset Azure app registration?",description:"Existing Outlook accounts keep working until their tokens expire. You'll need to re-enter the client ID before adding new accounts.",confirmLabel:"Reset",variant:"destructive"})){I(!0),K(null);try{await k.api.delete("/config/mail/outlook/client-config"),await o.refetch()}catch(a){K(a instanceof Error?a.message:"Failed to reset")}finally{I(!1)}}},U=async()=>{if(await j({title:"Open Microsoft sign-in?",description:"The daemon will open your browser to sign in to Microsoft. macOS or Windows may show a one-time firewall prompt — accept it so the loopback callback can complete.",confirmLabel:"Continue"})){I(!0),K(null),M(null);try{await k.api.post("/mail/accounts",{kind:"outlook",label:D.trim()||void 0}),M("Outlook account authenticated. Toggle the switch below to start using it."),G(""),i()}catch(a){K(a instanceof Error?a.message:"OAuth failed")}finally{I(!1)}}},V=async()=>{I(!0),K(null),M(null),O(null);try{let a=await fetch("/api/mail/accounts/device-code",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({kind:"outlook",label:D.trim()||void 0})});if(!a.ok||!a.body)throw Error(`HTTP ${a.status}`);let b=a.body.getReader(),c=new TextDecoder,d="";for(;;){let{value:a,done:e}=await b.read();if(e)break;let f=(d+=c.decode(a,{stream:!0})).split("\n\n");for(let a of(d=f.pop()??"",f)){let b=a.split("\n"),c="",d="";for(let a of b)a.startsWith("event:")&&(c=a.slice(6).trim()),a.startsWith("data:")&&(d+=a.slice(5).trim());if(c){if("prompt"===c)O(JSON.parse(d));else if("completed"===c)M("Outlook account authenticated. Toggle the switch below to start using it."),O(null),G(""),i();else if("failed"===c){let a=JSON.parse(d);throw Error(a.message??"device-code failed")}}}}}catch(a){K(a instanceof Error?a.message:"Device-code OAuth failed"),O(null)}finally{I(!1)}},W=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(F,{index:1,title:"Register an Azure app (one-time)",completed:q,children:[!q&&!u&&(0,b.jsxs)("div",{className:"space-y-3 text-xs",children:[(0,b.jsxs)("p",{className:"text-muted-foreground",children:["One-time setup: you'll tell Microsoft that the ",E.APP_NAME,"daemon on your computer is allowed to read and send mail on your behalf. Follow every sub-step — two of them are easy to miss and will make sign-in fail with ",(0,b.jsx)("code",{children:"server_error"})," later."]}),(0,b.jsxs)("ol",{className:"list-decimal list-outside pl-4 space-y-2 text-muted-foreground",children:[(0,b.jsxs)("li",{children:["Open the"," ",(0,b.jsxs)("a",{href:"https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade",target:"_blank",rel:"noreferrer",className:"underline inline-flex items-center gap-0.5",children:["Azure portal — App registrations"," ",(0,b.jsx)(e.ExternalLink,{className:"h-3 w-3"})]}),". Sign in with the Microsoft account you want the agent to use."]}),(0,b.jsxs)("li",{children:["Click ",(0,b.jsx)("strong",{children:"+ New registration"})," at the top of the page."]}),(0,b.jsxs)("li",{children:["Fill in the form:",(0,b.jsxs)("ul",{className:"list-disc list-outside pl-4 mt-1 space-y-1",children:[(0,b.jsxs)("li",{children:[(0,b.jsx)("strong",{children:"Name"}),": anything, e.g. ",(0,b.jsx)("code",{children:E.APP_NAME}),"."]}),(0,b.jsxs)("li",{children:[(0,b.jsx)("strong",{children:"Supported account types"}),": pick"," ",(0,b.jsx)("em",{children:"Accounts in any organizational directory (Any Microsoft Entra ID tenant – Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)"}),"."]}),(0,b.jsxs)("li",{children:[(0,b.jsx)("strong",{children:"Redirect URI"}),": in the left-hand dropdown choose ",(0,b.jsx)("code",{children:"Public client/native (mobile & desktop)"})," ",(0,b.jsx)("strong",{children:"— not"})," ",(0,b.jsx)("code",{children:"Web"}),". Then type"," ",(0,b.jsx)("code",{children:"http://127.0.0.1/callback"})," in the box on the right."]})]}),(0,b.jsxs)("p",{className:"mt-1 rounded-md border border-amber-400/60 bg-amber-400/10 px-2 py-1 text-amber-700 dark:text-amber-300",children:["⚠ Trap #1: if you leave ",(0,b.jsx)("code",{children:"Web"})," selected, Microsoft will later return ",(0,b.jsx)("code",{children:"Authorization failed: server_error"}),". Use the Public client/native option."]})]}),(0,b.jsxs)("li",{children:["Click ",(0,b.jsx)("strong",{children:"Register"})," at the bottom of the form."]}),(0,b.jsxs)("li",{children:["You'll land on the ",(0,b.jsx)("em",{children:"Overview"})," page. Copy the value labelled ",(0,b.jsx)("strong",{children:"Application (client) ID"}),"— you'll paste it into the form below in a moment."]}),(0,b.jsxs)("li",{children:["In the left sidebar click ",(0,b.jsx)("strong",{children:"Authentication"}),". Scroll to the very bottom, find ",(0,b.jsx)("em",{children:"Advanced settings"})," →"," ",(0,b.jsx)("strong",{children:"Allow public client flows"}),", flip the toggle to"," ",(0,b.jsx)("strong",{children:"Yes"}),", then click ",(0,b.jsx)("strong",{children:"Save"})," at the top of the page.",(0,b.jsxs)("p",{className:"mt-1 rounded-md border border-amber-400/60 bg-amber-400/10 px-2 py-1 text-amber-700 dark:text-amber-300",children:["⚠ Trap #2: this toggle is off by default. Without it sign-in also fails with ",(0,b.jsx)("code",{children:"server_error"}),"."]})]}),(0,b.jsxs)("li",{children:["In the left sidebar click ",(0,b.jsx)("strong",{children:"API permissions"})," →"," ",(0,b.jsx)("strong",{children:"+ Add a permission"})," →"," ",(0,b.jsx)("strong",{children:"Microsoft Graph"})," →"," ",(0,b.jsx)("strong",{children:"Delegated permissions"}),". Use the search box to find and tick each of:",(0,b.jsxs)("ul",{className:"list-disc list-outside pl-4 mt-1",children:[(0,b.jsx)("li",{children:(0,b.jsx)("code",{children:"offline_access"})}),(0,b.jsx)("li",{children:(0,b.jsx)("code",{children:"User.Read"})}),(0,b.jsx)("li",{children:(0,b.jsx)("code",{children:"Mail.ReadWrite"})}),(0,b.jsx)("li",{children:(0,b.jsx)("code",{children:"Mail.Send"})})]}),"Then click ",(0,b.jsx)("strong",{children:"Add permissions"})," at the bottom."]}),(0,b.jsxs)("li",{children:["(Work/school tenant only) If your org requires admin consent for these scopes, click ",(0,b.jsx)("strong",{children:"Grant admin consent"}),". Personal Microsoft accounts don't need this step."]}),(0,b.jsxs)("li",{children:["Come back here and click ",(0,b.jsx)("strong",{children:"I have a client ID"}),". Paste the Application (client) ID you copied in step 5; leave Tenant as ",(0,b.jsx)("code",{children:"common"})," unless your admin told you otherwise."]})]}),(0,b.jsx)(f.Button,{size:"sm",variant:"outline",onClick:()=>w(!0),className:"h-7 text-xs px-3",children:"I have a client ID"})]}),u&&(0,b.jsxs)("div",{className:"space-y-2 rounded-md border border-border p-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:"outlook-client-id",children:"Application (client) ID"}),(0,b.jsx)(l.Input,{id:"outlook-client-id",value:x,onChange:a=>y(a.target.value),placeholder:"00000000-0000-0000-0000-000000000000",className:"h-8 text-xs"})]}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:"outlook-tenant",children:["Tenant (default ",(0,b.jsx)("code",{children:"common"}),")"]}),(0,b.jsx)(l.Input,{id:"outlook-tenant",value:z,onChange:a=>A(a.target.value),placeholder:"common / organizations / <tenant-guid>",className:"h-8 text-xs"})]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(f.Button,{size:"sm",variant:"outline",onClick:()=>void S(),disabled:H||0===x.trim().length,className:"h-7 text-xs px-3",children:H?"Saving…":"Save"}),(0,b.jsx)(f.Button,{size:"sm",variant:"outline",onClick:()=>w(!1),disabled:H,className:"h-7 text-xs px-3",children:"Cancel"})]})]}),q&&!u&&(0,b.jsxs)("div",{className:"text-xs text-muted-foreground",children:["Application ID:"," ",(0,b.jsx)("code",{className:"font-mono",children:o.data?.clientId})," ","(tenant ",(0,b.jsx)("code",{children:o.data?.tenant}),")."," ",(0,b.jsx)("button",{type:"button",className:"underline",onClick:()=>void T(),disabled:H,children:"reset"})]})]}),(0,b.jsx)(F,{index:2,title:"Authenticate an Outlook account",disabled:!q,children:q?(0,b.jsxs)("div",{className:"space-y-2 rounded-md border border-border p-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:"outlook-label",children:"Label (optional)"}),(0,b.jsx)(l.Input,{id:"outlook-label",value:D,onChange:a=>G(a.target.value),placeholder:"work, personal, …",className:"h-8 text-xs"})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(f.Button,{size:"sm",onClick:()=>void U(),disabled:H,className:"h-7 text-xs px-3",children:H?"Waiting for consent…":"Authenticate (browser)"}),(0,b.jsx)(f.Button,{size:"sm",variant:"outline",onClick:()=>void V(),disabled:H,className:"h-7 text-xs px-3",title:"Use if the daemon runs headless (SSH / WSL)",children:"Authenticate (device code)"})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"The browser flow may trigger a one-time macOS / Windows firewall prompt — accept it so the loopback callback can complete."})]}):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Save the client ID first."})}),N&&(0,b.jsx)(n.Alert,{variant:"warning",children:(0,b.jsxs)("div",{className:"text-xs",children:["Visit"," ",(0,b.jsx)("a",{href:N.verificationUri,target:"_blank",rel:"noreferrer",className:"underline",children:N.verificationUri})," ","and enter code"," ",(0,b.jsx)("code",{className:"font-mono",children:N.userCode}),". Expires in ",Math.round(N.expiresIn/60)," min."]})}),L&&(0,b.jsx)(n.Alert,{variant:"success",children:L}),J&&(0,b.jsx)(n.Alert,{variant:"error",children:J})]});return(0,b.jsx)(C,{name:"Outlook / Microsoft 365",description:(0,b.jsx)(b.Fragment,{children:"One-time Azure app registration, then connect as many Outlook / outlook.com / Microsoft 365 accounts as you need."}),status:r,setupSection:W,accountsSection:a.length>0?a.map(c=>(0,b.jsx)(v,{account:c,highlight:h===c.id,onReauthenticate:()=>void U(),isLastOfKind:1===a.length,onAfterRemove:async()=>{1===a.length&&m&&await t(d,"outlook",!1)}},c.id)):void 0,enableToggle:{enabled:m,disabled:0===a.length,disabledReason:0===a.length?"Authenticate an Outlook account first.":void 0,busy:P,onChange:R,explainer:"When enabled, the agent observes your Outlook inbox via Microsoft Graph and can read, draft, and send messages."}})}],54283);let G={yahoo:{name:"Yahoo Mail",description:"App-password login over IMAP/SMTP. Generate the password in Yahoo Account Security, paste it once, and the daemon stores it in the OS keychain.",setupUrl:"https://login.yahoo.com/account/security",setupLabel:"Yahoo Account Security",passwordLabel:"Yahoo app password",defaultDomain:"yahoo.com",prerequisite:"Yahoo requires two-step verification on the account before it lets you create app passwords. If you haven't enabled it yet, turn it on first from the same Account Security page.",passwordSteps:[(0,b.jsxs)(b.Fragment,{children:["Open the"," ",(0,b.jsx)("strong",{children:"Yahoo Account Security"})," page and sign in with the Yahoo account you want to connect."]}),(0,b.jsxs)(b.Fragment,{children:["Scroll to ",(0,b.jsx)("strong",{children:"Other ways to sign in"})," and click"," ",(0,b.jsx)("strong",{children:"Generate and manage app passwords"}),". (If the link is missing, enable two-step verification first.)"]}),(0,b.jsxs)(b.Fragment,{children:["In the ",(0,b.jsx)("em",{children:"App name"})," field type ",(0,b.jsx)("code",{children:E.APP_NAME})," (any name works; this is just a label Yahoo shows in your account), then click ",(0,b.jsx)("strong",{children:"Generate password"}),"."]}),(0,b.jsxs)(b.Fragment,{children:["Yahoo shows a 16-character password with spaces. Copy it exactly as shown — ",(0,b.jsx)("strong",{children:"do not type it by hand"}),". Spaces are part of the password."]}),(0,b.jsx)(b.Fragment,{children:"Paste it into the password field below, then click Authenticate."})],passwordHint:"16 characters from Yahoo, spaces included. Do not retype — paste."},icloud:{name:"iCloud Mail",description:"App-specific-password login over IMAP/SMTP. Create the password in Apple Account → Sign-In and Security, paste it once, and the daemon stores it in the OS keychain.",setupUrl:"https://account.apple.com",setupLabel:"Apple Account",passwordLabel:"Apple app-specific password",defaultDomain:"icloud.com",prerequisite:"Apple only allows app-specific passwords on Apple IDs that have two-factor authentication turned on. If your Apple ID doesn't have 2FA yet, enable it first at appleid.apple.com.",passwordSteps:[(0,b.jsxs)(b.Fragment,{children:["Open ",(0,b.jsx)("strong",{children:"Apple Account"})," and sign in with the Apple ID whose iCloud mailbox you want to connect."]}),(0,b.jsxs)(b.Fragment,{children:["In the left sidebar click ",(0,b.jsx)("strong",{children:"Sign-In and Security"}),", then click ",(0,b.jsx)("strong",{children:"App-Specific Passwords"}),"."]}),(0,b.jsxs)(b.Fragment,{children:["Click ",(0,b.jsx)("strong",{children:"+ Generate an app-specific password"}),". Apple may ask you to re-enter your Apple ID password."]}),(0,b.jsxs)(b.Fragment,{children:["In the label field type ",(0,b.jsx)("code",{children:E.APP_NAME})," (any name works), then click ",(0,b.jsx)("strong",{children:"Create"}),"."]}),(0,b.jsxs)(b.Fragment,{children:["Apple shows a 19-character password in the form"," ",(0,b.jsx)("code",{children:"xxxx-xxxx-xxxx-xxxx"}),". Copy it exactly —"," ",(0,b.jsx)("strong",{children:"the dashes are required"}),"."]}),(0,b.jsx)(b.Fragment,{children:"Paste it into the password field below, then click Authenticate."})],passwordHint:"Format: xxxx-xxxx-xxxx-xxxx. Dashes are required — paste, don't retype."}};a.s(["ImapCard",0,function({kind:a,accounts:d,enabledKinds:g,focusAccountId:h}){let i=s(),j=G[a],m=g.includes(a),o=B({accounts:d,enabled:m}),[p,q]=(0,c.useState)(""),[r,u]=(0,c.useState)(""),[w,x]=(0,c.useState)(""),[y,z]=(0,c.useState)(!1),[A,D]=(0,c.useState)(null),[E,F]=(0,c.useState)(null),[H,I]=(0,c.useState)(!1),J=async b=>{I(!0);try{await t(g,a,b),i()}finally{I(!1)}},K=async()=>{z(!0),D(null),F(null);try{await k.api.post("/config/mail/app-password",{kind:a,email:`${p.trim()}@${j.defaultDomain}`,appPassword:r.trim(),label:w.trim()||void 0}),F(`${j.name} authenticated. Toggle the switch below to start using it.`),q(""),u(""),x(""),i()}catch(a){D(a instanceof Error?a.message:"Failed to connect")}finally{z(!1)}},L=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"rounded-md border border-dashed border-border p-3 text-xs space-y-2",children:[(0,b.jsx)("p",{className:"text-foreground font-medium",children:"Step 1: Generate an app password"}),(0,b.jsxs)("p",{className:"text-muted-foreground",children:[j.prerequisite," ",(0,b.jsxs)("a",{href:j.setupUrl,target:"_blank",rel:"noreferrer",className:"underline inline-flex items-center gap-0.5",children:["Open ",j.setupLabel," ",(0,b.jsx)(e.ExternalLink,{className:"h-3 w-3"})]}),"."]}),(0,b.jsx)("ol",{className:"list-decimal list-outside pl-4 space-y-1 text-muted-foreground",children:j.passwordSteps.map((a,c)=>(0,b.jsx)("li",{children:a},c))})]}),(0,b.jsxs)("div",{className:"rounded-md border border-border p-3 space-y-2",children:[(0,b.jsx)("p",{className:"text-xs font-semibold text-foreground",children:"Step 2: Authenticate the account"}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:`${a}-email`,children:"Account email"}),(0,b.jsxs)("div",{className:"flex items-center",children:[(0,b.jsx)(l.Input,{id:`${a}-email`,value:p,onChange:a=>q(a.target.value),placeholder:"username",className:"h-8 text-xs rounded-r-none"}),(0,b.jsxs)("span",{className:"inline-flex h-8 items-center rounded-r-md border border-l-0 border-input bg-muted px-3 text-xs text-muted-foreground select-none",children:["@",j.defaultDomain]})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:`${a}-app-password`,children:j.passwordLabel}),(0,b.jsx)(l.Input,{id:`${a}-app-password`,type:"password",value:r,onChange:a=>u(a.target.value),placeholder:"paste generated password",className:"h-8 text-xs"}),(0,b.jsx)("p",{className:"mt-1 text-[11px] text-muted-foreground",children:j.passwordHint})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:`${a}-label`,children:"Label (optional)"}),(0,b.jsx)(l.Input,{id:`${a}-label`,value:w,onChange:a=>x(a.target.value),placeholder:"personal, family, …",className:"h-8 text-xs"})]}),(0,b.jsx)(f.Button,{size:"sm",onClick:()=>void K(),disabled:y||0===p.trim().length||0===r.trim().length,className:"h-7 text-xs px-3",children:y?"Authenticating…":"Authenticate"})]}),E&&(0,b.jsx)(n.Alert,{variant:"success",children:E}),A&&(0,b.jsx)(n.Alert,{variant:"error",children:A})]});return(0,b.jsx)(C,{name:j.name,description:j.description,status:o,setupSection:L,accountsSection:d.length>0?d.map(c=>(0,b.jsx)(v,{account:c,highlight:h===c.id,isLastOfKind:1===d.length,onAfterRemove:async()=>{1===d.length&&m&&await t(g,a,!1)}},c.id)):void 0,enableToggle:{enabled:m,disabled:0===d.length,disabledReason:0===d.length?`Authenticate a ${j.name} account first.`:void 0,busy:H,onChange:J,explainer:`When enabled, the agent observes your ${j.name} inbox via IMAP IDLE and can read, draft, and send messages.`}})}],14445)}];
1
+ module.exports=[47278,7117,54283,14445,a=>{"use strict";var b=a.i(39752),c=a.i(34542),d=a.i(62988),e=a.i(82740),f=a.i(21218),g=a.i(28314),h=a.i(32307),i=a.i(36608),j=a.i(96336),k=a.i(59974),l=a.i(8212),m=a.i(7384),n=a.i(29629),o=a.i(48558),p=a.i(62588),q=a.i(81130);function r(a,b){return(0,p.useQuery)({queryKey:["mail-health",a],queryFn:()=>k.api.get(`/mail/${encodeURIComponent(a)}/health`),refetchInterval:1e4,enabled:b})}function s(){let a=(0,q.useQueryClient)();return()=>{a.invalidateQueries({queryKey:["mail-providers"]}),a.invalidateQueries({queryKey:["mail-accounts"]}),a.invalidateQueries({queryKey:["mail-health"]})}}async function t(a,b,c){let d=new Set(a);c?d.add(b):d.delete(b);let e=["gmail","outlook","yahoo","icloud"].filter(a=>d.has(a));return await k.api.patch("/mail/providers",{enabledKinds:e}),e}a.s(["toggleProviderEnabled",0,t,"useInvalidateMail",0,s,"useMailAccountHealth",0,r,"useMailAccounts",0,function(){return(0,p.useQuery)({queryKey:["mail-accounts"],queryFn:()=>k.api.get("/mail/accounts"),refetchInterval:1e4})},"useMailProviders",0,function(){return(0,p.useQuery)({queryKey:["mail-providers"],queryFn:()=>k.api.get("/mail/providers"),refetchInterval:3e4})}],7117);let u={healthy:{variant:"green",label:"Healthy"},requires_consent:{variant:"amber",label:"Re-authenticate"},degraded:{variant:"red",label:"Degraded"}};function v({account:a,highlight:d=!1,hideActive:e=!1,hideHealth:h=!1,onReauthenticate:l,isLastOfKind:o=!1,onAfterRemove:p}){let q=(0,c.useRef)(null),t=(0,g.useConfirm)(),y=s(),[z,A]=(0,c.useState)(!1),[B,C]=(0,c.useState)(null);(0,c.useEffect)(()=>{d&&q.current&&q.current.scrollIntoView({behavior:"smooth",block:"center"})},[d]);let D=r(a.id,!h).data??null,E="yahoo"===a.kind||"icloud"===a.kind,[F,G]=(0,c.useState)(!1),H=async()=>{C(null),A(!0);try{await k.api.patch(`/mail/accounts/${encodeURIComponent(a.id)}`,{active:!a.active}),y()}catch(a){C(a instanceof Error?a.message:"Failed to update")}finally{A(!1)}},I=async()=>{if(await t({title:`Remove ${a.email}?`,description:"Local credentials are revoked and the account is removed from this app. The mailbox itself is untouched at the provider."+(o?" This is the last account of its kind, so the provider will also be disabled — re-authenticate and toggle Enable to bring it back.":""),confirmLabel:"Remove",variant:"destructive"})){C(null),A(!0);try{await k.api.delete(`/mail/accounts/${encodeURIComponent(a.id)}`),p&&await p(),y()}catch(a){C(a instanceof Error?a.message:"Failed to remove")}finally{A(!1)}}},J=u[a.authStatus],K=h||!a.idleEnabled?null:D?.idleFallbackUntilUtc?{label:"polling (IDLE down)",variant:"amber"}:{label:"IDLE",variant:"green"};return(0,b.jsxs)("div",{ref:q,id:`account-${a.id}`,className:"rounded-md border p-3 transition-colors "+(d?"border-warning ring-1 ring-warning/40":"border-border"),children:[(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)(i.Mail,{className:"mt-0.5 h-4 w-4 shrink-0 text-muted-foreground"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,b.jsx)("span",{className:"text-sm font-medium text-foreground truncate",children:a.email}),a.label&&(0,b.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",a.label,")"]}),(0,b.jsx)(m.Badge,{variant:J.variant,children:J.label}),K&&(0,b.jsx)(m.Badge,{variant:K.variant,children:K.label})]}),!h&&(0,b.jsx)(x,{health:D})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[!e&&(0,b.jsxs)("label",{className:"flex items-center gap-1 text-xs cursor-pointer select-none",children:[(0,b.jsx)("input",{type:"checkbox",checked:a.active,disabled:z,onChange:()=>void H(),className:"h-3.5 w-3.5 rounded border-border"}),"Active"]}),"requires_consent"===a.authStatus&&(E?(0,b.jsx)(f.Button,{size:"sm",variant:"outline",disabled:z,onClick:()=>G(a=>!a),className:"h-7 text-xs px-2",children:F?"Cancel":"Re-authenticate"}):l&&(0,b.jsx)(f.Button,{size:"sm",variant:"outline",disabled:z,onClick:()=>void l(),className:"h-7 text-xs px-2",children:"Re-authenticate"})),(0,b.jsx)(f.Button,{size:"sm",variant:"outline",onClick:()=>void I(),disabled:z,className:"h-7 px-2",title:"Remove account",children:(0,b.jsx)(j.Trash2,{className:"h-3.5 w-3.5"})})]})]}),B&&(0,b.jsx)(n.Alert,{variant:"error",className:"mt-2",children:B}),E&&F&&(0,b.jsx)(w,{accountId:a.id,onSuccess:()=>{G(!1),y()}})]})}function w({accountId:a,onSuccess:d}){let[e,g]=(0,c.useState)(""),[h,i]=(0,c.useState)(!1),[j,m]=(0,c.useState)(null),o=async()=>{i(!0),m(null);try{await k.api.post(`/config/mail/app-password/${encodeURIComponent(a)}/refresh`,{appPassword:e.trim()}),g(""),d()}catch(a){m(a instanceof Error?a.message:"Failed to refresh")}finally{i(!1)}};return(0,b.jsxs)("div",{className:"mt-2 rounded-md border border-warning/40 bg-warning/10 p-3 space-y-2",children:[(0,b.jsx)("p",{className:"text-xs text-foreground",children:"Generate a new app password at the provider, paste it here, and the daemon will swap it in place — the polling cursor and account ID stay intact."}),(0,b.jsx)(l.Input,{type:"password",value:e,onChange:a=>g(a.target.value),placeholder:"paste new app password",className:"h-8 text-xs"}),(0,b.jsx)("div",{className:"flex gap-2",children:(0,b.jsx)(f.Button,{size:"sm",onClick:()=>void o(),disabled:h||0===e.trim().length,className:"h-7 text-xs px-3",children:h?"Verifying…":"Update password"})}),j&&(0,b.jsx)(n.Alert,{variant:"error",children:j})]})}function x({health:a}){if(!a)return(0,b.jsx)("p",{className:"mt-1 text-[11px] text-muted-foreground",children:"Waiting for first poll…"});let c=a.lastPollAtUtc,d=null!=c&&Date.now()-(0,o.parseUtcDate)(c).getTime()>9e5;return(0,b.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-x-3 gap-y-1 text-[11px] text-muted-foreground",children:[(0,b.jsxs)("span",{children:["last poll:"," ",c?(0,b.jsxs)("span",{title:(0,o.formatAbsoluteTime)(c),className:d?"text-warning":void 0,children:[(0,o.formatRelativeTime)(c),d?" · stale":""]}):(0,b.jsx)("span",{children:"never"})]}),a.consecutiveErrorCount>0&&(0,b.jsxs)("span",{className:"text-warning",children:[a.consecutiveErrorCount," consecutive errors"]}),a.lastError&&(0,b.jsxs)("span",{className:"flex items-center gap-1 text-destructive max-w-full truncate",title:a.lastError,children:[(0,b.jsx)(h.AlertTriangle,{className:"h-3 w-3 shrink-0"}),a.lastError]})]})}var y=a.i(30400),z=a.i(23780);let A={"not-connected":{variant:"gray",label:"Not connected"},"needs-setup":{variant:"gray",label:"Needs setup"},disabled:{variant:"amber",label:"Ready to enable"},enabled:{variant:"green",label:"Enabled"},attention:{variant:"red",label:"Needs attention"}};function B(a){return a.accounts.some(a=>"healthy"!==a.authStatus)?"attention":0===a.accounts.length?a.awaitingProviderSetup?"needs-setup":"not-connected":a.enabled?"enabled":"disabled"}function C(a){let c=A[a.status],d="attention"===a.status?"warning":"enabled"===a.status?"success":"default";return(0,b.jsxs)(y.Card,{tone:d,children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,b.jsx)(i.Mail,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,b.jsx)("h3",{className:"text-base font-semibold text-foreground truncate",children:a.name})]}),(0,b.jsx)(m.Badge,{variant:c.variant,children:c.label})]}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a.description}),(0,b.jsx)("div",{className:"mt-3 space-y-3",children:a.setupSection}),a.accountsSection&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(z.Separator,{className:"my-4"}),(0,b.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground mb-2",children:"Authenticated accounts"}),(0,b.jsx)("div",{className:"space-y-2",children:a.accountsSection})]}),(0,b.jsx)(z.Separator,{className:"my-4"}),(0,b.jsx)(D,{toggle:a.enableToggle})]})}function D({toggle:a}){let[d,e]=(0,c.useState)(null),f=async b=>{e(null);try{await a.onChange(b)}catch(a){e(a instanceof Error?a.message:"Failed to update")}};return(0,b.jsxs)("div",{children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm select-none "+(a.disabled||a.busy?"cursor-not-allowed opacity-60":"cursor-pointer"),title:a.disabled?a.disabledReason:void 0,children:[(0,b.jsx)("input",{type:"checkbox",checked:a.enabled,disabled:a.disabled||a.busy,onChange:a=>void f(a.target.checked),className:"h-4 w-4 rounded border-border"}),(0,b.jsx)("span",{className:"font-medium text-foreground",children:"Enable for the agent"}),a.busy&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"saving…"})]}),a.disabled&&a.disabledReason&&(0,b.jsx)("p",{className:"mt-1 ml-6 text-xs text-muted-foreground",children:a.disabledReason}),!a.disabled&&a.explainer&&(0,b.jsx)("p",{className:"mt-1 ml-6 text-xs text-muted-foreground",children:a.explainer}),d&&(0,b.jsx)(n.Alert,{variant:"error",className:"mt-2",children:d})]})}a.s(["GmailCard",0,function({accounts:a,enabledKinds:h,focusAccountId:i,hideExternalGoogleLink:j=!1}){let k=s(),l=(0,g.useConfirm)(),[m,n]=(0,c.useState)(!1),o=h.includes("gmail"),p=B({accounts:a,enabled:o}),q=async a=>{if(a||await l({title:"Disable Gmail for the agent?",description:"This stops the unified mail poller from observing Gmail — receipts, travel bookings, and Kindle highlights will not be classified until you re-enable Gmail. Tokens stay in the keychain and the integration resumes the moment you flip the switch back on.",confirmLabel:"Disable Gmail",variant:"destructive"})){n(!0);try{await t(h,"gmail",a),k()}finally{n(!1)}}};return(0,b.jsx)(C,{name:"Gmail / Google Workspace",description:(0,b.jsx)(b.Fragment,{children:"Authenticated through your existing Google connection (it is shared with Calendar). Manage Google OAuth on the Connections page."}),status:p,setupSection:0===a.length?(0,b.jsxs)("div",{className:"rounded-md border border-dashed border-border p-3 text-xs",children:[(0,b.jsx)("p",{className:"text-foreground font-medium mb-1",children:"No Gmail account connected yet."}),(0,b.jsx)("p",{className:"text-muted-foreground mb-2",children:j?"Switch the Mode above to Direct and complete the Google connection step on this page — the daemon detects your Gmail address from the OAuth response and registers it here.":"Authenticate Google in Connections — the daemon detects your Gmail address from the OAuth response and registers it here."}),!j&&(0,b.jsx)(d.default,{href:"/connections/calendar#google",children:(0,b.jsxs)(f.Button,{size:"sm",variant:"outline",className:"h-7 text-xs px-3",children:["Open Google connection",(0,b.jsx)(e.ExternalLink,{className:"ml-1 h-3 w-3"})]})})]}):j?null:(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Re-authentication, scope changes, or revoking access live on the"," ",(0,b.jsx)(d.default,{href:"/connections/calendar#google",className:"underline underline-offset-2",children:"Google connection card"}),"."]}),accountsSection:a.length>0?a.map(c=>(0,b.jsx)(v,{account:c,highlight:i===c.id,hideActive:!0,hideHealth:!0,isLastOfKind:1===a.length,onAfterRemove:async()=>{1===a.length&&o&&await t(h,"gmail",!1)}},c.id)):void 0,enableToggle:{enabled:o,disabled:0===a.length,disabledReason:0===a.length?"Connect a Google account first.":void 0,busy:m,onChange:q,explainer:"When enabled, the legacy Gmail poller observes your inbox and the agent can read, draft, and send messages."}})}],47278),a.i(70010);var E=a.i(65021);function F({index:a,title:c,completed:d=!1,disabled:e=!1,children:f}){return(0,b.jsxs)("div",{className:"rounded-md border border-dashed p-3 "+(e?"border-border opacity-50":d?"border-success/40":"border-border"),children:[(0,b.jsxs)("p",{className:"text-xs font-semibold text-foreground mb-2",children:["Step ",a,": ",c,d&&(0,b.jsx)("span",{className:"ml-2 text-success",children:"✓"})]}),f]})}a.s(["OutlookCard",0,function({accounts:a,enabledKinds:d,focusAccountId:h}){let i=s(),j=(0,g.useConfirm)(),m=d.includes("outlook"),o=(0,p.useQuery)({queryKey:["outlook-client-config"],queryFn:()=>k.api.get("/config/mail/outlook/client-config"),staleTime:3e4}),q=o.data?.configured===!0,r=B({accounts:a,enabled:m,awaitingProviderSetup:!q}),[u,w]=(0,c.useState)(!1),[x,y]=(0,c.useState)(""),[z,A]=(0,c.useState)("common"),[D,G]=(0,c.useState)(""),[H,I]=(0,c.useState)(!1),[J,K]=(0,c.useState)(null),[L,M]=(0,c.useState)(null),[N,O]=(0,c.useState)(null),[P,Q]=(0,c.useState)(!1),R=async a=>{Q(!0);try{await t(d,"outlook",a),i()}finally{Q(!1)}},S=async()=>{I(!0),K(null);try{await k.api.put("/config/mail/outlook/client-config",{clientId:x.trim(),tenant:z.trim()||"common"}),await o.refetch(),w(!1)}catch(a){K(a instanceof Error?a.message:"Failed to save client config")}finally{I(!1)}},T=async()=>{if(await j({title:"Reset Azure app registration?",description:"Existing Outlook accounts keep working until their tokens expire. You'll need to re-enter the client ID before adding new accounts.",confirmLabel:"Reset",variant:"destructive"})){I(!0),K(null);try{await k.api.delete("/config/mail/outlook/client-config"),await o.refetch()}catch(a){K(a instanceof Error?a.message:"Failed to reset")}finally{I(!1)}}},U=async()=>{if(await j({title:"Open Microsoft sign-in?",description:"The daemon will open your browser to sign in to Microsoft. macOS or Windows may show a one-time firewall prompt — accept it so the loopback callback can complete.",confirmLabel:"Continue"})){I(!0),K(null),M(null);try{await k.api.post("/mail/accounts",{kind:"outlook",label:D.trim()||void 0}),M("Outlook account authenticated. Toggle the switch below to start using it."),G(""),i()}catch(a){K(a instanceof Error?a.message:"OAuth failed")}finally{I(!1)}}},V=async()=>{I(!0),K(null),M(null),O(null);try{let a=await fetch("/api/mail/accounts/device-code",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({kind:"outlook",label:D.trim()||void 0})});if(!a.ok||!a.body)throw Error(`HTTP ${a.status}`);let b=a.body.getReader(),c=new TextDecoder,d="";for(;;){let{value:a,done:e}=await b.read();if(e)break;let f=(d+=c.decode(a,{stream:!0})).split("\n\n");for(let a of(d=f.pop()??"",f)){let b=a.split("\n"),c="",d="";for(let a of b)a.startsWith("event:")&&(c=a.slice(6).trim()),a.startsWith("data:")&&(d+=a.slice(5).trim());if(c){if("prompt"===c)O(JSON.parse(d));else if("completed"===c)M("Outlook account authenticated. Toggle the switch below to start using it."),O(null),G(""),i();else if("failed"===c){let a=JSON.parse(d);throw Error(a.message??"device-code failed")}}}}}catch(a){K(a instanceof Error?a.message:"Device-code OAuth failed"),O(null)}finally{I(!1)}},W=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(F,{index:1,title:"Register an Azure app (one-time)",completed:q,children:[!q&&!u&&(0,b.jsxs)("div",{className:"space-y-3 text-xs",children:[(0,b.jsxs)("p",{className:"text-muted-foreground",children:["One-time setup: you'll tell Microsoft that the ",E.APP_NAME,"daemon on your computer is allowed to read and send mail on your behalf. Follow every sub-step — two of them are easy to miss and will make sign-in fail with ",(0,b.jsx)("code",{children:"server_error"})," later."]}),(0,b.jsxs)("ol",{className:"list-decimal list-outside pl-4 space-y-2 text-muted-foreground",children:[(0,b.jsxs)("li",{children:["Open the"," ",(0,b.jsxs)("a",{href:"https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade",target:"_blank",rel:"noreferrer",className:"underline inline-flex items-center gap-0.5",children:["Azure portal — App registrations"," ",(0,b.jsx)(e.ExternalLink,{className:"h-3 w-3"})]}),". Sign in with the Microsoft account you want the agent to use."]}),(0,b.jsxs)("li",{children:["Click ",(0,b.jsx)("strong",{children:"+ New registration"})," at the top of the page."]}),(0,b.jsxs)("li",{children:["Fill in the form:",(0,b.jsxs)("ul",{className:"list-disc list-outside pl-4 mt-1 space-y-1",children:[(0,b.jsxs)("li",{children:[(0,b.jsx)("strong",{children:"Name"}),": anything, e.g. ",(0,b.jsx)("code",{children:E.APP_NAME}),"."]}),(0,b.jsxs)("li",{children:[(0,b.jsx)("strong",{children:"Supported account types"}),": pick"," ",(0,b.jsx)("em",{children:"Accounts in any organizational directory (Any Microsoft Entra ID tenant – Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)"}),"."]}),(0,b.jsxs)("li",{children:[(0,b.jsx)("strong",{children:"Redirect URI"}),": in the left-hand dropdown choose ",(0,b.jsx)("code",{children:"Public client/native (mobile & desktop)"})," ",(0,b.jsx)("strong",{children:"— not"})," ",(0,b.jsx)("code",{children:"Web"}),". Then type"," ",(0,b.jsx)("code",{children:"http://127.0.0.1/callback"})," in the box on the right."]})]}),(0,b.jsxs)("p",{className:"mt-1 rounded-md border border-warning/40 bg-warning/10 px-2 py-1 text-warning",children:["⚠ Trap #1: if you leave ",(0,b.jsx)("code",{children:"Web"})," selected, Microsoft will later return ",(0,b.jsx)("code",{children:"Authorization failed: server_error"}),". Use the Public client/native option."]})]}),(0,b.jsxs)("li",{children:["Click ",(0,b.jsx)("strong",{children:"Register"})," at the bottom of the form."]}),(0,b.jsxs)("li",{children:["You'll land on the ",(0,b.jsx)("em",{children:"Overview"})," page. Copy the value labelled ",(0,b.jsx)("strong",{children:"Application (client) ID"}),"— you'll paste it into the form below in a moment."]}),(0,b.jsxs)("li",{children:["In the left sidebar click ",(0,b.jsx)("strong",{children:"Authentication"}),". Scroll to the very bottom, find ",(0,b.jsx)("em",{children:"Advanced settings"})," →"," ",(0,b.jsx)("strong",{children:"Allow public client flows"}),", flip the toggle to"," ",(0,b.jsx)("strong",{children:"Yes"}),", then click ",(0,b.jsx)("strong",{children:"Save"})," at the top of the page.",(0,b.jsxs)("p",{className:"mt-1 rounded-md border border-warning/40 bg-warning/10 px-2 py-1 text-warning",children:["⚠ Trap #2: this toggle is off by default. Without it sign-in also fails with ",(0,b.jsx)("code",{children:"server_error"}),"."]})]}),(0,b.jsxs)("li",{children:["In the left sidebar click ",(0,b.jsx)("strong",{children:"API permissions"})," →"," ",(0,b.jsx)("strong",{children:"+ Add a permission"})," →"," ",(0,b.jsx)("strong",{children:"Microsoft Graph"})," →"," ",(0,b.jsx)("strong",{children:"Delegated permissions"}),". Use the search box to find and tick each of:",(0,b.jsxs)("ul",{className:"list-disc list-outside pl-4 mt-1",children:[(0,b.jsx)("li",{children:(0,b.jsx)("code",{children:"offline_access"})}),(0,b.jsx)("li",{children:(0,b.jsx)("code",{children:"User.Read"})}),(0,b.jsx)("li",{children:(0,b.jsx)("code",{children:"Mail.ReadWrite"})}),(0,b.jsx)("li",{children:(0,b.jsx)("code",{children:"Mail.Send"})})]}),"Then click ",(0,b.jsx)("strong",{children:"Add permissions"})," at the bottom."]}),(0,b.jsxs)("li",{children:["(Work/school tenant only) If your org requires admin consent for these scopes, click ",(0,b.jsx)("strong",{children:"Grant admin consent"}),". Personal Microsoft accounts don't need this step."]}),(0,b.jsxs)("li",{children:["Come back here and click ",(0,b.jsx)("strong",{children:"I have a client ID"}),". Paste the Application (client) ID you copied in step 5; leave Tenant as ",(0,b.jsx)("code",{children:"common"})," unless your admin told you otherwise."]})]}),(0,b.jsx)(f.Button,{size:"sm",variant:"outline",onClick:()=>w(!0),className:"h-7 text-xs px-3",children:"I have a client ID"})]}),u&&(0,b.jsxs)("div",{className:"space-y-2 rounded-md border border-border p-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:"outlook-client-id",children:"Application (client) ID"}),(0,b.jsx)(l.Input,{id:"outlook-client-id",value:x,onChange:a=>y(a.target.value),placeholder:"00000000-0000-0000-0000-000000000000",className:"h-8 text-xs"})]}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:"outlook-tenant",children:["Tenant (default ",(0,b.jsx)("code",{children:"common"}),")"]}),(0,b.jsx)(l.Input,{id:"outlook-tenant",value:z,onChange:a=>A(a.target.value),placeholder:"common / organizations / <tenant-guid>",className:"h-8 text-xs"})]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(f.Button,{size:"sm",variant:"outline",onClick:()=>void S(),disabled:H||0===x.trim().length,className:"h-7 text-xs px-3",children:H?"Saving…":"Save"}),(0,b.jsx)(f.Button,{size:"sm",variant:"outline",onClick:()=>w(!1),disabled:H,className:"h-7 text-xs px-3",children:"Cancel"})]})]}),q&&!u&&(0,b.jsxs)("div",{className:"text-xs text-muted-foreground",children:["Application ID:"," ",(0,b.jsx)("code",{className:"font-mono",children:o.data?.clientId})," ","(tenant ",(0,b.jsx)("code",{children:o.data?.tenant}),")."," ",(0,b.jsx)("button",{type:"button",className:"underline",onClick:()=>void T(),disabled:H,children:"reset"})]})]}),(0,b.jsx)(F,{index:2,title:"Authenticate an Outlook account",disabled:!q,children:q?(0,b.jsxs)("div",{className:"space-y-2 rounded-md border border-border p-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:"outlook-label",children:"Label (optional)"}),(0,b.jsx)(l.Input,{id:"outlook-label",value:D,onChange:a=>G(a.target.value),placeholder:"work, personal, …",className:"h-8 text-xs"})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(f.Button,{size:"sm",onClick:()=>void U(),disabled:H,className:"h-7 text-xs px-3",children:H?"Waiting for consent…":"Authenticate (browser)"}),(0,b.jsx)(f.Button,{size:"sm",variant:"outline",onClick:()=>void V(),disabled:H,className:"h-7 text-xs px-3",title:"Use if the daemon runs headless (SSH / WSL)",children:"Authenticate (device code)"})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"The browser flow may trigger a one-time macOS / Windows firewall prompt — accept it so the loopback callback can complete."})]}):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Save the client ID first."})}),N&&(0,b.jsx)(n.Alert,{variant:"warning",children:(0,b.jsxs)("div",{className:"text-xs",children:["Visit"," ",(0,b.jsx)("a",{href:N.verificationUri,target:"_blank",rel:"noreferrer",className:"underline",children:N.verificationUri})," ","and enter code"," ",(0,b.jsx)("code",{className:"font-mono",children:N.userCode}),". Expires in ",Math.round(N.expiresIn/60)," min."]})}),L&&(0,b.jsx)(n.Alert,{variant:"success",children:L}),J&&(0,b.jsx)(n.Alert,{variant:"error",children:J})]});return(0,b.jsx)(C,{name:"Outlook / Microsoft 365",description:(0,b.jsx)(b.Fragment,{children:"One-time Azure app registration, then connect as many Outlook / outlook.com / Microsoft 365 accounts as you need."}),status:r,setupSection:W,accountsSection:a.length>0?a.map(c=>(0,b.jsx)(v,{account:c,highlight:h===c.id,onReauthenticate:()=>void U(),isLastOfKind:1===a.length,onAfterRemove:async()=>{1===a.length&&m&&await t(d,"outlook",!1)}},c.id)):void 0,enableToggle:{enabled:m,disabled:0===a.length,disabledReason:0===a.length?"Authenticate an Outlook account first.":void 0,busy:P,onChange:R,explainer:"When enabled, the agent observes your Outlook inbox via Microsoft Graph and can read, draft, and send messages."}})}],54283);let G={yahoo:{name:"Yahoo Mail",description:"App-password login over IMAP/SMTP. Generate the password in Yahoo Account Security, paste it once, and the daemon stores it in the OS keychain.",setupUrl:"https://login.yahoo.com/account/security",setupLabel:"Yahoo Account Security",passwordLabel:"Yahoo app password",defaultDomain:"yahoo.com",prerequisite:"Yahoo requires two-step verification on the account before it lets you create app passwords. If you haven't enabled it yet, turn it on first from the same Account Security page.",passwordSteps:[(0,b.jsxs)(b.Fragment,{children:["Open the"," ",(0,b.jsx)("strong",{children:"Yahoo Account Security"})," page and sign in with the Yahoo account you want to connect."]}),(0,b.jsxs)(b.Fragment,{children:["Scroll to ",(0,b.jsx)("strong",{children:"Other ways to sign in"})," and click"," ",(0,b.jsx)("strong",{children:"Generate and manage app passwords"}),". (If the link is missing, enable two-step verification first.)"]}),(0,b.jsxs)(b.Fragment,{children:["In the ",(0,b.jsx)("em",{children:"App name"})," field type ",(0,b.jsx)("code",{children:E.APP_NAME})," (any name works; this is just a label Yahoo shows in your account), then click ",(0,b.jsx)("strong",{children:"Generate password"}),"."]}),(0,b.jsxs)(b.Fragment,{children:["Yahoo shows a 16-character password with spaces. Copy it exactly as shown — ",(0,b.jsx)("strong",{children:"do not type it by hand"}),". Spaces are part of the password."]}),(0,b.jsx)(b.Fragment,{children:"Paste it into the password field below, then click Authenticate."})],passwordHint:"16 characters from Yahoo, spaces included. Do not retype — paste."},icloud:{name:"iCloud Mail",description:"App-specific-password login over IMAP/SMTP. Create the password in Apple Account → Sign-In and Security, paste it once, and the daemon stores it in the OS keychain.",setupUrl:"https://account.apple.com",setupLabel:"Apple Account",passwordLabel:"Apple app-specific password",defaultDomain:"icloud.com",prerequisite:"Apple only allows app-specific passwords on Apple IDs that have two-factor authentication turned on. If your Apple ID doesn't have 2FA yet, enable it first at appleid.apple.com.",passwordSteps:[(0,b.jsxs)(b.Fragment,{children:["Open ",(0,b.jsx)("strong",{children:"Apple Account"})," and sign in with the Apple ID whose iCloud mailbox you want to connect."]}),(0,b.jsxs)(b.Fragment,{children:["In the left sidebar click ",(0,b.jsx)("strong",{children:"Sign-In and Security"}),", then click ",(0,b.jsx)("strong",{children:"App-Specific Passwords"}),"."]}),(0,b.jsxs)(b.Fragment,{children:["Click ",(0,b.jsx)("strong",{children:"+ Generate an app-specific password"}),". Apple may ask you to re-enter your Apple ID password."]}),(0,b.jsxs)(b.Fragment,{children:["In the label field type ",(0,b.jsx)("code",{children:E.APP_NAME})," (any name works), then click ",(0,b.jsx)("strong",{children:"Create"}),"."]}),(0,b.jsxs)(b.Fragment,{children:["Apple shows a 19-character password in the form"," ",(0,b.jsx)("code",{children:"xxxx-xxxx-xxxx-xxxx"}),". Copy it exactly —"," ",(0,b.jsx)("strong",{children:"the dashes are required"}),"."]}),(0,b.jsx)(b.Fragment,{children:"Paste it into the password field below, then click Authenticate."})],passwordHint:"Format: xxxx-xxxx-xxxx-xxxx. Dashes are required — paste, don't retype."}};a.s(["ImapCard",0,function({kind:a,accounts:d,enabledKinds:g,focusAccountId:h}){let i=s(),j=G[a],m=g.includes(a),o=B({accounts:d,enabled:m}),[p,q]=(0,c.useState)(""),[r,u]=(0,c.useState)(""),[w,x]=(0,c.useState)(""),[y,z]=(0,c.useState)(!1),[A,D]=(0,c.useState)(null),[E,F]=(0,c.useState)(null),[H,I]=(0,c.useState)(!1),J=async b=>{I(!0);try{await t(g,a,b),i()}finally{I(!1)}},K=async()=>{z(!0),D(null),F(null);try{await k.api.post("/config/mail/app-password",{kind:a,email:`${p.trim()}@${j.defaultDomain}`,appPassword:r.trim(),label:w.trim()||void 0}),F(`${j.name} authenticated. Toggle the switch below to start using it.`),q(""),u(""),x(""),i()}catch(a){D(a instanceof Error?a.message:"Failed to connect")}finally{z(!1)}},L=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"rounded-md border border-dashed border-border p-3 text-xs space-y-2",children:[(0,b.jsx)("p",{className:"text-foreground font-medium",children:"Step 1: Generate an app password"}),(0,b.jsxs)("p",{className:"text-muted-foreground",children:[j.prerequisite," ",(0,b.jsxs)("a",{href:j.setupUrl,target:"_blank",rel:"noreferrer",className:"underline inline-flex items-center gap-0.5",children:["Open ",j.setupLabel," ",(0,b.jsx)(e.ExternalLink,{className:"h-3 w-3"})]}),"."]}),(0,b.jsx)("ol",{className:"list-decimal list-outside pl-4 space-y-1 text-muted-foreground",children:j.passwordSteps.map((a,c)=>(0,b.jsx)("li",{children:a},c))})]}),(0,b.jsxs)("div",{className:"rounded-md border border-border p-3 space-y-2",children:[(0,b.jsx)("p",{className:"text-xs font-semibold text-foreground",children:"Step 2: Authenticate the account"}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:`${a}-email`,children:"Account email"}),(0,b.jsxs)("div",{className:"flex items-center",children:[(0,b.jsx)(l.Input,{id:`${a}-email`,value:p,onChange:a=>q(a.target.value),placeholder:"username",className:"h-8 text-xs rounded-r-none"}),(0,b.jsxs)("span",{className:"inline-flex h-8 items-center rounded-r-md border border-l-0 border-input bg-muted px-3 text-xs text-muted-foreground select-none",children:["@",j.defaultDomain]})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:`${a}-app-password`,children:j.passwordLabel}),(0,b.jsx)(l.Input,{id:`${a}-app-password`,type:"password",value:r,onChange:a=>u(a.target.value),placeholder:"paste generated password",className:"h-8 text-xs"}),(0,b.jsx)("p",{className:"mt-1 text-[11px] text-muted-foreground",children:j.passwordHint})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:`${a}-label`,children:"Label (optional)"}),(0,b.jsx)(l.Input,{id:`${a}-label`,value:w,onChange:a=>x(a.target.value),placeholder:"personal, family, …",className:"h-8 text-xs"})]}),(0,b.jsx)(f.Button,{size:"sm",onClick:()=>void K(),disabled:y||0===p.trim().length||0===r.trim().length,className:"h-7 text-xs px-3",children:y?"Authenticating…":"Authenticate"})]}),E&&(0,b.jsx)(n.Alert,{variant:"success",children:E}),A&&(0,b.jsx)(n.Alert,{variant:"error",children:A})]});return(0,b.jsx)(C,{name:j.name,description:j.description,status:o,setupSection:L,accountsSection:d.length>0?d.map(c=>(0,b.jsx)(v,{account:c,highlight:h===c.id,isLastOfKind:1===d.length,onAfterRemove:async()=>{1===d.length&&m&&await t(g,a,!1)}},c.id)):void 0,enableToggle:{enabled:m,disabled:0===d.length,disabledReason:0===d.length?`Authenticate a ${j.name} account first.`:void 0,busy:H,onChange:J,explainer:`When enabled, the agent observes your ${j.name} inbox via IMAP IDLE and can read, draft, and send messages.`}})}],14445)}];
2
2
 
3
3
  //# sourceMappingURL=packages_dashboard_src_components_mail_gmail-card_tsx_0kpway8._.js.map