@aitne/dashboard 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (751) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +5 -1
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/cache/.tsbuildinfo +1 -1
  5. package/.next/diagnostics/route-bundle-stats.json +450 -356
  6. package/.next/fallback-build-manifest.json +3 -3
  7. package/.next/prerender-manifest.json +96 -0
  8. package/.next/routes-manifest.json +24 -0
  9. package/.next/server/app/_global-error.html +1 -1
  10. package/.next/server/app/_global-error.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  17. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/.next/server/app/_not-found.html +1 -1
  19. package/.next/server/app/_not-found.rsc +15 -15
  20. package/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  21. package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  22. package/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  23. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  24. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  25. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  26. package/.next/server/app/activity/page.js.nft.json +1 -1
  27. package/.next/server/app/activity/page_client-reference-manifest.js +1 -1
  28. package/.next/server/app/activity.html +1 -1
  29. package/.next/server/app/activity.rsc +19 -19
  30. package/.next/server/app/activity.segments/_full.segment.rsc +19 -19
  31. package/.next/server/app/activity.segments/_head.segment.rsc +4 -4
  32. package/.next/server/app/activity.segments/_index.segment.rsc +10 -10
  33. package/.next/server/app/activity.segments/_tree.segment.rsc +2 -2
  34. package/.next/server/app/activity.segments/activity/__PAGE__.segment.rsc +4 -4
  35. package/.next/server/app/activity.segments/activity.segment.rsc +4 -4
  36. package/.next/server/app/analytics/page.js.nft.json +1 -1
  37. package/.next/server/app/analytics/page_client-reference-manifest.js +1 -1
  38. package/.next/server/app/analytics.html +1 -1
  39. package/.next/server/app/analytics.rsc +19 -19
  40. package/.next/server/app/analytics.segments/_full.segment.rsc +19 -19
  41. package/.next/server/app/analytics.segments/_head.segment.rsc +4 -4
  42. package/.next/server/app/analytics.segments/_index.segment.rsc +10 -10
  43. package/.next/server/app/analytics.segments/_tree.segment.rsc +2 -2
  44. package/.next/server/app/analytics.segments/analytics/__PAGE__.segment.rsc +4 -4
  45. package/.next/server/app/analytics.segments/analytics.segment.rsc +4 -4
  46. package/.next/server/app/api/[...path]/route.js +1 -1
  47. package/.next/server/app/api/[...path]/route.js.nft.json +1 -1
  48. package/.next/server/app/chat/page.js.nft.json +1 -1
  49. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  50. package/.next/server/app/chat.html +1 -1
  51. package/.next/server/app/chat.rsc +17 -17
  52. package/.next/server/app/chat.segments/_full.segment.rsc +17 -17
  53. package/.next/server/app/chat.segments/_head.segment.rsc +4 -4
  54. package/.next/server/app/chat.segments/_index.segment.rsc +10 -10
  55. package/.next/server/app/chat.segments/_tree.segment.rsc +2 -2
  56. package/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +4 -4
  57. package/.next/server/app/chat.segments/chat.segment.rsc +3 -3
  58. package/.next/server/app/connections/calendar/page.js.nft.json +1 -1
  59. package/.next/server/app/connections/calendar/page_client-reference-manifest.js +1 -1
  60. package/.next/server/app/connections/calendar.html +1 -1
  61. package/.next/server/app/connections/calendar.rsc +18 -18
  62. package/.next/server/app/connections/calendar.segments/_full.segment.rsc +18 -18
  63. package/.next/server/app/connections/calendar.segments/_head.segment.rsc +4 -4
  64. package/.next/server/app/connections/calendar.segments/_index.segment.rsc +10 -10
  65. package/.next/server/app/connections/calendar.segments/_tree.segment.rsc +2 -2
  66. package/.next/server/app/connections/calendar.segments/connections/calendar/__PAGE__.segment.rsc +4 -4
  67. package/.next/server/app/connections/calendar.segments/connections/calendar.segment.rsc +3 -3
  68. package/.next/server/app/connections/calendar.segments/connections.segment.rsc +4 -4
  69. package/.next/server/app/connections/journal/page.js.nft.json +1 -1
  70. package/.next/server/app/connections/journal/page_client-reference-manifest.js +1 -1
  71. package/.next/server/app/connections/journal.html +1 -1
  72. package/.next/server/app/connections/journal.rsc +16 -16
  73. package/.next/server/app/connections/journal.segments/_full.segment.rsc +16 -16
  74. package/.next/server/app/connections/journal.segments/_head.segment.rsc +4 -4
  75. package/.next/server/app/connections/journal.segments/_index.segment.rsc +10 -10
  76. package/.next/server/app/connections/journal.segments/_tree.segment.rsc +2 -2
  77. package/.next/server/app/connections/journal.segments/connections/journal/__PAGE__.segment.rsc +2 -2
  78. package/.next/server/app/connections/journal.segments/connections/journal.segment.rsc +3 -3
  79. package/.next/server/app/connections/journal.segments/connections.segment.rsc +4 -4
  80. package/.next/server/app/connections/knowledge/page.js.nft.json +1 -1
  81. package/.next/server/app/connections/knowledge/page_client-reference-manifest.js +1 -1
  82. package/.next/server/app/connections/knowledge.html +1 -1
  83. package/.next/server/app/connections/knowledge.rsc +18 -18
  84. package/.next/server/app/connections/knowledge.segments/_full.segment.rsc +18 -18
  85. package/.next/server/app/connections/knowledge.segments/_head.segment.rsc +4 -4
  86. package/.next/server/app/connections/knowledge.segments/_index.segment.rsc +10 -10
  87. package/.next/server/app/connections/knowledge.segments/_tree.segment.rsc +2 -2
  88. package/.next/server/app/connections/knowledge.segments/connections/knowledge/__PAGE__.segment.rsc +4 -4
  89. package/.next/server/app/connections/knowledge.segments/connections/knowledge.segment.rsc +3 -3
  90. package/.next/server/app/connections/knowledge.segments/connections.segment.rsc +4 -4
  91. package/.next/server/app/connections/mail/page.js.nft.json +1 -1
  92. package/.next/server/app/connections/mail/page_client-reference-manifest.js +1 -1
  93. package/.next/server/app/connections/mail.html +1 -1
  94. package/.next/server/app/connections/mail.rsc +18 -18
  95. package/.next/server/app/connections/mail.segments/_full.segment.rsc +18 -18
  96. package/.next/server/app/connections/mail.segments/_head.segment.rsc +4 -4
  97. package/.next/server/app/connections/mail.segments/_index.segment.rsc +10 -10
  98. package/.next/server/app/connections/mail.segments/_tree.segment.rsc +2 -2
  99. package/.next/server/app/connections/mail.segments/connections/mail/__PAGE__.segment.rsc +4 -4
  100. package/.next/server/app/connections/mail.segments/connections/mail.segment.rsc +3 -3
  101. package/.next/server/app/connections/mail.segments/connections.segment.rsc +4 -4
  102. package/.next/server/app/connections/mcp/page.js.nft.json +1 -1
  103. package/.next/server/app/connections/mcp/page_client-reference-manifest.js +1 -1
  104. package/.next/server/app/connections/mcp.html +1 -1
  105. package/.next/server/app/connections/mcp.rsc +18 -18
  106. package/.next/server/app/connections/mcp.segments/_full.segment.rsc +18 -18
  107. package/.next/server/app/connections/mcp.segments/_head.segment.rsc +4 -4
  108. package/.next/server/app/connections/mcp.segments/_index.segment.rsc +10 -10
  109. package/.next/server/app/connections/mcp.segments/_tree.segment.rsc +2 -2
  110. package/.next/server/app/connections/mcp.segments/connections/mcp/__PAGE__.segment.rsc +4 -4
  111. package/.next/server/app/connections/mcp.segments/connections/mcp.segment.rsc +3 -3
  112. package/.next/server/app/connections/mcp.segments/connections.segment.rsc +4 -4
  113. package/.next/server/app/connections/messaging/page.js.nft.json +1 -1
  114. package/.next/server/app/connections/messaging/page_client-reference-manifest.js +1 -1
  115. package/.next/server/app/connections/messaging.html +1 -1
  116. package/.next/server/app/connections/messaging.rsc +18 -18
  117. package/.next/server/app/connections/messaging.segments/_full.segment.rsc +18 -18
  118. package/.next/server/app/connections/messaging.segments/_head.segment.rsc +4 -4
  119. package/.next/server/app/connections/messaging.segments/_index.segment.rsc +10 -10
  120. package/.next/server/app/connections/messaging.segments/_tree.segment.rsc +2 -2
  121. package/.next/server/app/connections/messaging.segments/connections/messaging/__PAGE__.segment.rsc +4 -4
  122. package/.next/server/app/connections/messaging.segments/connections/messaging.segment.rsc +3 -3
  123. package/.next/server/app/connections/messaging.segments/connections.segment.rsc +4 -4
  124. package/.next/server/app/connections/page.js.nft.json +1 -1
  125. package/.next/server/app/connections/page_client-reference-manifest.js +1 -1
  126. package/.next/server/app/connections/repositories/page.js.nft.json +1 -1
  127. package/.next/server/app/connections/repositories/page_client-reference-manifest.js +1 -1
  128. package/.next/server/app/connections/repositories.html +1 -1
  129. package/.next/server/app/connections/repositories.rsc +18 -18
  130. package/.next/server/app/connections/repositories.segments/_full.segment.rsc +18 -18
  131. package/.next/server/app/connections/repositories.segments/_head.segment.rsc +4 -4
  132. package/.next/server/app/connections/repositories.segments/_index.segment.rsc +10 -10
  133. package/.next/server/app/connections/repositories.segments/_tree.segment.rsc +2 -2
  134. package/.next/server/app/connections/repositories.segments/connections/repositories/__PAGE__.segment.rsc +4 -4
  135. package/.next/server/app/connections/repositories.segments/connections/repositories.segment.rsc +3 -3
  136. package/.next/server/app/connections/repositories.segments/connections.segment.rsc +4 -4
  137. package/.next/server/app/connections/routines/page.js.nft.json +1 -1
  138. package/.next/server/app/connections/routines/page_client-reference-manifest.js +1 -1
  139. package/.next/server/app/connections/routines.html +1 -1
  140. package/.next/server/app/connections/routines.rsc +16 -16
  141. package/.next/server/app/connections/routines.segments/_full.segment.rsc +16 -16
  142. package/.next/server/app/connections/routines.segments/_head.segment.rsc +4 -4
  143. package/.next/server/app/connections/routines.segments/_index.segment.rsc +10 -10
  144. package/.next/server/app/connections/routines.segments/_tree.segment.rsc +2 -2
  145. package/.next/server/app/connections/routines.segments/connections/routines/__PAGE__.segment.rsc +2 -2
  146. package/.next/server/app/connections/routines.segments/connections/routines.segment.rsc +3 -3
  147. package/.next/server/app/connections/routines.segments/connections.segment.rsc +4 -4
  148. package/.next/server/app/connections.html +1 -1
  149. package/.next/server/app/connections.rsc +16 -16
  150. package/.next/server/app/connections.segments/_full.segment.rsc +16 -16
  151. package/.next/server/app/connections.segments/_head.segment.rsc +4 -4
  152. package/.next/server/app/connections.segments/_index.segment.rsc +10 -10
  153. package/.next/server/app/connections.segments/_tree.segment.rsc +2 -2
  154. package/.next/server/app/connections.segments/connections/__PAGE__.segment.rsc +2 -2
  155. package/.next/server/app/connections.segments/connections.segment.rsc +4 -4
  156. package/.next/server/app/conversations/[id]/page.js.nft.json +1 -1
  157. package/.next/server/app/conversations/[id]/page_client-reference-manifest.js +1 -1
  158. package/.next/server/app/conversations/page.js.nft.json +1 -1
  159. package/.next/server/app/conversations/page_client-reference-manifest.js +1 -1
  160. package/.next/server/app/conversations.html +1 -1
  161. package/.next/server/app/conversations.rsc +15 -15
  162. package/.next/server/app/conversations.segments/_full.segment.rsc +15 -15
  163. package/.next/server/app/conversations.segments/_head.segment.rsc +4 -4
  164. package/.next/server/app/conversations.segments/_index.segment.rsc +10 -10
  165. package/.next/server/app/conversations.segments/_tree.segment.rsc +2 -2
  166. package/.next/server/app/conversations.segments/conversations/__PAGE__.segment.rsc +2 -2
  167. package/.next/server/app/conversations.segments/conversations.segment.rsc +3 -3
  168. package/.next/server/app/docs/[[...slug]]/page.js.nft.json +1 -1
  169. package/.next/server/app/docs/[[...slug]]/page_client-reference-manifest.js +1 -1
  170. package/.next/server/app/finance/page.js.nft.json +1 -1
  171. package/.next/server/app/finance/page_client-reference-manifest.js +1 -1
  172. package/.next/server/app/finance.html +1 -1
  173. package/.next/server/app/finance.rsc +17 -17
  174. package/.next/server/app/finance.segments/_full.segment.rsc +17 -17
  175. package/.next/server/app/finance.segments/_head.segment.rsc +4 -4
  176. package/.next/server/app/finance.segments/_index.segment.rsc +10 -10
  177. package/.next/server/app/finance.segments/_tree.segment.rsc +2 -2
  178. package/.next/server/app/finance.segments/finance/__PAGE__.segment.rsc +4 -4
  179. package/.next/server/app/finance.segments/finance.segment.rsc +3 -3
  180. package/.next/server/app/git/page.js.nft.json +1 -1
  181. package/.next/server/app/git/page_client-reference-manifest.js +1 -1
  182. package/.next/server/app/git.html +1 -1
  183. package/.next/server/app/git.rsc +17 -17
  184. package/.next/server/app/git.segments/_full.segment.rsc +17 -17
  185. package/.next/server/app/git.segments/_head.segment.rsc +4 -4
  186. package/.next/server/app/git.segments/_index.segment.rsc +10 -10
  187. package/.next/server/app/git.segments/_tree.segment.rsc +2 -2
  188. package/.next/server/app/git.segments/git/__PAGE__.segment.rsc +4 -4
  189. package/.next/server/app/git.segments/git.segment.rsc +3 -3
  190. package/.next/server/app/health/page.js.nft.json +1 -1
  191. package/.next/server/app/health/page_client-reference-manifest.js +1 -1
  192. package/.next/server/app/health.html +1 -1
  193. package/.next/server/app/health.rsc +17 -17
  194. package/.next/server/app/health.segments/_full.segment.rsc +17 -17
  195. package/.next/server/app/health.segments/_head.segment.rsc +4 -4
  196. package/.next/server/app/health.segments/_index.segment.rsc +10 -10
  197. package/.next/server/app/health.segments/_tree.segment.rsc +2 -2
  198. package/.next/server/app/health.segments/health/__PAGE__.segment.rsc +4 -4
  199. package/.next/server/app/health.segments/health.segment.rsc +3 -3
  200. package/.next/server/app/index.html +1 -1
  201. package/.next/server/app/index.rsc +17 -17
  202. package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  203. package/.next/server/app/index.segments/_full.segment.rsc +17 -17
  204. package/.next/server/app/index.segments/_head.segment.rsc +4 -4
  205. package/.next/server/app/index.segments/_index.segment.rsc +10 -10
  206. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  207. package/.next/server/app/knowledge/page.js.nft.json +1 -1
  208. package/.next/server/app/knowledge/page_client-reference-manifest.js +1 -1
  209. package/.next/server/app/knowledge.html +1 -1
  210. package/.next/server/app/knowledge.rsc +18 -18
  211. package/.next/server/app/knowledge.segments/_full.segment.rsc +18 -18
  212. package/.next/server/app/knowledge.segments/_head.segment.rsc +4 -4
  213. package/.next/server/app/knowledge.segments/_index.segment.rsc +10 -10
  214. package/.next/server/app/knowledge.segments/_tree.segment.rsc +2 -2
  215. package/.next/server/app/knowledge.segments/knowledge/__PAGE__.segment.rsc +4 -4
  216. package/.next/server/app/knowledge.segments/knowledge.segment.rsc +4 -4
  217. package/.next/server/app/page.js.nft.json +1 -1
  218. package/.next/server/app/page_client-reference-manifest.js +1 -1
  219. package/.next/server/app/reading/page.js.nft.json +1 -1
  220. package/.next/server/app/reading/page_client-reference-manifest.js +1 -1
  221. package/.next/server/app/reading.html +1 -1
  222. package/.next/server/app/reading.rsc +17 -17
  223. package/.next/server/app/reading.segments/_full.segment.rsc +17 -17
  224. package/.next/server/app/reading.segments/_head.segment.rsc +4 -4
  225. package/.next/server/app/reading.segments/_index.segment.rsc +10 -10
  226. package/.next/server/app/reading.segments/_tree.segment.rsc +2 -2
  227. package/.next/server/app/reading.segments/reading/__PAGE__.segment.rsc +4 -4
  228. package/.next/server/app/reading.segments/reading.segment.rsc +3 -3
  229. package/.next/server/app/schedule/page.js.nft.json +1 -1
  230. package/.next/server/app/schedule/page_client-reference-manifest.js +1 -1
  231. package/.next/server/app/schedule.html +1 -1
  232. package/.next/server/app/schedule.rsc +17 -17
  233. package/.next/server/app/schedule.segments/_full.segment.rsc +17 -17
  234. package/.next/server/app/schedule.segments/_head.segment.rsc +4 -4
  235. package/.next/server/app/schedule.segments/_index.segment.rsc +10 -10
  236. package/.next/server/app/schedule.segments/_tree.segment.rsc +2 -2
  237. package/.next/server/app/schedule.segments/schedule/__PAGE__.segment.rsc +4 -4
  238. package/.next/server/app/schedule.segments/schedule.segment.rsc +3 -3
  239. package/.next/server/app/settings/advanced/page.js.nft.json +1 -1
  240. package/.next/server/app/settings/advanced/page_client-reference-manifest.js +1 -1
  241. package/.next/server/app/settings/advanced.html +1 -1
  242. package/.next/server/app/settings/advanced.rsc +18 -18
  243. package/.next/server/app/settings/advanced.segments/_full.segment.rsc +18 -18
  244. package/.next/server/app/settings/advanced.segments/_head.segment.rsc +4 -4
  245. package/.next/server/app/settings/advanced.segments/_index.segment.rsc +10 -10
  246. package/.next/server/app/settings/advanced.segments/_tree.segment.rsc +2 -2
  247. package/.next/server/app/settings/advanced.segments/settings/advanced/__PAGE__.segment.rsc +4 -4
  248. package/.next/server/app/settings/advanced.segments/settings/advanced.segment.rsc +3 -3
  249. package/.next/server/app/settings/advanced.segments/settings.segment.rsc +4 -4
  250. package/.next/server/app/settings/backends/page.js.nft.json +1 -1
  251. package/.next/server/app/settings/backends/page_client-reference-manifest.js +1 -1
  252. package/.next/server/app/settings/backends.html +1 -1
  253. package/.next/server/app/settings/backends.rsc +16 -16
  254. package/.next/server/app/settings/backends.segments/_full.segment.rsc +16 -16
  255. package/.next/server/app/settings/backends.segments/_head.segment.rsc +4 -4
  256. package/.next/server/app/settings/backends.segments/_index.segment.rsc +10 -10
  257. package/.next/server/app/settings/backends.segments/_tree.segment.rsc +2 -2
  258. package/.next/server/app/settings/backends.segments/settings/backends/__PAGE__.segment.rsc +2 -2
  259. package/.next/server/app/settings/backends.segments/settings/backends.segment.rsc +3 -3
  260. package/.next/server/app/settings/backends.segments/settings.segment.rsc +4 -4
  261. package/.next/server/app/settings/commands/page.js.nft.json +1 -1
  262. package/.next/server/app/settings/commands/page_client-reference-manifest.js +1 -1
  263. package/.next/server/app/settings/commands.html +1 -1
  264. package/.next/server/app/settings/commands.rsc +18 -18
  265. package/.next/server/app/settings/commands.segments/_full.segment.rsc +18 -18
  266. package/.next/server/app/settings/commands.segments/_head.segment.rsc +4 -4
  267. package/.next/server/app/settings/commands.segments/_index.segment.rsc +10 -10
  268. package/.next/server/app/settings/commands.segments/_tree.segment.rsc +2 -2
  269. package/.next/server/app/settings/commands.segments/settings/commands/__PAGE__.segment.rsc +4 -4
  270. package/.next/server/app/settings/commands.segments/settings/commands.segment.rsc +3 -3
  271. package/.next/server/app/settings/commands.segments/settings.segment.rsc +4 -4
  272. package/.next/server/app/settings/connections/page.js.nft.json +1 -1
  273. package/.next/server/app/settings/connections/page_client-reference-manifest.js +1 -1
  274. package/.next/server/app/settings/connections.html +1 -1
  275. package/.next/server/app/settings/connections.rsc +16 -16
  276. package/.next/server/app/settings/connections.segments/_full.segment.rsc +16 -16
  277. package/.next/server/app/settings/connections.segments/_head.segment.rsc +4 -4
  278. package/.next/server/app/settings/connections.segments/_index.segment.rsc +10 -10
  279. package/.next/server/app/settings/connections.segments/_tree.segment.rsc +2 -2
  280. package/.next/server/app/settings/connections.segments/settings/connections/__PAGE__.segment.rsc +2 -2
  281. package/.next/server/app/settings/connections.segments/settings/connections.segment.rsc +3 -3
  282. package/.next/server/app/settings/connections.segments/settings.segment.rsc +4 -4
  283. package/.next/server/app/settings/journal/page.js.nft.json +1 -1
  284. package/.next/server/app/settings/journal/page_client-reference-manifest.js +1 -1
  285. package/.next/server/app/settings/journal.html +1 -1
  286. package/.next/server/app/settings/journal.rsc +18 -18
  287. package/.next/server/app/settings/journal.segments/_full.segment.rsc +18 -18
  288. package/.next/server/app/settings/journal.segments/_head.segment.rsc +4 -4
  289. package/.next/server/app/settings/journal.segments/_index.segment.rsc +10 -10
  290. package/.next/server/app/settings/journal.segments/_tree.segment.rsc +2 -2
  291. package/.next/server/app/settings/journal.segments/settings/journal/__PAGE__.segment.rsc +4 -4
  292. package/.next/server/app/settings/journal.segments/settings/journal.segment.rsc +3 -3
  293. package/.next/server/app/settings/journal.segments/settings.segment.rsc +4 -4
  294. package/.next/server/app/settings/management/page.js.nft.json +1 -1
  295. package/.next/server/app/settings/management/page_client-reference-manifest.js +1 -1
  296. package/.next/server/app/settings/management.html +1 -1
  297. package/.next/server/app/settings/management.rsc +18 -18
  298. package/.next/server/app/settings/management.segments/_full.segment.rsc +18 -18
  299. package/.next/server/app/settings/management.segments/_head.segment.rsc +4 -4
  300. package/.next/server/app/settings/management.segments/_index.segment.rsc +10 -10
  301. package/.next/server/app/settings/management.segments/_tree.segment.rsc +2 -2
  302. package/.next/server/app/settings/management.segments/settings/management/__PAGE__.segment.rsc +4 -4
  303. package/.next/server/app/settings/management.segments/settings/management.segment.rsc +3 -3
  304. package/.next/server/app/settings/management.segments/settings.segment.rsc +4 -4
  305. package/.next/server/app/settings/messaging/page.js.nft.json +1 -1
  306. package/.next/server/app/settings/messaging/page_client-reference-manifest.js +1 -1
  307. package/.next/server/app/settings/messaging.html +1 -1
  308. package/.next/server/app/settings/messaging.rsc +16 -16
  309. package/.next/server/app/settings/messaging.segments/_full.segment.rsc +16 -16
  310. package/.next/server/app/settings/messaging.segments/_head.segment.rsc +4 -4
  311. package/.next/server/app/settings/messaging.segments/_index.segment.rsc +10 -10
  312. package/.next/server/app/settings/messaging.segments/_tree.segment.rsc +2 -2
  313. package/.next/server/app/settings/messaging.segments/settings/messaging/__PAGE__.segment.rsc +2 -2
  314. package/.next/server/app/settings/messaging.segments/settings/messaging.segment.rsc +3 -3
  315. package/.next/server/app/settings/messaging.segments/settings.segment.rsc +4 -4
  316. package/.next/server/app/settings/models/page.js.nft.json +1 -1
  317. package/.next/server/app/settings/models/page_client-reference-manifest.js +1 -1
  318. package/.next/server/app/settings/models.html +1 -1
  319. package/.next/server/app/settings/models.rsc +18 -18
  320. package/.next/server/app/settings/models.segments/_full.segment.rsc +18 -18
  321. package/.next/server/app/settings/models.segments/_head.segment.rsc +4 -4
  322. package/.next/server/app/settings/models.segments/_index.segment.rsc +10 -10
  323. package/.next/server/app/settings/models.segments/_tree.segment.rsc +2 -2
  324. package/.next/server/app/settings/models.segments/settings/models/__PAGE__.segment.rsc +4 -4
  325. package/.next/server/app/settings/models.segments/settings/models.segment.rsc +3 -3
  326. package/.next/server/app/settings/models.segments/settings.segment.rsc +4 -4
  327. package/.next/server/app/settings/page.js.nft.json +1 -1
  328. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  329. package/.next/server/app/settings/processes/page.js.nft.json +1 -1
  330. package/.next/server/app/settings/processes/page_client-reference-manifest.js +1 -1
  331. package/.next/server/app/settings/processes.html +1 -1
  332. package/.next/server/app/settings/processes.rsc +16 -16
  333. package/.next/server/app/settings/processes.segments/_full.segment.rsc +16 -16
  334. package/.next/server/app/settings/processes.segments/_head.segment.rsc +4 -4
  335. package/.next/server/app/settings/processes.segments/_index.segment.rsc +10 -10
  336. package/.next/server/app/settings/processes.segments/_tree.segment.rsc +2 -2
  337. package/.next/server/app/settings/processes.segments/settings/processes/__PAGE__.segment.rsc +2 -2
  338. package/.next/server/app/settings/processes.segments/settings/processes.segment.rsc +3 -3
  339. package/.next/server/app/settings/processes.segments/settings.segment.rsc +4 -4
  340. package/.next/server/app/settings/routines/page.js.nft.json +1 -1
  341. package/.next/server/app/settings/routines/page_client-reference-manifest.js +1 -1
  342. package/.next/server/app/settings/routines.html +1 -1
  343. package/.next/server/app/settings/routines.rsc +18 -18
  344. package/.next/server/app/settings/routines.segments/_full.segment.rsc +18 -18
  345. package/.next/server/app/settings/routines.segments/_head.segment.rsc +4 -4
  346. package/.next/server/app/settings/routines.segments/_index.segment.rsc +10 -10
  347. package/.next/server/app/settings/routines.segments/_tree.segment.rsc +2 -2
  348. package/.next/server/app/settings/routines.segments/settings/routines/__PAGE__.segment.rsc +4 -4
  349. package/.next/server/app/settings/routines.segments/settings/routines.segment.rsc +3 -3
  350. package/.next/server/app/settings/routines.segments/settings.segment.rsc +4 -4
  351. package/.next/server/app/settings/schedule/page.js.nft.json +1 -1
  352. package/.next/server/app/settings/schedule/page_client-reference-manifest.js +1 -1
  353. package/.next/server/app/settings/schedule.html +1 -1
  354. package/.next/server/app/settings/schedule.rsc +18 -18
  355. package/.next/server/app/settings/schedule.segments/_full.segment.rsc +18 -18
  356. package/.next/server/app/settings/schedule.segments/_head.segment.rsc +4 -4
  357. package/.next/server/app/settings/schedule.segments/_index.segment.rsc +10 -10
  358. package/.next/server/app/settings/schedule.segments/_tree.segment.rsc +2 -2
  359. package/.next/server/app/settings/schedule.segments/settings/schedule/__PAGE__.segment.rsc +4 -4
  360. package/.next/server/app/settings/schedule.segments/settings/schedule.segment.rsc +3 -3
  361. package/.next/server/app/settings/schedule.segments/settings.segment.rsc +4 -4
  362. package/.next/server/app/settings/self-learning/page.js.nft.json +1 -1
  363. package/.next/server/app/settings/self-learning/page_client-reference-manifest.js +1 -1
  364. package/.next/server/app/settings/self-learning.html +1 -1
  365. package/.next/server/app/settings/self-learning.rsc +18 -18
  366. package/.next/server/app/settings/self-learning.segments/_full.segment.rsc +18 -18
  367. package/.next/server/app/settings/self-learning.segments/_head.segment.rsc +4 -4
  368. package/.next/server/app/settings/self-learning.segments/_index.segment.rsc +10 -10
  369. package/.next/server/app/settings/self-learning.segments/_tree.segment.rsc +2 -2
  370. package/.next/server/app/settings/self-learning.segments/settings/self-learning/__PAGE__.segment.rsc +4 -4
  371. package/.next/server/app/settings/self-learning.segments/settings/self-learning.segment.rsc +3 -3
  372. package/.next/server/app/settings/self-learning.segments/settings.segment.rsc +4 -4
  373. package/.next/server/app/settings/wiki/page/app-paths-manifest.json +3 -0
  374. package/.next/server/app/settings/wiki/page/build-manifest.json +18 -0
  375. package/.next/server/app/settings/wiki/page/next-font-manifest.json +6 -0
  376. package/.next/server/app/settings/wiki/page/react-loadable-manifest.json +8 -0
  377. package/.next/server/app/settings/wiki/page/server-reference-manifest.json +4 -0
  378. package/.next/server/app/settings/wiki/page.js +16 -0
  379. package/.next/server/app/settings/wiki/page.js.map +5 -0
  380. package/.next/server/app/settings/wiki/page.js.nft.json +1 -0
  381. package/.next/server/app/settings/wiki/page_client-reference-manifest.js +3 -0
  382. package/.next/server/app/settings/wiki/timeline/page/app-paths-manifest.json +3 -0
  383. package/.next/server/app/settings/wiki/timeline/page/build-manifest.json +18 -0
  384. package/.next/server/app/settings/wiki/timeline/page/next-font-manifest.json +6 -0
  385. package/.next/server/app/settings/wiki/timeline/page/react-loadable-manifest.json +8 -0
  386. package/.next/server/app/settings/wiki/timeline/page/server-reference-manifest.json +4 -0
  387. package/.next/server/app/settings/wiki/timeline/page.js +17 -0
  388. package/.next/server/app/settings/wiki/timeline/page.js.map +5 -0
  389. package/.next/server/app/settings/wiki/timeline/page.js.nft.json +1 -0
  390. package/.next/server/app/settings/wiki/timeline/page_client-reference-manifest.js +3 -0
  391. package/.next/server/app/settings/wiki/timeline.html +1 -0
  392. package/.next/server/app/settings/wiki/timeline.meta +17 -0
  393. package/.next/server/app/settings/wiki/timeline.rsc +24 -0
  394. package/.next/server/app/settings/wiki/timeline.segments/_full.segment.rsc +24 -0
  395. package/.next/server/app/settings/wiki/timeline.segments/_head.segment.rsc +6 -0
  396. package/.next/server/app/settings/wiki/timeline.segments/_index.segment.rsc +11 -0
  397. package/.next/server/app/settings/wiki/timeline.segments/_tree.segment.rsc +2 -0
  398. package/.next/server/app/settings/wiki/timeline.segments/settings/wiki/timeline/__PAGE__.segment.rsc +6 -0
  399. package/.next/server/app/settings/wiki/timeline.segments/settings/wiki/timeline.segment.rsc +5 -0
  400. package/.next/server/app/settings/wiki/timeline.segments/settings/wiki.segment.rsc +5 -0
  401. package/.next/server/app/settings/wiki/timeline.segments/settings.segment.rsc +5 -0
  402. package/.next/server/app/settings/wiki.html +1 -0
  403. package/.next/server/app/settings/wiki.meta +16 -0
  404. package/.next/server/app/settings/wiki.rsc +27 -0
  405. package/.next/server/app/settings/wiki.segments/_full.segment.rsc +27 -0
  406. package/.next/server/app/settings/wiki.segments/_head.segment.rsc +6 -0
  407. package/.next/server/app/settings/wiki.segments/_index.segment.rsc +11 -0
  408. package/.next/server/app/settings/wiki.segments/_tree.segment.rsc +2 -0
  409. package/.next/server/app/settings/wiki.segments/settings/wiki/__PAGE__.segment.rsc +9 -0
  410. package/.next/server/app/settings/wiki.segments/settings/wiki.segment.rsc +5 -0
  411. package/.next/server/app/settings/wiki.segments/settings.segment.rsc +5 -0
  412. package/.next/server/app/settings.html +1 -1
  413. package/.next/server/app/settings.rsc +18 -18
  414. package/.next/server/app/settings.segments/_full.segment.rsc +18 -18
  415. package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  416. package/.next/server/app/settings.segments/_index.segment.rsc +10 -10
  417. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  418. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  419. package/.next/server/app/settings.segments/settings.segment.rsc +4 -4
  420. package/.next/server/app/setup/page.js.nft.json +1 -1
  421. package/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  422. package/.next/server/app/setup.html +1 -1
  423. package/.next/server/app/setup.rsc +17 -17
  424. package/.next/server/app/setup.segments/_full.segment.rsc +17 -17
  425. package/.next/server/app/setup.segments/_head.segment.rsc +4 -4
  426. package/.next/server/app/setup.segments/_index.segment.rsc +10 -10
  427. package/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  428. package/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +4 -4
  429. package/.next/server/app/setup.segments/setup.segment.rsc +3 -3
  430. package/.next/server/app/trip/page.js.nft.json +1 -1
  431. package/.next/server/app/trip/page_client-reference-manifest.js +1 -1
  432. package/.next/server/app/trip.html +1 -1
  433. package/.next/server/app/trip.rsc +17 -17
  434. package/.next/server/app/trip.segments/_full.segment.rsc +17 -17
  435. package/.next/server/app/trip.segments/_head.segment.rsc +4 -4
  436. package/.next/server/app/trip.segments/_index.segment.rsc +10 -10
  437. package/.next/server/app/trip.segments/_tree.segment.rsc +2 -2
  438. package/.next/server/app/trip.segments/trip/__PAGE__.segment.rsc +4 -4
  439. package/.next/server/app/trip.segments/trip.segment.rsc +3 -3
  440. package/.next/server/app/wiki/page/app-paths-manifest.json +3 -0
  441. package/.next/server/app/wiki/page/build-manifest.json +18 -0
  442. package/.next/server/app/wiki/page/next-font-manifest.json +6 -0
  443. package/.next/server/app/wiki/page/react-loadable-manifest.json +8 -0
  444. package/.next/server/app/wiki/page/server-reference-manifest.json +4 -0
  445. package/.next/server/app/wiki/page.js +15 -0
  446. package/.next/server/app/wiki/page.js.map +5 -0
  447. package/.next/server/app/wiki/page.js.nft.json +1 -0
  448. package/.next/server/app/wiki/page_client-reference-manifest.js +3 -0
  449. package/.next/server/app/wiki/timeline/page/app-paths-manifest.json +3 -0
  450. package/.next/server/app/wiki/timeline/page/build-manifest.json +18 -0
  451. package/.next/server/app/wiki/timeline/page/next-font-manifest.json +6 -0
  452. package/.next/server/app/wiki/timeline/page/react-loadable-manifest.json +8 -0
  453. package/.next/server/app/wiki/timeline/page/server-reference-manifest.json +4 -0
  454. package/.next/server/app/wiki/timeline/page.js +15 -0
  455. package/.next/server/app/wiki/timeline/page.js.map +5 -0
  456. package/.next/server/app/wiki/timeline/page.js.nft.json +1 -0
  457. package/.next/server/app/wiki/timeline/page_client-reference-manifest.js +3 -0
  458. package/.next/server/app/wiki/timeline.html +1 -0
  459. package/.next/server/app/wiki/timeline.meta +16 -0
  460. package/.next/server/app/wiki/timeline.rsc +26 -0
  461. package/.next/server/app/wiki/timeline.segments/_full.segment.rsc +26 -0
  462. package/.next/server/app/wiki/timeline.segments/_head.segment.rsc +6 -0
  463. package/.next/server/app/wiki/timeline.segments/_index.segment.rsc +11 -0
  464. package/.next/server/app/wiki/timeline.segments/_tree.segment.rsc +2 -0
  465. package/.next/server/app/wiki/timeline.segments/wiki/timeline/__PAGE__.segment.rsc +9 -0
  466. package/.next/server/app/wiki/timeline.segments/wiki/timeline.segment.rsc +5 -0
  467. package/.next/server/app/wiki/timeline.segments/wiki.segment.rsc +5 -0
  468. package/.next/server/app/wiki.html +1 -0
  469. package/.next/server/app/wiki.meta +15 -0
  470. package/.next/server/app/wiki.rsc +26 -0
  471. package/.next/server/app/wiki.segments/_full.segment.rsc +26 -0
  472. package/.next/server/app/wiki.segments/_head.segment.rsc +6 -0
  473. package/.next/server/app/wiki.segments/_index.segment.rsc +11 -0
  474. package/.next/server/app/wiki.segments/_tree.segment.rsc +2 -0
  475. package/.next/server/app/wiki.segments/wiki/__PAGE__.segment.rsc +9 -0
  476. package/.next/server/app/wiki.segments/wiki.segment.rsc +5 -0
  477. package/.next/server/app-paths-manifest.json +5 -1
  478. package/.next/server/chunks/0z~i_next_dist_esm_build_templates_app-route_0o_o_hp.js +1 -1
  479. package/.next/server/chunks/0z~i_next_dist_esm_build_templates_app-route_0o_o_hp.js.map +1 -1
  480. package/.next/server/chunks/{[root-of-the-server]__00gp8gz._.js → [root-of-the-server]__01knfi.._.js} +1 -1
  481. package/.next/server/chunks/{[root-of-the-server]__0-0wgko._.js → [root-of-the-server]__08_s4yo._.js} +2 -2
  482. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_wiki_timeline_page_actions_0czqn6z.js +3 -0
  483. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_wiki_timeline_page_actions_0czqn6z.js.map +1 -0
  484. package/.next/server/chunks/ssr/0mzu_lucide-react_dist_esm_icons_zap_115-27i.js +3 -0
  485. package/.next/server/chunks/ssr/0mzu_lucide-react_dist_esm_icons_zap_115-27i.js.map +1 -0
  486. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0k3x-na.js +4 -0
  487. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0k3x-na.js.map +1 -0
  488. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0km22.v.js +4 -0
  489. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0km22.v.js.map +1 -0
  490. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0vui1gx.js +4 -0
  491. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0vui1gx.js.map +1 -0
  492. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_11h319t.js +4 -0
  493. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_11h319t.js.map +1 -0
  494. package/.next/server/chunks/ssr/[root-of-the-server]__007ymqm._.js +3 -0
  495. package/.next/server/chunks/ssr/[root-of-the-server]__007ymqm._.js.map +1 -0
  496. package/.next/server/chunks/ssr/[root-of-the-server]__00vjce2._.js +3 -0
  497. package/.next/server/chunks/ssr/[root-of-the-server]__00vjce2._.js.map +1 -0
  498. package/.next/server/chunks/ssr/[root-of-the-server]__07pkvm3._.js +3 -0
  499. package/.next/server/chunks/ssr/[root-of-the-server]__07pkvm3._.js.map +1 -0
  500. package/.next/server/chunks/ssr/[root-of-the-server]__0dfuz7_._.js +3 -0
  501. package/.next/server/chunks/ssr/[root-of-the-server]__0dfuz7_._.js.map +1 -0
  502. package/.next/server/chunks/ssr/[root-of-the-server]__117dw_l._.js +3 -0
  503. package/.next/server/chunks/ssr/[root-of-the-server]__117dw_l._.js.map +1 -0
  504. package/.next/server/chunks/ssr/_0-3uzu1._.js +3 -0
  505. package/.next/server/chunks/ssr/_0-3uzu1._.js.map +1 -0
  506. package/.next/server/chunks/ssr/_0-6jgyg._.js +3 -0
  507. package/.next/server/chunks/ssr/_0-6jgyg._.js.map +1 -0
  508. package/.next/server/chunks/ssr/_0-fv_sr._.js +1 -1
  509. package/.next/server/chunks/ssr/_0-fv_sr._.js.map +1 -1
  510. package/.next/server/chunks/ssr/_0.7pki~._.js +3 -0
  511. package/.next/server/chunks/ssr/_0.7pki~._.js.map +1 -0
  512. package/.next/server/chunks/ssr/_02s86rg._.js +3 -0
  513. package/.next/server/chunks/ssr/_02s86rg._.js.map +1 -0
  514. package/.next/server/chunks/ssr/_03bq.de._.js +3 -0
  515. package/.next/server/chunks/ssr/_03bq.de._.js.map +1 -0
  516. package/.next/server/chunks/ssr/_03u6ja0._.js +3 -0
  517. package/.next/server/chunks/ssr/_03u6ja0._.js.map +1 -0
  518. package/.next/server/chunks/ssr/_04-.z69._.js +3 -0
  519. package/.next/server/chunks/ssr/_04-.z69._.js.map +1 -0
  520. package/.next/server/chunks/ssr/_05rlac0._.js +3 -0
  521. package/.next/server/chunks/ssr/_05rlac0._.js.map +1 -0
  522. package/.next/server/chunks/ssr/_05xysbw._.js +3 -0
  523. package/.next/server/chunks/ssr/_05xysbw._.js.map +1 -0
  524. package/.next/server/chunks/ssr/_09e_66m._.js +3 -0
  525. package/.next/server/chunks/ssr/_09e_66m._.js.map +1 -0
  526. package/.next/server/chunks/ssr/_0_bnan9._.js +3 -0
  527. package/.next/server/chunks/ssr/_0_bnan9._.js.map +1 -0
  528. package/.next/server/chunks/ssr/_0b00io4._.js +3 -0
  529. package/.next/server/chunks/ssr/_0b00io4._.js.map +1 -0
  530. package/.next/server/chunks/ssr/_0es_2i2._.js +3 -0
  531. package/.next/server/chunks/ssr/_0es_2i2._.js.map +1 -0
  532. package/.next/server/chunks/ssr/_0g7_r5i._.js +3 -0
  533. package/.next/server/chunks/ssr/_0g7_r5i._.js.map +1 -0
  534. package/.next/server/chunks/ssr/_0hojxqy._.js +1 -1
  535. package/.next/server/chunks/ssr/_0hojxqy._.js.map +1 -1
  536. package/.next/server/chunks/ssr/_0ifb9jm._.js +3 -0
  537. package/.next/server/chunks/ssr/_0ifb9jm._.js.map +1 -0
  538. package/.next/server/chunks/ssr/_0jl_-u5._.js +3 -0
  539. package/.next/server/chunks/ssr/_0jl_-u5._.js.map +1 -0
  540. package/.next/server/chunks/ssr/_0lfuvjg._.js +3 -0
  541. package/.next/server/chunks/ssr/_0lfuvjg._.js.map +1 -0
  542. package/.next/server/chunks/ssr/{_0jm~wn-._.js → _0mp7n5i._.js} +2 -2
  543. package/.next/server/chunks/ssr/{_0jm~wn-._.js.map → _0mp7n5i._.js.map} +1 -1
  544. package/.next/server/chunks/ssr/_0powsoh._.js +3 -0
  545. package/.next/server/chunks/ssr/_0powsoh._.js.map +1 -0
  546. package/.next/server/chunks/ssr/_0q34y9l._.js +3 -0
  547. package/.next/server/chunks/ssr/_0q34y9l._.js.map +1 -0
  548. package/.next/server/chunks/ssr/_0q4rpi-._.js +5 -0
  549. package/.next/server/chunks/ssr/_0q4rpi-._.js.map +1 -0
  550. package/.next/server/chunks/ssr/_0rc-7d4._.js +3 -0
  551. package/.next/server/chunks/ssr/_0rc-7d4._.js.map +1 -0
  552. package/.next/server/chunks/ssr/_0tjsh16._.js +3 -0
  553. package/.next/server/chunks/ssr/_0tjsh16._.js.map +1 -0
  554. package/.next/server/chunks/ssr/_0tl98en._.js +1 -1
  555. package/.next/server/chunks/ssr/_0tl98en._.js.map +1 -1
  556. package/.next/server/chunks/ssr/{_0._ysx3._.js → _0v_6ros._.js} +2 -2
  557. package/.next/server/chunks/ssr/_0v_6ros._.js.map +1 -0
  558. package/.next/server/chunks/ssr/_0vncjim._.js +3 -0
  559. package/.next/server/chunks/ssr/_0vncjim._.js.map +1 -0
  560. package/.next/server/chunks/ssr/_0vx-jgf._.js +3 -0
  561. package/.next/server/chunks/ssr/_0vx-jgf._.js.map +1 -0
  562. package/.next/server/chunks/ssr/_0w1ez1p._.js +3 -0
  563. package/.next/server/chunks/ssr/_0w1ez1p._.js.map +1 -0
  564. package/.next/server/chunks/ssr/_0yl49yk._.js +3 -0
  565. package/.next/server/chunks/ssr/_0yl49yk._.js.map +1 -0
  566. package/.next/server/chunks/ssr/_0z1ah9x._.js +1 -1
  567. package/.next/server/chunks/ssr/_0z1ah9x._.js.map +1 -1
  568. package/.next/server/chunks/ssr/_0z9ikwn._.js +3 -0
  569. package/.next/server/chunks/ssr/_0z9ikwn._.js.map +1 -0
  570. package/.next/server/chunks/ssr/_0z_cp12._.js +3 -0
  571. package/.next/server/chunks/ssr/_0z_cp12._.js.map +1 -0
  572. package/.next/server/chunks/ssr/_10hvwg5._.js +3 -0
  573. package/.next/server/chunks/ssr/_10hvwg5._.js.map +1 -0
  574. package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_settings_wiki_page_actions_12d~w9l.js +3 -0
  575. package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_settings_wiki_page_actions_12d~w9l.js.map +1 -0
  576. package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_wiki_page_actions_026bi.d.js +3 -0
  577. package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_wiki_page_actions_026bi.d.js.map +1 -0
  578. package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_wiki_timeline_page_actions_06jb4gg.js +3 -0
  579. package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_wiki_timeline_page_actions_06jb4gg.js.map +1 -0
  580. package/.next/server/chunks/ssr/packages_dashboard_src_0bx940s._.js +3 -0
  581. package/.next/server/chunks/ssr/packages_dashboard_src_0bx940s._.js.map +1 -0
  582. package/.next/server/chunks/ssr/packages_dashboard_src_0fo7nqq._.js +3 -0
  583. package/.next/server/chunks/ssr/packages_dashboard_src_0fo7nqq._.js.map +1 -0
  584. package/.next/server/chunks/ssr/packages_dashboard_src_0uxs9-.._.js +1 -1
  585. package/.next/server/chunks/ssr/packages_dashboard_src_0uxs9-.._.js.map +1 -1
  586. package/.next/server/chunks/ssr/packages_dashboard_src_app_activity_page_tsx_08yep46._.js +1 -1
  587. package/.next/server/chunks/ssr/packages_dashboard_src_app_activity_page_tsx_08yep46._.js.map +1 -1
  588. package/.next/server/chunks/ssr/packages_dashboard_src_app_connections_repositories_page_tsx_08y6paq._.js +1 -1
  589. package/.next/server/chunks/ssr/packages_dashboard_src_app_connections_repositories_page_tsx_08y6paq._.js.map +1 -1
  590. package/.next/server/chunks/ssr/packages_dashboard_src_app_git_page_tsx_0ah19-6._.js +1 -1
  591. package/.next/server/chunks/ssr/packages_dashboard_src_app_git_page_tsx_0ah19-6._.js.map +1 -1
  592. package/.next/server/chunks/ssr/packages_dashboard_src_app_schedule_page_tsx_0znc404._.js +1 -1
  593. package/.next/server/chunks/ssr/packages_dashboard_src_app_schedule_page_tsx_0znc404._.js.map +1 -1
  594. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_models_page_tsx_0djsx88._.js +1 -1
  595. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_models_page_tsx_0djsx88._.js.map +1 -1
  596. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_schedule_page_tsx_0b8zr2l._.js +1 -1
  597. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_schedule_page_tsx_0b8zr2l._.js.map +1 -1
  598. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_wiki_page_tsx_0..1tkb._.js +3 -0
  599. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_wiki_page_tsx_0..1tkb._.js.map +1 -0
  600. package/.next/server/chunks/ssr/packages_dashboard_src_app_setup_page_tsx_06k3via._.js +1 -1
  601. package/.next/server/chunks/ssr/packages_dashboard_src_app_setup_page_tsx_06k3via._.js.map +1 -1
  602. package/.next/server/chunks/ssr/packages_dashboard_src_components_connections_slack-card_tsx_0mahejj._.js +1 -1
  603. package/.next/server/chunks/ssr/packages_dashboard_src_components_connections_slack-card_tsx_0mahejj._.js.map +1 -1
  604. package/.next/server/chunks/ssr/packages_dashboard_src_components_settings_backend-settings_tsx_0i-tp_u._.js +3 -0
  605. package/.next/server/chunks/ssr/packages_dashboard_src_components_settings_backend-settings_tsx_0i-tp_u._.js.map +1 -0
  606. package/.next/server/chunks/ssr/packages_shared_dist_index_0kuvow-.js +1 -1
  607. package/.next/server/chunks/ssr/packages_shared_dist_index_0kuvow-.js.map +1 -1
  608. package/.next/server/middleware/middleware-manifest.json +1 -1
  609. package/.next/server/middleware-build-manifest.js +3 -3
  610. package/.next/server/middleware-manifest.json +1 -1
  611. package/.next/server/pages/404.html +1 -1
  612. package/.next/server/pages/500.html +1 -1
  613. package/.next/static/chunks/01yix41q.0970.js +1 -0
  614. package/.next/static/chunks/02qjylw4yp63l.js +1 -0
  615. package/.next/static/chunks/06y2ddf5x9x_4.js +1 -0
  616. package/.next/static/chunks/{0ztl~44vjnpe1.js → 08ie9t4zn6n4-.js} +1 -1
  617. package/.next/static/chunks/091khs5zza4_4.js +1 -0
  618. package/.next/static/chunks/{0~_56pt8wsmeo.js → 0abhg-m1-acdb.js} +1 -1
  619. package/.next/static/chunks/0ae.1upy09t--.js +1 -0
  620. package/.next/static/chunks/0bvcd~k.vfro8.js +1 -0
  621. package/.next/static/chunks/{0g6.0r0i-wyeg.js → 0eqm47_oikj36.js} +1 -1
  622. package/.next/static/chunks/0fqugh~hv4my1.js +1 -0
  623. package/.next/static/chunks/0has04tc4mrik.js +1 -0
  624. package/.next/static/chunks/0huynm-qbj26k.js +1 -0
  625. package/.next/static/chunks/0ibq4zul6305p.js +1 -0
  626. package/.next/static/chunks/0jm_e6e6n~rdn.js +1 -0
  627. package/.next/static/chunks/0k0.4cksmybb2.js +1 -0
  628. package/.next/static/chunks/0l07yrtw3fxp5.js +1 -0
  629. package/.next/static/chunks/0nhqu-sq045x7.js +1 -0
  630. package/.next/static/chunks/0op3oc-if6n5-.js +3 -0
  631. package/.next/static/chunks/0p34n6.st3s~1.js +1 -0
  632. package/.next/static/chunks/0r8nosw42e2m9.js +1 -0
  633. package/.next/static/chunks/0shx3_mxukfhr.js +1 -0
  634. package/.next/static/chunks/0thm~t5g5adz1.js +1 -0
  635. package/.next/static/chunks/0thyr1cngc-j..css +1 -0
  636. package/.next/static/chunks/0ttdb_354lh4t.js +1 -0
  637. package/.next/static/chunks/0v..ut2v38yep.js +1 -0
  638. package/.next/static/chunks/{17npklzvg8-~3.js → 0vhj0k-zy6jhh.js} +1 -1
  639. package/.next/static/chunks/0wdx410~0~gmn.js +1 -0
  640. package/.next/static/chunks/0y3ptqa0bbi-h.js +1 -0
  641. package/.next/static/chunks/{0zbxi2grjtx.c.js → 0zx_~u_zxg_7e.js} +1 -1
  642. package/.next/static/chunks/{0f3kjzb~5zhc~.js → 10pq~97vgkzro.js} +1 -1
  643. package/.next/static/chunks/11hlk6.h1of0y.js +1 -0
  644. package/.next/static/chunks/13w_6v~nprp8j.js +11 -0
  645. package/.next/static/chunks/14-kkni6ecqaw.js +1 -0
  646. package/.next/static/chunks/{148a9fv~bo0gq.js → 1555iv~_t.1lp.js} +1 -1
  647. package/.next/static/chunks/{04bbme2th8s1_.js → 15ec5~pa1pv_z.js} +1 -1
  648. package/.next/static/chunks/15vc-857cdedi.js +1 -0
  649. package/.next/static/chunks/16zgco6hwlr-n.js +1 -0
  650. package/.next/types/routes.d.ts +5 -1
  651. package/.next/types/validator.ts +36 -0
  652. package/package.json +2 -2
  653. package/.next/server/chunks/ssr/[root-of-the-server]__02idks~._.js +0 -3
  654. package/.next/server/chunks/ssr/[root-of-the-server]__02idks~._.js.map +0 -1
  655. package/.next/server/chunks/ssr/_0-8__9s._.js +0 -3
  656. package/.next/server/chunks/ssr/_0-8__9s._.js.map +0 -1
  657. package/.next/server/chunks/ssr/_0._ysx3._.js.map +0 -1
  658. package/.next/server/chunks/ssr/_0.h-tj4._.js +0 -3
  659. package/.next/server/chunks/ssr/_0.h-tj4._.js.map +0 -1
  660. package/.next/server/chunks/ssr/_02g4o18._.js +0 -3
  661. package/.next/server/chunks/ssr/_02g4o18._.js.map +0 -1
  662. package/.next/server/chunks/ssr/_0463dg_._.js +0 -3
  663. package/.next/server/chunks/ssr/_0463dg_._.js.map +0 -1
  664. package/.next/server/chunks/ssr/_04a42pa._.js +0 -3
  665. package/.next/server/chunks/ssr/_04a42pa._.js.map +0 -1
  666. package/.next/server/chunks/ssr/_04kt9.8._.js +0 -3
  667. package/.next/server/chunks/ssr/_04kt9.8._.js.map +0 -1
  668. package/.next/server/chunks/ssr/_052zlig._.js +0 -3
  669. package/.next/server/chunks/ssr/_052zlig._.js.map +0 -1
  670. package/.next/server/chunks/ssr/_060itkv._.js +0 -3
  671. package/.next/server/chunks/ssr/_060itkv._.js.map +0 -1
  672. package/.next/server/chunks/ssr/_07p0n9g._.js +0 -3
  673. package/.next/server/chunks/ssr/_07p0n9g._.js.map +0 -1
  674. package/.next/server/chunks/ssr/_08mbdt1._.js +0 -3
  675. package/.next/server/chunks/ssr/_08mbdt1._.js.map +0 -1
  676. package/.next/server/chunks/ssr/_08r_qwd._.js +0 -3
  677. package/.next/server/chunks/ssr/_08r_qwd._.js.map +0 -1
  678. package/.next/server/chunks/ssr/_08xk3kp._.js +0 -3
  679. package/.next/server/chunks/ssr/_08xk3kp._.js.map +0 -1
  680. package/.next/server/chunks/ssr/_0938p.1._.js +0 -3
  681. package/.next/server/chunks/ssr/_0938p.1._.js.map +0 -1
  682. package/.next/server/chunks/ssr/_0afdsbz._.js +0 -3
  683. package/.next/server/chunks/ssr/_0afdsbz._.js.map +0 -1
  684. package/.next/server/chunks/ssr/_0ff5qav._.js +0 -3
  685. package/.next/server/chunks/ssr/_0ff5qav._.js.map +0 -1
  686. package/.next/server/chunks/ssr/_0gp8d.p._.js +0 -3
  687. package/.next/server/chunks/ssr/_0gp8d.p._.js.map +0 -1
  688. package/.next/server/chunks/ssr/_0k2j6-t._.js +0 -3
  689. package/.next/server/chunks/ssr/_0k2j6-t._.js.map +0 -1
  690. package/.next/server/chunks/ssr/_0mix09j._.js +0 -3
  691. package/.next/server/chunks/ssr/_0mix09j._.js.map +0 -1
  692. package/.next/server/chunks/ssr/_0mk7dqt._.js +0 -3
  693. package/.next/server/chunks/ssr/_0mk7dqt._.js.map +0 -1
  694. package/.next/server/chunks/ssr/_0n168uk._.js +0 -3
  695. package/.next/server/chunks/ssr/_0n168uk._.js.map +0 -1
  696. package/.next/server/chunks/ssr/_0nwg6lo._.js +0 -3
  697. package/.next/server/chunks/ssr/_0nwg6lo._.js.map +0 -1
  698. package/.next/server/chunks/ssr/_0pwd-nz._.js +0 -3
  699. package/.next/server/chunks/ssr/_0pwd-nz._.js.map +0 -1
  700. package/.next/server/chunks/ssr/_0rspzax._.js +0 -3
  701. package/.next/server/chunks/ssr/_0rspzax._.js.map +0 -1
  702. package/.next/server/chunks/ssr/_0t-2u_i._.js +0 -3
  703. package/.next/server/chunks/ssr/_0t-2u_i._.js.map +0 -1
  704. package/.next/server/chunks/ssr/_0vn5_62._.js +0 -5
  705. package/.next/server/chunks/ssr/_0vn5_62._.js.map +0 -1
  706. package/.next/server/chunks/ssr/_0yiz~s5._.js +0 -3
  707. package/.next/server/chunks/ssr/_0yiz~s5._.js.map +0 -1
  708. package/.next/server/chunks/ssr/_0~4ta0s._.js +0 -3
  709. package/.next/server/chunks/ssr/_0~4ta0s._.js.map +0 -1
  710. package/.next/server/chunks/ssr/_0~5r_8s._.js +0 -3
  711. package/.next/server/chunks/ssr/_0~5r_8s._.js.map +0 -1
  712. package/.next/server/chunks/ssr/_115_o9h._.js +0 -3
  713. package/.next/server/chunks/ssr/_115_o9h._.js.map +0 -1
  714. package/.next/server/chunks/ssr/_13mk_9n._.js +0 -3
  715. package/.next/server/chunks/ssr/_13mk_9n._.js.map +0 -1
  716. package/.next/server/chunks/ssr/packages_dashboard_src_07.4ogy._.js +0 -3
  717. package/.next/server/chunks/ssr/packages_dashboard_src_07.4ogy._.js.map +0 -1
  718. package/.next/static/chunks/00p2fat~wl7uz.js +0 -1
  719. package/.next/static/chunks/07aksg8x5r0d9.js +0 -1
  720. package/.next/static/chunks/082cjr-p4ubw7.js +0 -1
  721. package/.next/static/chunks/09hewwcw-ts34.js +0 -1
  722. package/.next/static/chunks/09j~fmfefj03i.js +0 -1
  723. package/.next/static/chunks/0adfy5uyh_8c8.js +0 -1
  724. package/.next/static/chunks/0agoryx~xvt31.js +0 -1
  725. package/.next/static/chunks/0aoci_z-c0ele.css +0 -1
  726. package/.next/static/chunks/0atsym5j2dgzw.js +0 -1
  727. package/.next/static/chunks/0b3tta7tnnbur.js +0 -1
  728. package/.next/static/chunks/0d02.lqlwe9a_.js +0 -1
  729. package/.next/static/chunks/0eqyosc.qae5n.js +0 -1
  730. package/.next/static/chunks/0kkrrex6qm68-.js +0 -1
  731. package/.next/static/chunks/0lfxqap3b6sar.js +0 -11
  732. package/.next/static/chunks/0ord2b6oqi.3g.js +0 -1
  733. package/.next/static/chunks/0rh-ee9ky1ybq.js +0 -1
  734. package/.next/static/chunks/0t5v~o90gn66f.js +0 -1
  735. package/.next/static/chunks/0vaymprggmdwi.js +0 -3
  736. package/.next/static/chunks/0x2vder5-rzy3.js +0 -1
  737. package/.next/static/chunks/0yk64vsbmwqd8.js +0 -1
  738. package/.next/static/chunks/0yvzj34_7s6kb.js +0 -1
  739. package/.next/static/chunks/104za._t2qmr8.js +0 -1
  740. package/.next/static/chunks/13pe2-ed6nel..js +0 -1
  741. package/.next/static/chunks/13zn61okwjlyn.js +0 -1
  742. package/.next/static/chunks/153hm0-366-at.js +0 -1
  743. package/.next/static/chunks/16k3_-6f7kx97.js +0 -1
  744. package/.next/static/chunks/18904zqns5ncn.js +0 -1
  745. package/.next/trace +0 -2
  746. package/.next/trace-build +0 -1
  747. /package/.next/server/chunks/{[root-of-the-server]__00gp8gz._.js.map → [root-of-the-server]__01knfi.._.js.map} +0 -0
  748. /package/.next/server/chunks/{[root-of-the-server]__0-0wgko._.js.map → [root-of-the-server]__08_s4yo._.js.map} +0 -0
  749. /package/.next/static/{CDXVH-99b-ZdHz0Rd9pr_ → lsV2FU1YUtwJPmeiim7tk}/_buildManifest.js +0 -0
  750. /package/.next/static/{CDXVH-99b-ZdHz0Rd9pr_ → lsV2FU1YUtwJPmeiim7tk}/_clientMiddlewareManifest.js +0 -0
  751. /package/.next/static/{CDXVH-99b-ZdHz0Rd9pr_ → lsV2FU1YUtwJPmeiim7tk}/_ssgManifest.js +0 -0
@@ -0,0 +1,3 @@
1
+ module.exports=[36608,a=>{"use strict";let b=(0,a.i(5423).default)("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);a.s(["Mail",0,b],36608)},30400,a=>{"use strict";var b=a.i(39752),c=a.i(48558);let d=(0,a.i(42261).cva)("rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]",{variants:{tone:{default:"border-border bg-card",warning:"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30",success:"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30",error:"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30"},interactive:{true:"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]",false:""}},defaultVariants:{tone:"default",interactive:!1}});a.s(["Card",0,function({className:a,tone:e,interactive:f,...g}){return(0,b.jsx)("div",{className:(0,c.cn)(d({tone:e,interactive:f}),a),...g})},"CardHeader",0,function({className:a,...d}){return(0,b.jsx)("div",{className:(0,c.cn)("mb-3 flex items-center justify-between",a),...d})},"CardStatLabel",0,function({className:a,...d}){return(0,b.jsx)("h3",{className:(0,c.cn)("text-sm font-medium text-muted-foreground",a),...d})},"CardTitle",0,function({className:a,...d}){return(0,b.jsx)("h3",{className:(0,c.cn)("text-lg font-semibold text-foreground",a),...d})},"CardValue",0,function({className:a,...d}){return(0,b.jsx)("div",{className:(0,c.cn)("text-3xl font-bold text-foreground",a),...d})}])},54506,a=>{"use strict";let b=(0,a.i(5423).default)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);a.s(["Check",0,b],54506)},40091,a=>{"use strict";let b={claude:"Claude Code",codex:"OpenAI Codex",gemini:"Gemini CLI"},c={claude:"Claude",codex:"Codex",gemini:"Gemini"},d={claude:"orange",codex:"pink",gemini:"blue"},e={"routine.morning_routine":"Morning Routine","routine.evening_review":"Evening Review","routine.weekly_review":"Weekly Review","routine.monthly_review":"Monthly Review","routine.hourly_check":"Hourly Check","routine.roadmap_refresh":"Roadmap Refresh","message.dm":"Direct Messages","message.mention":"Mentions","dashboard.chat":"Dashboard Chat","agent.task":"Scheduled Tasks","calendar.change":"Calendar Events",gmail_classify:"Gmail Classification","github.pull_request.review_requested":"GitHub Review Requests","github.assigned":"GitHub Assignments","github.security_alert":"GitHub Security Alerts","github.workflow_run.failed":"GitHub CI Failures","wiki.ingest_url":"Wiki URL Ingest","wiki.compile":"Wiki Compile","wiki.ask":"Wiki Ask"};function f(a){let b;if(!a)return[];try{b=JSON.parse(a)}catch{return[]}if(!b||"object"!=typeof b)return[];let c=[];for(let[a,d]of Object.entries(b))d&&"object"==typeof d&&c.push({modelId:a,inputTokens:"number"==typeof d.inputTokens?d.inputTokens:0,outputTokens:"number"==typeof d.outputTokens?d.outputTokens:0,costUsd:"number"==typeof d.costUsd?d.costUsd:0});return c.sort((a,b)=>b.costUsd-a.costUsd)}function g(a){if(!a)return null;let b=a.toLowerCase();return b.includes("claude")||b.includes("sonnet")||b.includes("opus")||b.includes("haiku")?"claude":b.includes("gemini")?"gemini":b.includes("gpt")||b.includes("codex")||b.includes("o3")||b.includes("o4")?"codex":null}a.s(["BACKEND_BADGE_VARIANTS",0,d,"BACKEND_LABELS",0,b,"BACKEND_PROVIDER_LABELS",0,{claude:"Claude (Anthropic)",codex:"ChatGPT (OpenAI)",gemini:"Gemini (Google)"},"BACKEND_PROVIDER_SHORT",0,{claude:"Claude",codex:"ChatGPT",gemini:"Gemini"},"BACKEND_WEB_SEARCH_DESCRIPTIONS",0,{claude:"Lets the agent call Anthropic's built-in WebSearch tool.",codex:"Lets the agent call OpenAI's web_search tool. Works in safe (sandbox) mode — the tool runs at OpenAI, not as a local shell command.",gemini:"Lets the agent call Gemini's google_web_search tool."},"detectBackendFromModel",0,g,"formatModelName",0,function(a){return a?a.replace(/^claude-/,"Claude ").replace(/^gpt-/,"GPT-").replace(/^gemini-/,"Gemini ").replace(/-/g," ").replace(/\bpreview\b/gi,"(preview)").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\bcodex\b/gi,"Codex").replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\s+/g," ").trim():"Not set"},"formatShortModelName",0,function(a){if(!a)return"unknown";if("opus"===a)return"Opus";if("sonnet"===a)return"Sonnet";let b=a.replace(/-\d{8,}$/,"").replace(/^claude-/,"").replace(/(\d+)-(\d+)(?![-\d])/g,"$1.$2").replace(/-/g," ");return a.startsWith("gpt-")&&(b=`GPT-${b.replace(/^gpt\s*/i,"")}`),a.startsWith("gemini-")&&(b=b.replace(/^gemini\s*/i,"Gemini ")),b.replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\s+/g," ").trim()},"getBackendLabel",0,function(a){return b[a]},"getBackendShortLabel",0,function(a){return c[a]},"getProcessGroup",0,function(a){return a.startsWith("wiki.")?"Wiki":a.startsWith("message.")||a.startsWith("dashboard.")?"Conversation":a.startsWith("routine.")?"Routines":a.startsWith("git.")||a.startsWith("github.")?"Git & GitHub":a.startsWith("calendar.")||"gmail_classify"===a?"Integrations":"Tasks"},"getProcessLabel",0,function(a){return e[a]??a},"modelBadgeVariant",0,function(a){if(!a)return"gray";let b=g(a);return b?d[b]:"gray"},"parseModelUsage",0,f,"pickDisplayModel",0,function(a,b){let c=f(b);return c.length>0&&c[0]?c[0].modelId:a??null}])},39293,a=>{"use strict";let b=(0,a.i(5423).default)("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);a.s(["RefreshCw",0,b],39293)},80196,a=>{"use strict";let b=(0,a.i(5423).default)("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);a.s(["Bot",0,b],80196)},96459,a=>{"use strict";var b=a.i(62588),c=a.i(59974);a.s(["useSetupStatus",0,function(){return(0,b.useQuery)({queryKey:["setup-status"],queryFn:()=>c.api.get("/setup/status"),staleTime:3e4})}])},45663,a=>{"use strict";var b=a.i(62588),c=a.i(59974);a.s(["useMetrics",0,function(a){return(0,b.useQuery)({queryKey:["metrics"],queryFn:()=>c.api.get("/metrics"),refetchInterval:3e4,enabled:a?.enabled??!0})}])},19958,a=>{"use strict";a.s(["EVENT_TYPE_COLORS",0,{"message.received":"blue","routine.morning_routine":"green","routine.evening_review":"green","routine.hourly_check":"teal","scheduled.task":"purple","git.push":"gray","schedule.approaching":"amber"},"RESULT_COLORS",0,{success:"green",failed:"red",partial:"amber",skipped:"gray"}])},16316,a=>{"use strict";var b=a.i(13925),c=a.i(59974);a.s(["useEvents",0,function(a,d){return(0,b.useInfiniteQuery)({queryKey:["events",a],queryFn:({pageParam:b=1})=>c.api.get("/events",{page:b,limit:50,type:a?.type,result:a?.result,days:a?.days}),getNextPageParam:a=>a.pagination.page<a.pagination.totalPages?a.pagination.page+1:void 0,initialPageParam:1,enabled:d?.enabled})}])},55522,5260,a=>{"use strict";var b=a.i(62588),c=a.i(59974);a.s(["useCost",0,function(a="daily",d){return(0,b.useQuery)({queryKey:["cost",a],queryFn:()=>c.api.get("/cost",{period:a}),refetchInterval:6e4,enabled:d?.enabled??!0})}],55522);var d=a.i(39752);a.s(["Sparkline",0,function({values:a,color:b,width:c=80,height:e=24,ariaLabel:f}){if(a.length<2)return null;let g=a.filter(a=>null!==a);if(0===g.length)return null;let h=Math.max(...g,1),i=c/(a.length-1),j=[[]];return a.forEach((a,b)=>{if(null===a){j[j.length-1].length>0&&j.push([]);return}j[j.length-1].push({x:b*i,y:e-a/h*(e-4)-2})}),(0,d.jsxs)("svg",{width:c,height:e,className:"mt-2",role:"img","aria-label":f??"sparkline",children:[j.filter(a=>a.length>=2).map((a,c)=>(0,d.jsx)("polyline",{points:a.map(a=>`${a.x},${a.y}`).join(" "),fill:"none",stroke:b,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},`l${c}`)),j.filter(a=>1===a.length).map((a,c)=>(0,d.jsx)("circle",{cx:a[0].x,cy:a[0].y,r:"1.5",fill:b},`d${c}`))]})}],5260)},38375,a=>{"use strict";var b=a.i(62588),c=a.i(8753),d=a.i(81130),e=a.i(59974);a.s(["useBookHighlights",0,function(a,c){return(0,b.useQuery)({queryKey:["book-highlights",a,c],queryFn:()=>e.api.get(`/books/${a}/highlights`,{limit:c??100}),enabled:null!==a,staleTime:3e4})},"useBooks",0,function(a){return(0,b.useQuery)({queryKey:["books",a],queryFn:()=>e.api.get("/books",{status:a?.status??"all",source:a?.source??"all",limit:a?.limit??50,offset:a?.offset??0}),staleTime:3e4})},"useBooksSummary",0,function(a){return(0,b.useQuery)({queryKey:["books-summary",a],queryFn:()=>e.api.get("/books/summary",{months:a??12}),staleTime:6e4})},"useImportClippings",0,function(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:({data:a})=>e.api.post("/books/import-clippings",{data:a}),onSuccess:()=>{a.invalidateQueries({queryKey:["books"]}),a.invalidateQueries({queryKey:["book-highlights"]}),a.invalidateQueries({queryKey:["books-summary"]})}})}])},13925,a=>{"use strict";var b=a.i(70981),c=a.i(76584),d=class extends b.QueryObserver{constructor(a,b){super(a,b)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(a){super.setOptions({...a,behavior:(0,c.infiniteQueryBehavior)()})}getOptimisticResult(a){return a.behavior=(0,c.infiniteQueryBehavior)(),super.getOptimisticResult(a)}fetchNextPage(a){return this.fetch({...a,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(a){return this.fetch({...a,meta:{fetchMore:{direction:"backward"}}})}createResult(a,b){let{state:d}=a,e=super.createResult(a,b),{isFetching:f,isRefetching:g,isError:h,isRefetchError:i}=e,j=d.fetchMeta?.fetchMore?.direction,k=h&&"forward"===j,l=f&&"forward"===j,m=h&&"backward"===j,n=f&&"backward"===j;return{...e,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:(0,c.hasNextPage)(b,d.data),hasPreviousPage:(0,c.hasPreviousPage)(b,d.data),isFetchNextPageError:k,isFetchingNextPage:l,isFetchPreviousPageError:m,isFetchingPreviousPage:n,isRefetchError:i&&!k&&!m,isRefetching:g&&!l&&!n}}},e=a.i(62149);a.s(["useInfiniteQuery",0,function(a,b){return(0,e.useBaseQuery)(a,d,b)}],13925)},41010,a=>{"use strict";var b=a.i(39752),c=a.i(91092),d=a.i(92241),e=a.i(21218),f=a.i(48558);function g(){return(0,b.jsx)("div",{className:"flex items-center justify-center py-16",children:(0,b.jsx)(d.Loader2,{className:"h-6 w-6 animate-spin text-muted-foreground"})})}function h({error:a,onRetry:d}){return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center gap-3 py-16",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-destructive",children:[(0,b.jsx)(c.AlertCircle,{className:"h-5 w-5"}),(0,b.jsx)("p",{className:"text-sm font-medium",children:"Failed to load data"})]}),a?.message&&(0,b.jsx)("p",{className:"max-w-md text-center text-xs text-muted-foreground",children:a.message}),d&&(0,b.jsx)(e.Button,{variant:"outline",size:"sm",onClick:d,children:"Retry"})]})}a.s(["CardSkeleton",0,function({count:a=3}){return(0,b.jsx)("div",{className:(0,f.cn)("grid gap-4",a<=2?"grid-cols-1 md:grid-cols-2":4===a?"grid-cols-2 md:grid-cols-4":"grid-cols-1 md:grid-cols-3"),children:Array.from({length:a}).map((a,c)=>(0,b.jsx)("div",{className:"h-28 animate-pulse rounded-xl border border-border bg-muted/30"},c))})},"QueryResult",0,function({isLoading:a,isError:c,error:d,onRetry:e,skeleton:i,className:j,children:k}){return a?(0,b.jsx)("div",{className:(0,f.cn)(j),children:i??(0,b.jsx)(g,{})}):c?(0,b.jsx)("div",{className:(0,f.cn)(j),children:(0,b.jsx)(h,{error:d,onRetry:e})}):(0,b.jsx)(b.Fragment,{children:k})},"TableSkeleton",0,function({rows:a=5}){return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("div",{className:"h-10 animate-pulse rounded-lg bg-muted/40"}),Array.from({length:a}).map((a,c)=>(0,b.jsx)("div",{className:"h-12 animate-pulse rounded-lg bg-muted/20"},c))]})}])},40294,93929,a=>{"use strict";var b=a.i(34542),c=a.i(81130),d=a.i(59974);a.s(["useRegenerate",0,function(){let[a,e]=(0,b.useState)(null),[f,g]=(0,b.useState)("idle"),[h,i]=(0,b.useState)(null),j=(0,c.useQueryClient)(),k=(0,b.useRef)(null),l=(0,b.useRef)(null),m=(0,b.useRef)(0);(0,b.useEffect)(()=>()=>{k.current&&clearInterval(k.current)},[]);let n=(0,b.useCallback)(()=>{k.current&&(clearInterval(k.current),k.current=null)},[]);return{regenerate:(0,b.useCallback)(async a=>{if("triggered"===f||"running"===f)return;e(a),g("triggered"),i(null),m.current=Date.now();let b=await d.api.get(`/context/${a}`).catch(()=>null);l.current=b?.lastModified??null;try{await d.api.post("/agent/regenerate",{target:a}),g("running"),k.current=setInterval(async()=>{if(Date.now()-m.current>3e5){n(),g("error"),i("Timeout — agent may still be processing");return}try{let b=await d.api.get(`/context/${a}`);(null===l.current||b.lastModified!==l.current)&&(n(),g("done"),j.invalidateQueries({queryKey:["context",a]}),j.invalidateQueries({queryKey:["calendar"]}),setTimeout(()=>{g("idle"),e(null)},5e3))}catch{}},3e3)}catch(a){g("error"),i(a instanceof Error?a.message:"Failed to trigger")}},[f,j,n]),target:a,status:f,error:h,dismiss:(0,b.useCallback)(()=>{n(),g("idle"),e(null),i(null)},[n])}}],40294);var e=a.i(39752),f=a.i(21218),g=a.i(48558),h=a.i(39293),i=a.i(54506),j=a.i(91092),k=a.i(92241);a.s(["RegenerateButton",0,function({target:a,label:b,currentTarget:c,status:d,error:l,onRegenerate:m,onDismiss:n,variant:o="outline",size:p="sm",className:q}){let r=c===a;return r&&"done"===d?(0,e.jsxs)(f.Button,{variant:o,size:p,className:(0,g.cn)("text-emerald-600 dark:text-emerald-400",q),onClick:n,children:[(0,e.jsx)(i.Check,{className:"h-3.5 w-3.5 mr-1.5"}),"Updated"]}):r&&"error"===d?(0,e.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,e.jsxs)(f.Button,{variant:o,size:p,className:(0,g.cn)("text-red-600 dark:text-red-400",q),onClick:n,children:[(0,e.jsx)(j.AlertCircle,{className:"h-3.5 w-3.5 mr-1.5"}),"Failed"]}),l&&(0,e.jsx)("span",{className:"text-xs text-red-600 dark:text-red-400 max-w-48 truncate",children:l})]}):(0,e.jsxs)(f.Button,{variant:o,size:p,onClick:()=>m(a),disabled:"triggered"===d||"running"===d,className:q,children:[r&&"idle"!==d?(0,e.jsx)(k.Loader2,{className:"h-3.5 w-3.5 mr-1.5 animate-spin"}):(0,e.jsx)(h.RefreshCw,{className:"h-3.5 w-3.5 mr-1.5"}),r&&"triggered"===d?"Triggering...":r&&"running"===d?"Running...":b]})}],93929)},75674,a=>{"use strict";var b=a.i(62588),c=a.i(59974);a.s(["useScheduleNext",0,function(){return(0,b.useQuery)({queryKey:["schedule-next"],queryFn:()=>c.api.get("/schedule/next"),refetchInterval:3e4})}])}];
2
+
3
+ //# sourceMappingURL=_03u6ja0._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/mail.ts","../../../../../../packages/dashboard/src/components/ui/card.tsx","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/check.ts","../../../../../../packages/dashboard/src/lib/backend-ui.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/refresh-cw.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/bot.ts","../../../../../../packages/dashboard/src/lib/hooks/use-setup-status.ts","../../../../../../packages/dashboard/src/lib/hooks/use-metrics.ts","../../../../../../packages/dashboard/src/lib/constants.ts","../../../../../../packages/dashboard/src/lib/hooks/use-events.ts","../../../../../../packages/dashboard/src/lib/hooks/use-cost.ts","../../../../../../packages/dashboard/src/components/metrics/sparkline.tsx","../../../../../../packages/dashboard/src/lib/hooks/use-books.ts","../../../../../../node_modules/.pnpm/%40tanstack%2Bquery-core%405.96.2/node_modules/%40tanstack/query-core/build/modern/infiniteQueryObserver.js","../../../../../../node_modules/.pnpm/%40tanstack%2Breact-query%405.96.2_react%4019.2.4/node_modules/%40tanstack/react-query/build/modern/useInfiniteQuery.js","../../../../../../packages/dashboard/src/components/shared/query-result.tsx","../../../../../../packages/dashboard/src/lib/hooks/use-regenerate.ts","../../../../../../packages/dashboard/src/components/regenerate-button.tsx","../../../../../../packages/dashboard/src/lib/hooks/use-schedule-next.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Mail\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHg9IjIiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/mail\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 Mail = createLucideIcon('Mail', [\n ['rect', { width: '20', height: '16', x: '2', y: '4', rx: '2', key: '18n3k1' }],\n ['path', { d: 'm22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7', key: '1ocrg3' }],\n]);\n\nexport default Mail;\n","import { cn } from \"@/lib/utils\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\nimport type { HTMLAttributes } from \"react\";\n\nconst cardVariants = cva(\n \"rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]\",\n {\n variants: {\n tone: {\n default: \"border-border bg-card\",\n warning:\n \"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30\",\n success:\n \"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30\",\n error:\n \"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30\",\n },\n interactive: {\n true: \"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]\",\n false: \"\",\n },\n },\n defaultVariants: { tone: \"default\", interactive: false },\n },\n);\n\nexport interface CardProps\n extends HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof cardVariants> {}\n\nexport function Card({ className, tone, interactive, ...props }: CardProps) {\n return (\n <div className={cn(cardVariants({ tone, interactive }), className)} {...props} />\n );\n}\n\nexport function CardHeader({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"mb-3 flex items-center justify-between\", className)} {...props} />;\n}\n\nexport function CardTitle({ className, ...props }: HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h3\n className={cn(\"text-lg font-semibold text-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport function CardStatLabel({\n className,\n ...props\n}: HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h3\n className={cn(\"text-sm font-medium text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport function CardValue({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"text-3xl font-bold text-foreground\", className)} {...props} />;\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Check\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgNiA5IDE3bC01LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Check = createLucideIcon('Check', [['path', { d: 'M20 6 9 17l-5-5', key: '1gmf2c' }]]);\n\nexport default Check;\n","import type { BackendId } from \"@aitne/shared\";\n\nexport const BACKEND_LABELS: Record<BackendId, string> = {\n claude: \"Claude Code\",\n codex: \"OpenAI Codex\",\n gemini: \"Gemini CLI\",\n};\n\nconst BACKEND_SHORT_LABELS: Record<BackendId, string> = {\n claude: \"Claude\",\n codex: \"Codex\",\n gemini: \"Gemini\",\n};\n\n/**\n * Provider-friendly labels for backend / API-key UIs. Users think in\n * terms of \"I have an Anthropic API key\", not \"I have a Claude Code\n * API key\" — so surfaces that name the upstream provider (setup\n * wizard backend step, /settings/models API-key panel) should prefer\n * this set over BACKEND_LABELS (which names the CLI product).\n */\nexport const BACKEND_PROVIDER_LABELS: Record<BackendId, string> = {\n claude: \"Claude (Anthropic)\",\n codex: \"ChatGPT (OpenAI)\",\n gemini: \"Gemini (Google)\",\n};\n\n/** Short provider name used in compact badges (e.g. \"ChatGPT\" not \"OpenAI Codex\"). */\nexport const BACKEND_PROVIDER_SHORT: Record<BackendId, string> = {\n claude: \"Claude\",\n codex: \"ChatGPT\",\n gemini: \"Gemini\",\n};\n\n/**\n * Per-backend description of the web-search toggle on `/settings/models`.\n * Each backend wires to a different upstream surface, so the hint names\n * that surface so the user knows what they are turning on.\n *\n * - Claude: SDK-native `WebSearch` tool, gated by allowedTools.\n * - Codex: OpenAI Responses-API `web_search` tool, enabled per-spawn via\n * `-c tools.web_search=true`. Works under the workspace-write sandbox\n * because the tool runs server-side at OpenAI — no sandbox bypass\n * required.\n * - Gemini: `google_web_search` tool, allowed via the per-session admin\n * policy TOML.\n */\nexport const BACKEND_WEB_SEARCH_DESCRIPTIONS: Record<BackendId, string> = {\n claude: \"Lets the agent call Anthropic's built-in WebSearch tool.\",\n codex:\n \"Lets the agent call OpenAI's web_search tool. Works in safe (sandbox) mode — the tool runs at OpenAI, not as a local shell command.\",\n gemini: \"Lets the agent call Gemini's google_web_search tool.\",\n};\n\n/**\n * Primary brand color per backend, chosen to match each vendor's actual\n * app-icon hue so charts read as \"that's the Claude backend\" at a glance.\n * - Claude — the warm red-orange of the Anthropic macOS icon.\n * - Codex (ChatGPT) — ChatGPT's icon is white, so we use a bright\n * pink-leaning fuchsia (slightly purple-tinted pink).\n * - Gemini — the vivid Google Blue anchoring the Gemini spark gradient.\n */\nexport const BACKEND_COLORS: Record<BackendId, string> = {\n claude: \"#E15B40\", // Anthropic app-icon red-orange\n codex: \"#D946EF\", // bright fuchsia (pink with purple tint)\n gemini: \"#1C69FF\", // vivid Google Blue\n};\n\n/**\n * A small palette of distinct shades per backend family. Used to\n * differentiate individual models within the same backend on charts\n * like the Model Breakdown pie — the eye can still group Claude/Codex/\n * Gemini by hue family, but each model gets its own readable shade.\n *\n * Each palette is ordered dark→light and contains the primary brand\n * color in the middle, so a single-model render picks the brand color\n * and small groups (2–4 models) get colors spread across the palette\n * via `assignModelColors` for maximum contrast.\n */\nexport const BACKEND_MODEL_PALETTES: Record<BackendId, string[]> = {\n // Anthropic red-orange / coral family.\n claude: [\"#7C2D12\", \"#B54B2D\", \"#E15B40\", \"#F97316\", \"#FDBA74\"],\n // OpenAI-ish pink-purple / fuchsia family.\n codex: [\"#86198F\", \"#A21CAF\", \"#D946EF\", \"#E879F9\", \"#F5D0FE\"],\n // Google blue family.\n gemini: [\"#1E3A8A\", \"#1D4ED8\", \"#1C69FF\", \"#60A5FA\", \"#93C5FD\"],\n};\n\nconst OTHER_MODEL_PALETTE = [\"#6b7280\", \"#9ca3af\", \"#4b5563\", \"#374151\"];\n\n/**\n * Qualitative palette for categorical charts (e.g. event-type breakdown)\n * where bars have no intrinsic backend affiliation but should be visually\n * distinguishable from each other.\n */\nexport const CHART_CATEGORY_PALETTE: string[] = [\n \"#3b82f6\", // blue\n \"#10b981\", // emerald\n \"#f59e0b\", // amber\n \"#8b5cf6\", // violet\n \"#ec4899\", // pink\n \"#14b8a6\", // teal\n \"#f97316\", // orange\n \"#6366f1\", // indigo\n \"#ef4444\", // red\n \"#22c55e\", // green\n];\n\nexport const BACKEND_BADGE_VARIANTS: Record<BackendId, \"orange\" | \"pink\" | \"blue\"> = {\n claude: \"orange\",\n codex: \"pink\",\n gemini: \"blue\",\n};\n\nconst PROCESS_LABELS: Record<string, string> = {\n \"routine.morning_routine\": \"Morning Routine\",\n \"routine.evening_review\": \"Evening Review\",\n \"routine.weekly_review\": \"Weekly Review\",\n \"routine.monthly_review\": \"Monthly Review\",\n \"routine.hourly_check\": \"Hourly Check\",\n \"routine.roadmap_refresh\": \"Roadmap Refresh\",\n \"message.dm\": \"Direct Messages\",\n \"message.mention\": \"Mentions\",\n \"dashboard.chat\": \"Dashboard Chat\",\n \"agent.task\": \"Scheduled Tasks\",\n \"calendar.change\": \"Calendar Events\",\n \"gmail_classify\": \"Gmail Classification\",\n \"github.pull_request.review_requested\": \"GitHub Review Requests\",\n \"github.assigned\": \"GitHub Assignments\",\n \"github.security_alert\": \"GitHub Security Alerts\",\n \"github.workflow_run.failed\": \"GitHub CI Failures\",\n \"wiki.ingest_url\": \"Wiki URL Ingest\",\n \"wiki.compile\": \"Wiki Compile\",\n \"wiki.ask\": \"Wiki Ask\",\n};\n\nexport function getBackendLabel(backendId: BackendId): string {\n return BACKEND_LABELS[backendId];\n}\n\nexport function getBackendShortLabel(backendId: BackendId): string {\n return BACKEND_SHORT_LABELS[backendId];\n}\n\nexport function getProcessLabel(processKey: string): string {\n return PROCESS_LABELS[processKey] ?? processKey;\n}\n\nexport function getProcessGroup(processKey: string): string {\n if (processKey.startsWith(\"wiki.\")) return \"Wiki\";\n if (processKey.startsWith(\"message.\") || processKey.startsWith(\"dashboard.\")) {\n return \"Conversation\";\n }\n if (processKey.startsWith(\"routine.\")) return \"Routines\";\n if (processKey.startsWith(\"git.\") || processKey.startsWith(\"github.\")) {\n return \"Git & GitHub\";\n }\n if (processKey.startsWith(\"calendar.\") || processKey === \"gmail_classify\") {\n return \"Integrations\";\n }\n return \"Tasks\";\n}\n\nexport function formatModelName(modelId: string | null | undefined): string {\n if (!modelId) return \"Not set\";\n\n return modelId\n .replace(/^claude-/, \"Claude \")\n .replace(/^gpt-/, \"GPT-\")\n .replace(/^gemini-/, \"Gemini \")\n .replace(/-/g, \" \")\n .replace(/\\bpreview\\b/gi, \"(preview)\")\n .replace(/\\bpro\\b/gi, \"Pro\")\n .replace(/\\bflash\\b/gi, \"Flash\")\n .replace(/\\blite\\b/gi, \"Lite\")\n .replace(/\\bmini\\b/gi, \"Mini\")\n .replace(/\\bcodex\\b/gi, \"Codex\")\n .replace(/\\bopus\\b/gi, \"Opus\")\n .replace(/\\bsonnet\\b/gi, \"Sonnet\")\n .replace(/\\bhaiku\\b/gi, \"Haiku\")\n .replace(/\\s+/g, \" \")\n .trim();\n}\n\n/**\n * Compact model label for badge display (e.g. \"Opus 4.7\", \"GPT-5.5\").\n * Handles both legacy short forms (\"opus\") and full IDs (\"claude-opus-4-6\").\n */\nexport function formatShortModelName(modelId: string | null | undefined): string {\n if (!modelId) return \"unknown\";\n\n // Legacy short forms from old DB rows\n if (modelId === \"opus\") return \"Opus\";\n if (modelId === \"sonnet\") return \"Sonnet\";\n\n let s = modelId\n .replace(/-\\d{8,}$/, \"\") // drop date suffix (e.g. -20251001)\n .replace(/^claude-/, \"\") // \"claude-opus-4-6\" → \"opus-4-6\"\n .replace(/(\\d+)-(\\d+)(?![-\\d])/g, \"$1.$2\") // version: \"4-6\" → \"4.6\"\n .replace(/-/g, \" \"); // remaining dashes → spaces\n\n // Apply prefix branding after dashes are resolved\n if (modelId.startsWith(\"gpt-\")) s = `GPT-${s.replace(/^gpt\\s*/i, \"\")}`;\n if (modelId.startsWith(\"gemini-\")) s = s.replace(/^gemini\\s*/i, \"Gemini \");\n\n return s\n .replace(/\\bopus\\b/gi, \"Opus\")\n .replace(/\\bsonnet\\b/gi, \"Sonnet\")\n .replace(/\\bhaiku\\b/gi, \"Haiku\")\n .replace(/\\bpro\\b/gi, \"Pro\")\n .replace(/\\bflash\\b/gi, \"Flash\")\n .replace(/\\blite\\b/gi, \"Lite\")\n .replace(/\\bmini\\b/gi, \"Mini\")\n .replace(/\\s+/g, \" \")\n .trim();\n}\n\n/** Badge variant for a model string, resolved via backend detection. */\nexport function modelBadgeVariant(modelId: string | null | undefined): \"orange\" | \"pink\" | \"blue\" | \"gray\" {\n if (!modelId) return \"gray\";\n const backend = detectBackendFromModel(modelId);\n return backend ? BACKEND_BADGE_VARIANTS[backend] : \"gray\";\n}\n\n/**\n * Parsed entry from `agent_actions.model_usage_json` — what the SDK actually\n * billed per underlying model. The SDK can silently route a request for one\n * model to a sibling (e.g. opus-4-7 → opus-4-6[1m]); this struct surfaces\n * that, so the dashboard can show the real model and matching cost.\n */\nexport interface BilledModelEntry {\n modelId: string;\n inputTokens: number;\n outputTokens: number;\n costUsd: number;\n}\n\n/**\n * Parse the JSON-encoded modelUsage map. Returns entries sorted by costUsd\n * desc so the dominant model is first (the one a single-row badge should\n * use). Returns an empty array on malformed input.\n */\nexport function parseModelUsage(json: string | null | undefined): BilledModelEntry[] {\n if (!json) return [];\n let raw: unknown;\n try {\n raw = JSON.parse(json);\n } catch {\n return [];\n }\n if (!raw || typeof raw !== \"object\") return [];\n\n const entries: BilledModelEntry[] = [];\n for (const [modelId, value] of Object.entries(raw)) {\n if (!value || typeof value !== \"object\") continue;\n const v = value as Record<string, unknown>;\n entries.push({\n modelId,\n inputTokens: typeof v.inputTokens === \"number\" ? v.inputTokens : 0,\n outputTokens: typeof v.outputTokens === \"number\" ? v.outputTokens : 0,\n costUsd: typeof v.costUsd === \"number\" ? v.costUsd : 0,\n });\n }\n return entries.sort((a, b) => b.costUsd - a.costUsd);\n}\n\n/**\n * Return the model id the dashboard should badge for a row. Prefers the\n * dominant entry from `model_usage_json` (the SDK-billed model — what\n * actually drove the cost). Falls back to `model_used` (the requested\n * model) when modelUsage is missing or empty.\n */\nexport function pickDisplayModel(\n modelUsed: string | null | undefined,\n modelUsageJson: string | null | undefined,\n): string | null {\n const entries = parseModelUsage(modelUsageJson);\n if (entries.length > 0 && entries[0]) {\n return entries[0].modelId;\n }\n return modelUsed ?? null;\n}\n\nexport function detectBackendFromModel(modelId: string): BackendId | null {\n if (!modelId) return null;\n const lower = modelId.toLowerCase();\n if (\n lower.includes(\"claude\") ||\n lower.includes(\"sonnet\") ||\n lower.includes(\"opus\") ||\n lower.includes(\"haiku\")\n ) {\n return \"claude\";\n }\n if (lower.includes(\"gemini\")) return \"gemini\";\n if (\n lower.includes(\"gpt\") ||\n lower.includes(\"codex\") ||\n lower.includes(\"o3\") ||\n lower.includes(\"o4\")\n ) {\n return \"codex\";\n }\n return null;\n}\n\n/**\n * Assign a distinct color to each model. Models are grouped by backend\n * and sorted by name for stable assignment across renders; within each\n * group, colors are spread across `BACKEND_MODEL_PALETTES` so that small\n * groups (e.g. 2 Claude models) use non-adjacent palette slots and read\n * as clearly different shades, rather than two neighbouring darks.\n *\n * - 1 model → the brand-color slot (palette midpoint)\n * - 2 models → slots at ~1/4 and ~3/4 of the palette (dark + light)\n * - 3 models → evenly spaced across the palette\n * - 4+ models → spread evenly, wrapping if the group exceeds the palette\n */\nexport function assignModelColors(models: string[]): Record<string, string> {\n const byBackend = new Map<BackendId | \"other\", string[]>();\n for (const model of models) {\n if (!model) continue;\n const backend = detectBackendFromModel(model) ?? \"other\";\n const bucket = byBackend.get(backend) ?? [];\n bucket.push(model);\n byBackend.set(backend, bucket);\n }\n\n const result: Record<string, string> = {};\n for (const [backend, list] of byBackend) {\n list.sort((a, b) => a.localeCompare(b));\n const palette =\n backend === \"other\" ? OTHER_MODEL_PALETTE : BACKEND_MODEL_PALETTES[backend];\n const n = list.length;\n list.forEach((model, i) => {\n let idx: number;\n if (n >= palette.length) {\n // Group larger than the palette — wrap around.\n idx = i % palette.length;\n } else if (n === 1) {\n // Single model → use the brand-color slot (palette midpoint).\n idx = Math.floor(palette.length / 2);\n } else {\n // Small group → spread across the palette so shades are distinct.\n idx = Math.floor(((i + 0.5) * palette.length) / n);\n }\n result[model] = palette[idx]!;\n });\n }\n return result;\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name RefreshCw\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAwIDEgOS05IDkuNzUgOS43NSAwIDAgMSA2Ljc0IDIuNzRMMjEgOCIgLz4KICA8cGF0aCBkPSJNMjEgM3Y1aC01IiAvPgogIDxwYXRoIGQ9Ik0yMSAxMmE5IDkgMCAwIDEtOSA5IDkuNzUgOS43NSAwIDAgMS02Ljc0LTIuNzRMMyAxNiIgLz4KICA8cGF0aCBkPSJNOCAxNkgzdjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/refresh-cw\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst RefreshCw = createLucideIcon('RefreshCw', [\n ['path', { d: 'M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8', key: 'v9h5vc' }],\n ['path', { d: 'M21 3v5h-5', key: '1q7to0' }],\n ['path', { d: 'M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16', key: '3uifl3' }],\n ['path', { d: 'M8 16H3v5', key: '1cv678' }],\n]);\n\nexport default RefreshCw;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Bot\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgOFY0SDgiIC8+CiAgPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjEyIiB4PSI0IiB5PSI4IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMiAxNGgyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxNGgyIiAvPgogIDxwYXRoIGQ9Ik0xNSAxM3YyIiAvPgogIDxwYXRoIGQ9Ik05IDEzdjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bot\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Bot = createLucideIcon('Bot', [\n ['path', { d: 'M12 8V4H8', key: 'hb8ula' }],\n ['rect', { width: '16', height: '12', x: '4', y: '8', rx: '2', key: 'enze0r' }],\n ['path', { d: 'M2 14h2', key: 'vft8re' }],\n ['path', { d: 'M20 14h2', key: '4cs60a' }],\n ['path', { d: 'M15 13v2', key: '1xurst' }],\n ['path', { d: 'M9 13v2', key: 'rq6x2g' }],\n]);\n\nexport default Bot;\n","\"use client\";\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { api } from \"@/lib/api-client\";\n\ninterface SetupStatus {\n needsSetup: boolean;\n completedAt: string | null;\n}\n\nexport function useSetupStatus() {\n return useQuery({\n queryKey: [\"setup-status\"],\n queryFn: () => api.get<SetupStatus>(\"/setup/status\"),\n staleTime: 30_000,\n });\n}\n","\"use client\";\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { api } from \"@/lib/api-client\";\nimport type { MetricsResponse } from \"@/lib/api-types\";\n\nexport function useMetrics(options?: { enabled?: boolean }) {\n return useQuery({\n queryKey: [\"metrics\"],\n queryFn: () => api.get<MetricsResponse>(\"/metrics\"),\n refetchInterval: 30_000,\n enabled: options?.enabled ?? true,\n });\n}\n","export const EVENT_TYPE_COLORS: Record<string, string> = {\n \"message.received\": \"blue\",\n \"routine.morning_routine\": \"green\",\n \"routine.evening_review\": \"green\",\n \"routine.hourly_check\": \"teal\",\n \"scheduled.task\": \"purple\",\n \"git.push\": \"gray\",\n \"schedule.approaching\": \"amber\",\n};\n\nexport const RESULT_COLORS: Record<string, string> = {\n success: \"green\",\n failed: \"red\",\n partial: \"amber\",\n skipped: \"gray\",\n};\n\n","\"use client\";\n\nimport { useInfiniteQuery } from \"@tanstack/react-query\";\nimport { api } from \"@/lib/api-client\";\nimport type { EventsResponse } from \"@/lib/api-types\";\n\nexport function useEvents(\n filters?: { type?: string; result?: string; days?: string },\n options?: { enabled?: boolean },\n) {\n return useInfiniteQuery({\n queryKey: [\"events\", filters],\n queryFn: ({ pageParam = 1 }) =>\n api.get<EventsResponse>(\"/events\", {\n page: pageParam,\n limit: 50,\n type: filters?.type,\n result: filters?.result,\n days: filters?.days,\n }),\n getNextPageParam: (lastPage) =>\n lastPage.pagination.page < lastPage.pagination.totalPages\n ? lastPage.pagination.page + 1\n : undefined,\n initialPageParam: 1,\n enabled: options?.enabled,\n });\n}\n","\"use client\";\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { api } from \"@/lib/api-client\";\nimport type { CostResponse } from \"@/lib/api-types\";\n\nexport function useCost(period: string = \"daily\", options?: { enabled?: boolean }) {\n return useQuery({\n queryKey: [\"cost\", period],\n queryFn: () => api.get<CostResponse>(\"/cost\", { period }),\n refetchInterval: 60_000,\n enabled: options?.enabled ?? true,\n });\n}\n","\"use client\";\n\ninterface SparklineProps {\n values: Array<number | null>;\n color: string;\n width?: number;\n height?: number;\n ariaLabel?: string;\n}\n\ninterface Point {\n x: number;\n y: number;\n}\n\nexport function Sparkline({\n values,\n color,\n width = 80,\n height = 24,\n ariaLabel,\n}: SparklineProps) {\n // Need at least 2 positions to show a trend; a single bucket (Today view)\n // has no trend to draw, so bail rather than render a clipped half-circle\n // at x=0.\n if (values.length < 2) return null;\n const present = values.filter((v): v is number => v !== null);\n if (present.length === 0) return null;\n\n const max = Math.max(...present, 1);\n const step = width / (values.length - 1);\n\n // Split into consecutive non-null segments so gaps read as \"no data\",\n // not \"zero\". Isolated 1-point segments render as dots.\n const segments: Point[][] = [[]];\n values.forEach((v, i) => {\n if (v === null) {\n if (segments[segments.length - 1].length > 0) segments.push([]);\n return;\n }\n segments[segments.length - 1].push({\n x: i * step,\n y: height - (v / max) * (height - 4) - 2,\n });\n });\n\n return (\n <svg\n width={width}\n height={height}\n className=\"mt-2\"\n role=\"img\"\n aria-label={ariaLabel ?? \"sparkline\"}\n >\n {segments\n .filter((s) => s.length >= 2)\n .map((s, idx) => (\n <polyline\n key={`l${idx}`}\n points={s.map((p) => `${p.x},${p.y}`).join(\" \")}\n fill=\"none\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n ))}\n {segments\n .filter((s) => s.length === 1)\n .map((s, idx) => (\n <circle key={`d${idx}`} cx={s[0].x} cy={s[0].y} r=\"1.5\" fill={color} />\n ))}\n </svg>\n );\n}\n","\"use client\";\n\nimport { useQuery, useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { api } from \"@/lib/api-client\";\nimport type {\n BooksResponse,\n BookHighlightsResponse,\n BooksSummaryResponse,\n} from \"@/lib/api-types\";\n\nexport function useBooks(filters?: {\n status?: string;\n source?: string;\n limit?: number;\n offset?: number;\n}) {\n return useQuery({\n queryKey: [\"books\", filters],\n queryFn: () =>\n api.get<BooksResponse>(\"/books\", {\n status: filters?.status ?? \"all\",\n source: filters?.source ?? \"all\",\n limit: filters?.limit ?? 50,\n offset: filters?.offset ?? 0,\n }),\n staleTime: 30_000,\n });\n}\n\nexport function useBookHighlights(bookId: number | null, limit?: number) {\n return useQuery({\n queryKey: [\"book-highlights\", bookId, limit],\n queryFn: () =>\n api.get<BookHighlightsResponse>(`/books/${bookId}/highlights`, {\n limit: limit ?? 100,\n }),\n enabled: bookId !== null,\n staleTime: 30_000,\n });\n}\n\nexport function useBooksSummary(months?: number) {\n return useQuery({\n queryKey: [\"books-summary\", months],\n queryFn: () =>\n api.get<BooksSummaryResponse>(\"/books/summary\", {\n months: months ?? 12,\n }),\n staleTime: 60_000,\n });\n}\n\nexport function usePatchBook() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({\n id,\n ...body\n }: {\n id: number;\n status?: string;\n rating?: number;\n notes?: string;\n }) => api.patch(`/books/${id}`, body),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: [\"books\"] });\n queryClient.invalidateQueries({ queryKey: [\"books-summary\"] });\n },\n });\n}\n\nexport function useImportClippings() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({ data }: { data: string }) =>\n api.post(\"/books/import-clippings\", { data }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: [\"books\"] });\n queryClient.invalidateQueries({ queryKey: [\"book-highlights\"] });\n queryClient.invalidateQueries({ queryKey: [\"books-summary\"] });\n },\n });\n}\n","// src/infiniteQueryObserver.ts\nimport { QueryObserver } from \"./queryObserver.js\";\nimport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n} from \"./infiniteQueryBehavior.js\";\nvar InfiniteQueryObserver = class extends QueryObserver {\n constructor(client, options) {\n super(client, options);\n }\n bindMethods() {\n super.bindMethods();\n this.fetchNextPage = this.fetchNextPage.bind(this);\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this);\n }\n setOptions(options) {\n super.setOptions({\n ...options,\n behavior: infiniteQueryBehavior()\n });\n }\n getOptimisticResult(options) {\n options.behavior = infiniteQueryBehavior();\n return super.getOptimisticResult(options);\n }\n fetchNextPage(options) {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: \"forward\" }\n }\n });\n }\n fetchPreviousPage(options) {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: \"backward\" }\n }\n });\n }\n createResult(query, options) {\n const { state } = query;\n const parentResult = super.createResult(query, options);\n const { isFetching, isRefetching, isError, isRefetchError } = parentResult;\n const fetchDirection = state.fetchMeta?.fetchMore?.direction;\n const isFetchNextPageError = isError && fetchDirection === \"forward\";\n const isFetchingNextPage = isFetching && fetchDirection === \"forward\";\n const isFetchPreviousPageError = isError && fetchDirection === \"backward\";\n const isFetchingPreviousPage = isFetching && fetchDirection === \"backward\";\n const result = {\n ...parentResult,\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, state.data),\n hasPreviousPage: hasPreviousPage(options, state.data),\n isFetchNextPageError,\n isFetchingNextPage,\n isFetchPreviousPageError,\n isFetchingPreviousPage,\n isRefetchError: isRefetchError && !isFetchNextPageError && !isFetchPreviousPageError,\n isRefetching: isRefetching && !isFetchingNextPage && !isFetchingPreviousPage\n };\n return result;\n }\n};\nexport {\n InfiniteQueryObserver\n};\n//# sourceMappingURL=infiniteQueryObserver.js.map","\"use client\";\n\n// src/useInfiniteQuery.ts\nimport { InfiniteQueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useInfiniteQuery(options, queryClient) {\n return useBaseQuery(\n options,\n InfiniteQueryObserver,\n queryClient\n );\n}\nexport {\n useInfiniteQuery\n};\n//# sourceMappingURL=useInfiniteQuery.js.map","\"use client\";\n\nimport { AlertCircle, Loader2 } from \"lucide-react\";\nimport { Button } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\ninterface QueryResultProps {\n isLoading: boolean;\n isError: boolean;\n error?: Error | null;\n onRetry?: () => void;\n /** Content to show while loading. Defaults to centered spinner. */\n skeleton?: React.ReactNode;\n className?: string;\n children: React.ReactNode;\n}\n\nfunction DefaultSkeleton() {\n return (\n <div className=\"flex items-center justify-center py-16\">\n <Loader2 className=\"h-6 w-6 animate-spin text-muted-foreground\" />\n </div>\n );\n}\n\nfunction ErrorBanner({\n error,\n onRetry,\n}: {\n error?: Error | null;\n onRetry?: () => void;\n}) {\n return (\n <div className=\"flex flex-col items-center justify-center gap-3 py-16\">\n <div className=\"flex items-center gap-2 text-destructive\">\n <AlertCircle className=\"h-5 w-5\" />\n <p className=\"text-sm font-medium\">Failed to load data</p>\n </div>\n {error?.message && (\n <p className=\"max-w-md text-center text-xs text-muted-foreground\">\n {error.message}\n </p>\n )}\n {onRetry && (\n <Button variant=\"outline\" size=\"sm\" onClick={onRetry}>\n Retry\n </Button>\n )}\n </div>\n );\n}\n\nexport function QueryResult({\n isLoading,\n isError,\n error,\n onRetry,\n skeleton,\n className,\n children,\n}: QueryResultProps) {\n if (isLoading) {\n return (\n <div className={cn(className)}>\n {skeleton ?? <DefaultSkeleton />}\n </div>\n );\n }\n\n if (isError) {\n return (\n <div className={cn(className)}>\n <ErrorBanner error={error} onRetry={onRetry} />\n </div>\n );\n }\n\n return <>{children}</>;\n}\n\n/** Skeleton placeholder for stat cards */\nexport function CardSkeleton({ count = 3 }: { count?: number }) {\n const gridCols =\n count <= 2 ? \"grid-cols-1 md:grid-cols-2\"\n : count === 4 ? \"grid-cols-2 md:grid-cols-4\"\n : \"grid-cols-1 md:grid-cols-3\";\n\n return (\n <div className={cn(\"grid gap-4\", gridCols)}>\n {Array.from({ length: count }).map((_, i) => (\n <div\n key={i}\n className=\"h-28 animate-pulse rounded-xl border border-border bg-muted/30\"\n />\n ))}\n </div>\n );\n}\n\n/** Skeleton placeholder for tables */\nexport function TableSkeleton({ rows = 5 }: { rows?: number }) {\n return (\n <div className=\"space-y-2\">\n <div className=\"h-10 animate-pulse rounded-lg bg-muted/40\" />\n {Array.from({ length: rows }).map((_, i) => (\n <div\n key={i}\n className=\"h-12 animate-pulse rounded-lg bg-muted/20\"\n />\n ))}\n </div>\n );\n}\n","import { useState, useCallback, useRef, useEffect } from \"react\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { api } from \"@/lib/api-client\";\nimport type { ContextFileResponse } from \"@/lib/api-types\";\n\nexport type RegenerateTarget = \"today\" | \"roadmap\";\nexport type RegenerateStatus = \"idle\" | \"triggered\" | \"running\" | \"done\" | \"error\";\n\nconst POLL_INTERVAL_MS = 3_000;\nconst TIMEOUT_MS = 300_000; // 5 minutes — roadmap_refresh can legitimately run 13+ turns\n\nexport function useRegenerate() {\n const [target, setTarget] = useState<RegenerateTarget | null>(null);\n const [status, setStatus] = useState<RegenerateStatus>(\"idle\");\n const [error, setError] = useState<string | null>(null);\n const queryClient = useQueryClient();\n const pollRef = useRef<ReturnType<typeof setInterval> | null>(null);\n const initialModifiedRef = useRef<string | null>(null);\n const startTimeRef = useRef<number>(0);\n\n // Cleanup on unmount\n useEffect(() => {\n return () => {\n if (pollRef.current) clearInterval(pollRef.current);\n };\n }, []);\n\n const stopPolling = useCallback(() => {\n if (pollRef.current) {\n clearInterval(pollRef.current);\n pollRef.current = null;\n }\n }, []);\n\n const regenerate = useCallback(async (t: RegenerateTarget) => {\n // Prevent double-trigger\n if (status === \"triggered\" || status === \"running\") return;\n\n setTarget(t);\n setStatus(\"triggered\");\n setError(null);\n startTimeRef.current = Date.now();\n\n // Capture current lastModified before triggering (null = file doesn't exist yet)\n const current = await api.get<ContextFileResponse>(`/context/${t}`).catch(() => null);\n initialModifiedRef.current = current?.lastModified ?? null;\n\n try {\n await api.post(\"/agent/regenerate\", { target: t });\n setStatus(\"running\");\n\n // Poll for file change\n pollRef.current = setInterval(async () => {\n // Timeout check\n if (Date.now() - startTimeRef.current > TIMEOUT_MS) {\n stopPolling();\n setStatus(\"error\");\n setError(\"Timeout — agent may still be processing\");\n return;\n }\n\n try {\n const updated = await api.get<ContextFileResponse>(`/context/${t}`);\n const changed = initialModifiedRef.current === null\n ? true // file didn't exist before → now it does\n : updated.lastModified !== initialModifiedRef.current;\n if (changed) {\n stopPolling();\n setStatus(\"done\");\n queryClient.invalidateQueries({ queryKey: [\"context\", t] });\n queryClient.invalidateQueries({ queryKey: [\"calendar\"] });\n setTimeout(() => {\n setStatus(\"idle\");\n setTarget(null);\n }, 5000);\n }\n } catch {\n // File might not exist yet — keep polling\n }\n }, POLL_INTERVAL_MS);\n } catch (e) {\n setStatus(\"error\");\n setError(e instanceof Error ? e.message : \"Failed to trigger\");\n }\n }, [status, queryClient, stopPolling]);\n\n const dismiss = useCallback(() => {\n stopPolling();\n setStatus(\"idle\");\n setTarget(null);\n setError(null);\n }, [stopPolling]);\n\n return { regenerate, target, status, error, dismiss };\n}\n","\"use client\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\nimport { RefreshCw, Check, AlertCircle, Loader2 } from \"lucide-react\";\nimport type { RegenerateTarget, RegenerateStatus } from \"@/lib/hooks/use-regenerate\";\n\ninterface RegenerateButtonProps {\n target: RegenerateTarget;\n label: string;\n currentTarget: RegenerateTarget | null;\n status: RegenerateStatus;\n error?: string | null;\n onRegenerate: (target: RegenerateTarget) => void;\n onDismiss: () => void;\n variant?: \"outline\" | \"ghost\";\n size?: \"sm\" | \"default\";\n className?: string;\n}\n\nexport function RegenerateButton({\n target,\n label,\n currentTarget,\n status,\n error,\n onRegenerate,\n onDismiss,\n variant = \"outline\",\n size = \"sm\",\n className,\n}: RegenerateButtonProps) {\n const isThisTarget = currentTarget === target;\n const isActive = isThisTarget && status !== \"idle\";\n const isBusy = status === \"triggered\" || status === \"running\";\n\n if (isThisTarget && status === \"done\") {\n return (\n <Button\n variant={variant}\n size={size}\n className={cn(\"text-emerald-600 dark:text-emerald-400\", className)}\n onClick={onDismiss}\n >\n <Check className=\"h-3.5 w-3.5 mr-1.5\" />\n Updated\n </Button>\n );\n }\n\n if (isThisTarget && status === \"error\") {\n return (\n <span className=\"inline-flex items-center gap-1.5\">\n <Button\n variant={variant}\n size={size}\n className={cn(\"text-red-600 dark:text-red-400\", className)}\n onClick={onDismiss}\n >\n <AlertCircle className=\"h-3.5 w-3.5 mr-1.5\" />\n Failed\n </Button>\n {error && (\n <span className=\"text-xs text-red-600 dark:text-red-400 max-w-48 truncate\">\n {error}\n </span>\n )}\n </span>\n );\n }\n\n return (\n <Button\n variant={variant}\n size={size}\n onClick={() => onRegenerate(target)}\n disabled={isBusy}\n className={className}\n >\n {isActive ? (\n <Loader2 className=\"h-3.5 w-3.5 mr-1.5 animate-spin\" />\n ) : (\n <RefreshCw className=\"h-3.5 w-3.5 mr-1.5\" />\n )}\n {isThisTarget && status === \"triggered\" ? \"Triggering...\" :\n isThisTarget && status === \"running\" ? \"Running...\" :\n label}\n </Button>\n );\n}\n","\"use client\";\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { api } from \"@/lib/api-client\";\nimport type { ScheduleNextResponse } from \"@/lib/api-types\";\n\nexport function useScheduleNext() {\n return useQuery({\n queryKey: [\"schedule-next\"],\n queryFn: () => api.get<ScheduleNextResponse>(\"/schedule/next\"),\n refetchInterval: 30_000,\n });\n}\n"],"names":["cardVariants","variants","tone","default","warning","success","error","interactive","true","false","defaultVariants","Card","className","props","CardHeader","CardTitle","CardStatLabel","CardValue","BACKEND_LABELS","claude","codex","gemini","BACKEND_SHORT_LABELS","BACKEND_PROVIDER_LABELS","BACKEND_PROVIDER_SHORT","BACKEND_WEB_SEARCH_DESCRIPTIONS","BACKEND_COLORS","BACKEND_MODEL_PALETTES","OTHER_MODEL_PALETTE","CHART_CATEGORY_PALETTE","BACKEND_BADGE_VARIANTS","PROCESS_LABELS","getBackendLabel","backendId","getBackendShortLabel","getProcessLabel","processKey","getProcessGroup","startsWith","formatModelName","modelId","replace","trim","formatShortModelName","s","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","useSetupStatus","queryKey","queryFn","staleTime","useMetrics","options","refetchInterval","enabled","EVENT_TYPE_COLORS","RESULT_COLORS","failed","partial","skipped","useEvents","filters","pageParam","page","limit","type","days","getNextPageParam","lastPage","pagination","totalPages","undefined","initialPageParam","useCost","period","useBooks","status","source","offset","useBookHighlights","bookId","useBooksSummary","months","usePatchBook","queryClient","mutationFn","id","body","patch","onSuccess","invalidateQueries","useImportClippings","data","post","InfiniteQueryObserver","client","bindMethods","fetchNextPage","bind","fetchPreviousPage","setOptions","behavior","getOptimisticResult","fetch","meta","fetchMore","direction","createResult","query","state","parentResult","isFetching","isRefetching","isError","isRefetchError","fetchDirection","fetchMeta","isFetchNextPageError","isFetchingNextPage","isFetchPreviousPageError","isFetchingPreviousPage","hasNextPage","hasPreviousPage","DefaultSkeleton","ErrorBanner","onRetry","message","variant","size","onClick","QueryResult","isLoading","skeleton","children","CardSkeleton","count","gridCols","Array","from","map","_","TableSkeleton","rows","POLL_INTERVAL_MS","TIMEOUT_MS","useRegenerate","target","setTarget","setStatus","setError","pollRef","initialModifiedRef","startTimeRef","current","clearInterval","stopPolling","regenerate","t","Date","now","catch","lastModified","setInterval","updated","changed","setTimeout","e","Error","dismiss","useScheduleNext"],"mappings":"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","ignoreList":[0,2,4,5,13,14]}
@@ -0,0 +1,3 @@
1
+ module.exports=[48972,a=>{"use strict";a.s(["clamp",0,function(a,[b,c]){return Math.min(c,Math.max(b,a))}])},30400,a=>{"use strict";var b=a.i(39752),c=a.i(48558);let d=(0,a.i(42261).cva)("rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]",{variants:{tone:{default:"border-border bg-card",warning:"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30",success:"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30",error:"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30"},interactive:{true:"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]",false:""}},defaultVariants:{tone:"default",interactive:!1}});a.s(["Card",0,function({className:a,tone:e,interactive:f,...g}){return(0,b.jsx)("div",{className:(0,c.cn)(d({tone:e,interactive:f}),a),...g})},"CardHeader",0,function({className:a,...d}){return(0,b.jsx)("div",{className:(0,c.cn)("mb-3 flex items-center justify-between",a),...d})},"CardStatLabel",0,function({className:a,...d}){return(0,b.jsx)("h3",{className:(0,c.cn)("text-sm font-medium text-muted-foreground",a),...d})},"CardTitle",0,function({className:a,...d}){return(0,b.jsx)("h3",{className:(0,c.cn)("text-lg font-semibold text-foreground",a),...d})},"CardValue",0,function({className:a,...d}){return(0,b.jsx)("div",{className:(0,c.cn)("text-3xl font-bold text-foreground",a),...d})}])},60380,a=>{"use strict";var b=a.i(34542);a.i(39752);var c=b.createContext(void 0);a.s(["useDirection",0,function(a){let d=b.useContext(c);return a||d||"ltr"}])},69471,a=>{"use strict";var b=a.i(34542),c=a.i(95819),d=a.i(80303),e=a.i(92274),f=a.i(39752),g=new WeakMap;function h(a,b){var c,d;let e,f,g;if("at"in Array.prototype)return Array.prototype.at.call(a,b);let h=(c=a,d=b,e=c.length,(g=(f=i(d))>=0?f:e+f)<0||g>=e?-1:g);return -1===h?void 0:a[h]}function i(a){return a!=a||0===a?0:Math.trunc(a)}(class a extends Map{#a;constructor(a){super(a),this.#a=[...super.keys()],g.set(this,!0)}set(a,b){return g.get(this)&&(this.has(a)?this.#a[this.#a.indexOf(a)]=a:this.#a.push(a)),super.set(a,b),this}insert(a,b,c){let d,e=this.has(b),f=this.#a.length,g=i(a),h=g>=0?g:f+g,j=h<0||h>=f?-1:h;if(j===this.size||e&&j===this.size-1||-1===j)return this.set(b,c),this;let k=this.size+ +!e;g<0&&h++;let l=[...this.#a],m=!1;for(let a=h;a<k;a++)if(h===a){let f=l[a];l[a]===b&&(f=l[a+1]),e&&this.delete(b),d=this.get(f),this.set(b,c)}else{m||l[a-1]!==b||(m=!0);let c=l[m?a:a-1],e=d;d=this.get(c),this.delete(c),this.set(c,e)}return this}with(b,c,d){let e=new a(this);return e.insert(b,c,d),e}before(a){let b=this.#a.indexOf(a)-1;if(!(b<0))return this.entryAt(b)}setBefore(a,b,c){let d=this.#a.indexOf(a);return -1===d?this:this.insert(d,b,c)}after(a){let b=this.#a.indexOf(a);if(-1!==(b=-1===b||b===this.size-1?-1:b+1))return this.entryAt(b)}setAfter(a,b,c){let d=this.#a.indexOf(a);return -1===d?this:this.insert(d+1,b,c)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#a=[],super.clear()}delete(a){let b=super.delete(a);return b&&this.#a.splice(this.#a.indexOf(a),1),b}deleteAt(a){let b=this.keyAt(a);return void 0!==b&&this.delete(b)}at(a){let b=h(this.#a,a);if(void 0!==b)return this.get(b)}entryAt(a){let b=h(this.#a,a);if(void 0!==b)return[b,this.get(b)]}indexOf(a){return this.#a.indexOf(a)}keyAt(a){return h(this.#a,a)}from(a,b){let c=this.indexOf(a);if(-1===c)return;let d=c+b;return d<0&&(d=0),d>=this.size&&(d=this.size-1),this.at(d)}keyFrom(a,b){let c=this.indexOf(a);if(-1===c)return;let d=c+b;return d<0&&(d=0),d>=this.size&&(d=this.size-1),this.keyAt(d)}find(a,b){let c=0;for(let d of this){if(Reflect.apply(a,b,[d,c,this]))return d;c++}}findIndex(a,b){let c=0;for(let d of this){if(Reflect.apply(a,b,[d,c,this]))return c;c++}return -1}filter(b,c){let d=[],e=0;for(let a of this)Reflect.apply(b,c,[a,e,this])&&d.push(a),e++;return new a(d)}map(b,c){let d=[],e=0;for(let a of this)d.push([a[0],Reflect.apply(b,c,[a,e,this])]),e++;return new a(d)}reduce(...a){let[b,c]=a,d=0,e=c??this.at(0);for(let c of this)e=0===d&&1===a.length?c:Reflect.apply(b,this,[e,c,d,this]),d++;return e}reduceRight(...a){let[b,c]=a,d=c??this.at(-1);for(let c=this.size-1;c>=0;c--){let e=this.at(c);d=c===this.size-1&&1===a.length?e:Reflect.apply(b,this,[d,e,c,this])}return d}toSorted(b){return new a([...this.entries()].sort(b))}toReversed(){let b=new a;for(let a=this.size-1;a>=0;a--){let c=this.keyAt(a),d=this.get(c);b.set(c,d)}return b}toSpliced(...b){let c=[...this.entries()];return c.splice(...b),new a(c)}slice(b,c){let d=new a,e=this.size-1;if(void 0===b)return d;b<0&&(b+=this.size),void 0!==c&&c>0&&(e=c-1);for(let a=b;a<=e;a++){let b=this.keyAt(a),c=this.get(b);d.set(b,c)}return d}every(a,b){let c=0;for(let d of this){if(!Reflect.apply(a,b,[d,c,this]))return!1;c++}return!0}some(a,b){let c=0;for(let d of this){if(Reflect.apply(a,b,[d,c,this]))return!0;c++}return!1}}),a.s(["createCollection",0,function(a){let g=a+"CollectionProvider",[h,i]=(0,c.createContextScope)(g),[j,k]=h(g,{collectionRef:{current:null},itemMap:new Map}),l=a=>{let{scope:c,children:d}=a,e=b.default.useRef(null),g=b.default.useRef(new Map).current;return(0,f.jsx)(j,{scope:c,itemMap:g,collectionRef:e,children:d})};l.displayName=g;let m=a+"CollectionSlot",n=(0,e.createSlot)(m),o=b.default.forwardRef((a,b)=>{let{scope:c,children:e}=a,g=k(m,c),h=(0,d.useComposedRefs)(b,g.collectionRef);return(0,f.jsx)(n,{ref:h,children:e})});o.displayName=m;let p=a+"CollectionItemSlot",q="data-radix-collection-item",r=(0,e.createSlot)(p),s=b.default.forwardRef((a,c)=>{let{scope:e,children:g,...h}=a,i=b.default.useRef(null),j=(0,d.useComposedRefs)(c,i),l=k(p,e);return b.default.useEffect(()=>(l.itemMap.set(i,{ref:i,...h}),()=>void l.itemMap.delete(i))),(0,f.jsx)(r,{...{[q]:""},ref:j,children:g})});return s.displayName=p,[{Provider:l,Slot:o,ItemSlot:s},function(c){let d=k(a+"CollectionConsumer",c);return b.default.useCallback(()=>{let a=d.collectionRef.current;if(!a)return[];let b=Array.from(a.querySelectorAll(`[${q}]`));return Array.from(d.itemMap.values()).sort((a,c)=>b.indexOf(a.ref.current)-b.indexOf(c.ref.current))},[d.collectionRef,d.itemMap])},i]}])},96336,a=>{"use strict";let b=(0,a.i(5423).default)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);a.s(["Trash2",0,b],96336)},43179,a=>{"use strict";let b=(0,a.i(5423).default)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);a.s(["Plus",0,b],43179)},54506,a=>{"use strict";let b=(0,a.i(5423).default)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);a.s(["Check",0,b],54506)},7037,a=>{"use strict";let b=(0,a.i(5423).default)("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);a.s(["Pencil",0,b],7037)},74794,a=>{"use strict";var b=a.i(62588),c=a.i(59974);a.s(["useBackends",0,function(a){return(0,b.useQuery)({queryKey:["backends"],queryFn:()=>c.api.get("/backends"),enabled:a?.enabled??!0,staleTime:6e4})}])},77694,92417,a=>{"use strict";var b=a.i(5423);let c=(0,b.default)("Power",[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]]);a.s(["Power",0,c],77694);let d=(0,b.default)("PowerOff",[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);a.s(["PowerOff",0,d],92417)}];
2
+
3
+ //# sourceMappingURL=_04-.z69._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../node_modules/.pnpm/%40radix-ui%2Bnumber%401.1.1/node_modules/%40radix-ui/number/src/number.ts","../../../../../../packages/dashboard/src/components/ui/card.tsx","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-direction%401.1.1_%40types%2Breact%4019.2.14_react%4019.2.4/node_modules/%40radix-ui/react-direction/src/direction.tsx","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-collection%401.1.7_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.14__%40types%2Br_161926fa2509d0b7370b60b8bb4eb8b0/node_modules/%40radix-ui/react-collection/src/collection-legacy.tsx","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-collection%401.1.7_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.14__%40types%2Br_161926fa2509d0b7370b60b8bb4eb8b0/node_modules/%40radix-ui/react-collection/src/collection.tsx","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-collection%401.1.7_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.14__%40types%2Br_161926fa2509d0b7370b60b8bb4eb8b0/node_modules/%40radix-ui/react-collection/src/ordered-dictionary.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/trash-2.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/plus.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/check.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/pencil.ts","../../../../../../packages/dashboard/src/lib/hooks/use-backends.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/power-off.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/power.ts"],"sourcesContent":["function clamp(value: number, [min, max]: [number, number]): number {\n return Math.min(max, Math.max(min, value));\n}\n\nexport { clamp };\n","import { cn } from \"@/lib/utils\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\nimport type { HTMLAttributes } from \"react\";\n\nconst cardVariants = cva(\n \"rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]\",\n {\n variants: {\n tone: {\n default: \"border-border bg-card\",\n warning:\n \"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30\",\n success:\n \"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30\",\n error:\n \"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30\",\n },\n interactive: {\n true: \"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]\",\n false: \"\",\n },\n },\n defaultVariants: { tone: \"default\", interactive: false },\n },\n);\n\nexport interface CardProps\n extends HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof cardVariants> {}\n\nexport function Card({ className, tone, interactive, ...props }: CardProps) {\n return (\n <div className={cn(cardVariants({ tone, interactive }), className)} {...props} />\n );\n}\n\nexport function CardHeader({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"mb-3 flex items-center justify-between\", className)} {...props} />;\n}\n\nexport function CardTitle({ className, ...props }: HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h3\n className={cn(\"text-lg font-semibold text-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport function CardStatLabel({\n className,\n ...props\n}: HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h3\n className={cn(\"text-sm font-medium text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport function CardValue({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"text-3xl font-bold text-foreground\", className)} {...props} />;\n}\n","import * as React from 'react';\n\ntype Direction = 'ltr' | 'rtl';\nconst DirectionContext = React.createContext<Direction | undefined>(undefined);\n\n/* -------------------------------------------------------------------------------------------------\n * Direction\n * -----------------------------------------------------------------------------------------------*/\n\ninterface DirectionProviderProps {\n children?: React.ReactNode;\n dir: Direction;\n}\nconst DirectionProvider: React.FC<DirectionProviderProps> = (props) => {\n const { dir, children } = props;\n return <DirectionContext.Provider value={dir}>{children}</DirectionContext.Provider>;\n};\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction useDirection(localDir?: Direction) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || 'ltr';\n}\n\nconst Provider = DirectionProvider;\n\nexport {\n useDirection,\n //\n Provider,\n //\n DirectionProvider,\n};\n","import React from 'react';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createSlot, type Slot } from '@radix-ui/react-slot';\n\ntype SlotProps = React.ComponentPropsWithoutRef<typeof Slot>;\ntype CollectionElement = HTMLElement;\ninterface CollectionProps extends SlotProps {\n scope: any;\n}\n\n// We have resorted to returning slots directly rather than exposing primitives that can then\n// be slotted like `<CollectionItem as={Slot}>\u2026</CollectionItem>`.\n// This is because we encountered issues with generic types that cannot be statically analysed\n// due to creating them dynamically via createCollection.\n\nfunction createCollection<ItemElement extends HTMLElement, ItemData = {}>(name: string) {\n /* -----------------------------------------------------------------------------------------------\n * CollectionProvider\n * ---------------------------------------------------------------------------------------------*/\n\n const PROVIDER_NAME = name + 'CollectionProvider';\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n\n type ContextValue = {\n collectionRef: React.RefObject<CollectionElement | null>;\n itemMap: Map<\n React.RefObject<ItemElement | null>,\n { ref: React.RefObject<ItemElement | null> } & ItemData\n >;\n };\n\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext<ContextValue>(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: new Map() }\n );\n\n const CollectionProvider: React.FC<{ children?: React.ReactNode; scope: any }> = (props) => {\n const { scope, children } = props;\n const ref = React.useRef<CollectionElement>(null);\n const itemMap = React.useRef<ContextValue['itemMap']>(new Map()).current;\n return (\n <CollectionProviderImpl scope={scope} itemMap={itemMap} collectionRef={ref}>\n {children}\n </CollectionProviderImpl>\n );\n };\n\n CollectionProvider.displayName = PROVIDER_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionSlot\n * ---------------------------------------------------------------------------------------------*/\n\n const COLLECTION_SLOT_NAME = name + 'CollectionSlot';\n\n const CollectionSlotImpl = createSlot(COLLECTION_SLOT_NAME);\n const CollectionSlot = React.forwardRef<CollectionElement, CollectionProps>(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return <CollectionSlotImpl ref={composedRefs}>{children}</CollectionSlotImpl>;\n }\n );\n\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionItem\n * ---------------------------------------------------------------------------------------------*/\n\n const ITEM_SLOT_NAME = name + 'CollectionItemSlot';\n const ITEM_DATA_ATTR = 'data-radix-collection-item';\n\n type CollectionItemSlotProps = ItemData & {\n children: React.ReactNode;\n scope: any;\n };\n\n const CollectionItemSlotImpl = createSlot(ITEM_SLOT_NAME);\n const CollectionItemSlot = React.forwardRef<ItemElement, CollectionItemSlotProps>(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef<ItemElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...(itemData as unknown as ItemData) });\n return () => void context.itemMap.delete(ref);\n });\n\n return (\n <CollectionItemSlotImpl {...{ [ITEM_DATA_ATTR]: '' }} ref={composedRefs}>\n {children}\n </CollectionItemSlotImpl>\n );\n }\n );\n\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * useCollection\n * ---------------------------------------------------------------------------------------------*/\n\n function useCollection(scope: any) {\n const context = useCollectionContext(name + 'CollectionConsumer', scope);\n\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current!) - orderedNodes.indexOf(b.ref.current!)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n\n return getItems;\n }\n\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope,\n ] as const;\n}\n\nexport { createCollection };\nexport type { CollectionProps };\n","import React from 'react';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createSlot, type Slot } from '@radix-ui/react-slot';\nimport type { EntryOf } from './ordered-dictionary';\nimport { OrderedDict } from './ordered-dictionary';\n\ntype SlotProps = React.ComponentPropsWithoutRef<typeof Slot>;\ntype CollectionElement = HTMLElement;\ninterface CollectionProps extends SlotProps {\n scope: any;\n}\n\ninterface BaseItemData {\n id?: string;\n}\n\ntype ItemDataWithElement<\n ItemData extends BaseItemData,\n ItemElement extends HTMLElement,\n> = ItemData & {\n element: ItemElement;\n};\n\ntype ItemMap<ItemElement extends HTMLElement, ItemData extends BaseItemData> = OrderedDict<\n ItemElement,\n ItemDataWithElement<ItemData, ItemElement>\n>;\n\nfunction createCollection<\n ItemElement extends HTMLElement,\n ItemData extends BaseItemData = BaseItemData,\n>(name: string) {\n /* -----------------------------------------------------------------------------------------------\n * CollectionProvider\n * ---------------------------------------------------------------------------------------------*/\n\n const PROVIDER_NAME = name + 'CollectionProvider';\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n\n type ContextValue = {\n collectionElement: CollectionElement | null;\n collectionRef: React.Ref<CollectionElement | null>;\n collectionRefObject: React.RefObject<CollectionElement | null>;\n itemMap: ItemMap<ItemElement, ItemData>;\n setItemMap: React.Dispatch<React.SetStateAction<ItemMap<ItemElement, ItemData>>>;\n };\n\n const [CollectionContextProvider, useCollectionContext] = createCollectionContext<ContextValue>(\n PROVIDER_NAME,\n {\n collectionElement: null,\n collectionRef: { current: null },\n collectionRefObject: { current: null },\n itemMap: new OrderedDict(),\n setItemMap: () => void 0,\n }\n );\n\n type CollectionState = [\n ItemMap: ItemMap<ItemElement, ItemData>,\n SetItemMap: React.Dispatch<React.SetStateAction<ItemMap<ItemElement, ItemData>>>,\n ];\n\n const CollectionProvider: React.FC<{\n children?: React.ReactNode;\n scope: any;\n state?: CollectionState;\n }> = ({ state, ...props }) => {\n return state ? (\n <CollectionProviderImpl {...props} state={state} />\n ) : (\n <CollectionInit {...props} />\n );\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n\n const CollectionInit: React.FC<{\n children?: React.ReactNode;\n scope: any;\n }> = (props) => {\n const state = useInitCollection();\n return <CollectionProviderImpl {...props} state={state} />;\n };\n CollectionInit.displayName = PROVIDER_NAME + 'Init';\n\n const CollectionProviderImpl: React.FC<{\n children?: React.ReactNode;\n scope: any;\n state: CollectionState;\n }> = (props) => {\n const { scope, children, state } = props;\n const ref = React.useRef<CollectionElement>(null);\n const [collectionElement, setCollectionElement] = React.useState<CollectionElement | null>(\n null\n );\n const composeRefs = useComposedRefs(ref, setCollectionElement);\n const [itemMap, setItemMap] = state;\n\n React.useEffect(() => {\n if (!collectionElement) return;\n\n const observer = getChildListObserver(() => {\n // setItemMap((map) => {\n // const copy = new OrderedDict(map).toSorted(([, a], [, b]) =>\n // !a.element || !b.element ? 0 : isElementPreceding(a.element, b.element) ? -1 : 1\n // );\n // // check if the order has changed\n // let index = -1;\n // for (const entry of copy) {\n // index++;\n // const key = map.keyAt(index)!;\n // const [copyKey] = entry;\n // if (key !== copyKey) {\n // // order has changed!\n // return copy;\n // }\n // }\n // return map;\n // });\n });\n observer.observe(collectionElement, {\n childList: true,\n subtree: true,\n });\n return () => {\n observer.disconnect();\n };\n }, [collectionElement]);\n\n return (\n <CollectionContextProvider\n scope={scope}\n itemMap={itemMap}\n setItemMap={setItemMap}\n collectionRef={composeRefs}\n collectionRefObject={ref}\n collectionElement={collectionElement}\n >\n {children}\n </CollectionContextProvider>\n );\n };\n\n CollectionProviderImpl.displayName = PROVIDER_NAME + 'Impl';\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionSlot\n * ---------------------------------------------------------------------------------------------*/\n\n const COLLECTION_SLOT_NAME = name + 'CollectionSlot';\n\n const CollectionSlotImpl = createSlot(COLLECTION_SLOT_NAME);\n const CollectionSlot = React.forwardRef<CollectionElement, CollectionProps>(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return <CollectionSlotImpl ref={composedRefs}>{children}</CollectionSlotImpl>;\n }\n );\n\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionItem\n * ---------------------------------------------------------------------------------------------*/\n\n const ITEM_SLOT_NAME = name + 'CollectionItemSlot';\n const ITEM_DATA_ATTR = 'data-radix-collection-item';\n\n type CollectionItemSlotProps = ItemData & {\n children: React.ReactNode;\n scope: any;\n };\n\n const CollectionItemSlotImpl = createSlot(ITEM_SLOT_NAME);\n const CollectionItemSlot = React.forwardRef<ItemElement, CollectionItemSlotProps>(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef<ItemElement>(null);\n const [element, setElement] = React.useState<ItemElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, setElement);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n\n const { setItemMap } = context;\n\n const itemDataRef = React.useRef(itemData);\n if (!shallowEqual(itemDataRef.current, itemData)) {\n itemDataRef.current = itemData;\n }\n const memoizedItemData = itemDataRef.current;\n\n React.useEffect(() => {\n const itemData = memoizedItemData;\n setItemMap((map) => {\n if (!element) {\n return map;\n }\n\n if (!map.has(element)) {\n map.set(element, { ...(itemData as unknown as ItemData), element });\n return map.toSorted(sortByDocumentPosition);\n }\n\n return map\n .set(element, { ...(itemData as unknown as ItemData), element })\n .toSorted(sortByDocumentPosition);\n });\n\n return () => {\n setItemMap((map) => {\n if (!element || !map.has(element)) {\n return map;\n }\n map.delete(element);\n return new OrderedDict(map);\n });\n };\n }, [element, memoizedItemData, setItemMap]);\n\n return (\n <CollectionItemSlotImpl {...{ [ITEM_DATA_ATTR]: '' }} ref={composedRefs as any}>\n {children}\n </CollectionItemSlotImpl>\n );\n }\n );\n\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * useInitCollection\n * ---------------------------------------------------------------------------------------------*/\n\n function useInitCollection() {\n return React.useState<ItemMap<ItemElement, ItemData>>(new OrderedDict());\n }\n\n /* -----------------------------------------------------------------------------------------------\n * useCollection\n * ---------------------------------------------------------------------------------------------*/\n\n function useCollection(scope: any) {\n const { itemMap } = useCollectionContext(name + 'CollectionConsumer', scope);\n\n return itemMap;\n }\n\n const functions = {\n createCollectionScope,\n useCollection,\n useInitCollection,\n };\n\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n functions,\n ] as const;\n}\n\nexport { createCollection };\nexport type { CollectionProps };\n\nfunction shallowEqual(a: any, b: any) {\n if (a === b) return true;\n if (typeof a !== 'object' || typeof b !== 'object') return false;\n if (a == null || b == null) return false;\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n for (const key of keysA) {\n if (!Object.prototype.hasOwnProperty.call(b, key)) return false;\n if (a[key] !== b[key]) return false;\n }\n return true;\n}\n\nfunction isElementPreceding(a: Element, b: Element) {\n return !!(b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING);\n}\n\nfunction sortByDocumentPosition<E extends HTMLElement, T extends BaseItemData>(\n a: EntryOf<ItemMap<E, T>>,\n b: EntryOf<ItemMap<E, T>>\n) {\n return !a[1].element || !b[1].element\n ? 0\n : isElementPreceding(a[1].element, b[1].element)\n ? -1\n : 1;\n}\n\nfunction getChildListObserver(callback: () => void) {\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'childList') {\n callback();\n return;\n }\n }\n });\n\n return observer;\n}\n","// Not a real member because it shouldn't be accessible, but the super class\n// calls `set` which needs to read the instanciation state, so it can't be a\n// private member.\nconst __instanciated = new WeakMap<OrderedDict<any, any>, boolean>();\nexport class OrderedDict<K, V> extends Map<K, V> {\n #keys: K[];\n\n constructor(iterable?: Iterable<readonly [K, V]> | null | undefined);\n constructor(entries?: readonly (readonly [K, V])[] | null) {\n super(entries);\n this.#keys = [...super.keys()];\n __instanciated.set(this, true);\n }\n\n set(key: K, value: V) {\n if (__instanciated.get(this)) {\n if (this.has(key)) {\n this.#keys[this.#keys.indexOf(key)] = key;\n } else {\n this.#keys.push(key);\n }\n }\n super.set(key, value);\n return this;\n }\n\n insert(index: number, key: K, value: V) {\n const has = this.has(key);\n const length = this.#keys.length;\n const relativeIndex = toSafeInteger(index);\n let actualIndex = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;\n const safeIndex = actualIndex < 0 || actualIndex >= length ? -1 : actualIndex;\n\n if (safeIndex === this.size || (has && safeIndex === this.size - 1) || safeIndex === -1) {\n this.set(key, value);\n return this;\n }\n\n const size = this.size + (has ? 0 : 1);\n\n // If you insert at, say, -2, without this bit you'd replace the\n // second-to-last item and push the rest up one, which means the new item is\n // 3rd to last. This isn't very intuitive; inserting at -2 is more like\n // saying \"make this item the second to last\".\n if (relativeIndex < 0) {\n actualIndex++;\n }\n\n const keys = [...this.#keys];\n let nextValue: V | undefined;\n let shouldSkip = false;\n for (let i = actualIndex; i < size; i++) {\n if (actualIndex === i) {\n let nextKey = keys[i]!;\n if (keys[i] === key) {\n nextKey = keys[i + 1]!;\n }\n if (has) {\n // delete first to ensure that the item is moved to the end\n this.delete(key);\n }\n nextValue = this.get(nextKey);\n this.set(key, value);\n } else {\n if (!shouldSkip && keys[i - 1] === key) {\n shouldSkip = true;\n }\n const currentKey = keys[shouldSkip ? i : i - 1]!;\n const currentValue = nextValue!;\n nextValue = this.get(currentKey);\n this.delete(currentKey);\n this.set(currentKey, currentValue);\n }\n }\n return this;\n }\n\n with(index: number, key: K, value: V) {\n const copy = new OrderedDict(this);\n copy.insert(index, key, value);\n return copy;\n }\n\n before(key: K) {\n const index = this.#keys.indexOf(key) - 1;\n if (index < 0) {\n return undefined;\n }\n return this.entryAt(index);\n }\n\n /**\n * Sets a new key-value pair at the position before the given key.\n */\n setBefore(key: K, newKey: K, value: V) {\n const index = this.#keys.indexOf(key);\n if (index === -1) {\n return this;\n }\n return this.insert(index, newKey, value);\n }\n\n after(key: K) {\n let index = this.#keys.indexOf(key);\n index = index === -1 || index === this.size - 1 ? -1 : index + 1;\n if (index === -1) {\n return undefined;\n }\n return this.entryAt(index);\n }\n\n /**\n * Sets a new key-value pair at the position after the given key.\n */\n setAfter(key: K, newKey: K, value: V) {\n const index = this.#keys.indexOf(key);\n if (index === -1) {\n return this;\n }\n return this.insert(index + 1, newKey, value);\n }\n\n first() {\n return this.entryAt(0);\n }\n\n last() {\n return this.entryAt(-1);\n }\n\n clear() {\n this.#keys = [];\n return super.clear();\n }\n\n delete(key: K) {\n const deleted = super.delete(key);\n if (deleted) {\n this.#keys.splice(this.#keys.indexOf(key), 1);\n }\n return deleted;\n }\n\n deleteAt(index: number) {\n const key = this.keyAt(index);\n if (key !== undefined) {\n return this.delete(key);\n }\n return false;\n }\n\n at(index: number) {\n const key = at(this.#keys, index);\n if (key !== undefined) {\n return this.get(key);\n }\n }\n\n entryAt(index: number): [K, V] | undefined {\n const key = at(this.#keys, index);\n if (key !== undefined) {\n return [key, this.get(key)!];\n }\n }\n\n indexOf(key: K) {\n return this.#keys.indexOf(key);\n }\n\n keyAt(index: number) {\n return at(this.#keys, index);\n }\n\n from(key: K, offset: number) {\n const index = this.indexOf(key);\n if (index === -1) {\n return undefined;\n }\n let dest = index + offset;\n if (dest < 0) dest = 0;\n if (dest >= this.size) dest = this.size - 1;\n return this.at(dest);\n }\n\n keyFrom(key: K, offset: number) {\n const index = this.indexOf(key);\n if (index === -1) {\n return undefined;\n }\n let dest = index + offset;\n if (dest < 0) dest = 0;\n if (dest >= this.size) dest = this.size - 1;\n return this.keyAt(dest);\n }\n\n find(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict<K, V>) => boolean,\n thisArg?: any\n ) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return entry;\n }\n index++;\n }\n return undefined;\n }\n\n findIndex(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict<K, V>) => boolean,\n thisArg?: any\n ) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return index;\n }\n index++;\n }\n return -1;\n }\n\n filter<KK extends K, VV extends V>(\n predicate: (entry: [K, V], index: number, dict: OrderedDict<K, V>) => entry is [KK, VV],\n thisArg?: any\n ): OrderedDict<KK, VV>;\n\n filter(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict<K, V>) => unknown,\n thisArg?: any\n ): OrderedDict<K, V>;\n\n filter(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict<K, V>) => unknown,\n thisArg?: any\n ) {\n const entries: Array<[K, V]> = [];\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n entries.push(entry);\n }\n index++;\n }\n return new OrderedDict(entries);\n }\n\n map<U>(\n callbackfn: (entry: [K, V], index: number, dictionary: OrderedDict<K, V>) => U,\n thisArg?: any\n ): OrderedDict<K, U> {\n const entries: [K, U][] = [];\n let index = 0;\n for (const entry of this) {\n entries.push([entry[0], Reflect.apply(callbackfn, thisArg, [entry, index, this])]);\n index++;\n }\n return new OrderedDict(entries);\n }\n\n reduce(\n callbackfn: (\n previousValue: [K, V],\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => [K, V]\n ): [K, V];\n reduce(\n callbackfn: (\n previousValue: [K, V],\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => [K, V],\n initialValue: [K, V]\n ): [K, V];\n reduce<U>(\n callbackfn: (\n previousValue: U,\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => U,\n initialValue: U\n ): U;\n\n reduce<U>(\n ...args: [\n (\n previousValue: U,\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => U,\n U?,\n ]\n ) {\n const [callbackfn, initialValue] = args;\n let index = 0;\n let accumulator = initialValue ?? this.at(0)!;\n for (const entry of this) {\n if (index === 0 && args.length === 1) {\n accumulator = entry as any;\n } else {\n accumulator = Reflect.apply(callbackfn, this, [accumulator, entry, index, this]);\n }\n index++;\n }\n return accumulator;\n }\n\n reduceRight(\n callbackfn: (\n previousValue: [K, V],\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => [K, V]\n ): [K, V];\n reduceRight(\n callbackfn: (\n previousValue: [K, V],\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => [K, V],\n initialValue: [K, V]\n ): [K, V];\n reduceRight<U>(\n callbackfn: (\n previousValue: [K, V],\n currentValue: U,\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => U,\n initialValue: U\n ): U;\n\n reduceRight<U>(\n ...args: [\n (\n previousValue: U,\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => U,\n U?,\n ]\n ) {\n const [callbackfn, initialValue] = args;\n let accumulator = initialValue ?? this.at(-1)!;\n for (let index = this.size - 1; index >= 0; index--) {\n const entry = this.at(index)!;\n if (index === this.size - 1 && args.length === 1) {\n accumulator = entry as any;\n } else {\n accumulator = Reflect.apply(callbackfn, this, [accumulator, entry, index, this]);\n }\n }\n return accumulator;\n }\n\n toSorted(compareFn?: (a: [K, V], b: [K, V]) => number): OrderedDict<K, V> {\n const entries = [...this.entries()].sort(compareFn);\n return new OrderedDict(entries);\n }\n\n toReversed(): OrderedDict<K, V> {\n const reversed = new OrderedDict<K, V>();\n for (let index = this.size - 1; index >= 0; index--) {\n const key = this.keyAt(index)!;\n const element = this.get(key)!;\n reversed.set(key, element);\n }\n return reversed;\n }\n\n toSpliced(start: number, deleteCount?: number): OrderedDict<K, V>;\n toSpliced(start: number, deleteCount: number, ...items: [K, V][]): OrderedDict<K, V>;\n\n toSpliced(...args: [start: number, deleteCount: number, ...items: [K, V][]]) {\n const entries = [...this.entries()];\n entries.splice(...args);\n return new OrderedDict(entries);\n }\n\n slice(start?: number, end?: number) {\n const result = new OrderedDict<K, V>();\n let stop = this.size - 1;\n\n if (start === undefined) {\n return result;\n }\n\n if (start < 0) {\n start = start + this.size;\n }\n\n if (end !== undefined && end > 0) {\n stop = end - 1;\n }\n\n for (let index = start; index <= stop; index++) {\n const key = this.keyAt(index)!;\n const element = this.get(key)!;\n result.set(key, element);\n }\n return result;\n }\n\n every(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict<K, V>) => unknown,\n thisArg?: any\n ) {\n let index = 0;\n for (const entry of this) {\n if (!Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return false;\n }\n index++;\n }\n return true;\n }\n\n some(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict<K, V>) => unknown,\n thisArg?: any\n ) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return true;\n }\n index++;\n }\n return false;\n }\n}\n\nexport type KeyOf<D extends OrderedDict<any, any>> =\n D extends OrderedDict<infer K, any> ? K : never;\nexport type ValueOf<D extends OrderedDict<any, any>> =\n D extends OrderedDict<any, infer V> ? V : never;\nexport type EntryOf<D extends OrderedDict<any, any>> = [KeyOf<D>, ValueOf<D>];\nexport type KeyFrom<E extends EntryOf<any>> = E[0];\nexport type ValueFrom<E extends EntryOf<any>> = E[1];\n\nfunction at<T>(array: ArrayLike<T>, index: number): T | undefined {\n if ('at' in Array.prototype) {\n return Array.prototype.at.call(array, index);\n }\n const actualIndex = toSafeIndex(array, index);\n return actualIndex === -1 ? undefined : array[actualIndex];\n}\n\nfunction toSafeIndex(array: ArrayLike<any>, index: number) {\n const length = array.length;\n const relativeIndex = toSafeInteger(index);\n const actualIndex = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;\n return actualIndex < 0 || actualIndex >= length ? -1 : actualIndex;\n}\n\nfunction toSafeInteger(number: number) {\n // eslint-disable-next-line no-self-compare\n return number !== number || number === 0 ? 0 : Math.trunc(number);\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Trash2\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA2aDE4IiAvPgogIDxwYXRoIGQ9Ik0xOSA2djE0YzAgMS0xIDItMiAySDdjLTEgMC0yLTEtMi0yVjYiIC8+CiAgPHBhdGggZD0iTTggNlY0YzAtMSAxLTIgMi0yaDRjMSAwIDIgMSAyIDJ2MiIgLz4KICA8bGluZSB4MT0iMTAiIHgyPSIxMCIgeTE9IjExIiB5Mj0iMTciIC8+CiAgPGxpbmUgeDE9IjE0IiB4Mj0iMTQiIHkxPSIxMSIgeTI9IjE3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/trash-2\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Trash2 = createLucideIcon('Trash2', [\n ['path', { d: 'M3 6h18', key: 'd0wm0j' }],\n ['path', { d: 'M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6', key: '4alrt4' }],\n ['path', { d: 'M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2', key: 'v07s0e' }],\n ['line', { x1: '10', x2: '10', y1: '11', y2: '17', key: '1uufr5' }],\n ['line', { x1: '14', x2: '14', y1: '11', y2: '17', key: 'xtxkd' }],\n]);\n\nexport default Trash2;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Plus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KICA8cGF0aCBkPSJNMTIgNXYxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Plus = createLucideIcon('Plus', [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'M12 5v14', key: 's699le' }],\n]);\n\nexport default Plus;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Check\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgNiA5IDE3bC01LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Check = createLucideIcon('Check', [['path', { d: 'M20 6 9 17l-5-5', key: '1gmf2c' }]]);\n\nexport default Check;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Pencil\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiIgLz4KICA8cGF0aCBkPSJtMTUgNSA0IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pencil\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Pencil = createLucideIcon('Pencil', [\n [\n 'path',\n {\n d: 'M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z',\n key: '1a8usu',\n },\n ],\n ['path', { d: 'm15 5 4 4', key: '1mk7zo' }],\n]);\n\nexport default Pencil;\n","\"use client\";\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { api } from \"@/lib/api-client\";\nimport type { BackendsResponse } from \"@/lib/api-types\";\n\nexport function useBackends(options?: { enabled?: boolean }) {\n return useQuery({\n queryKey: [\"backends\"],\n queryFn: () => api.get<BackendsResponse>(\"/backends\"),\n enabled: options?.enabled ?? true,\n staleTime: 60_000,\n });\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name PowerOff\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTguMzYgNi42NEE5IDkgMCAwIDEgMjAuNzcgMTUiIC8+CiAgPHBhdGggZD0iTTYuMTYgNi4xNmE5IDkgMCAxIDAgMTIuNjggMTIuNjgiIC8+CiAgPHBhdGggZD0iTTEyIDJ2NCIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/power-off\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 PowerOff = createLucideIcon('PowerOff', [\n ['path', { d: 'M18.36 6.64A9 9 0 0 1 20.77 15', key: 'dxknvb' }],\n ['path', { d: 'M6.16 6.16a9 9 0 1 0 12.68 12.68', key: '1x7qb5' }],\n ['path', { d: 'M12 2v4', key: '3427ic' }],\n ['path', { d: 'm2 2 20 20', key: '1ooewy' }],\n]);\n\nexport default PowerOff;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Power\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYxMCIgLz4KICA8cGF0aCBkPSJNMTguNCA2LjZhOSA5IDAgMSAxLTEyLjc3LjA0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/power\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 Power = createLucideIcon('Power', [\n ['path', { d: 'M12 2v10', key: 'mnfbl' }],\n ['path', { d: 'M18.4 6.6a9 9 0 1 1-12.77.04', key: 'obofu9' }],\n]);\n\nexport default Power;\n"],"names":["cardVariants","variants","tone","default","warning","success","error","interactive","true","false","defaultVariants","Card","className","props","CardHeader","CardTitle","CardStatLabel","CardValue","React","createContextScope","useComposedRefs","createSlot","jsx","createCollection","itemData","useBackends","options","queryKey","queryFn","get","enabled","staleTime"],"mappings":"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","ignoreList":[6,7,8,9,11,12]}
@@ -0,0 +1,3 @@
1
+ module.exports=[96336,a=>{"use strict";let b=(0,a.i(5423).default)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);a.s(["Trash2",0,b],96336)},43179,a=>{"use strict";let b=(0,a.i(5423).default)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);a.s(["Plus",0,b],43179)},54506,a=>{"use strict";let b=(0,a.i(5423).default)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);a.s(["Check",0,b],54506)},11307,a=>{"use strict";let b=(0,a.i(5423).default)("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);a.s(["FolderOpen",0,b],11307)},13925,a=>{"use strict";var b=a.i(70981),c=a.i(76584),d=class extends b.QueryObserver{constructor(a,b){super(a,b)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(a){super.setOptions({...a,behavior:(0,c.infiniteQueryBehavior)()})}getOptimisticResult(a){return a.behavior=(0,c.infiniteQueryBehavior)(),super.getOptimisticResult(a)}fetchNextPage(a){return this.fetch({...a,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(a){return this.fetch({...a,meta:{fetchMore:{direction:"backward"}}})}createResult(a,b){let{state:d}=a,e=super.createResult(a,b),{isFetching:f,isRefetching:g,isError:h,isRefetchError:i}=e,j=d.fetchMeta?.fetchMore?.direction,k=h&&"forward"===j,l=f&&"forward"===j,m=h&&"backward"===j,n=f&&"backward"===j;return{...e,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:(0,c.hasNextPage)(b,d.data),hasPreviousPage:(0,c.hasPreviousPage)(b,d.data),isFetchNextPageError:k,isFetchingNextPage:l,isFetchPreviousPageError:m,isFetchingPreviousPage:n,isRefetchError:i&&!k&&!m,isRefetching:g&&!l&&!n}}},e=a.i(62149);a.s(["useInfiniteQuery",0,function(a,b){return(0,e.useBaseQuery)(a,d,b)}],13925)},6236,a=>{"use strict";let b=(0,a.i(5423).default)("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);a.s(["Activity",0,b],6236)},40091,a=>{"use strict";let b={claude:"Claude Code",codex:"OpenAI Codex",gemini:"Gemini CLI"},c={claude:"Claude",codex:"Codex",gemini:"Gemini"},d={claude:"orange",codex:"pink",gemini:"blue"},e={"routine.morning_routine":"Morning Routine","routine.evening_review":"Evening Review","routine.weekly_review":"Weekly Review","routine.monthly_review":"Monthly Review","routine.hourly_check":"Hourly Check","routine.roadmap_refresh":"Roadmap Refresh","message.dm":"Direct Messages","message.mention":"Mentions","dashboard.chat":"Dashboard Chat","agent.task":"Scheduled Tasks","calendar.change":"Calendar Events",gmail_classify:"Gmail Classification","github.pull_request.review_requested":"GitHub Review Requests","github.assigned":"GitHub Assignments","github.security_alert":"GitHub Security Alerts","github.workflow_run.failed":"GitHub CI Failures","wiki.ingest_url":"Wiki URL Ingest","wiki.compile":"Wiki Compile","wiki.ask":"Wiki Ask"};function f(a){let b;if(!a)return[];try{b=JSON.parse(a)}catch{return[]}if(!b||"object"!=typeof b)return[];let c=[];for(let[a,d]of Object.entries(b))d&&"object"==typeof d&&c.push({modelId:a,inputTokens:"number"==typeof d.inputTokens?d.inputTokens:0,outputTokens:"number"==typeof d.outputTokens?d.outputTokens:0,costUsd:"number"==typeof d.costUsd?d.costUsd:0});return c.sort((a,b)=>b.costUsd-a.costUsd)}function g(a){if(!a)return null;let b=a.toLowerCase();return b.includes("claude")||b.includes("sonnet")||b.includes("opus")||b.includes("haiku")?"claude":b.includes("gemini")?"gemini":b.includes("gpt")||b.includes("codex")||b.includes("o3")||b.includes("o4")?"codex":null}a.s(["BACKEND_BADGE_VARIANTS",0,d,"BACKEND_LABELS",0,b,"BACKEND_PROVIDER_LABELS",0,{claude:"Claude (Anthropic)",codex:"ChatGPT (OpenAI)",gemini:"Gemini (Google)"},"BACKEND_PROVIDER_SHORT",0,{claude:"Claude",codex:"ChatGPT",gemini:"Gemini"},"BACKEND_WEB_SEARCH_DESCRIPTIONS",0,{claude:"Lets the agent call Anthropic's built-in WebSearch tool.",codex:"Lets the agent call OpenAI's web_search tool. Works in safe (sandbox) mode — the tool runs at OpenAI, not as a local shell command.",gemini:"Lets the agent call Gemini's google_web_search tool."},"detectBackendFromModel",0,g,"formatModelName",0,function(a){return a?a.replace(/^claude-/,"Claude ").replace(/^gpt-/,"GPT-").replace(/^gemini-/,"Gemini ").replace(/-/g," ").replace(/\bpreview\b/gi,"(preview)").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\bcodex\b/gi,"Codex").replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\s+/g," ").trim():"Not set"},"formatShortModelName",0,function(a){if(!a)return"unknown";if("opus"===a)return"Opus";if("sonnet"===a)return"Sonnet";let b=a.replace(/-\d{8,}$/,"").replace(/^claude-/,"").replace(/(\d+)-(\d+)(?![-\d])/g,"$1.$2").replace(/-/g," ");return a.startsWith("gpt-")&&(b=`GPT-${b.replace(/^gpt\s*/i,"")}`),a.startsWith("gemini-")&&(b=b.replace(/^gemini\s*/i,"Gemini ")),b.replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\s+/g," ").trim()},"getBackendLabel",0,function(a){return b[a]},"getBackendShortLabel",0,function(a){return c[a]},"getProcessGroup",0,function(a){return a.startsWith("wiki.")?"Wiki":a.startsWith("message.")||a.startsWith("dashboard.")?"Conversation":a.startsWith("routine.")?"Routines":a.startsWith("git.")||a.startsWith("github.")?"Git & GitHub":a.startsWith("calendar.")||"gmail_classify"===a?"Integrations":"Tasks"},"getProcessLabel",0,function(a){return e[a]??a},"modelBadgeVariant",0,function(a){if(!a)return"gray";let b=g(a);return b?d[b]:"gray"},"parseModelUsage",0,f,"pickDisplayModel",0,function(a,b){let c=f(b);return c.length>0&&c[0]?c[0].modelId:a??null}])},39293,a=>{"use strict";let b=(0,a.i(5423).default)("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);a.s(["RefreshCw",0,b],39293)},74794,a=>{"use strict";var b=a.i(62588),c=a.i(59974);a.s(["useBackends",0,function(a){return(0,b.useQuery)({queryKey:["backends"],queryFn:()=>c.api.get("/backends"),enabled:a?.enabled??!0,staleTime:6e4})}])},7037,a=>{"use strict";let b=(0,a.i(5423).default)("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);a.s(["Pencil",0,b],7037)},95024,a=>{"use strict";let b=(0,a.i(5423).default)("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);a.s(["Save",0,b],95024)},48033,a=>{"use strict";let b=(0,a.i(5423).default)("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);a.s(["Lock",0,b],48033)},8735,a=>{"use strict";let b=(0,a.i(5423).default)("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);a.s(["Upload",0,b],8735)},7437,a=>{"use strict";var b=a.i(8753),c=a.i(62588),d=a.i(81130),e=a.i(59974);class f extends Error{conflict;constructor(a){super("context_conflict"),this.conflict=a,this.name="ContextConflictError"}}a.s(["ContextConflictError",0,f,"useContextFile",0,function(a,b){return(0,c.useQuery)({queryKey:["context",a],queryFn:()=>e.api.get(`/context/${a}`),enabled:!!a&&b?.enabled!==!1,refetchOnWindowFocus:b?.enabled!==!1})},"useContextList",0,function(a){return(0,c.useQuery)({queryKey:["context-list",a],queryFn:()=>e.api.get(`/context/list/${a}`)})},"useDeleteContextFile",0,function(){let a=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:async({path:a})=>e.api.delete(`/context/${a}`),onSuccess:(b,{path:c})=>{a.removeQueries({queryKey:["context",c]}),a.invalidateQueries({queryKey:["snapshots",c]});let d=c.includes("/")?c.split("/")[0]:null;d&&a.invalidateQueries({queryKey:["context-list",d]}),c.startsWith("routines/custom/")&&a.invalidateQueries({queryKey:["context-list","routines"]})}})},"useUpdateContextFile",0,function(){let a=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:async({path:a,content:b,expectedMtime:c})=>{try{return await e.api.put(`/context/${a}`,{content:b,...void 0!==c?{expectedMtime:c}:{}})}catch(a){if(a instanceof e.ApiError&&409===a.status&&a.body?.error==="conflict"){let b=a.body;throw new f({currentMtime:b.currentMtime??"",currentContent:b.currentContent??""})}throw a}},onSuccess:(b,{path:c,content:d})=>{a.setQueryData(["context",c],a=>a?{...a,content:d,lastModified:b.lastModified}:{content:d,lastModified:b.lastModified,editable:!0}),a.invalidateQueries({queryKey:["snapshots",c]});let e=c.includes("/")?c.split("/")[0]:null;e&&a.invalidateQueries({queryKey:["context-list",e]})}})}])},69481,a=>{"use strict";var b=a.i(39752),c=a.i(32307),d=a.i(21218),e=a.i(48558);a.s(["FileConflictBanner",0,function({onReload:a,onOverwrite:f,isPending:g=!1,reloadLabel:h="Reload latest",className:i}){return(0,b.jsxs)("div",{role:"alert","aria-live":"assertive",className:(0,e.cn)("rounded-md border border-amber-500/50 bg-amber-500/10 p-3 text-xs",i),children:[(0,b.jsxs)("div",{className:"mb-2 flex items-center gap-2 font-semibold text-amber-900 dark:text-amber-200",children:[(0,b.jsx)(c.AlertTriangle,{className:"h-3.5 w-3.5"}),"File was modified by another process"]}),(0,b.jsx)("p",{className:"mb-3 text-amber-900/90 dark:text-amber-100/90",children:"The agent or another tab wrote to this file after you started editing. Your unsaved draft is preserved — choose how to proceed."}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(d.Button,{size:"sm",variant:"outline",onClick:a,disabled:g,className:"h-7",children:h}),(0,b.jsx)(d.Button,{size:"sm",variant:"destructive",onClick:f,disabled:g,className:"h-7",children:g?"Overwriting…":"Overwrite with my edits"})]})]})}])},84478,a=>{"use strict";var b=a.i(13925),c=a.i(8753),d=a.i(62588),e=a.i(81130),f=a.i(59974);let g=["managed-tasks"],h=["management-history"];function i(a){a.invalidateQueries({queryKey:g}),a.invalidateQueries({queryKey:h}),a.invalidateQueries({queryKey:["managed-task"]}),a.invalidateQueries({queryKey:["recurring-schedules"]}),a.invalidateQueries({queryKey:["schedule-list"]}),a.invalidateQueries({queryKey:["schedule-next"]})}a.s(["useDeleteManagedTask",0,function(){let a=(0,e.useQueryClient)();return(0,c.useMutation)({mutationFn:a=>f.api.delete(`/managed-tasks/${a}`),onSuccess:()=>i(a)})},"useManagedTask",0,function(a){return(0,d.useQuery)({queryKey:["managed-task",a],queryFn:()=>f.api.get(`/managed-tasks/${a}`),enabled:!!a,staleTime:15e3})},"useManagedTaskRuns",0,function(a,b=25){return(0,d.useQuery)({queryKey:["managed-task-runs",a,b],queryFn:()=>f.api.get(`/managed-tasks/${a}/runs`,{limit:b}),enabled:!!a,staleTime:15e3})},"useManagedTasks",0,function(){return(0,d.useQuery)({queryKey:g,queryFn:()=>f.api.get("/managed-tasks"),staleTime:3e4})},"useManagementHistory",0,function(a=50){return(0,b.useInfiniteQuery)({queryKey:[...h,a],queryFn:({pageParam:b})=>f.api.get("/management-history",{limit:a,...b?{before_id:b}:{}}),initialPageParam:void 0,getNextPageParam:a=>a.nextCursor??void 0,staleTime:15e3})},"useRenameManagedTaskApp",0,function(){let a=(0,e.useQueryClient)();return(0,c.useMutation)({mutationFn:({id:a,newApp:b})=>f.api.post(`/managed-tasks/${a}/rename-app`,{newApp:b}),onSuccess:(b,c)=>{i(a),a.invalidateQueries({queryKey:["managed-task-runs",c.id]}),a.invalidateQueries({queryKey:["entities"]}),a.invalidateQueries({queryKey:["entities-by-source"]})}})},"useRunManagedTaskNow",0,function(){let a=(0,e.useQueryClient)();return(0,c.useMutation)({mutationFn:({id:a,reason:b})=>f.api.post(`/managed-tasks/${a}/run-now`,{reason:b}),onSuccess:(b,c)=>{a.invalidateQueries({queryKey:h}),a.invalidateQueries({queryKey:["managed-task-runs",c.id]}),a.invalidateQueries({queryKey:["schedule-list"]})}})},"useUpdateManagedTask",0,function(){let a=(0,e.useQueryClient)();return(0,c.useMutation)({mutationFn:({id:a,...b})=>f.api.patch(`/managed-tasks/${a}`,b),onSuccess:(b,c)=>{i(a),a.invalidateQueries({queryKey:["managed-task-runs",c.id]})}})}])},40294,93929,a=>{"use strict";var b=a.i(34542),c=a.i(81130),d=a.i(59974);a.s(["useRegenerate",0,function(){let[a,e]=(0,b.useState)(null),[f,g]=(0,b.useState)("idle"),[h,i]=(0,b.useState)(null),j=(0,c.useQueryClient)(),k=(0,b.useRef)(null),l=(0,b.useRef)(null),m=(0,b.useRef)(0);(0,b.useEffect)(()=>()=>{k.current&&clearInterval(k.current)},[]);let n=(0,b.useCallback)(()=>{k.current&&(clearInterval(k.current),k.current=null)},[]);return{regenerate:(0,b.useCallback)(async a=>{if("triggered"===f||"running"===f)return;e(a),g("triggered"),i(null),m.current=Date.now();let b=await d.api.get(`/context/${a}`).catch(()=>null);l.current=b?.lastModified??null;try{await d.api.post("/agent/regenerate",{target:a}),g("running"),k.current=setInterval(async()=>{if(Date.now()-m.current>3e5){n(),g("error"),i("Timeout — agent may still be processing");return}try{let b=await d.api.get(`/context/${a}`);(null===l.current||b.lastModified!==l.current)&&(n(),g("done"),j.invalidateQueries({queryKey:["context",a]}),j.invalidateQueries({queryKey:["calendar"]}),setTimeout(()=>{g("idle"),e(null)},5e3))}catch{}},3e3)}catch(a){g("error"),i(a instanceof Error?a.message:"Failed to trigger")}},[f,j,n]),target:a,status:f,error:h,dismiss:(0,b.useCallback)(()=>{n(),g("idle"),e(null),i(null)},[n])}}],40294);var e=a.i(39752),f=a.i(21218),g=a.i(48558),h=a.i(39293),i=a.i(54506),j=a.i(91092),k=a.i(92241);a.s(["RegenerateButton",0,function({target:a,label:b,currentTarget:c,status:d,error:l,onRegenerate:m,onDismiss:n,variant:o="outline",size:p="sm",className:q}){let r=c===a;return r&&"done"===d?(0,e.jsxs)(f.Button,{variant:o,size:p,className:(0,g.cn)("text-emerald-600 dark:text-emerald-400",q),onClick:n,children:[(0,e.jsx)(i.Check,{className:"h-3.5 w-3.5 mr-1.5"}),"Updated"]}):r&&"error"===d?(0,e.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,e.jsxs)(f.Button,{variant:o,size:p,className:(0,g.cn)("text-red-600 dark:text-red-400",q),onClick:n,children:[(0,e.jsx)(j.AlertCircle,{className:"h-3.5 w-3.5 mr-1.5"}),"Failed"]}),l&&(0,e.jsx)("span",{className:"text-xs text-red-600 dark:text-red-400 max-w-48 truncate",children:l})]}):(0,e.jsxs)(f.Button,{variant:o,size:p,onClick:()=>m(a),disabled:"triggered"===d||"running"===d,className:q,children:[r&&"idle"!==d?(0,e.jsx)(k.Loader2,{className:"h-3.5 w-3.5 mr-1.5 animate-spin"}):(0,e.jsx)(h.RefreshCw,{className:"h-3.5 w-3.5 mr-1.5"}),r&&"triggered"===d?"Triggering...":r&&"running"===d?"Running...":b]})}],93929)},96459,a=>{"use strict";var b=a.i(62588),c=a.i(59974);a.s(["useSetupStatus",0,function(){return(0,b.useQuery)({queryKey:["setup-status"],queryFn:()=>c.api.get("/setup/status"),staleTime:3e4})}])}];
2
+
3
+ //# sourceMappingURL=_05rlac0._.js.map