@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,4 +1,4 @@
1
- module.exports=[49910,a=>{"use strict";var b=a.i(39752),c=a.i(34542),d=a.i(32307),e=a.i(43179),f=a.i(73977);let g=(0,a.i(5423).default)("ShieldOff",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71",key:"1jlk70"}],["path",{d:"M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264",key:"18rp1v"}]]);var h=a.i(21218),i=a.i(29629),j=a.i(86807),k=a.i(6236),l=a.i(82687),m=a.i(78019),n=a.i(7037),o=a.i(77694),p=a.i(92417),q=a.i(96336),r=a.i(7385),s=a.i(7384),t=a.i(57216),u=a.i(95827),v=a.i(62588),w=a.i(8753),x=a.i(81130),y=a.i(59974);function z(){return(0,v.useQuery)({queryKey:["mcp","servers"],queryFn:()=>y.api.get("/mcp/servers")})}function A(){let a=(0,x.useQueryClient)();return(0,w.useMutation)({mutationFn:({id:a,patch:b})=>y.api.patch(`/mcp/servers/${encodeURIComponent(a)}`,b),onSuccess:()=>{a.invalidateQueries({queryKey:["mcp","servers"]})}})}var B=a.i(18093),C=a.i(40715),D=a.i(8212);function E({serverId:a,keyName:d,present:e}){let f,g,[i,j]=(0,c.useState)(""),[k,m]=(0,c.useState)(!1),[n,o]=(0,c.useState)(null),p=(f=(0,x.useQueryClient)(),(0,w.useMutation)({mutationFn:({id:a,keyName:b,value:c})=>y.api.put(`/mcp/servers/${encodeURIComponent(a)}/secrets/${encodeURIComponent(b)}`,{value:c}),onSuccess:()=>{f.invalidateQueries({queryKey:["mcp","servers"]})}})),r=(g=(0,x.useQueryClient)(),(0,w.useMutation)({mutationFn:({id:a,keyName:b})=>y.api.delete(`/mcp/servers/${encodeURIComponent(a)}/secrets/${encodeURIComponent(b)}`),onSuccess:()=>{g.invalidateQueries({queryKey:["mcp","servers"]})}})),s=async()=>{if(i){o(null);try{await p.mutateAsync({id:a,keyName:d,value:i}),j("")}catch(a){o(a instanceof Error?a.message:"Failed to save")}}},t=async()=>{o(null);try{await r.mutateAsync({id:a,keyName:d})}catch(a){o(a instanceof Error?a.message:"Failed to delete")}};return(0,b.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,b.jsx)("code",{className:"font-mono text-foreground min-w-[100px]",children:d}),(0,b.jsxs)("div",{className:"relative flex-1",children:[(0,b.jsx)(D.Input,{type:k?"text":"password",value:i,onChange:a=>j(a.target.value),onKeyDown:a=>{"Enter"===a.key&&s()},placeholder:e?"(stored — enter to replace)":"enter value",className:"h-7 text-xs pr-8 font-mono"}),(0,b.jsx)("button",{type:"button",onClick:()=>m(!k),className:"absolute right-2 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground","aria-label":k?"Hide value":"Show value",children:k?(0,b.jsx)(C.EyeOff,{className:"h-3.5 w-3.5"}):(0,b.jsx)(B.Eye,{className:"h-3.5 w-3.5"})})]}),(0,b.jsx)(h.Button,{size:"sm",variant:"outline",className:"h-7 text-xs px-2 shrink-0",onClick:s,disabled:p.isPending||!i,children:p.isPending?"…":"Save"}),e&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l.CheckCircle2,{className:"h-4 w-4 text-emerald-500 shrink-0"}),(0,b.jsx)("button",{type:"button",onClick:t,disabled:r.isPending,className:"text-muted-foreground hover:text-red-500 shrink-0","aria-label":"Delete stored secret",children:(0,b.jsx)(q.Trash2,{className:"h-3.5 w-3.5"})})]}),n&&(0,b.jsx)("span",{className:"text-red-600 dark:text-red-400 text-[11px]",children:n})]})}var F=a.i(3504);function G({call:a}){var c;let d;return(0,b.jsxs)("li",{className:"flex items-start gap-2 text-xs py-0.5",children:[(0,b.jsx)("span",{className:!0===a.ok?"text-green-600 dark:text-green-400 shrink-0":!1===a.ok?"text-red-500 dark:text-red-400 shrink-0":"text-muted-foreground shrink-0","aria-label":!0===a.ok?"success":!1===a.ok?"error":"invocation recorded",children:!0===a.ok?"✓":!1===a.ok?"✗":"·"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("code",{className:"text-foreground",children:a.toolName}),a.eventType&&(0,b.jsxs)("span",{className:"ml-1.5 text-muted-foreground text-[10px]",children:["via ",a.eventType]}),a.error&&(0,b.jsx)("p",{className:"text-red-500 dark:text-red-400 text-[10px] truncate",children:a.error})]}),(0,b.jsxs)("div",{className:"flex flex-col items-end shrink-0 tabular-nums text-[10px] text-muted-foreground",children:[(0,b.jsx)("span",{children:(c=a.calledAt,(d=Math.max(1,Math.round((Date.now()-c)/1e3)))<60?`${d}s ago`:d<3600?`${Math.round(d/60)}m ago`:d<86400?`${Math.round(d/3600)}h ago`:`${Math.round(d/86400)}d ago`)}),null!=a.durationMs&&(0,b.jsxs)("span",{children:[a.durationMs,"ms"]})]})]})}function H({serverId:a}){let c=function(a,b=20){return(0,v.useQuery)({queryKey:["mcp","activity",a,b],queryFn:()=>y.api.get(`/mcp/servers/${encodeURIComponent(a)}/activity?limit=${b}`),staleTime:15e3})}(a,15),d=c.data?.calls??[],e=c.isLoading;return(0,b.jsxs)(t.Collapsible,{children:[(0,b.jsxs)(t.CollapsibleTrigger,{className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground mt-2",children:[(0,b.jsx)(F.Clock,{className:"h-3 w-3"}),"Recent activity",d.length>0&&(0,b.jsxs)("span",{className:"text-[10px] text-muted-foreground",children:["(",d.length,")"]}),(0,b.jsx)(m.ChevronDown,{className:"h-3 w-3"})]}),(0,b.jsx)(t.CollapsibleContent,{children:(0,b.jsxs)("div",{className:"mt-1 rounded bg-muted/50 p-2",children:[e&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Loading…"}),!e&&0===d.length&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"No tool calls recorded yet."}),d.length>0&&(0,b.jsx)("ul",{className:"space-y-0.5",children:d.map(a=>(0,b.jsx)(G,{call:a},a.id))})]})})]})}function I({server:a,onEdit:d}){var e;let f,g,j,v=(f=(0,x.useQueryClient)(),(0,w.useMutation)({mutationFn:({id:a,enabled:b})=>y.api.post(`/mcp/servers/${encodeURIComponent(a)}/${b?"enable":"disable"}`),onSuccess:()=>{f.invalidateQueries({queryKey:["mcp","servers"]})}})),z=(g=(0,x.useQueryClient)(),(0,w.useMutation)({mutationFn:a=>y.api.post(`/mcp/servers/${encodeURIComponent(a)}/probe`),onSuccess:()=>{g.invalidateQueries({queryKey:["mcp","servers"]})}})),B=(j=(0,x.useQueryClient)(),(0,w.useMutation)({mutationFn:a=>y.api.delete(`/mcp/servers/${encodeURIComponent(a)}`),onSuccess:()=>{j.invalidateQueries({queryKey:["mcp","servers"]})}})),C=A(),[D,F]=(0,c.useState)(!1),[G,J]=(0,c.useState)(null),K=a.lastProbeStatus?.ok?a.lastProbeStatus.tools.map(a=>a.name):[],L=async b=>{J(null);try{let c=function(a,b,c){let d=Array.from(new Set(c)).sort(),e=new Set(d),f=new Set(null===a?d:a.filter(a=>e.has(a)));if(f.has(b))f.delete(b);else{if(!e.has(b))return a;f.add(b)}return f.size===d.length?null:Array.from(f).sort()}(a.toolAllowlist,b,K);await C.mutateAsync({id:a.id,patch:{toolAllowlist:c}})}catch(a){J(a instanceof Error?a.message:"Failed to update allowlist")}},M=[...a.envKeys,...a.headerKeys],N=M.filter(b=>!0!==a.secretsPresent[b]),O=async()=>{J(null);try{await v.mutateAsync({id:a.id,enabled:!a.enabled})}catch(a){J(a instanceof Error?a.message:"Failed to toggle")}},P=async()=>{J(null);try{await z.mutateAsync(a.id)}catch(a){J(a instanceof Error?a.message:"Probe failed")}},Q=async()=>{J(null);try{await B.mutateAsync(a.id)}catch(a){J(a instanceof Error?a.message:"Delete failed"),F(!1)}};return(0,b.jsxs)(u.ConnectionCard,{name:a.name,icon:(0,b.jsx)(k.Activity,{className:"h-4 w-4"}),status:a.enabled?a.lastProbeStatus&&!a.lastProbeStatus.ok?"error":a.lastProbeStatus?.ok?"connected":"configured":"disabled",metadata:[{label:"ID",value:a.id},{label:"Transport",value:"stdio"===(e=a.transport)?"Local (stdio)":"http"===e?"HTTP (remote)":"SSE (remote, legacy)"},{label:"Backends",value:a.backends.join(", ")},{label:"Last probe",value:function(a){if(!a)return"never";let b=Math.max(1,Math.round((Date.now()-a)/1e3));return b<60?`${b}s ago`:b<3600?`${Math.round(b/60)}m ago`:b<86400?`${Math.round(b/3600)}h ago`:`${Math.round(b/86400)}d ago`}(a.lastProbeAt)}],children:[a.lastProbeStatus?.ok&&a.lastProbeStatus.tools.length>0&&(0,b.jsxs)(t.Collapsible,{children:[(0,b.jsxs)(t.CollapsibleTrigger,{className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground mt-2",children:[a.lastProbeStatus.tools.length," tools"," ",null!==a.toolAllowlist&&(0,b.jsxs)("span",{className:"text-amber-600 dark:text-amber-400",children:["(",a.toolAllowlist.length," allowed)"]}),(0,b.jsx)(m.ChevronDown,{className:"h-3 w-3"})]}),(0,b.jsx)(t.CollapsibleContent,{children:(0,b.jsx)("ul",{className:"mt-1 space-y-1 rounded bg-muted/50 p-2 text-xs",children:a.lastProbeStatus.tools.map(c=>{var d,e;let f="allowed"==(d=a.toolAllowlist,e=c.name,null===d||d.includes(e)?"allowed":"blocked");return(0,b.jsxs)("li",{className:"flex items-start gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:f,disabled:C.isPending,onChange:()=>void L(c.name),className:"mt-0.5 h-3.5 w-3.5 shrink-0 cursor-pointer accent-foreground","aria-label":`${f?"Disable":"Enable"} tool ${c.name}`}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-col",children:[(0,b.jsx)("code",{className:f?"text-foreground":"text-muted-foreground line-through",children:c.name}),c.description&&(0,b.jsx)("span",{className:"text-muted-foreground",children:c.description})]})]},c.name)})})})]}),a.lastProbeStatus&&!a.lastProbeStatus.ok&&(0,b.jsxs)(i.Alert,{variant:"error",className:"mt-2 text-xs",children:[(0,b.jsx)(r.XCircle,{className:"h-3.5 w-3.5 mr-1 inline"}),a.lastProbeStatus.error??"Probe failed"]}),(0,b.jsx)(H,{serverId:a.id}),M.length>0&&(0,b.jsxs)("div",{className:"mt-3 space-y-1.5",children:[(0,b.jsx)("p",{className:"text-xs font-medium text-muted-foreground",children:"Secrets"}),M.map(c=>(0,b.jsx)(E,{serverId:a.id,keyName:c,present:a.secretsPresent[c]??!1},c)),N.length>0&&a.enabled&&(0,b.jsxs)(i.Alert,{variant:"warning",className:"text-xs",children:["Server is enabled but missing values for:"," ",(0,b.jsx)("code",{children:N.join(", ")})]})]}),(0,b.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[(0,b.jsx)(h.Button,{size:"sm",variant:"outline",className:"h-7 text-xs",onClick:P,disabled:z.isPending,children:z.isPending?"Probing…":(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l.CheckCircle2,{className:"h-3.5 w-3.5 mr-1"})," Probe"]})}),(0,b.jsx)(h.Button,{size:"sm",variant:"outline",className:"h-7 text-xs",onClick:O,disabled:v.isPending,children:a.enabled?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(p.PowerOff,{className:"h-3.5 w-3.5 mr-1"})," Disable"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(o.Power,{className:"h-3.5 w-3.5 mr-1"})," Enable"]})}),(0,b.jsxs)(h.Button,{size:"sm",variant:"outline",className:"h-7 text-xs",onClick:()=>d(a),children:[(0,b.jsx)(n.Pencil,{className:"h-3.5 w-3.5 mr-1"})," Edit"]}),(0,b.jsx)("div",{className:"ml-auto",children:D?(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)(h.Button,{size:"sm",variant:"outline",className:"h-7 text-xs",onClick:()=>F(!1),children:"Cancel"}),(0,b.jsx)(h.Button,{size:"sm",variant:"outline",className:"h-7 text-xs text-red-600",onClick:Q,disabled:B.isPending,children:"Confirm delete"})]}):(0,b.jsx)(h.Button,{size:"sm",variant:"ghost",className:"h-7 text-xs text-muted-foreground hover:text-red-600",onClick:()=>F(!0),children:(0,b.jsx)(q.Trash2,{className:"h-3.5 w-3.5"})})})]}),(0,b.jsxs)("div",{className:"mt-2 flex items-center gap-2 text-[11px] text-muted-foreground",children:[(0,b.jsxs)(s.Badge,{variant:"gray",children:["risk: ",a.riskTier]}),a.toolAllowlist&&(0,b.jsxs)(s.Badge,{variant:"gray",children:["allowlist: ",a.toolAllowlist.length," tools"]})]}),G&&(0,b.jsx)(i.Alert,{variant:"error",className:"mt-2 text-xs",children:G})]})}var J=a.i(95024),K=a.i(85857),L=a.i(30400);a.i(70010);var M=a.i(58906);let N=/^[a-z0-9][a-z0-9-]*$/;function O(){return{id:"",name:"",transport:"stdio",command:"",argsText:"",url:"",envKeysText:"",headerKeysText:"",backends:["claude"]}}function P(a){return a.split(/[,\s]+/).map(a=>a.trim()).filter(a=>a.length>0)}function Q({editing:a,onCancel:d,onSaved:f}){let g,[j,k]=(0,c.useState)(a?{id:a.id,name:a.name,transport:a.transport,command:a.command??"",argsText:(a.args??[]).join(" "),url:a.url??"",envKeysText:a.envKeys.join(", "),headerKeysText:a.headerKeys.join(", "),backends:a.backends}:O()),[l,m]=(0,c.useState)(null),n=(g=(0,x.useQueryClient)(),(0,w.useMutation)({mutationFn:a=>y.api.post("/mcp/servers",a),onSuccess:()=>{g.invalidateQueries({queryKey:["mcp","servers"]})}})),o=A(),p=null!==a,q=n.isPending||o.isPending,r=async()=>{m(null);let b=j.id.trim();if(!p&&!N.test(b))return void m("ID must be lowercase alphanumeric + dash, starting with a letter or digit.");if(!j.name.trim())return void m("Name is required.");if("stdio"===j.transport&&!j.command.trim())return void m("stdio transport requires a command.");if("stdio"!==j.transport&&!j.url.trim())return void m(`${j.transport} transport requires a URL.`);if(0===j.backends.length)return void m("Pick at least one backend.");let c=P(j.envKeysText),d=P(j.headerKeysText),e="stdio"===j.transport&&j.argsText.trim().length>0?P(j.argsText):null;try{if(p&&a)await o.mutateAsync({id:a.id,patch:{name:j.name.trim(),transport:j.transport,command:"stdio"===j.transport?j.command.trim():null,args:e,url:"stdio"===j.transport?null:j.url.trim(),envKeys:"stdio"===j.transport?c:[],headerKeys:"stdio"===j.transport?[]:d,backends:j.backends}});else{let a={id:b,name:j.name.trim(),transport:j.transport,command:"stdio"===j.transport?j.command.trim():null,args:e,url:"stdio"===j.transport?null:j.url.trim(),envKeys:"stdio"===j.transport?c:[],headerKeys:"stdio"===j.transport?[]:d,backends:j.backends};await n.mutateAsync(a)}f(),p||k(O())}catch(a){m(a instanceof Error?a.message:"Save failed")}};return(0,b.jsxs)(L.Card,{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("h3",{className:"text-sm font-medium",children:p?`Edit ${a?.name}`:"Add MCP server"}),(0,b.jsx)(h.Button,{size:"sm",variant:"ghost",className:"h-7 text-xs",onClick:d,children:(0,b.jsx)(K.X,{className:"h-3.5 w-3.5"})})]}),(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:"ID"}),(0,b.jsx)(D.Input,{className:"h-7 text-xs font-mono",value:j.id,disabled:p,onChange:a=>k({...j,id:a.target.value.toLowerCase()}),placeholder:"monday"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:"Name"}),(0,b.jsx)(D.Input,{className:"h-7 text-xs",value:j.name,onChange:a=>k({...j,name:a.target.value}),placeholder:"Monday"})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:"Transport"}),(0,b.jsx)("div",{className:"flex gap-2 mt-1",children:["stdio","http","sse"].map(a=>(0,b.jsx)(h.Button,{size:"sm",variant:j.transport===a?"default":"outline",className:"h-7 text-xs",onClick:()=>k({...j,transport:a}),children:a},a))})]}),"stdio"===j.transport?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:"Command"}),(0,b.jsx)(D.Input,{className:"h-7 text-xs font-mono",value:j.command,onChange:a=>k({...j,command:a.target.value}),placeholder:"npx"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:"Args (space-separated)"}),(0,b.jsx)(D.Input,{className:"h-7 text-xs font-mono",value:j.argsText,onChange:a=>k({...j,argsText:a.target.value}),placeholder:"-y ha-mcp-server"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:"Env keys (comma-separated; values managed below after save)"}),(0,b.jsx)(D.Input,{className:"h-7 text-xs font-mono",value:j.envKeysText,onChange:a=>k({...j,envKeysText:a.target.value}),placeholder:"HA_URL, HA_TOKEN"})]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:"URL"}),(0,b.jsx)(D.Input,{className:"h-7 text-xs font-mono",value:j.url,onChange:a=>k({...j,url:a.target.value}),placeholder:"https://mcp.monday.com/mcp"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:"Header keys (comma-separated; values managed below after save)"}),(0,b.jsx)(D.Input,{className:"h-7 text-xs font-mono",value:j.headerKeysText,onChange:a=>k({...j,headerKeysText:a.target.value}),placeholder:"Authorization"})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:"Backends"}),(0,b.jsx)("div",{className:"flex gap-2 mt-1",children:M.BACKEND_IDS.map(a=>(0,b.jsx)(h.Button,{size:"sm",variant:j.backends.includes(a)?"default":"outline",className:"h-7 text-xs capitalize",onClick:()=>{k(b=>{if(b.backends.includes(a)){let c=b.backends.filter(b=>b!==a);return{...b,backends:0===c.length?b.backends:c}}return{...b,backends:[...b.backends,a]}})},children:a},a))})]}),l&&(0,b.jsx)(i.Alert,{variant:"error",children:l}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)(h.Button,{size:"sm",variant:"outline",className:"h-7 text-xs",onClick:d,children:"Cancel"}),(0,b.jsx)(h.Button,{size:"sm",className:"h-7 text-xs",onClick:r,disabled:q,children:p?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(J.Save,{className:"h-3.5 w-3.5 mr-1"})," Save"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.Plus,{className:"h-3.5 w-3.5 mr-1"})," Create"]})})]})]})}var R=a.i(45952),S=a.i(52938),T=a.i(7437),U=a.i(69481),V=a.i(48558);let W=/[a-z0-9][a-z0-9-]{0,62}/g,X=/`([^`]+)`/g,Y="policies/mcp";function Z(){let a=(0,T.useContextFile)(Y);return a.isLoading?(0,b.jsx)(L.Card,{className:"p-4",children:(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading policies/mcp.md…"})}):a.error||!a.data?404===a.error?.status?(0,b.jsx)($,{}):(0,b.jsx)(L.Card,{className:"p-4",children:(0,b.jsxs)("p",{className:"text-sm text-destructive",children:["Failed to load policies/mcp.md:"," ",a.error?.message??"unknown error"]})}):(0,b.jsx)(ab,{initial:a.data,editable:!1!==a.data.editable})}function $(){return(0,b.jsx)(L.Card,{className:"p-4",children:(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)(R.FileText,{className:"h-5 w-5 text-muted-foreground shrink-0 mt-0.5"}),(0,b.jsxs)("div",{className:"space-y-1 text-sm",children:[(0,b.jsxs)("p",{className:"font-medium text-foreground",children:[(0,b.jsx)("code",{children:"policies/mcp.md"})," has not been created yet."]}),(0,b.jsx)("p",{className:"text-muted-foreground",children:"Add your first rule by editing this file. It will be created on save and injected into every task-flow prompt while at least one MCP server is enabled. Until then the agent treats each tool on its own merits without a curated preference order."}),(0,b.jsx)(_,{})]})]})})}function _(){let a=(0,T.useUpdateContextFile)(),[d,e]=(0,c.useState)(null),f=async()=>{e(null);try{await a.mutateAsync({path:Y,content:aa})}catch(a){e(a instanceof y.ApiError||a instanceof Error?a.message:"Failed to create policies/mcp.md")}};return(0,b.jsxs)("div",{className:"pt-2",children:[(0,b.jsx)(h.Button,{size:"sm",variant:"outline",onClick:f,disabled:a.isPending,className:"h-7 text-xs",children:a.isPending?"Creating…":"Create policies/mcp.md"}),d&&(0,b.jsx)("p",{className:"mt-2 text-xs text-destructive",children:d})]})}let aa=`# MCP management rules
1
+ module.exports=[49910,a=>{"use strict";var b=a.i(39752),c=a.i(34542),d=a.i(32307),e=a.i(43179),f=a.i(73977);let g=(0,a.i(5423).default)("ShieldOff",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71",key:"1jlk70"}],["path",{d:"M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264",key:"18rp1v"}]]);var h=a.i(21218),i=a.i(29629),j=a.i(86807),k=a.i(6236),l=a.i(82687),m=a.i(78019),n=a.i(7037),o=a.i(77694),p=a.i(92417),q=a.i(96336),r=a.i(7385),s=a.i(7384),t=a.i(57216),u=a.i(95827),v=a.i(62588),w=a.i(8753),x=a.i(81130),y=a.i(59974);function z(){return(0,v.useQuery)({queryKey:["mcp","servers"],queryFn:()=>y.api.get("/mcp/servers")})}function A(){let a=(0,x.useQueryClient)();return(0,w.useMutation)({mutationFn:({id:a,patch:b})=>y.api.patch(`/mcp/servers/${encodeURIComponent(a)}`,b),onSuccess:()=>{a.invalidateQueries({queryKey:["mcp","servers"]})}})}var B=a.i(18093),C=a.i(40715),D=a.i(8212);function E({serverId:a,keyName:d,present:e}){let f,g,[i,j]=(0,c.useState)(""),[k,m]=(0,c.useState)(!1),[n,o]=(0,c.useState)(null),p=(f=(0,x.useQueryClient)(),(0,w.useMutation)({mutationFn:({id:a,keyName:b,value:c})=>y.api.put(`/mcp/servers/${encodeURIComponent(a)}/secrets/${encodeURIComponent(b)}`,{value:c}),onSuccess:()=>{f.invalidateQueries({queryKey:["mcp","servers"]})}})),r=(g=(0,x.useQueryClient)(),(0,w.useMutation)({mutationFn:({id:a,keyName:b})=>y.api.delete(`/mcp/servers/${encodeURIComponent(a)}/secrets/${encodeURIComponent(b)}`),onSuccess:()=>{g.invalidateQueries({queryKey:["mcp","servers"]})}})),s=async()=>{if(i){o(null);try{await p.mutateAsync({id:a,keyName:d,value:i}),j("")}catch(a){o(a instanceof Error?a.message:"Failed to save")}}},t=async()=>{o(null);try{await r.mutateAsync({id:a,keyName:d})}catch(a){o(a instanceof Error?a.message:"Failed to delete")}};return(0,b.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,b.jsx)("code",{className:"font-mono text-foreground min-w-[100px]",children:d}),(0,b.jsxs)("div",{className:"relative flex-1",children:[(0,b.jsx)(D.Input,{type:k?"text":"password",value:i,onChange:a=>j(a.target.value),onKeyDown:a=>{"Enter"===a.key&&s()},placeholder:e?"(stored — enter to replace)":"enter value",className:"h-7 text-xs pr-8 font-mono"}),(0,b.jsx)("button",{type:"button",onClick:()=>m(!k),className:"absolute right-2 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground","aria-label":k?"Hide value":"Show value",children:k?(0,b.jsx)(C.EyeOff,{className:"h-3.5 w-3.5"}):(0,b.jsx)(B.Eye,{className:"h-3.5 w-3.5"})})]}),(0,b.jsx)(h.Button,{size:"sm",variant:"outline",className:"h-7 text-xs px-2 shrink-0",onClick:s,disabled:p.isPending||!i,children:p.isPending?"…":"Save"}),e&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l.CheckCircle2,{className:"h-4 w-4 text-success shrink-0"}),(0,b.jsx)("button",{type:"button",onClick:t,disabled:r.isPending,className:"text-muted-foreground hover:text-destructive shrink-0","aria-label":"Delete stored secret",children:(0,b.jsx)(q.Trash2,{className:"h-3.5 w-3.5"})})]}),n&&(0,b.jsx)("span",{className:"text-destructive text-[11px]",children:n})]})}var F=a.i(3504);function G({call:a}){var c;let d;return(0,b.jsxs)("li",{className:"flex items-start gap-2 text-xs py-0.5",children:[(0,b.jsx)("span",{className:!0===a.ok?"text-success shrink-0":!1===a.ok?"text-destructive shrink-0":"text-muted-foreground shrink-0","aria-label":!0===a.ok?"success":!1===a.ok?"error":"invocation recorded",children:!0===a.ok?"✓":!1===a.ok?"✗":"·"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("code",{className:"text-foreground",children:a.toolName}),a.eventType&&(0,b.jsxs)("span",{className:"ml-1.5 text-muted-foreground text-[10px]",children:["via ",a.eventType]}),a.error&&(0,b.jsx)("p",{className:"text-destructive text-[10px] truncate",children:a.error})]}),(0,b.jsxs)("div",{className:"flex flex-col items-end shrink-0 tabular-nums text-[10px] text-muted-foreground",children:[(0,b.jsx)("span",{children:(c=a.calledAt,(d=Math.max(1,Math.round((Date.now()-c)/1e3)))<60?`${d}s ago`:d<3600?`${Math.round(d/60)}m ago`:d<86400?`${Math.round(d/3600)}h ago`:`${Math.round(d/86400)}d ago`)}),null!=a.durationMs&&(0,b.jsxs)("span",{children:[a.durationMs,"ms"]})]})]})}function H({serverId:a}){let c=function(a,b=20){return(0,v.useQuery)({queryKey:["mcp","activity",a,b],queryFn:()=>y.api.get(`/mcp/servers/${encodeURIComponent(a)}/activity?limit=${b}`),staleTime:15e3})}(a,15),d=c.data?.calls??[],e=c.isLoading;return(0,b.jsxs)(t.Collapsible,{children:[(0,b.jsxs)(t.CollapsibleTrigger,{className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground mt-2",children:[(0,b.jsx)(F.Clock,{className:"h-3 w-3"}),"Recent activity",d.length>0&&(0,b.jsxs)("span",{className:"text-[10px] text-muted-foreground",children:["(",d.length,")"]}),(0,b.jsx)(m.ChevronDown,{className:"h-3 w-3"})]}),(0,b.jsx)(t.CollapsibleContent,{children:(0,b.jsxs)("div",{className:"mt-1 rounded bg-muted/50 p-2",children:[e&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Loading…"}),!e&&0===d.length&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"No tool calls recorded yet."}),d.length>0&&(0,b.jsx)("ul",{className:"space-y-0.5",children:d.map(a=>(0,b.jsx)(G,{call:a},a.id))})]})})]})}function I({server:a,onEdit:d}){var e;let f,g,j,v=(f=(0,x.useQueryClient)(),(0,w.useMutation)({mutationFn:({id:a,enabled:b})=>y.api.post(`/mcp/servers/${encodeURIComponent(a)}/${b?"enable":"disable"}`),onSuccess:()=>{f.invalidateQueries({queryKey:["mcp","servers"]})}})),z=(g=(0,x.useQueryClient)(),(0,w.useMutation)({mutationFn:a=>y.api.post(`/mcp/servers/${encodeURIComponent(a)}/probe`),onSuccess:()=>{g.invalidateQueries({queryKey:["mcp","servers"]})}})),B=(j=(0,x.useQueryClient)(),(0,w.useMutation)({mutationFn:a=>y.api.delete(`/mcp/servers/${encodeURIComponent(a)}`),onSuccess:()=>{j.invalidateQueries({queryKey:["mcp","servers"]})}})),C=A(),[D,F]=(0,c.useState)(!1),[G,J]=(0,c.useState)(null),K=a.lastProbeStatus?.ok?a.lastProbeStatus.tools.map(a=>a.name):[],L=async b=>{J(null);try{let c=function(a,b,c){let d=Array.from(new Set(c)).sort(),e=new Set(d),f=new Set(null===a?d:a.filter(a=>e.has(a)));if(f.has(b))f.delete(b);else{if(!e.has(b))return a;f.add(b)}return f.size===d.length?null:Array.from(f).sort()}(a.toolAllowlist,b,K);await C.mutateAsync({id:a.id,patch:{toolAllowlist:c}})}catch(a){J(a instanceof Error?a.message:"Failed to update allowlist")}},M=[...a.envKeys,...a.headerKeys],N=M.filter(b=>!0!==a.secretsPresent[b]),O=async()=>{J(null);try{await v.mutateAsync({id:a.id,enabled:!a.enabled})}catch(a){J(a instanceof Error?a.message:"Failed to toggle")}},P=async()=>{J(null);try{await z.mutateAsync(a.id)}catch(a){J(a instanceof Error?a.message:"Probe failed")}},Q=async()=>{J(null);try{await B.mutateAsync(a.id)}catch(a){J(a instanceof Error?a.message:"Delete failed"),F(!1)}};return(0,b.jsxs)(u.ConnectionCard,{name:a.name,icon:(0,b.jsx)(k.Activity,{className:"h-4 w-4"}),status:a.enabled?a.lastProbeStatus&&!a.lastProbeStatus.ok?"error":a.lastProbeStatus?.ok?"connected":"configured":"disabled",metadata:[{label:"ID",value:a.id},{label:"Transport",value:"stdio"===(e=a.transport)?"Local (stdio)":"http"===e?"HTTP (remote)":"SSE (remote, legacy)"},{label:"Backends",value:a.backends.join(", ")},{label:"Last probe",value:function(a){if(!a)return"never";let b=Math.max(1,Math.round((Date.now()-a)/1e3));return b<60?`${b}s ago`:b<3600?`${Math.round(b/60)}m ago`:b<86400?`${Math.round(b/3600)}h ago`:`${Math.round(b/86400)}d ago`}(a.lastProbeAt)}],children:[a.lastProbeStatus?.ok&&a.lastProbeStatus.tools.length>0&&(0,b.jsxs)(t.Collapsible,{children:[(0,b.jsxs)(t.CollapsibleTrigger,{className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground mt-2",children:[a.lastProbeStatus.tools.length," tools"," ",null!==a.toolAllowlist&&(0,b.jsxs)("span",{className:"text-warning",children:["(",a.toolAllowlist.length," allowed)"]}),(0,b.jsx)(m.ChevronDown,{className:"h-3 w-3"})]}),(0,b.jsx)(t.CollapsibleContent,{children:(0,b.jsx)("ul",{className:"mt-1 space-y-1 rounded bg-muted/50 p-2 text-xs",children:a.lastProbeStatus.tools.map(c=>{var d,e;let f="allowed"==(d=a.toolAllowlist,e=c.name,null===d||d.includes(e)?"allowed":"blocked");return(0,b.jsxs)("li",{className:"flex items-start gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:f,disabled:C.isPending,onChange:()=>void L(c.name),className:"mt-0.5 h-3.5 w-3.5 shrink-0 cursor-pointer accent-foreground","aria-label":`${f?"Disable":"Enable"} tool ${c.name}`}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-col",children:[(0,b.jsx)("code",{className:f?"text-foreground":"text-muted-foreground line-through",children:c.name}),c.description&&(0,b.jsx)("span",{className:"text-muted-foreground",children:c.description})]})]},c.name)})})})]}),a.lastProbeStatus&&!a.lastProbeStatus.ok&&(0,b.jsxs)(i.Alert,{variant:"error",className:"mt-2 text-xs",children:[(0,b.jsx)(r.XCircle,{className:"h-3.5 w-3.5 mr-1 inline"}),a.lastProbeStatus.error??"Probe failed"]}),(0,b.jsx)(H,{serverId:a.id}),M.length>0&&(0,b.jsxs)("div",{className:"mt-3 space-y-1.5",children:[(0,b.jsx)("p",{className:"text-xs font-medium text-muted-foreground",children:"Secrets"}),M.map(c=>(0,b.jsx)(E,{serverId:a.id,keyName:c,present:a.secretsPresent[c]??!1},c)),N.length>0&&a.enabled&&(0,b.jsxs)(i.Alert,{variant:"warning",className:"text-xs",children:["Server is enabled but missing values for:"," ",(0,b.jsx)("code",{children:N.join(", ")})]})]}),(0,b.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[(0,b.jsx)(h.Button,{size:"sm",variant:"outline",className:"h-7 text-xs",onClick:P,disabled:z.isPending,children:z.isPending?"Probing…":(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l.CheckCircle2,{className:"h-3.5 w-3.5 mr-1"})," Probe"]})}),(0,b.jsx)(h.Button,{size:"sm",variant:"outline",className:"h-7 text-xs",onClick:O,disabled:v.isPending,children:a.enabled?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(p.PowerOff,{className:"h-3.5 w-3.5 mr-1"})," Disable"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(o.Power,{className:"h-3.5 w-3.5 mr-1"})," Enable"]})}),(0,b.jsxs)(h.Button,{size:"sm",variant:"outline",className:"h-7 text-xs",onClick:()=>d(a),children:[(0,b.jsx)(n.Pencil,{className:"h-3.5 w-3.5 mr-1"})," Edit"]}),(0,b.jsx)("div",{className:"ml-auto",children:D?(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)(h.Button,{size:"sm",variant:"outline",className:"h-7 text-xs",onClick:()=>F(!1),children:"Cancel"}),(0,b.jsx)(h.Button,{size:"sm",variant:"outline",className:"h-7 text-xs text-destructive",onClick:Q,disabled:B.isPending,children:"Confirm delete"})]}):(0,b.jsx)(h.Button,{size:"sm",variant:"ghost",className:"h-7 text-xs text-muted-foreground hover:text-destructive",onClick:()=>F(!0),children:(0,b.jsx)(q.Trash2,{className:"h-3.5 w-3.5"})})})]}),(0,b.jsxs)("div",{className:"mt-2 flex items-center gap-2 text-[11px] text-muted-foreground",children:[(0,b.jsxs)(s.Badge,{variant:"gray",children:["risk: ",a.riskTier]}),a.toolAllowlist&&(0,b.jsxs)(s.Badge,{variant:"gray",children:["allowlist: ",a.toolAllowlist.length," tools"]})]}),G&&(0,b.jsx)(i.Alert,{variant:"error",className:"mt-2 text-xs",children:G})]})}var J=a.i(95024),K=a.i(85857),L=a.i(30400);a.i(70010);var M=a.i(58906);let N=/^[a-z0-9][a-z0-9-]*$/;function O(){return{id:"",name:"",transport:"stdio",command:"",argsText:"",url:"",envKeysText:"",headerKeysText:"",backends:["claude"]}}function P(a){return a.split(/[,\s]+/).map(a=>a.trim()).filter(a=>a.length>0)}function Q({editing:a,onCancel:d,onSaved:f}){let g,[j,k]=(0,c.useState)(a?{id:a.id,name:a.name,transport:a.transport,command:a.command??"",argsText:(a.args??[]).join(" "),url:a.url??"",envKeysText:a.envKeys.join(", "),headerKeysText:a.headerKeys.join(", "),backends:a.backends}:O()),[l,m]=(0,c.useState)(null),n=(g=(0,x.useQueryClient)(),(0,w.useMutation)({mutationFn:a=>y.api.post("/mcp/servers",a),onSuccess:()=>{g.invalidateQueries({queryKey:["mcp","servers"]})}})),o=A(),p=null!==a,q=n.isPending||o.isPending,r=async()=>{m(null);let b=j.id.trim();if(!p&&!N.test(b))return void m("ID must be lowercase alphanumeric + dash, starting with a letter or digit.");if(!j.name.trim())return void m("Name is required.");if("stdio"===j.transport&&!j.command.trim())return void m("stdio transport requires a command.");if("stdio"!==j.transport&&!j.url.trim())return void m(`${j.transport} transport requires a URL.`);if(0===j.backends.length)return void m("Pick at least one backend.");let c=P(j.envKeysText),d=P(j.headerKeysText),e="stdio"===j.transport&&j.argsText.trim().length>0?P(j.argsText):null;try{if(p&&a)await o.mutateAsync({id:a.id,patch:{name:j.name.trim(),transport:j.transport,command:"stdio"===j.transport?j.command.trim():null,args:e,url:"stdio"===j.transport?null:j.url.trim(),envKeys:"stdio"===j.transport?c:[],headerKeys:"stdio"===j.transport?[]:d,backends:j.backends}});else{let a={id:b,name:j.name.trim(),transport:j.transport,command:"stdio"===j.transport?j.command.trim():null,args:e,url:"stdio"===j.transport?null:j.url.trim(),envKeys:"stdio"===j.transport?c:[],headerKeys:"stdio"===j.transport?[]:d,backends:j.backends};await n.mutateAsync(a)}f(),p||k(O())}catch(a){m(a instanceof Error?a.message:"Save failed")}};return(0,b.jsxs)(L.Card,{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("h3",{className:"text-sm font-medium",children:p?`Edit ${a?.name}`:"Add MCP server"}),(0,b.jsx)(h.Button,{size:"sm",variant:"ghost",className:"h-7 text-xs",onClick:d,children:(0,b.jsx)(K.X,{className:"h-3.5 w-3.5"})})]}),(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:"ID"}),(0,b.jsx)(D.Input,{className:"h-7 text-xs font-mono",value:j.id,disabled:p,onChange:a=>k({...j,id:a.target.value.toLowerCase()}),placeholder:"monday"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:"Name"}),(0,b.jsx)(D.Input,{className:"h-7 text-xs",value:j.name,onChange:a=>k({...j,name:a.target.value}),placeholder:"Monday"})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:"Transport"}),(0,b.jsx)("div",{className:"flex gap-2 mt-1",children:["stdio","http","sse"].map(a=>(0,b.jsx)(h.Button,{size:"sm",variant:j.transport===a?"default":"outline",className:"h-7 text-xs",onClick:()=>k({...j,transport:a}),children:a},a))})]}),"stdio"===j.transport?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:"Command"}),(0,b.jsx)(D.Input,{className:"h-7 text-xs font-mono",value:j.command,onChange:a=>k({...j,command:a.target.value}),placeholder:"npx"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:"Args (space-separated)"}),(0,b.jsx)(D.Input,{className:"h-7 text-xs font-mono",value:j.argsText,onChange:a=>k({...j,argsText:a.target.value}),placeholder:"-y ha-mcp-server"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:"Env keys (comma-separated; values managed below after save)"}),(0,b.jsx)(D.Input,{className:"h-7 text-xs font-mono",value:j.envKeysText,onChange:a=>k({...j,envKeysText:a.target.value}),placeholder:"HA_URL, HA_TOKEN"})]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:"URL"}),(0,b.jsx)(D.Input,{className:"h-7 text-xs font-mono",value:j.url,onChange:a=>k({...j,url:a.target.value}),placeholder:"https://mcp.monday.com/mcp"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:"Header keys (comma-separated; values managed below after save)"}),(0,b.jsx)(D.Input,{className:"h-7 text-xs font-mono",value:j.headerKeysText,onChange:a=>k({...j,headerKeysText:a.target.value}),placeholder:"Authorization"})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:"Backends"}),(0,b.jsx)("div",{className:"flex gap-2 mt-1",children:M.BACKEND_IDS.map(a=>(0,b.jsx)(h.Button,{size:"sm",variant:j.backends.includes(a)?"default":"outline",className:"h-7 text-xs capitalize",onClick:()=>{k(b=>{if(b.backends.includes(a)){let c=b.backends.filter(b=>b!==a);return{...b,backends:0===c.length?b.backends:c}}return{...b,backends:[...b.backends,a]}})},children:a},a))})]}),l&&(0,b.jsx)(i.Alert,{variant:"error",children:l}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)(h.Button,{size:"sm",variant:"outline",className:"h-7 text-xs",onClick:d,children:"Cancel"}),(0,b.jsx)(h.Button,{size:"sm",className:"h-7 text-xs",onClick:r,disabled:q,children:p?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(J.Save,{className:"h-3.5 w-3.5 mr-1"})," Save"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.Plus,{className:"h-3.5 w-3.5 mr-1"})," Create"]})})]})]})}var R=a.i(45952),S=a.i(52938),T=a.i(7437),U=a.i(69481),V=a.i(48558);let W=/[a-z0-9][a-z0-9-]{0,62}/g,X=/`([^`]+)`/g,Y="policies/mcp";function Z(){let a=(0,T.useContextFile)(Y);return a.isLoading?(0,b.jsx)(L.Card,{className:"p-4",children:(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading policies/mcp.md…"})}):a.error||!a.data?404===a.error?.status?(0,b.jsx)($,{}):(0,b.jsx)(L.Card,{className:"p-4",children:(0,b.jsxs)("p",{className:"text-sm text-destructive",children:["Failed to load policies/mcp.md:"," ",a.error?.message??"unknown error"]})}):(0,b.jsx)(ab,{initial:a.data,editable:!1!==a.data.editable})}function $(){return(0,b.jsx)(L.Card,{className:"p-4",children:(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)(R.FileText,{className:"h-5 w-5 text-muted-foreground shrink-0 mt-0.5"}),(0,b.jsxs)("div",{className:"space-y-1 text-sm",children:[(0,b.jsxs)("p",{className:"font-medium text-foreground",children:[(0,b.jsx)("code",{children:"policies/mcp.md"})," has not been created yet."]}),(0,b.jsx)("p",{className:"text-muted-foreground",children:"Add your first rule by editing this file. It will be created on save and injected into every task-flow prompt while at least one MCP server is enabled. Until then the agent treats each tool on its own merits without a curated preference order."}),(0,b.jsx)(_,{})]})]})})}function _(){let a=(0,T.useUpdateContextFile)(),[d,e]=(0,c.useState)(null),f=async()=>{e(null);try{await a.mutateAsync({path:Y,content:aa})}catch(a){e(a instanceof y.ApiError||a instanceof Error?a.message:"Failed to create policies/mcp.md")}};return(0,b.jsxs)("div",{className:"pt-2",children:[(0,b.jsx)(h.Button,{size:"sm",variant:"outline",onClick:f,disabled:a.isPending,className:"h-7 text-xs",children:a.isPending?"Creating…":"Create policies/mcp.md"}),d&&(0,b.jsx)("p",{className:"mt-2 text-xs text-destructive",children:d})]})}let aa=`# MCP management rules
2
2
 
3
3
  This file governs how the agent uses the configured MCP servers. Rules here
4
4
  override general tool-selection heuristics. Edit in the dashboard or DM the
@@ -7,6 +7,6 @@ agent with "from now on, use …"; both writes land in this same file.
7
7
  ## Current preferences
8
8
 
9
9
  - (Empty — add rules as you configure MCPs.)
10
- `;function ab({initial:a,editable:d}){let[e,f]=(0,c.useState)(a.content),[g,i]=(0,c.useState)({content:a.content,mtime:a.lastModified}),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)(null),[n,o]=(0,c.useState)(null),p=(0,T.useUpdateContextFile)(),q=z(),r=e!==g.content,s=(0,c.useMemo)(()=>{let a=q.data?.servers;return a?function(a,b){let c=new Set,d=new Set;for(let a of b)a.enabled?c.add(a.id):d.add(a.id);let e=new Map,f=new Map,g=a=>{let b=c.has(a)?"enabled":d.has(a)?"disabled":"unknown";"enabled"!==b&&(e.set(a,(e.get(a)??0)+1),f.set(a,"disabled"===b?"disabled":"unknown"))};for(let[,b]of a.matchAll(X))for(let a of b.matchAll(W)){let c=a[0],d=b.trim()===c,e=c.includes("-");(d||e)&&g(c)}for(let b of a.replace(X," ").matchAll(W)){let a=b[0];a.includes("-")&&g(a)}return Array.from(e.entries()).map(([a,b])=>({id:a,severity:f.get(a),occurrences:b})).sort((a,b)=>a.id.localeCompare(b.id))}(e,a):[]},[e,q.data?.servers]);(0,c.useEffect)(()=>{if(!r)return;let a=a=>{a.preventDefault(),a.returnValue=""};return window.addEventListener("beforeunload",a),()=>window.removeEventListener("beforeunload",a)},[r]);let t=async a=>{m(null);try{let b=await p.mutateAsync({path:Y,content:e,expectedMtime:a});i({content:e,mtime:b.lastModified}),o(null),k("Saved."),window.setTimeout(()=>k(null),2500)}catch(a){a instanceof T.ContextConflictError?o({mtime:a.conflict.currentMtime,content:a.conflict.currentContent}):(y.ApiError,m(a.message))}},u=()=>t(g.mtime);return(0,b.jsxs)(L.Card,{className:"flex flex-col gap-3 p-4",children:[(0,b.jsxs)(L.CardHeader,{className:"flex flex-row items-start justify-between gap-4 p-0 pb-0",children:[(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsxs)(L.CardTitle,{className:"text-sm font-semibold",children:["MCP management rules (",(0,b.jsx)("code",{children:"policies/mcp.md"}),")"]}),(0,b.jsx)("p",{className:"pt-1 text-xs text-muted-foreground max-w-prose",children:"Plain-prose rules the agent reads before every MCP-enabled task flow. Use this to prefer one server over another, to restrict destructive tools to explicit user approval, or to document per-server idioms. The agent also writes here when you DM it “from now on, use X for Y”."}),(0,b.jsxs)("p",{className:"pt-1 text-[11px] text-muted-foreground",children:["Last modified: ",(0,V.formatAbsoluteTime)(g.mtime)]})]}),(0,b.jsx)(h.Button,{type:"button",size:"sm",onClick:u,disabled:!r||!d||p.isPending||null!==n,children:p.isPending?"Saving…":"Save"})]}),n&&(0,b.jsx)(U.FileConflictBanner,{onReload:()=>{n&&(f(n.content),i({content:n.content,mtime:n.mtime}),o(null),m(null))},onOverwrite:()=>{n&&t(n.mtime)},isPending:p.isPending}),s.length>0&&(0,b.jsx)(ac,{warnings:s}),(0,b.jsx)("textarea",{value:e,onChange:a=>f(a.target.value),onKeyDown:a=>{(a.metaKey||a.ctrlKey)&&"s"===a.key.toLowerCase()&&(a.preventDefault(),r&&d&&!p.isPending&&u())},disabled:!d,spellCheck:!1,className:"min-h-[360px] w-full resize-y rounded-md border border-border bg-muted/30 p-3 font-mono text-xs leading-relaxed focus:outline-none focus:ring-2 focus:ring-ring"}),j&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:j}),l&&(0,b.jsx)("p",{className:"text-xs text-destructive",children:l})]})}function ac({warnings:a}){let c=a.filter(a=>"disabled"===a.severity),e=a.filter(a=>"unknown"===a.severity);return(0,b.jsxs)("div",{className:"rounded-md border border-amber-500/50 bg-amber-500/10 p-3 text-xs",children:[(0,b.jsxs)("div",{className:"mb-1 flex items-center gap-2 font-semibold text-amber-900 dark:text-amber-200",children:[(0,b.jsx)(d.AlertTriangle,{className:"h-3.5 w-3.5"}),"Rules reference ",a.length," server",1===a.length?"":"s"," that",1===a.length?" is":" are"," not currently active"]}),c.length>0&&(0,b.jsxs)("p",{className:"mt-1 flex items-start gap-1.5 text-amber-900/90 dark:text-amber-100/90",children:[(0,b.jsx)(p.PowerOff,{className:"mt-0.5 h-3 w-3 shrink-0"}),(0,b.jsxs)("span",{children:[(0,b.jsx)("span",{className:"font-medium",children:"Disabled:"})," ",c.map(a=>(0,b.jsx)("code",{className:"mx-0.5 rounded bg-amber-500/20 px-1 py-0.5",children:a.id},a.id)),"— the agent will ignore these rules while the servers stay disabled."]})]}),e.length>0&&(0,b.jsxs)("p",{className:"mt-1 flex items-start gap-1.5 text-amber-900/90 dark:text-amber-100/90",children:[(0,b.jsx)(S.HelpCircle,{className:"mt-0.5 h-3 w-3 shrink-0"}),(0,b.jsxs)("span",{children:[(0,b.jsx)("span",{className:"font-medium",children:"Unknown:"})," ",e.map(a=>(0,b.jsx)("code",{className:"mx-0.5 rounded bg-amber-500/20 px-1 py-0.5",children:a.id},a.id)),"— no MCP server with this ID exists. Likely a typo or a server that was deleted."]})]})]})}var ad=a.i(60622),ae=a.i(83997),af=a.i(81020);function ag(){return(0,b.jsxs)("div",{className:"rounded-xl border border-border p-5 space-y-4",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)(ae.Sparkles,{className:"h-5 w-5 text-muted-foreground shrink-0 mt-0.5"}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:"Gemini delegation setup"}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"One-click install for the Gemini-side MCP servers the delegated Gmail / Calendar / Notion connectors depend on. The dashboard runs the install via your local `gemini` binary; you may need to complete a Google OAuth flow in a browser tab on first use."})]})]}),(0,b.jsx)(ah,{kind:"google-workspace",title:"google-workspace extension",subtitle:"Gmail + Calendar tools (mcp_google-workspace_gmail.* / calendar.*)",commandPreview:"gemini extensions install https://github.com/gemini-cli-extensions/workspace"}),(0,b.jsx)(ah,{kind:"notion",title:"Notion MCP server",subtitle:"Hosted Notion MCP at https://mcp.notion.com/mcp registered as `notion` (mcp_notion_*).",commandPreview:"gemini mcp add -s user -t http notion https://mcp.notion.com/mcp",footnote:"Tool-name assumption: the registry expects this server to expose `notion-search`, `notion-fetch`, `notion-create-pages`, etc. The presence-only probe cannot verify the actual tool names — if the Notion MCP uses different ones, delegated calls will fail at runtime with `wrong_tool`. Re-probe from the Connections page after install to surface the gap. Idempotency caveat: this button checks only the server name, not the URL — if you already have a different MCP registered as `notion`, run `gemini mcp remove notion` first or this install will no-op."})]})}function ah({kind:a,title:d,subtitle:e,commandPreview:f,footnote:g}){let j=(0,w.useMutation)({mutationFn:a=>y.api.post("/mcp/gemini-install",{kind:a})}),[k,m]=(0,c.useState)(null),[n,o]=(0,c.useState)(null),p=async()=>{m(null),o(null);try{let b=await j.mutateAsync(a);m(b)}catch(a){o(a instanceof Error?a.message:String(a))}};return(0,b.jsxs)("div",{className:"rounded-md border border-border bg-muted/40 p-3 space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"space-y-0.5 min-w-0",children:[(0,b.jsx)("p",{className:"text-xs font-medium text-foreground",children:d}),(0,b.jsx)("p",{className:"text-[11px] text-muted-foreground",children:e})]}),(0,b.jsxs)(h.Button,{size:"sm",variant:"outline",className:"h-7 text-xs shrink-0",onClick:p,disabled:j.isPending,children:[(0,b.jsx)(ad.Download,{className:"h-3 w-3 mr-1"}),j.isPending?"Installing…":"Install"]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 font-mono text-[10px] text-muted-foreground",children:[(0,b.jsx)(af.Terminal,{className:"h-3 w-3 shrink-0"}),(0,b.jsx)("span",{className:"truncate",children:f})]}),g&&(0,b.jsx)("p",{className:"text-[10px] leading-relaxed text-muted-foreground italic",children:g}),k&&k.ok&&(0,b.jsx)(i.Alert,{variant:"success",className:"text-xs py-2",children:(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsx)(l.CheckCircle2,{className:"h-3.5 w-3.5 shrink-0 mt-0.5"}),(0,b.jsxs)("div",{className:"space-y-1 min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"font-medium",children:k.alreadyInstalled?"Already installed — no changes made":"Install succeeded"}),k.stdout&&(0,b.jsx)("pre",{className:"text-[10px] whitespace-pre-wrap font-mono max-h-32 overflow-y-auto",children:k.stdout})]})]})}),k&&!k.ok&&(0,b.jsx)(i.Alert,{variant:"error",className:"text-xs py-2",children:(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsx)(r.XCircle,{className:"h-3.5 w-3.5 shrink-0 mt-0.5"}),(0,b.jsxs)("div",{className:"space-y-1 min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"font-medium",children:"gemini_cli_not_found"===k.error?"gemini CLI not found on PATH":`Install failed${"number"==typeof k.exitCode?` (exit ${k.exitCode})`:""}`}),k.message&&(0,b.jsx)("p",{className:"text-[10px]",children:k.message}),k.stderr&&(0,b.jsx)("pre",{className:"text-[10px] whitespace-pre-wrap font-mono max-h-32 overflow-y-auto",children:k.stderr})]})]})}),n&&(0,b.jsx)(i.Alert,{variant:"error",className:"text-xs py-2",children:(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsx)(r.XCircle,{className:"h-3.5 w-3.5 shrink-0 mt-0.5"}),(0,b.jsx)("p",{children:n})]})})]})}function ai({enabledCount:a}){let e,[f,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)(null),n=(e=(0,x.useQueryClient)(),(0,w.useMutation)({mutationFn:()=>y.api.post("/mcp/disable-all"),onSuccess:()=>{e.invalidateQueries({queryKey:["mcp","servers"]})}})),o=async()=>{k(null);try{let a=await n.mutateAsync();i(!1),m(1===a.disabled?"Disabled 1 MCP server.":`Disabled ${a.disabled} MCP servers.`),window.setTimeout(()=>m(null),3e3)}catch(a){k(a instanceof Error?a.message:"Failed to disable MCP servers.")}};return f?(0,b.jsxs)("div",{className:"rounded-md border border-amber-500/50 bg-amber-500/10 p-3 text-xs",children:[(0,b.jsxs)("div",{className:"mb-2 flex items-center gap-2 font-semibold text-amber-900 dark:text-amber-200",children:[(0,b.jsx)(d.AlertTriangle,{className:"h-3.5 w-3.5"}),"Disable every MCP server?"]}),(0,b.jsxs)("p",{className:"mb-3 text-amber-900/90 dark:text-amber-100/90",children:["This flips ",1===a?"1 server":`${a} servers`," ","to disabled. Every future routine and DM session will run without MCP tools until you re-enable them individually. Existing runs finish with their current config."]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(h.Button,{type:"button",size:"sm",variant:"outline",className:"h-7 text-xs",onClick:()=>i(!1),disabled:n.isPending,children:"Cancel"}),(0,b.jsx)(h.Button,{type:"button",size:"sm",variant:"destructive",className:"h-7 text-xs",onClick:o,disabled:n.isPending,children:n.isPending?"Disabling…":`Disable ${1===a?"1 server":`all ${a} servers`}`}),j&&(0,b.jsx)("span",{className:"text-destructive",children:j})]})]}):(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3 rounded-md border border-border bg-muted/20 px-3 py-2 text-xs",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,b.jsx)(g,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:1===a?"1 MCP server enabled across all sessions.":`${a} MCP servers enabled across all sessions.`})]}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[l&&(0,b.jsx)("span",{className:"text-muted-foreground",children:l}),(0,b.jsx)(h.Button,{type:"button",size:"sm",variant:"outline",className:"h-7 text-xs",onClick:()=>{k(null),i(!0)},children:"Disable all…"})]})]})}a.s(["default",0,function(){let{data:a,isLoading:d,error:g}=z(),[k,l]=(0,c.useState)(!1),[m,n]=(0,c.useState)(null),o=a?.servers??[],p=o.filter(a=>a.enabled).length,q=k||null!==m,r=()=>{l(!1),n(null)};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(j.ConnectionsSectionHeader,{title:"MCP Servers",description:"Register MCP (Model Context Protocol) servers once and every routine and DM session loads their tools automatically. Use this for capabilities you want available across the agent — not for a single skill.",healthy:p,total:o.length}),p>0&&(0,b.jsx)(ai,{enabledCount:p}),g&&(0,b.jsxs)(i.Alert,{variant:"error",children:["Failed to load MCP servers: ",g.message]}),d?(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading…"}):(0,b.jsxs)(b.Fragment,{children:[0===o.length&&!q&&(0,b.jsx)("div",{className:"rounded-xl border border-dashed border-border p-6",children:(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)(f.Server,{className:"h-5 w-5 text-muted-foreground shrink-0 mt-0.5"}),(0,b.jsxs)("div",{className:"space-y-1 text-sm",children:[(0,b.jsx)("p",{className:"font-medium text-foreground",children:"No MCP servers yet."}),(0,b.jsx)("p",{className:"text-muted-foreground",children:"Add one to make its tools available to every backend you listed. Start by probing it; once the tool list returns, enable it to wire it into session workdirs."})]})]})}),(0,b.jsx)("div",{className:"space-y-3",children:o.map(a=>(0,b.jsx)(I,{server:a,onEdit:a=>{l(!1),n(a)}},a.id))}),q?(0,b.jsx)(Q,{editing:m,onCancel:r,onSaved:r},m?`edit-${m.id}`:"add"):(0,b.jsxs)(h.Button,{variant:"outline",size:"sm",className:"h-8 text-xs",onClick:()=>l(!0),children:[(0,b.jsx)(e.Plus,{className:"h-3.5 w-3.5 mr-1"})," Add MCP server"]}),(0,b.jsx)("div",{className:"pt-4",children:(0,b.jsx)(ag,{})}),(0,b.jsx)("div",{className:"pt-4",children:(0,b.jsx)(Z,{})})]})]})}],49910)}];
10
+ `;function ab({initial:a,editable:d}){let[e,f]=(0,c.useState)(a.content),[g,i]=(0,c.useState)({content:a.content,mtime:a.lastModified}),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)(null),[n,o]=(0,c.useState)(null),p=(0,T.useUpdateContextFile)(),q=z(),r=e!==g.content,s=(0,c.useMemo)(()=>{let a=q.data?.servers;return a?function(a,b){let c=new Set,d=new Set;for(let a of b)a.enabled?c.add(a.id):d.add(a.id);let e=new Map,f=new Map,g=a=>{let b=c.has(a)?"enabled":d.has(a)?"disabled":"unknown";"enabled"!==b&&(e.set(a,(e.get(a)??0)+1),f.set(a,"disabled"===b?"disabled":"unknown"))};for(let[,b]of a.matchAll(X))for(let a of b.matchAll(W)){let c=a[0],d=b.trim()===c,e=c.includes("-");(d||e)&&g(c)}for(let b of a.replace(X," ").matchAll(W)){let a=b[0];a.includes("-")&&g(a)}return Array.from(e.entries()).map(([a,b])=>({id:a,severity:f.get(a),occurrences:b})).sort((a,b)=>a.id.localeCompare(b.id))}(e,a):[]},[e,q.data?.servers]);(0,c.useEffect)(()=>{if(!r)return;let a=a=>{a.preventDefault(),a.returnValue=""};return window.addEventListener("beforeunload",a),()=>window.removeEventListener("beforeunload",a)},[r]);let t=async a=>{m(null);try{let b=await p.mutateAsync({path:Y,content:e,expectedMtime:a});i({content:e,mtime:b.lastModified}),o(null),k("Saved."),window.setTimeout(()=>k(null),2500)}catch(a){a instanceof T.ContextConflictError?o({mtime:a.conflict.currentMtime,content:a.conflict.currentContent}):(y.ApiError,m(a.message))}},u=()=>t(g.mtime);return(0,b.jsxs)(L.Card,{className:"flex flex-col gap-3 p-4",children:[(0,b.jsxs)(L.CardHeader,{className:"flex flex-row items-start justify-between gap-4 p-0 pb-0",children:[(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsxs)(L.CardTitle,{className:"text-sm font-semibold",children:["MCP management rules (",(0,b.jsx)("code",{children:"policies/mcp.md"}),")"]}),(0,b.jsx)("p",{className:"pt-1 text-xs text-muted-foreground max-w-prose",children:"Plain-prose rules the agent reads before every MCP-enabled task flow. Use this to prefer one server over another, to restrict destructive tools to explicit user approval, or to document per-server idioms. The agent also writes here when you DM it “from now on, use X for Y”."}),(0,b.jsxs)("p",{className:"pt-1 text-[11px] text-muted-foreground",children:["Last modified: ",(0,V.formatAbsoluteTime)(g.mtime)]})]}),(0,b.jsx)(h.Button,{type:"button",size:"sm",onClick:u,disabled:!r||!d||p.isPending||null!==n,children:p.isPending?"Saving…":"Save"})]}),n&&(0,b.jsx)(U.FileConflictBanner,{onReload:()=>{n&&(f(n.content),i({content:n.content,mtime:n.mtime}),o(null),m(null))},onOverwrite:()=>{n&&t(n.mtime)},isPending:p.isPending}),s.length>0&&(0,b.jsx)(ac,{warnings:s}),(0,b.jsx)("textarea",{value:e,onChange:a=>f(a.target.value),onKeyDown:a=>{(a.metaKey||a.ctrlKey)&&"s"===a.key.toLowerCase()&&(a.preventDefault(),r&&d&&!p.isPending&&u())},disabled:!d,spellCheck:!1,className:"min-h-[360px] w-full resize-y rounded-md border border-border bg-muted/30 p-3 font-mono text-xs leading-relaxed focus:outline-none focus:ring-2 focus:ring-ring"}),j&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:j}),l&&(0,b.jsx)("p",{className:"text-xs text-destructive",children:l})]})}function ac({warnings:a}){let c=a.filter(a=>"disabled"===a.severity),e=a.filter(a=>"unknown"===a.severity);return(0,b.jsxs)("div",{className:"rounded-md border border-warning/40 bg-warning/10 p-3 text-xs",children:[(0,b.jsxs)("div",{className:"mb-1 flex items-center gap-2 font-semibold text-warning",children:[(0,b.jsx)(d.AlertTriangle,{className:"h-3.5 w-3.5"}),"Rules reference ",a.length," server",1===a.length?"":"s"," that",1===a.length?" is":" are"," not currently active"]}),c.length>0&&(0,b.jsxs)("p",{className:"mt-1 flex items-start gap-1.5 text-warning/90",children:[(0,b.jsx)(p.PowerOff,{className:"mt-0.5 h-3 w-3 shrink-0"}),(0,b.jsxs)("span",{children:[(0,b.jsx)("span",{className:"font-medium",children:"Disabled:"})," ",c.map(a=>(0,b.jsx)("code",{className:"mx-0.5 rounded bg-warning/15 px-1 py-0.5",children:a.id},a.id)),"— the agent will ignore these rules while the servers stay disabled."]})]}),e.length>0&&(0,b.jsxs)("p",{className:"mt-1 flex items-start gap-1.5 text-warning/90",children:[(0,b.jsx)(S.HelpCircle,{className:"mt-0.5 h-3 w-3 shrink-0"}),(0,b.jsxs)("span",{children:[(0,b.jsx)("span",{className:"font-medium",children:"Unknown:"})," ",e.map(a=>(0,b.jsx)("code",{className:"mx-0.5 rounded bg-warning/15 px-1 py-0.5",children:a.id},a.id)),"— no MCP server with this ID exists. Likely a typo or a server that was deleted."]})]})]})}var ad=a.i(60622),ae=a.i(83997),af=a.i(81020);function ag(){return(0,b.jsxs)("div",{className:"rounded-xl border border-border p-5 space-y-4",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)(ae.Sparkles,{className:"h-5 w-5 text-muted-foreground shrink-0 mt-0.5"}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:"Gemini delegation setup"}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"One-click install for the Gemini-side MCP servers the delegated Gmail / Calendar / Notion connectors depend on. The dashboard runs the install via your local `gemini` binary; you may need to complete a Google OAuth flow in a browser tab on first use."})]})]}),(0,b.jsx)(ah,{kind:"google-workspace",title:"google-workspace extension",subtitle:"Gmail + Calendar tools (mcp_google-workspace_gmail.* / calendar.*)",commandPreview:"gemini extensions install https://github.com/gemini-cli-extensions/workspace"}),(0,b.jsx)(ah,{kind:"notion",title:"Notion MCP server",subtitle:"Hosted Notion MCP at https://mcp.notion.com/mcp registered as `notion` (mcp_notion_*).",commandPreview:"gemini mcp add -s user -t http notion https://mcp.notion.com/mcp",footnote:"Tool-name assumption: the registry expects this server to expose `notion-search`, `notion-fetch`, `notion-create-pages`, etc. The presence-only probe cannot verify the actual tool names — if the Notion MCP uses different ones, delegated calls will fail at runtime with `wrong_tool`. Re-probe from the Connections page after install to surface the gap. Idempotency caveat: this button checks only the server name, not the URL — if you already have a different MCP registered as `notion`, run `gemini mcp remove notion` first or this install will no-op."})]})}function ah({kind:a,title:d,subtitle:e,commandPreview:f,footnote:g}){let j=(0,w.useMutation)({mutationFn:a=>y.api.post("/mcp/gemini-install",{kind:a})}),[k,m]=(0,c.useState)(null),[n,o]=(0,c.useState)(null),p=async()=>{m(null),o(null);try{let b=await j.mutateAsync(a);m(b)}catch(a){o(a instanceof Error?a.message:String(a))}};return(0,b.jsxs)("div",{className:"rounded-md border border-border bg-muted/40 p-3 space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"space-y-0.5 min-w-0",children:[(0,b.jsx)("p",{className:"text-xs font-medium text-foreground",children:d}),(0,b.jsx)("p",{className:"text-[11px] text-muted-foreground",children:e})]}),(0,b.jsxs)(h.Button,{size:"sm",variant:"outline",className:"h-7 text-xs shrink-0",onClick:p,disabled:j.isPending,children:[(0,b.jsx)(ad.Download,{className:"h-3 w-3 mr-1"}),j.isPending?"Installing…":"Install"]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 font-mono text-[10px] text-muted-foreground",children:[(0,b.jsx)(af.Terminal,{className:"h-3 w-3 shrink-0"}),(0,b.jsx)("span",{className:"truncate",children:f})]}),g&&(0,b.jsx)("p",{className:"text-[10px] leading-relaxed text-muted-foreground italic",children:g}),k&&k.ok&&(0,b.jsx)(i.Alert,{variant:"success",className:"text-xs py-2",children:(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsx)(l.CheckCircle2,{className:"h-3.5 w-3.5 shrink-0 mt-0.5"}),(0,b.jsxs)("div",{className:"space-y-1 min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"font-medium",children:k.alreadyInstalled?"Already installed — no changes made":"Install succeeded"}),k.stdout&&(0,b.jsx)("pre",{className:"text-[10px] whitespace-pre-wrap font-mono max-h-32 overflow-y-auto",children:k.stdout})]})]})}),k&&!k.ok&&(0,b.jsx)(i.Alert,{variant:"error",className:"text-xs py-2",children:(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsx)(r.XCircle,{className:"h-3.5 w-3.5 shrink-0 mt-0.5"}),(0,b.jsxs)("div",{className:"space-y-1 min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"font-medium",children:"gemini_cli_not_found"===k.error?"gemini CLI not found on PATH":`Install failed${"number"==typeof k.exitCode?` (exit ${k.exitCode})`:""}`}),k.message&&(0,b.jsx)("p",{className:"text-[10px]",children:k.message}),k.stderr&&(0,b.jsx)("pre",{className:"text-[10px] whitespace-pre-wrap font-mono max-h-32 overflow-y-auto",children:k.stderr})]})]})}),n&&(0,b.jsx)(i.Alert,{variant:"error",className:"text-xs py-2",children:(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsx)(r.XCircle,{className:"h-3.5 w-3.5 shrink-0 mt-0.5"}),(0,b.jsx)("p",{children:n})]})})]})}function ai({enabledCount:a}){let e,[f,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)(null),n=(e=(0,x.useQueryClient)(),(0,w.useMutation)({mutationFn:()=>y.api.post("/mcp/disable-all"),onSuccess:()=>{e.invalidateQueries({queryKey:["mcp","servers"]})}})),o=async()=>{k(null);try{let a=await n.mutateAsync();i(!1),m(1===a.disabled?"Disabled 1 MCP server.":`Disabled ${a.disabled} MCP servers.`),window.setTimeout(()=>m(null),3e3)}catch(a){k(a instanceof Error?a.message:"Failed to disable MCP servers.")}};return f?(0,b.jsxs)("div",{className:"rounded-md border border-warning/40 bg-warning/10 p-3 text-xs",children:[(0,b.jsxs)("div",{className:"mb-2 flex items-center gap-2 font-semibold text-warning",children:[(0,b.jsx)(d.AlertTriangle,{className:"h-3.5 w-3.5"}),"Disable every MCP server?"]}),(0,b.jsxs)("p",{className:"mb-3 text-warning/90",children:["This flips ",1===a?"1 server":`${a} servers`," ","to disabled. Every future routine and DM session will run without MCP tools until you re-enable them individually. Existing runs finish with their current config."]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(h.Button,{type:"button",size:"sm",variant:"outline",className:"h-7 text-xs",onClick:()=>i(!1),disabled:n.isPending,children:"Cancel"}),(0,b.jsx)(h.Button,{type:"button",size:"sm",variant:"destructive",className:"h-7 text-xs",onClick:o,disabled:n.isPending,children:n.isPending?"Disabling…":`Disable ${1===a?"1 server":`all ${a} servers`}`}),j&&(0,b.jsx)("span",{className:"text-destructive",children:j})]})]}):(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3 rounded-md border border-border bg-muted/20 px-3 py-2 text-xs",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,b.jsx)(g,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:1===a?"1 MCP server enabled across all sessions.":`${a} MCP servers enabled across all sessions.`})]}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[l&&(0,b.jsx)("span",{className:"text-muted-foreground",children:l}),(0,b.jsx)(h.Button,{type:"button",size:"sm",variant:"outline",className:"h-7 text-xs",onClick:()=>{k(null),i(!0)},children:"Disable all…"})]})]})}a.s(["default",0,function(){let{data:a,isLoading:d,error:g}=z(),[k,l]=(0,c.useState)(!1),[m,n]=(0,c.useState)(null),o=a?.servers??[],p=o.filter(a=>a.enabled).length,q=k||null!==m,r=()=>{l(!1),n(null)};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(j.ConnectionsSectionHeader,{title:"MCP Servers",description:"Register MCP (Model Context Protocol) servers once and every routine and DM session loads their tools automatically. Use this for capabilities you want available across the agent — not for a single skill.",healthy:p,total:o.length}),p>0&&(0,b.jsx)(ai,{enabledCount:p}),g&&(0,b.jsxs)(i.Alert,{variant:"error",children:["Failed to load MCP servers: ",g.message]}),d?(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading…"}):(0,b.jsxs)(b.Fragment,{children:[0===o.length&&!q&&(0,b.jsx)("div",{className:"rounded-xl border border-dashed border-border p-6",children:(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)(f.Server,{className:"h-5 w-5 text-muted-foreground shrink-0 mt-0.5"}),(0,b.jsxs)("div",{className:"space-y-1 text-sm",children:[(0,b.jsx)("p",{className:"font-medium text-foreground",children:"No MCP servers yet."}),(0,b.jsx)("p",{className:"text-muted-foreground",children:"Add one to make its tools available to every backend you listed. Start by probing it; once the tool list returns, enable it to wire it into session workdirs."})]})]})}),(0,b.jsx)("div",{className:"space-y-3",children:o.map(a=>(0,b.jsx)(I,{server:a,onEdit:a=>{l(!1),n(a)}},a.id))}),q?(0,b.jsx)(Q,{editing:m,onCancel:r,onSaved:r},m?`edit-${m.id}`:"add"):(0,b.jsxs)(h.Button,{variant:"outline",size:"sm",className:"h-8 text-xs",onClick:()=>l(!0),children:[(0,b.jsx)(e.Plus,{className:"h-3.5 w-3.5 mr-1"})," Add MCP server"]}),(0,b.jsx)("div",{className:"pt-4",children:(0,b.jsx)(ag,{})}),(0,b.jsx)("div",{className:"pt-4",children:(0,b.jsx)(Z,{})})]})]})}],49910)}];
11
11
 
12
12
  //# sourceMappingURL=packages_dashboard_src_app_connections_mcp_page_tsx_0lc.low._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[21765,a=>{"use strict";var b=a.i(39752),c=a.i(34542),d=a.i(43095),e=a.i(43179),f=a.i(21218),g=a.i(30400),h=a.i(27727),i=a.i(86807),j=a.i(55140),k=a.i(50891),l=a.i(85857),m=a.i(29629),n=a.i(7384),o=a.i(8212),p=a.i(95827),q=a.i(62588),r=a.i(8753),s=a.i(81130),t=a.i(59974);let u=["git-accounts"];function v(){return(0,q.useQuery)({queryKey:u,queryFn:()=>t.api.get("/git-accounts"),staleTime:3e4})}let w=/^[a-z0-9._-]+$/,x={alias:"",type:"github",authMode:"gh-cli-profile",ghProfile:"",host:"github.com",token:""};function y(){let a,d,g=v(),h=(a=(0,s.useQueryClient)(),(0,r.useMutation)({mutationFn:({alias:a,payload:b})=>t.api.put(`/git-accounts/${a}`,b),onSuccess:()=>{a.invalidateQueries({queryKey:u}),a.invalidateQueries({queryKey:["config"]})}})),i=(d=(0,s.useQueryClient)(),(0,r.useMutation)({mutationFn:a=>t.api.delete(`/git-accounts/${a}`),onSuccess:()=>{d.invalidateQueries({queryKey:u}),d.invalidateQueries({queryKey:["config"]})}})),k=(0,r.useMutation)({mutationFn:a=>t.api.post(`/git-accounts/${a}/probe`,{})}),[l,n]=(0,c.useState)(x),[q,y]=(0,c.useState)(null),[A,B]=(0,c.useState)({}),C=g.data?.accounts??[],D=async()=>{if(y(null),!w.test(l.alias))return void y("Alias must use lowercase letters, digits, dot, dash, or underscore.");if("gh-cli-profile"===l.authMode&&!l.ghProfile.trim())return void y("gh-cli-profile mode requires a gh login name.");if("pat-keychain"===l.authMode&&!l.token.trim())return void y("PAT mode requires a token on first save.");try{await h.mutateAsync({alias:l.alias,payload:{type:l.type,authMode:l.authMode,host:l.host||"github.com",..."gh-cli-profile"===l.authMode?{ghProfile:l.ghProfile}:{},...l.token?{token:l.token}:{}}}),n(x)}catch(a){y(a instanceof Error?a.message:"Failed to save account.")}},E=async a=>{B(b=>({...b,[a]:"Probing…"}));try{let b=await k.mutateAsync(a),c=b.ok?`OK — authenticated as ${b.login}`:`Probe failed: ${b.reason??"unknown"}`;B(b=>({...b,[a]:c}))}catch(b){B(c=>({...c,[a]:b instanceof Error?b.message:"Probe failed"}))}};return(0,b.jsx)(p.ConnectionCard,{name:"Git Accounts",icon:(0,b.jsx)(j.KeyRound,{className:"h-4 w-4"}),status:(0,p.deriveConfiguredStatus)(C.length>0),children:(0,b.jsxs)("div",{className:"mt-2 space-y-3",children:[(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Named credentials attached to watched repositories via"," ",(0,b.jsx)("code",{className:"rounded bg-muted px-1",children:"accountAlias"}),". Direct mode injects the resolved token per poll; Delegated mode currently uses the default ",(0,b.jsx)("code",{children:"gh"})," profile."]}),q&&(0,b.jsx)(m.Alert,{variant:"error",children:q}),(0,b.jsxs)("div",{className:"space-y-2",children:[0===C.length&&(0,b.jsx)("p",{className:"text-xs italic text-muted-foreground",children:"No accounts configured. Add one below."}),C.map(a=>(0,b.jsx)(z,{entry:a,onDelete:()=>i.mutate(a.alias),onProbe:()=>E(a.alias),probeMessage:A[a.alias],busy:i.isPending||k.isPending},a.alias))]}),(0,b.jsxs)("div",{className:"space-y-2 rounded border bg-background p-3",children:[(0,b.jsx)("p",{className:"text-xs font-medium",children:"Add account"}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(o.Input,{value:l.alias,onChange:a=>n(b=>({...b,alias:a.target.value})),placeholder:"alias (e.g. work-github)",className:"max-w-[200px]"}),(0,b.jsxs)("select",{value:l.authMode,onChange:a=>n(b=>({...b,authMode:a.target.value})),className:"h-9 rounded border bg-background px-2 text-sm",children:[(0,b.jsx)("option",{value:"gh-cli-profile",children:"gh CLI profile"}),(0,b.jsx)("option",{value:"pat-keychain",children:"Personal Access Token"})]}),(0,b.jsx)(o.Input,{value:l.host,onChange:a=>n(b=>({...b,host:a.target.value})),placeholder:"github.com",className:"max-w-[180px]"}),"gh-cli-profile"===l.authMode?(0,b.jsx)(o.Input,{value:l.ghProfile,onChange:a=>n(b=>({...b,ghProfile:a.target.value})),placeholder:"gh login name (e.g. alice)",className:"max-w-[220px]"}):(0,b.jsx)(o.Input,{type:"password",value:l.token,onChange:a=>n(b=>({...b,token:a.target.value})),placeholder:"ghp_… (PAT — never persisted to disk)",className:"max-w-[280px]"}),(0,b.jsxs)(f.Button,{size:"sm",variant:"outline",onClick:D,disabled:h.isPending||!l.alias.trim(),children:[(0,b.jsx)(e.Plus,{className:"mr-1 h-3.5 w-3.5"}),"Save"]})]})]})]})})}function z({entry:a,onDelete:c,onProbe:d,probeMessage:e,busy:g}){return(0,b.jsxs)("div",{className:"flex flex-col gap-2 rounded border bg-background p-2 sm:flex-row sm:items-center",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"font-mono text-sm font-medium",children:a.alias}),(0,b.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-1.5",children:[(0,b.jsx)(n.Badge,{variant:"gray",children:a.host}),(0,b.jsx)(n.Badge,{variant:"pat-keychain"===a.authMode?"green":"gray",children:a.authMode}),a.ghProfile&&(0,b.jsxs)(n.Badge,{variant:"gray",children:["user: ",a.ghProfile]}),!0===a.tokenStored&&(0,b.jsx)(n.Badge,{variant:"green",children:"token stored"}),!1===a.tokenStored&&(0,b.jsx)(n.Badge,{variant:"red",children:"no token"})]}),e&&(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:e})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)(f.Button,{size:"sm",variant:"ghost",onClick:d,disabled:g,children:[(0,b.jsx)(k.ShieldCheck,{className:"mr-1 h-3.5 w-3.5"}),"Probe"]}),(0,b.jsx)(f.Button,{size:"sm",variant:"ghost",onClick:c,disabled:g,className:"h-8 w-8 p-0",children:(0,b.jsx)(l.X,{className:"h-3.5 w-3.5"})})]})]})}var A=a.i(5423);let B=(0,A.default)("FileType2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M2 13v-1h6v1",key:"1dh9dg"}],["path",{d:"M5 12v6",key:"150t9c"}],["path",{d:"M4 18h2",key:"1xrofg"}]]);var C=a.i(92241),D=a.i(87759),E=a.i(95024),F=a.i(61213);let G=a=>["git-template",a],H=["git-template","retemplate-status"];function I(){return(0,q.useQuery)({queryKey:H,queryFn:()=>t.api.get("/git/templates/retemplate/status"),refetchInterval:a=>{let b=a.state.data;return!!(b?.status&&!b.status.finalizedAt)&&2e3},staleTime:1e3})}var J=a.i(21283);function K(a){return"project"===a?"Project (projects/<slug>.md)":"Repo-only (git-repos/<slug>.md)"}let L=["project","git-repo"];function M(){let a=I(),c=a.data?.status??null,d=function(a){if(!a)return null;if(!a.finalizedAt)return{label:"Re-template in progress…",tone:"info"};switch(a.finalStatus){case"success":default:return{label:"Re-template completed",tone:"success"};case"partial":return{label:"Re-template completed with rollbacks",tone:"warning"};case"failed":return{label:"Re-template failed",tone:"error"}}}(c);return(0,b.jsx)(p.ConnectionCard,{name:"Project document templates",icon:(0,b.jsx)(B,{className:"h-4 w-4"}),status:(0,p.deriveConfiguredStatus)(!0),children:(0,b.jsxs)("div",{className:"mt-2 space-y-3",children:[(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Edit the templates the agent uses when it (re)writes"," ",(0,b.jsx)("code",{className:"rounded bg-muted px-1",children:"plans/projects/<slug>.md"})," ","and"," ",(0,b.jsx)("code",{className:"rounded bg-muted px-1",children:"knowledge/repos/<slug>/overview.md"}),". Changes are forward-only — existing files keep their old shape until the next git lifecycle event touches them, or until you press “Apply” below to re-conform every existing file at once."]}),d&&(0,b.jsx)(m.Alert,{variant:"error"===d.tone?"error":"warning"===d.tone?"warning":"success"===d.tone?"success":"info",children:(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("span",{children:d.label}),c&&(0,b.jsxs)("span",{className:"text-xs font-mono text-muted-foreground",children:[c.kind," · run #",c.scheduleId]})]})}),L.map(a=>(0,b.jsx)(N,{kind:a},a)),(0,b.jsx)(O,{})]})})}function N({kind:a}){let d,e,g,h=(0,q.useQuery)({queryKey:G(a),queryFn:()=>t.api.get(`/git/templates/${encodeURIComponent(a)}`),staleTime:5e3}),i=(d=(0,s.useQueryClient)(),(0,r.useMutation)({mutationFn:b=>t.api.put(`/git/templates/${encodeURIComponent(a)}`,{content:b}),onSuccess:()=>{d.invalidateQueries({queryKey:G(a)})}})),j=(e=(0,s.useQueryClient)(),(0,r.useMutation)({mutationFn:()=>t.api.post(`/git/templates/${encodeURIComponent(a)}/apply`),onSuccess:()=>{e.invalidateQueries({queryKey:H})}})),k=(0,J.useRepositories)(),[l,o]=(0,c.useState)(null),[p,u]=(0,c.useState)(null),[v,w]=(0,c.useState)(!1),[x,y]=(0,c.useState)(null),z="project"===a?"project":"repo-only",A=(0,c.useMemo)(()=>(k.data?.repositories??[]).filter(a=>a.classification===z).length,[k.data?.repositories,z]),B=h.data?.active??"",I=h.data?.bundled??"",L=h.data?.hasOverride??!1,M=l??B,O=null!==l&&l!==B,P=async()=>{if(null!==l){u(null);try{await i.mutateAsync(l),o(null)}catch(a){u(a instanceof Error?a.message:"Failed to save template")}}},Q=(g=K(a),{title:`Re-template ${A} ${"project"===a?"project":"git-repo"} document${1===A?"":"s"}?`,bullets:[`${g} files will be re-conformed to the current template body.`,"Re-templating may lose information or formatting that the new template does not represent. Files matching the previous schema's sections may have content moved, merged, or dropped depending on how the template changed.","Every targeted file is auto-backed up before the run. The backup path is shown after you confirm.","If a file's session aborts mid-write, the daemon restores it from backup automatically."],acknowledge:"Yes, apply the template"}),R=async()=>{u(null);try{let a=await j.mutateAsync();y(a),w(!1)}catch(a){u(a instanceof Error?a.message:"Failed to apply template")}};return(0,b.jsxs)("div",{className:"rounded border bg-card p-3 space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-sm font-medium",children:K(a)}),L&&(0,b.jsx)(n.Badge,{variant:"green",children:"overridden"})]}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"project"===a?"project.md":"git-repo.md"})]}),p&&(0,b.jsx)(m.Alert,{variant:"error",children:p}),(0,b.jsxs)("div",{className:"grid gap-2 lg:grid-cols-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-xs font-medium text-muted-foreground",children:"Bundled (read-only)"}),(0,b.jsx)("textarea",{value:I,readOnly:!0,className:"h-64 w-full resize-none rounded border bg-muted p-2 font-mono text-xs"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-xs font-medium text-muted-foreground",children:"Active (edit and save)"}),(0,b.jsx)("textarea",{value:M,onChange:a=>o(a.target.value),className:"h-64 w-full resize-none rounded border bg-background p-2 font-mono text-xs",spellCheck:!1,disabled:h.isLoading})]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsxs)(f.Button,{size:"sm",variant:"outline",onClick:P,disabled:!O||i.isPending,children:[(0,b.jsx)(E.Save,{className:"mr-1 h-3.5 w-3.5"}),"Save template"]}),(0,b.jsx)(f.Button,{size:"sm",variant:"ghost",onClick:()=>{o(I)},disabled:h.isLoading,children:"Reset to bundled"}),(0,b.jsxs)(f.Button,{size:"sm",variant:"default",onClick:()=>w(!0),disabled:j.isPending,children:[j.isPending?(0,b.jsx)(C.Loader2,{className:"mr-1 h-3.5 w-3.5 animate-spin"}):(0,b.jsx)(D.Play,{className:"mr-1 h-3.5 w-3.5"}),"Apply current template to existing ","project"===a?"projects":"git-repos"]})]}),x&&(0,b.jsx)(m.Alert,{variant:"info",children:(0,b.jsxs)("div",{className:"space-y-1 text-xs",children:[(0,b.jsxs)("div",{children:["Re-template enqueued — schedule #",x.scheduleId,","," ",x.targets.length," file(s) backed up."]}),(0,b.jsxs)("div",{className:"font-mono text-muted-foreground break-all",children:["backup: ",x.backupRoot]})]})}),(0,b.jsx)(F.Sheet,{open:v,onOpenChange:w,children:(0,b.jsxs)(F.SheetContent,{side:"right",className:"w-[480px] sm:w-[540px]",children:[(0,b.jsx)(F.SheetHeader,{children:(0,b.jsx)(F.SheetTitle,{children:Q.title})}),(0,b.jsxs)("div",{className:"mt-4 space-y-3 text-sm",children:[(0,b.jsx)("ul",{className:"list-disc space-y-1 pl-5",children:Q.bullets.map(a=>(0,b.jsx)("li",{children:a},a))}),(0,b.jsxs)("div",{className:"flex gap-2 pt-2",children:[(0,b.jsxs)(f.Button,{size:"sm",onClick:R,disabled:j.isPending,children:[j.isPending&&(0,b.jsx)(C.Loader2,{className:"mr-1 h-3.5 w-3.5 animate-spin"}),Q.acknowledge]}),(0,b.jsx)(f.Button,{size:"sm",variant:"ghost",onClick:()=>w(!1),children:"Cancel"})]})]})]})})]})}function O(){let a=I(),d=a.data?.status??null,e=(0,c.useMemo)(()=>d?Object.values(d.files).map(a=>({slug:a.slug,contextFile:a.contextFile,status:a.status,reason:a.reason??null,error:a.error??null,bytesDelta:void 0!==a.beforeBytes&&void 0!==a.afterBytes?a.afterBytes-a.beforeBytes:null,startedAt:a.startedAt??null,completedAt:a.completedAt??null})).sort((a,b)=>a.slug.localeCompare(b.slug)):[],[d]),f=(0,c.useMemo)(()=>(function(a){let b={pending:0,started:0,completed:0,skipped:0,failed:0,rolled_back:0};for(let c of a)b[c.status]+=1;return b})(e),[e]);return d?(0,b.jsxs)("div",{className:"rounded border bg-card p-3 space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-sm font-medium",children:"Last re-template run"}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1 text-xs",children:Object.entries(f).map(([a,c])=>c>0?(0,b.jsxs)(n.Badge,{variant:P(a),children:[a,": ",c]},a):null)})]}),(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:"w-full text-xs",children:[(0,b.jsx)("thead",{children:(0,b.jsxs)("tr",{className:"border-b text-left text-muted-foreground",children:[(0,b.jsx)("th",{className:"px-2 py-1",children:"Slug"}),(0,b.jsx)("th",{className:"px-2 py-1",children:"Status"}),(0,b.jsx)("th",{className:"px-2 py-1",children:"File"}),(0,b.jsx)("th",{className:"px-2 py-1",children:"Bytes Δ"}),(0,b.jsx)("th",{className:"px-2 py-1",children:"Note"})]})}),(0,b.jsx)("tbody",{children:e.map(a=>(0,b.jsxs)("tr",{className:"border-b last:border-0",children:[(0,b.jsx)("td",{className:"px-2 py-1 font-mono",children:a.slug}),(0,b.jsx)("td",{className:"px-2 py-1",children:(0,b.jsx)(n.Badge,{variant:P(a.status),children:a.status})}),(0,b.jsx)("td",{className:"px-2 py-1 font-mono text-muted-foreground",children:a.contextFile}),(0,b.jsx)("td",{className:"px-2 py-1",children:null===a.bytesDelta?"—":a.bytesDelta>=0?`+${a.bytesDelta}`:`${a.bytesDelta}`}),(0,b.jsx)("td",{className:"px-2 py-1 text-muted-foreground",children:a.error??a.reason??""})]},a.slug))})]})})]}):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"No re-template runs recorded yet."})}function P(a){switch(a){case"completed":return"green";case"skipped":return"gray";case"started":case"pending":return"blue";case"failed":return"red";case"rolled_back":return"amber";default:return"default"}}let Q=(0,A.default)("FilePen",[["path",{d:"M12.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v9.5",key:"1couwa"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M13.378 15.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1y4qbx"}]]);var R=a.i(70297);let S=["task-flows"],T=["git.","github."];function U(){let a,d,e=(0,q.useQuery)({queryKey:S,queryFn:()=>t.api.get("/task-flows"),staleTime:3e4}),g=(0,c.useMemo)(()=>(e.data?.flows??[]).filter(a=>T.some(b=>a.key.startsWith(b))),[e.data]),[h,i]=(0,c.useState)(null),j=h??(g.length>0?g[0].key:null),k=(0,q.useQuery)({queryKey:["task-flow",j],queryFn:()=>null===j?Promise.reject(Error("no_key")):t.api.get(`/task-flows/${encodeURIComponent(j)}`),enabled:null!==j,staleTime:5e3}),l=(a=(0,s.useQueryClient)(),(0,r.useMutation)({mutationFn:({key:a,content:b})=>t.api.put(`/task-flows/${encodeURIComponent(a)}`,{content:b}),onSuccess:(b,{key:c})=>{a.invalidateQueries({queryKey:S}),a.invalidateQueries({queryKey:["task-flow",c]})}})),o=(d=(0,s.useQueryClient)(),(0,r.useMutation)({mutationFn:a=>t.api.delete(`/task-flows/${encodeURIComponent(a)}`),onSuccess:(a,b)=>{d.invalidateQueries({queryKey:S}),d.invalidateQueries({queryKey:["task-flow",b]})}})),[u,v]=(0,c.useState)({}),[w,x]=(0,c.useState)(null),y=j?u[j]??k.data?.override??k.data?.bundled??"":"",z=!!j&&void 0!==u[j]&&u[j]!==(k.data?.override??""),A=g.filter(a=>a.hasOverride).length,B=async()=>{if(j){x(null);try{await l.mutateAsync({key:j,content:y})}catch(a){x(a instanceof Error?a.message:"Failed to save override")}}},C=async()=>{if(j){x(null);try{await o.mutateAsync(j),v(a=>{let b={...a};return delete b[j],b})}catch(a){x(a instanceof Error?a.message:"Failed to reset")}}};return(0,b.jsx)(p.ConnectionCard,{name:"Task Flow Overrides",icon:(0,b.jsx)(Q,{className:"h-4 w-4"}),status:(0,p.deriveConfiguredStatus)(A>0),children:(0,b.jsxs)("div",{className:"mt-2 space-y-3",children:[(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Override the prompt body the dispatcher uses for a Git/GitHub event. The bundled body stays read-only on the left; your edits land at ",(0,b.jsx)("code",{className:"rounded bg-muted px-1",children:"~/.personal-agent/task-flows/<key>.md"})," ","and take effect on the next session. Resetting falls back to bundled."]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("select",{value:j??"",onChange:a=>i(a.target.value||null),className:"h-9 min-w-[260px] rounded border bg-background px-2 text-sm",disabled:0===g.length,children:[0===g.length&&(0,b.jsx)("option",{value:"",children:"No git.* / github.* keys"}),g.map(a=>(0,b.jsxs)("option",{value:a.key,children:[a.key,a.hasOverride?" ★":""]},a.key))]}),k.data?.hasOverride&&(0,b.jsx)(n.Badge,{variant:"green",children:"overridden"})]}),w&&(0,b.jsx)(m.Alert,{variant:"error",children:w}),(0,b.jsxs)("div",{className:"grid gap-3 lg:grid-cols-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-xs font-medium text-muted-foreground",children:"Bundled (read-only)"}),(0,b.jsx)("textarea",{value:k.data?.bundled??"",readOnly:!0,className:"h-72 w-full resize-none rounded border bg-muted p-2 font-mono text-xs"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-xs font-medium text-muted-foreground",children:"Override (edit and save)"}),(0,b.jsx)("textarea",{value:y,onChange:a=>{var b;return b=a.target.value,void(j&&v(a=>({...a,[j]:b})))},className:"h-72 w-full resize-none rounded border bg-background p-2 font-mono text-xs",spellCheck:!1})]})]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)(f.Button,{size:"sm",variant:"outline",onClick:B,disabled:!j||l.isPending||!z,children:[(0,b.jsx)(E.Save,{className:"mr-1 h-3.5 w-3.5"}),"Save override"]}),(0,b.jsxs)(f.Button,{size:"sm",variant:"ghost",onClick:C,disabled:!j||o.isPending||!k.data?.hasOverride,children:[(0,b.jsx)(R.RotateCcw,{className:"mr-1 h-3.5 w-3.5"}),"Reset to bundled"]})]})]})})}var V=a.i(33165),W=a.i(36581),X=a.i(62988),Y=a.i(33432),Z=a.i(11307);let $=(0,A.default)("Github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]);var _=a.i(48033),aa=a.i(7037),ab=a.i(96336);let ac=(0,A.default)("Unlink",[["path",{d:"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71",key:"yqzxt4"}],["path",{d:"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71",key:"4qinb0"}],["line",{x1:"8",x2:"8",y1:"2",y2:"5",key:"1041cp"}],["line",{x1:"2",x2:"5",y1:"8",y2:"8",key:"14m1p5"}],["line",{x1:"16",x2:"16",y1:"19",y2:"22",key:"rzdirn"}],["line",{x1:"19",x2:"22",y1:"16",y2:"16",key:"ox905f"}]]);var ad=a.i(28314),ae=a.i(91534);let af="text-[11px] font-medium uppercase tracking-wider text-muted-foreground",ag=["project","repo-only"],ah=["work","personal","research","client","other"];function ai({repo:a}){let[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(!1),[l,m]=(0,c.useState)(!1),o=(0,J.useDeleteRepository)(),p=(0,J.useUpdateRepository)(),q=(0,ad.useConfirm)(),r=(0,J.repositoryHasGithub)(a),s=(0,J.repositoryHasLocal)(a),t=a.localOnly,u=async()=>{await q({title:`Delete ${(0,J.repositoryDisplayName)(a)}?`,description:"This removes the repository registration along with its triggers and management state. The local clone on disk is not touched.",confirmLabel:"Delete",variant:"destructive"})&&await o.mutateAsync(a.id)},v=async b=>{b&&r?await q({title:"Mark as local-only?",description:"This will clear the GitHub link. To keep both sides, leave 'local-only' off.",confirmLabel:"Mark local-only"})&&await p.mutateAsync({id:a.id,body:{localOnly:!0,githubOwner:null,githubRepo:null,githubAccount:null}}):await p.mutateAsync({id:a.id,body:{localOnly:b}})},w=async()=>{r?await q({title:"Unlink local clone?",description:`The clone at ${a.localPath} stays on disk; only the registration is detached.`,confirmLabel:"Unlink"})&&await p.mutateAsync({id:a.id,body:{localPath:null}}):await q({title:"Cannot unlink the local clone",description:"This row has no GitHub side, so unlinking would leave it empty. Delete the repository instead.",confirmLabel:"OK"})},x=async()=>{!await q({title:"Unlink GitHub remote?",description:s?"The local clone stays registered.":"This row has no local clone, so unlinking would leave it empty. Use 'Mark local-only' instead.",confirmLabel:"Unlink"})||s&&await p.mutateAsync({id:a.id,body:{githubOwner:null,githubRepo:null,githubAccount:null}})};return(0,b.jsxs)(g.Card,{children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(d.GitBranch,{className:"h-4 w-4 text-muted-foreground"}),(0,b.jsx)("span",{className:"truncate text-sm font-medium text-foreground",children:(0,J.repositoryDisplayName)(a)}),t&&(0,b.jsxs)(n.Badge,{variant:"gray",className:"text-[10px]",children:[(0,b.jsx)(_.Lock,{className:"mr-1 h-3 w-3"}),"local-only"]}),(0,b.jsx)(n.Badge,{variant:"project"===a.classification?"green":"gray",children:a.classification}),(0,b.jsx)(n.Badge,{variant:"gray",children:a.category})]}),(0,b.jsx)("p",{className:"mt-1 truncate text-[11px] text-muted-foreground",children:a.id})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[(0,b.jsx)(f.Button,{size:"sm",variant:"ghost",onClick:()=>i(!0),title:"Edit",children:(0,b.jsx)(aa.Pencil,{className:"h-3.5 w-3.5"})}),(0,b.jsx)(f.Button,{size:"sm",variant:"ghost",onClick:u,title:"Delete",children:(0,b.jsx)(ab.Trash2,{className:"h-3.5 w-3.5"})})]})]}),(0,b.jsxs)("div",{className:"mt-3 grid gap-3 md:grid-cols-2",children:[(0,b.jsxs)("div",{className:"rounded-md border bg-background/40 p-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-medium text-muted-foreground",children:[(0,b.jsx)($,{className:"h-3.5 w-3.5"}),"GitHub"]}),r?(0,b.jsxs)("div",{className:"mt-1 space-y-1 text-sm",children:[(0,b.jsxs)("p",{className:"font-medium",children:[a.githubOwner,"/",a.githubRepo]}),(0,b.jsxs)("p",{className:"text-[11px] text-muted-foreground",children:["account: ",a.githubAccount??"default"]}),s&&!t&&(0,b.jsxs)(f.Button,{size:"sm",variant:"ghost",className:"mt-1 h-7 px-1.5",onClick:x,children:[(0,b.jsx)(ac,{className:"mr-1 h-3 w-3"}),"Unlink"]})]}):t?(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:"Local-only — toggle off to enable GitHub linking."}):(0,b.jsxs)(f.Button,{size:"sm",variant:"outline",className:"mt-2 h-8",onClick:()=>k(!0),children:[(0,b.jsx)(e.Plus,{className:"mr-1 h-3 w-3"}),"Link GitHub remote"]})]}),(0,b.jsxs)("div",{className:"rounded-md border bg-background/40 p-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-medium text-muted-foreground",children:[(0,b.jsx)(Z.FolderOpen,{className:"h-3.5 w-3.5"}),"Local clone"]}),s?(0,b.jsxs)("div",{className:"mt-1 space-y-1 text-sm",children:[(0,b.jsx)("p",{className:"truncate font-medium",title:a.localPath??"",children:a.localPath}),(0,b.jsxs)("p",{className:"text-[11px] text-muted-foreground",children:["slug: ",(0,b.jsx)("span",{className:"font-mono",children:a.slug})]}),r&&(0,b.jsxs)(f.Button,{size:"sm",variant:"ghost",className:"mt-1 h-7 px-1.5",onClick:w,children:[(0,b.jsx)(ac,{className:"mr-1 h-3 w-3"}),"Unlink"]})]}):(0,b.jsxs)(f.Button,{size:"sm",variant:"outline",className:"mt-2 h-8",onClick:()=>m(!0),children:[(0,b.jsx)(e.Plus,{className:"mr-1 h-3 w-3"}),"Link local clone"]})]})]}),(0,b.jsxs)("div",{className:"mt-3 flex items-center justify-between text-[11px] text-muted-foreground",children:[(0,b.jsxs)("label",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("input",{type:"checkbox",checked:t,disabled:p.isPending,onChange:a=>void v(a.target.checked)}),"Local-only repository"]}),(0,b.jsxs)(X.default,{href:"/git",className:"flex items-center gap-1 text-foreground underline-offset-2 hover:underline",children:["Configure polling & triggers in my life › git",(0,b.jsx)(Y.ArrowUpRight,{className:"h-3 w-3"})]})]}),(0,b.jsx)(aj,{repo:a,open:h,onClose:()=>i(!1)}),(0,b.jsx)(al,{repo:a,open:j,onClose:()=>k(!1)}),(0,b.jsx)(an,{repo:a,open:l,onClose:()=>m(!1)})]})}function aj({repo:a,open:c,onClose:d}){return(0,b.jsx)(F.Sheet,{open:c,onOpenChange:a=>!a&&d(),children:c&&(0,b.jsx)(ak,{repo:a,onClose:d})})}function ak({repo:a,onClose:d}){let e=(0,J.useUpdateRepository)(),[g,h]=(0,c.useState)(a.displayName??""),[i,j]=(0,c.useState)(a.classification),[k,l]=(0,c.useState)(a.category),[m,n]=(0,c.useState)(null),p=async b=>{b.preventDefault(),n(null);try{let b={displayName:g.trim()?g.trim():null,classification:i,category:k};await e.mutateAsync({id:a.id,body:b}),d()}catch(a){n(a instanceof Error?a.message:"Failed to save changes")}};return(0,b.jsxs)(F.SheetContent,{className:"overflow-y-auto",children:[(0,b.jsx)(F.SheetHeader,{children:(0,b.jsx)(F.SheetTitle,{children:"Edit repository metadata"})}),(0,b.jsxs)("form",{onSubmit:p,className:"mt-6 space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:af,children:"Display name"}),(0,b.jsx)(o.Input,{value:g,onChange:a=>h(a.target.value),placeholder:(0,J.repositoryDisplayName)(a)}),(0,b.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"Optional — drives the slug used for context paths and dashboard deep-links."})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:af,children:"Classification"}),(0,b.jsx)("select",{value:i,onChange:a=>j(a.target.value),className:"h-9 w-full rounded-md border bg-background px-2 text-sm",children:ag.map(a=>(0,b.jsx)("option",{value:a,children:a},a))}),(0,b.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"Project entries carry lifecycle phases in the overview MD; repo-only stays lightweight."})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:af,children:"Category"}),(0,b.jsx)("select",{value:k,onChange:a=>l(a.target.value),className:"h-9 w-full rounded-md border bg-background px-2 text-sm",children:ah.map(a=>(0,b.jsx)("option",{value:a,children:a},a))})]}),m&&(0,b.jsx)("p",{className:"rounded-md border border-red-200 bg-red-50/50 p-2 text-xs text-red-700 dark:border-red-900 dark:bg-red-950/30 dark:text-red-300",children:m}),(0,b.jsxs)("div",{className:"flex items-center justify-end gap-2 border-t pt-4",children:[(0,b.jsx)(f.Button,{type:"button",variant:"ghost",onClick:d,children:"Cancel"}),(0,b.jsx)(f.Button,{type:"submit",disabled:e.isPending,children:e.isPending?"Saving…":"Save"})]})]})]})}function al({repo:a,open:c,onClose:d}){return(0,b.jsx)(F.Sheet,{open:c,onOpenChange:a=>!a&&d(),children:c&&(0,b.jsx)(am,{repo:a,onClose:d})})}function am({repo:a,onClose:d}){let e=(0,J.useLinkGithub)(),{data:g}=v(),[h,i]=(0,c.useState)(""),[j,k]=(0,c.useState)(""),[l,m]=(0,c.useState)(""),[n,p]=(0,c.useState)(null),q=async b=>{if(b.preventDefault(),p(null),!h.trim()||!j.trim())return void p("owner and repo are required");try{await e.mutateAsync({id:a.id,owner:h.trim(),repo:j.trim(),account:l.trim()||void 0}),d()}catch(a){p(a instanceof Error?a.message:"Failed to link")}};return(0,b.jsxs)(F.SheetContent,{className:"overflow-y-auto",children:[(0,b.jsx)(F.SheetHeader,{children:(0,b.jsx)(F.SheetTitle,{children:"Link a GitHub remote"})}),(0,b.jsxs)("form",{onSubmit:q,className:"mt-6 space-y-4",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Personal accounts on github.com only. GHES is not in scope for v1."}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:af,children:"Owner"}),(0,b.jsx)(o.Input,{value:h,onChange:a=>i(a.target.value),placeholder:"acme",autoFocus:!0})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:af,children:"Repository"}),(0,b.jsx)(o.Input,{value:j,onChange:a=>k(a.target.value),placeholder:"widgets"})]})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:af,children:"Account alias"}),(0,b.jsxs)("select",{value:l,onChange:a=>m(a.target.value),className:"h-9 w-full rounded-md border bg-background px-2 text-sm",children:[(0,b.jsx)("option",{value:"",children:"default"}),(g?.accounts??[]).map(a=>(0,b.jsx)("option",{value:a.alias,children:a.alias},a.alias))]})]}),n&&(0,b.jsx)("p",{className:"rounded-md border border-red-200 bg-red-50/50 p-2 text-xs text-red-700 dark:border-red-900 dark:bg-red-950/30 dark:text-red-300",children:n}),(0,b.jsxs)("div",{className:"flex items-center justify-end gap-2 border-t pt-4",children:[(0,b.jsx)(f.Button,{type:"button",variant:"ghost",onClick:d,children:"Cancel"}),(0,b.jsx)(f.Button,{type:"submit",disabled:e.isPending,children:e.isPending?"Linking…":"Link"})]})]})]})}function an({repo:a,open:c,onClose:d}){return(0,b.jsx)(F.Sheet,{open:c,onOpenChange:a=>!a&&d(),children:c&&(0,b.jsx)(ao,{repo:a,onClose:d})})}function ao({repo:a,onClose:d}){let e=(0,J.useLinkLocal)(),[g,h]=(0,c.useState)(""),[i,j]=(0,c.useState)(null),k=async b=>{if(b.preventDefault(),j(null),!g.trim())return void j("Local path is required");try{await e.mutateAsync({id:a.id,localPath:g.trim()}),d()}catch(a){j(a instanceof Error?a.message:"Failed to link")}};return(0,b.jsxs)(F.SheetContent,{className:"overflow-y-auto",children:[(0,b.jsx)(F.SheetHeader,{children:(0,b.jsx)(F.SheetTitle,{children:"Link a local clone"})}),(0,b.jsxs)("form",{onSubmit:k,className:"mt-6 space-y-4",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Pick the directory of the local clone of this repository. The agent never inspects `.git/config` to suggest values — paths are user-supplied."}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:af,children:"Repository directory"}),(0,b.jsx)(ae.DirectoryPickerField,{value:g,onChange:h,title:"Choose local clone directory"})]}),i&&(0,b.jsx)("p",{className:"rounded-md border border-red-200 bg-red-50/50 p-2 text-xs text-red-700 dark:border-red-900 dark:bg-red-950/30 dark:text-red-300",children:i}),(0,b.jsxs)("div",{className:"flex items-center justify-end gap-2 border-t pt-4",children:[(0,b.jsx)(f.Button,{type:"button",variant:"ghost",onClick:d,children:"Cancel"}),(0,b.jsx)(f.Button,{type:"submit",disabled:e.isPending,children:e.isPending?"Linking…":"Link"})]})]})]})}let ap="text-[11px] font-medium uppercase tracking-wider text-muted-foreground",aq="text-[11px] leading-relaxed text-muted-foreground",ar="text-[11px] font-medium uppercase tracking-wider text-muted-foreground",as=[{value:"both",label:"GitHub + local clone",description:"Recommended. Agent watches GitHub activity AND reads files from your local clone."},{value:"github",label:"GitHub only",description:"Agent watches PRs, issues, and commits on GitHub. No access to source files."},{value:"local",label:"Local folder only",description:"Agent watches a folder on this Mac. No GitHub remote — e.g. a private working directory."}],at=[{value:"repo-only",label:"Just track activity",description:"Lightweight. Agent logs commits, PRs, and issues. No long-form project document."},{value:"project",label:"Treat as a project",description:"Agent maintains a rich project document with goals, decisions, and milestones in your context notes."}],au=["work","personal","research","client","other"];function av({open:a,onClose:c}){return(0,b.jsx)(F.Sheet,{open:a,onOpenChange:a=>!a&&c(),children:a&&(0,b.jsx)(aw,{onClose:c})})}function aw({onClose:a}){let d=(0,J.useCreateRepository)(),{data:e}=v(),[g,h]=(0,c.useState)("both"),[i,j]=(0,c.useState)(""),[k,l]=(0,c.useState)(""),[m,n]=(0,c.useState)(""),[p,q]=(0,c.useState)(""),[r,s]=(0,c.useState)(!1),[t,u]=(0,c.useState)(""),[w,x]=(0,c.useState)("repo-only"),[y,z]=(0,c.useState)("other"),[A,B]=(0,c.useState)(null),C="github"===g||"both"===g&&!r,D="local"===g||"both"===g,E=async b=>{b.preventDefault(),B(null);let c={classification:w,category:y,displayName:t.trim()?t.trim():void 0};if(C){if(!i.trim()||!k.trim())return void B("GitHub owner and repository are required.");c.githubOwner=i.trim(),c.githubRepo=k.trim(),m.trim()&&(c.githubAccount=m.trim())}if(D){if(!p.trim())return void B("Local clone path is required.");c.localPath=p.trim()}"local"===g&&r&&(c.localOnly=!0);try{await d.mutateAsync(c),a()}catch(a){B(a instanceof Error?a.message:"Failed to add repository")}},G=e?.accounts??[];return(0,b.jsxs)(F.SheetContent,{className:"overflow-y-auto",children:[(0,b.jsxs)(F.SheetHeader,{children:[(0,b.jsx)(F.SheetTitle,{children:"Add repository"}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Tell the agent about a code repository to watch. It will track activity (commits, PRs, issues) and optionally maintain a project document in your context notes."})]}),(0,b.jsxs)("form",{onSubmit:E,className:"mt-6 space-y-6",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:ap,children:"Where does this repository live?"}),(0,b.jsx)("div",{className:"grid gap-2",children:as.map(a=>{let c=g===a.value;return(0,b.jsxs)("button",{type:"button",onClick:()=>h(a.value),className:"rounded-md border px-3 py-2 text-left transition-colors "+(c?"border-primary bg-primary/10":"border-border hover:bg-accent"),children:[(0,b.jsx)("div",{className:"text-sm font-medium "+(c?"text-primary":"text-foreground"),children:a.label}),(0,b.jsx)("div",{className:aq+" mt-0.5",children:a.description})]},a.value)})})]}),C&&(0,b.jsxs)("div",{className:"space-y-3 rounded-md border bg-background/40 p-3",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("p",{className:ar,children:"GitHub remote"}),(0,b.jsxs)("p",{className:aq,children:["From the GitHub URL"," ",(0,b.jsx)("code",{className:"rounded bg-muted px-1 py-px text-[10px]",children:"github.com/acme/widgets"}),", the owner is ",(0,b.jsx)("strong",{children:"acme"})," and the repository is"," ",(0,b.jsx)("strong",{children:"widgets"}),"."]})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:ap,children:"Owner (user or org)"}),(0,b.jsx)(o.Input,{value:i,onChange:a=>j(a.target.value),placeholder:"acme"})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:ap,children:"Repository name"}),(0,b.jsx)(o.Input,{value:k,onChange:a=>l(a.target.value),placeholder:"widgets"})]})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:ap,children:"GitHub account to use"}),(0,b.jsxs)("select",{value:m,onChange:a=>n(a.target.value),className:"h-9 w-full rounded-md border bg-background px-2 text-sm",children:[(0,b.jsx)("option",{value:"",children:"default"}),G.map(a=>(0,b.jsx)("option",{value:a.alias,children:a.alias},a.alias))]}),(0,b.jsxs)("p",{className:aq,children:["Which set of GitHub credentials the agent should use to read this repo."," ",0===G.length?"Only the default account is set up — manage more under Connections → GitHub accounts.":"Manage accounts under Connections → GitHub accounts."]})]})]}),D&&(0,b.jsxs)("div",{className:"space-y-3 rounded-md border bg-background/40 p-3",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("p",{className:ar,children:"Local clone"}),(0,b.jsx)("p",{className:aq,children:"Folder on this Mac where the repo is checked out. The agent reads source files, commits, and uncommitted changes from here."})]}),(0,b.jsx)(ae.DirectoryPickerField,{value:p,onChange:q,title:"Choose local clone directory"}),"local"===g&&(0,b.jsxs)("label",{className:"flex items-start gap-2 text-xs text-muted-foreground",children:[(0,b.jsx)("input",{type:"checkbox",checked:r,onChange:a=>s(a.target.checked),className:"mt-0.5"}),(0,b.jsx)("span",{children:"This folder is not (and will never be) backed by a GitHub remote. Skip GitHub linking permanently."})]})]}),(0,b.jsxs)("div",{className:"space-y-3 rounded-md border bg-background/40 p-3",children:[(0,b.jsx)("p",{className:ar,children:"Naming & tracking"}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:ap,children:"Display name (optional)"}),(0,b.jsx)(o.Input,{value:t,onChange:a=>u(a.target.value),placeholder:"Leave blank to use the repo or folder name"}),(0,b.jsx)("p",{className:aq,children:"How this repository appears in the dashboard and in your context notes."})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:ap,children:"How should the agent treat this?"}),(0,b.jsx)("div",{className:"grid gap-2",children:at.map(a=>{let c=w===a.value;return(0,b.jsxs)("button",{type:"button",onClick:()=>x(a.value),className:"rounded-md border px-3 py-2 text-left transition-colors "+(c?"border-primary bg-primary/10":"border-border hover:bg-accent"),children:[(0,b.jsx)("div",{className:"text-sm font-medium "+(c?"text-primary":"text-foreground"),children:a.label}),(0,b.jsx)("div",{className:aq+" mt-0.5",children:a.description})]},a.value)})})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:ap,children:"Category (tag)"}),(0,b.jsx)("select",{value:y,onChange:a=>z(a.target.value),className:"h-9 w-full rounded-md border bg-background px-2 text-sm",children:au.map(a=>(0,b.jsx)("option",{value:a,children:a},a))}),(0,b.jsx)("p",{className:aq,children:"Used to group repositories in the dashboard. Pick whichever feels right."})]})]}),A&&(0,b.jsx)("p",{className:"rounded-md border border-red-200 bg-red-50/50 p-2 text-xs text-red-700 dark:border-red-900 dark:bg-red-950/30 dark:text-red-300",children:A}),(0,b.jsxs)("div",{className:"flex items-center justify-end gap-2 border-t pt-4",children:[(0,b.jsx)(f.Button,{type:"button",variant:"ghost",onClick:a,children:"Cancel"}),(0,b.jsx)(f.Button,{type:"submit",disabled:d.isPending,children:d.isPending?"Adding…":"Add repository"})]})]})]})}var ax=a.i(40410);a.s(["default",0,function(){let a=(0,J.useRepositories)(),{data:j,isLoading:k}=(0,ax.useHealth)(),[l,m]=(0,c.useState)(!1),n=a.data?.repositories??[],o=n.length,p=n.filter(a=>a.githubOwner&&a.githubRepo).length,q=n.filter(a=>a.localPath).length,r=a.isLoading||k,s=!r&&(!a.data||!j);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(i.ConnectionsSectionHeader,{title:"Repositories",description:"Each repository links an optional GitHub remote with an optional local clone. Polling cadence, automation triggers, and daily git management live on the My Life › Git page.",healthy:+(o>0),total:1,actions:(0,b.jsxs)(f.Button,{onClick:()=>m(!0),children:[(0,b.jsx)(e.Plus,{className:"h-4 w-4"}),"Add repository"]})}),s&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"Daemon not connected. Start the daemon to manage repositories."}),!r&&(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(W.IntegrationCard,{integrationKey:"git"}),(0,b.jsx)(W.IntegrationCard,{integrationKey:"github"}),0===n.length?(0,b.jsx)(h.EmptyState,{icon:d.GitBranch,title:"No repositories registered",description:"Add a repository to start watching commits, polling GitHub events, and wiring per-repo triggers.",children:(0,b.jsxs)(f.Button,{className:"mt-4",onClick:()=>m(!0),children:[(0,b.jsx)(e.Plus,{className:"h-4 w-4"}),"Add your first repository"]})}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(g.Card,{className:"flex items-center justify-between text-xs text-muted-foreground",children:(0,b.jsxs)("span",{children:[o," repositor",1===o?"y":"ies"," ·"," ",p," with GitHub · ",q," with local clone"]})}),(0,b.jsx)("div",{className:"space-y-3",children:n.map(a=>(0,b.jsx)(ai,{repo:a},a.id))})]}),(0,b.jsx)(y,{}),(0,b.jsx)(M,{}),(0,b.jsx)(U,{}),(0,b.jsx)(V.ProcessModelCard,{processKey:"git.project.init",title:"Git Project Init Model",description:"Generates the initial overview MD when daily git management is first enabled for a repository."}),(0,b.jsx)(V.ProcessModelCard,{processKey:"git.project.update",title:"Git Project Update Model",description:"Runs the daily 24h scan that appends to journal MDs and curates overview sections."}),(0,b.jsx)(V.ProcessModelCard,{processKey:"git.project.retemplate",title:"Git Project Re-template Model",description:"One-shot session that re-conforms existing project documents to the current template body."})]}),(0,b.jsx)(av,{open:l,onClose:()=>m(!1)})]})}],21765)}];
1
+ module.exports=[21765,a=>{"use strict";var b=a.i(39752),c=a.i(34542),d=a.i(43095),e=a.i(43179),f=a.i(21218),g=a.i(30400),h=a.i(27727),i=a.i(86807),j=a.i(55140),k=a.i(50891),l=a.i(85857),m=a.i(29629),n=a.i(7384),o=a.i(8212),p=a.i(95827),q=a.i(62588),r=a.i(8753),s=a.i(81130),t=a.i(59974);let u=["git-accounts"];function v(){return(0,q.useQuery)({queryKey:u,queryFn:()=>t.api.get("/git-accounts"),staleTime:3e4})}let w=/^[a-z0-9._-]+$/,x={alias:"",type:"github",authMode:"gh-cli-profile",ghProfile:"",host:"github.com",token:""};function y(){let a,d,g=v(),h=(a=(0,s.useQueryClient)(),(0,r.useMutation)({mutationFn:({alias:a,payload:b})=>t.api.put(`/git-accounts/${a}`,b),onSuccess:()=>{a.invalidateQueries({queryKey:u}),a.invalidateQueries({queryKey:["config"]})}})),i=(d=(0,s.useQueryClient)(),(0,r.useMutation)({mutationFn:a=>t.api.delete(`/git-accounts/${a}`),onSuccess:()=>{d.invalidateQueries({queryKey:u}),d.invalidateQueries({queryKey:["config"]})}})),k=(0,r.useMutation)({mutationFn:a=>t.api.post(`/git-accounts/${a}/probe`,{})}),[l,n]=(0,c.useState)(x),[q,y]=(0,c.useState)(null),[A,B]=(0,c.useState)({}),C=g.data?.accounts??[],D=async()=>{if(y(null),!w.test(l.alias))return void y("Alias must use lowercase letters, digits, dot, dash, or underscore.");if("gh-cli-profile"===l.authMode&&!l.ghProfile.trim())return void y("gh-cli-profile mode requires a gh login name.");if("pat-keychain"===l.authMode&&!l.token.trim())return void y("PAT mode requires a token on first save.");try{await h.mutateAsync({alias:l.alias,payload:{type:l.type,authMode:l.authMode,host:l.host||"github.com",..."gh-cli-profile"===l.authMode?{ghProfile:l.ghProfile}:{},...l.token?{token:l.token}:{}}}),n(x)}catch(a){y(a instanceof Error?a.message:"Failed to save account.")}},E=async a=>{B(b=>({...b,[a]:"Probing…"}));try{let b=await k.mutateAsync(a),c=b.ok?`OK — authenticated as ${b.login}`:`Probe failed: ${b.reason??"unknown"}`;B(b=>({...b,[a]:c}))}catch(b){B(c=>({...c,[a]:b instanceof Error?b.message:"Probe failed"}))}};return(0,b.jsx)(p.ConnectionCard,{name:"Git Accounts",icon:(0,b.jsx)(j.KeyRound,{className:"h-4 w-4"}),status:(0,p.deriveConfiguredStatus)(C.length>0),children:(0,b.jsxs)("div",{className:"mt-2 space-y-3",children:[(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Named credentials attached to watched repositories via"," ",(0,b.jsx)("code",{className:"rounded bg-muted px-1",children:"accountAlias"}),". Direct mode injects the resolved token per poll; Delegated mode currently uses the default ",(0,b.jsx)("code",{children:"gh"})," profile."]}),q&&(0,b.jsx)(m.Alert,{variant:"error",children:q}),(0,b.jsxs)("div",{className:"space-y-2",children:[0===C.length&&(0,b.jsx)("p",{className:"text-xs italic text-muted-foreground",children:"No accounts configured. Add one below."}),C.map(a=>(0,b.jsx)(z,{entry:a,onDelete:()=>i.mutate(a.alias),onProbe:()=>E(a.alias),probeMessage:A[a.alias],busy:i.isPending||k.isPending},a.alias))]}),(0,b.jsxs)("div",{className:"space-y-2 rounded border bg-background p-3",children:[(0,b.jsx)("p",{className:"text-xs font-medium",children:"Add account"}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(o.Input,{value:l.alias,onChange:a=>n(b=>({...b,alias:a.target.value})),placeholder:"alias (e.g. work-github)",className:"max-w-[200px]"}),(0,b.jsxs)("select",{value:l.authMode,onChange:a=>n(b=>({...b,authMode:a.target.value})),className:"h-9 rounded border bg-background px-2 text-sm",children:[(0,b.jsx)("option",{value:"gh-cli-profile",children:"gh CLI profile"}),(0,b.jsx)("option",{value:"pat-keychain",children:"Personal Access Token"})]}),(0,b.jsx)(o.Input,{value:l.host,onChange:a=>n(b=>({...b,host:a.target.value})),placeholder:"github.com",className:"max-w-[180px]"}),"gh-cli-profile"===l.authMode?(0,b.jsx)(o.Input,{value:l.ghProfile,onChange:a=>n(b=>({...b,ghProfile:a.target.value})),placeholder:"gh login name (e.g. alice)",className:"max-w-[220px]"}):(0,b.jsx)(o.Input,{type:"password",value:l.token,onChange:a=>n(b=>({...b,token:a.target.value})),placeholder:"ghp_… (PAT — never persisted to disk)",className:"max-w-[280px]"}),(0,b.jsxs)(f.Button,{size:"sm",variant:"outline",onClick:D,disabled:h.isPending||!l.alias.trim(),children:[(0,b.jsx)(e.Plus,{className:"mr-1 h-3.5 w-3.5"}),"Save"]})]})]})]})})}function z({entry:a,onDelete:c,onProbe:d,probeMessage:e,busy:g}){return(0,b.jsxs)("div",{className:"flex flex-col gap-2 rounded border bg-background p-2 sm:flex-row sm:items-center",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"font-mono text-sm font-medium",children:a.alias}),(0,b.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-1.5",children:[(0,b.jsx)(n.Badge,{variant:"gray",children:a.host}),(0,b.jsx)(n.Badge,{variant:"pat-keychain"===a.authMode?"green":"gray",children:a.authMode}),a.ghProfile&&(0,b.jsxs)(n.Badge,{variant:"gray",children:["user: ",a.ghProfile]}),!0===a.tokenStored&&(0,b.jsx)(n.Badge,{variant:"green",children:"token stored"}),!1===a.tokenStored&&(0,b.jsx)(n.Badge,{variant:"red",children:"no token"})]}),e&&(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:e})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)(f.Button,{size:"sm",variant:"ghost",onClick:d,disabled:g,children:[(0,b.jsx)(k.ShieldCheck,{className:"mr-1 h-3.5 w-3.5"}),"Probe"]}),(0,b.jsx)(f.Button,{size:"sm",variant:"ghost",onClick:c,disabled:g,className:"h-8 w-8 p-0",children:(0,b.jsx)(l.X,{className:"h-3.5 w-3.5"})})]})]})}var A=a.i(5423);let B=(0,A.default)("FileType2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M2 13v-1h6v1",key:"1dh9dg"}],["path",{d:"M5 12v6",key:"150t9c"}],["path",{d:"M4 18h2",key:"1xrofg"}]]);var C=a.i(92241),D=a.i(87759),E=a.i(95024),F=a.i(58382),G=a.i(61213);let H=a=>["git-template",a],I=["git-template","retemplate-status"];function J(){return(0,q.useQuery)({queryKey:I,queryFn:()=>t.api.get("/git/templates/retemplate/status"),refetchInterval:a=>{let b=a.state.data;return!!(b?.status&&!b.status.finalizedAt)&&2e3},staleTime:1e3})}var K=a.i(21283);function L(a){return"project"===a?"Project (projects/<slug>.md)":"Repo-only (git-repos/<slug>.md)"}let M=["project","git-repo"];function N(){let a=J(),c=a.data?.status??null,d=function(a){if(!a)return null;if(!a.finalizedAt)return{label:"Re-template in progress…",tone:"info"};switch(a.finalStatus){case"success":default:return{label:"Re-template completed",tone:"success"};case"partial":return{label:"Re-template completed with rollbacks",tone:"warning"};case"failed":return{label:"Re-template failed",tone:"error"}}}(c);return(0,b.jsx)(p.ConnectionCard,{name:"Project document templates",icon:(0,b.jsx)(B,{className:"h-4 w-4"}),status:(0,p.deriveConfiguredStatus)(!0),children:(0,b.jsxs)("div",{className:"mt-2 space-y-3",children:[(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Edit the templates the agent uses when it (re)writes"," ",(0,b.jsx)("code",{className:"rounded bg-muted px-1",children:"plans/projects/<slug>.md"})," ","and"," ",(0,b.jsx)("code",{className:"rounded bg-muted px-1",children:"knowledge/repos/<slug>/overview.md"}),". Changes are forward-only — existing files keep their old shape until the next git lifecycle event touches them, or until you press “Apply” below to re-conform every existing file at once."]}),d&&(0,b.jsx)(m.Alert,{variant:"error"===d.tone?"error":"warning"===d.tone?"warning":"success"===d.tone?"success":"info",children:(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("span",{children:d.label}),c&&(0,b.jsxs)("span",{className:"text-xs font-mono text-muted-foreground",children:[c.kind," · run #",c.scheduleId]})]})}),M.map(a=>(0,b.jsx)(O,{kind:a},a)),(0,b.jsx)(P,{})]})})}function O({kind:a}){let d,e,g,h=(0,q.useQuery)({queryKey:H(a),queryFn:()=>t.api.get(`/git/templates/${encodeURIComponent(a)}`),staleTime:5e3}),i=(d=(0,s.useQueryClient)(),(0,r.useMutation)({mutationFn:b=>t.api.put(`/git/templates/${encodeURIComponent(a)}`,{content:b}),onSuccess:()=>{d.invalidateQueries({queryKey:H(a)})}})),j=(e=(0,s.useQueryClient)(),(0,r.useMutation)({mutationFn:()=>t.api.post(`/git/templates/${encodeURIComponent(a)}/apply`),onSuccess:()=>{e.invalidateQueries({queryKey:I})}})),k=(0,K.useRepositories)(),[l,o]=(0,c.useState)(null),[p,u]=(0,c.useState)(null),[v,w]=(0,c.useState)(!1),[x,y]=(0,c.useState)(null),z="project"===a?"project":"repo-only",A=(0,c.useMemo)(()=>(k.data?.repositories??[]).filter(a=>a.classification===z).length,[k.data?.repositories,z]),B=h.data?.active??"",F=h.data?.bundled??"",J=h.data?.hasOverride??!1,M=l??B,N=null!==l&&l!==B,P=async()=>{if(null!==l){u(null);try{await i.mutateAsync(l),o(null)}catch(a){u(a instanceof Error?a.message:"Failed to save template")}}},Q=(g=L(a),{title:`Re-template ${A} ${"project"===a?"project":"git-repo"} document${1===A?"":"s"}?`,bullets:[`${g} files will be re-conformed to the current template body.`,"Re-templating may lose information or formatting that the new template does not represent. Files matching the previous schema's sections may have content moved, merged, or dropped depending on how the template changed.","Every targeted file is auto-backed up before the run. The backup path is shown after you confirm.","If a file's session aborts mid-write, the daemon restores it from backup automatically."],acknowledge:"Yes, apply the template"}),R=async()=>{u(null);try{let a=await j.mutateAsync();y(a),w(!1)}catch(a){u(a instanceof Error?a.message:"Failed to apply template")}};return(0,b.jsxs)("div",{className:"rounded border bg-card p-3 space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-sm font-medium",children:L(a)}),J&&(0,b.jsx)(n.Badge,{variant:"green",children:"overridden"})]}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"project"===a?"project.md":"git-repo.md"})]}),p&&(0,b.jsx)(m.Alert,{variant:"error",children:p}),(0,b.jsxs)("div",{className:"grid gap-2 lg:grid-cols-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-xs font-medium text-muted-foreground",children:"Bundled (read-only)"}),(0,b.jsx)("textarea",{value:F,readOnly:!0,className:"h-64 w-full resize-none rounded border bg-muted p-2 font-mono text-xs"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-xs font-medium text-muted-foreground",children:"Active (edit and save)"}),(0,b.jsx)("textarea",{value:M,onChange:a=>o(a.target.value),className:"h-64 w-full resize-none rounded border bg-background p-2 font-mono text-xs",spellCheck:!1,disabled:h.isLoading})]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsxs)(f.Button,{size:"sm",variant:"outline",onClick:P,disabled:!N||i.isPending,children:[(0,b.jsx)(E.Save,{className:"mr-1 h-3.5 w-3.5"}),"Save template"]}),(0,b.jsx)(f.Button,{size:"sm",variant:"ghost",onClick:()=>{o(F)},disabled:h.isLoading,children:"Reset to bundled"}),(0,b.jsxs)(f.Button,{size:"sm",variant:"default",onClick:()=>w(!0),disabled:j.isPending,children:[j.isPending?(0,b.jsx)(C.Loader2,{className:"mr-1 h-3.5 w-3.5 animate-spin"}):(0,b.jsx)(D.Play,{className:"mr-1 h-3.5 w-3.5"}),"Apply current template to existing ","project"===a?"projects":"git-repos"]})]}),x&&(0,b.jsx)(m.Alert,{variant:"info",children:(0,b.jsxs)("div",{className:"space-y-1 text-xs",children:[(0,b.jsxs)("div",{children:["Re-template enqueued — schedule #",x.scheduleId,","," ",x.targets.length," file(s) backed up."]}),(0,b.jsxs)("div",{className:"font-mono text-muted-foreground break-all",children:["backup: ",x.backupRoot]})]})}),(0,b.jsx)(G.Sheet,{open:v,onOpenChange:w,children:(0,b.jsxs)(G.SheetContent,{side:"right",className:"w-[480px] sm:w-[540px]",children:[(0,b.jsx)(G.SheetHeader,{children:(0,b.jsx)(G.SheetTitle,{children:Q.title})}),(0,b.jsxs)("div",{className:"mt-4 space-y-3 text-sm",children:[(0,b.jsx)("ul",{className:"list-disc space-y-1 pl-5",children:Q.bullets.map(a=>(0,b.jsx)("li",{children:a},a))}),(0,b.jsxs)("div",{className:"flex gap-2 pt-2",children:[(0,b.jsxs)(f.Button,{size:"sm",onClick:R,disabled:j.isPending,children:[j.isPending&&(0,b.jsx)(C.Loader2,{className:"mr-1 h-3.5 w-3.5 animate-spin"}),Q.acknowledge]}),(0,b.jsx)(f.Button,{size:"sm",variant:"ghost",onClick:()=>w(!1),children:"Cancel"})]})]})]})})]})}function P(){let a=J(),d=a.data?.status??null,e=(0,c.useMemo)(()=>d?Object.values(d.files).map(a=>({slug:a.slug,contextFile:a.contextFile,status:a.status,reason:a.reason??null,error:a.error??null,bytesDelta:void 0!==a.beforeBytes&&void 0!==a.afterBytes?a.afterBytes-a.beforeBytes:null,startedAt:a.startedAt??null,completedAt:a.completedAt??null})).sort((a,b)=>a.slug.localeCompare(b.slug)):[],[d]),f=(0,c.useMemo)(()=>(function(a){let b={pending:0,started:0,completed:0,skipped:0,failed:0,rolled_back:0};for(let c of a)b[c.status]+=1;return b})(e),[e]);return d?(0,b.jsxs)("div",{className:"rounded border bg-card p-3 space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-sm font-medium",children:"Last re-template run"}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1 text-xs",children:Object.entries(f).map(([a,c])=>c>0?(0,b.jsxs)(n.Badge,{variant:(0,F.statusBadgeVariant)(a),children:[a,": ",c]},a):null)})]}),(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:"w-full text-xs",children:[(0,b.jsx)("thead",{children:(0,b.jsxs)("tr",{className:"border-b text-left text-muted-foreground",children:[(0,b.jsx)("th",{className:"px-2 py-1",children:"Slug"}),(0,b.jsx)("th",{className:"px-2 py-1",children:"Status"}),(0,b.jsx)("th",{className:"px-2 py-1",children:"File"}),(0,b.jsx)("th",{className:"px-2 py-1",children:"Bytes Δ"}),(0,b.jsx)("th",{className:"px-2 py-1",children:"Note"})]})}),(0,b.jsx)("tbody",{children:e.map(a=>(0,b.jsxs)("tr",{className:"border-b last:border-0",children:[(0,b.jsx)("td",{className:"px-2 py-1 font-mono",children:a.slug}),(0,b.jsx)("td",{className:"px-2 py-1",children:(0,b.jsx)(n.Badge,{variant:(0,F.statusBadgeVariant)(a.status),children:a.status})}),(0,b.jsx)("td",{className:"px-2 py-1 font-mono text-muted-foreground",children:a.contextFile}),(0,b.jsx)("td",{className:"px-2 py-1",children:null===a.bytesDelta?"—":a.bytesDelta>=0?`+${a.bytesDelta}`:`${a.bytesDelta}`}),(0,b.jsx)("td",{className:"px-2 py-1 text-muted-foreground",children:a.error??a.reason??""})]},a.slug))})]})})]}):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"No re-template runs recorded yet."})}let Q=(0,A.default)("FilePen",[["path",{d:"M12.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v9.5",key:"1couwa"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M13.378 15.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1y4qbx"}]]);var R=a.i(70297);let S=["task-flows"],T=["git.","github."];function U(){let a,d,e=(0,q.useQuery)({queryKey:S,queryFn:()=>t.api.get("/task-flows"),staleTime:3e4}),g=(0,c.useMemo)(()=>(e.data?.flows??[]).filter(a=>T.some(b=>a.key.startsWith(b))),[e.data]),[h,i]=(0,c.useState)(null),j=h??(g.length>0?g[0].key:null),k=(0,q.useQuery)({queryKey:["task-flow",j],queryFn:()=>null===j?Promise.reject(Error("no_key")):t.api.get(`/task-flows/${encodeURIComponent(j)}`),enabled:null!==j,staleTime:5e3}),l=(a=(0,s.useQueryClient)(),(0,r.useMutation)({mutationFn:({key:a,content:b})=>t.api.put(`/task-flows/${encodeURIComponent(a)}`,{content:b}),onSuccess:(b,{key:c})=>{a.invalidateQueries({queryKey:S}),a.invalidateQueries({queryKey:["task-flow",c]})}})),o=(d=(0,s.useQueryClient)(),(0,r.useMutation)({mutationFn:a=>t.api.delete(`/task-flows/${encodeURIComponent(a)}`),onSuccess:(a,b)=>{d.invalidateQueries({queryKey:S}),d.invalidateQueries({queryKey:["task-flow",b]})}})),[u,v]=(0,c.useState)({}),[w,x]=(0,c.useState)(null),y=j?u[j]??k.data?.override??k.data?.bundled??"":"",z=!!j&&void 0!==u[j]&&u[j]!==(k.data?.override??""),A=g.filter(a=>a.hasOverride).length,B=async()=>{if(j){x(null);try{await l.mutateAsync({key:j,content:y})}catch(a){x(a instanceof Error?a.message:"Failed to save override")}}},C=async()=>{if(j){x(null);try{await o.mutateAsync(j),v(a=>{let b={...a};return delete b[j],b})}catch(a){x(a instanceof Error?a.message:"Failed to reset")}}};return(0,b.jsx)(p.ConnectionCard,{name:"Task Flow Overrides",icon:(0,b.jsx)(Q,{className:"h-4 w-4"}),status:(0,p.deriveConfiguredStatus)(A>0),children:(0,b.jsxs)("div",{className:"mt-2 space-y-3",children:[(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Override the prompt body the dispatcher uses for a Git/GitHub event. The bundled body stays read-only on the left; your edits land at ",(0,b.jsx)("code",{className:"rounded bg-muted px-1",children:"~/.personal-agent/task-flows/<key>.md"})," ","and take effect on the next session. Resetting falls back to bundled."]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("select",{value:j??"",onChange:a=>i(a.target.value||null),className:"h-9 min-w-[260px] rounded border bg-background px-2 text-sm",disabled:0===g.length,children:[0===g.length&&(0,b.jsx)("option",{value:"",children:"No git.* / github.* keys"}),g.map(a=>(0,b.jsxs)("option",{value:a.key,children:[a.key,a.hasOverride?" ★":""]},a.key))]}),k.data?.hasOverride&&(0,b.jsx)(n.Badge,{variant:"green",children:"overridden"})]}),w&&(0,b.jsx)(m.Alert,{variant:"error",children:w}),(0,b.jsxs)("div",{className:"grid gap-3 lg:grid-cols-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-xs font-medium text-muted-foreground",children:"Bundled (read-only)"}),(0,b.jsx)("textarea",{value:k.data?.bundled??"",readOnly:!0,className:"h-72 w-full resize-none rounded border bg-muted p-2 font-mono text-xs"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-xs font-medium text-muted-foreground",children:"Override (edit and save)"}),(0,b.jsx)("textarea",{value:y,onChange:a=>{var b;return b=a.target.value,void(j&&v(a=>({...a,[j]:b})))},className:"h-72 w-full resize-none rounded border bg-background p-2 font-mono text-xs",spellCheck:!1})]})]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)(f.Button,{size:"sm",variant:"outline",onClick:B,disabled:!j||l.isPending||!z,children:[(0,b.jsx)(E.Save,{className:"mr-1 h-3.5 w-3.5"}),"Save override"]}),(0,b.jsxs)(f.Button,{size:"sm",variant:"ghost",onClick:C,disabled:!j||o.isPending||!k.data?.hasOverride,children:[(0,b.jsx)(R.RotateCcw,{className:"mr-1 h-3.5 w-3.5"}),"Reset to bundled"]})]})]})})}var V=a.i(33165),W=a.i(36581),X=a.i(62988),Y=a.i(33432),Z=a.i(11307);let $=(0,A.default)("Github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]);var _=a.i(48033),aa=a.i(7037),ab=a.i(96336);let ac=(0,A.default)("Unlink",[["path",{d:"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71",key:"yqzxt4"}],["path",{d:"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71",key:"4qinb0"}],["line",{x1:"8",x2:"8",y1:"2",y2:"5",key:"1041cp"}],["line",{x1:"2",x2:"5",y1:"8",y2:"8",key:"14m1p5"}],["line",{x1:"16",x2:"16",y1:"19",y2:"22",key:"rzdirn"}],["line",{x1:"19",x2:"22",y1:"16",y2:"16",key:"ox905f"}]]);var ad=a.i(28314),ae=a.i(91534);let af="text-[11px] font-medium uppercase tracking-wider text-muted-foreground",ag=["project","repo-only"],ah=["work","personal","research","client","other"];function ai({repo:a}){let[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(!1),[l,m]=(0,c.useState)(!1),o=(0,K.useDeleteRepository)(),p=(0,K.useUpdateRepository)(),q=(0,ad.useConfirm)(),r=(0,K.repositoryHasGithub)(a),s=(0,K.repositoryHasLocal)(a),t=a.localOnly,u=async()=>{await q({title:`Delete ${(0,K.repositoryDisplayName)(a)}?`,description:"This removes the repository registration along with its triggers and management state. The local clone on disk is not touched.",confirmLabel:"Delete",variant:"destructive"})&&await o.mutateAsync(a.id)},v=async b=>{b&&r?await q({title:"Mark as local-only?",description:"This will clear the GitHub link. To keep both sides, leave 'local-only' off.",confirmLabel:"Mark local-only"})&&await p.mutateAsync({id:a.id,body:{localOnly:!0,githubOwner:null,githubRepo:null,githubAccount:null}}):await p.mutateAsync({id:a.id,body:{localOnly:b}})},w=async()=>{r?await q({title:"Unlink local clone?",description:`The clone at ${a.localPath} stays on disk; only the registration is detached.`,confirmLabel:"Unlink"})&&await p.mutateAsync({id:a.id,body:{localPath:null}}):await q({title:"Cannot unlink the local clone",description:"This row has no GitHub side, so unlinking would leave it empty. Delete the repository instead.",confirmLabel:"OK"})},x=async()=>{!await q({title:"Unlink GitHub remote?",description:s?"The local clone stays registered.":"This row has no local clone, so unlinking would leave it empty. Use 'Mark local-only' instead.",confirmLabel:"Unlink"})||s&&await p.mutateAsync({id:a.id,body:{githubOwner:null,githubRepo:null,githubAccount:null}})};return(0,b.jsxs)(g.Card,{children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(d.GitBranch,{className:"h-4 w-4 text-muted-foreground"}),(0,b.jsx)("span",{className:"truncate text-sm font-medium text-foreground",children:(0,K.repositoryDisplayName)(a)}),t&&(0,b.jsxs)(n.Badge,{variant:"gray",className:"text-[10px]",children:[(0,b.jsx)(_.Lock,{className:"mr-1 h-3 w-3"}),"local-only"]}),(0,b.jsx)(n.Badge,{variant:"project"===a.classification?"green":"gray",children:a.classification}),(0,b.jsx)(n.Badge,{variant:"gray",children:a.category})]}),(0,b.jsx)("p",{className:"mt-1 truncate text-[11px] text-muted-foreground",children:a.id})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[(0,b.jsx)(f.Button,{size:"sm",variant:"ghost",onClick:()=>i(!0),title:"Edit",children:(0,b.jsx)(aa.Pencil,{className:"h-3.5 w-3.5"})}),(0,b.jsx)(f.Button,{size:"sm",variant:"ghost",onClick:u,title:"Delete",children:(0,b.jsx)(ab.Trash2,{className:"h-3.5 w-3.5"})})]})]}),(0,b.jsxs)("div",{className:"mt-3 grid gap-3 md:grid-cols-2",children:[(0,b.jsxs)("div",{className:"rounded-md border bg-background/40 p-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-medium text-muted-foreground",children:[(0,b.jsx)($,{className:"h-3.5 w-3.5"}),"GitHub"]}),r?(0,b.jsxs)("div",{className:"mt-1 space-y-1 text-sm",children:[(0,b.jsxs)("p",{className:"font-medium",children:[a.githubOwner,"/",a.githubRepo]}),(0,b.jsxs)("p",{className:"text-[11px] text-muted-foreground",children:["account: ",a.githubAccount??"default"]}),s&&!t&&(0,b.jsxs)(f.Button,{size:"sm",variant:"ghost",className:"mt-1 h-7 px-1.5",onClick:x,children:[(0,b.jsx)(ac,{className:"mr-1 h-3 w-3"}),"Unlink"]})]}):t?(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:"Local-only — toggle off to enable GitHub linking."}):(0,b.jsxs)(f.Button,{size:"sm",variant:"outline",className:"mt-2 h-8",onClick:()=>k(!0),children:[(0,b.jsx)(e.Plus,{className:"mr-1 h-3 w-3"}),"Link GitHub remote"]})]}),(0,b.jsxs)("div",{className:"rounded-md border bg-background/40 p-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-medium text-muted-foreground",children:[(0,b.jsx)(Z.FolderOpen,{className:"h-3.5 w-3.5"}),"Local clone"]}),s?(0,b.jsxs)("div",{className:"mt-1 space-y-1 text-sm",children:[(0,b.jsx)("p",{className:"truncate font-medium",title:a.localPath??"",children:a.localPath}),(0,b.jsxs)("p",{className:"text-[11px] text-muted-foreground",children:["slug: ",(0,b.jsx)("span",{className:"font-mono",children:a.slug})]}),r&&(0,b.jsxs)(f.Button,{size:"sm",variant:"ghost",className:"mt-1 h-7 px-1.5",onClick:w,children:[(0,b.jsx)(ac,{className:"mr-1 h-3 w-3"}),"Unlink"]})]}):(0,b.jsxs)(f.Button,{size:"sm",variant:"outline",className:"mt-2 h-8",onClick:()=>m(!0),children:[(0,b.jsx)(e.Plus,{className:"mr-1 h-3 w-3"}),"Link local clone"]})]})]}),(0,b.jsxs)("div",{className:"mt-3 flex items-center justify-between text-[11px] text-muted-foreground",children:[(0,b.jsxs)("label",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("input",{type:"checkbox",checked:t,disabled:p.isPending,onChange:a=>void v(a.target.checked)}),"Local-only repository"]}),(0,b.jsxs)(X.default,{href:"/git",className:"flex items-center gap-1 text-foreground underline-offset-2 hover:underline",children:["Configure polling & triggers in my life › git",(0,b.jsx)(Y.ArrowUpRight,{className:"h-3 w-3"})]})]}),(0,b.jsx)(aj,{repo:a,open:h,onClose:()=>i(!1)}),(0,b.jsx)(al,{repo:a,open:j,onClose:()=>k(!1)}),(0,b.jsx)(an,{repo:a,open:l,onClose:()=>m(!1)})]})}function aj({repo:a,open:c,onClose:d}){return(0,b.jsx)(G.Sheet,{open:c,onOpenChange:a=>!a&&d(),children:c&&(0,b.jsx)(ak,{repo:a,onClose:d})})}function ak({repo:a,onClose:d}){let e=(0,K.useUpdateRepository)(),[g,h]=(0,c.useState)(a.displayName??""),[i,j]=(0,c.useState)(a.classification),[k,l]=(0,c.useState)(a.category),[m,n]=(0,c.useState)(null),p=async b=>{b.preventDefault(),n(null);try{let b={displayName:g.trim()?g.trim():null,classification:i,category:k};await e.mutateAsync({id:a.id,body:b}),d()}catch(a){n(a instanceof Error?a.message:"Failed to save changes")}};return(0,b.jsxs)(G.SheetContent,{className:"overflow-y-auto",children:[(0,b.jsx)(G.SheetHeader,{children:(0,b.jsx)(G.SheetTitle,{children:"Edit repository metadata"})}),(0,b.jsxs)("form",{onSubmit:p,className:"mt-6 space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:af,children:"Display name"}),(0,b.jsx)(o.Input,{value:g,onChange:a=>h(a.target.value),placeholder:(0,K.repositoryDisplayName)(a)}),(0,b.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"Optional — drives the slug used for context paths and dashboard deep-links."})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:af,children:"Classification"}),(0,b.jsx)("select",{value:i,onChange:a=>j(a.target.value),className:"h-9 w-full rounded-md border bg-background px-2 text-sm",children:ag.map(a=>(0,b.jsx)("option",{value:a,children:a},a))}),(0,b.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"Project entries carry lifecycle phases in the overview MD; repo-only stays lightweight."})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:af,children:"Category"}),(0,b.jsx)("select",{value:k,onChange:a=>l(a.target.value),className:"h-9 w-full rounded-md border bg-background px-2 text-sm",children:ah.map(a=>(0,b.jsx)("option",{value:a,children:a},a))})]}),m&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/40 bg-destructive/10 p-2 text-xs text-destructive",children:m}),(0,b.jsxs)("div",{className:"flex items-center justify-end gap-2 border-t pt-4",children:[(0,b.jsx)(f.Button,{type:"button",variant:"ghost",onClick:d,children:"Cancel"}),(0,b.jsx)(f.Button,{type:"submit",disabled:e.isPending,children:e.isPending?"Saving…":"Save"})]})]})]})}function al({repo:a,open:c,onClose:d}){return(0,b.jsx)(G.Sheet,{open:c,onOpenChange:a=>!a&&d(),children:c&&(0,b.jsx)(am,{repo:a,onClose:d})})}function am({repo:a,onClose:d}){let e=(0,K.useLinkGithub)(),{data:g}=v(),[h,i]=(0,c.useState)(""),[j,k]=(0,c.useState)(""),[l,m]=(0,c.useState)(""),[n,p]=(0,c.useState)(null),q=async b=>{if(b.preventDefault(),p(null),!h.trim()||!j.trim())return void p("owner and repo are required");try{await e.mutateAsync({id:a.id,owner:h.trim(),repo:j.trim(),account:l.trim()||void 0}),d()}catch(a){p(a instanceof Error?a.message:"Failed to link")}};return(0,b.jsxs)(G.SheetContent,{className:"overflow-y-auto",children:[(0,b.jsx)(G.SheetHeader,{children:(0,b.jsx)(G.SheetTitle,{children:"Link a GitHub remote"})}),(0,b.jsxs)("form",{onSubmit:q,className:"mt-6 space-y-4",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Personal accounts on github.com only. GHES is not in scope for v1."}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:af,children:"Owner"}),(0,b.jsx)(o.Input,{value:h,onChange:a=>i(a.target.value),placeholder:"acme",autoFocus:!0})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:af,children:"Repository"}),(0,b.jsx)(o.Input,{value:j,onChange:a=>k(a.target.value),placeholder:"widgets"})]})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:af,children:"Account alias"}),(0,b.jsxs)("select",{value:l,onChange:a=>m(a.target.value),className:"h-9 w-full rounded-md border bg-background px-2 text-sm",children:[(0,b.jsx)("option",{value:"",children:"default"}),(g?.accounts??[]).map(a=>(0,b.jsx)("option",{value:a.alias,children:a.alias},a.alias))]})]}),n&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/40 bg-destructive/10 p-2 text-xs text-destructive",children:n}),(0,b.jsxs)("div",{className:"flex items-center justify-end gap-2 border-t pt-4",children:[(0,b.jsx)(f.Button,{type:"button",variant:"ghost",onClick:d,children:"Cancel"}),(0,b.jsx)(f.Button,{type:"submit",disabled:e.isPending,children:e.isPending?"Linking…":"Link"})]})]})]})}function an({repo:a,open:c,onClose:d}){return(0,b.jsx)(G.Sheet,{open:c,onOpenChange:a=>!a&&d(),children:c&&(0,b.jsx)(ao,{repo:a,onClose:d})})}function ao({repo:a,onClose:d}){let e=(0,K.useLinkLocal)(),[g,h]=(0,c.useState)(""),[i,j]=(0,c.useState)(null),k=async b=>{if(b.preventDefault(),j(null),!g.trim())return void j("Local path is required");try{await e.mutateAsync({id:a.id,localPath:g.trim()}),d()}catch(a){j(a instanceof Error?a.message:"Failed to link")}};return(0,b.jsxs)(G.SheetContent,{className:"overflow-y-auto",children:[(0,b.jsx)(G.SheetHeader,{children:(0,b.jsx)(G.SheetTitle,{children:"Link a local clone"})}),(0,b.jsxs)("form",{onSubmit:k,className:"mt-6 space-y-4",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Pick the directory of the local clone of this repository. The agent never inspects `.git/config` to suggest values — paths are user-supplied."}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:af,children:"Repository directory"}),(0,b.jsx)(ae.DirectoryPickerField,{value:g,onChange:h,title:"Choose local clone directory"})]}),i&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/40 bg-destructive/10 p-2 text-xs text-destructive",children:i}),(0,b.jsxs)("div",{className:"flex items-center justify-end gap-2 border-t pt-4",children:[(0,b.jsx)(f.Button,{type:"button",variant:"ghost",onClick:d,children:"Cancel"}),(0,b.jsx)(f.Button,{type:"submit",disabled:e.isPending,children:e.isPending?"Linking…":"Link"})]})]})]})}let ap="text-[11px] font-medium uppercase tracking-wider text-muted-foreground",aq="text-[11px] leading-relaxed text-muted-foreground",ar="text-[11px] font-medium uppercase tracking-wider text-muted-foreground",as=[{value:"both",label:"GitHub + local clone",description:"Recommended. Agent watches GitHub activity AND reads files from your local clone."},{value:"github",label:"GitHub only",description:"Agent watches PRs, issues, and commits on GitHub. No access to source files."},{value:"local",label:"Local folder only",description:"Agent watches a folder on this Mac. No GitHub remote — e.g. a private working directory."}],at=[{value:"repo-only",label:"Just track activity",description:"Lightweight. Agent logs commits, PRs, and issues. No long-form project document."},{value:"project",label:"Treat as a project",description:"Agent maintains a rich project document with goals, decisions, and milestones in your context notes."}],au=["work","personal","research","client","other"];function av({open:a,onClose:c}){return(0,b.jsx)(G.Sheet,{open:a,onOpenChange:a=>!a&&c(),children:a&&(0,b.jsx)(aw,{onClose:c})})}function aw({onClose:a}){let d=(0,K.useCreateRepository)(),{data:e}=v(),[g,h]=(0,c.useState)("both"),[i,j]=(0,c.useState)(""),[k,l]=(0,c.useState)(""),[m,n]=(0,c.useState)(""),[p,q]=(0,c.useState)(""),[r,s]=(0,c.useState)(!1),[t,u]=(0,c.useState)(""),[w,x]=(0,c.useState)("repo-only"),[y,z]=(0,c.useState)("other"),[A,B]=(0,c.useState)(null),C="github"===g||"both"===g&&!r,D="local"===g||"both"===g,E=async b=>{b.preventDefault(),B(null);let c={classification:w,category:y,displayName:t.trim()?t.trim():void 0};if(C){if(!i.trim()||!k.trim())return void B("GitHub owner and repository are required.");c.githubOwner=i.trim(),c.githubRepo=k.trim(),m.trim()&&(c.githubAccount=m.trim())}if(D){if(!p.trim())return void B("Local clone path is required.");c.localPath=p.trim()}"local"===g&&r&&(c.localOnly=!0);try{await d.mutateAsync(c),a()}catch(a){B(a instanceof Error?a.message:"Failed to add repository")}},F=e?.accounts??[];return(0,b.jsxs)(G.SheetContent,{className:"overflow-y-auto",children:[(0,b.jsxs)(G.SheetHeader,{children:[(0,b.jsx)(G.SheetTitle,{children:"Add repository"}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Tell the agent about a code repository to watch. It will track activity (commits, PRs, issues) and optionally maintain a project document in your context notes."})]}),(0,b.jsxs)("form",{onSubmit:E,className:"mt-6 space-y-6",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:ap,children:"Where does this repository live?"}),(0,b.jsx)("div",{className:"grid gap-2",children:as.map(a=>{let c=g===a.value;return(0,b.jsxs)("button",{type:"button",onClick:()=>h(a.value),className:"rounded-md border px-3 py-2 text-left transition-colors "+(c?"border-primary bg-primary/10":"border-border hover:bg-accent"),children:[(0,b.jsx)("div",{className:"text-sm font-medium "+(c?"text-primary":"text-foreground"),children:a.label}),(0,b.jsx)("div",{className:aq+" mt-0.5",children:a.description})]},a.value)})})]}),C&&(0,b.jsxs)("div",{className:"space-y-3 rounded-md border bg-background/40 p-3",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("p",{className:ar,children:"GitHub remote"}),(0,b.jsxs)("p",{className:aq,children:["From the GitHub URL"," ",(0,b.jsx)("code",{className:"rounded bg-muted px-1 py-px text-[10px]",children:"github.com/acme/widgets"}),", the owner is ",(0,b.jsx)("strong",{children:"acme"})," and the repository is"," ",(0,b.jsx)("strong",{children:"widgets"}),"."]})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:ap,children:"Owner (user or org)"}),(0,b.jsx)(o.Input,{value:i,onChange:a=>j(a.target.value),placeholder:"acme"})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:ap,children:"Repository name"}),(0,b.jsx)(o.Input,{value:k,onChange:a=>l(a.target.value),placeholder:"widgets"})]})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:ap,children:"GitHub account to use"}),(0,b.jsxs)("select",{value:m,onChange:a=>n(a.target.value),className:"h-9 w-full rounded-md border bg-background px-2 text-sm",children:[(0,b.jsx)("option",{value:"",children:"default"}),F.map(a=>(0,b.jsx)("option",{value:a.alias,children:a.alias},a.alias))]}),(0,b.jsxs)("p",{className:aq,children:["Which set of GitHub credentials the agent should use to read this repo."," ",0===F.length?"Only the default account is set up — manage more under Connections → GitHub accounts.":"Manage accounts under Connections → GitHub accounts."]})]})]}),D&&(0,b.jsxs)("div",{className:"space-y-3 rounded-md border bg-background/40 p-3",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("p",{className:ar,children:"Local clone"}),(0,b.jsx)("p",{className:aq,children:"Folder on this Mac where the repo is checked out. The agent reads source files, commits, and uncommitted changes from here."})]}),(0,b.jsx)(ae.DirectoryPickerField,{value:p,onChange:q,title:"Choose local clone directory"}),"local"===g&&(0,b.jsxs)("label",{className:"flex items-start gap-2 text-xs text-muted-foreground",children:[(0,b.jsx)("input",{type:"checkbox",checked:r,onChange:a=>s(a.target.checked),className:"mt-0.5"}),(0,b.jsx)("span",{children:"This folder is not (and will never be) backed by a GitHub remote. Skip GitHub linking permanently."})]})]}),(0,b.jsxs)("div",{className:"space-y-3 rounded-md border bg-background/40 p-3",children:[(0,b.jsx)("p",{className:ar,children:"Naming & tracking"}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:ap,children:"Display name (optional)"}),(0,b.jsx)(o.Input,{value:t,onChange:a=>u(a.target.value),placeholder:"Leave blank to use the repo or folder name"}),(0,b.jsx)("p",{className:aq,children:"How this repository appears in the dashboard and in your context notes."})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:ap,children:"How should the agent treat this?"}),(0,b.jsx)("div",{className:"grid gap-2",children:at.map(a=>{let c=w===a.value;return(0,b.jsxs)("button",{type:"button",onClick:()=>x(a.value),className:"rounded-md border px-3 py-2 text-left transition-colors "+(c?"border-primary bg-primary/10":"border-border hover:bg-accent"),children:[(0,b.jsx)("div",{className:"text-sm font-medium "+(c?"text-primary":"text-foreground"),children:a.label}),(0,b.jsx)("div",{className:aq+" mt-0.5",children:a.description})]},a.value)})})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:ap,children:"Category (tag)"}),(0,b.jsx)("select",{value:y,onChange:a=>z(a.target.value),className:"h-9 w-full rounded-md border bg-background px-2 text-sm",children:au.map(a=>(0,b.jsx)("option",{value:a,children:a},a))}),(0,b.jsx)("p",{className:aq,children:"Used to group repositories in the dashboard. Pick whichever feels right."})]})]}),A&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/40 bg-destructive/10 p-2 text-xs text-destructive",children:A}),(0,b.jsxs)("div",{className:"flex items-center justify-end gap-2 border-t pt-4",children:[(0,b.jsx)(f.Button,{type:"button",variant:"ghost",onClick:a,children:"Cancel"}),(0,b.jsx)(f.Button,{type:"submit",disabled:d.isPending,children:d.isPending?"Adding…":"Add repository"})]})]})]})}var ax=a.i(40410);a.s(["default",0,function(){let a=(0,K.useRepositories)(),{data:j,isLoading:k}=(0,ax.useHealth)(),[l,m]=(0,c.useState)(!1),n=a.data?.repositories??[],o=n.length,p=n.filter(a=>a.githubOwner&&a.githubRepo).length,q=n.filter(a=>a.localPath).length,r=a.isLoading||k,s=!r&&(!a.data||!j);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(i.ConnectionsSectionHeader,{title:"Repositories",description:"Each repository links an optional GitHub remote with an optional local clone. Polling cadence, automation triggers, and daily git management live on the My Life › Git page.",healthy:+(o>0),total:1,actions:(0,b.jsxs)(f.Button,{onClick:()=>m(!0),children:[(0,b.jsx)(e.Plus,{className:"h-4 w-4"}),"Add repository"]})}),s&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"Daemon not connected. Start the daemon to manage repositories."}),!r&&(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(W.IntegrationCard,{integrationKey:"git"}),(0,b.jsx)(W.IntegrationCard,{integrationKey:"github"}),0===n.length?(0,b.jsx)(h.EmptyState,{icon:d.GitBranch,title:"No repositories registered",description:"Add a repository to start watching commits, polling GitHub events, and wiring per-repo triggers.",children:(0,b.jsxs)(f.Button,{className:"mt-4",onClick:()=>m(!0),children:[(0,b.jsx)(e.Plus,{className:"h-4 w-4"}),"Add your first repository"]})}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(g.Card,{className:"flex items-center justify-between text-xs text-muted-foreground",children:(0,b.jsxs)("span",{children:[o," repositor",1===o?"y":"ies"," ·"," ",p," with GitHub · ",q," with local clone"]})}),(0,b.jsx)("div",{className:"space-y-3",children:n.map(a=>(0,b.jsx)(ai,{repo:a},a.id))})]}),(0,b.jsx)(y,{}),(0,b.jsx)(N,{}),(0,b.jsx)(U,{}),(0,b.jsx)(V.ProcessModelCard,{processKey:"git.project.init",title:"Git Project Init Model",description:"Generates the initial overview MD when daily git management is first enabled for a repository."}),(0,b.jsx)(V.ProcessModelCard,{processKey:"git.project.update",title:"Git Project Update Model",description:"Runs the daily 24h scan that appends to journal MDs and curates overview sections."}),(0,b.jsx)(V.ProcessModelCard,{processKey:"git.project.retemplate",title:"Git Project Re-template Model",description:"One-shot session that re-conforms existing project documents to the current template body."})]}),(0,b.jsx)(av,{open:l,onClose:()=>m(!1)})]})}],21765)}];
2
2
 
3
3
  //# sourceMappingURL=packages_dashboard_src_app_connections_repositories_page_tsx_08y6paq._.js.map