@aitne/dashboard 0.1.4 → 0.1.6

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 (751) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +5 -1
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/cache/.tsbuildinfo +1 -1
  5. package/.next/diagnostics/route-bundle-stats.json +450 -356
  6. package/.next/fallback-build-manifest.json +3 -3
  7. package/.next/prerender-manifest.json +96 -0
  8. package/.next/routes-manifest.json +24 -0
  9. package/.next/server/app/_global-error.html +1 -1
  10. package/.next/server/app/_global-error.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  17. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/.next/server/app/_not-found.html +1 -1
  19. package/.next/server/app/_not-found.rsc +15 -15
  20. package/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  21. package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  22. package/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  23. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  24. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  25. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  26. package/.next/server/app/activity/page.js.nft.json +1 -1
  27. package/.next/server/app/activity/page_client-reference-manifest.js +1 -1
  28. package/.next/server/app/activity.html +1 -1
  29. package/.next/server/app/activity.rsc +19 -19
  30. package/.next/server/app/activity.segments/_full.segment.rsc +19 -19
  31. package/.next/server/app/activity.segments/_head.segment.rsc +4 -4
  32. package/.next/server/app/activity.segments/_index.segment.rsc +10 -10
  33. package/.next/server/app/activity.segments/_tree.segment.rsc +2 -2
  34. package/.next/server/app/activity.segments/activity/__PAGE__.segment.rsc +4 -4
  35. package/.next/server/app/activity.segments/activity.segment.rsc +4 -4
  36. package/.next/server/app/analytics/page.js.nft.json +1 -1
  37. package/.next/server/app/analytics/page_client-reference-manifest.js +1 -1
  38. package/.next/server/app/analytics.html +1 -1
  39. package/.next/server/app/analytics.rsc +19 -19
  40. package/.next/server/app/analytics.segments/_full.segment.rsc +19 -19
  41. package/.next/server/app/analytics.segments/_head.segment.rsc +4 -4
  42. package/.next/server/app/analytics.segments/_index.segment.rsc +10 -10
  43. package/.next/server/app/analytics.segments/_tree.segment.rsc +2 -2
  44. package/.next/server/app/analytics.segments/analytics/__PAGE__.segment.rsc +4 -4
  45. package/.next/server/app/analytics.segments/analytics.segment.rsc +4 -4
  46. package/.next/server/app/api/[...path]/route.js +1 -1
  47. package/.next/server/app/api/[...path]/route.js.nft.json +1 -1
  48. package/.next/server/app/chat/page.js.nft.json +1 -1
  49. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  50. package/.next/server/app/chat.html +1 -1
  51. package/.next/server/app/chat.rsc +17 -17
  52. package/.next/server/app/chat.segments/_full.segment.rsc +17 -17
  53. package/.next/server/app/chat.segments/_head.segment.rsc +4 -4
  54. package/.next/server/app/chat.segments/_index.segment.rsc +10 -10
  55. package/.next/server/app/chat.segments/_tree.segment.rsc +2 -2
  56. package/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +4 -4
  57. package/.next/server/app/chat.segments/chat.segment.rsc +3 -3
  58. package/.next/server/app/connections/calendar/page.js.nft.json +1 -1
  59. package/.next/server/app/connections/calendar/page_client-reference-manifest.js +1 -1
  60. package/.next/server/app/connections/calendar.html +1 -1
  61. package/.next/server/app/connections/calendar.rsc +18 -18
  62. package/.next/server/app/connections/calendar.segments/_full.segment.rsc +18 -18
  63. package/.next/server/app/connections/calendar.segments/_head.segment.rsc +4 -4
  64. package/.next/server/app/connections/calendar.segments/_index.segment.rsc +10 -10
  65. package/.next/server/app/connections/calendar.segments/_tree.segment.rsc +2 -2
  66. package/.next/server/app/connections/calendar.segments/connections/calendar/__PAGE__.segment.rsc +4 -4
  67. package/.next/server/app/connections/calendar.segments/connections/calendar.segment.rsc +3 -3
  68. package/.next/server/app/connections/calendar.segments/connections.segment.rsc +4 -4
  69. package/.next/server/app/connections/journal/page.js.nft.json +1 -1
  70. package/.next/server/app/connections/journal/page_client-reference-manifest.js +1 -1
  71. package/.next/server/app/connections/journal.html +1 -1
  72. package/.next/server/app/connections/journal.rsc +16 -16
  73. package/.next/server/app/connections/journal.segments/_full.segment.rsc +16 -16
  74. package/.next/server/app/connections/journal.segments/_head.segment.rsc +4 -4
  75. package/.next/server/app/connections/journal.segments/_index.segment.rsc +10 -10
  76. package/.next/server/app/connections/journal.segments/_tree.segment.rsc +2 -2
  77. package/.next/server/app/connections/journal.segments/connections/journal/__PAGE__.segment.rsc +2 -2
  78. package/.next/server/app/connections/journal.segments/connections/journal.segment.rsc +3 -3
  79. package/.next/server/app/connections/journal.segments/connections.segment.rsc +4 -4
  80. package/.next/server/app/connections/knowledge/page.js.nft.json +1 -1
  81. package/.next/server/app/connections/knowledge/page_client-reference-manifest.js +1 -1
  82. package/.next/server/app/connections/knowledge.html +1 -1
  83. package/.next/server/app/connections/knowledge.rsc +18 -18
  84. package/.next/server/app/connections/knowledge.segments/_full.segment.rsc +18 -18
  85. package/.next/server/app/connections/knowledge.segments/_head.segment.rsc +4 -4
  86. package/.next/server/app/connections/knowledge.segments/_index.segment.rsc +10 -10
  87. package/.next/server/app/connections/knowledge.segments/_tree.segment.rsc +2 -2
  88. package/.next/server/app/connections/knowledge.segments/connections/knowledge/__PAGE__.segment.rsc +4 -4
  89. package/.next/server/app/connections/knowledge.segments/connections/knowledge.segment.rsc +3 -3
  90. package/.next/server/app/connections/knowledge.segments/connections.segment.rsc +4 -4
  91. package/.next/server/app/connections/mail/page.js.nft.json +1 -1
  92. package/.next/server/app/connections/mail/page_client-reference-manifest.js +1 -1
  93. package/.next/server/app/connections/mail.html +1 -1
  94. package/.next/server/app/connections/mail.rsc +18 -18
  95. package/.next/server/app/connections/mail.segments/_full.segment.rsc +18 -18
  96. package/.next/server/app/connections/mail.segments/_head.segment.rsc +4 -4
  97. package/.next/server/app/connections/mail.segments/_index.segment.rsc +10 -10
  98. package/.next/server/app/connections/mail.segments/_tree.segment.rsc +2 -2
  99. package/.next/server/app/connections/mail.segments/connections/mail/__PAGE__.segment.rsc +4 -4
  100. package/.next/server/app/connections/mail.segments/connections/mail.segment.rsc +3 -3
  101. package/.next/server/app/connections/mail.segments/connections.segment.rsc +4 -4
  102. package/.next/server/app/connections/mcp/page.js.nft.json +1 -1
  103. package/.next/server/app/connections/mcp/page_client-reference-manifest.js +1 -1
  104. package/.next/server/app/connections/mcp.html +1 -1
  105. package/.next/server/app/connections/mcp.rsc +18 -18
  106. package/.next/server/app/connections/mcp.segments/_full.segment.rsc +18 -18
  107. package/.next/server/app/connections/mcp.segments/_head.segment.rsc +4 -4
  108. package/.next/server/app/connections/mcp.segments/_index.segment.rsc +10 -10
  109. package/.next/server/app/connections/mcp.segments/_tree.segment.rsc +2 -2
  110. package/.next/server/app/connections/mcp.segments/connections/mcp/__PAGE__.segment.rsc +4 -4
  111. package/.next/server/app/connections/mcp.segments/connections/mcp.segment.rsc +3 -3
  112. package/.next/server/app/connections/mcp.segments/connections.segment.rsc +4 -4
  113. package/.next/server/app/connections/messaging/page.js.nft.json +1 -1
  114. package/.next/server/app/connections/messaging/page_client-reference-manifest.js +1 -1
  115. package/.next/server/app/connections/messaging.html +1 -1
  116. package/.next/server/app/connections/messaging.rsc +18 -18
  117. package/.next/server/app/connections/messaging.segments/_full.segment.rsc +18 -18
  118. package/.next/server/app/connections/messaging.segments/_head.segment.rsc +4 -4
  119. package/.next/server/app/connections/messaging.segments/_index.segment.rsc +10 -10
  120. package/.next/server/app/connections/messaging.segments/_tree.segment.rsc +2 -2
  121. package/.next/server/app/connections/messaging.segments/connections/messaging/__PAGE__.segment.rsc +4 -4
  122. package/.next/server/app/connections/messaging.segments/connections/messaging.segment.rsc +3 -3
  123. package/.next/server/app/connections/messaging.segments/connections.segment.rsc +4 -4
  124. package/.next/server/app/connections/page.js.nft.json +1 -1
  125. package/.next/server/app/connections/page_client-reference-manifest.js +1 -1
  126. package/.next/server/app/connections/repositories/page.js.nft.json +1 -1
  127. package/.next/server/app/connections/repositories/page_client-reference-manifest.js +1 -1
  128. package/.next/server/app/connections/repositories.html +1 -1
  129. package/.next/server/app/connections/repositories.rsc +18 -18
  130. package/.next/server/app/connections/repositories.segments/_full.segment.rsc +18 -18
  131. package/.next/server/app/connections/repositories.segments/_head.segment.rsc +4 -4
  132. package/.next/server/app/connections/repositories.segments/_index.segment.rsc +10 -10
  133. package/.next/server/app/connections/repositories.segments/_tree.segment.rsc +2 -2
  134. package/.next/server/app/connections/repositories.segments/connections/repositories/__PAGE__.segment.rsc +4 -4
  135. package/.next/server/app/connections/repositories.segments/connections/repositories.segment.rsc +3 -3
  136. package/.next/server/app/connections/repositories.segments/connections.segment.rsc +4 -4
  137. package/.next/server/app/connections/routines/page.js.nft.json +1 -1
  138. package/.next/server/app/connections/routines/page_client-reference-manifest.js +1 -1
  139. package/.next/server/app/connections/routines.html +1 -1
  140. package/.next/server/app/connections/routines.rsc +16 -16
  141. package/.next/server/app/connections/routines.segments/_full.segment.rsc +16 -16
  142. package/.next/server/app/connections/routines.segments/_head.segment.rsc +4 -4
  143. package/.next/server/app/connections/routines.segments/_index.segment.rsc +10 -10
  144. package/.next/server/app/connections/routines.segments/_tree.segment.rsc +2 -2
  145. package/.next/server/app/connections/routines.segments/connections/routines/__PAGE__.segment.rsc +2 -2
  146. package/.next/server/app/connections/routines.segments/connections/routines.segment.rsc +3 -3
  147. package/.next/server/app/connections/routines.segments/connections.segment.rsc +4 -4
  148. package/.next/server/app/connections.html +1 -1
  149. package/.next/server/app/connections.rsc +16 -16
  150. package/.next/server/app/connections.segments/_full.segment.rsc +16 -16
  151. package/.next/server/app/connections.segments/_head.segment.rsc +4 -4
  152. package/.next/server/app/connections.segments/_index.segment.rsc +10 -10
  153. package/.next/server/app/connections.segments/_tree.segment.rsc +2 -2
  154. package/.next/server/app/connections.segments/connections/__PAGE__.segment.rsc +2 -2
  155. package/.next/server/app/connections.segments/connections.segment.rsc +4 -4
  156. package/.next/server/app/conversations/[id]/page.js.nft.json +1 -1
  157. package/.next/server/app/conversations/[id]/page_client-reference-manifest.js +1 -1
  158. package/.next/server/app/conversations/page.js.nft.json +1 -1
  159. package/.next/server/app/conversations/page_client-reference-manifest.js +1 -1
  160. package/.next/server/app/conversations.html +1 -1
  161. package/.next/server/app/conversations.rsc +15 -15
  162. package/.next/server/app/conversations.segments/_full.segment.rsc +15 -15
  163. package/.next/server/app/conversations.segments/_head.segment.rsc +4 -4
  164. package/.next/server/app/conversations.segments/_index.segment.rsc +10 -10
  165. package/.next/server/app/conversations.segments/_tree.segment.rsc +2 -2
  166. package/.next/server/app/conversations.segments/conversations/__PAGE__.segment.rsc +2 -2
  167. package/.next/server/app/conversations.segments/conversations.segment.rsc +3 -3
  168. package/.next/server/app/docs/[[...slug]]/page.js.nft.json +1 -1
  169. package/.next/server/app/docs/[[...slug]]/page_client-reference-manifest.js +1 -1
  170. package/.next/server/app/finance/page.js.nft.json +1 -1
  171. package/.next/server/app/finance/page_client-reference-manifest.js +1 -1
  172. package/.next/server/app/finance.html +1 -1
  173. package/.next/server/app/finance.rsc +17 -17
  174. package/.next/server/app/finance.segments/_full.segment.rsc +17 -17
  175. package/.next/server/app/finance.segments/_head.segment.rsc +4 -4
  176. package/.next/server/app/finance.segments/_index.segment.rsc +10 -10
  177. package/.next/server/app/finance.segments/_tree.segment.rsc +2 -2
  178. package/.next/server/app/finance.segments/finance/__PAGE__.segment.rsc +4 -4
  179. package/.next/server/app/finance.segments/finance.segment.rsc +3 -3
  180. package/.next/server/app/git/page.js.nft.json +1 -1
  181. package/.next/server/app/git/page_client-reference-manifest.js +1 -1
  182. package/.next/server/app/git.html +1 -1
  183. package/.next/server/app/git.rsc +17 -17
  184. package/.next/server/app/git.segments/_full.segment.rsc +17 -17
  185. package/.next/server/app/git.segments/_head.segment.rsc +4 -4
  186. package/.next/server/app/git.segments/_index.segment.rsc +10 -10
  187. package/.next/server/app/git.segments/_tree.segment.rsc +2 -2
  188. package/.next/server/app/git.segments/git/__PAGE__.segment.rsc +4 -4
  189. package/.next/server/app/git.segments/git.segment.rsc +3 -3
  190. package/.next/server/app/health/page.js.nft.json +1 -1
  191. package/.next/server/app/health/page_client-reference-manifest.js +1 -1
  192. package/.next/server/app/health.html +1 -1
  193. package/.next/server/app/health.rsc +17 -17
  194. package/.next/server/app/health.segments/_full.segment.rsc +17 -17
  195. package/.next/server/app/health.segments/_head.segment.rsc +4 -4
  196. package/.next/server/app/health.segments/_index.segment.rsc +10 -10
  197. package/.next/server/app/health.segments/_tree.segment.rsc +2 -2
  198. package/.next/server/app/health.segments/health/__PAGE__.segment.rsc +4 -4
  199. package/.next/server/app/health.segments/health.segment.rsc +3 -3
  200. package/.next/server/app/index.html +1 -1
  201. package/.next/server/app/index.rsc +17 -17
  202. package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  203. package/.next/server/app/index.segments/_full.segment.rsc +17 -17
  204. package/.next/server/app/index.segments/_head.segment.rsc +4 -4
  205. package/.next/server/app/index.segments/_index.segment.rsc +10 -10
  206. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  207. package/.next/server/app/knowledge/page.js.nft.json +1 -1
  208. package/.next/server/app/knowledge/page_client-reference-manifest.js +1 -1
  209. package/.next/server/app/knowledge.html +1 -1
  210. package/.next/server/app/knowledge.rsc +18 -18
  211. package/.next/server/app/knowledge.segments/_full.segment.rsc +18 -18
  212. package/.next/server/app/knowledge.segments/_head.segment.rsc +4 -4
  213. package/.next/server/app/knowledge.segments/_index.segment.rsc +10 -10
  214. package/.next/server/app/knowledge.segments/_tree.segment.rsc +2 -2
  215. package/.next/server/app/knowledge.segments/knowledge/__PAGE__.segment.rsc +4 -4
  216. package/.next/server/app/knowledge.segments/knowledge.segment.rsc +4 -4
  217. package/.next/server/app/page.js.nft.json +1 -1
  218. package/.next/server/app/page_client-reference-manifest.js +1 -1
  219. package/.next/server/app/reading/page.js.nft.json +1 -1
  220. package/.next/server/app/reading/page_client-reference-manifest.js +1 -1
  221. package/.next/server/app/reading.html +1 -1
  222. package/.next/server/app/reading.rsc +17 -17
  223. package/.next/server/app/reading.segments/_full.segment.rsc +17 -17
  224. package/.next/server/app/reading.segments/_head.segment.rsc +4 -4
  225. package/.next/server/app/reading.segments/_index.segment.rsc +10 -10
  226. package/.next/server/app/reading.segments/_tree.segment.rsc +2 -2
  227. package/.next/server/app/reading.segments/reading/__PAGE__.segment.rsc +4 -4
  228. package/.next/server/app/reading.segments/reading.segment.rsc +3 -3
  229. package/.next/server/app/schedule/page.js.nft.json +1 -1
  230. package/.next/server/app/schedule/page_client-reference-manifest.js +1 -1
  231. package/.next/server/app/schedule.html +1 -1
  232. package/.next/server/app/schedule.rsc +17 -17
  233. package/.next/server/app/schedule.segments/_full.segment.rsc +17 -17
  234. package/.next/server/app/schedule.segments/_head.segment.rsc +4 -4
  235. package/.next/server/app/schedule.segments/_index.segment.rsc +10 -10
  236. package/.next/server/app/schedule.segments/_tree.segment.rsc +2 -2
  237. package/.next/server/app/schedule.segments/schedule/__PAGE__.segment.rsc +4 -4
  238. package/.next/server/app/schedule.segments/schedule.segment.rsc +3 -3
  239. package/.next/server/app/settings/advanced/page.js.nft.json +1 -1
  240. package/.next/server/app/settings/advanced/page_client-reference-manifest.js +1 -1
  241. package/.next/server/app/settings/advanced.html +1 -1
  242. package/.next/server/app/settings/advanced.rsc +18 -18
  243. package/.next/server/app/settings/advanced.segments/_full.segment.rsc +18 -18
  244. package/.next/server/app/settings/advanced.segments/_head.segment.rsc +4 -4
  245. package/.next/server/app/settings/advanced.segments/_index.segment.rsc +10 -10
  246. package/.next/server/app/settings/advanced.segments/_tree.segment.rsc +2 -2
  247. package/.next/server/app/settings/advanced.segments/settings/advanced/__PAGE__.segment.rsc +4 -4
  248. package/.next/server/app/settings/advanced.segments/settings/advanced.segment.rsc +3 -3
  249. package/.next/server/app/settings/advanced.segments/settings.segment.rsc +4 -4
  250. package/.next/server/app/settings/backends/page.js.nft.json +1 -1
  251. package/.next/server/app/settings/backends/page_client-reference-manifest.js +1 -1
  252. package/.next/server/app/settings/backends.html +1 -1
  253. package/.next/server/app/settings/backends.rsc +16 -16
  254. package/.next/server/app/settings/backends.segments/_full.segment.rsc +16 -16
  255. package/.next/server/app/settings/backends.segments/_head.segment.rsc +4 -4
  256. package/.next/server/app/settings/backends.segments/_index.segment.rsc +10 -10
  257. package/.next/server/app/settings/backends.segments/_tree.segment.rsc +2 -2
  258. package/.next/server/app/settings/backends.segments/settings/backends/__PAGE__.segment.rsc +2 -2
  259. package/.next/server/app/settings/backends.segments/settings/backends.segment.rsc +3 -3
  260. package/.next/server/app/settings/backends.segments/settings.segment.rsc +4 -4
  261. package/.next/server/app/settings/commands/page.js.nft.json +1 -1
  262. package/.next/server/app/settings/commands/page_client-reference-manifest.js +1 -1
  263. package/.next/server/app/settings/commands.html +1 -1
  264. package/.next/server/app/settings/commands.rsc +18 -18
  265. package/.next/server/app/settings/commands.segments/_full.segment.rsc +18 -18
  266. package/.next/server/app/settings/commands.segments/_head.segment.rsc +4 -4
  267. package/.next/server/app/settings/commands.segments/_index.segment.rsc +10 -10
  268. package/.next/server/app/settings/commands.segments/_tree.segment.rsc +2 -2
  269. package/.next/server/app/settings/commands.segments/settings/commands/__PAGE__.segment.rsc +4 -4
  270. package/.next/server/app/settings/commands.segments/settings/commands.segment.rsc +3 -3
  271. package/.next/server/app/settings/commands.segments/settings.segment.rsc +4 -4
  272. package/.next/server/app/settings/connections/page.js.nft.json +1 -1
  273. package/.next/server/app/settings/connections/page_client-reference-manifest.js +1 -1
  274. package/.next/server/app/settings/connections.html +1 -1
  275. package/.next/server/app/settings/connections.rsc +16 -16
  276. package/.next/server/app/settings/connections.segments/_full.segment.rsc +16 -16
  277. package/.next/server/app/settings/connections.segments/_head.segment.rsc +4 -4
  278. package/.next/server/app/settings/connections.segments/_index.segment.rsc +10 -10
  279. package/.next/server/app/settings/connections.segments/_tree.segment.rsc +2 -2
  280. package/.next/server/app/settings/connections.segments/settings/connections/__PAGE__.segment.rsc +2 -2
  281. package/.next/server/app/settings/connections.segments/settings/connections.segment.rsc +3 -3
  282. package/.next/server/app/settings/connections.segments/settings.segment.rsc +4 -4
  283. package/.next/server/app/settings/journal/page.js.nft.json +1 -1
  284. package/.next/server/app/settings/journal/page_client-reference-manifest.js +1 -1
  285. package/.next/server/app/settings/journal.html +1 -1
  286. package/.next/server/app/settings/journal.rsc +18 -18
  287. package/.next/server/app/settings/journal.segments/_full.segment.rsc +18 -18
  288. package/.next/server/app/settings/journal.segments/_head.segment.rsc +4 -4
  289. package/.next/server/app/settings/journal.segments/_index.segment.rsc +10 -10
  290. package/.next/server/app/settings/journal.segments/_tree.segment.rsc +2 -2
  291. package/.next/server/app/settings/journal.segments/settings/journal/__PAGE__.segment.rsc +4 -4
  292. package/.next/server/app/settings/journal.segments/settings/journal.segment.rsc +3 -3
  293. package/.next/server/app/settings/journal.segments/settings.segment.rsc +4 -4
  294. package/.next/server/app/settings/management/page.js.nft.json +1 -1
  295. package/.next/server/app/settings/management/page_client-reference-manifest.js +1 -1
  296. package/.next/server/app/settings/management.html +1 -1
  297. package/.next/server/app/settings/management.rsc +18 -18
  298. package/.next/server/app/settings/management.segments/_full.segment.rsc +18 -18
  299. package/.next/server/app/settings/management.segments/_head.segment.rsc +4 -4
  300. package/.next/server/app/settings/management.segments/_index.segment.rsc +10 -10
  301. package/.next/server/app/settings/management.segments/_tree.segment.rsc +2 -2
  302. package/.next/server/app/settings/management.segments/settings/management/__PAGE__.segment.rsc +4 -4
  303. package/.next/server/app/settings/management.segments/settings/management.segment.rsc +3 -3
  304. package/.next/server/app/settings/management.segments/settings.segment.rsc +4 -4
  305. package/.next/server/app/settings/messaging/page.js.nft.json +1 -1
  306. package/.next/server/app/settings/messaging/page_client-reference-manifest.js +1 -1
  307. package/.next/server/app/settings/messaging.html +1 -1
  308. package/.next/server/app/settings/messaging.rsc +16 -16
  309. package/.next/server/app/settings/messaging.segments/_full.segment.rsc +16 -16
  310. package/.next/server/app/settings/messaging.segments/_head.segment.rsc +4 -4
  311. package/.next/server/app/settings/messaging.segments/_index.segment.rsc +10 -10
  312. package/.next/server/app/settings/messaging.segments/_tree.segment.rsc +2 -2
  313. package/.next/server/app/settings/messaging.segments/settings/messaging/__PAGE__.segment.rsc +2 -2
  314. package/.next/server/app/settings/messaging.segments/settings/messaging.segment.rsc +3 -3
  315. package/.next/server/app/settings/messaging.segments/settings.segment.rsc +4 -4
  316. package/.next/server/app/settings/models/page.js.nft.json +1 -1
  317. package/.next/server/app/settings/models/page_client-reference-manifest.js +1 -1
  318. package/.next/server/app/settings/models.html +1 -1
  319. package/.next/server/app/settings/models.rsc +18 -18
  320. package/.next/server/app/settings/models.segments/_full.segment.rsc +18 -18
  321. package/.next/server/app/settings/models.segments/_head.segment.rsc +4 -4
  322. package/.next/server/app/settings/models.segments/_index.segment.rsc +10 -10
  323. package/.next/server/app/settings/models.segments/_tree.segment.rsc +2 -2
  324. package/.next/server/app/settings/models.segments/settings/models/__PAGE__.segment.rsc +4 -4
  325. package/.next/server/app/settings/models.segments/settings/models.segment.rsc +3 -3
  326. package/.next/server/app/settings/models.segments/settings.segment.rsc +4 -4
  327. package/.next/server/app/settings/page.js.nft.json +1 -1
  328. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  329. package/.next/server/app/settings/processes/page.js.nft.json +1 -1
  330. package/.next/server/app/settings/processes/page_client-reference-manifest.js +1 -1
  331. package/.next/server/app/settings/processes.html +1 -1
  332. package/.next/server/app/settings/processes.rsc +16 -16
  333. package/.next/server/app/settings/processes.segments/_full.segment.rsc +16 -16
  334. package/.next/server/app/settings/processes.segments/_head.segment.rsc +4 -4
  335. package/.next/server/app/settings/processes.segments/_index.segment.rsc +10 -10
  336. package/.next/server/app/settings/processes.segments/_tree.segment.rsc +2 -2
  337. package/.next/server/app/settings/processes.segments/settings/processes/__PAGE__.segment.rsc +2 -2
  338. package/.next/server/app/settings/processes.segments/settings/processes.segment.rsc +3 -3
  339. package/.next/server/app/settings/processes.segments/settings.segment.rsc +4 -4
  340. package/.next/server/app/settings/routines/page.js.nft.json +1 -1
  341. package/.next/server/app/settings/routines/page_client-reference-manifest.js +1 -1
  342. package/.next/server/app/settings/routines.html +1 -1
  343. package/.next/server/app/settings/routines.rsc +18 -18
  344. package/.next/server/app/settings/routines.segments/_full.segment.rsc +18 -18
  345. package/.next/server/app/settings/routines.segments/_head.segment.rsc +4 -4
  346. package/.next/server/app/settings/routines.segments/_index.segment.rsc +10 -10
  347. package/.next/server/app/settings/routines.segments/_tree.segment.rsc +2 -2
  348. package/.next/server/app/settings/routines.segments/settings/routines/__PAGE__.segment.rsc +4 -4
  349. package/.next/server/app/settings/routines.segments/settings/routines.segment.rsc +3 -3
  350. package/.next/server/app/settings/routines.segments/settings.segment.rsc +4 -4
  351. package/.next/server/app/settings/schedule/page.js.nft.json +1 -1
  352. package/.next/server/app/settings/schedule/page_client-reference-manifest.js +1 -1
  353. package/.next/server/app/settings/schedule.html +1 -1
  354. package/.next/server/app/settings/schedule.rsc +18 -18
  355. package/.next/server/app/settings/schedule.segments/_full.segment.rsc +18 -18
  356. package/.next/server/app/settings/schedule.segments/_head.segment.rsc +4 -4
  357. package/.next/server/app/settings/schedule.segments/_index.segment.rsc +10 -10
  358. package/.next/server/app/settings/schedule.segments/_tree.segment.rsc +2 -2
  359. package/.next/server/app/settings/schedule.segments/settings/schedule/__PAGE__.segment.rsc +4 -4
  360. package/.next/server/app/settings/schedule.segments/settings/schedule.segment.rsc +3 -3
  361. package/.next/server/app/settings/schedule.segments/settings.segment.rsc +4 -4
  362. package/.next/server/app/settings/self-learning/page.js.nft.json +1 -1
  363. package/.next/server/app/settings/self-learning/page_client-reference-manifest.js +1 -1
  364. package/.next/server/app/settings/self-learning.html +1 -1
  365. package/.next/server/app/settings/self-learning.rsc +18 -18
  366. package/.next/server/app/settings/self-learning.segments/_full.segment.rsc +18 -18
  367. package/.next/server/app/settings/self-learning.segments/_head.segment.rsc +4 -4
  368. package/.next/server/app/settings/self-learning.segments/_index.segment.rsc +10 -10
  369. package/.next/server/app/settings/self-learning.segments/_tree.segment.rsc +2 -2
  370. package/.next/server/app/settings/self-learning.segments/settings/self-learning/__PAGE__.segment.rsc +4 -4
  371. package/.next/server/app/settings/self-learning.segments/settings/self-learning.segment.rsc +3 -3
  372. package/.next/server/app/settings/self-learning.segments/settings.segment.rsc +4 -4
  373. package/.next/server/app/settings/wiki/page/app-paths-manifest.json +3 -0
  374. package/.next/server/app/settings/wiki/page/build-manifest.json +18 -0
  375. package/.next/server/app/settings/wiki/page/next-font-manifest.json +6 -0
  376. package/.next/server/app/settings/wiki/page/react-loadable-manifest.json +8 -0
  377. package/.next/server/app/settings/wiki/page/server-reference-manifest.json +4 -0
  378. package/.next/server/app/settings/wiki/page.js +16 -0
  379. package/.next/server/app/settings/wiki/page.js.map +5 -0
  380. package/.next/server/app/settings/wiki/page.js.nft.json +1 -0
  381. package/.next/server/app/settings/wiki/page_client-reference-manifest.js +3 -0
  382. package/.next/server/app/settings/wiki/timeline/page/app-paths-manifest.json +3 -0
  383. package/.next/server/app/settings/wiki/timeline/page/build-manifest.json +18 -0
  384. package/.next/server/app/settings/wiki/timeline/page/next-font-manifest.json +6 -0
  385. package/.next/server/app/settings/wiki/timeline/page/react-loadable-manifest.json +8 -0
  386. package/.next/server/app/settings/wiki/timeline/page/server-reference-manifest.json +4 -0
  387. package/.next/server/app/settings/wiki/timeline/page.js +17 -0
  388. package/.next/server/app/settings/wiki/timeline/page.js.map +5 -0
  389. package/.next/server/app/settings/wiki/timeline/page.js.nft.json +1 -0
  390. package/.next/server/app/settings/wiki/timeline/page_client-reference-manifest.js +3 -0
  391. package/.next/server/app/settings/wiki/timeline.html +1 -0
  392. package/.next/server/app/settings/wiki/timeline.meta +17 -0
  393. package/.next/server/app/settings/wiki/timeline.rsc +24 -0
  394. package/.next/server/app/settings/wiki/timeline.segments/_full.segment.rsc +24 -0
  395. package/.next/server/app/settings/wiki/timeline.segments/_head.segment.rsc +6 -0
  396. package/.next/server/app/settings/wiki/timeline.segments/_index.segment.rsc +11 -0
  397. package/.next/server/app/settings/wiki/timeline.segments/_tree.segment.rsc +2 -0
  398. package/.next/server/app/settings/wiki/timeline.segments/settings/wiki/timeline/__PAGE__.segment.rsc +6 -0
  399. package/.next/server/app/settings/wiki/timeline.segments/settings/wiki/timeline.segment.rsc +5 -0
  400. package/.next/server/app/settings/wiki/timeline.segments/settings/wiki.segment.rsc +5 -0
  401. package/.next/server/app/settings/wiki/timeline.segments/settings.segment.rsc +5 -0
  402. package/.next/server/app/settings/wiki.html +1 -0
  403. package/.next/server/app/settings/wiki.meta +16 -0
  404. package/.next/server/app/settings/wiki.rsc +27 -0
  405. package/.next/server/app/settings/wiki.segments/_full.segment.rsc +27 -0
  406. package/.next/server/app/settings/wiki.segments/_head.segment.rsc +6 -0
  407. package/.next/server/app/settings/wiki.segments/_index.segment.rsc +11 -0
  408. package/.next/server/app/settings/wiki.segments/_tree.segment.rsc +2 -0
  409. package/.next/server/app/settings/wiki.segments/settings/wiki/__PAGE__.segment.rsc +9 -0
  410. package/.next/server/app/settings/wiki.segments/settings/wiki.segment.rsc +5 -0
  411. package/.next/server/app/settings/wiki.segments/settings.segment.rsc +5 -0
  412. package/.next/server/app/settings.html +1 -1
  413. package/.next/server/app/settings.rsc +18 -18
  414. package/.next/server/app/settings.segments/_full.segment.rsc +18 -18
  415. package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  416. package/.next/server/app/settings.segments/_index.segment.rsc +10 -10
  417. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  418. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  419. package/.next/server/app/settings.segments/settings.segment.rsc +4 -4
  420. package/.next/server/app/setup/page.js.nft.json +1 -1
  421. package/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  422. package/.next/server/app/setup.html +1 -1
  423. package/.next/server/app/setup.rsc +17 -17
  424. package/.next/server/app/setup.segments/_full.segment.rsc +17 -17
  425. package/.next/server/app/setup.segments/_head.segment.rsc +4 -4
  426. package/.next/server/app/setup.segments/_index.segment.rsc +10 -10
  427. package/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  428. package/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +4 -4
  429. package/.next/server/app/setup.segments/setup.segment.rsc +3 -3
  430. package/.next/server/app/trip/page.js.nft.json +1 -1
  431. package/.next/server/app/trip/page_client-reference-manifest.js +1 -1
  432. package/.next/server/app/trip.html +1 -1
  433. package/.next/server/app/trip.rsc +17 -17
  434. package/.next/server/app/trip.segments/_full.segment.rsc +17 -17
  435. package/.next/server/app/trip.segments/_head.segment.rsc +4 -4
  436. package/.next/server/app/trip.segments/_index.segment.rsc +10 -10
  437. package/.next/server/app/trip.segments/_tree.segment.rsc +2 -2
  438. package/.next/server/app/trip.segments/trip/__PAGE__.segment.rsc +4 -4
  439. package/.next/server/app/trip.segments/trip.segment.rsc +3 -3
  440. package/.next/server/app/wiki/page/app-paths-manifest.json +3 -0
  441. package/.next/server/app/wiki/page/build-manifest.json +18 -0
  442. package/.next/server/app/wiki/page/next-font-manifest.json +6 -0
  443. package/.next/server/app/wiki/page/react-loadable-manifest.json +8 -0
  444. package/.next/server/app/wiki/page/server-reference-manifest.json +4 -0
  445. package/.next/server/app/wiki/page.js +15 -0
  446. package/.next/server/app/wiki/page.js.map +5 -0
  447. package/.next/server/app/wiki/page.js.nft.json +1 -0
  448. package/.next/server/app/wiki/page_client-reference-manifest.js +3 -0
  449. package/.next/server/app/wiki/timeline/page/app-paths-manifest.json +3 -0
  450. package/.next/server/app/wiki/timeline/page/build-manifest.json +18 -0
  451. package/.next/server/app/wiki/timeline/page/next-font-manifest.json +6 -0
  452. package/.next/server/app/wiki/timeline/page/react-loadable-manifest.json +8 -0
  453. package/.next/server/app/wiki/timeline/page/server-reference-manifest.json +4 -0
  454. package/.next/server/app/wiki/timeline/page.js +15 -0
  455. package/.next/server/app/wiki/timeline/page.js.map +5 -0
  456. package/.next/server/app/wiki/timeline/page.js.nft.json +1 -0
  457. package/.next/server/app/wiki/timeline/page_client-reference-manifest.js +3 -0
  458. package/.next/server/app/wiki/timeline.html +1 -0
  459. package/.next/server/app/wiki/timeline.meta +16 -0
  460. package/.next/server/app/wiki/timeline.rsc +26 -0
  461. package/.next/server/app/wiki/timeline.segments/_full.segment.rsc +26 -0
  462. package/.next/server/app/wiki/timeline.segments/_head.segment.rsc +6 -0
  463. package/.next/server/app/wiki/timeline.segments/_index.segment.rsc +11 -0
  464. package/.next/server/app/wiki/timeline.segments/_tree.segment.rsc +2 -0
  465. package/.next/server/app/wiki/timeline.segments/wiki/timeline/__PAGE__.segment.rsc +9 -0
  466. package/.next/server/app/wiki/timeline.segments/wiki/timeline.segment.rsc +5 -0
  467. package/.next/server/app/wiki/timeline.segments/wiki.segment.rsc +5 -0
  468. package/.next/server/app/wiki.html +1 -0
  469. package/.next/server/app/wiki.meta +15 -0
  470. package/.next/server/app/wiki.rsc +26 -0
  471. package/.next/server/app/wiki.segments/_full.segment.rsc +26 -0
  472. package/.next/server/app/wiki.segments/_head.segment.rsc +6 -0
  473. package/.next/server/app/wiki.segments/_index.segment.rsc +11 -0
  474. package/.next/server/app/wiki.segments/_tree.segment.rsc +2 -0
  475. package/.next/server/app/wiki.segments/wiki/__PAGE__.segment.rsc +9 -0
  476. package/.next/server/app/wiki.segments/wiki.segment.rsc +5 -0
  477. package/.next/server/app-paths-manifest.json +5 -1
  478. package/.next/server/chunks/0z~i_next_dist_esm_build_templates_app-route_0o_o_hp.js +1 -1
  479. package/.next/server/chunks/0z~i_next_dist_esm_build_templates_app-route_0o_o_hp.js.map +1 -1
  480. package/.next/server/chunks/{[root-of-the-server]__00gp8gz._.js → [root-of-the-server]__01knfi.._.js} +1 -1
  481. package/.next/server/chunks/{[root-of-the-server]__0-0wgko._.js → [root-of-the-server]__08_s4yo._.js} +2 -2
  482. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_wiki_timeline_page_actions_0czqn6z.js +3 -0
  483. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_wiki_timeline_page_actions_0czqn6z.js.map +1 -0
  484. package/.next/server/chunks/ssr/0mzu_lucide-react_dist_esm_icons_zap_115-27i.js +3 -0
  485. package/.next/server/chunks/ssr/0mzu_lucide-react_dist_esm_icons_zap_115-27i.js.map +1 -0
  486. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0k3x-na.js +4 -0
  487. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0k3x-na.js.map +1 -0
  488. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0km22.v.js +4 -0
  489. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0km22.v.js.map +1 -0
  490. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0vui1gx.js +4 -0
  491. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0vui1gx.js.map +1 -0
  492. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_11h319t.js +4 -0
  493. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_11h319t.js.map +1 -0
  494. package/.next/server/chunks/ssr/[root-of-the-server]__007ymqm._.js +3 -0
  495. package/.next/server/chunks/ssr/[root-of-the-server]__007ymqm._.js.map +1 -0
  496. package/.next/server/chunks/ssr/[root-of-the-server]__00vjce2._.js +3 -0
  497. package/.next/server/chunks/ssr/[root-of-the-server]__00vjce2._.js.map +1 -0
  498. package/.next/server/chunks/ssr/[root-of-the-server]__07pkvm3._.js +3 -0
  499. package/.next/server/chunks/ssr/[root-of-the-server]__07pkvm3._.js.map +1 -0
  500. package/.next/server/chunks/ssr/[root-of-the-server]__0dfuz7_._.js +3 -0
  501. package/.next/server/chunks/ssr/[root-of-the-server]__0dfuz7_._.js.map +1 -0
  502. package/.next/server/chunks/ssr/[root-of-the-server]__117dw_l._.js +3 -0
  503. package/.next/server/chunks/ssr/[root-of-the-server]__117dw_l._.js.map +1 -0
  504. package/.next/server/chunks/ssr/_0-3uzu1._.js +3 -0
  505. package/.next/server/chunks/ssr/_0-3uzu1._.js.map +1 -0
  506. package/.next/server/chunks/ssr/_0-6jgyg._.js +3 -0
  507. package/.next/server/chunks/ssr/_0-6jgyg._.js.map +1 -0
  508. package/.next/server/chunks/ssr/_0-fv_sr._.js +1 -1
  509. package/.next/server/chunks/ssr/_0-fv_sr._.js.map +1 -1
  510. package/.next/server/chunks/ssr/_0.7pki~._.js +3 -0
  511. package/.next/server/chunks/ssr/_0.7pki~._.js.map +1 -0
  512. package/.next/server/chunks/ssr/_02s86rg._.js +3 -0
  513. package/.next/server/chunks/ssr/_02s86rg._.js.map +1 -0
  514. package/.next/server/chunks/ssr/_03bq.de._.js +3 -0
  515. package/.next/server/chunks/ssr/_03bq.de._.js.map +1 -0
  516. package/.next/server/chunks/ssr/_03u6ja0._.js +3 -0
  517. package/.next/server/chunks/ssr/_03u6ja0._.js.map +1 -0
  518. package/.next/server/chunks/ssr/_04-.z69._.js +3 -0
  519. package/.next/server/chunks/ssr/_04-.z69._.js.map +1 -0
  520. package/.next/server/chunks/ssr/_05rlac0._.js +3 -0
  521. package/.next/server/chunks/ssr/_05rlac0._.js.map +1 -0
  522. package/.next/server/chunks/ssr/_05xysbw._.js +3 -0
  523. package/.next/server/chunks/ssr/_05xysbw._.js.map +1 -0
  524. package/.next/server/chunks/ssr/_09e_66m._.js +3 -0
  525. package/.next/server/chunks/ssr/_09e_66m._.js.map +1 -0
  526. package/.next/server/chunks/ssr/_0_bnan9._.js +3 -0
  527. package/.next/server/chunks/ssr/_0_bnan9._.js.map +1 -0
  528. package/.next/server/chunks/ssr/_0b00io4._.js +3 -0
  529. package/.next/server/chunks/ssr/_0b00io4._.js.map +1 -0
  530. package/.next/server/chunks/ssr/_0es_2i2._.js +3 -0
  531. package/.next/server/chunks/ssr/_0es_2i2._.js.map +1 -0
  532. package/.next/server/chunks/ssr/_0g7_r5i._.js +3 -0
  533. package/.next/server/chunks/ssr/_0g7_r5i._.js.map +1 -0
  534. package/.next/server/chunks/ssr/_0hojxqy._.js +1 -1
  535. package/.next/server/chunks/ssr/_0hojxqy._.js.map +1 -1
  536. package/.next/server/chunks/ssr/_0ifb9jm._.js +3 -0
  537. package/.next/server/chunks/ssr/_0ifb9jm._.js.map +1 -0
  538. package/.next/server/chunks/ssr/_0jl_-u5._.js +3 -0
  539. package/.next/server/chunks/ssr/_0jl_-u5._.js.map +1 -0
  540. package/.next/server/chunks/ssr/_0lfuvjg._.js +3 -0
  541. package/.next/server/chunks/ssr/_0lfuvjg._.js.map +1 -0
  542. package/.next/server/chunks/ssr/{_0jm~wn-._.js → _0mp7n5i._.js} +2 -2
  543. package/.next/server/chunks/ssr/{_0jm~wn-._.js.map → _0mp7n5i._.js.map} +1 -1
  544. package/.next/server/chunks/ssr/_0powsoh._.js +3 -0
  545. package/.next/server/chunks/ssr/_0powsoh._.js.map +1 -0
  546. package/.next/server/chunks/ssr/_0q34y9l._.js +3 -0
  547. package/.next/server/chunks/ssr/_0q34y9l._.js.map +1 -0
  548. package/.next/server/chunks/ssr/_0q4rpi-._.js +5 -0
  549. package/.next/server/chunks/ssr/_0q4rpi-._.js.map +1 -0
  550. package/.next/server/chunks/ssr/_0rc-7d4._.js +3 -0
  551. package/.next/server/chunks/ssr/_0rc-7d4._.js.map +1 -0
  552. package/.next/server/chunks/ssr/_0tjsh16._.js +3 -0
  553. package/.next/server/chunks/ssr/_0tjsh16._.js.map +1 -0
  554. package/.next/server/chunks/ssr/_0tl98en._.js +1 -1
  555. package/.next/server/chunks/ssr/_0tl98en._.js.map +1 -1
  556. package/.next/server/chunks/ssr/{_0._ysx3._.js → _0v_6ros._.js} +2 -2
  557. package/.next/server/chunks/ssr/_0v_6ros._.js.map +1 -0
  558. package/.next/server/chunks/ssr/_0vncjim._.js +3 -0
  559. package/.next/server/chunks/ssr/_0vncjim._.js.map +1 -0
  560. package/.next/server/chunks/ssr/_0vx-jgf._.js +3 -0
  561. package/.next/server/chunks/ssr/_0vx-jgf._.js.map +1 -0
  562. package/.next/server/chunks/ssr/_0w1ez1p._.js +3 -0
  563. package/.next/server/chunks/ssr/_0w1ez1p._.js.map +1 -0
  564. package/.next/server/chunks/ssr/_0yl49yk._.js +3 -0
  565. package/.next/server/chunks/ssr/_0yl49yk._.js.map +1 -0
  566. package/.next/server/chunks/ssr/_0z1ah9x._.js +1 -1
  567. package/.next/server/chunks/ssr/_0z1ah9x._.js.map +1 -1
  568. package/.next/server/chunks/ssr/_0z9ikwn._.js +3 -0
  569. package/.next/server/chunks/ssr/_0z9ikwn._.js.map +1 -0
  570. package/.next/server/chunks/ssr/_0z_cp12._.js +3 -0
  571. package/.next/server/chunks/ssr/_0z_cp12._.js.map +1 -0
  572. package/.next/server/chunks/ssr/_10hvwg5._.js +3 -0
  573. package/.next/server/chunks/ssr/_10hvwg5._.js.map +1 -0
  574. package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_settings_wiki_page_actions_12d~w9l.js +3 -0
  575. package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_settings_wiki_page_actions_12d~w9l.js.map +1 -0
  576. package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_wiki_page_actions_026bi.d.js +3 -0
  577. package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_wiki_page_actions_026bi.d.js.map +1 -0
  578. package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_wiki_timeline_page_actions_06jb4gg.js +3 -0
  579. package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_wiki_timeline_page_actions_06jb4gg.js.map +1 -0
  580. package/.next/server/chunks/ssr/packages_dashboard_src_0bx940s._.js +3 -0
  581. package/.next/server/chunks/ssr/packages_dashboard_src_0bx940s._.js.map +1 -0
  582. package/.next/server/chunks/ssr/packages_dashboard_src_0fo7nqq._.js +3 -0
  583. package/.next/server/chunks/ssr/packages_dashboard_src_0fo7nqq._.js.map +1 -0
  584. package/.next/server/chunks/ssr/packages_dashboard_src_0uxs9-.._.js +1 -1
  585. package/.next/server/chunks/ssr/packages_dashboard_src_0uxs9-.._.js.map +1 -1
  586. package/.next/server/chunks/ssr/packages_dashboard_src_app_activity_page_tsx_08yep46._.js +1 -1
  587. package/.next/server/chunks/ssr/packages_dashboard_src_app_activity_page_tsx_08yep46._.js.map +1 -1
  588. package/.next/server/chunks/ssr/packages_dashboard_src_app_connections_repositories_page_tsx_08y6paq._.js +1 -1
  589. package/.next/server/chunks/ssr/packages_dashboard_src_app_connections_repositories_page_tsx_08y6paq._.js.map +1 -1
  590. package/.next/server/chunks/ssr/packages_dashboard_src_app_git_page_tsx_0ah19-6._.js +1 -1
  591. package/.next/server/chunks/ssr/packages_dashboard_src_app_git_page_tsx_0ah19-6._.js.map +1 -1
  592. package/.next/server/chunks/ssr/packages_dashboard_src_app_schedule_page_tsx_0znc404._.js +1 -1
  593. package/.next/server/chunks/ssr/packages_dashboard_src_app_schedule_page_tsx_0znc404._.js.map +1 -1
  594. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_models_page_tsx_0djsx88._.js +1 -1
  595. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_models_page_tsx_0djsx88._.js.map +1 -1
  596. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_schedule_page_tsx_0b8zr2l._.js +1 -1
  597. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_schedule_page_tsx_0b8zr2l._.js.map +1 -1
  598. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_wiki_page_tsx_0..1tkb._.js +3 -0
  599. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_wiki_page_tsx_0..1tkb._.js.map +1 -0
  600. package/.next/server/chunks/ssr/packages_dashboard_src_app_setup_page_tsx_06k3via._.js +1 -1
  601. package/.next/server/chunks/ssr/packages_dashboard_src_app_setup_page_tsx_06k3via._.js.map +1 -1
  602. package/.next/server/chunks/ssr/packages_dashboard_src_components_connections_slack-card_tsx_0mahejj._.js +1 -1
  603. package/.next/server/chunks/ssr/packages_dashboard_src_components_connections_slack-card_tsx_0mahejj._.js.map +1 -1
  604. package/.next/server/chunks/ssr/packages_dashboard_src_components_settings_backend-settings_tsx_0i-tp_u._.js +3 -0
  605. package/.next/server/chunks/ssr/packages_dashboard_src_components_settings_backend-settings_tsx_0i-tp_u._.js.map +1 -0
  606. package/.next/server/chunks/ssr/packages_shared_dist_index_0kuvow-.js +1 -1
  607. package/.next/server/chunks/ssr/packages_shared_dist_index_0kuvow-.js.map +1 -1
  608. package/.next/server/middleware/middleware-manifest.json +1 -1
  609. package/.next/server/middleware-build-manifest.js +3 -3
  610. package/.next/server/middleware-manifest.json +1 -1
  611. package/.next/server/pages/404.html +1 -1
  612. package/.next/server/pages/500.html +1 -1
  613. package/.next/static/chunks/01yix41q.0970.js +1 -0
  614. package/.next/static/chunks/02qjylw4yp63l.js +1 -0
  615. package/.next/static/chunks/06y2ddf5x9x_4.js +1 -0
  616. package/.next/static/chunks/{0ztl~44vjnpe1.js → 08ie9t4zn6n4-.js} +1 -1
  617. package/.next/static/chunks/091khs5zza4_4.js +1 -0
  618. package/.next/static/chunks/{0~_56pt8wsmeo.js → 0abhg-m1-acdb.js} +1 -1
  619. package/.next/static/chunks/0ae.1upy09t--.js +1 -0
  620. package/.next/static/chunks/0bvcd~k.vfro8.js +1 -0
  621. package/.next/static/chunks/{0g6.0r0i-wyeg.js → 0eqm47_oikj36.js} +1 -1
  622. package/.next/static/chunks/0fqugh~hv4my1.js +1 -0
  623. package/.next/static/chunks/0has04tc4mrik.js +1 -0
  624. package/.next/static/chunks/0huynm-qbj26k.js +1 -0
  625. package/.next/static/chunks/0ibq4zul6305p.js +1 -0
  626. package/.next/static/chunks/0jm_e6e6n~rdn.js +1 -0
  627. package/.next/static/chunks/0k0.4cksmybb2.js +1 -0
  628. package/.next/static/chunks/0l07yrtw3fxp5.js +1 -0
  629. package/.next/static/chunks/0nhqu-sq045x7.js +1 -0
  630. package/.next/static/chunks/0op3oc-if6n5-.js +3 -0
  631. package/.next/static/chunks/0p34n6.st3s~1.js +1 -0
  632. package/.next/static/chunks/0r8nosw42e2m9.js +1 -0
  633. package/.next/static/chunks/0shx3_mxukfhr.js +1 -0
  634. package/.next/static/chunks/0thm~t5g5adz1.js +1 -0
  635. package/.next/static/chunks/0thyr1cngc-j..css +1 -0
  636. package/.next/static/chunks/0ttdb_354lh4t.js +1 -0
  637. package/.next/static/chunks/0v..ut2v38yep.js +1 -0
  638. package/.next/static/chunks/{17npklzvg8-~3.js → 0vhj0k-zy6jhh.js} +1 -1
  639. package/.next/static/chunks/0wdx410~0~gmn.js +1 -0
  640. package/.next/static/chunks/0y3ptqa0bbi-h.js +1 -0
  641. package/.next/static/chunks/{0zbxi2grjtx.c.js → 0zx_~u_zxg_7e.js} +1 -1
  642. package/.next/static/chunks/{0f3kjzb~5zhc~.js → 10pq~97vgkzro.js} +1 -1
  643. package/.next/static/chunks/11hlk6.h1of0y.js +1 -0
  644. package/.next/static/chunks/13w_6v~nprp8j.js +11 -0
  645. package/.next/static/chunks/14-kkni6ecqaw.js +1 -0
  646. package/.next/static/chunks/{148a9fv~bo0gq.js → 1555iv~_t.1lp.js} +1 -1
  647. package/.next/static/chunks/{04bbme2th8s1_.js → 15ec5~pa1pv_z.js} +1 -1
  648. package/.next/static/chunks/15vc-857cdedi.js +1 -0
  649. package/.next/static/chunks/16zgco6hwlr-n.js +1 -0
  650. package/.next/types/routes.d.ts +5 -1
  651. package/.next/types/validator.ts +36 -0
  652. package/package.json +2 -2
  653. package/.next/server/chunks/ssr/[root-of-the-server]__02idks~._.js +0 -3
  654. package/.next/server/chunks/ssr/[root-of-the-server]__02idks~._.js.map +0 -1
  655. package/.next/server/chunks/ssr/_0-8__9s._.js +0 -3
  656. package/.next/server/chunks/ssr/_0-8__9s._.js.map +0 -1
  657. package/.next/server/chunks/ssr/_0._ysx3._.js.map +0 -1
  658. package/.next/server/chunks/ssr/_0.h-tj4._.js +0 -3
  659. package/.next/server/chunks/ssr/_0.h-tj4._.js.map +0 -1
  660. package/.next/server/chunks/ssr/_02g4o18._.js +0 -3
  661. package/.next/server/chunks/ssr/_02g4o18._.js.map +0 -1
  662. package/.next/server/chunks/ssr/_0463dg_._.js +0 -3
  663. package/.next/server/chunks/ssr/_0463dg_._.js.map +0 -1
  664. package/.next/server/chunks/ssr/_04a42pa._.js +0 -3
  665. package/.next/server/chunks/ssr/_04a42pa._.js.map +0 -1
  666. package/.next/server/chunks/ssr/_04kt9.8._.js +0 -3
  667. package/.next/server/chunks/ssr/_04kt9.8._.js.map +0 -1
  668. package/.next/server/chunks/ssr/_052zlig._.js +0 -3
  669. package/.next/server/chunks/ssr/_052zlig._.js.map +0 -1
  670. package/.next/server/chunks/ssr/_060itkv._.js +0 -3
  671. package/.next/server/chunks/ssr/_060itkv._.js.map +0 -1
  672. package/.next/server/chunks/ssr/_07p0n9g._.js +0 -3
  673. package/.next/server/chunks/ssr/_07p0n9g._.js.map +0 -1
  674. package/.next/server/chunks/ssr/_08mbdt1._.js +0 -3
  675. package/.next/server/chunks/ssr/_08mbdt1._.js.map +0 -1
  676. package/.next/server/chunks/ssr/_08r_qwd._.js +0 -3
  677. package/.next/server/chunks/ssr/_08r_qwd._.js.map +0 -1
  678. package/.next/server/chunks/ssr/_08xk3kp._.js +0 -3
  679. package/.next/server/chunks/ssr/_08xk3kp._.js.map +0 -1
  680. package/.next/server/chunks/ssr/_0938p.1._.js +0 -3
  681. package/.next/server/chunks/ssr/_0938p.1._.js.map +0 -1
  682. package/.next/server/chunks/ssr/_0afdsbz._.js +0 -3
  683. package/.next/server/chunks/ssr/_0afdsbz._.js.map +0 -1
  684. package/.next/server/chunks/ssr/_0ff5qav._.js +0 -3
  685. package/.next/server/chunks/ssr/_0ff5qav._.js.map +0 -1
  686. package/.next/server/chunks/ssr/_0gp8d.p._.js +0 -3
  687. package/.next/server/chunks/ssr/_0gp8d.p._.js.map +0 -1
  688. package/.next/server/chunks/ssr/_0k2j6-t._.js +0 -3
  689. package/.next/server/chunks/ssr/_0k2j6-t._.js.map +0 -1
  690. package/.next/server/chunks/ssr/_0mix09j._.js +0 -3
  691. package/.next/server/chunks/ssr/_0mix09j._.js.map +0 -1
  692. package/.next/server/chunks/ssr/_0mk7dqt._.js +0 -3
  693. package/.next/server/chunks/ssr/_0mk7dqt._.js.map +0 -1
  694. package/.next/server/chunks/ssr/_0n168uk._.js +0 -3
  695. package/.next/server/chunks/ssr/_0n168uk._.js.map +0 -1
  696. package/.next/server/chunks/ssr/_0nwg6lo._.js +0 -3
  697. package/.next/server/chunks/ssr/_0nwg6lo._.js.map +0 -1
  698. package/.next/server/chunks/ssr/_0pwd-nz._.js +0 -3
  699. package/.next/server/chunks/ssr/_0pwd-nz._.js.map +0 -1
  700. package/.next/server/chunks/ssr/_0rspzax._.js +0 -3
  701. package/.next/server/chunks/ssr/_0rspzax._.js.map +0 -1
  702. package/.next/server/chunks/ssr/_0t-2u_i._.js +0 -3
  703. package/.next/server/chunks/ssr/_0t-2u_i._.js.map +0 -1
  704. package/.next/server/chunks/ssr/_0vn5_62._.js +0 -5
  705. package/.next/server/chunks/ssr/_0vn5_62._.js.map +0 -1
  706. package/.next/server/chunks/ssr/_0yiz~s5._.js +0 -3
  707. package/.next/server/chunks/ssr/_0yiz~s5._.js.map +0 -1
  708. package/.next/server/chunks/ssr/_0~4ta0s._.js +0 -3
  709. package/.next/server/chunks/ssr/_0~4ta0s._.js.map +0 -1
  710. package/.next/server/chunks/ssr/_0~5r_8s._.js +0 -3
  711. package/.next/server/chunks/ssr/_0~5r_8s._.js.map +0 -1
  712. package/.next/server/chunks/ssr/_115_o9h._.js +0 -3
  713. package/.next/server/chunks/ssr/_115_o9h._.js.map +0 -1
  714. package/.next/server/chunks/ssr/_13mk_9n._.js +0 -3
  715. package/.next/server/chunks/ssr/_13mk_9n._.js.map +0 -1
  716. package/.next/server/chunks/ssr/packages_dashboard_src_07.4ogy._.js +0 -3
  717. package/.next/server/chunks/ssr/packages_dashboard_src_07.4ogy._.js.map +0 -1
  718. package/.next/static/chunks/00p2fat~wl7uz.js +0 -1
  719. package/.next/static/chunks/07aksg8x5r0d9.js +0 -1
  720. package/.next/static/chunks/082cjr-p4ubw7.js +0 -1
  721. package/.next/static/chunks/09hewwcw-ts34.js +0 -1
  722. package/.next/static/chunks/09j~fmfefj03i.js +0 -1
  723. package/.next/static/chunks/0adfy5uyh_8c8.js +0 -1
  724. package/.next/static/chunks/0agoryx~xvt31.js +0 -1
  725. package/.next/static/chunks/0aoci_z-c0ele.css +0 -1
  726. package/.next/static/chunks/0atsym5j2dgzw.js +0 -1
  727. package/.next/static/chunks/0b3tta7tnnbur.js +0 -1
  728. package/.next/static/chunks/0d02.lqlwe9a_.js +0 -1
  729. package/.next/static/chunks/0eqyosc.qae5n.js +0 -1
  730. package/.next/static/chunks/0kkrrex6qm68-.js +0 -1
  731. package/.next/static/chunks/0lfxqap3b6sar.js +0 -11
  732. package/.next/static/chunks/0ord2b6oqi.3g.js +0 -1
  733. package/.next/static/chunks/0rh-ee9ky1ybq.js +0 -1
  734. package/.next/static/chunks/0t5v~o90gn66f.js +0 -1
  735. package/.next/static/chunks/0vaymprggmdwi.js +0 -3
  736. package/.next/static/chunks/0x2vder5-rzy3.js +0 -1
  737. package/.next/static/chunks/0yk64vsbmwqd8.js +0 -1
  738. package/.next/static/chunks/0yvzj34_7s6kb.js +0 -1
  739. package/.next/static/chunks/104za._t2qmr8.js +0 -1
  740. package/.next/static/chunks/13pe2-ed6nel..js +0 -1
  741. package/.next/static/chunks/13zn61okwjlyn.js +0 -1
  742. package/.next/static/chunks/153hm0-366-at.js +0 -1
  743. package/.next/static/chunks/16k3_-6f7kx97.js +0 -1
  744. package/.next/static/chunks/18904zqns5ncn.js +0 -1
  745. package/.next/trace +0 -2
  746. package/.next/trace-build +0 -1
  747. /package/.next/server/chunks/{[root-of-the-server]__00gp8gz._.js.map → [root-of-the-server]__01knfi.._.js.map} +0 -0
  748. /package/.next/server/chunks/{[root-of-the-server]__0-0wgko._.js.map → [root-of-the-server]__08_s4yo._.js.map} +0 -0
  749. /package/.next/static/{CDXVH-99b-ZdHz0Rd9pr_ → lsV2FU1YUtwJPmeiim7tk}/_buildManifest.js +0 -0
  750. /package/.next/static/{CDXVH-99b-ZdHz0Rd9pr_ → lsV2FU1YUtwJPmeiim7tk}/_clientMiddlewareManifest.js +0 -0
  751. /package/.next/static/{CDXVH-99b-ZdHz0Rd9pr_ → lsV2FU1YUtwJPmeiim7tk}/_ssgManifest.js +0 -0
@@ -0,0 +1,3 @@
1
+ module.exports=[27727,a=>{"use strict";var b=a.i(39752),c=a.i(48558);a.s(["EmptyState",0,function({icon:a,title:d,description:e,className:f,children:g}){return(0,b.jsxs)("div",{className:(0,c.cn)("flex flex-col items-center justify-center py-16 text-muted-foreground",f),children:[(0,b.jsx)(a,{className:"mb-3 h-10 w-10 opacity-40"}),(0,b.jsx)("p",{className:"text-sm font-medium",children:d}),e&&(0,b.jsx)("p",{className:"mt-1 max-w-prose text-xs text-muted-foreground/70",children:e}),g]})}])},91534,a=>{"use strict";var b=a.i(39752),c=a.i(34542),d=a.i(11307),e=a.i(92241),f=a.i(21218),g=a.i(8212),h=a.i(55406),i=a.i(48558);a.s(["DirectoryPickerField",0,function({id:a,value:j,onChange:k,title:l,placeholder:m="Choose a folder...",defaultPath:n,disabled:o=!1,className:p,inputClassName:q,buttonLabel:r="Choose"}){let[s,t]=(0,c.useState)(!1),[u,v]=(0,c.useState)(null),w=async()=>{t(!0),v(null);try{let a=await (0,h.pickDirectoryFromDesktop)({title:l,defaultPath:j.trim()||n});a&&k(a)}catch(a){v(a instanceof Error?a.message:"Folder picker is unavailable.")}finally{t(!1)}};return(0,b.jsxs)("div",{className:(0,i.cn)("space-y-1",p),children:[(0,b.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row",children:[(0,b.jsx)(g.Input,{id:a,value:j,onChange:a=>{k(a.target.value),v(null)},placeholder:m,className:(0,i.cn)("font-mono text-sm",q),disabled:o||s}),(0,b.jsxs)(f.Button,{type:"button",variant:"outline",onClick:w,disabled:o||s,className:"shrink-0 gap-2",children:[s?(0,b.jsx)(e.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(d.FolderOpen,{className:"h-4 w-4"}),s?"Opening...":r]})]}),u&&(0,b.jsx)("p",{className:"text-xs text-destructive",children:u})]})}])},96336,a=>{"use strict";let b=(0,a.i(5423).default)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);a.s(["Trash2",0,b],96336)},43179,a=>{"use strict";let b=(0,a.i(5423).default)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);a.s(["Plus",0,b],43179)},54506,a=>{"use strict";let b=(0,a.i(5423).default)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);a.s(["Check",0,b],54506)},11307,a=>{"use strict";let b=(0,a.i(5423).default)("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);a.s(["FolderOpen",0,b],11307)},55406,a=>{"use strict";var b=a.i(59974);async function c({title:a,defaultPath:d}){let e=await b.api.post("/system/pick-directory",{title:a,...d?{defaultPath:d}:{}});if("selected"===e.status&&e.path)return e.path;if("cancelled"===e.status)return null;throw Error(e.message??"Folder picker is unavailable.")}a.s(["pickDirectoryFromDesktop",0,c])},70297,a=>{"use strict";let b=(0,a.i(5423).default)("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);a.s(["RotateCcw",0,b],70297)},86807,a=>{"use strict";var b=a.i(39752),c=a.i(48558);a.s(["ConnectionsSectionHeader",0,function({title:a,description:d,healthy:e,total:f,attention:g,actions:h}){let i=f>0&&e===f,j=f>0&&0===e;return(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("div",{className:"flex items-baseline justify-between gap-3",children:[(0,b.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:a}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[f>0&&(0,b.jsxs)("span",{className:(0,c.cn)("text-xs font-medium tabular-nums",i?"text-emerald-600 dark:text-emerald-400":j?"text-muted-foreground":"text-amber-600 dark:text-amber-400"),children:[e,"/",f," connected"]}),h]})]}),d&&(0,b.jsx)("p",{className:"max-w-3xl text-sm text-muted-foreground",children:d}),g&&(0,b.jsx)("p",{className:"text-xs text-amber-600 dark:text-amber-400",children:g})]})}])},95827,a=>{"use strict";var b=a.i(39752),c=a.i(7384),d=a.i(30400),e=a.i(48558);let f={connected:{variant:"green",label:"Connected"},configured:{variant:"amber",label:"Configured"},connecting:{variant:"amber",label:"Connecting…"},"needs-setup":{variant:"gray",label:"Not Configured"},error:{variant:"red",label:"Error"},disabled:{variant:"gray",label:"Disabled"}};a.s(["ConnectionCard",0,function({name:a,icon:g,status:h,error:i,metadata:j,children:k,className:l}){let m=f[h];return(0,b.jsxs)(d.Card,{tone:"connected"===h?"success":"error"===h?"error":"default",className:(0,e.cn)("relative",l),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:g}),(0,b.jsx)("h3",{className:"text-sm font-medium text-foreground",children:a})]}),(0,b.jsx)(c.Badge,{variant:m.variant,children:m.label})]}),i&&"connecting"!==h&&(0,b.jsx)("p",{className:"mb-2 text-xs text-red-600 dark:text-red-400",children:i}),j&&j.length>0&&(0,b.jsx)("div",{className:"mb-3 space-y-0.5",children:j.map(a=>(0,b.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:a.label}),(0,b.jsx)("span",{className:"text-foreground",children:a.value})]},a.label))}),k]})},"deriveConfiguredStatus",0,function(a){return a?"configured":"needs-setup"},"deriveIntegrationStatus",0,function(a){return a&&a.configured?a.error?"error":a.connected?"connected":"configured":"needs-setup"},"deriveMessagingStatus",0,function(a){return a&&"not_configured"!==a.runtimeState?"connecting"===a.runtimeState?"connecting":"error"===a.runtimeState?"error":"ok"===a.runtimeState?"connected":"configured":"needs-setup"},"messagingMetadata",0,function(a){if(a)return[{label:"Owner configured",value:a.ownerConfigured?"yes":"no"},{label:"Owner channel known",value:a.ownerChannelKnown?"yes":"no"},{label:"Reminder eligible",value:a.notificationEligible?"yes":"no"},{label:"Last inbound",value:a.lastInboundAt??"—"}]}])},50891,a=>{"use strict";let b=(0,a.i(5423).default)("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);a.s(["ShieldCheck",0,b],50891)},55140,a=>{"use strict";let b=(0,a.i(5423).default)("KeyRound",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);a.s(["KeyRound",0,b],55140)},40091,a=>{"use strict";let b={claude:"Claude Code",codex:"OpenAI Codex",gemini:"Gemini CLI"},c={claude:"Claude",codex:"Codex",gemini:"Gemini"},d={claude:"orange",codex:"pink",gemini:"blue"},e={"routine.morning_routine":"Morning Routine","routine.evening_review":"Evening Review","routine.weekly_review":"Weekly Review","routine.monthly_review":"Monthly Review","routine.hourly_check":"Hourly Check","routine.roadmap_refresh":"Roadmap Refresh","message.dm":"Direct Messages","message.mention":"Mentions","dashboard.chat":"Dashboard Chat","agent.task":"Scheduled Tasks","calendar.change":"Calendar Events",gmail_classify:"Gmail Classification","github.pull_request.review_requested":"GitHub Review Requests","github.assigned":"GitHub Assignments","github.security_alert":"GitHub Security Alerts","github.workflow_run.failed":"GitHub CI Failures","wiki.ingest_url":"Wiki URL Ingest","wiki.compile":"Wiki Compile","wiki.ask":"Wiki Ask"};function f(a){let b;if(!a)return[];try{b=JSON.parse(a)}catch{return[]}if(!b||"object"!=typeof b)return[];let c=[];for(let[a,d]of Object.entries(b))d&&"object"==typeof d&&c.push({modelId:a,inputTokens:"number"==typeof d.inputTokens?d.inputTokens:0,outputTokens:"number"==typeof d.outputTokens?d.outputTokens:0,costUsd:"number"==typeof d.costUsd?d.costUsd:0});return c.sort((a,b)=>b.costUsd-a.costUsd)}function g(a){if(!a)return null;let b=a.toLowerCase();return b.includes("claude")||b.includes("sonnet")||b.includes("opus")||b.includes("haiku")?"claude":b.includes("gemini")?"gemini":b.includes("gpt")||b.includes("codex")||b.includes("o3")||b.includes("o4")?"codex":null}a.s(["BACKEND_BADGE_VARIANTS",0,d,"BACKEND_LABELS",0,b,"BACKEND_PROVIDER_LABELS",0,{claude:"Claude (Anthropic)",codex:"ChatGPT (OpenAI)",gemini:"Gemini (Google)"},"BACKEND_PROVIDER_SHORT",0,{claude:"Claude",codex:"ChatGPT",gemini:"Gemini"},"BACKEND_WEB_SEARCH_DESCRIPTIONS",0,{claude:"Lets the agent call Anthropic's built-in WebSearch tool.",codex:"Lets the agent call OpenAI's web_search tool. Works in safe (sandbox) mode — the tool runs at OpenAI, not as a local shell command.",gemini:"Lets the agent call Gemini's google_web_search tool."},"detectBackendFromModel",0,g,"formatModelName",0,function(a){return a?a.replace(/^claude-/,"Claude ").replace(/^gpt-/,"GPT-").replace(/^gemini-/,"Gemini ").replace(/-/g," ").replace(/\bpreview\b/gi,"(preview)").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\bcodex\b/gi,"Codex").replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\s+/g," ").trim():"Not set"},"formatShortModelName",0,function(a){if(!a)return"unknown";if("opus"===a)return"Opus";if("sonnet"===a)return"Sonnet";let b=a.replace(/-\d{8,}$/,"").replace(/^claude-/,"").replace(/(\d+)-(\d+)(?![-\d])/g,"$1.$2").replace(/-/g," ");return a.startsWith("gpt-")&&(b=`GPT-${b.replace(/^gpt\s*/i,"")}`),a.startsWith("gemini-")&&(b=b.replace(/^gemini\s*/i,"Gemini ")),b.replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\s+/g," ").trim()},"getBackendLabel",0,function(a){return b[a]},"getBackendShortLabel",0,function(a){return c[a]},"getProcessGroup",0,function(a){return a.startsWith("wiki.")?"Wiki":a.startsWith("message.")||a.startsWith("dashboard.")?"Conversation":a.startsWith("routine.")?"Routines":a.startsWith("git.")||a.startsWith("github.")?"Git & GitHub":a.startsWith("calendar.")||"gmail_classify"===a?"Integrations":"Tasks"},"getProcessLabel",0,function(a){return e[a]??a},"modelBadgeVariant",0,function(a){if(!a)return"gray";let b=g(a);return b?d[b]:"gray"},"parseModelUsage",0,f,"pickDisplayModel",0,function(a,b){let c=f(b);return c.length>0&&c[0]?c[0].modelId:a??null}])},39293,a=>{"use strict";let b=(0,a.i(5423).default)("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);a.s(["RefreshCw",0,b],39293)},74794,a=>{"use strict";var b=a.i(62588),c=a.i(59974);a.s(["useBackends",0,function(a){return(0,b.useQuery)({queryKey:["backends"],queryFn:()=>c.api.get("/backends"),enabled:a?.enabled??!0,staleTime:6e4})}])},7037,a=>{"use strict";let b=(0,a.i(5423).default)("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);a.s(["Pencil",0,b],7037)},95024,a=>{"use strict";let b=(0,a.i(5423).default)("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);a.s(["Save",0,b],95024)},48033,a=>{"use strict";let b=(0,a.i(5423).default)("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);a.s(["Lock",0,b],48033)},7385,a=>{"use strict";let b=(0,a.i(5423).default)("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);a.s(["XCircle",0,b],7385)},95097,a=>{"use strict";var b=a.i(62588),c=a.i(59974);a.s(["useProcessConfig",0,function(a){return(0,b.useQuery)({queryKey:["process-config"],queryFn:()=>c.api.get("/process-config"),enabled:a?.enabled??!0,staleTime:6e4})}])},80196,a=>{"use strict";let b=(0,a.i(5423).default)("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);a.s(["Bot",0,b],80196)},33165,a=>{"use strict";var b=a.i(39752),c=a.i(34542),d=a.i(81130),e=a.i(80196),f=a.i(92241),g=a.i(7037),h=a.i(95024),i=a.i(7385),j=a.i(30400),k=a.i(21218),l=a.i(7384),m=a.i(29629),n=a.i(47696),o=a.i(59974),p=a.i(74794),q=a.i(95097),r=a.i(40091);a.s(["ProcessModelCard",0,function({processKey:a,title:s="AI Model",description:t}){let u=(0,d.useQueryClient)(),{data:v}=(0,p.useBackends)(),{data:w}=(0,q.useProcessConfig)(),[x,y]=(0,c.useState)(!1),[z,A]=(0,c.useState)(null),[B,C]=(0,c.useState)(null),[D,E]=(0,c.useState)(!1),[F,G]=(0,c.useState)(null),H=w?.configs.find(b=>b.processKey===a),I=new Map((v?.backends??[]).map(a=>[a.id,a])),J=(v?.backends??[]).filter(a=>a.enabled);if(!v||!w||!H)return null;let K=I.get(H.mainBackend),L=K?.models.find(a=>a.modelId===H.mainModel)?.label??(0,r.formatModelName)(H.mainModel),M=z?I.get(z):null,N=M?.models??[];async function O(){if(z&&B){E(!0),G(null);try{await o.api.put(`/process-config/${a}`,{mainBackend:z,mainModel:B,fallbackBackend:H.fallbackBackend,fallbackModel:H.fallbackModel,maxTurns:H.maxTurns,maxBudgetUsd:H.maxBudgetUsd}),await u.invalidateQueries({queryKey:["process-config"]}),G({type:"success",message:"Saved"}),y(!1)}catch(b){let a=b instanceof o.ApiError?b.body:null;G({type:"error",message:"string"==typeof a?.error?a.error:b instanceof Error?b.message:"Save failed"})}finally{E(!1)}}}return(0,b.jsxs)(j.Card,{children:[(0,b.jsxs)(j.CardHeader,{children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(e.Bot,{className:"h-4 w-4 text-muted-foreground"}),(0,b.jsx)(j.CardTitle,{className:"text-base",children:s}),"user"===H.updatedBy&&(0,b.jsx)(l.Badge,{variant:"blue",className:"text-xs",children:"Custom"})]}),!x&&(0,b.jsxs)(k.Button,{variant:"ghost",size:"sm",onClick:function(){A(H.mainBackend),C(H.mainModel),G(null),y(!0)},className:"h-8",children:[(0,b.jsx)(g.Pencil,{className:"h-3.5 w-3.5"}),"Edit"]})]}),!x&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[(0,b.jsx)(l.Badge,{variant:r.BACKEND_BADGE_VARIANTS[H.mainBackend],children:(0,r.getBackendLabel)(H.mainBackend)}),(0,b.jsx)("span",{className:"text-muted-foreground",children:L}),(0,b.jsx)(l.Badge,{variant:"high"===H.defaultTier?"purple":"medium"===H.defaultTier?"blue":"default",className:"text-xs",children:H.defaultTier})]}),t&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:t})]}),x&&(0,b.jsxs)("div",{className:"mt-1 space-y-3",children:[(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("p",{className:"text-xs font-medium text-muted-foreground",children:"Backend"}),(0,b.jsxs)(n.Select,{value:z??"",onValueChange:a=>(function(a){var b,c;let d,e=I.get(a);if(!e)return;A(a);let f=(b=e.models,c=H.defaultTier,(d=b.filter(a=>a.tier===c)).length>0?d:b);C(f[0]?.modelId??e.models[0]?.modelId??"")})(a),children:[(0,b.jsx)(n.SelectTrigger,{children:(0,b.jsx)(n.SelectValue,{})}),(0,b.jsx)(n.SelectContent,{children:J.map(a=>(0,b.jsx)(n.SelectItem,{value:a.id,children:(0,r.getBackendLabel)(a.id)},a.id))})]})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("p",{className:"text-xs font-medium text-muted-foreground",children:"Model"}),(0,b.jsxs)(n.Select,{value:B??"",onValueChange:a=>C(a),children:[(0,b.jsx)(n.SelectTrigger,{children:(0,b.jsx)(n.SelectValue,{})}),(0,b.jsx)(n.SelectContent,{children:N.map(a=>(0,b.jsx)(n.SelectItem,{value:a.modelId,children:a.label},a.modelId))})]})]})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsxs)(k.Button,{variant:"outline",size:"sm",onClick:function(){y(!1),A(null),C(null)},disabled:D,children:[(0,b.jsx)(i.XCircle,{className:"h-3.5 w-3.5"}),"Cancel"]}),(0,b.jsxs)(k.Button,{size:"sm",onClick:()=>{O()},disabled:D||!B,children:[D?(0,b.jsx)(f.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,b.jsx)(h.Save,{className:"h-3.5 w-3.5"}),"Save"]})]})]}),F&&(0,b.jsx)(m.Alert,{variant:"success"===F.type?"success":"error",className:"mt-3",children:F.message})]})}])},87759,a=>{"use strict";let b=(0,a.i(5423).default)("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);a.s(["Play",0,b],87759)},21283,a=>{"use strict";var b=a.i(62588),c=a.i(8753),d=a.i(81130),e=a.i(59974);let f=["repositories"],g=a=>[...f,a],h=a=>[...g(a),"triggers"],i=a=>[...g(a),"management"];function j(a){return!!(a.githubOwner&&a.githubRepo)}a.s(["observationSourcesForRepo",0,function(a){let b=[];if(a.localPath&&b.push(`git:${a.localPath}`),j(a)){let c=`${a.githubOwner}/${a.githubRepo}`;b.push(`github:notification:${c}`),b.push(`github:workflow:${c}`)}return b},"repositoryDisplayName",0,function(a){if(a.displayName)return a.displayName;if(j(a))return`${a.githubOwner}/${a.githubRepo}`;if(a.localPath){let b=a.localPath.replace(/[\\/]+$/g,"").split(/[\\/]+/).filter(Boolean);return b[b.length-1]??a.localPath}return a.slug},"repositoryHasGithub",0,j,"repositoryHasLocal",0,function(a){return!!a.localPath},"useCreateRepoTrigger",0,function(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:({repositoryId:a,body:b})=>e.api.post(`/repositories/${encodeURIComponent(a)}/triggers`,b),onSuccess:(b,c)=>{a.invalidateQueries({queryKey:h(c.repositoryId)})}})},"useCreateRepository",0,function(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:a=>e.api.post("/repositories",a),onSuccess:()=>{a.invalidateQueries({queryKey:f})}})},"useDeleteRepoTrigger",0,function(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:({repositoryId:a,triggerId:b})=>e.api.delete(`/repositories/${encodeURIComponent(a)}/triggers/${encodeURIComponent(b)}`),onSuccess:(b,c)=>{a.invalidateQueries({queryKey:h(c.repositoryId)})}})},"useDeleteRepository",0,function(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:a=>e.api.delete(`/repositories/${encodeURIComponent(a)}`),onSuccess:()=>{a.invalidateQueries({queryKey:f})}})},"useFireRepoTrigger",0,function(){return(0,c.useMutation)({mutationFn:({repositoryId:a,triggerId:b})=>e.api.post(`/repositories/${encodeURIComponent(a)}/triggers/${encodeURIComponent(b)}/run`,{})})},"useLinkGithub",0,function(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:({id:a,owner:b,repo:c,account:d})=>e.api.post(`/repositories/${encodeURIComponent(a)}/link-github`,{owner:b,repo:c,account:d}),onSuccess:(b,c)=>{a.invalidateQueries({queryKey:f}),a.invalidateQueries({queryKey:g(c.id)})}})},"useLinkLocal",0,function(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:({id:a,localPath:b})=>e.api.post(`/repositories/${encodeURIComponent(a)}/link-local`,{localPath:b}),onSuccess:(b,c)=>{a.invalidateQueries({queryKey:f}),a.invalidateQueries({queryKey:g(c.id)})}})},"useRefreshRepositoryArchitecture",0,function(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:a=>e.api.post(`/repositories/${encodeURIComponent(a)}/management/refresh-architecture`,{}),onSuccess:async(b,c)=>{try{await a.refetchQueries({queryKey:i(c)})}catch{}}})},"useRepositories",0,function(a){return(0,b.useQuery)({queryKey:a?[...f,a]:[...f],queryFn:()=>e.api.get("/repositories",function(a){if(!a)return;let b={};return void 0!==a.hasGithub&&(b.has_github=a.hasGithub?"1":"0"),void 0!==a.hasLocal&&(b.has_local=a.hasLocal?"1":"0"),void 0!==a.localOnly&&(b.local_only=a.localOnly?"1":"0"),a.account&&(b.account=a.account),Object.keys(b).length>0?b:void 0}(a)),staleTime:3e4})},"useRepositoryManagement",0,function(a){return(0,b.useQuery)({queryKey:a?i(a):[...f,"missing","management"],queryFn:()=>e.api.get(`/repositories/${encodeURIComponent(a)}/management`),enabled:!!a,staleTime:15e3,refetchInterval:a=>{let b=a.state.data;return!!b?.architectureRefresh&&3e3}})},"useRepositoryTriggers",0,function(a){return(0,b.useQuery)({queryKey:a?h(a):[...f,"missing","triggers"],queryFn:()=>e.api.get(`/repositories/${encodeURIComponent(a)}/triggers`),enabled:!!a,staleTime:15e3})},"useRunRepoManagementInit",0,function(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:a=>e.api.post(`/repositories/${encodeURIComponent(a)}/management/init`,{}),onSuccess:async(b,c)=>{try{await a.refetchQueries({queryKey:i(c)})}catch{}}})},"useRunRepoManagementScan",0,function(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:a=>e.api.post(`/repositories/${encodeURIComponent(a)}/management/scan`,{}),onSuccess:async(b,c)=>{try{await a.refetchQueries({queryKey:i(c)})}catch{}}})},"useSetRepositoryManagement",0,function(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:({id:a,enabled:b})=>e.api.put(`/repositories/${encodeURIComponent(a)}/management`,{enabled:b}),onSuccess:(b,c)=>{a.invalidateQueries({queryKey:i(c.id)})}})},"useTestRepoTrigger",0,function(){return(0,c.useMutation)({mutationFn:({repositoryId:a,triggerId:b,eventType:c,payload:d})=>e.api.post(`/repositories/${encodeURIComponent(a)}/triggers/${encodeURIComponent(b)}/test`,{eventType:c,payload:d})})},"useUpdateRepoTrigger",0,function(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:({repositoryId:a,triggerId:b,body:c})=>e.api.patch(`/repositories/${encodeURIComponent(a)}/triggers/${encodeURIComponent(b)}`,c),onSuccess:(b,c)=>{a.invalidateQueries({queryKey:h(c.repositoryId)})}})},"useUpdateRepository",0,function(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:({id:a,body:b})=>e.api.patch(`/repositories/${encodeURIComponent(a)}`,b),onSuccess:(b,c)=>{a.invalidateQueries({queryKey:f}),a.invalidateQueries({queryKey:g(c.id)})}})}])}];
2
+
3
+ //# sourceMappingURL=_0rc-7d4._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../packages/dashboard/src/components/shared/empty-state.tsx","../../../../../../packages/dashboard/src/components/directory-picker-field.tsx","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/trash-2.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/plus.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/check.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/folder-open.ts","../../../../../../packages/dashboard/src/lib/directory-picker.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/rotate-ccw.ts","../../../../../../packages/dashboard/src/components/connections/section-header.tsx","../../../../../../packages/dashboard/src/components/connections/connection-card.tsx","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/shield-check.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/key-round.ts","../../../../../../packages/dashboard/src/lib/backend-ui.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/refresh-cw.ts","../../../../../../packages/dashboard/src/lib/hooks/use-backends.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/pencil.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/save.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/lock.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/circle-x.ts","../../../../../../packages/dashboard/src/lib/hooks/use-process-config.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/bot.ts","../../../../../../packages/dashboard/src/components/connections/process-model-card.tsx","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/play.ts","../../../../../../packages/dashboard/src/lib/hooks/use-repositories.ts"],"sourcesContent":["import type { LucideIcon } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\ninterface EmptyStateProps {\n icon: LucideIcon;\n title: string;\n description?: string;\n className?: string;\n children?: React.ReactNode;\n}\n\nexport function EmptyState({\n icon: Icon,\n title,\n description,\n className,\n children,\n}: EmptyStateProps) {\n return (\n <div\n className={cn(\n \"flex flex-col items-center justify-center py-16 text-muted-foreground\",\n className,\n )}\n >\n <Icon className=\"mb-3 h-10 w-10 opacity-40\" />\n <p className=\"text-sm font-medium\">{title}</p>\n {description && (\n <p className=\"mt-1 max-w-prose text-xs text-muted-foreground/70\">{description}</p>\n )}\n {children}\n </div>\n );\n}\n","\"use client\";\n\nimport { useState } from \"react\";\nimport { FolderOpen, Loader2 } from \"lucide-react\";\nimport { Button } from \"@/components/ui/button\";\nimport { Input } from \"@/components/ui/input\";\nimport { pickDirectoryFromDesktop } from \"@/lib/directory-picker\";\nimport { cn } from \"@/lib/utils\";\n\nexport function DirectoryPickerField({\n id,\n value,\n onChange,\n title,\n placeholder = \"Choose a folder...\",\n defaultPath,\n disabled = false,\n className,\n inputClassName,\n buttonLabel = \"Choose\",\n}: {\n id?: string;\n value: string;\n onChange: (value: string) => void;\n title: string;\n placeholder?: string;\n defaultPath?: string;\n disabled?: boolean;\n className?: string;\n inputClassName?: string;\n buttonLabel?: string;\n}) {\n const [picking, setPicking] = useState(false);\n const [pickerError, setPickerError] = useState<string | null>(null);\n\n const handlePick = async () => {\n setPicking(true);\n setPickerError(null);\n try {\n const selected = await pickDirectoryFromDesktop({\n title,\n defaultPath: value.trim() || defaultPath,\n });\n if (selected) onChange(selected);\n } catch (err) {\n setPickerError(\n err instanceof Error ? err.message : \"Folder picker is unavailable.\",\n );\n } finally {\n setPicking(false);\n }\n };\n\n return (\n <div className={cn(\"space-y-1\", className)}>\n <div className=\"flex flex-col gap-2 sm:flex-row\">\n <Input\n id={id}\n value={value}\n onChange={(e) => {\n onChange(e.target.value);\n setPickerError(null);\n }}\n placeholder={placeholder}\n className={cn(\"font-mono text-sm\", inputClassName)}\n disabled={disabled || picking}\n />\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={handlePick}\n disabled={disabled || picking}\n className=\"shrink-0 gap-2\"\n >\n {picking ? (\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n ) : (\n <FolderOpen className=\"h-4 w-4\" />\n )}\n {picking ? \"Opening...\" : buttonLabel}\n </Button>\n </div>\n {pickerError && (\n <p className=\"text-xs text-destructive\">{pickerError}</p>\n )}\n </div>\n );\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Trash2\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA2aDE4IiAvPgogIDxwYXRoIGQ9Ik0xOSA2djE0YzAgMS0xIDItMiAySDdjLTEgMC0yLTEtMi0yVjYiIC8+CiAgPHBhdGggZD0iTTggNlY0YzAtMSAxLTIgMi0yaDRjMSAwIDIgMSAyIDJ2MiIgLz4KICA8bGluZSB4MT0iMTAiIHgyPSIxMCIgeTE9IjExIiB5Mj0iMTciIC8+CiAgPGxpbmUgeDE9IjE0IiB4Mj0iMTQiIHkxPSIxMSIgeTI9IjE3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/trash-2\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Trash2 = createLucideIcon('Trash2', [\n ['path', { d: 'M3 6h18', key: 'd0wm0j' }],\n ['path', { d: 'M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6', key: '4alrt4' }],\n ['path', { d: 'M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2', key: 'v07s0e' }],\n ['line', { x1: '10', x2: '10', y1: '11', y2: '17', key: '1uufr5' }],\n ['line', { x1: '14', x2: '14', y1: '11', y2: '17', key: 'xtxkd' }],\n]);\n\nexport default Trash2;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Plus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KICA8cGF0aCBkPSJNMTIgNXYxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Plus = createLucideIcon('Plus', [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'M12 5v14', key: 's699le' }],\n]);\n\nexport default Plus;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Check\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgNiA5IDE3bC01LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Check = createLucideIcon('Check', [['path', { d: 'M20 6 9 17l-5-5', key: '1gmf2c' }]]);\n\nexport default Check;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name FolderOpen\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiAxNCAxLjUtMi45QTIgMiAwIDAgMSA5LjI0IDEwSDIwYTIgMiAwIDAgMSAxLjk0IDIuNWwtMS41NCA2YTIgMiAwIDAgMS0xLjk1IDEuNUg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgxOGEyIDIgMCAwIDEgMiAydjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-open\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst FolderOpen = createLucideIcon('FolderOpen', [\n [\n 'path',\n {\n d: 'm6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2',\n key: 'usdka0',\n },\n ],\n]);\n\nexport default FolderOpen;\n","import { api } from \"@/lib/api-client\";\nimport type { DirectoryPickerResponse } from \"@/lib/api-types\";\n\nexport async function pickDirectoryFromDesktop({\n title,\n defaultPath,\n}: {\n title: string;\n defaultPath?: string;\n}): Promise<string | null> {\n const response = await api.post<DirectoryPickerResponse>(\n \"/system/pick-directory\",\n {\n title,\n ...(defaultPath ? { defaultPath } : {}),\n },\n );\n\n if (response.status === \"selected\" && response.path) {\n return response.path;\n }\n if (response.status === \"cancelled\") {\n return null;\n }\n throw new Error(response.message ?? \"Folder picker is unavailable.\");\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name RotateCcw\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAxIDAgOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4IiAvPgogIDxwYXRoIGQ9Ik0zIDN2NWg1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/rotate-ccw\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst RotateCcw = createLucideIcon('RotateCcw', [\n ['path', { d: 'M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8', key: '1357e3' }],\n ['path', { d: 'M3 3v5h5', key: '1xhq8a' }],\n]);\n\nexport default RotateCcw;\n","\"use client\";\n\nimport type { ReactNode } from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface ConnectionsSectionHeaderProps {\n title: string;\n description?: ReactNode;\n /** Number of entries that are live/healthy. */\n healthy: number;\n /** Total entries in this section. */\n total: number;\n /** Optional short note about the remainder, e.g. \"WhatsApp needs re-pairing\". */\n attention?: string | null;\n /** Optional right-aligned action element (e.g. an \"Add\" button). */\n actions?: ReactNode;\n}\n\nexport function ConnectionsSectionHeader({\n title,\n description,\n healthy,\n total,\n attention,\n actions,\n}: ConnectionsSectionHeaderProps) {\n const allHealthy = total > 0 && healthy === total;\n const noneHealthy = total > 0 && healthy === 0;\n\n return (\n <div className=\"space-y-1\">\n <div className=\"flex items-baseline justify-between gap-3\">\n <h1 className=\"text-2xl font-semibold text-foreground\">{title}</h1>\n <div className=\"flex items-center gap-3\">\n {total > 0 && (\n <span\n className={cn(\n \"text-xs font-medium tabular-nums\",\n allHealthy\n ? \"text-emerald-600 dark:text-emerald-400\"\n : noneHealthy\n ? \"text-muted-foreground\"\n : \"text-amber-600 dark:text-amber-400\",\n )}\n >\n {healthy}/{total} connected\n </span>\n )}\n {actions}\n </div>\n </div>\n {description && (\n <p className=\"max-w-3xl text-sm text-muted-foreground\">{description}</p>\n )}\n {attention && (\n <p className=\"text-xs text-amber-600 dark:text-amber-400\">\n {attention}\n </p>\n )}\n </div>\n );\n}\n","\"use client\";\n\nimport type { ReactNode } from \"react\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Card } from \"@/components/ui/card\";\nimport { cn } from \"@/lib/utils\";\nimport type {\n IntegrationStatus as HealthIntegrationStatus,\n MessagingHealthStatus,\n} from \"@/lib/api-types\";\n\n// ── Status types ──\n\nexport type ConnectionStatus =\n | \"connected\"\n | \"configured\"\n | \"connecting\"\n | \"needs-setup\"\n | \"error\"\n | \"disabled\";\n\nconst STATUS_BADGE: Record<ConnectionStatus, { variant: \"green\" | \"red\" | \"gray\" | \"amber\"; label: string }> = {\n connected: { variant: \"green\", label: \"Connected\" },\n configured: { variant: \"amber\", label: \"Configured\" },\n connecting: { variant: \"amber\", label: \"Connecting…\" },\n \"needs-setup\": { variant: \"gray\", label: \"Not Configured\" },\n error: { variant: \"red\", label: \"Error\" },\n disabled: { variant: \"gray\", label: \"Disabled\" },\n};\n\nfunction cardTone(status: ConnectionStatus) {\n if (status === \"connected\") return \"success\" as const;\n if (status === \"error\") return \"error\" as const;\n return \"default\" as const;\n}\n\n// ── Status derivation helpers ──\n\n/** Derive card status from the health API's integration status object. */\nexport function deriveIntegrationStatus(\n s: HealthIntegrationStatus | undefined,\n): ConnectionStatus {\n if (!s) return \"needs-setup\";\n if (!s.configured) return \"needs-setup\";\n if (s.error) return \"error\";\n if (s.connected) return \"connected\";\n return \"configured\";\n}\n\n/** Derive card status from the health API's messaging status object. */\nexport function deriveMessagingStatus(\n s: MessagingHealthStatus | undefined,\n): ConnectionStatus {\n if (!s) return \"needs-setup\";\n if (s.runtimeState === \"not_configured\") return \"needs-setup\";\n if (s.runtimeState === \"connecting\") return \"connecting\";\n if (s.runtimeState === \"error\") return \"error\";\n if (s.runtimeState === \"ok\") return \"connected\";\n return \"configured\";\n}\n\n/** Derive card status from a simple boolean config flag (e.g. GitHub). */\nexport function deriveConfiguredStatus(configured: boolean): ConnectionStatus {\n return configured ? \"configured\" : \"needs-setup\";\n}\n\n/** Build the standard metadata lines for a messaging channel card. */\nexport function messagingMetadata(status: MessagingHealthStatus | undefined) {\n if (!status) return undefined;\n return [\n { label: \"Owner configured\", value: status.ownerConfigured ? \"yes\" : \"no\" },\n { label: \"Owner channel known\", value: status.ownerChannelKnown ? \"yes\" : \"no\" },\n { label: \"Reminder eligible\", value: status.notificationEligible ? \"yes\" : \"no\" },\n { label: \"Last inbound\", value: status.lastInboundAt ?? \"—\" },\n ];\n}\n\n// ── ConnectionCard component ──\n\nexport interface ConnectionCardProps {\n name: string;\n icon: ReactNode;\n status: ConnectionStatus;\n /** Error message from health API. */\n error?: string | null;\n /** Key-value metadata lines shown below the header. */\n metadata?: Array<{ label: string; value: string }>;\n /** Expandable config/setup content. */\n children?: ReactNode;\n className?: string;\n}\n\nexport function ConnectionCard({\n name,\n icon,\n status,\n error,\n metadata,\n children,\n className,\n}: ConnectionCardProps) {\n const badge = STATUS_BADGE[status];\n\n return (\n <Card tone={cardTone(status)} className={cn(\"relative\", className)}>\n {/* Header */}\n <div className=\"flex items-center justify-between mb-2\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-muted-foreground\">{icon}</span>\n <h3 className=\"text-sm font-medium text-foreground\">{name}</h3>\n </div>\n <Badge variant={badge.variant}>{badge.label}</Badge>\n </div>\n\n {/* Error from health API — suppressed during in-progress connecting state so\n transient auth/pairing messages don't render as red errors. */}\n {error && status !== \"connecting\" && (\n <p className=\"mb-2 text-xs text-red-600 dark:text-red-400\">{error}</p>\n )}\n\n {/* Metadata */}\n {metadata && metadata.length > 0 && (\n <div className=\"mb-3 space-y-0.5\">\n {metadata.map((m) => (\n <div key={m.label} className=\"flex items-center justify-between text-xs\">\n <span className=\"text-muted-foreground\">{m.label}</span>\n <span className=\"text-foreground\">{m.value}</span>\n </div>\n ))}\n </div>\n )}\n\n {/* Children */}\n {children}\n </Card>\n );\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ShieldCheck\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0ibTkgMTIgMiAyIDQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shield-check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ShieldCheck = createLucideIcon('ShieldCheck', [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n key: 'oel41y',\n },\n ],\n ['path', { d: 'm9 12 2 2 4-4', key: 'dzmm74' }],\n]);\n\nexport default ShieldCheck;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name KeyRound\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi41ODYgMTcuNDE0QTIgMiAwIDAgMCAyIDE4LjgyOFYyMWExIDEgMCAwIDAgMSAxaDNhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDEgMS0xaDFhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDEgMS0xaC4xNzJhMiAyIDAgMCAwIDEuNDE0LS41ODZsLjgxNC0uODE0YTYuNSA2LjUgMCAxIDAtNC00eiIgLz4KICA8Y2lyY2xlIGN4PSIxNi41IiBjeT0iNy41IiByPSIuNSIgZmlsbD0iY3VycmVudENvbG9yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/key-round\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst KeyRound = createLucideIcon('KeyRound', [\n [\n 'path',\n {\n d: 'M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z',\n key: '1s6t7t',\n },\n ],\n ['circle', { cx: '16.5', cy: '7.5', r: '.5', fill: 'currentColor', key: 'w0ekpg' }],\n]);\n\nexport default KeyRound;\n","import type { BackendId } from \"@aitne/shared\";\n\nexport const BACKEND_LABELS: Record<BackendId, string> = {\n claude: \"Claude Code\",\n codex: \"OpenAI Codex\",\n gemini: \"Gemini CLI\",\n};\n\nconst BACKEND_SHORT_LABELS: Record<BackendId, string> = {\n claude: \"Claude\",\n codex: \"Codex\",\n gemini: \"Gemini\",\n};\n\n/**\n * Provider-friendly labels for backend / API-key UIs. Users think in\n * terms of \"I have an Anthropic API key\", not \"I have a Claude Code\n * API key\" — so surfaces that name the upstream provider (setup\n * wizard backend step, /settings/models API-key panel) should prefer\n * this set over BACKEND_LABELS (which names the CLI product).\n */\nexport const BACKEND_PROVIDER_LABELS: Record<BackendId, string> = {\n claude: \"Claude (Anthropic)\",\n codex: \"ChatGPT (OpenAI)\",\n gemini: \"Gemini (Google)\",\n};\n\n/** Short provider name used in compact badges (e.g. \"ChatGPT\" not \"OpenAI Codex\"). */\nexport const BACKEND_PROVIDER_SHORT: Record<BackendId, string> = {\n claude: \"Claude\",\n codex: \"ChatGPT\",\n gemini: \"Gemini\",\n};\n\n/**\n * Per-backend description of the web-search toggle on `/settings/models`.\n * Each backend wires to a different upstream surface, so the hint names\n * that surface so the user knows what they are turning on.\n *\n * - Claude: SDK-native `WebSearch` tool, gated by allowedTools.\n * - Codex: OpenAI Responses-API `web_search` tool, enabled per-spawn via\n * `-c tools.web_search=true`. Works under the workspace-write sandbox\n * because the tool runs server-side at OpenAI — no sandbox bypass\n * required.\n * - Gemini: `google_web_search` tool, allowed via the per-session admin\n * policy TOML.\n */\nexport const BACKEND_WEB_SEARCH_DESCRIPTIONS: Record<BackendId, string> = {\n claude: \"Lets the agent call Anthropic's built-in WebSearch tool.\",\n codex:\n \"Lets the agent call OpenAI's web_search tool. Works in safe (sandbox) mode — the tool runs at OpenAI, not as a local shell command.\",\n gemini: \"Lets the agent call Gemini's google_web_search tool.\",\n};\n\n/**\n * Primary brand color per backend, chosen to match each vendor's actual\n * app-icon hue so charts read as \"that's the Claude backend\" at a glance.\n * - Claude — the warm red-orange of the Anthropic macOS icon.\n * - Codex (ChatGPT) — ChatGPT's icon is white, so we use a bright\n * pink-leaning fuchsia (slightly purple-tinted pink).\n * - Gemini — the vivid Google Blue anchoring the Gemini spark gradient.\n */\nexport const BACKEND_COLORS: Record<BackendId, string> = {\n claude: \"#E15B40\", // Anthropic app-icon red-orange\n codex: \"#D946EF\", // bright fuchsia (pink with purple tint)\n gemini: \"#1C69FF\", // vivid Google Blue\n};\n\n/**\n * A small palette of distinct shades per backend family. Used to\n * differentiate individual models within the same backend on charts\n * like the Model Breakdown pie — the eye can still group Claude/Codex/\n * Gemini by hue family, but each model gets its own readable shade.\n *\n * Each palette is ordered dark→light and contains the primary brand\n * color in the middle, so a single-model render picks the brand color\n * and small groups (2–4 models) get colors spread across the palette\n * via `assignModelColors` for maximum contrast.\n */\nexport const BACKEND_MODEL_PALETTES: Record<BackendId, string[]> = {\n // Anthropic red-orange / coral family.\n claude: [\"#7C2D12\", \"#B54B2D\", \"#E15B40\", \"#F97316\", \"#FDBA74\"],\n // OpenAI-ish pink-purple / fuchsia family.\n codex: [\"#86198F\", \"#A21CAF\", \"#D946EF\", \"#E879F9\", \"#F5D0FE\"],\n // Google blue family.\n gemini: [\"#1E3A8A\", \"#1D4ED8\", \"#1C69FF\", \"#60A5FA\", \"#93C5FD\"],\n};\n\nconst OTHER_MODEL_PALETTE = [\"#6b7280\", \"#9ca3af\", \"#4b5563\", \"#374151\"];\n\n/**\n * Qualitative palette for categorical charts (e.g. event-type breakdown)\n * where bars have no intrinsic backend affiliation but should be visually\n * distinguishable from each other.\n */\nexport const CHART_CATEGORY_PALETTE: string[] = [\n \"#3b82f6\", // blue\n \"#10b981\", // emerald\n \"#f59e0b\", // amber\n \"#8b5cf6\", // violet\n \"#ec4899\", // pink\n \"#14b8a6\", // teal\n \"#f97316\", // orange\n \"#6366f1\", // indigo\n \"#ef4444\", // red\n \"#22c55e\", // green\n];\n\nexport const BACKEND_BADGE_VARIANTS: Record<BackendId, \"orange\" | \"pink\" | \"blue\"> = {\n claude: \"orange\",\n codex: \"pink\",\n gemini: \"blue\",\n};\n\nconst PROCESS_LABELS: Record<string, string> = {\n \"routine.morning_routine\": \"Morning Routine\",\n \"routine.evening_review\": \"Evening Review\",\n \"routine.weekly_review\": \"Weekly Review\",\n \"routine.monthly_review\": \"Monthly Review\",\n \"routine.hourly_check\": \"Hourly Check\",\n \"routine.roadmap_refresh\": \"Roadmap Refresh\",\n \"message.dm\": \"Direct Messages\",\n \"message.mention\": \"Mentions\",\n \"dashboard.chat\": \"Dashboard Chat\",\n \"agent.task\": \"Scheduled Tasks\",\n \"calendar.change\": \"Calendar Events\",\n \"gmail_classify\": \"Gmail Classification\",\n \"github.pull_request.review_requested\": \"GitHub Review Requests\",\n \"github.assigned\": \"GitHub Assignments\",\n \"github.security_alert\": \"GitHub Security Alerts\",\n \"github.workflow_run.failed\": \"GitHub CI Failures\",\n \"wiki.ingest_url\": \"Wiki URL Ingest\",\n \"wiki.compile\": \"Wiki Compile\",\n \"wiki.ask\": \"Wiki Ask\",\n};\n\nexport function getBackendLabel(backendId: BackendId): string {\n return BACKEND_LABELS[backendId];\n}\n\nexport function getBackendShortLabel(backendId: BackendId): string {\n return BACKEND_SHORT_LABELS[backendId];\n}\n\nexport function getProcessLabel(processKey: string): string {\n return PROCESS_LABELS[processKey] ?? processKey;\n}\n\nexport function getProcessGroup(processKey: string): string {\n if (processKey.startsWith(\"wiki.\")) return \"Wiki\";\n if (processKey.startsWith(\"message.\") || processKey.startsWith(\"dashboard.\")) {\n return \"Conversation\";\n }\n if (processKey.startsWith(\"routine.\")) return \"Routines\";\n if (processKey.startsWith(\"git.\") || processKey.startsWith(\"github.\")) {\n return \"Git & GitHub\";\n }\n if (processKey.startsWith(\"calendar.\") || processKey === \"gmail_classify\") {\n return \"Integrations\";\n }\n return \"Tasks\";\n}\n\nexport function formatModelName(modelId: string | null | undefined): string {\n if (!modelId) return \"Not set\";\n\n return modelId\n .replace(/^claude-/, \"Claude \")\n .replace(/^gpt-/, \"GPT-\")\n .replace(/^gemini-/, \"Gemini \")\n .replace(/-/g, \" \")\n .replace(/\\bpreview\\b/gi, \"(preview)\")\n .replace(/\\bpro\\b/gi, \"Pro\")\n .replace(/\\bflash\\b/gi, \"Flash\")\n .replace(/\\blite\\b/gi, \"Lite\")\n .replace(/\\bmini\\b/gi, \"Mini\")\n .replace(/\\bcodex\\b/gi, \"Codex\")\n .replace(/\\bopus\\b/gi, \"Opus\")\n .replace(/\\bsonnet\\b/gi, \"Sonnet\")\n .replace(/\\bhaiku\\b/gi, \"Haiku\")\n .replace(/\\s+/g, \" \")\n .trim();\n}\n\n/**\n * Compact model label for badge display (e.g. \"Opus 4.7\", \"GPT-5.5\").\n * Handles both legacy short forms (\"opus\") and full IDs (\"claude-opus-4-6\").\n */\nexport function formatShortModelName(modelId: string | null | undefined): string {\n if (!modelId) return \"unknown\";\n\n // Legacy short forms from old DB rows\n if (modelId === \"opus\") return \"Opus\";\n if (modelId === \"sonnet\") return \"Sonnet\";\n\n let s = modelId\n .replace(/-\\d{8,}$/, \"\") // drop date suffix (e.g. -20251001)\n .replace(/^claude-/, \"\") // \"claude-opus-4-6\" → \"opus-4-6\"\n .replace(/(\\d+)-(\\d+)(?![-\\d])/g, \"$1.$2\") // version: \"4-6\" → \"4.6\"\n .replace(/-/g, \" \"); // remaining dashes → spaces\n\n // Apply prefix branding after dashes are resolved\n if (modelId.startsWith(\"gpt-\")) s = `GPT-${s.replace(/^gpt\\s*/i, \"\")}`;\n if (modelId.startsWith(\"gemini-\")) s = s.replace(/^gemini\\s*/i, \"Gemini \");\n\n return s\n .replace(/\\bopus\\b/gi, \"Opus\")\n .replace(/\\bsonnet\\b/gi, \"Sonnet\")\n .replace(/\\bhaiku\\b/gi, \"Haiku\")\n .replace(/\\bpro\\b/gi, \"Pro\")\n .replace(/\\bflash\\b/gi, \"Flash\")\n .replace(/\\blite\\b/gi, \"Lite\")\n .replace(/\\bmini\\b/gi, \"Mini\")\n .replace(/\\s+/g, \" \")\n .trim();\n}\n\n/** Badge variant for a model string, resolved via backend detection. */\nexport function modelBadgeVariant(modelId: string | null | undefined): \"orange\" | \"pink\" | \"blue\" | \"gray\" {\n if (!modelId) return \"gray\";\n const backend = detectBackendFromModel(modelId);\n return backend ? BACKEND_BADGE_VARIANTS[backend] : \"gray\";\n}\n\n/**\n * Parsed entry from `agent_actions.model_usage_json` — what the SDK actually\n * billed per underlying model. The SDK can silently route a request for one\n * model to a sibling (e.g. opus-4-7 → opus-4-6[1m]); this struct surfaces\n * that, so the dashboard can show the real model and matching cost.\n */\nexport interface BilledModelEntry {\n modelId: string;\n inputTokens: number;\n outputTokens: number;\n costUsd: number;\n}\n\n/**\n * Parse the JSON-encoded modelUsage map. Returns entries sorted by costUsd\n * desc so the dominant model is first (the one a single-row badge should\n * use). Returns an empty array on malformed input.\n */\nexport function parseModelUsage(json: string | null | undefined): BilledModelEntry[] {\n if (!json) return [];\n let raw: unknown;\n try {\n raw = JSON.parse(json);\n } catch {\n return [];\n }\n if (!raw || typeof raw !== \"object\") return [];\n\n const entries: BilledModelEntry[] = [];\n for (const [modelId, value] of Object.entries(raw)) {\n if (!value || typeof value !== \"object\") continue;\n const v = value as Record<string, unknown>;\n entries.push({\n modelId,\n inputTokens: typeof v.inputTokens === \"number\" ? v.inputTokens : 0,\n outputTokens: typeof v.outputTokens === \"number\" ? v.outputTokens : 0,\n costUsd: typeof v.costUsd === \"number\" ? v.costUsd : 0,\n });\n }\n return entries.sort((a, b) => b.costUsd - a.costUsd);\n}\n\n/**\n * Return the model id the dashboard should badge for a row. Prefers the\n * dominant entry from `model_usage_json` (the SDK-billed model — what\n * actually drove the cost). Falls back to `model_used` (the requested\n * model) when modelUsage is missing or empty.\n */\nexport function pickDisplayModel(\n modelUsed: string | null | undefined,\n modelUsageJson: string | null | undefined,\n): string | null {\n const entries = parseModelUsage(modelUsageJson);\n if (entries.length > 0 && entries[0]) {\n return entries[0].modelId;\n }\n return modelUsed ?? null;\n}\n\nexport function detectBackendFromModel(modelId: string): BackendId | null {\n if (!modelId) return null;\n const lower = modelId.toLowerCase();\n if (\n lower.includes(\"claude\") ||\n lower.includes(\"sonnet\") ||\n lower.includes(\"opus\") ||\n lower.includes(\"haiku\")\n ) {\n return \"claude\";\n }\n if (lower.includes(\"gemini\")) return \"gemini\";\n if (\n lower.includes(\"gpt\") ||\n lower.includes(\"codex\") ||\n lower.includes(\"o3\") ||\n lower.includes(\"o4\")\n ) {\n return \"codex\";\n }\n return null;\n}\n\n/**\n * Assign a distinct color to each model. Models are grouped by backend\n * and sorted by name for stable assignment across renders; within each\n * group, colors are spread across `BACKEND_MODEL_PALETTES` so that small\n * groups (e.g. 2 Claude models) use non-adjacent palette slots and read\n * as clearly different shades, rather than two neighbouring darks.\n *\n * - 1 model → the brand-color slot (palette midpoint)\n * - 2 models → slots at ~1/4 and ~3/4 of the palette (dark + light)\n * - 3 models → evenly spaced across the palette\n * - 4+ models → spread evenly, wrapping if the group exceeds the palette\n */\nexport function assignModelColors(models: string[]): Record<string, string> {\n const byBackend = new Map<BackendId | \"other\", string[]>();\n for (const model of models) {\n if (!model) continue;\n const backend = detectBackendFromModel(model) ?? \"other\";\n const bucket = byBackend.get(backend) ?? [];\n bucket.push(model);\n byBackend.set(backend, bucket);\n }\n\n const result: Record<string, string> = {};\n for (const [backend, list] of byBackend) {\n list.sort((a, b) => a.localeCompare(b));\n const palette =\n backend === \"other\" ? OTHER_MODEL_PALETTE : BACKEND_MODEL_PALETTES[backend];\n const n = list.length;\n list.forEach((model, i) => {\n let idx: number;\n if (n >= palette.length) {\n // Group larger than the palette — wrap around.\n idx = i % palette.length;\n } else if (n === 1) {\n // Single model → use the brand-color slot (palette midpoint).\n idx = Math.floor(palette.length / 2);\n } else {\n // Small group → spread across the palette so shades are distinct.\n idx = Math.floor(((i + 0.5) * palette.length) / n);\n }\n result[model] = palette[idx]!;\n });\n }\n return result;\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name RefreshCw\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAwIDEgOS05IDkuNzUgOS43NSAwIDAgMSA2Ljc0IDIuNzRMMjEgOCIgLz4KICA8cGF0aCBkPSJNMjEgM3Y1aC01IiAvPgogIDxwYXRoIGQ9Ik0yMSAxMmE5IDkgMCAwIDEtOSA5IDkuNzUgOS43NSAwIDAgMS02Ljc0LTIuNzRMMyAxNiIgLz4KICA8cGF0aCBkPSJNOCAxNkgzdjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/refresh-cw\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst RefreshCw = createLucideIcon('RefreshCw', [\n ['path', { d: 'M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8', key: 'v9h5vc' }],\n ['path', { d: 'M21 3v5h-5', key: '1q7to0' }],\n ['path', { d: 'M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16', key: '3uifl3' }],\n ['path', { d: 'M8 16H3v5', key: '1cv678' }],\n]);\n\nexport default RefreshCw;\n","\"use client\";\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { api } from \"@/lib/api-client\";\nimport type { BackendsResponse } from \"@/lib/api-types\";\n\nexport function useBackends(options?: { enabled?: boolean }) {\n return useQuery({\n queryKey: [\"backends\"],\n queryFn: () => api.get<BackendsResponse>(\"/backends\"),\n enabled: options?.enabled ?? true,\n staleTime: 60_000,\n });\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Pencil\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiIgLz4KICA8cGF0aCBkPSJtMTUgNSA0IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pencil\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Pencil = createLucideIcon('Pencil', [\n [\n 'path',\n {\n d: 'M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z',\n key: '1a8usu',\n },\n ],\n ['path', { d: 'm15 5 4 4', key: '1mk7zo' }],\n]);\n\nexport default Pencil;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Save\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuMiAzYTIgMiAwIDAgMSAxLjQuNmwzLjggMy44YTIgMiAwIDAgMSAuNiAxLjRWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yeiIgLz4KICA8cGF0aCBkPSJNMTcgMjF2LTdhMSAxIDAgMCAwLTEtMUg4YTEgMSAwIDAgMC0xIDF2NyIgLz4KICA8cGF0aCBkPSJNNyAzdjRhMSAxIDAgMCAwIDEgMWg3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/save\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Save = createLucideIcon('Save', [\n [\n 'path',\n {\n d: 'M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z',\n key: '1c8476',\n },\n ],\n ['path', { d: 'M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7', key: '1ydtos' }],\n ['path', { d: 'M7 3v4a1 1 0 0 0 1 1h7', key: 't51u73' }],\n]);\n\nexport default Save;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Lock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTEiIHg9IjMiIHk9IjExIiByeD0iMiIgcnk9IjIiIC8+CiAgPHBhdGggZD0iTTcgMTFWN2E1IDUgMCAwIDEgMTAgMHY0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/lock\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Lock = createLucideIcon('Lock', [\n ['rect', { width: '18', height: '11', x: '3', y: '11', rx: '2', ry: '2', key: '1w4ew1' }],\n ['path', { d: 'M7 11V7a5 5 0 0 1 10 0v4', key: 'fwvmzm' }],\n]);\n\nexport default Lock;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CircleX\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtMTUgOS02IDYiIC8+CiAgPHBhdGggZD0ibTkgOSA2IDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleX = createLucideIcon('CircleX', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'm15 9-6 6', key: '1uzhvr' }],\n ['path', { d: 'm9 9 6 6', key: 'z0biqf' }],\n]);\n\nexport default CircleX;\n","\"use client\";\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { api } from \"@/lib/api-client\";\nimport type { ProcessConfigResponse } from \"@/lib/api-types\";\n\nexport function useProcessConfig(options?: { enabled?: boolean }) {\n return useQuery({\n queryKey: [\"process-config\"],\n queryFn: () => api.get<ProcessConfigResponse>(\"/process-config\"),\n enabled: options?.enabled ?? true,\n staleTime: 60_000,\n });\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Bot\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgOFY0SDgiIC8+CiAgPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjEyIiB4PSI0IiB5PSI4IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMiAxNGgyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxNGgyIiAvPgogIDxwYXRoIGQ9Ik0xNSAxM3YyIiAvPgogIDxwYXRoIGQ9Ik05IDEzdjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bot\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Bot = createLucideIcon('Bot', [\n ['path', { d: 'M12 8V4H8', key: 'hb8ula' }],\n ['rect', { width: '16', height: '12', x: '4', y: '8', rx: '2', key: 'enze0r' }],\n ['path', { d: 'M2 14h2', key: 'vft8re' }],\n ['path', { d: 'M20 14h2', key: '4cs60a' }],\n ['path', { d: 'M15 13v2', key: '1xurst' }],\n ['path', { d: 'M9 13v2', key: 'rq6x2g' }],\n]);\n\nexport default Bot;\n","\"use client\";\n\nimport { useState } from \"react\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { Bot, Loader2, Pencil, Save, XCircle } from \"lucide-react\";\nimport type { BackendId, BackendModel } from \"@aitne/shared\";\nimport { Card, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { Button } from \"@/components/ui/button\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Alert } from \"@/components/ui/alert\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\";\nimport { ApiError, api } from \"@/lib/api-client\";\nimport { useBackends } from \"@/lib/hooks/use-backends\";\nimport { useProcessConfig } from \"@/lib/hooks/use-process-config\";\nimport {\n BACKEND_BADGE_VARIANTS,\n formatModelName,\n getBackendLabel,\n} from \"@/lib/backend-ui\";\n\ninterface ProcessModelCardProps {\n processKey: string;\n title?: string;\n description?: string;\n}\n\nfunction getModelsForTier(models: BackendModel[], tier: \"lite\" | \"medium\" | \"high\"): BackendModel[] {\n const tierModels = models.filter((m) => m.tier === tier);\n return tierModels.length > 0 ? tierModels : models;\n}\n\nexport function ProcessModelCard({\n processKey,\n title = \"AI Model\",\n description,\n}: ProcessModelCardProps) {\n const queryClient = useQueryClient();\n const { data: backendsData } = useBackends();\n const { data: processConfigData } = useProcessConfig();\n\n const [editing, setEditing] = useState(false);\n const [draftBackend, setDraftBackend] = useState<BackendId | null>(null);\n const [draftModel, setDraftModel] = useState<string | null>(null);\n const [saving, setSaving] = useState(false);\n const [feedback, setFeedback] = useState<{\n type: \"success\" | \"error\";\n message: string;\n } | null>(null);\n\n const configOrUndef = processConfigData?.configs.find((c) => c.processKey === processKey);\n const backendMap = new Map((backendsData?.backends ?? []).map((b) => [b.id, b]));\n const enabledBackends = (backendsData?.backends ?? []).filter((b) => b.enabled);\n\n if (!backendsData || !processConfigData || !configOrUndef) {\n return null;\n }\n\n // Narrowed reference — TS tracks this as non-undefined after the guard above.\n const config = configOrUndef;\n\n const currentBackend = backendMap.get(config.mainBackend);\n const currentModelLabel =\n currentBackend?.models.find((m) => m.modelId === config.mainModel)?.label ??\n formatModelName(config.mainModel);\n\n const draftBackendData = draftBackend ? backendMap.get(draftBackend) : null;\n const availableModels = draftBackendData?.models ?? [];\n\n function beginEdit() {\n setDraftBackend(config.mainBackend);\n setDraftModel(config.mainModel);\n setFeedback(null);\n setEditing(true);\n }\n\n function cancelEdit() {\n setEditing(false);\n setDraftBackend(null);\n setDraftModel(null);\n }\n\n function handleBackendChange(nextId: BackendId) {\n const backend = backendMap.get(nextId);\n if (!backend) return;\n setDraftBackend(nextId);\n const tierModels = getModelsForTier(backend.models, config.defaultTier);\n setDraftModel(tierModels[0]?.modelId ?? backend.models[0]?.modelId ?? \"\");\n }\n\n async function save() {\n if (!draftBackend || !draftModel) return;\n setSaving(true);\n setFeedback(null);\n try {\n await api.put(`/process-config/${processKey}`, {\n mainBackend: draftBackend,\n mainModel: draftModel,\n fallbackBackend: config.fallbackBackend,\n fallbackModel: config.fallbackModel,\n maxTurns: config.maxTurns,\n maxBudgetUsd: config.maxBudgetUsd,\n });\n await queryClient.invalidateQueries({ queryKey: [\"process-config\"] });\n setFeedback({ type: \"success\", message: \"Saved\" });\n setEditing(false);\n } catch (err) {\n const body =\n err instanceof ApiError ? (err.body as Record<string, unknown> | null) : null;\n const message =\n typeof body?.error === \"string\"\n ? body.error\n : err instanceof Error\n ? err.message\n : \"Save failed\";\n setFeedback({ type: \"error\", message });\n } finally {\n setSaving(false);\n }\n }\n\n return (\n <Card>\n <CardHeader>\n <div className=\"flex items-center gap-2\">\n <Bot className=\"h-4 w-4 text-muted-foreground\" />\n <CardTitle className=\"text-base\">{title}</CardTitle>\n {config.updatedBy === \"user\" && (\n <Badge variant=\"blue\" className=\"text-xs\">\n Custom\n </Badge>\n )}\n </div>\n {!editing && (\n <Button variant=\"ghost\" size=\"sm\" onClick={beginEdit} className=\"h-8\">\n <Pencil className=\"h-3.5 w-3.5\" />\n Edit\n </Button>\n )}\n </CardHeader>\n\n {!editing && (\n <div className=\"space-y-2\">\n <div className=\"flex flex-wrap items-center gap-2 text-sm\">\n <Badge variant={BACKEND_BADGE_VARIANTS[config.mainBackend]}>\n {getBackendLabel(config.mainBackend)}\n </Badge>\n <span className=\"text-muted-foreground\">{currentModelLabel}</span>\n <Badge\n variant={\n config.defaultTier === \"high\"\n ? \"purple\"\n : config.defaultTier === \"medium\"\n ? \"blue\"\n : \"default\"\n }\n className=\"text-xs\"\n >\n {config.defaultTier}\n </Badge>\n </div>\n {description && (\n <p className=\"text-xs text-muted-foreground\">{description}</p>\n )}\n </div>\n )}\n\n {editing && (\n <div className=\"mt-1 space-y-3\">\n <div className=\"grid gap-3 sm:grid-cols-2\">\n <div className=\"space-y-1.5\">\n <p className=\"text-xs font-medium text-muted-foreground\">Backend</p>\n <Select\n value={draftBackend ?? \"\"}\n onValueChange={(v) => handleBackendChange(v as BackendId)}\n >\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {enabledBackends.map((b) => (\n <SelectItem key={b.id} value={b.id}>\n {getBackendLabel(b.id)}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <div className=\"space-y-1.5\">\n <p className=\"text-xs font-medium text-muted-foreground\">Model</p>\n <Select\n value={draftModel ?? \"\"}\n onValueChange={(v) => setDraftModel(v)}\n >\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {availableModels.map((m) => (\n <SelectItem key={m.modelId} value={m.modelId}>\n {m.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n <div className=\"flex justify-end gap-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={cancelEdit}\n disabled={saving}\n >\n <XCircle className=\"h-3.5 w-3.5\" />\n Cancel\n </Button>\n <Button\n size=\"sm\"\n onClick={() => { void save(); }}\n disabled={saving || !draftModel}\n >\n {saving ? (\n <Loader2 className=\"h-3.5 w-3.5 animate-spin\" />\n ) : (\n <Save className=\"h-3.5 w-3.5\" />\n )}\n Save\n </Button>\n </div>\n </div>\n )}\n\n {feedback && (\n <Alert\n variant={feedback.type === \"success\" ? \"success\" : \"error\"}\n className=\"mt-3\"\n >\n {feedback.message}\n </Alert>\n )}\n </Card>\n );\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Play\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cG9seWdvbiBwb2ludHM9IjYgMyAyMCAxMiA2IDIxIDYgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/play\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Play = createLucideIcon('Play', [\n ['polygon', { points: '6 3 20 12 6 21 6 3', key: '1oa8hb' }],\n]);\n\nexport default Play;\n","\"use client\";\n\nimport { useQuery, useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { api } from \"@/lib/api-client\";\n\n// ── DTO mirrors of the daemon's repositories-store.ts ──\n\nexport type RepositoryClassification = \"project\" | \"repo-only\";\nexport type RepositoryCategory =\n | \"work\"\n | \"personal\"\n | \"research\"\n | \"client\"\n | \"other\";\nexport type RepositoryPollPriority = \"high\" | \"normal\";\nexport type TriggerWorkdirMode = \"temp\" | \"local-clone\";\nexport type TriggerBackend = \"claude\" | \"codex\" | \"gemini\";\nexport type LastScanStatus = \"ok\" | \"failed\" | \"skipped_no_activity\" | null;\n\nexport interface RepositoryDTO {\n id: string;\n githubOwner: string | null;\n githubRepo: string | null;\n githubAccount: string | null;\n localPath: string | null;\n localOnly: boolean;\n displayName: string | null;\n classification: RepositoryClassification;\n category: RepositoryCategory;\n pollPriority: RepositoryPollPriority;\n pollIntervalSec: number | null;\n slug: string;\n createdAt: number;\n updatedAt: number;\n}\n\nexport interface RepositoryTriggerDTO {\n id: string;\n repositoryId: string;\n name: string;\n enabled: boolean;\n eventType: string;\n filters: Record<string, unknown>;\n backend: TriggerBackend;\n model: string;\n workdirMode: TriggerWorkdirMode;\n prompt: string;\n instructionMd: string | null;\n lastFiredAt: number | null;\n fireCount: number;\n createdAt: number;\n updatedAt: number;\n}\n\nexport interface RepositoryManagementDTO {\n repositoryId: string;\n enabled: boolean;\n initCompletedAt: number | null;\n lastScanAt: number | null;\n lastScanStatus: LastScanStatus;\n scanFailureCount: number;\n createdAt?: number;\n updatedAt?: number;\n}\n\nexport interface ArchitectureRefreshState {\n scheduleId: number;\n status: \"pending\" | \"running\";\n}\n\nexport interface RepositoryManagementResponse {\n management: RepositoryManagementDTO;\n architectureRefresh: ArchitectureRefreshState | null;\n}\n\nexport interface RepositoryCreateInput {\n githubOwner?: string | null;\n githubRepo?: string | null;\n githubAccount?: string | null;\n localPath?: string | null;\n localOnly?: boolean;\n displayName?: string | null;\n classification?: RepositoryClassification;\n category?: RepositoryCategory;\n pollPriority?: RepositoryPollPriority;\n pollIntervalSec?: number | null;\n}\n\nexport type RepositoryUpdateInput = RepositoryCreateInput;\n\nexport interface RepositoryTriggerCreateInput {\n name: string;\n enabled?: boolean;\n eventType: string;\n filters?: Record<string, unknown>;\n backend: TriggerBackend;\n model: string;\n workdirMode: TriggerWorkdirMode;\n prompt: string;\n instructionMd?: string | null;\n}\n\nexport type RepositoryTriggerUpdateInput = Partial<RepositoryTriggerCreateInput>;\n\nexport interface RepositoryRunInput {\n backend: TriggerBackend;\n model: string;\n workdirMode: TriggerWorkdirMode;\n prompt: string;\n instructionMd?: string;\n timeoutMinutes?: number;\n}\n\nexport interface RepositoryManagementRunResult {\n status: \"completed\" | \"scheduled\" | \"skipped_no_activity\";\n correlationId: string;\n result?: \"written\" | \"exists\";\n overviewPath?: string;\n journalPath?: string;\n commitCount?: number;\n prEvents?: number;\n workflowEvents?: number;\n readmeCopiedTo?: string | null;\n architectureScheduleId?: number | null;\n}\n\nexport interface ArchitectureRefreshResult {\n status: \"scheduled\";\n scheduleId: number;\n correlationId: string;\n readmeCopiedTo: string | null;\n}\n\nexport interface RepositoryFilters {\n hasGithub?: boolean;\n hasLocal?: boolean;\n localOnly?: boolean;\n account?: string;\n}\n\nconst REPOS_KEY = [\"repositories\"] as const;\nconst repoKey = (id: string) => [...REPOS_KEY, id] as const;\nconst triggersKey = (id: string) => [...repoKey(id), \"triggers\"] as const;\nconst managementKey = (id: string) => [...repoKey(id), \"management\"] as const;\n\nfunction buildQuery(filters?: RepositoryFilters): Record<string, string | number> | undefined {\n if (!filters) return undefined;\n const out: Record<string, string | number> = {};\n if (filters.hasGithub !== undefined) out.has_github = filters.hasGithub ? \"1\" : \"0\";\n if (filters.hasLocal !== undefined) out.has_local = filters.hasLocal ? \"1\" : \"0\";\n if (filters.localOnly !== undefined) out.local_only = filters.localOnly ? \"1\" : \"0\";\n if (filters.account) out.account = filters.account;\n return Object.keys(out).length > 0 ? out : undefined;\n}\n\n// ── Repositories ──\n\nexport function useRepositories(filters?: RepositoryFilters) {\n return useQuery({\n queryKey: filters ? [...REPOS_KEY, filters] : [...REPOS_KEY],\n queryFn: () =>\n api.get<{ repositories: RepositoryDTO[] }>(\n \"/repositories\",\n buildQuery(filters),\n ),\n staleTime: 30_000,\n });\n}\n\nexport function useRepository(id: string | null | undefined) {\n return useQuery({\n queryKey: id ? repoKey(id) : [...REPOS_KEY, \"missing\"],\n queryFn: () => api.get<{ repository: RepositoryDTO }>(`/repositories/${encodeURIComponent(id!)}`),\n enabled: Boolean(id),\n staleTime: 30_000,\n });\n}\n\nexport function useCreateRepository() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: (body: RepositoryCreateInput) =>\n api.post<{ repository: RepositoryDTO }>(\"/repositories\", body),\n onSuccess: () => {\n void qc.invalidateQueries({ queryKey: REPOS_KEY });\n },\n });\n}\n\nexport function useUpdateRepository() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: ({ id, body }: { id: string; body: RepositoryUpdateInput }) =>\n api.patch<{ repository: RepositoryDTO }>(\n `/repositories/${encodeURIComponent(id)}`,\n body,\n ),\n onSuccess: (_data, vars) => {\n void qc.invalidateQueries({ queryKey: REPOS_KEY });\n void qc.invalidateQueries({ queryKey: repoKey(vars.id) });\n },\n });\n}\n\nexport function useDeleteRepository() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n api.delete<{ status: \"deleted\" }>(`/repositories/${encodeURIComponent(id)}`),\n onSuccess: () => {\n void qc.invalidateQueries({ queryKey: REPOS_KEY });\n },\n });\n}\n\nexport function useLinkGithub() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: ({\n id,\n owner,\n repo,\n account,\n }: {\n id: string;\n owner: string;\n repo: string;\n account?: string;\n }) =>\n api.post<{ repository: RepositoryDTO }>(\n `/repositories/${encodeURIComponent(id)}/link-github`,\n { owner, repo, account },\n ),\n onSuccess: (_data, vars) => {\n void qc.invalidateQueries({ queryKey: REPOS_KEY });\n void qc.invalidateQueries({ queryKey: repoKey(vars.id) });\n },\n });\n}\n\nexport function useLinkLocal() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: ({ id, localPath }: { id: string; localPath: string }) =>\n api.post<{ repository: RepositoryDTO }>(\n `/repositories/${encodeURIComponent(id)}/link-local`,\n { localPath },\n ),\n onSuccess: (_data, vars) => {\n void qc.invalidateQueries({ queryKey: REPOS_KEY });\n void qc.invalidateQueries({ queryKey: repoKey(vars.id) });\n },\n });\n}\n\nexport function useRunRepository() {\n return useMutation({\n mutationFn: ({ id, body }: { id: string; body: RepositoryRunInput }) =>\n api.post<{ status: \"scheduled\"; correlationId: string }>(\n `/repositories/${encodeURIComponent(id)}/run`,\n body,\n ),\n });\n}\n\n// ── Repository triggers ──\n\nexport function useRepositoryTriggers(repositoryId: string | null | undefined) {\n return useQuery({\n queryKey: repositoryId ? triggersKey(repositoryId) : [...REPOS_KEY, \"missing\", \"triggers\"],\n queryFn: () =>\n api.get<{ triggers: RepositoryTriggerDTO[] }>(\n `/repositories/${encodeURIComponent(repositoryId!)}/triggers`,\n ),\n enabled: Boolean(repositoryId),\n staleTime: 15_000,\n });\n}\n\nexport function useCreateRepoTrigger() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: ({\n repositoryId,\n body,\n }: {\n repositoryId: string;\n body: RepositoryTriggerCreateInput;\n }) =>\n api.post<{ trigger: RepositoryTriggerDTO }>(\n `/repositories/${encodeURIComponent(repositoryId)}/triggers`,\n body,\n ),\n onSuccess: (_data, vars) => {\n void qc.invalidateQueries({ queryKey: triggersKey(vars.repositoryId) });\n },\n });\n}\n\nexport function useUpdateRepoTrigger() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: ({\n repositoryId,\n triggerId,\n body,\n }: {\n repositoryId: string;\n triggerId: string;\n body: RepositoryTriggerUpdateInput;\n }) =>\n api.patch<{ trigger: RepositoryTriggerDTO }>(\n `/repositories/${encodeURIComponent(repositoryId)}/triggers/${encodeURIComponent(triggerId)}`,\n body,\n ),\n onSuccess: (_data, vars) => {\n void qc.invalidateQueries({ queryKey: triggersKey(vars.repositoryId) });\n },\n });\n}\n\nexport function useDeleteRepoTrigger() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: ({\n repositoryId,\n triggerId,\n }: {\n repositoryId: string;\n triggerId: string;\n }) =>\n api.delete<{ status: \"deleted\" }>(\n `/repositories/${encodeURIComponent(repositoryId)}/triggers/${encodeURIComponent(triggerId)}`,\n ),\n onSuccess: (_data, vars) => {\n void qc.invalidateQueries({ queryKey: triggersKey(vars.repositoryId) });\n },\n });\n}\n\nexport function useTestRepoTrigger() {\n return useMutation({\n mutationFn: ({\n repositoryId,\n triggerId,\n eventType,\n payload,\n }: {\n repositoryId: string;\n triggerId: string;\n eventType?: string;\n payload?: Record<string, unknown>;\n }) =>\n api.post<{ matched: boolean; trigger: RepositoryTriggerDTO; eventType: string }>(\n `/repositories/${encodeURIComponent(repositoryId)}/triggers/${encodeURIComponent(triggerId)}/test`,\n { eventType, payload },\n ),\n });\n}\n\nexport function useFireRepoTrigger() {\n return useMutation({\n mutationFn: ({\n repositoryId,\n triggerId,\n }: {\n repositoryId: string;\n triggerId: string;\n }) =>\n api.post<{ status: \"scheduled\"; correlationId: string }>(\n `/repositories/${encodeURIComponent(repositoryId)}/triggers/${encodeURIComponent(triggerId)}/run`,\n {},\n ),\n });\n}\n\n// ── Repository management ──\n\nexport function useRepositoryManagement(repositoryId: string | null | undefined) {\n return useQuery({\n queryKey: repositoryId ? managementKey(repositoryId) : [...REPOS_KEY, \"missing\", \"management\"],\n queryFn: () =>\n api.get<RepositoryManagementResponse>(\n `/repositories/${encodeURIComponent(repositoryId!)}/management`,\n ),\n enabled: Boolean(repositoryId),\n staleTime: 15_000,\n // Poll while an architecture-refresh agent run is pending or running so\n // the dashboard can re-enable buttons promptly when it completes. Idle\n // state stays event-driven (mutation invalidates the key on click).\n refetchInterval: (query) => {\n const data = query.state.data;\n return data?.architectureRefresh ? 3000 : false;\n },\n });\n}\n\nexport function useSetRepositoryManagement() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: ({ id, enabled }: { id: string; enabled: boolean }) =>\n api.put<{ management: RepositoryManagementDTO }>(\n `/repositories/${encodeURIComponent(id)}/management`,\n { enabled },\n ),\n onSuccess: (_data, vars) => {\n void qc.invalidateQueries({ queryKey: managementKey(vars.id) });\n },\n });\n}\n\nexport function useRunRepoManagementInit() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n api.post<RepositoryManagementRunResult>(\n `/repositories/${encodeURIComponent(id)}/management/init`,\n {},\n ),\n // Awaiting the refetch ensures the management query latches onto\n // `architectureRefresh != null` before `mutateAsync` resolves, so the\n // UI's \"busy\" state hands off cleanly from `isPending` to the polled\n // in-flight flag without a re-enable flicker. The refetch is best-\n // effort: a transient GET failure must not turn a successful mutation\n // into a perceived failure, so we swallow it — the next poll tick\n // (every 3 s while the row is in-flight) recovers state.\n onSuccess: async (_data, id) => {\n try {\n await qc.refetchQueries({ queryKey: managementKey(id) });\n } catch {\n /* refetch is best-effort; polling will recover state */\n }\n },\n });\n}\n\nexport function useRefreshRepositoryArchitecture() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n api.post<ArchitectureRefreshResult>(\n `/repositories/${encodeURIComponent(id)}/management/refresh-architecture`,\n {},\n ),\n onSuccess: async (_data, id) => {\n try {\n await qc.refetchQueries({ queryKey: managementKey(id) });\n } catch {\n /* refetch is best-effort; polling will recover state */\n }\n },\n });\n}\n\nexport function useRunRepoManagementScan() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n api.post<RepositoryManagementRunResult>(\n `/repositories/${encodeURIComponent(id)}/management/scan`,\n {},\n ),\n onSuccess: async (_data, id) => {\n try {\n await qc.refetchQueries({ queryKey: managementKey(id) });\n } catch {\n /* refetch is best-effort; polling will recover state */\n }\n },\n });\n}\n\n// ── Helpers ──\n\nexport function repositoryHasGithub(repo: RepositoryDTO): boolean {\n return Boolean(repo.githubOwner && repo.githubRepo);\n}\n\nexport function repositoryHasLocal(repo: RepositoryDTO): boolean {\n return Boolean(repo.localPath);\n}\n\nexport function repositoryDisplayName(repo: RepositoryDTO): string {\n if (repo.displayName) return repo.displayName;\n if (repositoryHasGithub(repo)) return `${repo.githubOwner}/${repo.githubRepo}`;\n if (repo.localPath) {\n const parts = repo.localPath.replace(/[\\\\/]+$/g, \"\").split(/[\\\\/]+/).filter(Boolean);\n return parts[parts.length - 1] ?? repo.localPath;\n }\n return repo.slug;\n}\n\n/** Source prefixes for the observations API tail per repository. */\nexport function observationSourcesForRepo(repo: RepositoryDTO): string[] {\n const sources: string[] = [];\n if (repo.localPath) sources.push(`git:${repo.localPath}`);\n if (repositoryHasGithub(repo)) {\n const slug = `${repo.githubOwner}/${repo.githubRepo}`;\n sources.push(`github:notification:${slug}`);\n sources.push(`github:workflow:${slug}`);\n }\n return sources;\n}\n"],"names":["EmptyState","icon","Icon","title","description","className","children","DirectoryPickerField","id","value","onChange","placeholder","defaultPath","disabled","inputClassName","buttonLabel","picking","setPicking","pickerError","setPickerError","handlePick","selected","trim","err","Error","message","e","target","type","variant","onClick","pickDirectoryFromDesktop","response","post","status","path","ConnectionsSectionHeader","healthy","total","attention","actions","allHealthy","noneHealthy","STATUS_BADGE","connected","label","configured","connecting","error","cardTone","deriveIntegrationStatus","s","deriveMessagingStatus","runtimeState","deriveConfiguredStatus","messagingMetadata","undefined","ownerConfigured","ownerChannelKnown","notificationEligible","lastInboundAt","ConnectionCard","name","metadata","badge","tone","length","map","m","BACKEND_LABELS","claude","codex","gemini","BACKEND_SHORT_LABELS","BACKEND_PROVIDER_LABELS","BACKEND_PROVIDER_SHORT","BACKEND_WEB_SEARCH_DESCRIPTIONS","BACKEND_COLORS","BACKEND_MODEL_PALETTES","OTHER_MODEL_PALETTE","CHART_CATEGORY_PALETTE","BACKEND_BADGE_VARIANTS","PROCESS_LABELS","getBackendLabel","backendId","getBackendShortLabel","getProcessLabel","processKey","getProcessGroup","startsWith","formatModelName","modelId","replace","formatShortModelName","modelBadgeVariant","backend","detectBackendFromModel","parseModelUsage","json","raw","JSON","parse","entries","Object","v","push","inputTokens","outputTokens","costUsd","sort","a","b","pickDisplayModel","modelUsed","modelUsageJson","lower","toLowerCase","includes","assignModelColors","models","byBackend","Map","model","bucket","get","set","result","list","localeCompare","palette","n","forEach","i","idx","Math","floor","useBackends","options","queryKey","queryFn","enabled","staleTime","useProcessConfig","getModelsForTier","tier","tierModels","filter","ProcessModelCard","queryClient","data","backendsData","processConfigData","editing","setEditing","draftBackend","setDraftBackend","draftModel","setDraftModel","saving","setSaving","feedback","setFeedback","configOrUndef","configs","find","c","backendMap","backends","enabledBackends","config","currentBackend","mainBackend","currentModelLabel","mainModel","draftBackendData","availableModels","beginEdit","cancelEdit","handleBackendChange","nextId","defaultTier","save","put","fallbackBackend","fallbackModel","maxTurns","maxBudgetUsd","invalidateQueries","body","updatedBy","size","onValueChange","REPOS_KEY","repoKey","triggersKey","managementKey","buildQuery","filters","out","hasGithub","has_github","hasLocal","has_local","localOnly","local_only","account","keys","useRepositories","useRepository","encodeURIComponent","Boolean","useCreateRepository","qc","mutationFn","onSuccess","useUpdateRepository","patch","_data","vars","useDeleteRepository","delete","useLinkGithub","owner","repo","useLinkLocal","localPath","useRunRepository","useRepositoryTriggers","repositoryId","useCreateRepoTrigger","useUpdateRepoTrigger","triggerId","useDeleteRepoTrigger","useTestRepoTrigger","eventType","payload","useFireRepoTrigger","useRepositoryManagement","refetchInterval","query","state","architectureRefresh","useSetRepositoryManagement","useRunRepoManagementInit","refetchQueries","useRefreshRepositoryArchitecture","useRunRepoManagementScan","repositoryHasGithub","githubOwner","githubRepo","repositoryHasLocal","repositoryDisplayName","displayName","parts","split","slug","observationSourcesForRepo","sources"],"mappings":"wDACA,EAAA,EAAA,CAAA,CAAA,2BAUO,SAAoB,AAAXA,CACdC,KAAMC,CAAI,OACVC,CAAK,aACLC,CAAW,WACXC,CAAS,UACTC,CAAQ,CACQ,EAChB,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CACCD,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EACX,wEACAA,aAGF,CAAA,EAAA,EAAA,GAAA,EAACH,EAAAA,CAAKG,UAAU,8BAChB,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEA,UAAU,+BAAuBF,IACnCC,GACC,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEC,UAAU,6DAAqDD,IAEnEE,IAGP,6CC/BA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,qCAEO,SAASC,AAAqB,IACnCC,CAAE,OACFC,CAAK,UACLC,CAAQ,OACRP,CAAK,aACLQ,EAAc,oBAAoB,aAClCC,CAAW,CACXC,WAAW,EAAK,WAChBR,CAAS,gBACTS,CAAc,aACdC,EAAc,QAAQ,CAYvB,EACC,GAAM,CAACC,EAASC,EAAW,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,GAAC,GACjC,CAACC,EAAaC,EAAe,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAgB,MAExDC,EAAa,UACjBH,GAAW,GACXE,EAAe,MACf,GAAI,CACF,IAAME,EAAW,MAAM,CAAA,EAAA,EAAA,wBAAA,AAAwB,EAAC,OAC9ClB,EACAS,YAAaH,EAAMa,IAAI,IAAMV,CAC/B,GACIS,GAAUX,EAASW,EACzB,CAAE,MAAOE,EAAK,CACZJ,EACEI,aAAeC,MAAQD,EAAIE,OAAO,CAAG,gCAEzC,QAAU,CACRR,GAAW,EACb,CACF,EAEA,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAIZ,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,YAAaA,aAC9B,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAIA,UAAU,4CACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CACJG,GAAIA,EACJC,MAAOA,EACPC,SAAU,AAACgB,IACThB,EAASgB,EAAEC,MAAM,CAAClB,KAAK,EACvBU,EAAe,KACjB,EACAR,YAAaA,EACbN,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,oBAAqBS,GACnCD,SAAUA,GAAYG,IAExB,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,MAAM,CAAA,CACLY,KAAK,SACLC,QAAQ,UACRC,QAASV,EACTP,SAAUA,GAAYG,EACtBX,UAAU,2BAETW,EACC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,OAAO,CAAA,CAACX,UAAU,yBAEnB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,UAAU,CAAA,CAACA,UAAU,YAEvBW,EAAU,aAAeD,QAG7BG,GACC,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEb,UAAU,oCAA4Ba,MAIjD,4BC1EM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,AAAT,CAAA,CAAA,CAAA,OAAS,OAAA,EAAiB,QAAU,CAAA,CAAA,AACxC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AAAE,EAAG,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,AAAL,QAAK,CAAU,CAAA,CAAA,AACxC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AAAE,EAAG,CAAyC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CAAA,AACtE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AAAE,EAAG,CAAsC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,AAAL,QAAK,CAAU,CAAA,CAAA,AACnE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAE,CAAA,CAAA,CAAI,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAI,CAAM,CAAA,CAAA,CAAA,CAAA,EAAA,CAAI,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CAAA,AAClE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAE,CAAA,CAAA,CAAI,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,AAAJ,CAAU,CAAA,CAAA,CAAA,CAAA,EAAA,CAAI,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,OAAA,CAAS,CAAA,CAClE,CAAA,CAAA,kDCNK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAO,CAAP,SAAO,OAAA,EAAiB,MAAQ,CAAA,CAAA,AACpC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AAAE,EAAG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CACzC,AADyC,CACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AAAE,EAAG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,AAAL,QAAK,CAAU,CAAA,CAC1C,CAAA,CAAA,gDCHD,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAR,AAAQ,CAAR,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAiB,OAAS,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAE,CAAA,CAAA,AAAG,iBAAmB,CAAA,CAAA,CAAA,CAAA,CAAK,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC,CAAA,CAAA,iDCArF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAa,CAAb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAa,OAAA,EAAiB,YAAc,CAAA,CAAA,AAChD,CAAA,AACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AACA,CAAA,AACE,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AACH,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AACP,CAAA,CACF,CACD,CAAA,CAAA,sDCrBD,IAAA,EAAA,EAAA,CAAA,CAAA,OAGO,eAAea,EAAyB,OAC7C5B,CAAK,aACLS,CAAW,CAIZ,EACC,IAAMoB,EAAW,MAAM,EAAA,GAAG,CAACC,IAAI,CAC7B,yBACA,OACE9B,EACA,GAAIS,EAAc,aAAEA,CAAY,EAAI,CAAC,CAAC,AACxC,GAGF,GAAIoB,AAAoB,eAAXE,MAAM,EAAmBF,EAASG,IAAI,CACjD,CADmD,MAC5CH,EAASG,IAAI,CAEtB,GAAwB,aAAa,CAAjCH,EAASE,MAAM,CACjB,OAAO,IAET,OAAM,AAAIV,MAAMQ,EAASP,OAAO,EAAI,gCACtC,+DCZM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,AAAZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAY,OAAA,EAAiB,WAAa,CAAA,CAAA,AAC9C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AAAE,EAAG,CAAqD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CAAA,AAClF,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE,AAAF,EAAK,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CAC1C,CAAA,CAAA,sECbD,EAAA,EAAA,CAAA,CAAA,yCAeO,SAASW,AAAyB,OACvCjC,CAAK,aACLC,CAAW,SACXiC,CAAO,OACPC,CAAK,WACLC,CAAS,SACTC,CAAO,CACuB,EAC9B,IAAMC,EAAaH,EAAQ,GAAKD,IAAYC,EACtCI,EAAcJ,EAAQ,GAAiB,IAAZD,EAEjC,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAIhC,UAAU,sBACb,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAIA,UAAU,sDACb,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CAAGA,UAAU,kDAA0CF,IACxD,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAIE,UAAU,oCACZiC,EAAQ,GACP,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CACCjC,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EACX,mCACAoC,EACI,yCACAC,EACE,wBACA,gDAGPL,EAAQ,IAAEC,EAAM,gBAGpBE,QAGJpC,GACC,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEC,UAAU,mDAA2CD,IAEzDmC,GACC,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAElC,UAAU,sDACVkC,MAKX,6CC1DA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAgBA,IAAMI,EAAyG,CAC7GC,UAAW,CAAEf,QAAS,QAASgB,MAAO,WAAY,EAClDC,WAAY,CAAEjB,QAAS,QAASgB,MAAO,YAAa,EACpDE,WAAY,CAAElB,QAAS,QAASgB,MAAO,aAAc,EACrD,cAAe,CAAEhB,QAAS,OAAQgB,MAAO,gBAAiB,EAC1DG,MAAO,CAAEnB,QAAS,MAAOgB,MAAO,OAAQ,EACxChC,SAAU,CAAEgB,QAAS,OAAQgB,MAAO,UAAW,CACjD,0BAgEO,SAASgB,AAAe,MAC7BC,CAAI,MACJ7D,CAAI,QACJiC,CAAM,OACNc,CAAK,UACLe,CAAQ,UACRzD,CAAQ,WACRD,CAAS,CACW,EACpB,IAAM2D,EAAQrB,CAAY,CAACT,EAAO,CAElC,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,IAAI,CAAA,CAAC+B,KAzEO,AAAX/B,AAAJ,CAyEce,YAzEc,GAAO,UAC/Bf,AAAW,SAAS,CAwEDA,EAxEQ,QACxB,UAuEyB7B,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,WAAYA,aAEtD,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAIA,UAAU,mDACb,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAIA,UAAU,oCACb,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAKA,UAAU,iCAAyBJ,IACzC,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CAAGI,UAAU,+CAAuCyD,OAEvD,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CAACjC,QAASmC,EAAMnC,OAAO,UAAGmC,EAAMnB,KAAK,MAK5CG,GAASd,AAAW,kBACnB,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE7B,UAAU,uDAA+C2C,IAI7De,GAAYA,EAASG,MAAM,CAAG,GAC7B,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI7D,UAAU,4BACZ0D,EAASI,GAAG,CAAC,AAACC,GACb,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAkB/D,UAAU,sDAC3B,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAKA,UAAU,iCAAyB+D,EAAEvB,KAAK,GAChD,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAKxC,UAAU,2BAAmB+D,EAAE3D,KAAK,KAFlC2D,EAAEvB,KAAK,KAStBvC,IAGP,6BA1EO,SAASgD,AAAuBR,CAAmB,EACxD,OAAOA,EAAa,aAAe,aACrC,8BAzBO,SAASI,AACdC,CAAsC,SAEtC,AAAKA,GAAG,AACHA,CADD,CACGL,UAAU,CACbK,CADe,CACbH,KAAK,CADe,AACN,CAAP,OACTG,EAAEP,SAAS,CAAS,CAAP,WACV,aAJQ,aAKjB,4BAGO,SAASQ,AACdD,CAAoC,SAEpC,AAAKA,GAAG,AACe,CADnB,iBACqC,CAArCA,EAAEE,IAA0C,QAA9B,CACK,cAAc,CAAjCF,EAAEE,YAAY,CAA0B,aACrB,SAAS,CAA5BF,EAAEE,YAAY,CAAqB,QAChB,MAAM,CAAzBF,EAAEE,YAAY,CAAkB,YAC7B,aALQ,aAMjB,wBAQO,SAASE,AAAkBrB,CAAyC,EACzE,GAAKA,CAAD,CACJ,MADa,AACN,CACL,CAAEW,KAFgBW,CAET,mBAAoB/C,MAAOyB,EAAOuB,eAAe,CAAG,MAAQ,IAAK,EAC1E,CAAEZ,MAAO,sBAAuBpC,MAAOyB,EAAOwB,iBAAiB,CAAG,MAAQ,IAAK,EAC/E,CAAEb,MAAO,oBAAqBpC,MAAOyB,EAAOyB,oBAAoB,CAAG,MAAQ,IAAK,EAChF,CAAEd,MAAO,eAAgBpC,MAAOyB,EAAO0B,aAAa,EAAI,GAAI,EAC7D,AACH,4BC9DM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAc,CAAd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,OAAA,EAAiB,aAAe,CAAA,CAAA,AAClD,CAAA,AACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AACA,CAAA,AACE,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AACH,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACP,AADO,CACP,CACF,CAAA,AACA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AAAE,EAAG,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CAC/C,CAAA,CAAA,uDCTK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAW,CAAX,CAAA,CAAA,CAAA,CAAA,KAAW,OAAA,EAAiB,UAAY,CAAA,CAAA,AAC5C,CAAA,AACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,AADA,CACA,AACE,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AACH,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AACP,CAAA,CACF,CAAA,AACA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAU,CAAE,CAAA,CAAA,CAAI,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAI,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CACnF,CAAA,CAAA,oDCpBM,IAAMS,EAA4C,CACvDC,OAAQ,cACRC,MAAO,eACPC,OAAQ,YACV,EAEMC,EAAkD,CACtDH,OAAQ,SACRC,MAAO,QACPC,OAAQ,QACV,EAgGaS,EAAwE,CACnFX,OAAQ,SACRC,MAAO,OACPC,OAAQ,MACV,EAEMU,EAAyC,CAC7C,0BAA2B,kBAC3B,yBAA0B,iBAC1B,wBAAyB,gBACzB,yBAA0B,iBAC1B,uBAAwB,eACxB,0BAA2B,kBAC3B,aAAc,kBACd,kBAAmB,WACnB,iBAAkB,iBAClB,aAAc,kBACd,kBAAmB,kBACnB,eAAkB,uBAClB,uCAAwC,yBACxC,kBAAmB,qBACnB,wBAAyB,yBACzB,6BAA8B,qBAC9B,kBAAmB,kBACnB,eAAgB,eAChB,WAAY,UACd,EA4GO,SAASe,EAAgBC,CAA+B,MAEzDC,EADJ,GAAI,CAACD,EAAM,MAAO,EAAE,CAEpB,GAAI,CACFC,EAAMC,KAAKC,KAAK,CAACH,EACnB,CAAE,KAAM,CACN,MAAO,EAAE,AACX,CACA,GAAI,CAACC,GAAsB,UAAf,OAAOA,EAAkB,MAAO,EAAE,CAE9C,IAAMG,EAA8B,EAAE,CACtC,IAAK,GAAM,CAACX,EAASlF,EAAM,GAAI8F,OAAOD,OAAO,CAACH,GACvC1F,EAD6C,CACpC,AAAiB,UAAU,OAApBA,GAErB6F,EAAQG,IAAI,CAAC,SACXd,EACAe,YAAa,AAAyB,iBAAlBF,EAAEE,WAAW,CAAgBF,EAAEE,WAAW,CAAG,EACjEC,aAAwC,UAA1B,OAAOH,EAAEG,YAAY,CAAgBH,EAAEG,YAAY,CAAG,EACpEC,QAA8B,UAArB,OAAOJ,EAAEI,OAAO,CAAgBJ,AALjC/F,EAKmCmG,OAAO,CAAG,CACvD,GAEF,OAAON,EAAQO,IAAI,CAAC,CAACC,EAAGC,IAAMA,EAAEH,OAAO,CAAGE,EAAEF,OAAO,CACrD,CAmBO,SAASZ,EAAuBL,CAAe,EACpD,GAAI,CAACA,EAAS,OAAO,KACrB,IAAMwB,EAAQxB,EAAQyB,WAAW,UACjC,AACED,EAAME,QAAQ,CAAC,WACfF,EAAME,QAAQ,CAAC,WACfF,EAAME,QAAQ,CAAC,SACfF,EAAME,QAAQ,CAAC,SAER,CADP,QAGEF,EAAME,QAAQ,CAAC,UAAkB,CAAP,QAE5BF,EAAME,QAAQ,CAAC,QACfF,EAAME,QAAQ,CAAC,UACfF,EAAME,QAAQ,CAAC,OACfF,EAAME,QAAQ,CAAC,MAER,CADP,OAGK,IACT,oFA3RkE,CAChE/C,OAAQ,qBACRC,MAAO,mBACPC,OAAQ,iBACV,6BAGiE,CAC/DF,OAAQ,SACRC,MAAO,UACPC,OAAQ,QACV,sCAe0E,CACxEF,OAAQ,2DACRC,MACE,sIACFC,OAAQ,sDACV,mDA+GO,SAASkB,AAAgBC,CAAkC,SAChE,AAAKA,EAEEA,EAFH,AAGDC,KAHW,EAGJ,CAAC,WAAY,WACpBA,OAAO,CAAC,QAAS,QACjBA,OAAO,CAAC,WAAY,WACpBA,OAAO,CAAC,KAAM,KACdA,OAAO,CAAC,gBAAiB,aACzBA,OAAO,CAAC,YAAa,OACrBA,OAAO,CAAC,cAAe,SACvBA,OAAO,CAAC,aAAc,QACtBA,OAAO,CAAC,aAAc,QACtBA,OAAO,CAAC,cAAe,SACvBA,OAAO,CAAC,aAAc,QACtBA,OAAO,CAAC,eAAgB,UACxBA,OAAO,CAAC,cAAe,SACvBA,OAAO,CAAC,OAAQ,KAChBtE,IAAI,GAjBc,SAkBvB,2BAMO,SAASuE,AAAqBF,CAAkC,EACrE,GAAI,CAACA,EAAS,MAAO,UAGrB,GAAgB,SAAZA,EAAoB,MAAO,OAC/B,GAAgB,WAAZA,EAAsB,MAAO,SAEjC,IAAIxC,EAAIwC,EACLC,OAAO,CAAC,WAAY,IAAuB,AAC3CA,OAAO,CAAC,WAAY,IAAwB,AAC5CA,OAAO,CAAC,KAFuE,mBAE9C,CAD4C,QAE7EA,AAD2C,OACpC,CAAC,KAAM,KAMjB,CAN+C,MADwB,AAInED,EAAQF,UAAU,CAAC,SAHoD,CAG3CtC,EAAI,CAAC,IAAI,EAAEA,EAAEyC,OAAO,CAAC,WAAY,IAAA,CAAA,AAAK,EAClED,EAAQF,UAAU,CAAC,aAAYtC,EAAIA,EAAEyC,OAAO,CAAC,cAAe,UAAA,EAEzDzC,EACJyC,OAAO,CAAC,aAAc,QACtBA,OAAO,CAAC,eAAgB,UACxBA,OAAO,CAAC,cAAe,SACvBA,OAAO,CAAC,YAAa,OACrBA,OAAO,CAAC,cAAe,SACvBA,OAAO,CAAC,aAAc,QACtBA,OAAO,CAAC,aAAc,QACtBA,OAAO,CAAC,OAAQ,KAChBtE,IAAI,EACT,sBA/EO,SAAS6D,AAAgBC,CAAoB,EAClD,OAAOf,CAAc,CAACe,EAAU,AAClC,2BAEO,SAASC,AAAqBD,CAAoB,EACvD,OAAOX,CAAoB,CAACW,EAAU,AACxC,sBAMO,SAASI,AAAgBD,CAAkB,SAC5CA,AAAJ,EAAeE,UAAU,CAAC,SAAiB,CAAP,MAChCF,EAAWE,UAAU,CAAC,aAAeF,EAAWE,UAAU,CAAC,cACtD,CADqE,cAG1EF,EAAWE,UAAU,CAAC,YAAoB,CAAP,UACnCF,EAAWE,UAAU,CAAC,SAAWF,EAAWE,UAAU,CAAC,WAClD,CAD8D,cAGnEF,EAAWE,UAAU,CAAC,cAA+B,kBAAkB,CAAjCF,EACjC,eAEF,OACT,sBAjBO,SAASD,AAAgBC,CAAkB,EAChD,OAAOL,CAAc,CAACK,EAAW,EAAIA,CACvC,wBAwEO,SAASO,AAAkBH,CAAkC,EAClE,GAAI,CAACA,EAAS,MAAO,OACrB,IAAMI,EAAUC,EAAuBL,GACvC,OAAOI,EAAUd,CAAsB,CAACc,EAAQ,CAAG,MACrD,6CAkDO,SAASiB,AACdC,CAAoC,CACpCC,CAAyC,EAEzC,IAAMZ,EAAUL,EAAgBiB,UAChC,AAAIZ,EAAQpC,MAAM,CAAG,GAAKoC,CAAO,CAAC,EAAE,CAC3BA,CAD6B,AACtB,CAAC,EAAE,CAACX,OAAO,CAEpBsB,GAAa,IACtB,4BC5QM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAY,CAAZ,CAAA,CAAA,CAAA,CAAA,CAAA,IAAY,OAAA,EAAiB,WAAa,CAAA,CAAA,AAC9C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AAAE,EAAG,CAAsD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CACnF,AADmF,CAClF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AAAE,EAAG,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CAAA,AAC3C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AAAE,EAAG,CAAuD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CAAA,AACpF,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AAAE,EAAG,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CAC3C,CAAA,CAAA,qDChBD,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,4BAGO,SAASuB,AAAYC,CAA+B,EACzD,MAAO,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAC,CACdC,SAAU,CAAC,WAAW,CACtBC,QAAS,IAAM,EAAA,GAAG,CAACf,GAAG,CAAmB,aACzCgB,QAASH,GAASG,UAAW,EAC7BC,UAAW,GACb,EACF,2BCAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAS,CAAT,CAAA,CAAA,OAAS,OAAA,EAAiB,QAAU,CAAA,CACxC,AADwC,CACxC,AACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AACA,CAAA,AACE,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AACH,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AACP,CAAA,CACF,CACA,AADA,CACC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AAAE,EAAG,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CAC3C,CAAA,CAAA,iDCTK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAO,CAAP,SAAO,OAAA,EAAiB,MAAQ,CAAA,CACpC,AADoC,CACpC,AACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AACA,CAAA,AACE,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AACH,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AACP,CAAA,CACF,CAAA,AACA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AAAE,EAAG,CAA6C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CAAA,AAC1E,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AAAE,EAAG,CAA0B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CACxD,CAAA,CAAA,gDCVK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAO,CAAP,SAAO,OAAA,EAAiB,MAAQ,CAAA,CAAA,AACpC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AAAE,KAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,AAAG,KAAM,CAAI,CAAA,CAAA,GAAA,CAAK,CAAA,EAAI,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,AACxF,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE,AAAF,EAAK,CAA4B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CAC1D,CAAA,CAAA,+CCHK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,AAAV,CAAA,CAAA,CAAA,CAAA,MAAU,OAAA,EAAiB,SAAW,CAAA,CAAA,AAC1C,CAAC,QAAU,CAAA,CAAA,AAAE,EAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAI,CAAA,CAAA,IAAA,CAAM,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAM,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,AACzD,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AAAE,EAAG,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CAAA,AAC1C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AAAE,EAAG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,AAAL,QAAK,CAAU,CAAA,CAC1C,CAAA,CAAA,kDCfD,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,iCAGO,SAASC,AAAiBL,CAA+B,EAC9D,MAAO,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAC,CACdC,SAAU,CAAC,iBAAiB,CAC5BC,QAAS,IAAM,EAAA,GAAG,CAACf,GAAG,CAAwB,mBAC9CgB,QAASH,GAASG,UAAW,EAC7BC,UAAW,GACb,EACF,4BCAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,AAAN,UAAM,OAAA,EAAiB,KAAO,CAAA,CAAA,AAClC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AAAE,EAAG,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CAAA,AAC1C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAE,AAAF,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,AAAO,KAAM,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAM,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,EAAG,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CAC9E,AAD8E,CAC7E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AAAE,EAAG,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CAAA,AACxC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AAAE,EAAG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CAAA,AACzC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AAAE,EAAG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CACzC,AADyC,CACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AAAE,EAAG,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CACzC,CAAA,CAAA,gEClBD,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA,MAEA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAOA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,iCAiBO,SAASM,AAAiB,YAC/B5D,CAAU,OACVpF,EAAQ,UAAU,aAClBC,CAAW,CACW,EACtB,IAAMgJ,EAAc,CAAA,EAAA,EAAA,cAAA,AAAc,IAC5B,CAAEC,KAAMC,CAAY,CAAE,CAAG,CAAA,EAAA,EAAA,WAAA,AAAW,IACpC,CAAED,KAAME,CAAiB,CAAE,CAAG,CAAA,EAAA,EAAA,gBAAA,AAAgB,IAE9C,CAACC,EAASC,EAAW,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,GAAC,GACjC,CAACC,EAAcC,EAAgB,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAmB,MAC7D,CAACC,EAAYC,EAAc,CAAG,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAwB,MACtD,CAACC,EAAQC,EAAU,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,GAAC,GAC/B,CAACC,EAAUC,EAAY,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAG9B,MAEJC,EAAgBX,GAAmBY,QAAQC,KAAK,AAACC,GAAMA,EAAE9E,UAAU,GAAKA,GACxE+E,EAAa,IAAI7C,IAAI,CAAC6B,GAAciB,UAAY,EAAA,AAAE,EAAEpG,GAAG,CAAC,AAAC4C,GAAM,CAACA,EAAEvG,EAAE,CAAEuG,EAAE,GACxEyD,EAAkB,CAAClB,GAAciB,UAAY,EAAA,AAAE,EAAErB,MAAM,CAAC,AAACnC,GAAMA,EAAE6B,OAAO,EAE9E,GAAI,CAACU,GAAgB,CAACC,GAAqB,CAACW,EAC1C,OAAO,KAMT,CAP2D,GAOrDQ,EAAiBJ,EAAW1C,GAAG,CAAC6C,EAAOE,WAAW,EAClDC,EACJF,GAAgBnD,OAAO6C,KAAK,AAAChG,GAAMA,EAAEuB,OAAO,GAAK8E,AAJpCP,EAI2CW,SAAS,GAAGhI,OACpE,CAAA,EAAA,EAAA,eAAA,AAAe,EAAC4H,EAAOI,SAAS,EAE5BC,EAAmBpB,EAAeY,EAAW1C,GAAG,CAAC8B,GAAgB,KACjEqB,EAAkBD,GAAkBvD,QAAU,EAAE,CAuBtD,eAAe8D,IACb,GAAI,AAAC3B,GAAiBE,GACtBG,GAAU,GACVE,EAAY,CAFsB,CAAb,IAGrB,GAAI,CACF,MAAM,EAAA,GAAG,CAACqB,GAAG,CAAC,CAAC,gBAAgB,EAAE/F,EAAAA,CAAY,CAAE,CAC7CoF,YAAajB,EACbmB,UAAWjB,EACX2B,gBAAiBd,EAAOc,eAAe,CACvCC,cAAef,EAAOe,aAAa,CACnCC,SAAUhB,EAAOgB,QAAQ,CACzBC,aAAcjB,EAAOiB,YAAY,AACnC,GACA,MAAMtC,EAAYuC,iBAAiB,CAAC,CAAEjD,SAAU,CAAC,iBAAiB,AAAC,GACnEuB,EAAY,CAAErI,KAAM,UAAWH,QAAS,OAAQ,GAChDgI,GAAW,EACb,CAAE,MAAOlI,EAAK,CACZ,IAAMqK,EACJrK,aAAe,EAAA,QAAQ,CAAIA,EAAIqK,IAAI,CAAsC,KAO3E3B,EAAY,CAAErI,KAAM,QAASH,QALJ,UAAvB,OAAOmK,GAAM5I,MACT4I,EAAK5I,KAAK,CACVzB,aAAeC,MACbD,EAAIE,OAAO,CACX,aAC6B,EACvC,QAAU,CACRsI,GAAU,EACZ,EACF,CAEA,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,IAAI,CAAA,WACH,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,UAAU,CAAA,WACT,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI1J,UAAU,oCACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,GAAG,CAAA,CAACA,UAAU,kCACf,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,SAAS,CAAA,CAACA,UAAU,qBAAaF,IACZ,SAArBsK,EAAOoB,SAAS,EACf,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CAAChK,QAAQ,OAAOxB,UAAU,mBAAU,cAK7C,CAACmJ,GACA,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,MAAM,CAAA,CAAC3H,QAAQ,QAAQiK,KAAK,KAAKhK,QAjE1C,CAiEmDkJ,QAjE1CA,EACPrB,EAAgBc,EAAOE,WAAW,EAClCd,EAAcY,EAAOI,SAAS,EAC9BZ,EAAY,MACZR,GAAW,EACb,EA4D8DpJ,UAAU,gBAC9D,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CAACA,UAAU,gBAAgB,aAMvC,CAACmJ,GACA,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAInJ,UAAU,sBACb,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAIA,UAAU,sDACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CAACwB,QAAS,EAAA,sBAAsB,CAAC4I,EAAOE,WAAW,CAAC,UACvD,CAAA,EAAA,EAAA,eAAA,AAAe,EAACF,EAAOE,WAAW,IAErC,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAKtK,UAAU,iCAAyBuK,IACzC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CACJ/I,QACyB,SAAvB4I,EAAOW,WAAW,CACd,SACuB,WAAvBX,EAAOW,WAAW,CAChB,OACA,UAER/K,UAAU,mBAEToK,EAAOW,WAAW,MAGtBhL,GACC,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEC,UAAU,yCAAiCD,OAKnDoJ,GACC,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAInJ,UAAU,2BACb,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAIA,UAAU,sCACb,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAIA,UAAU,wBACb,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEA,UAAU,qDAA4C,YACzD,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,MAAM,CAAA,CACLI,MAAOiJ,GAAgB,GACvBqC,cAAe,AAACvF,GAAM0E,CA5FpC,SAASA,AAAoBC,CAAiB,UAC5C,MAAMpF,EAAUuE,EAAW1C,GAAG,CAACuD,GAC/B,GAAI,CAACpF,EAAS,OACd4D,EAAgBwB,GAChB,IAAMlC,GA3DgB1B,EA2DcxB,EAAQwB,EA3DA,IA2DzBwB,AAA+B,CA3DJC,EA2DMyB,EA3D0B,AA2DnBW,WAAW,CAzDjEnC,CADDA,EAAa1B,EAAO2B,MAAM,CAAC,AAAC9E,GAAMA,EAAE4E,IAAI,GAAKA,IACjC9E,MAAM,CAAG,EAAI+E,EAAa1B,GA0D1CsC,EAAcZ,CAAU,CAAC,EAAE,EAAEtD,SAAWI,EAAQwB,MAAM,CAAC,EAAE,EAAE5B,SAAW,IACxE,EAsFwDa,aAE1C,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,aAAa,CAAA,UACZ,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,WAAW,CAAA,CAAA,KAEd,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,aAAa,CAAA,UACXgE,EAAgBrG,GAAG,CAAC,AAAC4C,GACpB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,UAAU,CAAA,CAAYtG,MAAOsG,EAAEvG,EAAE,UAC/B,CAAA,EAAA,EAAA,eAAA,AAAe,EAACuG,EAAEvG,EAAE,GADNuG,EAAEvG,EAAE,WAO7B,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAIH,UAAU,wBACb,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEA,UAAU,qDAA4C,UACzD,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,MAAM,CAAA,CACLI,MAAOmJ,GAAc,GACrBmC,cAAe,AAACvF,GAAMqD,EAAcrD,aAEpC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,aAAa,CAAA,UACZ,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,WAAW,CAAA,CAAA,KAEd,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,aAAa,CAAA,UACXuE,EAAgB5G,GAAG,CAAC,AAACC,GACpB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,UAAU,CAAA,CAAiB3D,MAAO2D,EAAEuB,OAAO,UACzCvB,EAAEvB,KAAK,EADOuB,EAAEuB,OAAO,cAQpC,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAItF,UAAU,mCACb,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,MAAM,CAAA,CACLwB,QAAQ,UACRiK,KAAK,KACLhK,QAvIZ,CAuIqBmJ,QAvIZA,EACPxB,GAAW,GACXE,EAAgB,MAChBE,EAAc,KAChB,EAoIYhJ,SAAUiJ,YAEV,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,OAAO,CAAA,CAACzJ,UAAU,gBAAgB,YAGrC,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,MAAM,CAAA,CACLyL,KAAK,KACLhK,QAAS,KAAauJ,GAAQ,EAC9BxK,SAAUiJ,GAAU,CAACF,YAEpBE,EACC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,OAAO,CAAA,CAACzJ,UAAU,6BAEnB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,IAAI,CAAA,CAACA,UAAU,gBAChB,gBAOT2J,GACC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CACJnI,QAA2B,YAAlBmI,EAASpI,IAAI,CAAiB,UAAY,QACnDvB,UAAU,gBAET2J,EAASvI,OAAO,KAK3B,4BC3OM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAO,CAAP,SAAO,OAAA,EAAiB,MAAQ,CAAA,CAAA,AACpC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,AAAE,OAAQ,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CAC5D,CAAA,CAAA,gDCbD,IAAA,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAyIA,IAAMuK,EAAY,CAAC,eAAe,CAC5BC,EAAU,AAACzL,GAAe,IAAIwL,EAAWxL,EAAG,CAC5C0L,EAAc,AAAC1L,GAAe,IAAIyL,EAAQzL,GAAK,WAAW,CAC1D2L,EAAgB,AAAC3L,GAAe,IAAIyL,EAAQzL,GAAK,aAAa,CA2U7D,SAAS+O,EAAoBxB,CAAmB,EACrD,OAAOb,EAAQa,EAAKyB,WAAW,EAAIzB,EAAK0B,UAAAA,AAAU,CACpD,oCAiBO,SAASO,AAA0BjC,CAAmB,EAC3D,IAAMkC,EAAoB,EAAE,CAE5B,GADIlC,EAAKE,SAAS,EAAEgC,EAAQxJ,IAAI,CAAC,CAAC,IAAI,EAAEsH,EAAKE,SAAS,CAAA,CAAE,EACpDsB,EAAoBxB,GAAO,CAC7B,IAAMgC,EAAO,CAAA,EAAGhC,EAAKyB,WAAW,CAAC,CAAC,EAAEzB,EAAK0B,UAAU,CAAA,CAAE,CACrDQ,EAAQxJ,IAAI,CAAC,CAAC,oBAAoB,EAAEsJ,EAAAA,CAAM,EAC1CE,EAAQxJ,IAAI,CAAC,CAAC,gBAAgB,EAAEsJ,EAAAA,CAAM,CACxC,CACA,OAAOE,CACT,4BApBO,SAASN,AAAsB5B,CAAmB,EACvD,GAAIA,EAAK6B,WAAW,CAAE,OAAO7B,EAAK6B,WAAW,CAC7C,GAAIL,EAAoBxB,GAAO,MAAO,CAAA,EAAGA,EAAKyB,WAAW,CAAC,CAAC,EAAEzB,EAAK0B,UAAU,CAAA,CAAE,CAC9E,GAAI1B,EAAKE,SAAS,CAAE,CAClB,IAAM4B,EAAQ9B,EAAKE,SAAS,CAACrI,OAAO,CAAC,WAAY,IAAIkK,KAAK,CAAC,UAAU5G,MAAM,CAACgE,SAC5E,OAAO2C,CAAK,CAACA,EAAM3L,MAAM,CAAG,EAAE,EAAI6J,EAAKE,SAAS,AAClD,CACA,OAAOF,EAAKgC,IAAI,AAClB,mDAZO,SAASL,AAAmB3B,CAAmB,EACpD,OAAOb,CAAQa,EAAKE,SAAS,AAC/B,2BAzMO,SAASI,EACd,IAAMjB,EAAK,CAAA,EAAA,EAAA,cAAA,AAAc,IACzB,MAAO,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,CACjBC,WAAY,CAAC,cACXe,CAAY,CACZxC,MAAI,CAIL,GACC,EAAA,GAAG,CAAC3J,IAAI,CACN,CAAC,cAAc,EAAEgL,mBAAmBmB,GAAc,SAAS,CAAC,CAC5DxC,GAEJ0B,UAAW,CAACG,EAAOC,KACZN,EAAGzB,iBAAiB,CAAC,CAAEjD,SAAUwD,EAAYwB,EAAKU,YAAY,CAAE,EACvE,CACF,EACF,0BAvHO,SAASjB,EACd,IAAMC,EAAK,CAAA,EAAA,EAAA,cAAA,AAAc,IACzB,MAAO,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,CACjBC,WAAY,AAACzB,GACX,EAAA,GAAG,CAAC3J,IAAI,CAAgC,gBAAiB2J,GAC3D0B,UAAW,KACJF,EAAGzB,iBAAiB,CAAC,CAAEjD,SAAUsD,CAAU,EAClD,CACF,EACF,2BAsIO,SAASwC,EACd,IAAMpB,EAAK,CAAA,EAAA,EAAA,cAAc,AAAd,IACX,MAAO,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,CACjBC,WAAY,CAAC,cACXe,CAAY,WACZG,CAAS,CAIV,GACC,EAAA,GAAG,CAACX,MAAM,CACR,CAAC,cAAc,EAAEX,mBAAmBmB,GAAc,UAAU,EAAEnB,mBAAmBsB,GAAAA,CAAY,EAEjGjB,UAAW,CAACG,EAAOC,KACZN,EAAGzB,iBAAiB,CAAC,CAAEjD,SAAUwD,EAAYwB,EAAKU,YAAY,CAAE,EACvE,CACF,EACF,0BAtIO,SAAST,EACd,IAAMP,EAAK,CAAA,EAAA,EAAA,cAAA,AAAc,IACzB,MAAO,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,CACjBC,WAAY,AAAC7M,GACX,EAAA,GAAG,CAACoN,MAAM,CAAwB,CAAC,cAAc,EAAEX,mBAAmBzM,GAAAA,CAAK,EAC7E8M,UAAW,KACJF,EAAGzB,iBAAiB,CAAC,CAAEjD,SAAUsD,CAAU,EAClD,CACF,EACF,yBAmJO,SAAS4C,EACd,MAAO,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,CACjBvB,WAAY,CAAC,cACXe,CAAY,WACZG,CAAS,CAIV,GACC,EAAA,GAAG,CAACtM,IAAI,CACN,CAAC,cAAc,EAAEgL,mBAAmBmB,GAAc,UAAU,EAAEnB,mBAAmBsB,GAAW,IAAI,CAAC,CACjG,CAAC,EAEP,EACF,oBA/JO,SAASV,EACd,IAAMT,EAAK,CAAA,EAAA,EAAA,cAAA,AAAc,IACzB,MAAO,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,CACjBC,WAAY,CAAC,IACX7M,CAAE,OACFsN,CAAK,MACLC,CAAI,SACJlB,CAAO,CAMR,GACC,EAAA,GAAG,CAAC5K,IAAI,CACN,CAAC,cAAc,EAAEgL,mBAAmBzM,GAAI,YAAY,CAAC,CACrD,OAAEsN,EAAOC,eAAMlB,CAAQ,GAE3BS,UAAW,CAACG,EAAOC,KACZN,EAAGzB,iBAAiB,CAAC,CAAEjD,SAAUsD,CAAU,GAC3CoB,EAAGzB,iBAAiB,CAAC,CAAEjD,SAAUuD,EAAQyB,EAAKlN,EAAE,CAAE,EACzD,CACF,EACF,mBAEO,SAASwN,EACd,IAAMZ,EAAK,CAAA,EAAA,EAAA,cAAA,AAAc,IACzB,MAAO,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,CACjBC,WAAY,CAAC,IAAE7M,CAAE,CAAEyN,WAAS,CAAqC,GAC/D,EAAA,GAAG,CAAChM,IAAI,CACN,CAAC,cAAc,EAAEgL,mBAAmBzM,GAAI,WAAW,CAAC,CACpD,WAAEyN,CAAU,GAEhBX,UAAW,CAACG,EAAOC,KACZN,EAAGzB,iBAAiB,CAAC,CAAEjD,SAAUsD,CAAU,GAC3CoB,EAAGzB,iBAAiB,CAAC,CAAEjD,SAAUuD,EAAQyB,EAAKlN,EAAE,CAAE,EACzD,CACF,EACF,uCAuLO,SAAS6O,EACd,IAAMjC,EAAK,CAAA,EAAA,EAAA,cAAA,AAAc,IACzB,MAAO,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,CACjBC,WAAY,AAAC7M,GACX,EAAA,GAAG,CAACyB,IAAI,CACN,CAAC,cAAc,EAAEgL,mBAAmBzM,GAAI,gCAAgC,CAAC,CACzE,CAAC,GAEL8M,UAAW,MAAOG,EAAOjN,KACvB,GAAI,CACF,MAAM4M,EAAGgC,cAAc,CAAC,CAAE1G,SAAUyD,EAAc3L,EAAI,EACxD,CAAE,KAAM,CAER,CACF,CACF,EACF,sBAvSO,SAASuM,AAAgBV,CAA2B,EACzD,MAAO,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAC,CACd3D,SAAU2D,EAAU,IAAIL,EAAWK,EAAQ,CAAG,IAAIL,EAAU,CAC5DrD,QAAS,IACP,EAAA,GAAG,CAACf,GAAG,CACL,gBACAwE,AAlBR,SAASA,AAAWC,CAA2B,EAC7C,GAAI,CAACA,EAAS,OAAO7I,AACrB,IAAM8I,EAAuC,CAAC,EAK9C,YAJ0B9I,IAAtB6I,EAAQE,SAAS,GAAgBD,EAAIE,UAAU,CAAGH,EAAQE,SAAS,CAAG,IAAM,GAAA,OACvD/I,IAArB6I,EAAQI,QAAQ,GAAgBH,EAAII,SAAS,CAAGL,EAAQI,QAAQ,CAAG,IAAM,GAAA,OACnDjJ,IAAtB6I,EAAQM,SAAS,GAAgBL,EAAIM,UAAU,CAAGP,EAAQM,SAAS,CAAG,IAAM,GAAA,EAC5EN,EAAQQ,OAAO,GAAEP,EAAIO,OAAO,CAAGR,EAAQQ,OAAAA,AAAO,EAC3CtG,OAAOuG,IAAI,CAACR,GAAKpI,MAAM,CAAG,EAAIoI,OAAM9I,CAC7C,EAUmB6I,IAEfxD,UAAW,GACb,EACF,8BAmNO,SAASgG,AAAwBT,CAAuC,EAC7E,MAAO,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAC,CACd1F,SAAU0F,EAAejC,EAAciC,GAAgB,IAAIpC,EAAW,UAAW,aAAa,CAC9FrD,QAAS,IACP,EAAA,GAAG,CAACf,GAAG,CACL,CAAC,cAAc,EAAEqF,mBAAmBmB,GAAe,WAAW,CAAC,EAEnExF,SAASsE,CAAQkB,EACjBvF,UAAW,KAIXiG,gBAAiB,AAACC,IAChB,IAAM1F,EAAO0F,EAAMC,KAAK,CAAC3F,IAAI,CAC7B,QAAOA,GAAM4F,qBAAsB,GACrC,CACF,EACF,CAHgD,2BA7HzC,SAASd,AAAsBC,CAAuC,EAC3E,MAAO,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAC,CACd1F,SAAU0F,EAAelC,EAAYkC,GAAgB,IAAIpC,EAAW,UAAW,WAAW,CAC1FrD,QAAS,IACP,EAAA,GAAG,CAACf,GAAG,CACL,CAAC,cAAc,EAAEqF,mBAAmBmB,GAAe,SAAS,CAAC,EAEjExF,QAASsE,EAAQkB,EACjBvF,UAAW,IACb,EACF,+BAsIO,SAASsG,EACd,IAAM/B,EAAK,CAAA,EAAA,EAAA,cAAA,AAAc,IACzB,MAAO,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,CACjBC,WAAa7M,AAAD,GACV,EAAA,GAAG,CAACyB,IAAI,CACN,CAAC,cAAc,EAAEgL,mBAAmBzM,GAAI,gBAAgB,CAAC,CACzD,CAAC,GASL8M,UAAW,MAAOG,EAAOjN,KACvB,GAAI,CACF,MAAM4M,EAAGgC,cAAc,CAAC,CAAE1G,SAAUyD,EAAc3L,EAAI,EACxD,CAAE,KAAM,CAER,CACF,CACF,EACF,+BAoBO,SAAS8O,EACd,IAAMlC,EAAK,CAAA,EAAA,EAAA,cAAc,AAAd,IACX,MAAO,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,CACjBC,WAAY,AAAC7M,GACX,EAAA,GAAG,CAACyB,IAAI,CACN,CAAC,cAAc,EAAEgL,mBAAmBzM,GAAI,gBAAgB,CAAC,CACzD,CAAC,GAEL8M,UAAW,MAAOG,EAAOjN,KACvB,GAAI,CACF,MAAM4M,EAAGgC,cAAc,CAAC,CAAE1G,SAAUyD,EAAc3L,EAAI,EACxD,CAAE,KAAM,CAER,CACF,CACF,EACF,iCAzEO,SAAS0O,EACd,IAAM9B,EAAK,CAAA,EAAA,EAAA,cAAA,AAAc,IACzB,MAAO,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,CACjBC,WAAY,CAAC,IAAE7M,CAAE,SAAEoI,CAAO,CAAoC,GAC5D,EAAA,GAAG,CAAC0C,GAAG,CACL,CAAC,cAAc,EAAE2B,mBAAmBzM,GAAI,WAAW,CAAC,CACpD,CAAEoI,SAAQ,GAEd0E,UAAW,CAACG,EAAOC,KACZN,EAAGzB,iBAAiB,CAAC,CAAEjD,SAAUyD,EAAcuB,EAAKlN,EAAE,CAAE,EAC/D,CACF,EACF,yBArEO,SAASiO,EACd,MAAO,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,CACjBpB,WAAY,CAAC,cACXe,CAAY,WACZG,CAAS,CACTG,WAAS,SACTC,CAAO,CAMR,GACC,EAAA,GAAG,CAAC1M,IAAI,CACN,CAAC,cAAc,EAAEgL,mBAAmBmB,GAAc,UAAU,EAAEnB,mBAAmBsB,GAAW,KAAK,CAAC,CAClG,WAAEG,EAAWC,SAAQ,EAE3B,EACF,2BA3DO,SAASL,EACd,IAAMlB,EAAK,CAAA,EAAA,EAAA,cAAA,AAAc,IACzB,MAAO,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,CACjBC,WAAY,CAAC,cACXe,CAAY,WACZG,CAAS,MACT3C,CAAI,CAKL,GACC,EAAA,GAAG,CAAC4B,KAAK,CACP,CAAC,cAAc,EAAEP,mBAAmBmB,GAAc,UAAU,EAAEnB,mBAAmBsB,GAAAA,CAAY,CAC7F3C,GAEJ0B,UAAW,CAACG,EAAOC,KACZN,EAAGzB,iBAAiB,CAAC,CAAEjD,SAAUwD,EAAYwB,EAAKU,YAAY,CAAE,EACvE,CACF,EACF,0BAlIO,SAASb,EACd,IAAMH,EAAK,CAAA,EAAA,EAAA,cAAA,AAAc,IACzB,MAAO,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,CACjBC,WAAY,CAAC,IAAE7M,CAAE,MAAEoL,CAAI,CAA+C,GACpE,EAAA,GAAG,CAAC4B,KAAK,CACP,CAAC,cAAc,EAAEP,mBAAmBzM,GAAAA,CAAK,CACzCoL,GAEJ0B,UAAW,CAACG,EAAOC,KACZN,EAAGzB,iBAAiB,CAAC,CAAEjD,SAAUsD,CAAU,GAC3CoB,EAAGzB,iBAAiB,CAAC,CAAEjD,SAAUuD,EAAQyB,EAAKlN,EAAE,CAAE,EACzD,CACF,EACF","ignoreList":[2,3,4,5,7,10,11,13,15,16,17,18,20,22]}
@@ -0,0 +1,3 @@
1
+ module.exports=[48972,a=>{"use strict";a.s(["clamp",0,function(a,[b,c]){return Math.min(c,Math.max(b,a))}])},30400,a=>{"use strict";var b=a.i(39752),c=a.i(48558);let d=(0,a.i(42261).cva)("rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]",{variants:{tone:{default:"border-border bg-card",warning:"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30",success:"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30",error:"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30"},interactive:{true:"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]",false:""}},defaultVariants:{tone:"default",interactive:!1}});a.s(["Card",0,function({className:a,tone:e,interactive:f,...g}){return(0,b.jsx)("div",{className:(0,c.cn)(d({tone:e,interactive:f}),a),...g})},"CardHeader",0,function({className:a,...d}){return(0,b.jsx)("div",{className:(0,c.cn)("mb-3 flex items-center justify-between",a),...d})},"CardStatLabel",0,function({className:a,...d}){return(0,b.jsx)("h3",{className:(0,c.cn)("text-sm font-medium text-muted-foreground",a),...d})},"CardTitle",0,function({className:a,...d}){return(0,b.jsx)("h3",{className:(0,c.cn)("text-lg font-semibold text-foreground",a),...d})},"CardValue",0,function({className:a,...d}){return(0,b.jsx)("div",{className:(0,c.cn)("text-3xl font-bold text-foreground",a),...d})}])},60380,a=>{"use strict";var b=a.i(34542);a.i(39752);var c=b.createContext(void 0);a.s(["useDirection",0,function(a){let d=b.useContext(c);return a||d||"ltr"}])},69471,a=>{"use strict";var b=a.i(34542),c=a.i(95819),d=a.i(80303),e=a.i(92274),f=a.i(39752),g=new WeakMap;function h(a,b){var c,d;let e,f,g;if("at"in Array.prototype)return Array.prototype.at.call(a,b);let h=(c=a,d=b,e=c.length,(g=(f=i(d))>=0?f:e+f)<0||g>=e?-1:g);return -1===h?void 0:a[h]}function i(a){return a!=a||0===a?0:Math.trunc(a)}(class a extends Map{#a;constructor(a){super(a),this.#a=[...super.keys()],g.set(this,!0)}set(a,b){return g.get(this)&&(this.has(a)?this.#a[this.#a.indexOf(a)]=a:this.#a.push(a)),super.set(a,b),this}insert(a,b,c){let d,e=this.has(b),f=this.#a.length,g=i(a),h=g>=0?g:f+g,j=h<0||h>=f?-1:h;if(j===this.size||e&&j===this.size-1||-1===j)return this.set(b,c),this;let k=this.size+ +!e;g<0&&h++;let l=[...this.#a],m=!1;for(let a=h;a<k;a++)if(h===a){let f=l[a];l[a]===b&&(f=l[a+1]),e&&this.delete(b),d=this.get(f),this.set(b,c)}else{m||l[a-1]!==b||(m=!0);let c=l[m?a:a-1],e=d;d=this.get(c),this.delete(c),this.set(c,e)}return this}with(b,c,d){let e=new a(this);return e.insert(b,c,d),e}before(a){let b=this.#a.indexOf(a)-1;if(!(b<0))return this.entryAt(b)}setBefore(a,b,c){let d=this.#a.indexOf(a);return -1===d?this:this.insert(d,b,c)}after(a){let b=this.#a.indexOf(a);if(-1!==(b=-1===b||b===this.size-1?-1:b+1))return this.entryAt(b)}setAfter(a,b,c){let d=this.#a.indexOf(a);return -1===d?this:this.insert(d+1,b,c)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#a=[],super.clear()}delete(a){let b=super.delete(a);return b&&this.#a.splice(this.#a.indexOf(a),1),b}deleteAt(a){let b=this.keyAt(a);return void 0!==b&&this.delete(b)}at(a){let b=h(this.#a,a);if(void 0!==b)return this.get(b)}entryAt(a){let b=h(this.#a,a);if(void 0!==b)return[b,this.get(b)]}indexOf(a){return this.#a.indexOf(a)}keyAt(a){return h(this.#a,a)}from(a,b){let c=this.indexOf(a);if(-1===c)return;let d=c+b;return d<0&&(d=0),d>=this.size&&(d=this.size-1),this.at(d)}keyFrom(a,b){let c=this.indexOf(a);if(-1===c)return;let d=c+b;return d<0&&(d=0),d>=this.size&&(d=this.size-1),this.keyAt(d)}find(a,b){let c=0;for(let d of this){if(Reflect.apply(a,b,[d,c,this]))return d;c++}}findIndex(a,b){let c=0;for(let d of this){if(Reflect.apply(a,b,[d,c,this]))return c;c++}return -1}filter(b,c){let d=[],e=0;for(let a of this)Reflect.apply(b,c,[a,e,this])&&d.push(a),e++;return new a(d)}map(b,c){let d=[],e=0;for(let a of this)d.push([a[0],Reflect.apply(b,c,[a,e,this])]),e++;return new a(d)}reduce(...a){let[b,c]=a,d=0,e=c??this.at(0);for(let c of this)e=0===d&&1===a.length?c:Reflect.apply(b,this,[e,c,d,this]),d++;return e}reduceRight(...a){let[b,c]=a,d=c??this.at(-1);for(let c=this.size-1;c>=0;c--){let e=this.at(c);d=c===this.size-1&&1===a.length?e:Reflect.apply(b,this,[d,e,c,this])}return d}toSorted(b){return new a([...this.entries()].sort(b))}toReversed(){let b=new a;for(let a=this.size-1;a>=0;a--){let c=this.keyAt(a),d=this.get(c);b.set(c,d)}return b}toSpliced(...b){let c=[...this.entries()];return c.splice(...b),new a(c)}slice(b,c){let d=new a,e=this.size-1;if(void 0===b)return d;b<0&&(b+=this.size),void 0!==c&&c>0&&(e=c-1);for(let a=b;a<=e;a++){let b=this.keyAt(a),c=this.get(b);d.set(b,c)}return d}every(a,b){let c=0;for(let d of this){if(!Reflect.apply(a,b,[d,c,this]))return!1;c++}return!0}some(a,b){let c=0;for(let d of this){if(Reflect.apply(a,b,[d,c,this]))return!0;c++}return!1}}),a.s(["createCollection",0,function(a){let g=a+"CollectionProvider",[h,i]=(0,c.createContextScope)(g),[j,k]=h(g,{collectionRef:{current:null},itemMap:new Map}),l=a=>{let{scope:c,children:d}=a,e=b.default.useRef(null),g=b.default.useRef(new Map).current;return(0,f.jsx)(j,{scope:c,itemMap:g,collectionRef:e,children:d})};l.displayName=g;let m=a+"CollectionSlot",n=(0,e.createSlot)(m),o=b.default.forwardRef((a,b)=>{let{scope:c,children:e}=a,g=k(m,c),h=(0,d.useComposedRefs)(b,g.collectionRef);return(0,f.jsx)(n,{ref:h,children:e})});o.displayName=m;let p=a+"CollectionItemSlot",q="data-radix-collection-item",r=(0,e.createSlot)(p),s=b.default.forwardRef((a,c)=>{let{scope:e,children:g,...h}=a,i=b.default.useRef(null),j=(0,d.useComposedRefs)(c,i),l=k(p,e);return b.default.useEffect(()=>(l.itemMap.set(i,{ref:i,...h}),()=>void l.itemMap.delete(i))),(0,f.jsx)(r,{...{[q]:""},ref:j,children:g})});return s.displayName=p,[{Provider:l,Slot:o,ItemSlot:s},function(c){let d=k(a+"CollectionConsumer",c);return b.default.useCallback(()=>{let a=d.collectionRef.current;if(!a)return[];let b=Array.from(a.querySelectorAll(`[${q}]`));return Array.from(d.itemMap.values()).sort((a,c)=>b.indexOf(a.ref.current)-b.indexOf(c.ref.current))},[d.collectionRef,d.itemMap])},i]}])},57216,a=>{"use strict";var b=a.i(34542),c=a.i(59653),d=a.i(95819),e=a.i(47427),f=a.i(18867),g=a.i(80303),h=a.i(30419),i=a.i(73490),j=a.i(55277),k=a.i(39752),l="Collapsible",[m,n]=(0,d.createContextScope)(l),[o,p]=m(l),q=b.forwardRef((a,c)=>{let{__scopeCollapsible:d,open:f,defaultOpen:g,disabled:i,onOpenChange:m,...n}=a,[p,q]=(0,e.useControllableState)({prop:f,defaultProp:g??!1,onChange:m,caller:l});return(0,k.jsx)(o,{scope:d,disabled:i,contentId:(0,j.useId)(),open:p,onOpenToggle:b.useCallback(()=>q(a=>!a),[q]),children:(0,k.jsx)(h.Primitive.div,{"data-state":w(p),"data-disabled":i?"":void 0,...n,ref:c})})});q.displayName=l;var r="CollapsibleTrigger",s=b.forwardRef((a,b)=>{let{__scopeCollapsible:d,...e}=a,f=p(r,d);return(0,k.jsx)(h.Primitive.button,{type:"button","aria-controls":f.contentId,"aria-expanded":f.open||!1,"data-state":w(f.open),"data-disabled":f.disabled?"":void 0,disabled:f.disabled,...e,ref:b,onClick:(0,c.composeEventHandlers)(a.onClick,f.onOpenToggle)})});s.displayName=r;var t="CollapsibleContent",u=b.forwardRef((a,b)=>{let{forceMount:c,...d}=a,e=p(t,a.__scopeCollapsible);return(0,k.jsx)(i.Presence,{present:c||e.open,children:({present:a})=>(0,k.jsx)(v,{...d,ref:b,present:a})})});u.displayName=t;var v=b.forwardRef((a,c)=>{let{__scopeCollapsible:d,present:e,children:i,...j}=a,l=p(t,d),[m,n]=b.useState(e),o=b.useRef(null),q=(0,g.useComposedRefs)(c,o),r=b.useRef(0),s=r.current,u=b.useRef(0),v=u.current,x=l.open||m,y=b.useRef(x),z=b.useRef(void 0);return b.useEffect(()=>{let a=requestAnimationFrame(()=>y.current=!1);return()=>cancelAnimationFrame(a)},[]),(0,f.useLayoutEffect)(()=>{let a=o.current;if(a){z.current=z.current||{transitionDuration:a.style.transitionDuration,animationName:a.style.animationName},a.style.transitionDuration="0s",a.style.animationName="none";let b=a.getBoundingClientRect();r.current=b.height,u.current=b.width,y.current||(a.style.transitionDuration=z.current.transitionDuration,a.style.animationName=z.current.animationName),n(e)}},[l.open,e]),(0,k.jsx)(h.Primitive.div,{"data-state":w(l.open),"data-disabled":l.disabled?"":void 0,id:l.contentId,hidden:!x,...j,ref:q,style:{"--radix-collapsible-content-height":s?`${s}px`:void 0,"--radix-collapsible-content-width":v?`${v}px`:void 0,...a.style},children:x&&i})});function w(a){return a?"open":"closed"}a.s(["Collapsible",0,q,"CollapsibleContent",0,u,"CollapsibleTrigger",0,s],57216)}];
2
+
3
+ //# sourceMappingURL=_0tjsh16._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../node_modules/.pnpm/%40radix-ui%2Bnumber%401.1.1/node_modules/%40radix-ui/number/src/number.ts","../../../../../../packages/dashboard/src/components/ui/card.tsx","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-direction%401.1.1_%40types%2Breact%4019.2.14_react%4019.2.4/node_modules/%40radix-ui/react-direction/src/direction.tsx","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-collection%401.1.7_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.14__%40types%2Br_161926fa2509d0b7370b60b8bb4eb8b0/node_modules/%40radix-ui/react-collection/src/collection-legacy.tsx","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-collection%401.1.7_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.14__%40types%2Br_161926fa2509d0b7370b60b8bb4eb8b0/node_modules/%40radix-ui/react-collection/src/collection.tsx","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-collection%401.1.7_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.14__%40types%2Br_161926fa2509d0b7370b60b8bb4eb8b0/node_modules/%40radix-ui/react-collection/src/ordered-dictionary.ts","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-collapsible%401.1.12_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.14__%40types_10a2c6d0ac3bcc7422bd3020fe61e076/node_modules/%40radix-ui/react-collapsible/dist/index.mjs","../../../../../../packages/dashboard/src/components/ui/collapsible.tsx"],"sourcesContent":["function clamp(value: number, [min, max]: [number, number]): number {\n return Math.min(max, Math.max(min, value));\n}\n\nexport { clamp };\n","import { cn } from \"@/lib/utils\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\nimport type { HTMLAttributes } from \"react\";\n\nconst cardVariants = cva(\n \"rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]\",\n {\n variants: {\n tone: {\n default: \"border-border bg-card\",\n warning:\n \"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30\",\n success:\n \"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30\",\n error:\n \"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30\",\n },\n interactive: {\n true: \"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]\",\n false: \"\",\n },\n },\n defaultVariants: { tone: \"default\", interactive: false },\n },\n);\n\nexport interface CardProps\n extends HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof cardVariants> {}\n\nexport function Card({ className, tone, interactive, ...props }: CardProps) {\n return (\n <div className={cn(cardVariants({ tone, interactive }), className)} {...props} />\n );\n}\n\nexport function CardHeader({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"mb-3 flex items-center justify-between\", className)} {...props} />;\n}\n\nexport function CardTitle({ className, ...props }: HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h3\n className={cn(\"text-lg font-semibold text-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport function CardStatLabel({\n className,\n ...props\n}: HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h3\n className={cn(\"text-sm font-medium text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport function CardValue({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"text-3xl font-bold text-foreground\", className)} {...props} />;\n}\n","import * as React from 'react';\n\ntype Direction = 'ltr' | 'rtl';\nconst DirectionContext = React.createContext<Direction | undefined>(undefined);\n\n/* -------------------------------------------------------------------------------------------------\n * Direction\n * -----------------------------------------------------------------------------------------------*/\n\ninterface DirectionProviderProps {\n children?: React.ReactNode;\n dir: Direction;\n}\nconst DirectionProvider: React.FC<DirectionProviderProps> = (props) => {\n const { dir, children } = props;\n return <DirectionContext.Provider value={dir}>{children}</DirectionContext.Provider>;\n};\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction useDirection(localDir?: Direction) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || 'ltr';\n}\n\nconst Provider = DirectionProvider;\n\nexport {\n useDirection,\n //\n Provider,\n //\n DirectionProvider,\n};\n","import React from 'react';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createSlot, type Slot } from '@radix-ui/react-slot';\n\ntype SlotProps = React.ComponentPropsWithoutRef<typeof Slot>;\ntype CollectionElement = HTMLElement;\ninterface CollectionProps extends SlotProps {\n scope: any;\n}\n\n// We have resorted to returning slots directly rather than exposing primitives that can then\n// be slotted like `<CollectionItem as={Slot}>\u2026</CollectionItem>`.\n// This is because we encountered issues with generic types that cannot be statically analysed\n// due to creating them dynamically via createCollection.\n\nfunction createCollection<ItemElement extends HTMLElement, ItemData = {}>(name: string) {\n /* -----------------------------------------------------------------------------------------------\n * CollectionProvider\n * ---------------------------------------------------------------------------------------------*/\n\n const PROVIDER_NAME = name + 'CollectionProvider';\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n\n type ContextValue = {\n collectionRef: React.RefObject<CollectionElement | null>;\n itemMap: Map<\n React.RefObject<ItemElement | null>,\n { ref: React.RefObject<ItemElement | null> } & ItemData\n >;\n };\n\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext<ContextValue>(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: new Map() }\n );\n\n const CollectionProvider: React.FC<{ children?: React.ReactNode; scope: any }> = (props) => {\n const { scope, children } = props;\n const ref = React.useRef<CollectionElement>(null);\n const itemMap = React.useRef<ContextValue['itemMap']>(new Map()).current;\n return (\n <CollectionProviderImpl scope={scope} itemMap={itemMap} collectionRef={ref}>\n {children}\n </CollectionProviderImpl>\n );\n };\n\n CollectionProvider.displayName = PROVIDER_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionSlot\n * ---------------------------------------------------------------------------------------------*/\n\n const COLLECTION_SLOT_NAME = name + 'CollectionSlot';\n\n const CollectionSlotImpl = createSlot(COLLECTION_SLOT_NAME);\n const CollectionSlot = React.forwardRef<CollectionElement, CollectionProps>(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return <CollectionSlotImpl ref={composedRefs}>{children}</CollectionSlotImpl>;\n }\n );\n\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionItem\n * ---------------------------------------------------------------------------------------------*/\n\n const ITEM_SLOT_NAME = name + 'CollectionItemSlot';\n const ITEM_DATA_ATTR = 'data-radix-collection-item';\n\n type CollectionItemSlotProps = ItemData & {\n children: React.ReactNode;\n scope: any;\n };\n\n const CollectionItemSlotImpl = createSlot(ITEM_SLOT_NAME);\n const CollectionItemSlot = React.forwardRef<ItemElement, CollectionItemSlotProps>(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef<ItemElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...(itemData as unknown as ItemData) });\n return () => void context.itemMap.delete(ref);\n });\n\n return (\n <CollectionItemSlotImpl {...{ [ITEM_DATA_ATTR]: '' }} ref={composedRefs}>\n {children}\n </CollectionItemSlotImpl>\n );\n }\n );\n\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * useCollection\n * ---------------------------------------------------------------------------------------------*/\n\n function useCollection(scope: any) {\n const context = useCollectionContext(name + 'CollectionConsumer', scope);\n\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current!) - orderedNodes.indexOf(b.ref.current!)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n\n return getItems;\n }\n\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope,\n ] as const;\n}\n\nexport { createCollection };\nexport type { CollectionProps };\n","import React from 'react';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createSlot, type Slot } from '@radix-ui/react-slot';\nimport type { EntryOf } from './ordered-dictionary';\nimport { OrderedDict } from './ordered-dictionary';\n\ntype SlotProps = React.ComponentPropsWithoutRef<typeof Slot>;\ntype CollectionElement = HTMLElement;\ninterface CollectionProps extends SlotProps {\n scope: any;\n}\n\ninterface BaseItemData {\n id?: string;\n}\n\ntype ItemDataWithElement<\n ItemData extends BaseItemData,\n ItemElement extends HTMLElement,\n> = ItemData & {\n element: ItemElement;\n};\n\ntype ItemMap<ItemElement extends HTMLElement, ItemData extends BaseItemData> = OrderedDict<\n ItemElement,\n ItemDataWithElement<ItemData, ItemElement>\n>;\n\nfunction createCollection<\n ItemElement extends HTMLElement,\n ItemData extends BaseItemData = BaseItemData,\n>(name: string) {\n /* -----------------------------------------------------------------------------------------------\n * CollectionProvider\n * ---------------------------------------------------------------------------------------------*/\n\n const PROVIDER_NAME = name + 'CollectionProvider';\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n\n type ContextValue = {\n collectionElement: CollectionElement | null;\n collectionRef: React.Ref<CollectionElement | null>;\n collectionRefObject: React.RefObject<CollectionElement | null>;\n itemMap: ItemMap<ItemElement, ItemData>;\n setItemMap: React.Dispatch<React.SetStateAction<ItemMap<ItemElement, ItemData>>>;\n };\n\n const [CollectionContextProvider, useCollectionContext] = createCollectionContext<ContextValue>(\n PROVIDER_NAME,\n {\n collectionElement: null,\n collectionRef: { current: null },\n collectionRefObject: { current: null },\n itemMap: new OrderedDict(),\n setItemMap: () => void 0,\n }\n );\n\n type CollectionState = [\n ItemMap: ItemMap<ItemElement, ItemData>,\n SetItemMap: React.Dispatch<React.SetStateAction<ItemMap<ItemElement, ItemData>>>,\n ];\n\n const CollectionProvider: React.FC<{\n children?: React.ReactNode;\n scope: any;\n state?: CollectionState;\n }> = ({ state, ...props }) => {\n return state ? (\n <CollectionProviderImpl {...props} state={state} />\n ) : (\n <CollectionInit {...props} />\n );\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n\n const CollectionInit: React.FC<{\n children?: React.ReactNode;\n scope: any;\n }> = (props) => {\n const state = useInitCollection();\n return <CollectionProviderImpl {...props} state={state} />;\n };\n CollectionInit.displayName = PROVIDER_NAME + 'Init';\n\n const CollectionProviderImpl: React.FC<{\n children?: React.ReactNode;\n scope: any;\n state: CollectionState;\n }> = (props) => {\n const { scope, children, state } = props;\n const ref = React.useRef<CollectionElement>(null);\n const [collectionElement, setCollectionElement] = React.useState<CollectionElement | null>(\n null\n );\n const composeRefs = useComposedRefs(ref, setCollectionElement);\n const [itemMap, setItemMap] = state;\n\n React.useEffect(() => {\n if (!collectionElement) return;\n\n const observer = getChildListObserver(() => {\n // setItemMap((map) => {\n // const copy = new OrderedDict(map).toSorted(([, a], [, b]) =>\n // !a.element || !b.element ? 0 : isElementPreceding(a.element, b.element) ? -1 : 1\n // );\n // // check if the order has changed\n // let index = -1;\n // for (const entry of copy) {\n // index++;\n // const key = map.keyAt(index)!;\n // const [copyKey] = entry;\n // if (key !== copyKey) {\n // // order has changed!\n // return copy;\n // }\n // }\n // return map;\n // });\n });\n observer.observe(collectionElement, {\n childList: true,\n subtree: true,\n });\n return () => {\n observer.disconnect();\n };\n }, [collectionElement]);\n\n return (\n <CollectionContextProvider\n scope={scope}\n itemMap={itemMap}\n setItemMap={setItemMap}\n collectionRef={composeRefs}\n collectionRefObject={ref}\n collectionElement={collectionElement}\n >\n {children}\n </CollectionContextProvider>\n );\n };\n\n CollectionProviderImpl.displayName = PROVIDER_NAME + 'Impl';\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionSlot\n * ---------------------------------------------------------------------------------------------*/\n\n const COLLECTION_SLOT_NAME = name + 'CollectionSlot';\n\n const CollectionSlotImpl = createSlot(COLLECTION_SLOT_NAME);\n const CollectionSlot = React.forwardRef<CollectionElement, CollectionProps>(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return <CollectionSlotImpl ref={composedRefs}>{children}</CollectionSlotImpl>;\n }\n );\n\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionItem\n * ---------------------------------------------------------------------------------------------*/\n\n const ITEM_SLOT_NAME = name + 'CollectionItemSlot';\n const ITEM_DATA_ATTR = 'data-radix-collection-item';\n\n type CollectionItemSlotProps = ItemData & {\n children: React.ReactNode;\n scope: any;\n };\n\n const CollectionItemSlotImpl = createSlot(ITEM_SLOT_NAME);\n const CollectionItemSlot = React.forwardRef<ItemElement, CollectionItemSlotProps>(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef<ItemElement>(null);\n const [element, setElement] = React.useState<ItemElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, setElement);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n\n const { setItemMap } = context;\n\n const itemDataRef = React.useRef(itemData);\n if (!shallowEqual(itemDataRef.current, itemData)) {\n itemDataRef.current = itemData;\n }\n const memoizedItemData = itemDataRef.current;\n\n React.useEffect(() => {\n const itemData = memoizedItemData;\n setItemMap((map) => {\n if (!element) {\n return map;\n }\n\n if (!map.has(element)) {\n map.set(element, { ...(itemData as unknown as ItemData), element });\n return map.toSorted(sortByDocumentPosition);\n }\n\n return map\n .set(element, { ...(itemData as unknown as ItemData), element })\n .toSorted(sortByDocumentPosition);\n });\n\n return () => {\n setItemMap((map) => {\n if (!element || !map.has(element)) {\n return map;\n }\n map.delete(element);\n return new OrderedDict(map);\n });\n };\n }, [element, memoizedItemData, setItemMap]);\n\n return (\n <CollectionItemSlotImpl {...{ [ITEM_DATA_ATTR]: '' }} ref={composedRefs as any}>\n {children}\n </CollectionItemSlotImpl>\n );\n }\n );\n\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * useInitCollection\n * ---------------------------------------------------------------------------------------------*/\n\n function useInitCollection() {\n return React.useState<ItemMap<ItemElement, ItemData>>(new OrderedDict());\n }\n\n /* -----------------------------------------------------------------------------------------------\n * useCollection\n * ---------------------------------------------------------------------------------------------*/\n\n function useCollection(scope: any) {\n const { itemMap } = useCollectionContext(name + 'CollectionConsumer', scope);\n\n return itemMap;\n }\n\n const functions = {\n createCollectionScope,\n useCollection,\n useInitCollection,\n };\n\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n functions,\n ] as const;\n}\n\nexport { createCollection };\nexport type { CollectionProps };\n\nfunction shallowEqual(a: any, b: any) {\n if (a === b) return true;\n if (typeof a !== 'object' || typeof b !== 'object') return false;\n if (a == null || b == null) return false;\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n for (const key of keysA) {\n if (!Object.prototype.hasOwnProperty.call(b, key)) return false;\n if (a[key] !== b[key]) return false;\n }\n return true;\n}\n\nfunction isElementPreceding(a: Element, b: Element) {\n return !!(b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING);\n}\n\nfunction sortByDocumentPosition<E extends HTMLElement, T extends BaseItemData>(\n a: EntryOf<ItemMap<E, T>>,\n b: EntryOf<ItemMap<E, T>>\n) {\n return !a[1].element || !b[1].element\n ? 0\n : isElementPreceding(a[1].element, b[1].element)\n ? -1\n : 1;\n}\n\nfunction getChildListObserver(callback: () => void) {\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'childList') {\n callback();\n return;\n }\n }\n });\n\n return observer;\n}\n","// Not a real member because it shouldn't be accessible, but the super class\n// calls `set` which needs to read the instanciation state, so it can't be a\n// private member.\nconst __instanciated = new WeakMap<OrderedDict<any, any>, boolean>();\nexport class OrderedDict<K, V> extends Map<K, V> {\n #keys: K[];\n\n constructor(iterable?: Iterable<readonly [K, V]> | null | undefined);\n constructor(entries?: readonly (readonly [K, V])[] | null) {\n super(entries);\n this.#keys = [...super.keys()];\n __instanciated.set(this, true);\n }\n\n set(key: K, value: V) {\n if (__instanciated.get(this)) {\n if (this.has(key)) {\n this.#keys[this.#keys.indexOf(key)] = key;\n } else {\n this.#keys.push(key);\n }\n }\n super.set(key, value);\n return this;\n }\n\n insert(index: number, key: K, value: V) {\n const has = this.has(key);\n const length = this.#keys.length;\n const relativeIndex = toSafeInteger(index);\n let actualIndex = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;\n const safeIndex = actualIndex < 0 || actualIndex >= length ? -1 : actualIndex;\n\n if (safeIndex === this.size || (has && safeIndex === this.size - 1) || safeIndex === -1) {\n this.set(key, value);\n return this;\n }\n\n const size = this.size + (has ? 0 : 1);\n\n // If you insert at, say, -2, without this bit you'd replace the\n // second-to-last item and push the rest up one, which means the new item is\n // 3rd to last. This isn't very intuitive; inserting at -2 is more like\n // saying \"make this item the second to last\".\n if (relativeIndex < 0) {\n actualIndex++;\n }\n\n const keys = [...this.#keys];\n let nextValue: V | undefined;\n let shouldSkip = false;\n for (let i = actualIndex; i < size; i++) {\n if (actualIndex === i) {\n let nextKey = keys[i]!;\n if (keys[i] === key) {\n nextKey = keys[i + 1]!;\n }\n if (has) {\n // delete first to ensure that the item is moved to the end\n this.delete(key);\n }\n nextValue = this.get(nextKey);\n this.set(key, value);\n } else {\n if (!shouldSkip && keys[i - 1] === key) {\n shouldSkip = true;\n }\n const currentKey = keys[shouldSkip ? i : i - 1]!;\n const currentValue = nextValue!;\n nextValue = this.get(currentKey);\n this.delete(currentKey);\n this.set(currentKey, currentValue);\n }\n }\n return this;\n }\n\n with(index: number, key: K, value: V) {\n const copy = new OrderedDict(this);\n copy.insert(index, key, value);\n return copy;\n }\n\n before(key: K) {\n const index = this.#keys.indexOf(key) - 1;\n if (index < 0) {\n return undefined;\n }\n return this.entryAt(index);\n }\n\n /**\n * Sets a new key-value pair at the position before the given key.\n */\n setBefore(key: K, newKey: K, value: V) {\n const index = this.#keys.indexOf(key);\n if (index === -1) {\n return this;\n }\n return this.insert(index, newKey, value);\n }\n\n after(key: K) {\n let index = this.#keys.indexOf(key);\n index = index === -1 || index === this.size - 1 ? -1 : index + 1;\n if (index === -1) {\n return undefined;\n }\n return this.entryAt(index);\n }\n\n /**\n * Sets a new key-value pair at the position after the given key.\n */\n setAfter(key: K, newKey: K, value: V) {\n const index = this.#keys.indexOf(key);\n if (index === -1) {\n return this;\n }\n return this.insert(index + 1, newKey, value);\n }\n\n first() {\n return this.entryAt(0);\n }\n\n last() {\n return this.entryAt(-1);\n }\n\n clear() {\n this.#keys = [];\n return super.clear();\n }\n\n delete(key: K) {\n const deleted = super.delete(key);\n if (deleted) {\n this.#keys.splice(this.#keys.indexOf(key), 1);\n }\n return deleted;\n }\n\n deleteAt(index: number) {\n const key = this.keyAt(index);\n if (key !== undefined) {\n return this.delete(key);\n }\n return false;\n }\n\n at(index: number) {\n const key = at(this.#keys, index);\n if (key !== undefined) {\n return this.get(key);\n }\n }\n\n entryAt(index: number): [K, V] | undefined {\n const key = at(this.#keys, index);\n if (key !== undefined) {\n return [key, this.get(key)!];\n }\n }\n\n indexOf(key: K) {\n return this.#keys.indexOf(key);\n }\n\n keyAt(index: number) {\n return at(this.#keys, index);\n }\n\n from(key: K, offset: number) {\n const index = this.indexOf(key);\n if (index === -1) {\n return undefined;\n }\n let dest = index + offset;\n if (dest < 0) dest = 0;\n if (dest >= this.size) dest = this.size - 1;\n return this.at(dest);\n }\n\n keyFrom(key: K, offset: number) {\n const index = this.indexOf(key);\n if (index === -1) {\n return undefined;\n }\n let dest = index + offset;\n if (dest < 0) dest = 0;\n if (dest >= this.size) dest = this.size - 1;\n return this.keyAt(dest);\n }\n\n find(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict<K, V>) => boolean,\n thisArg?: any\n ) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return entry;\n }\n index++;\n }\n return undefined;\n }\n\n findIndex(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict<K, V>) => boolean,\n thisArg?: any\n ) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return index;\n }\n index++;\n }\n return -1;\n }\n\n filter<KK extends K, VV extends V>(\n predicate: (entry: [K, V], index: number, dict: OrderedDict<K, V>) => entry is [KK, VV],\n thisArg?: any\n ): OrderedDict<KK, VV>;\n\n filter(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict<K, V>) => unknown,\n thisArg?: any\n ): OrderedDict<K, V>;\n\n filter(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict<K, V>) => unknown,\n thisArg?: any\n ) {\n const entries: Array<[K, V]> = [];\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n entries.push(entry);\n }\n index++;\n }\n return new OrderedDict(entries);\n }\n\n map<U>(\n callbackfn: (entry: [K, V], index: number, dictionary: OrderedDict<K, V>) => U,\n thisArg?: any\n ): OrderedDict<K, U> {\n const entries: [K, U][] = [];\n let index = 0;\n for (const entry of this) {\n entries.push([entry[0], Reflect.apply(callbackfn, thisArg, [entry, index, this])]);\n index++;\n }\n return new OrderedDict(entries);\n }\n\n reduce(\n callbackfn: (\n previousValue: [K, V],\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => [K, V]\n ): [K, V];\n reduce(\n callbackfn: (\n previousValue: [K, V],\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => [K, V],\n initialValue: [K, V]\n ): [K, V];\n reduce<U>(\n callbackfn: (\n previousValue: U,\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => U,\n initialValue: U\n ): U;\n\n reduce<U>(\n ...args: [\n (\n previousValue: U,\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => U,\n U?,\n ]\n ) {\n const [callbackfn, initialValue] = args;\n let index = 0;\n let accumulator = initialValue ?? this.at(0)!;\n for (const entry of this) {\n if (index === 0 && args.length === 1) {\n accumulator = entry as any;\n } else {\n accumulator = Reflect.apply(callbackfn, this, [accumulator, entry, index, this]);\n }\n index++;\n }\n return accumulator;\n }\n\n reduceRight(\n callbackfn: (\n previousValue: [K, V],\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => [K, V]\n ): [K, V];\n reduceRight(\n callbackfn: (\n previousValue: [K, V],\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => [K, V],\n initialValue: [K, V]\n ): [K, V];\n reduceRight<U>(\n callbackfn: (\n previousValue: [K, V],\n currentValue: U,\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => U,\n initialValue: U\n ): U;\n\n reduceRight<U>(\n ...args: [\n (\n previousValue: U,\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => U,\n U?,\n ]\n ) {\n const [callbackfn, initialValue] = args;\n let accumulator = initialValue ?? this.at(-1)!;\n for (let index = this.size - 1; index >= 0; index--) {\n const entry = this.at(index)!;\n if (index === this.size - 1 && args.length === 1) {\n accumulator = entry as any;\n } else {\n accumulator = Reflect.apply(callbackfn, this, [accumulator, entry, index, this]);\n }\n }\n return accumulator;\n }\n\n toSorted(compareFn?: (a: [K, V], b: [K, V]) => number): OrderedDict<K, V> {\n const entries = [...this.entries()].sort(compareFn);\n return new OrderedDict(entries);\n }\n\n toReversed(): OrderedDict<K, V> {\n const reversed = new OrderedDict<K, V>();\n for (let index = this.size - 1; index >= 0; index--) {\n const key = this.keyAt(index)!;\n const element = this.get(key)!;\n reversed.set(key, element);\n }\n return reversed;\n }\n\n toSpliced(start: number, deleteCount?: number): OrderedDict<K, V>;\n toSpliced(start: number, deleteCount: number, ...items: [K, V][]): OrderedDict<K, V>;\n\n toSpliced(...args: [start: number, deleteCount: number, ...items: [K, V][]]) {\n const entries = [...this.entries()];\n entries.splice(...args);\n return new OrderedDict(entries);\n }\n\n slice(start?: number, end?: number) {\n const result = new OrderedDict<K, V>();\n let stop = this.size - 1;\n\n if (start === undefined) {\n return result;\n }\n\n if (start < 0) {\n start = start + this.size;\n }\n\n if (end !== undefined && end > 0) {\n stop = end - 1;\n }\n\n for (let index = start; index <= stop; index++) {\n const key = this.keyAt(index)!;\n const element = this.get(key)!;\n result.set(key, element);\n }\n return result;\n }\n\n every(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict<K, V>) => unknown,\n thisArg?: any\n ) {\n let index = 0;\n for (const entry of this) {\n if (!Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return false;\n }\n index++;\n }\n return true;\n }\n\n some(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict<K, V>) => unknown,\n thisArg?: any\n ) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return true;\n }\n index++;\n }\n return false;\n }\n}\n\nexport type KeyOf<D extends OrderedDict<any, any>> =\n D extends OrderedDict<infer K, any> ? K : never;\nexport type ValueOf<D extends OrderedDict<any, any>> =\n D extends OrderedDict<any, infer V> ? V : never;\nexport type EntryOf<D extends OrderedDict<any, any>> = [KeyOf<D>, ValueOf<D>];\nexport type KeyFrom<E extends EntryOf<any>> = E[0];\nexport type ValueFrom<E extends EntryOf<any>> = E[1];\n\nfunction at<T>(array: ArrayLike<T>, index: number): T | undefined {\n if ('at' in Array.prototype) {\n return Array.prototype.at.call(array, index);\n }\n const actualIndex = toSafeIndex(array, index);\n return actualIndex === -1 ? undefined : array[actualIndex];\n}\n\nfunction toSafeIndex(array: ArrayLike<any>, index: number) {\n const length = array.length;\n const relativeIndex = toSafeInteger(index);\n const actualIndex = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;\n return actualIndex < 0 || actualIndex >= length ? -1 : actualIndex;\n}\n\nfunction toSafeInteger(number: number) {\n // eslint-disable-next-line no-self-compare\n return number !== number || number === 0 ? 0 : Math.trunc(number);\n}\n","\"use client\";\n\n// src/collapsible.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar COLLAPSIBLE_NAME = \"Collapsible\";\nvar [createCollapsibleContext, createCollapsibleScope] = createContextScope(COLLAPSIBLE_NAME);\nvar [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);\nvar Collapsible = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCollapsible,\n open: openProp,\n defaultOpen,\n disabled,\n onOpenChange,\n ...collapsibleProps\n } = props;\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: COLLAPSIBLE_NAME\n });\n return /* @__PURE__ */ jsx(\n CollapsibleProvider,\n {\n scope: __scopeCollapsible,\n disabled,\n contentId: useId(),\n open,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(open),\n \"data-disabled\": disabled ? \"\" : void 0,\n ...collapsibleProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nCollapsible.displayName = COLLAPSIBLE_NAME;\nvar TRIGGER_NAME = \"CollapsibleTrigger\";\nvar CollapsibleTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCollapsible, ...triggerProps } = props;\n const context = useCollapsibleContext(TRIGGER_NAME, __scopeCollapsible);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open || false,\n \"data-state\": getState(context.open),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n disabled: context.disabled,\n ...triggerProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nCollapsibleTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"CollapsibleContent\";\nvar CollapsibleContent = React.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, props.__scopeCollapsible);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsx(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });\n }\n);\nCollapsibleContent.displayName = CONTENT_NAME;\nvar CollapsibleContentImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeCollapsible, present, children, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, __scopeCollapsible);\n const [isPresent, setIsPresent] = React.useState(present);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const heightRef = React.useRef(0);\n const height = heightRef.current;\n const widthRef = React.useRef(0);\n const width = widthRef.current;\n const isOpen = context.open || isPresent;\n const isMountAnimationPreventedRef = React.useRef(isOpen);\n const originalStylesRef = React.useRef(void 0);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n useLayoutEffect(() => {\n const node = ref.current;\n if (node) {\n originalStylesRef.current = originalStylesRef.current || {\n transitionDuration: node.style.transitionDuration,\n animationName: node.style.animationName\n };\n node.style.transitionDuration = \"0s\";\n node.style.animationName = \"none\";\n const rect = node.getBoundingClientRect();\n heightRef.current = rect.height;\n widthRef.current = rect.width;\n if (!isMountAnimationPreventedRef.current) {\n node.style.transitionDuration = originalStylesRef.current.transitionDuration;\n node.style.animationName = originalStylesRef.current.animationName;\n }\n setIsPresent(present);\n }\n }, [context.open, present]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n id: context.contentId,\n hidden: !isOpen,\n ...contentProps,\n ref: composedRefs,\n style: {\n [`--radix-collapsible-content-height`]: height ? `${height}px` : void 0,\n [`--radix-collapsible-content-width`]: width ? `${width}px` : void 0,\n ...props.style\n },\n children: isOpen && children\n }\n );\n});\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root = Collapsible;\nvar Trigger = CollapsibleTrigger;\nvar Content = CollapsibleContent;\nexport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n Content,\n Root,\n Trigger,\n createCollapsibleScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\n\nexport const Collapsible = CollapsiblePrimitive.Root;\nexport const CollapsibleTrigger = CollapsiblePrimitive.Trigger;\nexport const CollapsibleContent = CollapsiblePrimitive.Content;\n"],"names":["cardVariants","variants","tone","default","warning","success","error","interactive","true","false","defaultVariants","Card","className","props","CardHeader","CardTitle","CardStatLabel","CardValue","React","createContextScope","useComposedRefs","createSlot","jsx","createCollection","itemData","COLLAPSIBLE_NAME","createCollapsibleContext","createCollapsibleScope","CollapsibleProvider","useCollapsibleContext","Collapsible","forwardedRef","__scopeCollapsible","open","openProp","defaultOpen","disabled","onOpenChange","collapsibleProps","setOpen","prop","defaultProp","onChange","caller","scope","contentId","onOpenToggle","prevOpen","children","div","getState","ref","displayName","TRIGGER_NAME","CollapsibleTrigger","triggerProps","context","button","type","onClick","CONTENT_NAME","CollapsibleContent","forceMount","contentProps","present","CollapsibleContentImpl","isPresent","setIsPresent","composedRefs","heightRef","height","current","widthRef","width","isOpen","isMountAnimationPreventedRef","originalStylesRef","rAF","requestAnimationFrame","cancelAnimationFrame","node","transitionDuration","style","animationName","rect","getBoundingClientRect","id","hidden","Root","Trigger","Content"],"mappings":"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","ignoreList":[6]}