@aitne/dashboard 0.1.0 → 0.1.2

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 (495) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/diagnostics/route-bundle-stats.json +210 -247
  5. package/.next/fallback-build-manifest.json +3 -3
  6. package/.next/server/app/_global-error.html +1 -1
  7. package/.next/server/app/_global-error.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  14. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/_not-found.html +1 -1
  16. package/.next/server/app/_not-found.rsc +14 -14
  17. package/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
  18. package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  19. package/.next/server/app/_not-found.segments/_index.segment.rsc +9 -9
  20. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  21. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  22. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  23. package/.next/server/app/activity/page.js.nft.json +1 -1
  24. package/.next/server/app/activity/page_client-reference-manifest.js +1 -1
  25. package/.next/server/app/activity.html +1 -1
  26. package/.next/server/app/activity.rsc +27 -26
  27. package/.next/server/app/activity.segments/_full.segment.rsc +27 -26
  28. package/.next/server/app/activity.segments/_head.segment.rsc +4 -4
  29. package/.next/server/app/activity.segments/_index.segment.rsc +9 -9
  30. package/.next/server/app/activity.segments/_tree.segment.rsc +1 -1
  31. package/.next/server/app/activity.segments/activity/__PAGE__.segment.rsc +4 -4
  32. package/.next/server/app/activity.segments/activity.segment.rsc +4 -4
  33. package/.next/server/app/analytics/page.js.nft.json +1 -1
  34. package/.next/server/app/analytics/page_client-reference-manifest.js +1 -1
  35. package/.next/server/app/analytics.html +1 -1
  36. package/.next/server/app/analytics.rsc +22 -23
  37. package/.next/server/app/analytics.segments/_full.segment.rsc +22 -23
  38. package/.next/server/app/analytics.segments/_head.segment.rsc +4 -4
  39. package/.next/server/app/analytics.segments/_index.segment.rsc +9 -9
  40. package/.next/server/app/analytics.segments/_tree.segment.rsc +1 -1
  41. package/.next/server/app/analytics.segments/analytics/__PAGE__.segment.rsc +4 -4
  42. package/.next/server/app/analytics.segments/analytics.segment.rsc +4 -4
  43. package/.next/server/app/api/[...path]/route.js +1 -1
  44. package/.next/server/app/api/[...path]/route.js.nft.json +1 -1
  45. package/.next/server/app/chat/page.js.nft.json +1 -1
  46. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  47. package/.next/server/app/chat.html +1 -1
  48. package/.next/server/app/chat.rsc +16 -16
  49. package/.next/server/app/chat.segments/_full.segment.rsc +16 -16
  50. package/.next/server/app/chat.segments/_head.segment.rsc +4 -4
  51. package/.next/server/app/chat.segments/_index.segment.rsc +9 -9
  52. package/.next/server/app/chat.segments/_tree.segment.rsc +1 -1
  53. package/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +4 -4
  54. package/.next/server/app/chat.segments/chat.segment.rsc +3 -3
  55. package/.next/server/app/connections/calendar/page.js.nft.json +1 -1
  56. package/.next/server/app/connections/calendar/page_client-reference-manifest.js +1 -1
  57. package/.next/server/app/connections/calendar.html +1 -1
  58. package/.next/server/app/connections/calendar.rsc +17 -17
  59. package/.next/server/app/connections/calendar.segments/_full.segment.rsc +17 -17
  60. package/.next/server/app/connections/calendar.segments/_head.segment.rsc +4 -4
  61. package/.next/server/app/connections/calendar.segments/_index.segment.rsc +9 -9
  62. package/.next/server/app/connections/calendar.segments/_tree.segment.rsc +1 -1
  63. package/.next/server/app/connections/calendar.segments/connections/calendar/__PAGE__.segment.rsc +4 -4
  64. package/.next/server/app/connections/calendar.segments/connections/calendar.segment.rsc +3 -3
  65. package/.next/server/app/connections/calendar.segments/connections.segment.rsc +4 -4
  66. package/.next/server/app/connections/journal/page.js.nft.json +1 -1
  67. package/.next/server/app/connections/journal/page_client-reference-manifest.js +1 -1
  68. package/.next/server/app/connections/journal.html +1 -1
  69. package/.next/server/app/connections/journal.rsc +15 -15
  70. package/.next/server/app/connections/journal.segments/_full.segment.rsc +15 -15
  71. package/.next/server/app/connections/journal.segments/_head.segment.rsc +4 -4
  72. package/.next/server/app/connections/journal.segments/_index.segment.rsc +9 -9
  73. package/.next/server/app/connections/journal.segments/_tree.segment.rsc +1 -1
  74. package/.next/server/app/connections/journal.segments/connections/journal/__PAGE__.segment.rsc +2 -2
  75. package/.next/server/app/connections/journal.segments/connections/journal.segment.rsc +3 -3
  76. package/.next/server/app/connections/journal.segments/connections.segment.rsc +4 -4
  77. package/.next/server/app/connections/knowledge/page.js.nft.json +1 -1
  78. package/.next/server/app/connections/knowledge/page_client-reference-manifest.js +1 -1
  79. package/.next/server/app/connections/knowledge.html +1 -1
  80. package/.next/server/app/connections/knowledge.rsc +17 -17
  81. package/.next/server/app/connections/knowledge.segments/_full.segment.rsc +17 -17
  82. package/.next/server/app/connections/knowledge.segments/_head.segment.rsc +4 -4
  83. package/.next/server/app/connections/knowledge.segments/_index.segment.rsc +9 -9
  84. package/.next/server/app/connections/knowledge.segments/_tree.segment.rsc +1 -1
  85. package/.next/server/app/connections/knowledge.segments/connections/knowledge/__PAGE__.segment.rsc +4 -4
  86. package/.next/server/app/connections/knowledge.segments/connections/knowledge.segment.rsc +3 -3
  87. package/.next/server/app/connections/knowledge.segments/connections.segment.rsc +4 -4
  88. package/.next/server/app/connections/mail/page.js.nft.json +1 -1
  89. package/.next/server/app/connections/mail/page_client-reference-manifest.js +1 -1
  90. package/.next/server/app/connections/mail.html +1 -1
  91. package/.next/server/app/connections/mail.rsc +17 -17
  92. package/.next/server/app/connections/mail.segments/_full.segment.rsc +17 -17
  93. package/.next/server/app/connections/mail.segments/_head.segment.rsc +4 -4
  94. package/.next/server/app/connections/mail.segments/_index.segment.rsc +9 -9
  95. package/.next/server/app/connections/mail.segments/_tree.segment.rsc +1 -1
  96. package/.next/server/app/connections/mail.segments/connections/mail/__PAGE__.segment.rsc +4 -4
  97. package/.next/server/app/connections/mail.segments/connections/mail.segment.rsc +3 -3
  98. package/.next/server/app/connections/mail.segments/connections.segment.rsc +4 -4
  99. package/.next/server/app/connections/mcp/page.js.nft.json +1 -1
  100. package/.next/server/app/connections/mcp/page_client-reference-manifest.js +1 -1
  101. package/.next/server/app/connections/mcp.html +1 -1
  102. package/.next/server/app/connections/mcp.rsc +17 -17
  103. package/.next/server/app/connections/mcp.segments/_full.segment.rsc +17 -17
  104. package/.next/server/app/connections/mcp.segments/_head.segment.rsc +4 -4
  105. package/.next/server/app/connections/mcp.segments/_index.segment.rsc +9 -9
  106. package/.next/server/app/connections/mcp.segments/_tree.segment.rsc +1 -1
  107. package/.next/server/app/connections/mcp.segments/connections/mcp/__PAGE__.segment.rsc +4 -4
  108. package/.next/server/app/connections/mcp.segments/connections/mcp.segment.rsc +3 -3
  109. package/.next/server/app/connections/mcp.segments/connections.segment.rsc +4 -4
  110. package/.next/server/app/connections/messaging/page.js.nft.json +1 -1
  111. package/.next/server/app/connections/messaging/page_client-reference-manifest.js +1 -1
  112. package/.next/server/app/connections/messaging.html +1 -1
  113. package/.next/server/app/connections/messaging.rsc +17 -17
  114. package/.next/server/app/connections/messaging.segments/_full.segment.rsc +17 -17
  115. package/.next/server/app/connections/messaging.segments/_head.segment.rsc +4 -4
  116. package/.next/server/app/connections/messaging.segments/_index.segment.rsc +9 -9
  117. package/.next/server/app/connections/messaging.segments/_tree.segment.rsc +1 -1
  118. package/.next/server/app/connections/messaging.segments/connections/messaging/__PAGE__.segment.rsc +4 -4
  119. package/.next/server/app/connections/messaging.segments/connections/messaging.segment.rsc +3 -3
  120. package/.next/server/app/connections/messaging.segments/connections.segment.rsc +4 -4
  121. package/.next/server/app/connections/page.js.nft.json +1 -1
  122. package/.next/server/app/connections/page_client-reference-manifest.js +1 -1
  123. package/.next/server/app/connections/repositories/page.js.nft.json +1 -1
  124. package/.next/server/app/connections/repositories/page_client-reference-manifest.js +1 -1
  125. package/.next/server/app/connections/repositories.html +1 -1
  126. package/.next/server/app/connections/repositories.rsc +17 -17
  127. package/.next/server/app/connections/repositories.segments/_full.segment.rsc +17 -17
  128. package/.next/server/app/connections/repositories.segments/_head.segment.rsc +4 -4
  129. package/.next/server/app/connections/repositories.segments/_index.segment.rsc +9 -9
  130. package/.next/server/app/connections/repositories.segments/_tree.segment.rsc +1 -1
  131. package/.next/server/app/connections/repositories.segments/connections/repositories/__PAGE__.segment.rsc +4 -4
  132. package/.next/server/app/connections/repositories.segments/connections/repositories.segment.rsc +3 -3
  133. package/.next/server/app/connections/repositories.segments/connections.segment.rsc +4 -4
  134. package/.next/server/app/connections/routines/page.js.nft.json +1 -1
  135. package/.next/server/app/connections/routines/page_client-reference-manifest.js +1 -1
  136. package/.next/server/app/connections/routines.html +1 -1
  137. package/.next/server/app/connections/routines.rsc +15 -15
  138. package/.next/server/app/connections/routines.segments/_full.segment.rsc +15 -15
  139. package/.next/server/app/connections/routines.segments/_head.segment.rsc +4 -4
  140. package/.next/server/app/connections/routines.segments/_index.segment.rsc +9 -9
  141. package/.next/server/app/connections/routines.segments/_tree.segment.rsc +1 -1
  142. package/.next/server/app/connections/routines.segments/connections/routines/__PAGE__.segment.rsc +2 -2
  143. package/.next/server/app/connections/routines.segments/connections/routines.segment.rsc +3 -3
  144. package/.next/server/app/connections/routines.segments/connections.segment.rsc +4 -4
  145. package/.next/server/app/connections.html +1 -1
  146. package/.next/server/app/connections.rsc +15 -15
  147. package/.next/server/app/connections.segments/_full.segment.rsc +15 -15
  148. package/.next/server/app/connections.segments/_head.segment.rsc +4 -4
  149. package/.next/server/app/connections.segments/_index.segment.rsc +9 -9
  150. package/.next/server/app/connections.segments/_tree.segment.rsc +1 -1
  151. package/.next/server/app/connections.segments/connections/__PAGE__.segment.rsc +2 -2
  152. package/.next/server/app/connections.segments/connections.segment.rsc +4 -4
  153. package/.next/server/app/conversations/[id]/page.js.nft.json +1 -1
  154. package/.next/server/app/conversations/[id]/page_client-reference-manifest.js +1 -1
  155. package/.next/server/app/conversations/page.js.nft.json +1 -1
  156. package/.next/server/app/conversations/page_client-reference-manifest.js +1 -1
  157. package/.next/server/app/conversations.html +1 -1
  158. package/.next/server/app/conversations.rsc +14 -14
  159. package/.next/server/app/conversations.segments/_full.segment.rsc +14 -14
  160. package/.next/server/app/conversations.segments/_head.segment.rsc +4 -4
  161. package/.next/server/app/conversations.segments/_index.segment.rsc +9 -9
  162. package/.next/server/app/conversations.segments/_tree.segment.rsc +1 -1
  163. package/.next/server/app/conversations.segments/conversations/__PAGE__.segment.rsc +2 -2
  164. package/.next/server/app/conversations.segments/conversations.segment.rsc +3 -3
  165. package/.next/server/app/docs/[[...slug]]/page.js.nft.json +1 -1
  166. package/.next/server/app/docs/[[...slug]]/page_client-reference-manifest.js +1 -1
  167. package/.next/server/app/finance/page.js.nft.json +1 -1
  168. package/.next/server/app/finance/page_client-reference-manifest.js +1 -1
  169. package/.next/server/app/finance.html +1 -1
  170. package/.next/server/app/finance.rsc +16 -16
  171. package/.next/server/app/finance.segments/_full.segment.rsc +16 -16
  172. package/.next/server/app/finance.segments/_head.segment.rsc +4 -4
  173. package/.next/server/app/finance.segments/_index.segment.rsc +9 -9
  174. package/.next/server/app/finance.segments/_tree.segment.rsc +1 -1
  175. package/.next/server/app/finance.segments/finance/__PAGE__.segment.rsc +4 -4
  176. package/.next/server/app/finance.segments/finance.segment.rsc +3 -3
  177. package/.next/server/app/git/page.js.nft.json +1 -1
  178. package/.next/server/app/git/page_client-reference-manifest.js +1 -1
  179. package/.next/server/app/git.html +1 -1
  180. package/.next/server/app/git.rsc +16 -16
  181. package/.next/server/app/git.segments/_full.segment.rsc +16 -16
  182. package/.next/server/app/git.segments/_head.segment.rsc +4 -4
  183. package/.next/server/app/git.segments/_index.segment.rsc +9 -9
  184. package/.next/server/app/git.segments/_tree.segment.rsc +1 -1
  185. package/.next/server/app/git.segments/git/__PAGE__.segment.rsc +4 -4
  186. package/.next/server/app/git.segments/git.segment.rsc +3 -3
  187. package/.next/server/app/health/page.js.nft.json +1 -1
  188. package/.next/server/app/health/page_client-reference-manifest.js +1 -1
  189. package/.next/server/app/health.html +1 -1
  190. package/.next/server/app/health.rsc +16 -16
  191. package/.next/server/app/health.segments/_full.segment.rsc +16 -16
  192. package/.next/server/app/health.segments/_head.segment.rsc +4 -4
  193. package/.next/server/app/health.segments/_index.segment.rsc +9 -9
  194. package/.next/server/app/health.segments/_tree.segment.rsc +1 -1
  195. package/.next/server/app/health.segments/health/__PAGE__.segment.rsc +4 -4
  196. package/.next/server/app/health.segments/health.segment.rsc +3 -3
  197. package/.next/server/app/index.html +1 -1
  198. package/.next/server/app/index.rsc +16 -16
  199. package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  200. package/.next/server/app/index.segments/_full.segment.rsc +16 -16
  201. package/.next/server/app/index.segments/_head.segment.rsc +4 -4
  202. package/.next/server/app/index.segments/_index.segment.rsc +9 -9
  203. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  204. package/.next/server/app/knowledge/page.js.nft.json +1 -1
  205. package/.next/server/app/knowledge/page_client-reference-manifest.js +1 -1
  206. package/.next/server/app/knowledge.html +1 -1
  207. package/.next/server/app/knowledge.rsc +17 -17
  208. package/.next/server/app/knowledge.segments/_full.segment.rsc +17 -17
  209. package/.next/server/app/knowledge.segments/_head.segment.rsc +4 -4
  210. package/.next/server/app/knowledge.segments/_index.segment.rsc +9 -9
  211. package/.next/server/app/knowledge.segments/_tree.segment.rsc +1 -1
  212. package/.next/server/app/knowledge.segments/knowledge/__PAGE__.segment.rsc +4 -4
  213. package/.next/server/app/knowledge.segments/knowledge.segment.rsc +4 -4
  214. package/.next/server/app/page.js.nft.json +1 -1
  215. package/.next/server/app/page_client-reference-manifest.js +1 -1
  216. package/.next/server/app/reading/page.js.nft.json +1 -1
  217. package/.next/server/app/reading/page_client-reference-manifest.js +1 -1
  218. package/.next/server/app/reading.html +1 -1
  219. package/.next/server/app/reading.rsc +16 -16
  220. package/.next/server/app/reading.segments/_full.segment.rsc +16 -16
  221. package/.next/server/app/reading.segments/_head.segment.rsc +4 -4
  222. package/.next/server/app/reading.segments/_index.segment.rsc +9 -9
  223. package/.next/server/app/reading.segments/_tree.segment.rsc +1 -1
  224. package/.next/server/app/reading.segments/reading/__PAGE__.segment.rsc +4 -4
  225. package/.next/server/app/reading.segments/reading.segment.rsc +3 -3
  226. package/.next/server/app/schedule/page.js.nft.json +1 -1
  227. package/.next/server/app/schedule/page_client-reference-manifest.js +1 -1
  228. package/.next/server/app/schedule.html +1 -1
  229. package/.next/server/app/schedule.rsc +16 -16
  230. package/.next/server/app/schedule.segments/_full.segment.rsc +16 -16
  231. package/.next/server/app/schedule.segments/_head.segment.rsc +4 -4
  232. package/.next/server/app/schedule.segments/_index.segment.rsc +9 -9
  233. package/.next/server/app/schedule.segments/_tree.segment.rsc +1 -1
  234. package/.next/server/app/schedule.segments/schedule/__PAGE__.segment.rsc +4 -4
  235. package/.next/server/app/schedule.segments/schedule.segment.rsc +3 -3
  236. package/.next/server/app/settings/advanced/page.js.nft.json +1 -1
  237. package/.next/server/app/settings/advanced/page_client-reference-manifest.js +1 -1
  238. package/.next/server/app/settings/advanced.html +1 -1
  239. package/.next/server/app/settings/advanced.rsc +17 -17
  240. package/.next/server/app/settings/advanced.segments/_full.segment.rsc +17 -17
  241. package/.next/server/app/settings/advanced.segments/_head.segment.rsc +4 -4
  242. package/.next/server/app/settings/advanced.segments/_index.segment.rsc +9 -9
  243. package/.next/server/app/settings/advanced.segments/_tree.segment.rsc +1 -1
  244. package/.next/server/app/settings/advanced.segments/settings/advanced/__PAGE__.segment.rsc +4 -4
  245. package/.next/server/app/settings/advanced.segments/settings/advanced.segment.rsc +3 -3
  246. package/.next/server/app/settings/advanced.segments/settings.segment.rsc +4 -4
  247. package/.next/server/app/settings/backends/page.js.nft.json +1 -1
  248. package/.next/server/app/settings/backends/page_client-reference-manifest.js +1 -1
  249. package/.next/server/app/settings/backends.html +1 -1
  250. package/.next/server/app/settings/backends.rsc +15 -15
  251. package/.next/server/app/settings/backends.segments/_full.segment.rsc +15 -15
  252. package/.next/server/app/settings/backends.segments/_head.segment.rsc +4 -4
  253. package/.next/server/app/settings/backends.segments/_index.segment.rsc +9 -9
  254. package/.next/server/app/settings/backends.segments/_tree.segment.rsc +1 -1
  255. package/.next/server/app/settings/backends.segments/settings/backends/__PAGE__.segment.rsc +2 -2
  256. package/.next/server/app/settings/backends.segments/settings/backends.segment.rsc +3 -3
  257. package/.next/server/app/settings/backends.segments/settings.segment.rsc +4 -4
  258. package/.next/server/app/settings/commands/page.js.nft.json +1 -1
  259. package/.next/server/app/settings/commands/page_client-reference-manifest.js +1 -1
  260. package/.next/server/app/settings/commands.html +1 -1
  261. package/.next/server/app/settings/commands.rsc +17 -17
  262. package/.next/server/app/settings/commands.segments/_full.segment.rsc +17 -17
  263. package/.next/server/app/settings/commands.segments/_head.segment.rsc +4 -4
  264. package/.next/server/app/settings/commands.segments/_index.segment.rsc +9 -9
  265. package/.next/server/app/settings/commands.segments/_tree.segment.rsc +1 -1
  266. package/.next/server/app/settings/commands.segments/settings/commands/__PAGE__.segment.rsc +4 -4
  267. package/.next/server/app/settings/commands.segments/settings/commands.segment.rsc +3 -3
  268. package/.next/server/app/settings/commands.segments/settings.segment.rsc +4 -4
  269. package/.next/server/app/settings/connections/page.js.nft.json +1 -1
  270. package/.next/server/app/settings/connections/page_client-reference-manifest.js +1 -1
  271. package/.next/server/app/settings/connections.html +1 -1
  272. package/.next/server/app/settings/connections.rsc +15 -15
  273. package/.next/server/app/settings/connections.segments/_full.segment.rsc +15 -15
  274. package/.next/server/app/settings/connections.segments/_head.segment.rsc +4 -4
  275. package/.next/server/app/settings/connections.segments/_index.segment.rsc +9 -9
  276. package/.next/server/app/settings/connections.segments/_tree.segment.rsc +1 -1
  277. package/.next/server/app/settings/connections.segments/settings/connections/__PAGE__.segment.rsc +2 -2
  278. package/.next/server/app/settings/connections.segments/settings/connections.segment.rsc +3 -3
  279. package/.next/server/app/settings/connections.segments/settings.segment.rsc +4 -4
  280. package/.next/server/app/settings/journal/page.js.nft.json +1 -1
  281. package/.next/server/app/settings/journal/page_client-reference-manifest.js +1 -1
  282. package/.next/server/app/settings/journal.html +1 -1
  283. package/.next/server/app/settings/journal.rsc +17 -17
  284. package/.next/server/app/settings/journal.segments/_full.segment.rsc +17 -17
  285. package/.next/server/app/settings/journal.segments/_head.segment.rsc +4 -4
  286. package/.next/server/app/settings/journal.segments/_index.segment.rsc +9 -9
  287. package/.next/server/app/settings/journal.segments/_tree.segment.rsc +1 -1
  288. package/.next/server/app/settings/journal.segments/settings/journal/__PAGE__.segment.rsc +4 -4
  289. package/.next/server/app/settings/journal.segments/settings/journal.segment.rsc +3 -3
  290. package/.next/server/app/settings/journal.segments/settings.segment.rsc +4 -4
  291. package/.next/server/app/settings/management/page.js.nft.json +1 -1
  292. package/.next/server/app/settings/management/page_client-reference-manifest.js +1 -1
  293. package/.next/server/app/settings/management.html +1 -1
  294. package/.next/server/app/settings/management.rsc +17 -17
  295. package/.next/server/app/settings/management.segments/_full.segment.rsc +17 -17
  296. package/.next/server/app/settings/management.segments/_head.segment.rsc +4 -4
  297. package/.next/server/app/settings/management.segments/_index.segment.rsc +9 -9
  298. package/.next/server/app/settings/management.segments/_tree.segment.rsc +1 -1
  299. package/.next/server/app/settings/management.segments/settings/management/__PAGE__.segment.rsc +4 -4
  300. package/.next/server/app/settings/management.segments/settings/management.segment.rsc +3 -3
  301. package/.next/server/app/settings/management.segments/settings.segment.rsc +4 -4
  302. package/.next/server/app/settings/messaging/page.js.nft.json +1 -1
  303. package/.next/server/app/settings/messaging/page_client-reference-manifest.js +1 -1
  304. package/.next/server/app/settings/messaging.html +1 -1
  305. package/.next/server/app/settings/messaging.rsc +15 -15
  306. package/.next/server/app/settings/messaging.segments/_full.segment.rsc +15 -15
  307. package/.next/server/app/settings/messaging.segments/_head.segment.rsc +4 -4
  308. package/.next/server/app/settings/messaging.segments/_index.segment.rsc +9 -9
  309. package/.next/server/app/settings/messaging.segments/_tree.segment.rsc +1 -1
  310. package/.next/server/app/settings/messaging.segments/settings/messaging/__PAGE__.segment.rsc +2 -2
  311. package/.next/server/app/settings/messaging.segments/settings/messaging.segment.rsc +3 -3
  312. package/.next/server/app/settings/messaging.segments/settings.segment.rsc +4 -4
  313. package/.next/server/app/settings/models/page.js.nft.json +1 -1
  314. package/.next/server/app/settings/models/page_client-reference-manifest.js +1 -1
  315. package/.next/server/app/settings/models.html +1 -1
  316. package/.next/server/app/settings/models.rsc +17 -17
  317. package/.next/server/app/settings/models.segments/_full.segment.rsc +17 -17
  318. package/.next/server/app/settings/models.segments/_head.segment.rsc +4 -4
  319. package/.next/server/app/settings/models.segments/_index.segment.rsc +9 -9
  320. package/.next/server/app/settings/models.segments/_tree.segment.rsc +1 -1
  321. package/.next/server/app/settings/models.segments/settings/models/__PAGE__.segment.rsc +4 -4
  322. package/.next/server/app/settings/models.segments/settings/models.segment.rsc +3 -3
  323. package/.next/server/app/settings/models.segments/settings.segment.rsc +4 -4
  324. package/.next/server/app/settings/page.js.nft.json +1 -1
  325. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  326. package/.next/server/app/settings/processes/page.js.nft.json +1 -1
  327. package/.next/server/app/settings/processes/page_client-reference-manifest.js +1 -1
  328. package/.next/server/app/settings/processes.html +1 -1
  329. package/.next/server/app/settings/processes.rsc +15 -15
  330. package/.next/server/app/settings/processes.segments/_full.segment.rsc +15 -15
  331. package/.next/server/app/settings/processes.segments/_head.segment.rsc +4 -4
  332. package/.next/server/app/settings/processes.segments/_index.segment.rsc +9 -9
  333. package/.next/server/app/settings/processes.segments/_tree.segment.rsc +1 -1
  334. package/.next/server/app/settings/processes.segments/settings/processes/__PAGE__.segment.rsc +2 -2
  335. package/.next/server/app/settings/processes.segments/settings/processes.segment.rsc +3 -3
  336. package/.next/server/app/settings/processes.segments/settings.segment.rsc +4 -4
  337. package/.next/server/app/settings/routines/page.js.nft.json +1 -1
  338. package/.next/server/app/settings/routines/page_client-reference-manifest.js +1 -1
  339. package/.next/server/app/settings/routines.html +1 -1
  340. package/.next/server/app/settings/routines.rsc +17 -17
  341. package/.next/server/app/settings/routines.segments/_full.segment.rsc +17 -17
  342. package/.next/server/app/settings/routines.segments/_head.segment.rsc +4 -4
  343. package/.next/server/app/settings/routines.segments/_index.segment.rsc +9 -9
  344. package/.next/server/app/settings/routines.segments/_tree.segment.rsc +1 -1
  345. package/.next/server/app/settings/routines.segments/settings/routines/__PAGE__.segment.rsc +4 -4
  346. package/.next/server/app/settings/routines.segments/settings/routines.segment.rsc +3 -3
  347. package/.next/server/app/settings/routines.segments/settings.segment.rsc +4 -4
  348. package/.next/server/app/settings/schedule/page.js.nft.json +1 -1
  349. package/.next/server/app/settings/schedule/page_client-reference-manifest.js +1 -1
  350. package/.next/server/app/settings/schedule.html +1 -1
  351. package/.next/server/app/settings/schedule.rsc +17 -17
  352. package/.next/server/app/settings/schedule.segments/_full.segment.rsc +17 -17
  353. package/.next/server/app/settings/schedule.segments/_head.segment.rsc +4 -4
  354. package/.next/server/app/settings/schedule.segments/_index.segment.rsc +9 -9
  355. package/.next/server/app/settings/schedule.segments/_tree.segment.rsc +1 -1
  356. package/.next/server/app/settings/schedule.segments/settings/schedule/__PAGE__.segment.rsc +4 -4
  357. package/.next/server/app/settings/schedule.segments/settings/schedule.segment.rsc +3 -3
  358. package/.next/server/app/settings/schedule.segments/settings.segment.rsc +4 -4
  359. package/.next/server/app/settings/self-learning/page.js.nft.json +1 -1
  360. package/.next/server/app/settings/self-learning/page_client-reference-manifest.js +1 -1
  361. package/.next/server/app/settings/self-learning.html +1 -1
  362. package/.next/server/app/settings/self-learning.rsc +17 -17
  363. package/.next/server/app/settings/self-learning.segments/_full.segment.rsc +17 -17
  364. package/.next/server/app/settings/self-learning.segments/_head.segment.rsc +4 -4
  365. package/.next/server/app/settings/self-learning.segments/_index.segment.rsc +9 -9
  366. package/.next/server/app/settings/self-learning.segments/_tree.segment.rsc +1 -1
  367. package/.next/server/app/settings/self-learning.segments/settings/self-learning/__PAGE__.segment.rsc +4 -4
  368. package/.next/server/app/settings/self-learning.segments/settings/self-learning.segment.rsc +3 -3
  369. package/.next/server/app/settings/self-learning.segments/settings.segment.rsc +4 -4
  370. package/.next/server/app/settings.html +1 -1
  371. package/.next/server/app/settings.rsc +17 -17
  372. package/.next/server/app/settings.segments/_full.segment.rsc +17 -17
  373. package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  374. package/.next/server/app/settings.segments/_index.segment.rsc +9 -9
  375. package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  376. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  377. package/.next/server/app/settings.segments/settings.segment.rsc +4 -4
  378. package/.next/server/app/setup/page.js.nft.json +1 -1
  379. package/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  380. package/.next/server/app/setup.html +1 -1
  381. package/.next/server/app/setup.rsc +16 -16
  382. package/.next/server/app/setup.segments/_full.segment.rsc +16 -16
  383. package/.next/server/app/setup.segments/_head.segment.rsc +4 -4
  384. package/.next/server/app/setup.segments/_index.segment.rsc +9 -9
  385. package/.next/server/app/setup.segments/_tree.segment.rsc +1 -1
  386. package/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +4 -4
  387. package/.next/server/app/setup.segments/setup.segment.rsc +3 -3
  388. package/.next/server/app/trip/page.js.nft.json +1 -1
  389. package/.next/server/app/trip/page_client-reference-manifest.js +1 -1
  390. package/.next/server/app/trip.html +1 -1
  391. package/.next/server/app/trip.rsc +16 -16
  392. package/.next/server/app/trip.segments/_full.segment.rsc +16 -16
  393. package/.next/server/app/trip.segments/_head.segment.rsc +4 -4
  394. package/.next/server/app/trip.segments/_index.segment.rsc +9 -9
  395. package/.next/server/app/trip.segments/_tree.segment.rsc +1 -1
  396. package/.next/server/app/trip.segments/trip/__PAGE__.segment.rsc +4 -4
  397. package/.next/server/app/trip.segments/trip.segment.rsc +3 -3
  398. package/.next/server/chunks/05w9_next_dist_esm_build_templates_app-route_0~eezk6.js +3 -3
  399. package/.next/server/chunks/05w9_next_dist_esm_build_templates_app-route_0~eezk6.js.map +1 -1
  400. package/.next/server/chunks/{[root-of-the-server]__0j~awob._.js → [root-of-the-server]__0dwxuh7._.js} +1 -1
  401. package/.next/server/chunks/{[root-of-the-server]__04-hp3j._.js → [root-of-the-server]__0k7lkv6._.js} +2 -2
  402. package/.next/server/chunks/ssr/{[root-of-the-server]__0t26ngg._.js → [root-of-the-server]__0ngitfo._.js} +2 -2
  403. package/.next/server/chunks/ssr/{[root-of-the-server]__0t26ngg._.js.map → [root-of-the-server]__0ngitfo._.js.map} +1 -1
  404. package/.next/server/chunks/ssr/{_0pvc7ao._.js → _0370l.6._.js} +2 -2
  405. package/.next/server/chunks/ssr/{_0pvc7ao._.js.map → _0370l.6._.js.map} +1 -1
  406. package/.next/server/chunks/ssr/_04kt9.8._.js +3 -0
  407. package/.next/server/chunks/ssr/_04kt9.8._.js.map +1 -0
  408. package/.next/server/chunks/ssr/_060itkv._.js +3 -0
  409. package/.next/server/chunks/ssr/_060itkv._.js.map +1 -0
  410. package/.next/server/chunks/ssr/{_0pydxc8._.js → _083cqy.._.js} +2 -2
  411. package/.next/server/chunks/ssr/_083cqy.._.js.map +1 -0
  412. package/.next/server/chunks/ssr/{_0lm8td~._.js → _08mbdt1._.js} +2 -2
  413. package/.next/server/chunks/ssr/_08mbdt1._.js.map +1 -0
  414. package/.next/server/chunks/ssr/_0938p.1._.js +3 -0
  415. package/.next/server/chunks/ssr/_0938p.1._.js.map +1 -0
  416. package/.next/server/chunks/ssr/_0ff5qav._.js +3 -0
  417. package/.next/server/chunks/ssr/_0ff5qav._.js.map +1 -0
  418. package/.next/server/chunks/ssr/_0g2e834._.js +3 -0
  419. package/.next/server/chunks/ssr/_0g2e834._.js.map +1 -0
  420. package/.next/server/chunks/ssr/_0gp8d.p._.js +3 -0
  421. package/.next/server/chunks/ssr/_0gp8d.p._.js.map +1 -0
  422. package/.next/server/chunks/ssr/_0k2j6-t._.js +3 -0
  423. package/.next/server/chunks/ssr/_0k2j6-t._.js.map +1 -0
  424. package/.next/server/chunks/ssr/_0kq5x2k._.js +3 -0
  425. package/.next/server/chunks/ssr/_0kq5x2k._.js.map +1 -0
  426. package/.next/server/chunks/ssr/_0mk7dqt._.js +3 -0
  427. package/.next/server/chunks/ssr/_0mk7dqt._.js.map +1 -0
  428. package/.next/server/chunks/ssr/_0qgn2wv._.js +3 -0
  429. package/.next/server/chunks/ssr/_0qgn2wv._.js.map +1 -0
  430. package/.next/server/chunks/ssr/_0t-2u_i._.js +3 -0
  431. package/.next/server/chunks/ssr/_0t-2u_i._.js.map +1 -0
  432. package/.next/server/chunks/ssr/_0vn5_62._.js +5 -0
  433. package/.next/server/chunks/ssr/_0vn5_62._.js.map +1 -0
  434. package/.next/server/chunks/ssr/{_01aim8_._.js → _0z1gdb3._.js} +2 -2
  435. package/.next/server/chunks/ssr/{_01aim8_._.js.map → _0z1gdb3._.js.map} +1 -1
  436. package/.next/server/chunks/ssr/_0~4ta0s._.js +3 -0
  437. package/.next/server/chunks/ssr/_0~4ta0s._.js.map +1 -0
  438. package/.next/server/chunks/ssr/_0~5r_8s._.js +3 -0
  439. package/.next/server/chunks/ssr/_0~5r_8s._.js.map +1 -0
  440. package/.next/server/chunks/ssr/_13mk_9n._.js.map +1 -1
  441. package/.next/server/chunks/ssr/packages_dashboard_src_0uxs9-.._.js +1 -1
  442. package/.next/server/chunks/ssr/packages_dashboard_src_0uxs9-.._.js.map +1 -1
  443. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_advanced_page_tsx_0o~_885._.js +1 -1
  444. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_advanced_page_tsx_0o~_885._.js.map +1 -1
  445. package/.next/server/chunks/ssr/packages_shared_dist_index_0kuvow-.js +2 -2
  446. package/.next/server/chunks/ssr/packages_shared_dist_index_0kuvow-.js.map +1 -1
  447. package/.next/server/middleware/middleware-manifest.json +1 -1
  448. package/.next/server/middleware-build-manifest.js +3 -3
  449. package/.next/server/middleware-manifest.json +1 -1
  450. package/.next/server/pages/404.html +1 -1
  451. package/.next/server/pages/500.html +1 -1
  452. package/.next/static/chunks/00qqwuw5id.21.js +1 -0
  453. package/.next/static/chunks/0_yam4jvco3~t.js +1 -0
  454. package/.next/static/chunks/{107sryfaib58g.js → 0kjwfju1fsjkk.js} +1 -1
  455. package/.next/static/chunks/0yt4prt55bas4.js +11 -0
  456. package/.next/static/chunks/{0v2k5twh.h_g2.js → 10_4_2h602xzk.js} +3 -3
  457. package/.next/trace +2 -2
  458. package/.next/trace-build +1 -1
  459. package/package.json +11 -11
  460. package/.next/server/chunks/ssr/_0-v4eqm._.js +0 -3
  461. package/.next/server/chunks/ssr/_0-v4eqm._.js.map +0 -1
  462. package/.next/server/chunks/ssr/_03ay~a6._.js +0 -3
  463. package/.next/server/chunks/ssr/_03ay~a6._.js.map +0 -1
  464. package/.next/server/chunks/ssr/_05ul8c5._.js +0 -3
  465. package/.next/server/chunks/ssr/_05ul8c5._.js.map +0 -1
  466. package/.next/server/chunks/ssr/_0_1u-~q._.js +0 -3
  467. package/.next/server/chunks/ssr/_0_1u-~q._.js.map +0 -1
  468. package/.next/server/chunks/ssr/_0ax_-cr._.js +0 -3
  469. package/.next/server/chunks/ssr/_0ax_-cr._.js.map +0 -1
  470. package/.next/server/chunks/ssr/_0czapf~._.js +0 -3
  471. package/.next/server/chunks/ssr/_0czapf~._.js.map +0 -1
  472. package/.next/server/chunks/ssr/_0dlwb-j._.js +0 -3
  473. package/.next/server/chunks/ssr/_0dlwb-j._.js.map +0 -1
  474. package/.next/server/chunks/ssr/_0dvtdxd._.js +0 -3
  475. package/.next/server/chunks/ssr/_0dvtdxd._.js.map +0 -1
  476. package/.next/server/chunks/ssr/_0h-sc1p._.js +0 -3
  477. package/.next/server/chunks/ssr/_0h-sc1p._.js.map +0 -1
  478. package/.next/server/chunks/ssr/_0k_zx~4._.js +0 -3
  479. package/.next/server/chunks/ssr/_0k_zx~4._.js.map +0 -1
  480. package/.next/server/chunks/ssr/_0kqlqn5._.js +0 -5
  481. package/.next/server/chunks/ssr/_0kqlqn5._.js.map +0 -1
  482. package/.next/server/chunks/ssr/_0lm8td~._.js.map +0 -1
  483. package/.next/server/chunks/ssr/_0pydxc8._.js.map +0 -1
  484. package/.next/server/chunks/ssr/_115_o9h._.js +0 -3
  485. package/.next/server/chunks/ssr/_115_o9h._.js.map +0 -1
  486. package/.next/static/chunks/07k3fjq54671q.js +0 -1
  487. package/.next/static/chunks/0o6q9amhembht.js +0 -1
  488. package/.next/static/chunks/0pbah5-djvzuh.js +0 -11
  489. package/.next/static/chunks/0sz8178y9b-~6.js +0 -1
  490. package/LICENSE +0 -21
  491. /package/.next/server/chunks/{[root-of-the-server]__0j~awob._.js.map → [root-of-the-server]__0dwxuh7._.js.map} +0 -0
  492. /package/.next/server/chunks/{[root-of-the-server]__04-hp3j._.js.map → [root-of-the-server]__0k7lkv6._.js.map} +0 -0
  493. /package/.next/static/{BS7xnS8j09zEzTFQ8HuEd → BoJYg5-EvFL480WsH6xGD}/_buildManifest.js +0 -0
  494. /package/.next/static/{BS7xnS8j09zEzTFQ8HuEd → BoJYg5-EvFL480WsH6xGD}/_clientMiddlewareManifest.js +0 -0
  495. /package/.next/static/{BS7xnS8j09zEzTFQ8HuEd → BoJYg5-EvFL480WsH6xGD}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../packages/dashboard/src/lib/backend-ui.ts","../../../../../../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%2Bnumber%401.1.1/node_modules/%40radix-ui/number/src/number.ts","../../../../../../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","../../../../../../packages/dashboard/src/lib/hooks/use-backends.ts"],"sourcesContent":["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 * 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 \"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};\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 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 * 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","function clamp(value: number, [min, max]: [number, number]): number {\n return Math.min(max, Math.max(min, value));\n}\n\nexport { clamp };\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","\"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"],"names":["BACKEND_LABELS","claude","codex","gemini","BACKEND_SHORT_LABELS","BACKEND_PROVIDER_LABELS","BACKEND_PROVIDER_SHORT","BACKEND_COLORS","BACKEND_MODEL_PALETTES","OTHER_MODEL_PALETTE","CHART_CATEGORY_PALETTE","BACKEND_BADGE_VARIANTS","PROCESS_LABELS","getBackendLabel","backendId","getBackendShortLabel","getProcessLabel","processKey","formatModelName","modelId","replace","trim","formatShortModelName","s","startsWith","modelBadgeVariant","backend","detectBackendFromModel","parseModelUsage","json","raw","JSON","parse","entries","value","Object","v","push","inputTokens","outputTokens","costUsd","sort","a","b","pickDisplayModel","modelUsed","modelUsageJson","length","lower","toLowerCase","includes","assignModelColors","models","byBackend","Map","model","bucket","get","set","result","list","localeCompare","palette","n","forEach","i","idx","Math","floor","React","createContextScope","useComposedRefs","createSlot","jsx","createCollection","itemData","useBackends","options","queryKey","queryFn","enabled","staleTime"],"mappings":"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","ignoreList":[6,7,8]}
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,63991,e=>{"use strict";let t=(0,e.i(77379).default)("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["AlertCircle",0,t],63991)},81187,e=>{"use strict";let t=(0,e.i(77379).default)("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["AlertTriangle",0,t],81187)},59546,e=>{"use strict";let t=(0,e.i(77379).default)("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["CheckCircle2",0,t],59546)},79634,30040,e=>{"use strict";var t=e.i(44180),r=e.i(81471),n=e.i(94237),o=e.i(63991),i=e.i(81187),l=e.i(59546);let a=(0,e.i(77379).default)("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);e.s(["Info",0,a],30040);let s=(0,n.cva)("flex items-start gap-2 rounded-md border px-3 py-2 text-xs",{variants:{variant:{success:"border-emerald-200 bg-emerald-50 text-emerald-700 dark:border-emerald-900 dark:bg-emerald-950 dark:text-emerald-300",error:"border-red-200 bg-red-50 text-red-700 dark:border-red-900 dark:bg-red-950 dark:text-red-300",warning:"border-amber-200 bg-amber-50 text-amber-800 dark:border-amber-900 dark:bg-amber-950 dark:text-amber-200",info:"border-blue-200 bg-blue-50 text-blue-700 dark:border-blue-900 dark:bg-blue-950 dark:text-blue-300"}},defaultVariants:{variant:"info"}}),u={success:l.CheckCircle2,error:o.AlertCircle,warning:i.AlertTriangle,info:a};e.s(["Alert",0,function({className:e,variant:n,icon:o=!0,role:i,"aria-live":l,children:a,...c}){let d=n??"info",f=u[d];return(0,t.jsxs)("div",{role:i??("error"===d?"alert":"status"),"aria-live":l??("error"===d?"assertive":"polite"),className:(0,r.cn)(s({variant:n}),e),...c,children:[o&&(0,t.jsx)(f,{className:"h-3.5 w-3.5 shrink-0 mt-[1px]"}),(0,t.jsx)("div",{className:"flex-1 min-w-0",children:a})]})}],79634)},8652,e=>{"use strict";var t=e.i(44180),r=e.i(64556),n=e.i(81471);let o=(0,r.forwardRef)(({className:e,...r},o)=>(0,t.jsx)("input",{ref:o,className:(0,n.cn)("flex h-8 w-full rounded-md border border-input bg-background px-2.5 py-1.5 text-sm ring-offset-background","placeholder:text-muted-foreground","focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-1","disabled:cursor-not-allowed disabled:opacity-50",e),...r}));o.displayName="Input",e.s(["Input",0,o])},36451,e=>{"use strict";let t=(0,e.i(77379).default)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["X",0,t],36451)},91967,e=>{"use strict";"u">typeof window&&window.document&&window.document.createElement,e.s(["composeEventHandlers",0,function(e,t,{checkForDefaultPrevented:r=!0}={}){return function(n){if(e?.(n),!1===r||!n.defaultPrevented)return t?.(n)}}])},22353,e=>{"use strict";var t=e.i(64556);function r(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function n(...e){return t=>{let n=!1,o=e.map(e=>{let o=r(e,t);return n||"function"!=typeof o||(n=!0),o});if(n)return()=>{for(let t=0;t<o.length;t++){let n=o[t];"function"==typeof n?n():r(e[t],null)}}}}e.s(["composeRefs",0,n,"useComposedRefs",0,function(...e){return t.useCallback(n(...e),e)}])},9413,e=>{"use strict";var t=e.i(64556),r=e.i(44180);e.s(["createContext",0,function(e,n){let o=t.createContext(n),i=e=>{let{children:n,...i}=e,l=t.useMemo(()=>i,Object.values(i));return(0,r.jsx)(o.Provider,{value:l,children:n})};return i.displayName=e+"Provider",[i,function(r){let i=t.useContext(o);if(i)return i;if(void 0!==n)return n;throw Error(`\`${r}\` must be used within \`${e}\``)}]},"createContextScope",0,function(e,n=[]){let o=[],i=()=>{let r=o.map(e=>t.createContext(e));return function(n){let o=n?.[e]||r;return t.useMemo(()=>({[`__scope${e}`]:{...n,[e]:o}}),[n,o])}};return i.scopeName=e,[function(n,i){let l=t.createContext(i),a=o.length;o=[...o,i];let s=n=>{let{scope:o,children:i,...s}=n,u=o?.[e]?.[a]||l,c=t.useMemo(()=>s,Object.values(s));return(0,r.jsx)(u.Provider,{value:c,children:i})};return s.displayName=n+"Provider",[s,function(r,o){let s=o?.[e]?.[a]||l,u=t.useContext(s);if(u)return u;if(void 0!==i)return i;throw Error(`\`${r}\` must be used within \`${n}\``)}]},function(...e){let r=e[0];if(1===e.length)return r;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let o=n.reduce((t,{useScope:r,scopeName:n})=>{let o=r(e)[`__scope${n}`];return{...t,...o}},{});return t.useMemo(()=>({[`__scope${r.scopeName}`]:o}),[o])}};return n.scopeName=r.scopeName,n}(i,...n)]}])},60310,e=>{"use strict";var t=e.i(64556),r=e.i(22353),n=e.i(44180),o=Symbol("radix.slottable");function i(e){return t.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===o}e.s(["createSlot",0,function(e){var o;let l,a=(o=e,(l=t.forwardRef((e,n)=>{let{children:o,...i}=e;if(t.isValidElement(o)){var l;let e,a,s=(l=o,(a=(e=Object.getOwnPropertyDescriptor(l.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?l.ref:(a=(e=Object.getOwnPropertyDescriptor(l,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?l.props.ref:l.props.ref||l.ref),u=function(e,t){let r={...t};for(let n in t){let o=e[n],i=t[n];/^on[A-Z]/.test(n)?o&&i?r[n]=(...e)=>{let t=i(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...i}:"className"===n&&(r[n]=[o,i].filter(Boolean).join(" "))}return{...e,...r}}(i,o.props);return o.type!==t.Fragment&&(u.ref=n?(0,r.composeRefs)(n,s):s),t.cloneElement(o,u)}return t.Children.count(o)>1?t.Children.only(null):null})).displayName=`${o}.SlotClone`,l),s=t.forwardRef((e,r)=>{let{children:o,...l}=e,s=t.Children.toArray(o),u=s.find(i);if(u){let e=u.props.children,o=s.map(r=>r!==u?r:t.Children.count(e)>1?t.Children.only(null):t.isValidElement(e)?e.props.children:null);return(0,n.jsx)(a,{...l,ref:r,children:t.isValidElement(e)?t.cloneElement(e,void 0,o):null})}return(0,n.jsx)(a,{...l,ref:r,children:o})});return s.displayName=`${e}.Slot`,s},"createSlottable",0,function(e){let t=({children:e})=>(0,n.jsx)(n.Fragment,{children:e});return t.displayName=`${e}.Slottable`,t.__radixId=o,t}])},85565,e=>{"use strict";var t=e.i(64556),r=e.i(6206),n=e.i(60310),o=e.i(44180),i=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,r)=>{let i=(0,n.createSlot)(`Primitive.${r}`),l=t.forwardRef((e,t)=>{let{asChild:n,...l}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,o.jsx)(n?i:r,{...l,ref:t})});return l.displayName=`Primitive.${r}`,{...e,[r]:l}},{});e.s(["Primitive",0,i,"dispatchDiscreteCustomEvent",0,function(e,t){e&&r.flushSync(()=>e.dispatchEvent(t))}])},18731,e=>{"use strict";var t=e.i(64556),r=globalThis?.document?t.useLayoutEffect:()=>{};e.s(["useLayoutEffect",0,r])},93739,e=>{"use strict";var t=e.i(64556),r=e.i(22353),n=e.i(44180),o=Symbol.for("react.lazy"),i=t[" use ".trim().toString()];function l(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===o&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}function a(e){var o;let a,s=(o=e,(a=t.forwardRef((e,n)=>{let{children:o,...a}=e;if(l(o)&&"function"==typeof i&&(o=i(o._payload)),t.isValidElement(o)){var s;let e,i,l=(s=o,(i=(e=Object.getOwnPropertyDescriptor(s.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?s.ref:(i=(e=Object.getOwnPropertyDescriptor(s,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?s.props.ref:s.props.ref||s.ref),u=function(e,t){let r={...t};for(let n in t){let o=e[n],i=t[n];/^on[A-Z]/.test(n)?o&&i?r[n]=(...e)=>{let t=i(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...i}:"className"===n&&(r[n]=[o,i].filter(Boolean).join(" "))}return{...e,...r}}(a,o.props);return o.type!==t.Fragment&&(u.ref=n?(0,r.composeRefs)(n,l):l),t.cloneElement(o,u)}return t.Children.count(o)>1?t.Children.only(null):null})).displayName=`${o}.SlotClone`,a),u=t.forwardRef((e,r)=>{let{children:o,...a}=e;l(o)&&"function"==typeof i&&(o=i(o._payload));let u=t.Children.toArray(o),d=u.find(c);if(d){let e=d.props.children,o=u.map(r=>r!==d?r:t.Children.count(e)>1?t.Children.only(null):t.isValidElement(e)?e.props.children:null);return(0,n.jsx)(s,{...a,ref:r,children:t.isValidElement(e)?t.cloneElement(e,void 0,o):null})}return(0,n.jsx)(s,{...a,ref:r,children:o})});return u.displayName=`${e}.Slot`,u}var s=a("Slot"),u=Symbol("radix.slottable");function c(e){return t.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===u}e.s(["Slot",0,s,"createSlot",0,a])},20014,e=>{"use strict";var t=e.i(44180),r=e.i(93739),n=e.i(94237),o=e.i(81471),i=e.i(64556);let l=(0,n.cva)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-11 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),a=(0,i.forwardRef)(({className:e,variant:n,size:i,asChild:a=!1,...s},u)=>{let c=a?r.Slot:"button";return(0,t.jsx)(c,{className:(0,o.cn)(l({variant:n,size:i,className:e})),ref:u,...s})});a.displayName="Button",e.s(["Button",0,a])},11207,e=>{"use strict";var t=e.i(64556),r=e.i(18731),n=t[" useId ".trim().toString()]||(()=>void 0),o=0;e.s(["useId",0,function(e){let[i,l]=t.useState(n());return(0,r.useLayoutEffect)(()=>{e||l(e=>e??String(o++))},[e]),e||(i?`radix-${i}`:"")}])},36567,e=>{"use strict";var t=e.i(64556),r=e.i(18731);t[" useEffectEvent ".trim().toString()],t[" useInsertionEffect ".trim().toString()];var n=t[" useInsertionEffect ".trim().toString()]||r.useLayoutEffect;Symbol("RADIX:SYNC_STATE"),e.s(["useControllableState",0,function({prop:e,defaultProp:r,onChange:o=()=>{},caller:i}){let[l,a,s]=function({defaultProp:e,onChange:r}){let[o,i]=t.useState(e),l=t.useRef(o),a=t.useRef(r);return n(()=>{a.current=r},[r]),t.useEffect(()=>{l.current!==o&&(a.current?.(o),l.current=o)},[o,l]),[o,i,a]}({defaultProp:r,onChange:o}),u=void 0!==e,c=u?e:l;{let r=t.useRef(void 0!==e);t.useEffect(()=>{let e=r.current;if(e!==u){let t=u?"controlled":"uncontrolled";console.warn(`${i} is changing from ${e?"controlled":"uncontrolled"} to ${t}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}r.current=u},[u,i])}return[c,t.useCallback(t=>{if(u){let r="function"==typeof t?t(e):t;r!==e&&s.current?.(r)}else a(t)},[u,e,a,s])]}],36567)},90816,e=>{"use strict";var t=e.i(64556),r=e.i(22353),n=e.i(18731),o=e=>{var o;let l,a,{present:s,children:u}=e,c=function(e){var r,o;let[l,a]=t.useState(),s=t.useRef(null),u=t.useRef(e),c=t.useRef("none"),[d,f]=(r=e?"mounted":"unmounted",o={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},t.useReducer((e,t)=>o[e][t]??e,r));return t.useEffect(()=>{let e=i(s.current);c.current="mounted"===d?e:"none"},[d]),(0,n.useLayoutEffect)(()=>{let t=s.current,r=u.current;if(r!==e){let n=c.current,o=i(t);e?f("MOUNT"):"none"===o||t?.display==="none"?f("UNMOUNT"):r&&n!==o?f("ANIMATION_OUT"):f("UNMOUNT"),u.current=e}},[e,f]),(0,n.useLayoutEffect)(()=>{if(l){let e,t=l.ownerDocument.defaultView??window,r=r=>{let n=i(s.current).includes(CSS.escape(r.animationName));if(r.target===l&&n&&(f("ANIMATION_END"),!u.current)){let r=l.style.animationFillMode;l.style.animationFillMode="forwards",e=t.setTimeout(()=>{"forwards"===l.style.animationFillMode&&(l.style.animationFillMode=r)})}},n=e=>{e.target===l&&(c.current=i(s.current))};return l.addEventListener("animationstart",n),l.addEventListener("animationcancel",r),l.addEventListener("animationend",r),()=>{t.clearTimeout(e),l.removeEventListener("animationstart",n),l.removeEventListener("animationcancel",r),l.removeEventListener("animationend",r)}}f("ANIMATION_END")},[l,f]),{isPresent:["mounted","unmountSuspended"].includes(d),ref:t.useCallback(e=>{s.current=e?getComputedStyle(e):null,a(e)},[])}}(s),d="function"==typeof u?u({present:c.isPresent}):t.Children.only(u),f=(0,r.useComposedRefs)(c.ref,(o=d,(a=(l=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in l&&l.isReactWarning)?o.ref:(a=(l=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in l&&l.isReactWarning)?o.props.ref:o.props.ref||o.ref));return"function"==typeof u||c.isPresent?t.cloneElement(d,{ref:f}):null};function i(e){return e?.animationName||"none"}o.displayName="Presence",e.s(["Presence",0,o])},7284,e=>{"use strict";function t(){for(var e,t,r=0,n="",o=arguments.length;r<o;r++)(e=arguments[r])&&(t=function e(t){var r,n,o="";if("string"==typeof t||"number"==typeof t)o+=t;else if("object"==typeof t)if(Array.isArray(t)){var i=t.length;for(r=0;r<i;r++)t[r]&&(n=e(t[r]))&&(o&&(o+=" "),o+=n)}else for(n in t)t[n]&&(o&&(o+=" "),o+=n);return o}(e))&&(n&&(n+=" "),n+=t);return n}e.s(["clsx",0,t,"default",0,t])},77379,e=>{"use strict";var t=e.i(64556);let r=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim();var n={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let o=(0,t.forwardRef)(({color:e="currentColor",size:o=24,strokeWidth:i=2,absoluteStrokeWidth:l,className:a="",children:s,iconNode:u,...c},d)=>(0,t.createElement)("svg",{ref:d,...n,width:o,height:o,stroke:e,strokeWidth:l?24*Number(i)/Number(o):i,className:r("lucide",a),...c},[...u.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(s)?s:[s]]));e.s(["default",0,(e,n)=>{let i=(0,t.forwardRef)(({className:i,...l},a)=>(0,t.createElement)(o,{ref:a,iconNode:n,className:r(`lucide-${e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,i),...l}));return i.displayName=`${e}`,i}],77379)},94237,e=>{"use strict";var t=e.i(7284);let r=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,n=t.clsx;e.s(["cva",0,(e,t)=>o=>{var i;if((null==t?void 0:t.variants)==null)return n(e,null==o?void 0:o.class,null==o?void 0:o.className);let{variants:l,defaultVariants:a}=t,s=Object.keys(l).map(e=>{let t=null==o?void 0:o[e],n=null==a?void 0:a[e];if(null===t)return null;let i=r(t)||r(n);return l[e][i]}),u=o&&Object.entries(o).reduce((e,t)=>{let[r,n]=t;return void 0===n||(e[r]=n),e},{});return n(e,s,null==t||null==(i=t.compoundVariants)?void 0:i.reduce((e,t)=>{let{class:r,className:n,...o}=t;return Object.entries(o).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...a,...u}[t]):({...a,...u})[t]===r})?[...e,r,n]:e},[]),null==o?void 0:o.class,null==o?void 0:o.className)}])},48467,e=>{"use strict";var t=e.i(44180),r=e.i(94237),n=e.i(81471);let o=(0,r.cva)("inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium transition-colors",{variants:{variant:{default:"bg-primary/10 text-primary",blue:"bg-blue-50 text-blue-700 dark:bg-blue-950 dark:text-blue-300",purple:"bg-violet-50 text-violet-700 dark:bg-violet-950 dark:text-violet-300",green:"bg-emerald-50 text-emerald-700 dark:bg-emerald-950 dark:text-emerald-300",red:"bg-red-50 text-red-700 dark:bg-red-950 dark:text-red-300",amber:"bg-amber-50 text-amber-700 dark:bg-amber-950 dark:text-amber-300",orange:"bg-orange-50 text-orange-700 dark:bg-orange-950 dark:text-orange-300",pink:"bg-fuchsia-50 text-fuchsia-700 dark:bg-fuchsia-950 dark:text-fuchsia-300",gray:"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300"}},defaultVariants:{variant:"default"}});e.s(["Badge",0,function({className:e,variant:r,...i}){return(0,t.jsx)("span",{className:(0,n.cn)(o({variant:r}),e),...i})}])},72740,e=>{"use strict";let t=(0,e.i(77379).default)("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",0,t],72740)},10628,e=>{"use strict";var t=e.i(44180),r=e.i(64556),n=e.i(91967),o=e.i(22353),i=e.i(9413),l=e.i(3659),a=e.i(11207),s=e.i(45311),u=(e.i(76903),e.i(90816)),c=e.i(85565),d=e.i(60310),f=e.i(36567),p=e.i(87312),[m,g]=(0,i.createContextScope)("Tooltip",[s.createPopperScope]),y=(0,s.createPopperScope)(),v="TooltipProvider",b="tooltip.open",[x,h]=m(v),w=e=>{let{__scopeTooltip:n,delayDuration:o=700,skipDelayDuration:i=300,disableHoverableContent:l=!1,children:a}=e,s=r.useRef(!0),u=r.useRef(!1),c=r.useRef(0);return r.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,t.jsx)(x,{scope:n,isOpenDelayedRef:s,delayDuration:o,onOpen:r.useCallback(()=>{window.clearTimeout(c.current),s.current=!1},[]),onClose:r.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>s.current=!0,i)},[i]),isPointerInTransitRef:u,onPointerInTransitChange:r.useCallback(e=>{u.current=e},[]),disableHoverableContent:l,children:a})};w.displayName=v;var C="Tooltip",[k,E]=m(C),N=e=>{let{__scopeTooltip:n,children:o,open:i,defaultOpen:l,onOpenChange:u,disableHoverableContent:c,delayDuration:d}=e,p=h(C,e.__scopeTooltip),m=y(n),[g,v]=r.useState(null),x=(0,a.useId)(),w=r.useRef(0),E=c??p.disableHoverableContent,N=d??p.delayDuration,T=r.useRef(!1),[R,j]=(0,f.useControllableState)({prop:i,defaultProp:l??!1,onChange:e=>{e?(p.onOpen(),document.dispatchEvent(new CustomEvent(b))):p.onClose(),u?.(e)},caller:C}),S=r.useMemo(()=>R?T.current?"delayed-open":"instant-open":"closed",[R]),O=r.useCallback(()=>{window.clearTimeout(w.current),w.current=0,T.current=!1,j(!0)},[j]),A=r.useCallback(()=>{window.clearTimeout(w.current),w.current=0,j(!1)},[j]),P=r.useCallback(()=>{window.clearTimeout(w.current),w.current=window.setTimeout(()=>{T.current=!0,j(!0),w.current=0},N)},[N,j]);return r.useEffect(()=>()=>{w.current&&(window.clearTimeout(w.current),w.current=0)},[]),(0,t.jsx)(s.Root,{...m,children:(0,t.jsx)(k,{scope:n,contentId:x,open:R,stateAttribute:S,trigger:g,onTriggerChange:v,onTriggerEnter:r.useCallback(()=>{p.isOpenDelayedRef.current?P():O()},[p.isOpenDelayedRef,P,O]),onTriggerLeave:r.useCallback(()=>{E?A():(window.clearTimeout(w.current),w.current=0)},[A,E]),onOpen:O,onClose:A,disableHoverableContent:E,children:o})})};N.displayName=C;var T="TooltipTrigger",R=r.forwardRef((e,i)=>{let{__scopeTooltip:l,...a}=e,u=E(T,l),d=h(T,l),f=y(l),p=r.useRef(null),m=(0,o.useComposedRefs)(i,p,u.onTriggerChange),g=r.useRef(!1),v=r.useRef(!1),b=r.useCallback(()=>g.current=!1,[]);return r.useEffect(()=>()=>document.removeEventListener("pointerup",b),[b]),(0,t.jsx)(s.Anchor,{asChild:!0,...f,children:(0,t.jsx)(c.Primitive.button,{"aria-describedby":u.open?u.contentId:void 0,"data-state":u.stateAttribute,...a,ref:m,onPointerMove:(0,n.composeEventHandlers)(e.onPointerMove,e=>{"touch"!==e.pointerType&&(v.current||d.isPointerInTransitRef.current||(u.onTriggerEnter(),v.current=!0))}),onPointerLeave:(0,n.composeEventHandlers)(e.onPointerLeave,()=>{u.onTriggerLeave(),v.current=!1}),onPointerDown:(0,n.composeEventHandlers)(e.onPointerDown,()=>{u.open&&u.onClose(),g.current=!0,document.addEventListener("pointerup",b,{once:!0})}),onFocus:(0,n.composeEventHandlers)(e.onFocus,()=>{g.current||u.onOpen()}),onBlur:(0,n.composeEventHandlers)(e.onBlur,u.onClose),onClick:(0,n.composeEventHandlers)(e.onClick,u.onClose)})})});R.displayName=T;var[j,S]=m("TooltipPortal",{forceMount:void 0}),O="TooltipContent",A=r.forwardRef((e,r)=>{let n=S(O,e.__scopeTooltip),{forceMount:o=n.forceMount,side:i="top",...l}=e,a=E(O,e.__scopeTooltip);return(0,t.jsx)(u.Presence,{present:o||a.open,children:a.disableHoverableContent?(0,t.jsx)(I,{side:i,...l,ref:r}):(0,t.jsx)(P,{side:i,...l,ref:r})})}),P=r.forwardRef((e,n)=>{let i=E(O,e.__scopeTooltip),l=h(O,e.__scopeTooltip),a=r.useRef(null),s=(0,o.useComposedRefs)(n,a),[u,c]=r.useState(null),{trigger:d,onClose:f}=i,p=a.current,{onPointerInTransitChange:m}=l,g=r.useCallback(()=>{c(null),m(!1)},[m]),y=r.useCallback((e,t)=>{let r,n=e.currentTarget,o={x:e.clientX,y:e.clientY},i=function(e,t){let r=Math.abs(t.top-e.y),n=Math.abs(t.bottom-e.y),o=Math.abs(t.right-e.x),i=Math.abs(t.left-e.x);switch(Math.min(r,n,o,i)){case i:return"left";case o:return"right";case r:return"top";case n:return"bottom";default:throw Error("unreachable")}}(o,n.getBoundingClientRect());c(((r=[...function(e,t,r=5){let n=[];switch(t){case"top":n.push({x:e.x-r,y:e.y+r},{x:e.x+r,y:e.y+r});break;case"bottom":n.push({x:e.x-r,y:e.y-r},{x:e.x+r,y:e.y-r});break;case"left":n.push({x:e.x+r,y:e.y-r},{x:e.x+r,y:e.y+r});break;case"right":n.push({x:e.x-r,y:e.y-r},{x:e.x-r,y:e.y+r})}return n}(o,i),...function(e){let{top:t,right:r,bottom:n,left:o}=e;return[{x:o,y:t},{x:r,y:t},{x:r,y:n},{x:o,y:n}]}(t.getBoundingClientRect())].slice()).sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:1*!!(e.y>t.y)),function(e){if(e.length<=1)return e.slice();let t=[];for(let r=0;r<e.length;r++){let n=e[r];for(;t.length>=2;){let e=t[t.length-1],r=t[t.length-2];if((e.x-r.x)*(n.y-r.y)>=(e.y-r.y)*(n.x-r.x))t.pop();else break}t.push(n)}t.pop();let r=[];for(let t=e.length-1;t>=0;t--){let n=e[t];for(;r.length>=2;){let e=r[r.length-1],t=r[r.length-2];if((e.x-t.x)*(n.y-t.y)>=(e.y-t.y)*(n.x-t.x))r.pop();else break}r.push(n)}return(r.pop(),1===t.length&&1===r.length&&t[0].x===r[0].x&&t[0].y===r[0].y)?t:t.concat(r)}(r))),m(!0)},[m]);return r.useEffect(()=>()=>g(),[g]),r.useEffect(()=>{if(d&&p){let e=e=>y(e,p),t=e=>y(e,d);return d.addEventListener("pointerleave",e),p.addEventListener("pointerleave",t),()=>{d.removeEventListener("pointerleave",e),p.removeEventListener("pointerleave",t)}}},[d,p,y,g]),r.useEffect(()=>{if(u){let e=e=>{let t=e.target,r={x:e.clientX,y:e.clientY},n=d?.contains(t)||p?.contains(t),o=!function(e,t){let{x:r,y:n}=e,o=!1;for(let e=0,i=t.length-1;e<t.length;i=e++){let l=t[e],a=t[i],s=l.x,u=l.y,c=a.x,d=a.y;u>n!=d>n&&r<(c-s)*(n-u)/(d-u)+s&&(o=!o)}return o}(r,u);n?g():o&&(g(),f())};return document.addEventListener("pointermove",e),()=>document.removeEventListener("pointermove",e)}},[d,p,u,f,g]),(0,t.jsx)(I,{...e,ref:s})}),[_,M]=m(C,{isInside:!1}),L=(0,d.createSlottable)("TooltipContent"),I=r.forwardRef((e,n)=>{let{__scopeTooltip:o,children:i,"aria-label":a,onEscapeKeyDown:u,onPointerDownOutside:c,...d}=e,f=E(O,o),m=y(o),{onClose:g}=f;return r.useEffect(()=>(document.addEventListener(b,g),()=>document.removeEventListener(b,g)),[g]),r.useEffect(()=>{if(f.trigger){let e=e=>{let t=e.target;t?.contains(f.trigger)&&g()};return window.addEventListener("scroll",e,{capture:!0}),()=>window.removeEventListener("scroll",e,{capture:!0})}},[f.trigger,g]),(0,t.jsx)(l.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:u,onPointerDownOutside:c,onFocusOutside:e=>e.preventDefault(),onDismiss:g,children:(0,t.jsxs)(s.Content,{"data-state":f.stateAttribute,...m,...d,ref:n,style:{...d.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[(0,t.jsx)(L,{children:i}),(0,t.jsx)(_,{scope:o,isInside:!0,children:(0,t.jsx)(p.Root,{id:f.contentId,role:"tooltip",children:a||i})})]})})});A.displayName=O;var $="TooltipArrow";r.forwardRef((e,r)=>{let{__scopeTooltip:n,...o}=e,i=y(n);return M($,n).isInside?null:(0,t.jsx)(s.Arrow,{...i,...o,ref:r})}).displayName=$;var D=e.i(81471);e.s(["Tooltip",0,N,"TooltipContent",0,function({className:e,sideOffset:r=4,...n}){return(0,t.jsx)(A,{sideOffset:r,className:(0,D.cn)("z-50 overflow-hidden rounded-md bg-foreground px-3 py-1.5 text-xs text-background animate-in fade-in-0 zoom-in-95",e),...n})},"TooltipProvider",0,w,"TooltipTrigger",0,R],10628)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,70986,e=>{"use strict";var t=e.i(64556),s=e.i(91967),a=e.i(9413),i=e.i(36567),n=e.i(18731),r=e.i(22353),l=e.i(85565),o=e.i(90816),d=e.i(11207),c=e.i(44180),u="Collapsible",[h,m]=(0,a.createContextScope)(u),[p,x]=h(u),f=t.forwardRef((e,s)=>{let{__scopeCollapsible:a,open:n,defaultOpen:r,disabled:o,onOpenChange:h,...m}=e,[x,f]=(0,i.useControllableState)({prop:n,defaultProp:r??!1,onChange:h,caller:u});return(0,c.jsx)(p,{scope:a,disabled:o,contentId:(0,d.useId)(),open:x,onOpenToggle:t.useCallback(()=>f(e=>!e),[f]),children:(0,c.jsx)(l.Primitive.div,{"data-state":w(x),"data-disabled":o?"":void 0,...m,ref:s})})});f.displayName=u;var g="CollapsibleTrigger",b=t.forwardRef((e,t)=>{let{__scopeCollapsible:a,...i}=e,n=x(g,a);return(0,c.jsx)(l.Primitive.button,{type:"button","aria-controls":n.contentId,"aria-expanded":n.open||!1,"data-state":w(n.open),"data-disabled":n.disabled?"":void 0,disabled:n.disabled,...i,ref:t,onClick:(0,s.composeEventHandlers)(e.onClick,n.onOpenToggle)})});b.displayName=g;var v="CollapsibleContent",y=t.forwardRef((e,t)=>{let{forceMount:s,...a}=e,i=x(v,e.__scopeCollapsible);return(0,c.jsx)(o.Presence,{present:s||i.open,children:({present:e})=>(0,c.jsx)(j,{...a,ref:t,present:e})})});y.displayName=v;var j=t.forwardRef((e,s)=>{let{__scopeCollapsible:a,present:i,children:o,...d}=e,u=x(v,a),[h,m]=t.useState(i),p=t.useRef(null),f=(0,r.useComposedRefs)(s,p),g=t.useRef(0),b=g.current,y=t.useRef(0),j=y.current,k=u.open||h,C=t.useRef(k),N=t.useRef(void 0);return t.useEffect(()=>{let e=requestAnimationFrame(()=>C.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,n.useLayoutEffect)(()=>{let e=p.current;if(e){N.current=N.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration="0s",e.style.animationName="none";let t=e.getBoundingClientRect();g.current=t.height,y.current=t.width,C.current||(e.style.transitionDuration=N.current.transitionDuration,e.style.animationName=N.current.animationName),m(i)}},[u.open,i]),(0,c.jsx)(l.Primitive.div,{"data-state":w(u.open),"data-disabled":u.disabled?"":void 0,id:u.contentId,hidden:!k,...d,ref:f,style:{"--radix-collapsible-content-height":b?`${b}px`:void 0,"--radix-collapsible-content-width":j?`${j}px`:void 0,...e.style},children:k&&o})});function w(e){return e?"open":"closed"}e.s(["Collapsible",0,f,"CollapsibleContent",0,y,"CollapsibleTrigger",0,b],70986)},99758,e=>{"use strict";let t=(0,e.i(77379).default)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],99758)},74490,e=>{"use strict";var t=e.i(44180),s=e.i(81471);let a=(0,e.i(94237).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}});e.s(["Card",0,function({className:e,tone:i,interactive:n,...r}){return(0,t.jsx)("div",{className:(0,s.cn)(a({tone:i,interactive:n}),e),...r})},"CardHeader",0,function({className:e,...a}){return(0,t.jsx)("div",{className:(0,s.cn)("mb-3 flex items-center justify-between",e),...a})},"CardStatLabel",0,function({className:e,...a}){return(0,t.jsx)("h3",{className:(0,s.cn)("text-sm font-medium text-muted-foreground",e),...a})},"CardTitle",0,function({className:e,...a}){return(0,t.jsx)("h3",{className:(0,s.cn)("text-lg font-semibold text-foreground",e),...a})},"CardValue",0,function({className:e,...a}){return(0,t.jsx)("div",{className:(0,s.cn)("text-3xl font-bold text-foreground",e),...a})}])},90925,e=>{"use strict";let t=(0,e.i(77379).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"}]]);e.s(["Trash2",0,t],90925)},60168,e=>{"use strict";let t=(0,e.i(77379).default)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],60168)},21682,e=>{"use strict";let t=(0,e.i(77379).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"}]]);e.s(["Pencil",0,t],21682)},55575,e=>{"use strict";let t=(0,e.i(77379).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"}]]);e.s(["FolderOpen",0,t],55575)},66127,e=>{"use strict";var t=e.i(65268);async function s({title:e,defaultPath:a}){let i=await t.api.post("/system/pick-directory",{title:e,...a?{defaultPath:a}:{}});if("selected"===i.status&&i.path)return i.path;if("cancelled"===i.status)return null;throw Error(i.message??"Folder picker is unavailable.")}e.s(["pickDirectoryFromDesktop",0,s])},25795,e=>{"use strict";let t=(0,e.i(77379).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"}]]);e.s(["RotateCcw",0,t],25795)},82239,e=>{"use strict";var t=e.i(44180),s=e.i(25795),a=e.i(10628);e.s(["RestartRequiredBadge",0,function(){return(0,t.jsxs)(a.Tooltip,{children:[(0,t.jsx)(a.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-0.5 rounded-sm bg-amber-100 px-1 py-0.5 text-[10px] font-medium text-amber-700 dark:bg-amber-900/40 dark:text-amber-300",children:[(0,t.jsx)(s.RotateCcw,{className:"h-2.5 w-2.5"}),"restart"]})}),(0,t.jsx)(a.TooltipContent,{side:"top",className:"max-w-[220px] text-xs",children:"Changing this value requires a daemon restart to take effect."})]})}])},49681,e=>{"use strict";var t=e.i(44180),s=e.i(7771),a=e.i(95486),i=e.i(8011),n=e.i(10628),r=e.i(81471);e.s(["DocsHelpInline",0,function({docId:e,anchor:l=null,label:o,className:d}){let c=(0,a.useQueryClient)(),u=o??"Help";return(0,t.jsx)(n.TooltipProvider,{delayDuration:300,children:(0,t.jsxs)(n.Tooltip,{children:[(0,t.jsx)(n.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:t=>{t.preventDefault(),t.stopPropagation(),(0,i.openDocsHelpSlideover)(c,{docId:e,anchor:l,autoFocusComposer:!1})},className:(0,r.cn)("inline-flex h-5 w-5 items-center justify-center rounded-full text-muted-foreground/70 transition hover:bg-accent hover:text-foreground",d),"aria-label":`Open help — ${u}`,"data-testid":"docs-help-inline",children:(0,t.jsx)(s.HelpCircle,{className:"h-3.5 w-3.5","aria-hidden":"true"})})}),(0,t.jsx)(n.TooltipContent,{side:"top",children:(0,t.jsx)("span",{children:u})})]})})}])},88,e=>{"use strict";var t=e.i(44180),s=e.i(64556),a=e.i(99758),i=e.i(55575),n=e.i(21682),r=e.i(60168),l=e.i(25795),o=e.i(90925),d=e.i(36451);e.i(18446);var c=e.i(28444),u=e.i(48467),h=e.i(20014),m=e.i(74490),p=e.i(8652),x=e.i(82239),f=e.i(49681),g=e.i(66127),b=e.i(85635);let v=new Set(c.RESTART_REQUIRED_KEY_TUPLE);function y(e){return null===e?"":String(e)}e.s(["ConfigSection",0,function({title:e,children:s,helpDocId:a,helpAnchor:i}){return(0,t.jsxs)(m.Card,{children:[(0,t.jsx)(m.CardHeader,{children:(0,t.jsxs)(m.CardTitle,{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{children:e}),a&&(0,t.jsx)(f.DocsHelpInline,{docId:a,anchor:i??null,label:e})]})}),(0,t.jsx)("div",{className:"space-y-0.5 [&>p]:max-w-prose",children:s})]})},"EditableArrayField",0,function({label:e,values:a,configKey:n,variant:l="gray",placeholder:o="Add item...",directoryPicker:c,modified:m,onSave:f}){let b=v.has(n),[y,j]=(0,s.useState)(""),[w,k]=(0,s.useState)(!1),[C,N]=(0,s.useState)(null),S=async()=>{let e=y.trim();if(!(!e||a.includes(e))){k(!0),N(null);try{await f(n,[...a,e]),j("")}catch{}finally{k(!1)}}},P=async e=>{k(!0);try{await f(n,a.filter(t=>t!==e))}finally{k(!1)}},T=async()=>{if(c){k(!0),N(null);try{let e=await (0,g.pickDirectoryFromDesktop)({title:c.title,defaultPath:y.trim()||c.defaultPath});if(!e)return;if(a.includes(e)){j(e),N("That directory is already in the list.");return}await f(n,[...a,e]),j("")}catch(e){N(e instanceof Error?e.message:"Folder picker is unavailable.")}finally{k(!1)}}};return(0,t.jsxs)("div",{className:`py-2${m?" border-l-2 border-blue-500 pl-2 -ml-1 rounded":""}`,"data-config-key":n,children:[(0,t.jsxs)("p",{className:"text-sm text-muted-foreground mb-2 inline-flex items-center gap-1.5",children:[e,b&&(0,t.jsx)(x.RestartRequiredBadge,{}),m&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-blue-600 dark:text-blue-400",children:"modified"})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-1.5 mb-2",children:[a.map(e=>(0,t.jsxs)(u.Badge,{variant:l,className:"gap-1 pr-1",children:[e,(0,t.jsx)("button",{onClick:()=>P(e),disabled:w,className:"ml-0.5 rounded-sm hover:bg-black/10 dark:hover:bg-white/10 p-0.5 transition-colors",children:(0,t.jsx)(d.X,{className:"h-3 w-3"})})]},e)),0===a.length&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground italic",children:"No items"})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(p.Input,{value:y,onChange:e=>j(e.target.value),onKeyDown:e=>{"Enter"===e.key&&S()},placeholder:o,className:"max-w-[320px]",disabled:w}),c&&(0,t.jsxs)(h.Button,{size:"sm",variant:"outline",onClick:T,disabled:w,children:[(0,t.jsx)(i.FolderOpen,{className:"h-3.5 w-3.5 mr-1"}),c.buttonLabel??"Choose"]}),(0,t.jsxs)(h.Button,{size:"sm",variant:"outline",onClick:S,disabled:!y.trim()||w,children:[(0,t.jsx)(r.Plus,{className:"h-3.5 w-3.5 mr-1"}),"Add"]})]}),C&&(0,t.jsx)("p",{className:"mt-1 text-xs text-destructive",children:C})]})},"EditableBooleanField",0,function({label:e,value:a,configKey:i,description:n,modified:r,defaultValue:o,onSave:d}){let[c,u]=(0,s.useState)(!1),m=v.has(i),p=void 0!==o&&a===o,f=async()=>{u(!0);try{await d(i,!a)}finally{u(!1)}},g=async()=>{if(void 0!==o){u(!0);try{await d(i,o)}finally{u(!1)}}};return(0,t.jsx)("div",{className:`py-1.5 group${r?" border-l-2 border-blue-500 pl-2 -ml-1 rounded":""}`,"data-config-key":i,children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("p",{className:"text-sm text-muted-foreground inline-flex items-center gap-1.5",children:[e,m&&(0,t.jsx)(x.RestartRequiredBadge,{}),r&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-blue-600 dark:text-blue-400",children:"modified"}),void 0!==o&&!p&&!r&&(0,t.jsxs)("button",{type:"button",onClick:g,className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-0.5 opacity-0 group-hover:opacity-100",children:[(0,t.jsx)(l.RotateCcw,{className:"h-2.5 w-2.5"}),"reset"]})]}),n&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:n})]}),(0,t.jsx)(h.Button,{variant:a?"default":"outline",size:"sm",onClick:f,disabled:c,children:a?"Enabled":"Disabled"})]})})},"EditableField",0,function({label:e,value:i,configKey:r,type:c="text",suffix:u,description:m,min:f,max:g,nullable:j=!1,emptyLabel:w="Not set",modified:k,defaultValue:C,onSave:N}){let S=v.has(r),[P,T]=(0,s.useState)(!1),[R,D]=(0,s.useState)(y(i)),[I,M]=(0,s.useState)(!1),[E,F]=(0,s.useState)(null),B=(0,s.useRef)(null),$=(0,b.useDiscardGeneration)(),A=(0,s.useRef)($);(0,s.useEffect)(()=>{$!==A.current&&(A.current=$,T(!1),F(null))},[$]),(0,s.useEffect)(()=>{P&&B.current?.focus()},[P]),(0,s.useEffect)(()=>{P||D(y(i))},[i,P]);let q=void 0!==C&&i===C,K=async e=>{if(e.stopPropagation(),void 0!==C){M(!0);try{await N(r,C)}finally{M(!1)}}},L=async e=>{e.stopPropagation(),M(!0);try{await N(r,null)}finally{M(!1)}},H=async()=>{let e=R.trim(),t=j&&""===e?null:"number"===c?Number(R):R;if(t===i)return void T(!1);if(null!==t&&"number"===c&&(void 0!==f||void 0!==g)&&(void 0!==f&&t<f||void 0!==g&&t>g))return void F(`Must be ${f??""}–${g??""}`);F(null),M(!0);try{await N(r,t),T(!1)}catch{}finally{M(!1)}};return P?(0,t.jsxs)("div",{className:"py-1.5","data-config-key":r,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"text-sm text-muted-foreground shrink-0 min-w-[140px] inline-flex items-center gap-1.5",children:[e,S&&(0,t.jsx)(x.RestartRequiredBadge,{})]}),(0,t.jsx)(p.Input,{ref:B,type:c,value:R,onChange:e=>{D(e.target.value),F(null)},onKeyDown:e=>{"Enter"===e.key&&H(),"Escape"===e.key&&(D(y(i)),T(!1))},className:"max-w-[240px]",disabled:I,min:f,max:g}),u&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:u}),(0,t.jsx)(h.Button,{size:"sm",variant:"ghost",onClick:H,disabled:I,className:"h-7 w-7 p-0",children:(0,t.jsx)(a.Check,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(h.Button,{size:"sm",variant:"ghost",onClick:()=>{D(y(i)),F(null),T(!1)},className:"h-7 w-7 p-0",children:(0,t.jsx)(d.X,{className:"h-3.5 w-3.5"})})]}),E&&(0,t.jsx)("p",{className:"text-xs text-destructive mt-1 ml-[148px]",children:E}),m&&!E&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-1 ml-[148px]",children:m})]}):(0,t.jsxs)("div",{className:`py-1.5 group cursor-pointer rounded px-1 -mx-1 hover:bg-muted/50 transition-colors${k?" border-l-2 border-blue-500 pl-2":""}`,"data-config-key":r,onClick:()=>T(!0),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("span",{className:"text-sm text-muted-foreground inline-flex items-center gap-1.5",children:[e,S&&(0,t.jsx)(x.RestartRequiredBadge,{})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[k&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-blue-600 dark:text-blue-400",children:"modified"}),void 0!==C&&!q&&!k&&(0,t.jsxs)("button",{type:"button",onClick:K,className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-0.5 opacity-0 group-hover:opacity-100",children:[(0,t.jsx)(l.RotateCcw,{className:"h-2.5 w-2.5"}),"reset"]}),j&&null!==i&&!k&&(0,t.jsxs)("button",{type:"button",onClick:L,title:`Clear — sets ${e} to ${w}`,className:"text-[10px] text-muted-foreground hover:text-destructive transition-colors inline-flex items-center gap-0.5 opacity-0 group-hover:opacity-100",children:[(0,t.jsx)(o.Trash2,{className:"h-2.5 w-2.5"}),"clear"]}),(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:null===i?w:"$"===u?`$${i}`:u?`${i} ${u}`:String(i)}),(0,t.jsx)(n.Pencil,{className:"h-3 w-3 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity"})]})]}),m&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:m})]})}])},54879,e=>{"use strict";let t=(0,e.i(77379).default)("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);e.s(["Zap",0,t],54879)},34409,e=>{"use strict";var t=e.i(44180),s=e.i(64556),a=e.i(81187),i=e.i(96263),n=e.i(72740);let r=(0,e.i(77379).default)("Mic",[["path",{d:"M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z",key:"131961"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["line",{x1:"12",x2:"12",y1:"19",y2:"22",key:"x3vr5v"}]]);var l=e.i(25795),o=e.i(90925),d=e.i(54879),c=e.i(95486),u=e.i(14260),h=e.i(65268),m=e.i(88423),p=e.i(13451),x=e.i(85635),f=e.i(20014),g=e.i(74490),b=e.i(70986),v=e.i(57628),y=e.i(90826),j=e.i(81471),w=e.i(88),k=e.i(94328);function C(){let e=(0,c.useQueryClient)(),[a,i]=(0,s.useState)(!1),[l,o]=(0,s.useState)(!1),[d,m]=(0,s.useState)(null),{data:p}=(0,u.useQuery)({queryKey:["voice-status"],queryFn:async()=>{try{return await h.api.get("/voice/status")}catch(e){if(l)return{enabled:!1,installing:!0,installed:!0,status:"running",error:null,startedAt:null,finishedAt:null,model:"Xenova/whisper-small",progress:null};throw e}},refetchInterval:e=>{let t=e.state.data;return!!(l||t?.installing||t?.status==="running")&&1500},refetchOnWindowFocus:!1});(0,s.useEffect)(()=>{l&&p?.enabled&&(o(!1),e.invalidateQueries({queryKey:["config"]}))},[l,p?.enabled,e]),(0,s.useEffect)(()=>{p?.status!=="ready"||p.enabled||o(!0)},[p?.status,p?.enabled]);let x=async()=>{m(null),i(!0);try{await h.api.post("/voice/install"),await e.invalidateQueries({queryKey:["voice-status"]})}catch(e){m(e instanceof h.ApiError?e.message:"Install failed")}finally{i(!1)}},b=p?.enabled??!1,v=a||(p?.installing??!1)||l,y=p?.progress??null,w=d??p?.error??null;return(0,t.jsxs)(g.Card,{children:[(0,t.jsx)(g.CardHeader,{children:(0,t.jsxs)(g.CardTitle,{className:"flex items-center gap-2",children:[(0,t.jsx)(r,{className:"h-4 w-4"}),"Voice Mode"]})}),(0,t.jsxs)("div",{className:"space-y-3 [&>p]:max-w-prose",children:[(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Transcribe inbound voice messages (Telegram voice / WhatsApp PTT / Discord audio / Slack audio file) locally with Whisper before they reach the agent. Audio bytes never leave the host. Default off — no model is downloaded until you turn it on. Model:"," ",(0,t.jsx)("code",{children:p?.model??"Xenova/whisper-small"})," (~244 MB). See"," ",(0,t.jsx)("code",{children:"docs/design/appendices/voice-transcription.md"})," for implementation details."]}),w&&(0,t.jsx)("p",{className:"rounded-md border border-destructive/40 bg-destructive/5 px-3 py-2 text-xs text-destructive",children:w}),(0,t.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("p",{className:"text-sm",children:["Status:"," ",(0,t.jsx)("span",{className:"font-medium",children:v?l?"Restarting daemon to apply…":y?.phase==="ready"?"Finalizing…":y?.currentFile?`Downloading ${y.currentFile}…`:"Starting model download…":b?"Enabled":"Disabled"})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:"Turning this on downloads the Whisper weights (~244 MB), then auto-restarts the daemon so the transcriber initializes with the new flag. The first download takes a minute or two depending on your connection."})]}),(0,t.jsx)(f.Button,{size:"sm",variant:b?"outline":"default",onClick:x,disabled:a||v||b,children:v?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.Loader2,{className:"h-3.5 w-3.5 mr-1 animate-spin"}),"Working…"]}):b?"Enabled":"Enable & install"})]}),v&&!l&&(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("div",{className:"h-1.5 w-full overflow-hidden rounded-full bg-muted",children:(0,t.jsx)("div",{className:(0,j.cn)("h-full bg-primary transition-[width] duration-200",(!y||0===y.percent)&&"animate-pulse"),style:{width:`${Math.min(100,Math.max(y?.percent??0,y?2:8))}%`}})}),(0,t.jsxs)("div",{className:"flex items-center justify-between text-[11px] text-muted-foreground tabular-nums",children:[(0,t.jsxs)("span",{children:[y&&y.totalBytes>0?`${P(y.loadedBytes)} / ${P(y.totalBytes)}`:"Contacting Hugging Face…",y&&y.filesDownloaded>0&&(0,t.jsxs)(t.Fragment,{children:[" · ",y.filesDownloaded," file",1===y.filesDownloaded?"":"s"," complete"]})]}),(0,t.jsx)("span",{children:y&&y.percent>0?`${Math.round(y.percent)}%`:""})]})]})]})]})}async function N(e){switch(e){case"reset-config":return h.api.post("/system/reset-config");case"purge-history":return h.api.post("/system/purge-history");case"wipe-context":return h.api.post("/system/wipe-context");case"reinstall-context":return h.api.post("/system/reinstall-context",{confirm:"CLEAN"});case"factory-reset":return h.api.post("/system/factory-reset")}}function S(e,t){switch(e){case"reset-config":t.invalidateQueries({queryKey:["config"]});return;case"purge-history":t.invalidateQueries({queryKey:["conversations"]}),t.invalidateQueries({queryKey:["events"]}),t.invalidateQueries({queryKey:["cost"]});return;case"wipe-context":case"reinstall-context":t.invalidateQueries({queryKey:["context"]}),t.invalidateQueries({queryKey:["setup-status"]});return;case"factory-reset":t.invalidateQueries();return}}function P(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:e<0x40000000?`${(e/1048576).toFixed(1)} MB`:`${(e/0x40000000).toFixed(1)} GB`}function T(){let[e,n]=(0,s.useState)(!1),[r,u]=(0,s.useState)(null),[m,p]=(0,s.useState)(null),[x,f]=(0,s.useState)(null),w=(0,y.useConfirm)(),k=(0,c.useQueryClient)(),C=async(e,t)=>{if(await w({title:t.title,description:t.description,confirmLabel:t.confirmLabel,variant:"destructive"})&&(!t.doubleConfirm||await w({title:t.doubleConfirm.title,description:t.doubleConfirm.description,confirmLabel:t.doubleConfirm.confirmLabel,variant:"destructive",requireText:t.doubleConfirm.requireText}))){u(e),p(null),f(null);try{let s=await N(e);S(e,k),f(t.successMessage(s))}catch(e){p(e instanceof h.ApiError?e.message:"Request failed")}finally{u(null)}}};return(0,t.jsx)(b.Collapsible,{open:e,onOpenChange:n,children:(0,t.jsxs)(g.Card,{className:"border-destructive/40",children:[(0,t.jsx)(b.CollapsibleTrigger,{asChild:!0,children:(0,t.jsx)(g.CardHeader,{className:"cursor-pointer select-none",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(i.ChevronRight,{className:(0,j.cn)("h-4 w-4 text-destructive transition-transform",e&&"rotate-90")}),(0,t.jsx)(a.AlertTriangle,{className:"h-4 w-4 text-destructive"}),(0,t.jsx)(g.CardTitle,{className:"text-destructive",children:"Danger Zone"})]})})}),(0,t.jsx)(b.CollapsibleContent,{children:(0,t.jsxs)("div",{className:"space-y-4 pb-1",children:[(0,t.jsx)("p",{className:"text-xs text-muted-foreground max-w-prose",children:"Destructive actions that cannot be undone. Each action requires confirmation before executing."}),m&&(0,t.jsx)("p",{className:"rounded-md border border-destructive/40 bg-destructive/5 px-3 py-2 text-xs text-destructive",children:m}),x&&(0,t.jsx)("p",{className:"rounded-md border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground",children:x}),(0,t.jsx)(R,{title:"Reset all config to defaults",description:"Restores every runtime setting to its factory default. Bootstrap values in .env (API port) and integration credentials are not affected.",icon:(0,t.jsx)(l.RotateCcw,{className:"h-3.5 w-3.5 mr-1"}),label:"Reset config",busy:"reset-config"===r,disabled:null!==r,onClick:()=>C("reset-config",{title:"Reset all config to defaults?",description:"Restores every runtime setting in the database to its factory default. Bootstrap values in .env (API port) and integration credentials are not affected.",confirmLabel:"Reset config",successMessage:e=>`Cleared ${e.cleared??0} runtime setting(s).`})}),(0,t.jsx)(v.Separator,{}),(0,t.jsx)(R,{title:"Delete all sessions and history",description:"Permanently removes all non-active conversation sessions, messages, action logs, observations, notification logs, MD snapshots, and scheduled tasks. The active session is preserved.",icon:(0,t.jsx)(o.Trash2,{className:"h-3.5 w-3.5 mr-1"}),label:"Delete history",busy:"purge-history"===r,disabled:null!==r,onClick:()=>C("purge-history",{title:"Delete all sessions and history?",description:"Permanently removes every non-active conversation session, message, action log, observation, notification log, MD snapshot, and scheduled task. The active session is preserved.",confirmLabel:"Delete history",successMessage:e=>`Deleted ${e.deletedSessions??0} session(s), ${e.deletedMessages??0} message(s), ${e.deletedActions??0} action(s).`})}),(0,t.jsx)(v.Separator,{}),(0,t.jsx)(R,{title:"Wipe context files",description:"Deletes every file under the active primary vault and fallback context directory, including rules/management.md. Runtime settings, credentials, history, and integrations are preserved.",icon:(0,t.jsx)(o.Trash2,{className:"h-3.5 w-3.5 mr-1"}),label:"Wipe context",busy:"wipe-context"===r,disabled:null!==r,onClick:()=>C("wipe-context",{title:"Wipe all context files?",description:"Deletes every file under the active primary vault and fallback context directory — including rules/management.md, so the daemon will re-enter rules setup. Runtime settings, credentials, history, and integrations are preserved.",confirmLabel:"Wipe context",successMessage:e=>`Removed ${e.removed??0} context entr(y/ies).`})}),(0,t.jsx)(v.Separator,{}),(0,t.jsx)(R,{title:"Reinstall context (B-007 clean)",description:"Safer alternative to Wipe context: writes a tarball backup first, then wipes context/ + md_file_snapshots. Conversation history and other SQLite tables are preserved. Restart the daemon to re-seed the vault from templates.",icon:(0,t.jsx)(l.RotateCcw,{className:"h-3.5 w-3.5 mr-1"}),label:"Reinstall context",busy:"reinstall-context"===r,disabled:null!==r,onClick:()=>(async()=>{u("reinstall-context"),p(null),f(null);try{let e,t=await h.api.get("/system/reinstall-context/plan");if(!await w({title:"Clean reinstall of context/ (B-007)?",description:(e=t.ancillaryDirs.length>0?`Ancillary caches to remove: ${t.ancillaryDirs.join(", ")}.`:"No ancillary caches are scheduled for removal.",[`This will remove ${t.fileCount} file(s) (${P(t.totalBytes)}) from ${t.contextDir}, clear ${t.snapshotRowCount} snapshot row(s), and then re-run setup on the next daemon start.`,e,`Backup tarball path: ${t.backupPath}`].join(" ")),confirmLabel:"Continue",variant:"destructive"})||!await w({title:"Type CLEAN to confirm",description:`Backup tarball: ${t.backupPath}. Proceed to remove ${t.fileCount} file(s) and clear ${t.snapshotRowCount} snapshot row(s).`,confirmLabel:"Reinstall context",variant:"destructive",requireText:"CLEAN"}))return;let s=await N("reinstall-context");S("reinstall-context",k),f(`Reinstalled. Removed ${s.filesDeleted??0} file(s), cleared ${s.snapshotRowsDeleted??0} snapshot row(s). Backup at ${s.backupPath??t.backupPath}.`)}catch(e){p(e instanceof h.ApiError?e.message:"Request failed")}finally{u(null)}})()}),(0,t.jsx)(v.Separator,{}),(0,t.jsx)(R,{title:"Factory reset",description:"Wipe everything: history, settings, context, credentials, encrypted blobs, attachments, session workdirs, backups, caches, user skills, integrations, backend configs, mail accounts, and recurring schedules. The SQLite DB is compacted afterward.",icon:(0,t.jsx)(d.Zap,{className:"h-3.5 w-3.5 mr-1"}),label:"Factory reset",busy:"factory-reset"===r,disabled:null!==r,onClick:()=>C("factory-reset",{title:"Factory reset — really?",description:"This clears EVERYTHING on this device: conversation history, action logs, runtime settings, context files (including rules/management.md), keychain secrets, encrypted blobs, uploaded attachments, session workdirs, backups, caches, user skills, integrations.md, and every user-data table — backends, mail accounts, recurring schedules, receipts, books + reading highlights, travel bookings, parse failures, runtime state, auth telemetry. The daemon compacts the SQLite DB afterward. Restart it to re-bootstrap observers and adapters.",confirmLabel:"Continue",doubleConfirm:{title:"Final confirmation",description:"There is no undo. Type the confirmation phrase below to proceed.",confirmLabel:"Factory reset",requireText:"RESET EVERYTHING"},successMessage:e=>{let t="string"==typeof e.status?e.status:"reset",s=Array.isArray(e.errors)?e.errors.length:0,a=Array.isArray(e.adapterReloadErrors)?e.adapterReloadErrors.length:0;return"reset_with_errors"===t||s>0||a>0?`Factory reset finished with warnings. Restart the daemon to re-bootstrap observers and adapters. (${s} reset step warning(s), ${a} adapter reload warning(s).)`:"Factory reset complete. Restart the daemon to re-bootstrap observers and adapters."}})})]})})]})})}function R({title:e,description:s,icon:a,label:i,busy:n,disabled:r,onClick:l}){return(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,t.jsxs)("div",{className:"space-y-0.5",children:[(0,t.jsx)("p",{className:"text-sm font-medium",children:e}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:s})]}),(0,t.jsxs)(f.Button,{variant:"destructive",size:"sm",onClick:l,disabled:r,className:"shrink-0",children:[a,n?"Working...":i]})]})}e.s(["default",0,function(){let{data:e}=(0,m.useConfig)(),{df:a}=(0,m.useConfigDefaults)(),{toast:i,showToast:n}=(0,p.useSaveConfig)(),{deferSaveFor:r,dv:o,dirtyFields:d,clearDirtyKeys:u}=(0,x.useDirtyFields)(),b=(0,c.useQueryClient)(),j=(0,y.useConfirm)(),[N,S]=(0,s.useState)(!1),P=async()=>{if(await j({title:"Reset disallowed tools to defaults?",description:"This will restore the default safety tool list, replacing any customizations.",confirmLabel:"Reset",variant:"destructive"})){S(!0);try{await h.api.post("/config/reset-safety"),b.invalidateQueries({queryKey:["config"]}),u(["disallowedTools","allowedToolsOverride"]),n("success","Safety tools reset to defaults")}finally{S(!1)}}};if(!e)return(0,t.jsx)("div",{className:"text-muted-foreground",children:"Loading..."});let R=r(e);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:"Advanced"}),(0,t.jsx)("p",{className:"mt-1 max-w-3xl text-sm text-muted-foreground",children:"Power-user knobs and safety settings. Most of these are low-level — read each description carefully before saving."})]}),(0,t.jsx)(k.SettingsToast,{toast:i}),(0,t.jsxs)(g.Card,{children:[(0,t.jsx)(g.CardHeader,{children:(0,t.jsx)(g.CardTitle,{children:"Safety — Tool Policy"})}),(0,t.jsxs)("div",{className:"space-y-3 [&>p]:max-w-prose",children:[(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Guardrails applied to every Claude Code tool call, enforced by the SDK before the tool runs. Entries are either a plain tool name (",(0,t.jsx)("code",{children:"Write"}),", ",(0,t.jsx)("code",{children:"WebFetch"}),") or a tool name with an argument pattern in parentheses (",(0,t.jsx)("code",{children:"Bash(rm -rf *)"}),") to match only specific invocations."," ",(0,t.jsx)("strong",{children:"Disallowed wins over allowed"})," — any match in the disallowed list blocks the call even if allowed override covers it. Per-backend Allow-mode toggle has moved to"," ",(0,t.jsx)("strong",{children:"Settings → Models & Cost"})," so each backend can be flipped independently."]}),(0,t.jsx)(w.EditableArrayField,{label:"Disallowed Tools",values:o("disallowedTools",e.disallowedTools),configKey:"disallowedTools",variant:"red",placeholder:"e.g. Bash(rm -rf *)",modified:d.has("disallowedTools"),onSave:R}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground -mt-1",children:"Tools the agent is forbidden from calling. The defaults block destructive shell commands and known-dangerous file operations. Use Reset to Defaults below to restore them after experimenting."}),(0,t.jsx)(v.Separator,{}),(0,t.jsx)(w.EditableArrayField,{label:"Allowed Tools Override",values:o("allowedToolsOverride",e.allowedTools),configKey:"allowedToolsOverride",variant:"green",placeholder:"e.g. Bash(git push)",modified:d.has("allowedToolsOverride"),onSave:R}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground -mt-1",children:["Narrow exceptions to the disallowed list — use this to permit a specific safe invocation of an otherwise-blocked tool (e.g. allow"," ",(0,t.jsx)("code",{children:"Bash(git push)"})," while keeping arbitrary ",(0,t.jsx)("code",{children:"Bash"})," ","blocked)."]}),(0,t.jsx)(v.Separator,{}),(0,t.jsxs)(f.Button,{variant:"outline",size:"sm",onClick:P,disabled:N,children:[(0,t.jsx)(l.RotateCcw,{className:"h-3.5 w-3.5 mr-1"}),N?"Resetting...":"Reset to Defaults"]}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Restores the built-in disallowed-tool list and"," ",(0,t.jsx)("strong",{children:"also clears the allowed override list"}),", replacing any customizations in both. Use this if your safety config has drifted and you want a clean slate."]})]})]}),(0,t.jsx)(C,{}),(0,t.jsxs)(w.ConfigSection,{title:"Polling Intervals",children:[(0,t.jsx)("p",{className:"pb-2 text-xs text-muted-foreground",children:"How often each observer polls its source for changes. Lower values mean faster detection but more I/O. Changes apply immediately — no restart required."}),(0,t.jsx)(w.EditableField,{label:"Obsidian Debounce",value:o("obsidianDebounceSeconds",e.obsidianDebounceSeconds),configKey:"obsidianDebounceSeconds",type:"number",suffix:"sec",modified:d.has("obsidianDebounceSeconds"),defaultValue:a("obsidianDebounceSeconds"),description:"Seconds to wait after a vault file change before recording it as an observation. Prevents rapid-fire edits from flooding the observation queue.",onSave:R}),(0,t.jsx)(w.EditableField,{label:"Scheduler Poll Interval",value:o("schedulePollIntervalSeconds",e.schedulePollIntervalSeconds),configKey:"schedulePollIntervalSeconds",type:"number",suffix:"sec",modified:d.has("schedulePollIntervalSeconds"),defaultValue:a("schedulePollIntervalSeconds"),description:"Seconds between scheduler wake-ups that look for pending work. Lower values make recurring tasks fire closer to their target time.",onSave:R}),(0,t.jsx)(w.EditableField,{label:"Git Poll Interval",value:o("gitPollIntervalSeconds",e.gitPollIntervalSeconds),configKey:"gitPollIntervalSeconds",type:"number",suffix:"sec",modified:d.has("gitPollIntervalSeconds"),defaultValue:a("gitPollIntervalSeconds"),description:"Seconds between Git lifecycle checks in watched repos. Default 3600 (1 hour).",onSave:R}),(0,t.jsx)(w.EditableField,{label:"Notion Poll Interval",value:o("notionPollIntervalSeconds",e.notionPollIntervalSeconds),configKey:"notionPollIntervalSeconds",type:"number",suffix:"sec",modified:d.has("notionPollIntervalSeconds"),defaultValue:a("notionPollIntervalSeconds"),description:"Seconds between Notion database sync checks. Raising this above ~600 may require adjusting NOTION_WRITE_TTL_MS in the daemon. Default 300 (5 min).",onSave:R}),(0,t.jsx)(w.EditableField,{label:"Calendar Poll Interval",value:o("calendarPollIntervalSeconds",e.calendarPollIntervalSeconds),configKey:"calendarPollIntervalSeconds",type:"number",suffix:"sec",modified:d.has("calendarPollIntervalSeconds"),defaultValue:a("calendarPollIntervalSeconds"),description:"Seconds between Google Calendar event sync checks. Default 300 (5 min).",onSave:R}),(0,t.jsx)(w.EditableField,{label:"Gmail Poll Interval",value:o("gmailPollIntervalSeconds",e.gmailPollIntervalSeconds),configKey:"gmailPollIntervalSeconds",type:"number",suffix:"sec",modified:d.has("gmailPollIntervalSeconds"),defaultValue:a("gmailPollIntervalSeconds"),description:"Seconds between Gmail inbox scans for travel bookings and receipt attachments. Requires restart because the poller interval is fixed at startup.",onSave:R})]}),(0,t.jsxs)(w.ConfigSection,{title:"History Injection",children:[(0,t.jsx)("p",{className:"pb-2 text-xs text-muted-foreground",children:"Controls how much prior conversation context is injected into new sessions. Higher values preserve continuity across sessions; lower values save tokens."}),(0,t.jsx)(w.EditableField,{label:"Max Messages",value:o("historyInjectionMaxMessages",e.historyInjectionMaxMessages),configKey:"historyInjectionMaxMessages",type:"number",modified:d.has("historyInjectionMaxMessages"),defaultValue:a("historyInjectionMaxMessages"),description:"Maximum number of prior messages to include when opening a new session in an existing conversation thread.",onSave:R}),(0,t.jsx)(w.EditableField,{label:"Max Tokens",value:o("historyInjectionMaxTokens",e.historyInjectionMaxTokens),configKey:"historyInjectionMaxTokens",type:"number",modified:d.has("historyInjectionMaxTokens"),defaultValue:a("historyInjectionMaxTokens"),description:"Token budget for injected history. Messages are trimmed oldest-first to stay within this limit.",onSave:R}),(0,t.jsx)(w.EditableBooleanField,{label:"Strict DM Staleness",value:o("dmStalenessStrict",e.dmStalenessStrict),configKey:"dmStalenessStrict",modified:d.has("dmStalenessStrict"),defaultValue:a("dmStalenessStrict"),description:"When enabled, every prompt-context write invalidates active DM sessions. Leave off to allow append-only logs and derived indexes to stay quiet.",onSave:R})]}),(0,t.jsxs)(w.ConfigSection,{title:"Infrastructure",children:[(0,t.jsx)(w.EditableField,{label:"API Port",value:o("apiPort",e.apiPort),configKey:"apiPort",type:"number",modified:d.has("apiPort"),defaultValue:a("apiPort"),description:"Local TCP port the Hono daemon listens on. Requires a daemon restart to take effect. Changing this will break integrations that reference the old port.",onSave:R}),(0,t.jsx)(w.EditableBooleanField,{label:"Disable Auth Probes",value:o("authProbeDisabled",e.authProbeDisabled),configKey:"authProbeDisabled",modified:d.has("authProbeDisabled"),defaultValue:a("authProbeDisabled"),description:"When enabled, the periodic auth health probe (checkAll) becomes a no-op. Use this to suppress probe traffic if you know a backend is intentionally offline.",onSave:R}),(0,t.jsx)(w.EditableField,{label:"Auth Preflight Freshness",value:o("authPreflightFreshnessMs",e.authPreflightFreshnessMs),configKey:"authPreflightFreshnessMs",type:"number",suffix:"ms",modified:d.has("authPreflightFreshnessMs"),defaultValue:a("authPreflightFreshnessMs"),description:"How long an expired or missing backend-auth result stays fresh for preflight routing. Set to 0 to disable the cache and always re-check.",onSave:R})]}),(0,t.jsx)(T,{})]})}],34409)}]);
@@ -1,11 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,68383,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return s},searchParamsToUrlQuery:function(){return o},urlQueryToSearchParams:function(){return l}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function o(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function i(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function l(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,i(e));else t.set(r,i(n));return t}function s(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},57047,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return m},MiddlewareNotFoundError:function(){return j},MissingStaticPage:function(){return b},NormalizeError:function(){return v},PageNotFoundError:function(){return x},SP:function(){return y},ST:function(){return g},WEB_VITALS:function(){return o},execOnce:function(){return i},getDisplayName:function(){return d},getLocationOrigin:function(){return u},getURL:function(){return c},isAbsoluteUrl:function(){return s},isResSent:function(){return f},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return P}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=["CLS","FCP","FID","INP","LCP","TTFB"];function i(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let l=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,s=e=>l.test(e);function u(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=u();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let y="u">typeof performance,g=y&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class m extends Error{}class v extends Error{}class x extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class b extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class j extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function P(e){return JSON.stringify({message:e.message,stack:e.stack})}},88204,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},57628,57987,e=>{"use strict";var t=e.i(44180),r=e.i(64556);e.i(6206);var n=e.i(93739),a=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,a)=>{let o=(0,n.createSlot)(`Primitive.${a}`),i=r.forwardRef((e,r)=>{let{asChild:n,...i}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,t.jsx)(n?o:a,{...i,ref:r})});return i.displayName=`Primitive.${a}`,{...e,[a]:i}},{});e.s(["Primitive",0,a],57987);var o="horizontal",i=["horizontal","vertical"],l=r.forwardRef((e,r)=>{var n;let{decorative:l,orientation:s=o,...u}=e,c=(n=s,i.includes(n))?s:o;return(0,t.jsx)(a.div,{"data-orientation":c,...l?{role:"none"}:{"aria-orientation":"vertical"===c?c:void 0,role:"separator"},...u,ref:r})});l.displayName="Separator";var s=e.i(81471);e.s(["Separator",0,function({className:e,orientation:r="horizontal",decorative:n=!0,...a}){return(0,t.jsx)(l,{decorative:n,orientation:r,className:(0,s.cn)("shrink-0 bg-border","horizontal"===r?"h-[1px] w-full":"h-full w-[1px]",e),...a})}],57628)},31501,e=>{"use strict";let t=(0,e.i(77379).default)("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);e.s(["Clock",0,t],31501)},20668,e=>{"use strict";let t=(0,e.i(77379).default)("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);e.s(["Sparkles",0,t],20668)},49457,e=>{"use strict";var t=e.i(86954);function r(e,{pages:t,pageParams:n}){let a=t.length-1;return t.length>0?e.getNextPageParam(t[a],t,n[a],n):void 0}function n(e,{pages:t,pageParams:r}){return t.length>0?e.getPreviousPageParam?.(t[0],t,r[0],r):void 0}e.s(["hasNextPage",0,function(e,t){return!!t&&null!=r(e,t)},"hasPreviousPage",0,function(e,t){return!!t&&!!e.getPreviousPageParam&&null!=n(e,t)},"infiniteQueryBehavior",0,function(e){return{onFetch:(a,o)=>{let i=a.options,l=a.fetchOptions?.meta?.fetchMore?.direction,s=a.state.data?.pages||[],u=a.state.data?.pageParams||[],c={pages:[],pageParams:[]},d=0,f=async()=>{let o=!1,f=(0,t.ensureQueryFn)(a.options,a.fetchOptions),p=async(e,r,n)=>{let i;if(o)return Promise.reject();if(null==r&&e.pages.length)return Promise.resolve(e);let l=(i={client:a.client,queryKey:a.queryKey,pageParam:r,direction:n?"backward":"forward",meta:a.options.meta},(0,t.addConsumeAwareSignal)(i,()=>a.signal,()=>o=!0),i),s=await f(l),{maxPages:u}=a.options,c=n?t.addToStart:t.addToEnd;return{pages:c(e.pages,s,u),pageParams:c(e.pageParams,r,u)}};if(l&&s.length){let e="backward"===l,t={pages:s,pageParams:u},a=(e?n:r)(i,t);c=await p(t,a,e)}else{let t=e??s.length;do{let e=0===d?u[0]??i.initialPageParam:r(i,c);if(d>0&&null==e)break;c=await p(c,e),d++}while(d<t)}return c};a.options.persister?a.fetchFn=()=>a.options.persister?.(f,{client:a.client,queryKey:a.queryKey,meta:a.options.meta,signal:a.signal},o):a.fetchFn=f}}}])},87126,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return l},formatWithValidation:function(){return u},urlObjectKeys:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(44066)._(e.r(68383)),i=/https?|ftp|gopher|file/;function l(e){let{auth:t,hostname:r}=e,n=e.protocol||"",a=e.pathname||"",l=e.hash||"",s=e.query||"",u=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?u=t+e.host:r&&(u=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(u+=":"+e.port)),s&&"object"==typeof s&&(s=String(o.urlQueryToSearchParams(s)));let c=e.search||s&&`?${s}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||i.test(n))&&!1!==u?(u="//"+(u||""),a&&"/"!==a[0]&&(a="/"+a)):u||(u=""),l&&"#"!==l[0]&&(l="#"+l),c&&"?"!==c[0]&&(c="?"+c),a=a.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${u}${a}${c}${l}`}let s=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function u(e){return l(e)}},22862,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return a}});let n=e.r(64556);function a(e,t){let r=(0,n.useRef)(null),a=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=a.current;t&&(a.current=null,t())}else e&&(r.current=o(e,n)),t&&(a.current=o(t,n))},[e,t])}function o(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},98170,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return o}});let n=e.r(57047),a=e.r(45137);function o(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,a.hasBasePath)(r.pathname)}catch(e){return!1}}},53481,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},71403,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return m},useLinkStatus:function(){return x}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(44066),i=e.r(44180),l=o._(e.r(64556)),s=e.r(87126),u=e.r(86687),c=e.r(22862),d=e.r(57047),f=e.r(69085);e.r(88204);let p=e.r(62563),h=e.r(61964),y=e.r(98170),g=e.r(35403);function m(t){var r,n;let a,o,m,[x,b]=(0,l.useOptimistic)(h.IDLE_LINK_STATUS),j=(0,l.useRef)(null),{href:P,as:C,children:k,prefetch:w=null,passHref:S,replace:R,shallow:O,scroll:D,onClick:N,onMouseEnter:_,onTouchStart:A,legacyBehavior:E=!1,onNavigate:M,transitionTypes:T,ref:q,unstable_dynamicOnHover:F,...I}=t;a=k,E&&("string"==typeof a||"number"==typeof a)&&(a=(0,i.jsx)("a",{children:a}));let $=l.default.useContext(u.AppRouterContext),L=!1!==w,z=!1!==w?null===(n=w)||"auto"===n?g.FetchStrategy.PPR:g.FetchStrategy.Full:g.FetchStrategy.PPR,K="string"==typeof(r=C||P)?r:(0,s.formatUrl)(r);if(E){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});o=l.default.Children.only(a)}let Q=E?o&&"object"==typeof o&&o.ref:q,H=l.default.useCallback(e=>(null!==$&&(j.current=(0,h.mountLinkInstance)(e,K,$,z,L,b)),()=>{j.current&&((0,h.unmountLinkForCurrentNavigation)(j.current),j.current=null),(0,h.unmountPrefetchableInstance)(e)}),[L,K,$,z,b]),U={ref:(0,c.useMergedRef)(H,Q),onClick(t){E||"function"!=typeof N||N(t),E&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(t),!$||t.defaultPrevented||function(t,r,n,a,o,i,s){if("u">typeof window){let u,{nodeName:c}=t.currentTarget;if("A"===c.toUpperCase()&&((u=t.currentTarget.getAttribute("target"))&&"_self"!==u||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,y.isLocalURL)(r)){a&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:d}=e.r(37761);l.default.startTransition(()=>{d(r,a?"replace":"push",!1===o?p.ScrollBehavior.NoScroll:p.ScrollBehavior.Default,n.current,s)})}}(t,K,j,R,D,M,T)},onMouseEnter(e){E||"function"!=typeof _||_(e),E&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),$&&L&&(0,h.onNavigationIntent)(e.currentTarget,!0===F)},onTouchStart:function(e){E||"function"!=typeof A||A(e),E&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),$&&L&&(0,h.onNavigationIntent)(e.currentTarget,!0===F)}};return(0,d.isAbsoluteUrl)(K)?U.href=K:E&&!S&&("a"!==o.type||"href"in o.props)||(U.href=(0,f.addBasePath)(K)),m=E?l.default.cloneElement(o,U):(0,i.jsx)("a",{...I,...U,children:a}),(0,i.jsx)(v.Provider,{value:x,children:m})}e.r(53481);let v=(0,l.createContext)(h.IDLE_LINK_STATUS),x=()=>(0,l.useContext)(v);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},99543,(e,t,r)=>{t.exports=e.r(33331)},7771,e=>{"use strict";let t=(0,e.i(77379).default)("CircleHelp",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["HelpCircle",0,t],7771)},8011,e=>{"use strict";var t=e.i(14260);let r=["docs-help-slideover"],n={open:!1,docId:null,autoFocusComposer:!1,anchor:null,openCount:0};function a(e){return e.getQueryData(r)??n}e.s(["closeDocsHelpSlideover",0,function(e){let t=a(e);e.setQueryData(r,{...t,open:!1,autoFocusComposer:!1})},"getDocsHelpSlideoverState",0,a,"openDocsHelpSlideover",0,function(e,t){let n=a(e);e.setQueryData(r,{open:!0,docId:t.docId,autoFocusComposer:t.autoFocusComposer??!1,anchor:t.anchor??null,openCount:n.openCount+1})},"useDocsHelpSlideoverState",0,function(){let{data:e}=(0,t.useQuery)({queryKey:[...r],queryFn:()=>n,initialData:n,staleTime:1/0,gcTime:1/0});return e??n}])},43477,e=>{"use strict";var t=e.i(44180),r=e.i(94983),n=e.i(36451),a=e.i(81471);let o=r.Root,i=r.Trigger;r.Close,e.s(["Sheet",0,o,"SheetContent",0,function({className:e,children:o,side:i="right",...l}){return(0,t.jsxs)(r.Portal,{children:[(0,t.jsx)(r.Overlay,{className:"fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"}),(0,t.jsxs)(r.Content,{className:(0,a.cn)("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-300","right"===i&&"inset-y-0 right-0 h-full w-3/4 max-w-lg border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right","left"===i&&"inset-y-0 left-0 h-full w-3/4 max-w-lg border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left",e),...l,children:[o,(0,t.jsx)(r.Close,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring",children:(0,t.jsx)(n.X,{className:"h-4 w-4"})})]})]})},"SheetHeader",0,function({className:e,...r}){return(0,t.jsx)("div",{className:(0,a.cn)("flex flex-col space-y-2 text-left",e),...r})},"SheetTitle",0,function({className:e,...n}){return(0,t.jsx)(r.Title,{className:(0,a.cn)("text-lg font-semibold text-foreground",e),...n})},"SheetTrigger",0,i])},75187,e=>{"use strict";var t=e.i(14260),r=e.i(65268);e.s(["useHealth",0,function(){return(0,t.useQuery)({queryKey:["health"],queryFn:()=>r.api.get("/health"),refetchInterval:1e4})}])},96263,e=>{"use strict";let t=(0,e.i(77379).default)("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",0,t],96263)},88423,e=>{"use strict";var t=e.i(64556),r=e.i(14260),n=e.i(65268);e.s(["useConfig",0,function(){return(0,r.useQuery)({queryKey:["config"],queryFn:()=>n.api.get("/config"),staleTime:6e4})},"useConfigDefaults",0,function(){let e=(0,r.useQuery)({queryKey:["config-defaults"],queryFn:()=>n.api.get("/config/defaults"),staleTime:1/0}),a=(0,t.useCallback)(t=>e.data?.[t],[e.data]);return{...e,df:a}}])},94983,e=>{"use strict";var t=e.i(64556),r=e.i(91967),n=e.i(22353),a=e.i(9413),o=e.i(11207),i=e.i(36567),l=e.i(3659),s=e.i(62854),u=e.i(76903),c=e.i(90816),d=e.i(85565),f=e.i(87656),p=e.i(69759),h=e.i(73772),y=e.i(60310),g=e.i(44180),m="Dialog",[v,x]=(0,a.createContextScope)(m),[b,j]=v(m),P=e=>{let{__scopeDialog:r,children:n,open:a,defaultOpen:l,onOpenChange:s,modal:u=!0}=e,c=t.useRef(null),d=t.useRef(null),[f,p]=(0,i.useControllableState)({prop:a,defaultProp:l??!1,onChange:s,caller:m});return(0,g.jsx)(b,{scope:r,triggerRef:c,contentRef:d,contentId:(0,o.useId)(),titleId:(0,o.useId)(),descriptionId:(0,o.useId)(),open:f,onOpenChange:p,onOpenToggle:t.useCallback(()=>p(e=>!e),[p]),modal:u,children:n})};P.displayName=m;var C="DialogTrigger",k=t.forwardRef((e,t)=>{let{__scopeDialog:a,...o}=e,i=j(C,a),l=(0,n.useComposedRefs)(t,i.triggerRef);return(0,g.jsx)(d.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":H(i.open),...o,ref:l,onClick:(0,r.composeEventHandlers)(e.onClick,i.onOpenToggle)})});k.displayName=C;var w="DialogPortal",[S,R]=v(w,{forceMount:void 0}),O=e=>{let{__scopeDialog:r,forceMount:n,children:a,container:o}=e,i=j(w,r);return(0,g.jsx)(S,{scope:r,forceMount:n,children:t.Children.map(a,e=>(0,g.jsx)(c.Presence,{present:n||i.open,children:(0,g.jsx)(u.Portal,{asChild:!0,container:o,children:e})}))})};O.displayName=w;var D="DialogOverlay",N=t.forwardRef((e,t)=>{let r=R(D,e.__scopeDialog),{forceMount:n=r.forceMount,...a}=e,o=j(D,e.__scopeDialog);return o.modal?(0,g.jsx)(c.Presence,{present:n||o.open,children:(0,g.jsx)(A,{...a,ref:t})}):null});N.displayName=D;var _=(0,y.createSlot)("DialogOverlay.RemoveScroll"),A=t.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,a=j(D,r);return(0,g.jsx)(p.RemoveScroll,{as:_,allowPinchZoom:!0,shards:[a.contentRef],children:(0,g.jsx)(d.Primitive.div,{"data-state":H(a.open),...n,ref:t,style:{pointerEvents:"auto",...n.style}})})}),E="DialogContent",M=t.forwardRef((e,t)=>{let r=R(E,e.__scopeDialog),{forceMount:n=r.forceMount,...a}=e,o=j(E,e.__scopeDialog);return(0,g.jsx)(c.Presence,{present:n||o.open,children:o.modal?(0,g.jsx)(T,{...a,ref:t}):(0,g.jsx)(q,{...a,ref:t})})});M.displayName=E;var T=t.forwardRef((e,a)=>{let o=j(E,e.__scopeDialog),i=t.useRef(null),l=(0,n.useComposedRefs)(a,o.contentRef,i);return t.useEffect(()=>{let e=i.current;if(e)return(0,h.hideOthers)(e)},[]),(0,g.jsx)(F,{...e,ref:l,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,r.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),o.triggerRef.current?.focus()}),onPointerDownOutside:(0,r.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey;(2===t.button||r)&&e.preventDefault()}),onFocusOutside:(0,r.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault())})}),q=t.forwardRef((e,r)=>{let n=j(E,e.__scopeDialog),a=t.useRef(!1),o=t.useRef(!1);return(0,g.jsx)(F,{...e,ref:r,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(a.current||n.triggerRef.current?.focus(),t.preventDefault()),a.current=!1,o.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(a.current=!0,"pointerdown"===t.detail.originalEvent.type&&(o.current=!0));let r=t.target;n.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&o.current&&t.preventDefault()}})}),F=t.forwardRef((e,r)=>{let{__scopeDialog:a,trapFocus:o,onOpenAutoFocus:i,onCloseAutoFocus:u,...c}=e,d=j(E,a),p=t.useRef(null),h=(0,n.useComposedRefs)(r,p);return(0,f.useFocusGuards)(),(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(s.FocusScope,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:i,onUnmountAutoFocus:u,children:(0,g.jsx)(l.DismissableLayer,{role:"dialog",id:d.contentId,"aria-describedby":d.descriptionId,"aria-labelledby":d.titleId,"data-state":H(d.open),...c,ref:h,onDismiss:()=>d.onOpenChange(!1)})}),(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(Z,{titleId:d.titleId}),(0,g.jsx)(V,{contentRef:p,descriptionId:d.descriptionId})]})]})}),I="DialogTitle",$=t.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,a=j(I,r);return(0,g.jsx)(d.Primitive.h2,{id:a.titleId,...n,ref:t})});$.displayName=I;var L="DialogDescription",z=t.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,a=j(L,r);return(0,g.jsx)(d.Primitive.p,{id:a.descriptionId,...n,ref:t})});z.displayName=L;var K="DialogClose",Q=t.forwardRef((e,t)=>{let{__scopeDialog:n,...a}=e,o=j(K,n);return(0,g.jsx)(d.Primitive.button,{type:"button",...a,ref:t,onClick:(0,r.composeEventHandlers)(e.onClick,()=>o.onOpenChange(!1))})});function H(e){return e?"open":"closed"}Q.displayName=K;var U="DialogTitleWarning",[B,W]=(0,a.createContext)(U,{contentName:E,titleName:I,docsSlug:"dialog"}),Z=({titleId:e})=>{let r=W(U),n=`\`${r.contentName}\` requires a \`${r.titleName}\` for the component to be accessible for screen reader users.
2
-
3
- If you want to hide the \`${r.titleName}\`, you can wrap it with our VisuallyHidden component.
4
-
5
- For more information, see https://radix-ui.com/primitives/docs/components/${r.docsSlug}`;return t.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},V=({contentRef:e,descriptionId:r})=>{let n=W("DialogDescriptionWarning"),a=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${n.contentName}}.`;return t.useEffect(()=>{let t=e.current?.getAttribute("aria-describedby");r&&t&&(document.getElementById(r)||console.warn(a))},[a,e,r]),null};e.s(["Close",0,Q,"Content",0,M,"Description",0,z,"Overlay",0,N,"Portal",0,O,"Root",0,P,"Title",0,$,"Trigger",0,k,"WarningProvider",0,B,"createDialogScope",0,x])},90826,e=>{"use strict";var t=e.i(44180),r=e.i(64556),n=e.i(9413),a=e.i(22353),o=e.i(94983),i=e.i(91967),l=e.i(60310),s="AlertDialog",[u,c]=(0,n.createContextScope)(s,[o.createDialogScope]),d=(0,o.createDialogScope)(),f=e=>{let{__scopeAlertDialog:r,...n}=e,a=d(r);return(0,t.jsx)(o.Root,{...a,...n,modal:!0})};f.displayName=s,r.forwardRef((e,r)=>{let{__scopeAlertDialog:n,...a}=e,i=d(n);return(0,t.jsx)(o.Trigger,{...i,...a,ref:r})}).displayName="AlertDialogTrigger";var p=e=>{let{__scopeAlertDialog:r,...n}=e,a=d(r);return(0,t.jsx)(o.Portal,{...a,...n})};p.displayName="AlertDialogPortal";var h=r.forwardRef((e,r)=>{let{__scopeAlertDialog:n,...a}=e,i=d(n);return(0,t.jsx)(o.Overlay,{...i,...a,ref:r})});h.displayName="AlertDialogOverlay";var y="AlertDialogContent",[g,m]=u(y),v=(0,l.createSlottable)("AlertDialogContent"),x=r.forwardRef((e,n)=>{let{__scopeAlertDialog:l,children:s,...u}=e,c=d(l),f=r.useRef(null),p=(0,a.useComposedRefs)(n,f),h=r.useRef(null);return(0,t.jsx)(o.WarningProvider,{contentName:y,titleName:b,docsSlug:"alert-dialog",children:(0,t.jsx)(g,{scope:l,cancelRef:h,children:(0,t.jsxs)(o.Content,{role:"alertdialog",...c,...u,ref:p,onOpenAutoFocus:(0,i.composeEventHandlers)(u.onOpenAutoFocus,e=>{e.preventDefault(),h.current?.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[(0,t.jsx)(v,{children:s}),(0,t.jsx)(R,{contentRef:f})]})})})});x.displayName=y;var b="AlertDialogTitle",j=r.forwardRef((e,r)=>{let{__scopeAlertDialog:n,...a}=e,i=d(n);return(0,t.jsx)(o.Title,{...i,...a,ref:r})});j.displayName=b;var P="AlertDialogDescription",C=r.forwardRef((e,r)=>{let{__scopeAlertDialog:n,...a}=e,i=d(n);return(0,t.jsx)(o.Description,{...i,...a,ref:r})});C.displayName=P;var k=r.forwardRef((e,r)=>{let{__scopeAlertDialog:n,...a}=e,i=d(n);return(0,t.jsx)(o.Close,{...i,...a,ref:r})});k.displayName="AlertDialogAction";var w="AlertDialogCancel",S=r.forwardRef((e,r)=>{let{__scopeAlertDialog:n,...i}=e,{cancelRef:l}=m(w,n),s=d(n),u=(0,a.useComposedRefs)(r,l);return(0,t.jsx)(o.Close,{...s,...i,ref:u})});S.displayName=w;var R=({contentRef:e})=>{let t=`\`${y}\` requires a description for the component to be accessible for screen reader users.
6
-
7
- You can add a description to the \`${y}\` by passing a \`${P}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
8
-
9
- Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${y}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
10
-
11
- For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return r.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},O=e.i(20014),D=e.i(8652);let N=(0,r.createContext)(null);e.s(["ConfirmProvider",0,function({children:e}){let[n,a]=(0,r.useState)(null),[o,i]=(0,r.useState)(""),l=(0,r.useRef)(null),s=(0,r.useCallback)(e=>(l.current&&l.current.resolve(!1),new Promise(t=>{let r={...e,resolve:t};l.current=r,a(r),i("")})),[]),u=(0,r.useCallback)(e=>{l.current?.resolve(e),l.current=null,a(null),i("")},[]),c=n?.requireText,d=!c||o.trim()===c;return(0,t.jsxs)(N.Provider,{value:s,children:[e,(0,t.jsx)(f,{open:null!==n,onOpenChange:e=>{e||u(!1)},children:(0,t.jsxs)(p,{children:[(0,t.jsx)(h,{className:"fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0"}),(0,t.jsxs)(x,{className:"fixed left-1/2 top-1/2 z-50 w-full max-w-md -translate-x-1/2 -translate-y-1/2 rounded-xl border border-border bg-card p-6 shadow-lg data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",children:[(0,t.jsx)(j,{className:"text-base font-semibold text-foreground",children:n?.title}),n?.description&&(0,t.jsx)(C,{className:"mt-2 text-sm text-muted-foreground",children:n.description}),c&&(0,t.jsxs)("div",{className:"mt-4 space-y-2",children:[(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Type ",(0,t.jsx)("code",{className:"rounded bg-muted px-1 py-0.5 text-xs font-mono",children:c})," to confirm:"]}),(0,t.jsx)(D.Input,{autoFocus:!0,value:o,onChange:e=>i(e.target.value),onKeyDown:e=>{"Enter"===e.key&&d&&(e.preventDefault(),u(!0))},placeholder:c,className:"font-mono"})]}),(0,t.jsxs)("div",{className:"mt-5 flex justify-end gap-2",children:[(0,t.jsx)(S,{asChild:!0,children:(0,t.jsx)(O.Button,{variant:"outline",size:"sm",children:n?.cancelLabel??"Cancel"})}),(0,t.jsx)(k,{asChild:!0,children:(0,t.jsx)(O.Button,{variant:n?.variant==="destructive"?"destructive":"default",size:"sm",onClick:()=>u(!0),disabled:!d,children:n?.confirmLabel??"Confirm"})})]})]})]})})]})},"useConfirm",0,function(){let e=(0,r.useContext)(N);if(!e)throw Error("useConfirm must be used inside ConfirmProvider");return e}],90826)},27136,e=>{"use strict";let t=(0,e.i(77379).default)("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);e.s(["MessageSquare",0,t],27136)},23916,e=>{"use strict";let t=e.i(49445).APP_NAME;e.s(["DEFAULT_AGENT_DISPLAY_NAME",0,t,"normalizeAgentDisplayName",0,function(e){let r=(e??"").trim().replace(/\s+/g," ");return(r.startsWith("[")&&r.endsWith("]")?r.slice(1,-1).trim():r)||t}])},26317,e=>{"use strict";let t=(0,e.i(77379).default)("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);e.s(["LayoutDashboard",0,t],26317)},93512,e=>{"use strict";let t=(0,e.i(77379).default)("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);e.s(["ArrowRight",0,t],93512)},29086,e=>{"use strict";let t=(0,e.i(77379).default)("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);e.s(["FileText",0,t],29086)},49445,e=>{"use strict";e.s(["APP_NAME",0,"Aitne"])},92785,e=>{"use strict";let t=(0,e.i(77379).default)("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,t],92785)},74267,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"BailoutToCSR",{enumerable:!0,get:function(){return a}});let n=e.r(81225);function a({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new n.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},4590,(e,t,r)=>{"use strict";function n(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"encodeURIPath",{enumerable:!0,get:function(){return n}})},72441,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"PreloadChunks",{enumerable:!0,get:function(){return s}});let n=e.r(44180),a=e.r(6206),o=e.r(29796),i=e.r(4590),l=e.r(70254);function s({moduleIds:e}){if("u">typeof window)return null;let t=o.workAsyncStorage.getStore();if(void 0===t)return null;let r=[];if(t.reactLoadableManifest&&e){let n=t.reactLoadableManifest;for(let t of e){if(!n[t])continue;let e=n[t].files;r.push(...e)}}if(0===r.length)return null;let u=(0,l.getAssetTokenQuery)();return(0,n.jsx)(n.Fragment,{children:r.map(e=>{let r=`${t.assetPrefix}/_next/${(0,i.encodeURIPath)(e)}${u}`;return e.endsWith(".css")?(0,n.jsx)("link",{precedence:"dynamic",href:r,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,a.preload)(r,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},72479,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return u}});let n=e.r(44180),a=e.r(64556),o=e.r(74267),i=e.r(72441);function l(e){return{default:e&&"default"in e?e.default:e}}let s={loader:()=>Promise.resolve(l(()=>null)),loading:null,ssr:!0},u=function(e){let t={...s,...e},r=(0,a.lazy)(()=>t.loader().then(l)),u=t.loading;function c(e){let l=u?(0,n.jsx)(u,{isLoading:!0,pastDelay:!0,error:null}):null,s=!t.ssr||!!t.loading,c=s?a.Suspense:a.Fragment,d=t.ssr?(0,n.jsxs)(n.Fragment,{children:["u"<typeof window?(0,n.jsx)(i.PreloadChunks,{moduleIds:t.modules}):null,(0,n.jsx)(r,{...e})]}):(0,n.jsx)(o.BailoutToCSR,{reason:"next/dynamic",children:(0,n.jsx)(r,{...e})});return(0,n.jsx)(c,{...s?{fallback:l}:{},children:d})}return c.displayName="LoadableComponent",c}},87836,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return a}});let n=e.r(81258)._(e.r(72479));function a(e,t){let r={};"function"==typeof e&&(r.loader=e);let a={...r,...t};return(0,n.default)({...a,modules:a.loadableGenerated?.modules})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},1718,e=>{"use strict";let t=(0,e.i(77379).default)("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);e.s(["Search",0,t],1718)},62e3,e=>{"use strict";var t=e.i(14260),r=e.i(65268);e.s(["useDoc",0,function(e){return(0,t.useQuery)({queryKey:["docs","detail",e],queryFn:()=>r.api.get(`/docs/by-slug/${e}`),enabled:!!e,staleTime:3e5})},"useDocsHealth",0,function(){return(0,t.useQuery)({queryKey:["docs","health"],queryFn:()=>r.api.get("/docs/health"),staleTime:3e4})},"useDocsQABinding",0,function(){return(0,t.useQuery)({queryKey:["docs","qa-binding"],queryFn:()=>r.api.get("/docs/qa/binding"),staleTime:6e4,refetchOnWindowFocus:!0,retry:!1})},"useDocsSearch",0,function(e,n){return(0,t.useQuery)({queryKey:["docs","search",e,n],queryFn:()=>r.api.get("/docs/search",{q:e,category:n?.category,tag:n?.tag,limit:n?.limit}),enabled:e.length>=2,staleTime:6e4})},"useDocsTree",0,function(){return(0,t.useQuery)({queryKey:["docs","tree"],queryFn:()=>r.api.get("/docs"),staleTime:6e4})}])},32896,e=>{"use strict";e.i(18446);var t=e.i(45244);e.s(["scrollToAnchor",0,function(e,t){var r;if(!e)return!1;let n=(t??document).querySelector(`#${(r=e,"u">typeof CSS&&"function"==typeof CSS.escape?CSS.escape(r):r.replace(/[^a-zA-Z0-9_-]/g,"\\$&"))}`);return!!n&&(n.scrollIntoView({behavior:"smooth",block:"start"}),!0)},"stripLeadingTitleH1",0,function(e,r){let n=(0,t.slugifyAnchor)(r);if(!n)return e;let a=e.match(/^[ \t]*#[ \t]+([^\n]+)\n?/);if(!a)return e;let o=a[1].replace(/[ \t]+#*[ \t]*$/,"").trim();return(0,t.slugifyAnchor)(o)!==n?e:e.slice(a[0].length).replace(/^\n+/,"")}])},45492,e=>{"use strict";let t=/\[doc:([a-z0-9][a-z0-9\-_/]*)(?:#([a-z0-9][a-z0-9-]*))?\]/g;e.s(["parsePaDocHref",0,function(e){if(!e.startsWith("pa-doc:"))return null;let t=e.slice(7),r=t.indexOf("#"),n=-1===r?t:t.slice(0,r),a=-1===r?null:t.slice(r+1);return{slug:decodeURIComponent(n),anchor:a?decodeURIComponent(a):null}},"remarkCitations",0,function(){return e=>(function e(r){if("code"===r.type||"inlineCode"===r.type||!Array.isArray(r.children))return;let n=0;for(;n<r.children.length;){let a=r.children[n];if("text"===a.type&&"string"==typeof a.value&&a.value.includes("[doc:")){let e=function(e){let r,n=[],a=0;for(t.lastIndex=0;null!==(r=t.exec(e));){r.index>a&&n.push({type:"text",value:e.slice(a,r.index)});let t=r[1],o=r[2]??null,i=`pa-doc:${encodeURIComponent(t)}${o?`#${encodeURIComponent(o)}`:""}`;n.push({type:"link",url:i,title:null,children:[{type:"text",value:r[0]}]}),a=r.index+r[0].length}return a<e.length&&n.push({type:"text",value:e.slice(a)}),n}(a.value);if(e.length>1){r.children.splice(n,1,...e),n+=e.length;continue}}e(a),n++}})(e)}])},53663,e=>{"use strict";var t=e.i(44180),r=e.i(63991),n=e.i(29086),a=e.i(65268),o=e.i(62e3),i=e.i(81471);e.s(["CitationPill",0,function({slug:e,anchor:l,onClick:s}){let{data:u,error:c}=(0,o.useDoc)(e),d=c instanceof a.ApiError&&404===c.status,f=u?.frontmatter.title,p=l?l.split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):null;if(d)return(0,t.jsxs)("span",{title:`Citation refers to a missing doc: ${e}`,className:"mx-0.5 inline-flex max-w-full items-center gap-1 rounded-md border border-amber-200 bg-amber-50 px-1.5 py-0.5 align-baseline text-[11px] text-amber-900 line-through decoration-amber-700/40 dark:border-amber-900/40 dark:bg-amber-950/40 dark:text-amber-200",children:[(0,t.jsx)(r.AlertCircle,{className:"h-3 w-3 shrink-0 opacity-80","aria-hidden":"true"}),(0,t.jsx)("span",{className:"truncate",children:e})]});let h=f?p?`Open “${f}” at section “${p}”`:`Open “${f}”`:`Open ${e}`;return(0,t.jsxs)("button",{type:"button",onClick:()=>s(e,l),"aria-label":h,title:h,className:(0,i.cn)("mx-0.5 inline-flex max-w-full items-center gap-1 rounded-md border border-blue-200 bg-blue-50 px-1.5 py-0.5 align-baseline text-[11px] text-blue-900 transition hover:bg-blue-100","dark:border-blue-900/40 dark:bg-blue-950/40 dark:text-blue-200"),children:[(0,t.jsx)(n.FileText,{className:"h-3 w-3 shrink-0 opacity-80","aria-hidden":"true"}),(0,t.jsxs)("span",{className:"truncate",children:[f??e,p?(0,t.jsxs)("span",{className:"opacity-60",children:[" · ",p]}):null]})]})}])},84972,e=>{"use strict";let t=(0,e.i(77379).default)("History",[["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"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]);e.s(["History",0,t],84972)},3360,e=>{"use strict";let t=(0,e.i(77379).default)("Heart",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}]]);e.s(["Heart",0,t],3360)},49297,e=>{"use strict";let t=(0,e.i(77379).default)("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);e.s(["Moon",0,t],49297)},68894,e=>{"use strict";var t=e.i(44180),r=e.i(64556),n=e.i(95486);let a=(0,r.createContext)(null),o=["event","context_migration_progress"];e.s(["SSEProvider",0,function({children:e}){let i=(0,n.useQueryClient)(),[l,s]=(0,r.useState)(!1),u=(0,r.useRef)(new Map),c=(0,r.useRef)(null),d=(0,r.useCallback)(()=>{c.current||(c.current=setTimeout(()=>{c.current=null,i.invalidateQueries({queryKey:["health"]}),i.invalidateQueries({queryKey:["events"]}),i.invalidateQueries({queryKey:["metrics"]}),i.invalidateQueries({queryKey:["approvals"]}),i.invalidateQueries({queryKey:["next-check"]})},500))},[i]),f=(0,r.useCallback)((e,t)=>{let r=u.current.get(e);if(r)for(let e of r)e(t)},[]);(0,r.useEffect)(()=>{let e=new EventSource("/api/events/stream"),t=new Map;for(let r of(e.onopen=()=>s(!0),e.onerror=()=>s(!1),o)){let n=e=>{try{let t=JSON.parse(e.data);if(f(r,t),"event"===r)return void d();"context_migration_progress"===r&&("completed"===t.status||"failed"===t.status)&&(i.invalidateQueries({queryKey:["config"]}),i.invalidateQueries({queryKey:["health"]}))}catch{}};t.set(r,n),e.addEventListener(r,n)}return e.addEventListener("ping",()=>{}),()=>{for(let[r,n]of t)e.removeEventListener(r,n);e.close(),s(!1),c.current&&clearTimeout(c.current)}},[f,d,i]);let p=(0,r.useCallback)((e,t)=>{let r=u.current.get(e)??new Set;return r.add(t),u.current.set(e,r),()=>{let r=u.current.get(e);r&&(r.delete(t),0===r.size&&u.current.delete(e))}},[]),h=(0,r.useCallback)(e=>p("event",e),[p]);return(0,t.jsx)(a.Provider,{value:{connected:l,subscribeEvent:h,subscribeNamedEvent:p},children:e})},"useSSE",0,function(){let e=(0,r.useContext)(a);if(!e)throw Error("useSSE must be used within SSEProvider");return e}])},31703,e=>{"use strict";var t=e.i(64556),r=e.i(68894);e.s(["useEventStream",0,function(e=10){let{subscribeEvent:n}=(0,r.useSSE)(),[a,o]=(0,t.useState)([]);return(0,t.useEffect)(()=>e?n(t=>{let r=Number(t.id);if(!Number.isFinite(r)||r<=0)return;let n={...t,id:r};o(t=>[n,...t].slice(0,e))}):void(0,t.startTransition)(()=>o([])),[n,e]),a}])},15553,e=>{"use strict";let t=(0,e.i(77379).default)("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);e.s(["BookOpen",0,t],15553)},26181,e=>{"use strict";let t=(0,e.i(77379).default)("ArrowUpRight",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);e.s(["ArrowUpRight",0,t],26181)},59481,e=>{"use strict";let t=(0,e.i(77379).default)("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);e.s(["GitBranch",0,t],59481)},75314,e=>{"use strict";let t=(0,e.i(77379).default)("Brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]);e.s(["Brain",0,t],75314)},73405,e=>{"use strict";let t=(0,e.i(77379).default)("Plane",[["path",{d:"M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z",key:"1v9wt8"}]]);e.s(["Plane",0,t],73405)},82782,e=>{"use strict";let t=(0,e.i(77379).default)("Wallet",[["path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1",key:"18etb6"}],["path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4",key:"xoc0q4"}]]);e.s(["Wallet",0,t],82782)},77910,e=>{"use strict";var t=e.i(14260),r=e.i(57415),n=e.i(95486),a=e.i(65268);e.s(["useApprovals",0,function(){return(0,t.useQuery)({queryKey:["approvals"],queryFn:()=>a.api.get("/approvals"),refetchInterval:15e3})},"useApproveAction",0,function(){let e=(0,n.useQueryClient)();return(0,r.useMutation)({mutationFn:e=>a.api.post(`/approvals/${e}/approve`),onSuccess:()=>e.invalidateQueries({queryKey:["approvals"]})})},"useDenyAction",0,function(){let e=(0,n.useQueryClient)();return(0,r.useMutation)({mutationFn:e=>a.api.post(`/approvals/${e}/deny`),onSuccess:()=>e.invalidateQueries({queryKey:["approvals"]})})}])},34119,e=>{e.v(t=>Promise.all(["static/chunks/0w3n-_79cx29j.js"].map(t=>e.l(t))).then(()=>t(79791)))}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,39641,t=>{"use strict";var e=t.i(31541),n=t.i(73066),r=t.i(28547),o=class extends n.Removable{#t;#e;#n;#r;constructor(t){super(),this.#t=t.client,this.mutationId=t.mutationId,this.#n=t.mutationCache,this.#e=[],this.state=t.state||i(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){this.#e.includes(t)||(this.#e.push(t),this.clearGcTimeout(),this.#n.notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){this.#e=this.#e.filter(e=>e!==t),this.scheduleGc(),this.#n.notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){this.#e.length||("pending"===this.state.status?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(t){let e=()=>{this.#o({type:"continue"})},n={client:this.#t,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=(0,r.createRetryer)({fn:()=>this.options.mutationFn?this.options.mutationFn(t,n):Promise.reject(Error("No mutationFn found")),onFail:(t,e)=>{this.#o({type:"failed",failureCount:t,error:e})},onPause:()=>{this.#o({type:"pause"})},onContinue:e,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});let o="pending"===this.state.status,i=!this.#r.canStart();try{if(o)e();else{this.#o({type:"pending",variables:t,isPaused:i}),this.#n.config.onMutate&&await this.#n.config.onMutate(t,this,n);let e=await this.options.onMutate?.(t,n);e!==this.state.context&&this.#o({type:"pending",context:e,variables:t,isPaused:i})}let r=await this.#r.start();return await this.#n.config.onSuccess?.(r,t,this.state.context,this,n),await this.options.onSuccess?.(r,t,this.state.context,n),await this.#n.config.onSettled?.(r,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(r,null,t,this.state.context,n),this.#o({type:"success",data:r}),r}catch(e){try{await this.#n.config.onError?.(e,t,this.state.context,this,n)}catch(t){Promise.reject(t)}try{await this.options.onError?.(e,t,this.state.context,n)}catch(t){Promise.reject(t)}try{await this.#n.config.onSettled?.(void 0,e,this.state.variables,this.state.context,this,n)}catch(t){Promise.reject(t)}try{await this.options.onSettled?.(void 0,e,t,this.state.context,n)}catch(t){Promise.reject(t)}throw this.#o({type:"error",error:e}),e}finally{this.#n.runNext(this)}}#o(t){this.state=(e=>{switch(t.type){case"failed":return{...e,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...e,isPaused:!0};case"continue":return{...e,isPaused:!1};case"pending":return{...e,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...e,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...e,data:void 0,error:t.error,failureCount:e.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}})(this.state),e.notifyManager.batch(()=>{this.#e.forEach(e=>{e.onMutationUpdate(t)}),this.#n.notify({mutation:this,type:"updated",action:t})})}};function i(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}t.s(["Mutation",0,o,"getDefaultState",0,i])},57415,t=>{"use strict";var e=t.i(64556),n=t.i(39641),r=t.i(31541),o=t.i(37655),i=t.i(86954),a=class extends o.Subscribable{#t;#i=void 0;#a;#s;constructor(t,e){super(),this.#t=t,this.setOptions(e),this.bindMethods(),this.#u()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(t){let e=this.options;this.options=this.#t.defaultMutationOptions(t),(0,i.shallowEqualObjects)(this.options,e)||this.#t.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#a,observer:this}),e?.mutationKey&&this.options.mutationKey&&(0,i.hashKey)(e.mutationKey)!==(0,i.hashKey)(this.options.mutationKey)?this.reset():this.#a?.state.status==="pending"&&this.#a.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#a?.removeObserver(this)}onMutationUpdate(t){this.#u(),this.#c(t)}getCurrentResult(){return this.#i}reset(){this.#a?.removeObserver(this),this.#a=void 0,this.#u(),this.#c()}mutate(t,e){return this.#s=e,this.#a?.removeObserver(this),this.#a=this.#t.getMutationCache().build(this.#t,this.options),this.#a.addObserver(this),this.#a.execute(t)}#u(){let t=this.#a?.state??(0,n.getDefaultState)();this.#i={...t,isPending:"pending"===t.status,isSuccess:"success"===t.status,isError:"error"===t.status,isIdle:"idle"===t.status,mutate:this.mutate,reset:this.reset}}#c(t){r.notifyManager.batch(()=>{if(this.#s&&this.hasListeners()){let e=this.#i.variables,n=this.#i.context,r={client:this.#t,meta:this.options.meta,mutationKey:this.options.mutationKey};if(t?.type==="success"){try{this.#s.onSuccess?.(t.data,e,n,r)}catch(t){Promise.reject(t)}try{this.#s.onSettled?.(t.data,null,e,n,r)}catch(t){Promise.reject(t)}}else if(t?.type==="error"){try{this.#s.onError?.(t.error,e,n,r)}catch(t){Promise.reject(t)}try{this.#s.onSettled?.(void 0,t.error,e,n,r)}catch(t){Promise.reject(t)}}}this.listeners.forEach(t=>{t(this.#i)})})}},s=t.i(95486);t.s(["useMutation",0,function(t,n){let o=(0,s.useQueryClient)(n),[u]=e.useState(()=>new a(o,t));e.useEffect(()=>{u.setOptions(t)},[u,t]);let c=e.useSyncExternalStore(e.useCallback(t=>u.subscribe(r.notifyManager.batchCalls(t)),[u]),()=>u.getCurrentResult(),()=>u.getCurrentResult()),l=e.useCallback((t,e)=>{u.mutate(t,e).catch(i.noop)},[u]);if(c.error&&(0,i.shouldThrowError)(u.options.throwOnError,[c.error]))throw c.error;return{...c,mutate:l,mutateAsync:c.mutate}}],57415)},62854,t=>{"use strict";let e;var n=t.i(64556),r=t.i(22353),o=t.i(85565),i=t.i(88248),a=t.i(44180),s="focusScope.autoFocusOnMount",u="focusScope.autoFocusOnUnmount",c={bubbles:!1,cancelable:!0},l=n.forwardRef((t,e)=>{let{loop:l=!1,trapped:m=!1,onMountAutoFocus:v,onUnmountAutoFocus:y,...g}=t,[b,w]=n.useState(null),E=(0,i.useCallbackRef)(v),C=(0,i.useCallbackRef)(y),S=n.useRef(null),M=(0,r.useComposedRefs)(e,t=>w(t)),R=n.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;n.useEffect(()=>{if(m){let t=function(t){if(R.paused||!b)return;let e=t.target;b.contains(e)?S.current=e:f(S.current,{select:!0})},e=function(t){if(R.paused||!b)return;let e=t.relatedTarget;null!==e&&(b.contains(e)||f(S.current,{select:!0}))};document.addEventListener("focusin",t),document.addEventListener("focusout",e);let n=new MutationObserver(function(t){if(document.activeElement===document.body)for(let e of t)e.removedNodes.length>0&&f(b)});return b&&n.observe(b,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",t),document.removeEventListener("focusout",e),n.disconnect()}}},[m,b,R.paused]),n.useEffect(()=>{if(b){p.add(R);let t=document.activeElement;if(!b.contains(t)){let e=new CustomEvent(s,c);b.addEventListener(s,E),b.dispatchEvent(e),e.defaultPrevented||(function(t,{select:e=!1}={}){let n=document.activeElement;for(let r of t)if(f(r,{select:e}),document.activeElement!==n)return}(d(b).filter(t=>"A"!==t.tagName),{select:!0}),document.activeElement===t&&f(b))}return()=>{b.removeEventListener(s,E),setTimeout(()=>{let e=new CustomEvent(u,c);b.addEventListener(u,C),b.dispatchEvent(e),e.defaultPrevented||f(t??document.body,{select:!0}),b.removeEventListener(u,C),p.remove(R)},0)}}},[b,E,C,R]);let x=n.useCallback(t=>{if(!l&&!m||R.paused)return;let e="Tab"===t.key&&!t.altKey&&!t.ctrlKey&&!t.metaKey,n=document.activeElement;if(e&&n){var r;let e,o=t.currentTarget,[i,a]=[h(e=d(r=o),r),h(e.reverse(),r)];i&&a?t.shiftKey||n!==a?t.shiftKey&&n===i&&(t.preventDefault(),l&&f(a,{select:!0})):(t.preventDefault(),l&&f(i,{select:!0})):n===o&&t.preventDefault()}},[l,m,R.paused]);return(0,a.jsx)(o.Primitive.div,{tabIndex:-1,...g,ref:M,onKeyDown:x})});function d(t){let e=[],n=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:t=>{let e="INPUT"===t.tagName&&"hidden"===t.type;return t.disabled||t.hidden||e?NodeFilter.FILTER_SKIP:t.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)e.push(n.currentNode);return e}function h(t,e){for(let n of t)if(!function(t,{upTo:e}){if("hidden"===getComputedStyle(t).visibility)return!0;for(;t&&(void 0===e||t!==e);){if("none"===getComputedStyle(t).display)return!0;t=t.parentElement}return!1}(n,{upTo:e}))return n}function f(t,{select:e=!1}={}){if(t&&t.focus){var n;let r=document.activeElement;t.focus({preventScroll:!0}),t!==r&&(n=t)instanceof HTMLInputElement&&"select"in n&&e&&t.select()}}l.displayName="FocusScope";var p=(e=[],{add(t){let n=e[0];t!==n&&n?.pause(),(e=m(e,t)).unshift(t)},remove(t){e=m(e,t),e[0]?.resume()}});function m(t,e){let n=[...t],r=n.indexOf(e);return -1!==r&&n.splice(r,1),n}t.s(["FocusScope",0,l])},87656,t=>{"use strict";var e=t.i(64556),n=0;function r(){let t=document.createElement("span");return t.setAttribute("data-radix-focus-guard",""),t.tabIndex=0,t.style.outline="none",t.style.opacity="0",t.style.position="fixed",t.style.pointerEvents="none",t}t.s(["useFocusGuards",0,function(){e.useEffect(()=>{let t=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",t[0]??r()),document.body.insertAdjacentElement("beforeend",t[1]??r()),n++,()=>{1===n&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),n--}},[])}])},69759,t=>{"use strict";var e,n,r,o,i,a,s,u=function(){return(u=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var o in e=arguments[n])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};function c(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&0>e.indexOf(r)&&(n[r]=t[r]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,r=Object.getOwnPropertySymbols(t);o<r.length;o++)0>e.indexOf(r[o])&&Object.prototype.propertyIsEnumerable.call(t,r[o])&&(n[r[o]]=t[r[o]]);return n}var l=("function"==typeof SuppressedError&&SuppressedError,t.i(64556)),d="right-scroll-bar-position",h="width-before-scroll-bar";function f(t,e){return"function"==typeof t?t(e):t&&(t.current=e),t}var p="u">typeof window?l.useLayoutEffect:l.useEffect,m=new WeakMap,v=(void 0===e&&(e={}),(void 0===n&&(n=function(t){return t}),r=[],o=!1,i={read:function(){if(o)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return r.length?r[r.length-1]:null},useMedium:function(t){var e=n(t,o);return r.push(e),function(){r=r.filter(function(t){return t!==e})}},assignSyncMedium:function(t){for(o=!0;r.length;){var e=r;r=[],e.forEach(t)}r={push:function(e){return t(e)},filter:function(){return r}}},assignMedium:function(t){o=!0;var e=[];if(r.length){var n=r;r=[],n.forEach(t),e=r}var i=function(){var n=e;e=[],n.forEach(t)},a=function(){return Promise.resolve().then(i)};a(),r={push:function(t){e.push(t),a()},filter:function(t){return e=e.filter(t),r}}}}).options=u({async:!0,ssr:!1},e),i),y=function(){},g=l.forwardRef(function(t,e){var n,r,o,i,a=l.useRef(null),s=l.useState({onScrollCapture:y,onWheelCapture:y,onTouchMoveCapture:y}),d=s[0],h=s[1],g=t.forwardProps,b=t.children,w=t.className,E=t.removeScrollBar,C=t.enabled,S=t.shards,M=t.sideCar,R=t.noRelative,x=t.noIsolation,O=t.inert,P=t.allowPinchZoom,k=t.as,A=t.gapMode,T=c(t,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),N=(n=[a,e],r=function(t){return n.forEach(function(e){return f(e,t)})},(o=(0,l.useState)(function(){return{value:null,callback:r,facade:{get current(){return o.value},set current(value){var t=o.value;t!==value&&(o.value=value,o.callback(value,t))}}}})[0]).callback=r,i=o.facade,p(function(){var t=m.get(i);if(t){var e=new Set(t),r=new Set(n),o=i.current;e.forEach(function(t){r.has(t)||f(t,null)}),r.forEach(function(t){e.has(t)||f(t,o)})}m.set(i,n)},[n]),i),L=u(u({},T),d);return l.createElement(l.Fragment,null,C&&l.createElement(M,{sideCar:v,removeScrollBar:E,shards:S,noRelative:R,noIsolation:x,inert:O,setCallbacks:h,allowPinchZoom:!!P,lockRef:a,gapMode:A}),g?l.cloneElement(l.Children.only(b),u(u({},L),{ref:N})):l.createElement(void 0===k?"div":k,u({},L,{className:w,ref:N}),b))});g.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},g.classNames={fullWidth:h,zeroRight:d};var b=function(t){var e=t.sideCar,n=c(t,["sideCar"]);if(!e)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=e.read();if(!r)throw Error("Sidecar medium not found");return l.createElement(r,u({},n))};b.isSideCarExport=!0;var w=function(){var t=0,e=null;return{add:function(n){if(0==t&&(e=function(){if(!document)return null;var t=document.createElement("style");t.type="text/css";var e=s||("u">typeof __webpack_nonce__?__webpack_nonce__:void 0);return e&&t.setAttribute("nonce",e),t}())){var r,o;(r=e).styleSheet?r.styleSheet.cssText=n:r.appendChild(document.createTextNode(n)),o=e,(document.head||document.getElementsByTagName("head")[0]).appendChild(o)}t++},remove:function(){--t||!e||(e.parentNode&&e.parentNode.removeChild(e),e=null)}}},E=function(){var t=w();return function(e,n){l.useEffect(function(){return t.add(e),function(){t.remove()}},[e&&n])}},C=function(){var t=E();return function(e){return t(e.styles,e.dynamic),null}},S={left:0,top:0,right:0,gap:0},M=function(t){return parseInt(t||"",10)||0},R=function(t){var e=window.getComputedStyle(document.body),n=e["padding"===t?"paddingLeft":"marginLeft"],r=e["padding"===t?"paddingTop":"marginTop"],o=e["padding"===t?"paddingRight":"marginRight"];return[M(n),M(r),M(o)]},x=function(t){if(void 0===t&&(t="margin"),"u"<typeof window)return S;var e=R(t),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:e[0],top:e[1],right:e[2],gap:Math.max(0,r-n+e[2]-e[0])}},O=C(),P="data-scroll-locked",k=function(t,e,n,r){var o=t.left,i=t.top,a=t.right,s=t.gap;return void 0===n&&(n="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(r,";\n padding-right: ").concat(s,"px ").concat(r,";\n }\n body[").concat(P,"] {\n overflow: hidden ").concat(r,";\n overscroll-behavior: contain;\n ").concat([e&&"position: relative ".concat(r,";"),"margin"===n&&"\n padding-left: ".concat(o,"px;\n padding-top: ").concat(i,"px;\n padding-right: ").concat(a,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(s,"px ").concat(r,";\n "),"padding"===n&&"padding-right: ".concat(s,"px ").concat(r,";")].filter(Boolean).join(""),"\n }\n \n .").concat(d," {\n right: ").concat(s,"px ").concat(r,";\n }\n \n .").concat(h," {\n margin-right: ").concat(s,"px ").concat(r,";\n }\n \n .").concat(d," .").concat(d," {\n right: 0 ").concat(r,";\n }\n \n .").concat(h," .").concat(h," {\n margin-right: 0 ").concat(r,";\n }\n \n body[").concat(P,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(s,"px;\n }\n")},A=function(){var t=parseInt(document.body.getAttribute(P)||"0",10);return isFinite(t)?t:0},T=function(){l.useEffect(function(){return document.body.setAttribute(P,(A()+1).toString()),function(){var t=A()-1;t<=0?document.body.removeAttribute(P):document.body.setAttribute(P,t.toString())}},[])},N=function(t){var e=t.noRelative,n=t.noImportant,r=t.gapMode,o=void 0===r?"margin":r;T();var i=l.useMemo(function(){return x(o)},[o]);return l.createElement(O,{styles:k(i,!e,o,n?"":"!important")})},L=!1;if("u">typeof window)try{var j=Object.defineProperty({},"passive",{get:function(){return L=!0,!0}});window.addEventListener("test",j,j),window.removeEventListener("test",j,j)}catch(t){L=!1}var F=!!L&&{passive:!1},I=function(t,e){if(!(t instanceof Element))return!1;var n=window.getComputedStyle(t);return"hidden"!==n[e]&&(n.overflowY!==n.overflowX||"TEXTAREA"===t.tagName||"visible"!==n[e])},K=function(t,e){var n=e.ownerDocument,r=e;do{if("u">typeof ShadowRoot&&r instanceof ShadowRoot&&(r=r.host),D(t,r)){var o=W(t,r);if(o[1]>o[2])return!0}r=r.parentNode}while(r&&r!==n.body)return!1},D=function(t,e){return"v"===t?I(e,"overflowY"):I(e,"overflowX")},W=function(t,e){return"v"===t?[e.scrollTop,e.scrollHeight,e.clientHeight]:[e.scrollLeft,e.scrollWidth,e.clientWidth]},_=function(t,e,n,r,o){var i,a=(i=window.getComputedStyle(e).direction,"h"===t&&"rtl"===i?-1:1),s=a*r,u=n.target,c=e.contains(u),l=!1,d=s>0,h=0,f=0;do{if(!u)break;var p=W(t,u),m=p[0],v=p[1]-p[2]-a*m;(m||v)&&D(t,u)&&(h+=v,f+=m);var y=u.parentNode;u=y&&y.nodeType===Node.DOCUMENT_FRAGMENT_NODE?y.host:y}while(!c&&u!==document.body||c&&(e.contains(u)||e===u))return d&&(o&&1>Math.abs(h)||!o&&s>h)?l=!0:!d&&(o&&1>Math.abs(f)||!o&&-s>f)&&(l=!0),l},B=function(t){return"changedTouches"in t?[t.changedTouches[0].clientX,t.changedTouches[0].clientY]:[0,0]},U=function(t){return[t.deltaX,t.deltaY]},G=function(t){return t&&"current"in t?t.current:t},X=0,Y=[];let q=(a=function(t){var e=l.useRef([]),n=l.useRef([0,0]),r=l.useRef(),o=l.useState(X++)[0],i=l.useState(C)[0],a=l.useRef(t);l.useEffect(function(){a.current=t},[t]),l.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(o));var e=(function(t,e,n){if(n||2==arguments.length)for(var r,o=0,i=e.length;o<i;o++)!r&&o in e||(r||(r=Array.prototype.slice.call(e,0,o)),r[o]=e[o]);return t.concat(r||Array.prototype.slice.call(e))})([t.lockRef.current],(t.shards||[]).map(G),!0).filter(Boolean);return e.forEach(function(t){return t.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),e.forEach(function(t){return t.classList.remove("allow-interactivity-".concat(o))})}}},[t.inert,t.lockRef.current,t.shards]);var s=l.useCallback(function(t,e){if("touches"in t&&2===t.touches.length||"wheel"===t.type&&t.ctrlKey)return!a.current.allowPinchZoom;var o,i=B(t),s=n.current,u="deltaX"in t?t.deltaX:s[0]-i[0],c="deltaY"in t?t.deltaY:s[1]-i[1],l=t.target,d=Math.abs(u)>Math.abs(c)?"h":"v";if("touches"in t&&"h"===d&&"range"===l.type)return!1;var h=window.getSelection(),f=h&&h.anchorNode;if(f&&(f===l||f.contains(l)))return!1;var p=K(d,l);if(!p)return!0;if(p?o=d:(o="v"===d?"h":"v",p=K(d,l)),!p)return!1;if(!r.current&&"changedTouches"in t&&(u||c)&&(r.current=o),!o)return!0;var m=r.current||o;return _(m,e,t,"h"===m?u:c,!0)},[]),u=l.useCallback(function(t){if(Y.length&&Y[Y.length-1]===i){var n="deltaY"in t?U(t):B(t),r=e.current.filter(function(e){var r;return e.name===t.type&&(e.target===t.target||t.target===e.shadowParent)&&(r=e.delta,r[0]===n[0]&&r[1]===n[1])})[0];if(r&&r.should){t.cancelable&&t.preventDefault();return}if(!r){var o=(a.current.shards||[]).map(G).filter(Boolean).filter(function(e){return e.contains(t.target)});(o.length>0?s(t,o[0]):!a.current.noIsolation)&&t.cancelable&&t.preventDefault()}}},[]),c=l.useCallback(function(t,n,r,o){var i={name:t,delta:n,target:r,should:o,shadowParent:function(t){for(var e=null;null!==t;)t instanceof ShadowRoot&&(e=t.host,t=t.host),t=t.parentNode;return e}(r)};e.current.push(i),setTimeout(function(){e.current=e.current.filter(function(t){return t!==i})},1)},[]),d=l.useCallback(function(t){n.current=B(t),r.current=void 0},[]),h=l.useCallback(function(e){c(e.type,U(e),e.target,s(e,t.lockRef.current))},[]),f=l.useCallback(function(e){c(e.type,B(e),e.target,s(e,t.lockRef.current))},[]);l.useEffect(function(){return Y.push(i),t.setCallbacks({onScrollCapture:h,onWheelCapture:h,onTouchMoveCapture:f}),document.addEventListener("wheel",u,F),document.addEventListener("touchmove",u,F),document.addEventListener("touchstart",d,F),function(){Y=Y.filter(function(t){return t!==i}),document.removeEventListener("wheel",u,F),document.removeEventListener("touchmove",u,F),document.removeEventListener("touchstart",d,F)}},[]);var p=t.removeScrollBar,m=t.inert;return l.createElement(l.Fragment,null,m?l.createElement(i,{styles:"\n .block-interactivity-".concat(o," {pointer-events: none;}\n .allow-interactivity-").concat(o," {pointer-events: all;}\n")}):null,p?l.createElement(N,{noRelative:t.noRelative,gapMode:t.gapMode}):null)},v.useMedium(a),b);var H=l.forwardRef(function(t,e){return l.createElement(g,u({},t,{ref:e,sideCar:q}))});H.classNames=g.classNames,t.s(["RemoveScroll",0,H],69759)},73772,t=>{"use strict";var e=new WeakMap,n=new WeakMap,r={},o=0,i=function(t){return t&&(t.host||i(t.parentNode))},a=function(t,a,s,u){var c=(Array.isArray(t)?t:[t]).map(function(t){if(a.contains(t))return t;var e=i(t);return e&&a.contains(e)?e:(console.error("aria-hidden",t,"in not contained inside",a,". Doing nothing"),null)}).filter(function(t){return!!t});r[s]||(r[s]=new WeakMap);var l=r[s],d=[],h=new Set,f=new Set(c),p=function(t){!t||h.has(t)||(h.add(t),p(t.parentNode))};c.forEach(p);var m=function(t){!t||f.has(t)||Array.prototype.forEach.call(t.children,function(t){if(h.has(t))m(t);else try{var r=t.getAttribute(u),o=null!==r&&"false"!==r,i=(e.get(t)||0)+1,a=(l.get(t)||0)+1;e.set(t,i),l.set(t,a),d.push(t),1===i&&o&&n.set(t,!0),1===a&&t.setAttribute(s,"true"),o||t.setAttribute(u,"true")}catch(e){console.error("aria-hidden: cannot operate on ",t,e)}})};return m(a),h.clear(),o++,function(){d.forEach(function(t){var r=e.get(t)-1,o=l.get(t)-1;e.set(t,r),l.set(t,o),r||(n.has(t)||t.removeAttribute(u),n.delete(t)),o||t.removeAttribute(s)}),--o||(e=new WeakMap,e=new WeakMap,n=new WeakMap,r={})}};t.s(["hideOthers",0,function(t,e,n){void 0===n&&(n="data-aria-hidden");var r=Array.from(Array.isArray(t)?t:[t]),o=e||("u"<typeof document?null:(Array.isArray(t)?t[0]:t).ownerDocument.body);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live], script"))),a(r,o,n,"aria-hidden")):function(){return null}}])},16047,t=>{"use strict";let e=(0,t.i(77379).default)("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);t.s(["ChevronDown",0,e],16047)}]);
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Aitne contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.