@aitne/dashboard 0.1.4 → 0.1.7

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/trace +2 -2
  651. package/.next/trace-build +1 -1
  652. package/.next/types/routes.d.ts +5 -1
  653. package/.next/types/validator.ts +36 -0
  654. package/package.json +2 -2
  655. package/.next/server/chunks/ssr/[root-of-the-server]__02idks~._.js +0 -3
  656. package/.next/server/chunks/ssr/[root-of-the-server]__02idks~._.js.map +0 -1
  657. package/.next/server/chunks/ssr/_0-8__9s._.js +0 -3
  658. package/.next/server/chunks/ssr/_0-8__9s._.js.map +0 -1
  659. package/.next/server/chunks/ssr/_0._ysx3._.js.map +0 -1
  660. package/.next/server/chunks/ssr/_0.h-tj4._.js +0 -3
  661. package/.next/server/chunks/ssr/_0.h-tj4._.js.map +0 -1
  662. package/.next/server/chunks/ssr/_02g4o18._.js +0 -3
  663. package/.next/server/chunks/ssr/_02g4o18._.js.map +0 -1
  664. package/.next/server/chunks/ssr/_0463dg_._.js +0 -3
  665. package/.next/server/chunks/ssr/_0463dg_._.js.map +0 -1
  666. package/.next/server/chunks/ssr/_04a42pa._.js +0 -3
  667. package/.next/server/chunks/ssr/_04a42pa._.js.map +0 -1
  668. package/.next/server/chunks/ssr/_04kt9.8._.js +0 -3
  669. package/.next/server/chunks/ssr/_04kt9.8._.js.map +0 -1
  670. package/.next/server/chunks/ssr/_052zlig._.js +0 -3
  671. package/.next/server/chunks/ssr/_052zlig._.js.map +0 -1
  672. package/.next/server/chunks/ssr/_060itkv._.js +0 -3
  673. package/.next/server/chunks/ssr/_060itkv._.js.map +0 -1
  674. package/.next/server/chunks/ssr/_07p0n9g._.js +0 -3
  675. package/.next/server/chunks/ssr/_07p0n9g._.js.map +0 -1
  676. package/.next/server/chunks/ssr/_08mbdt1._.js +0 -3
  677. package/.next/server/chunks/ssr/_08mbdt1._.js.map +0 -1
  678. package/.next/server/chunks/ssr/_08r_qwd._.js +0 -3
  679. package/.next/server/chunks/ssr/_08r_qwd._.js.map +0 -1
  680. package/.next/server/chunks/ssr/_08xk3kp._.js +0 -3
  681. package/.next/server/chunks/ssr/_08xk3kp._.js.map +0 -1
  682. package/.next/server/chunks/ssr/_0938p.1._.js +0 -3
  683. package/.next/server/chunks/ssr/_0938p.1._.js.map +0 -1
  684. package/.next/server/chunks/ssr/_0afdsbz._.js +0 -3
  685. package/.next/server/chunks/ssr/_0afdsbz._.js.map +0 -1
  686. package/.next/server/chunks/ssr/_0ff5qav._.js +0 -3
  687. package/.next/server/chunks/ssr/_0ff5qav._.js.map +0 -1
  688. package/.next/server/chunks/ssr/_0gp8d.p._.js +0 -3
  689. package/.next/server/chunks/ssr/_0gp8d.p._.js.map +0 -1
  690. package/.next/server/chunks/ssr/_0k2j6-t._.js +0 -3
  691. package/.next/server/chunks/ssr/_0k2j6-t._.js.map +0 -1
  692. package/.next/server/chunks/ssr/_0mix09j._.js +0 -3
  693. package/.next/server/chunks/ssr/_0mix09j._.js.map +0 -1
  694. package/.next/server/chunks/ssr/_0mk7dqt._.js +0 -3
  695. package/.next/server/chunks/ssr/_0mk7dqt._.js.map +0 -1
  696. package/.next/server/chunks/ssr/_0n168uk._.js +0 -3
  697. package/.next/server/chunks/ssr/_0n168uk._.js.map +0 -1
  698. package/.next/server/chunks/ssr/_0nwg6lo._.js +0 -3
  699. package/.next/server/chunks/ssr/_0nwg6lo._.js.map +0 -1
  700. package/.next/server/chunks/ssr/_0pwd-nz._.js +0 -3
  701. package/.next/server/chunks/ssr/_0pwd-nz._.js.map +0 -1
  702. package/.next/server/chunks/ssr/_0rspzax._.js +0 -3
  703. package/.next/server/chunks/ssr/_0rspzax._.js.map +0 -1
  704. package/.next/server/chunks/ssr/_0t-2u_i._.js +0 -3
  705. package/.next/server/chunks/ssr/_0t-2u_i._.js.map +0 -1
  706. package/.next/server/chunks/ssr/_0vn5_62._.js +0 -5
  707. package/.next/server/chunks/ssr/_0vn5_62._.js.map +0 -1
  708. package/.next/server/chunks/ssr/_0yiz~s5._.js +0 -3
  709. package/.next/server/chunks/ssr/_0yiz~s5._.js.map +0 -1
  710. package/.next/server/chunks/ssr/_0~4ta0s._.js +0 -3
  711. package/.next/server/chunks/ssr/_0~4ta0s._.js.map +0 -1
  712. package/.next/server/chunks/ssr/_0~5r_8s._.js +0 -3
  713. package/.next/server/chunks/ssr/_0~5r_8s._.js.map +0 -1
  714. package/.next/server/chunks/ssr/_115_o9h._.js +0 -3
  715. package/.next/server/chunks/ssr/_115_o9h._.js.map +0 -1
  716. package/.next/server/chunks/ssr/_13mk_9n._.js +0 -3
  717. package/.next/server/chunks/ssr/_13mk_9n._.js.map +0 -1
  718. package/.next/server/chunks/ssr/packages_dashboard_src_07.4ogy._.js +0 -3
  719. package/.next/server/chunks/ssr/packages_dashboard_src_07.4ogy._.js.map +0 -1
  720. package/.next/static/chunks/00p2fat~wl7uz.js +0 -1
  721. package/.next/static/chunks/07aksg8x5r0d9.js +0 -1
  722. package/.next/static/chunks/082cjr-p4ubw7.js +0 -1
  723. package/.next/static/chunks/09hewwcw-ts34.js +0 -1
  724. package/.next/static/chunks/09j~fmfefj03i.js +0 -1
  725. package/.next/static/chunks/0adfy5uyh_8c8.js +0 -1
  726. package/.next/static/chunks/0agoryx~xvt31.js +0 -1
  727. package/.next/static/chunks/0aoci_z-c0ele.css +0 -1
  728. package/.next/static/chunks/0atsym5j2dgzw.js +0 -1
  729. package/.next/static/chunks/0b3tta7tnnbur.js +0 -1
  730. package/.next/static/chunks/0d02.lqlwe9a_.js +0 -1
  731. package/.next/static/chunks/0eqyosc.qae5n.js +0 -1
  732. package/.next/static/chunks/0kkrrex6qm68-.js +0 -1
  733. package/.next/static/chunks/0lfxqap3b6sar.js +0 -11
  734. package/.next/static/chunks/0ord2b6oqi.3g.js +0 -1
  735. package/.next/static/chunks/0rh-ee9ky1ybq.js +0 -1
  736. package/.next/static/chunks/0t5v~o90gn66f.js +0 -1
  737. package/.next/static/chunks/0vaymprggmdwi.js +0 -3
  738. package/.next/static/chunks/0x2vder5-rzy3.js +0 -1
  739. package/.next/static/chunks/0yk64vsbmwqd8.js +0 -1
  740. package/.next/static/chunks/0yvzj34_7s6kb.js +0 -1
  741. package/.next/static/chunks/104za._t2qmr8.js +0 -1
  742. package/.next/static/chunks/13pe2-ed6nel..js +0 -1
  743. package/.next/static/chunks/13zn61okwjlyn.js +0 -1
  744. package/.next/static/chunks/153hm0-366-at.js +0 -1
  745. package/.next/static/chunks/16k3_-6f7kx97.js +0 -1
  746. package/.next/static/chunks/18904zqns5ncn.js +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
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/dashboard/src/app/activity/page.tsx","../../../../../../packages/dashboard/src/components/logs/event-filters.tsx","../../../../../../packages/dashboard/src/components/logs/event-row.tsx","../../../../../../packages/dashboard/src/lib/docs/event-type-doc-map.ts","../../../../../../packages/dashboard/src/components/logs/event-detail-sheet.tsx","../../../../../../packages/dashboard/src/components/logs/events-content.tsx","../../../../../../packages/dashboard/src/lib/hooks/use-system-logs.ts","../../../../../../packages/dashboard/src/components/logs/system-logs-content.tsx","../../../../../../packages/dashboard/src/components/activity/conversations-content.tsx","../../../../../../packages/dashboard/src/lib/hooks/use-notifications.ts","../../../../../../packages/dashboard/src/components/activity/notifications-content.tsx","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/bell.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/arrow-down.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/messages-square.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/scroll-text.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/send.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/smartphone.ts"],"sourcesContent":["\"use client\";\n\nimport { Suspense } from \"react\";\nimport { useRouter, useSearchParams } from \"next/navigation\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\nimport { EventsContent } from \"@/components/logs/events-content\";\nimport { SystemLogsContent } from \"@/components/logs/system-logs-content\";\nimport { ConversationsContent } from \"@/components/activity/conversations-content\";\nimport { NotificationsContent } from \"@/components/activity/notifications-content\";\nimport { cn } from \"@/lib/utils\";\n\nfunction ActivityPageInner() {\n const searchParams = useSearchParams();\n const router = useRouter();\n const tab = searchParams.get(\"tab\") ?? \"events\";\n\n const handleTabChange = (next: string) => {\n router.replace(`/activity?tab=${next}`, { scroll: false });\n };\n\n // System Logs uses an internal ScrollArea that needs a bounded parent\n // (h-full → flex-1 chain). All other tabs let the page grow naturally\n // so main's overflow-y-auto scrolls and p-6's bottom padding stays visible.\n const isSystemTab = tab === \"system\";\n\n return (\n <div\n className={cn(\n \"flex flex-col p-6 pb-8\",\n isSystemTab ? \"h-full\" : \"min-h-full\",\n )}\n >\n <h1 className=\"text-2xl font-semibold text-foreground\">Agent Log</h1>\n <p className=\"mt-1 mb-4 max-w-3xl text-sm text-muted-foreground\">\n A historical record of everything the agent has seen or done. Use <strong>Events</strong> for agent invocations (what triggered a run, which backend served it, success/failure),{\" \"}\n <strong>System Logs</strong> for daemon-level output (startup, errors, warnings from the Hono server),{\" \"}\n <strong>Conversations</strong> for completed chat threads from every messaging platform, and <strong>Notifications</strong> for outbound messages the agent sent proactively.\n </p>\n\n <Tabs\n value={tab}\n onValueChange={handleTabChange}\n className={cn(\"flex flex-col\", isSystemTab && \"min-h-0 flex-1\")}\n >\n <TabsList className=\"w-fit\">\n <TabsTrigger value=\"events\">Events</TabsTrigger>\n <TabsTrigger value=\"system\">System Logs</TabsTrigger>\n <TabsTrigger value=\"conversations\">Conversations</TabsTrigger>\n <TabsTrigger value=\"notifications\">Notifications</TabsTrigger>\n </TabsList>\n\n <TabsContent value=\"events\" className=\"mt-4\">\n <EventsContent enabled={tab === \"events\"} />\n </TabsContent>\n\n <TabsContent value=\"system\" className=\"mt-4 flex min-h-0 flex-1 flex-col\">\n <SystemLogsContent enabled={tab === \"system\"} />\n </TabsContent>\n\n <TabsContent value=\"conversations\" className=\"mt-4\">\n <ConversationsContent enabled={tab === \"conversations\"} />\n </TabsContent>\n\n <TabsContent value=\"notifications\" className=\"mt-4\">\n <NotificationsContent enabled={tab === \"notifications\"} />\n </TabsContent>\n </Tabs>\n </div>\n );\n}\n\nexport default function ActivityPage() {\n return (\n <Suspense>\n <ActivityPageInner />\n </Suspense>\n );\n}\n","\"use client\";\n\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui/select\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { Button } from \"@/components/ui/button\";\nimport { RefreshCw } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\ninterface EventFiltersProps {\n type: string;\n onTypeChange: (v: string) => void;\n result: string;\n onResultChange: (v: string) => void;\n dateRange: string;\n onDateRangeChange: (v: string) => void;\n live: boolean;\n onLiveToggle: () => void;\n onRefresh: () => void;\n isRefreshing: boolean;\n}\n\nconst EVENT_TYPES = [\n \"all\",\n \"message.received\",\n \"routine.morning_routine\",\n \"routine.evening_review\",\n \"scheduled.task\",\n \"schedule.approaching\",\n];\n\nconst RESULTS = [\"all\", \"success\", \"failed\", \"partial\", \"skipped\"];\nconst DATE_RANGES = [\n { label: \"Today\", value: \"today\" },\n { label: \"7 days\", value: \"7d\" },\n { label: \"30 days\", value: \"30d\" },\n];\n\nexport function EventFilters(props: EventFiltersProps) {\n return (\n <div className=\"flex flex-wrap items-center gap-3\">\n {/* Filters */}\n <Select value={props.type} onValueChange={props.onTypeChange}>\n <SelectTrigger className=\"w-48\">\n <SelectValue placeholder=\"Event Type\" />\n </SelectTrigger>\n <SelectContent>\n {EVENT_TYPES.map((t) => (\n <SelectItem key={t} value={t}>\n {t === \"all\" ? \"All Types\" : t}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n\n <Select value={props.result} onValueChange={props.onResultChange}>\n <SelectTrigger className=\"w-32\">\n <SelectValue placeholder=\"Result\" />\n </SelectTrigger>\n <SelectContent>\n {RESULTS.map((r) => (\n <SelectItem key={r} value={r}>\n {r === \"all\" ? \"All Results\" : r}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n\n <Separator orientation=\"vertical\" className=\"h-6\" />\n\n {/* Time range */}\n <div className=\"flex gap-1\">\n {DATE_RANGES.map((d) => (\n <Button\n key={d.value}\n variant={props.dateRange === d.value ? \"default\" : \"outline\"}\n size=\"sm\"\n onClick={() => props.onDateRangeChange(d.value)}\n >\n {d.label}\n </Button>\n ))}\n </div>\n\n <Separator orientation=\"vertical\" className=\"h-6\" />\n\n {/* Mode */}\n <button\n onClick={props.onLiveToggle}\n className={cn(\n \"flex items-center gap-2 rounded-md px-3 py-1.5 text-xs font-medium transition-colors\",\n props.live\n ? \"bg-emerald-50 text-emerald-700 dark:bg-emerald-950 dark:text-emerald-300\"\n : \"bg-muted text-muted-foreground\",\n )}\n >\n <span\n className={cn(\n \"h-2 w-2 rounded-full\",\n props.live ? \"bg-emerald-500 animate-pulse\" : \"bg-gray-400\",\n )}\n />\n Live\n </button>\n\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={props.onRefresh}\n disabled={props.isRefreshing}\n aria-label=\"Refresh events\"\n title=\"Refresh events\"\n >\n <RefreshCw\n className={cn(\"h-3.5 w-3.5\", props.isRefreshing && \"animate-spin\")}\n />\n <span className=\"ml-1.5\">Refresh</span>\n </Button>\n </div>\n );\n}\n","\"use client\";\n\nimport { Badge } from \"@/components/ui/badge\";\nimport { Tooltip, TooltipTrigger, TooltipContent } from \"@/components/ui/tooltip\";\nimport { formatRelativeTime, formatAbsoluteTime, formatCurrency, formatDuration, formatTokens, formatTokenCount } from \"@/lib/utils\";\nimport { EVENT_TYPE_COLORS, RESULT_COLORS } from \"@/lib/constants\";\nimport { formatShortModelName, modelBadgeVariant, parseModelUsage, pickDisplayModel } from \"@/lib/backend-ui\";\nimport type { EventRow as EventRowType } from \"@/lib/api-types\";\n\ninterface EventRowProps {\n event: EventRowType;\n onClick: () => void;\n}\n\nexport function EventRow({ event, onClick }: EventRowProps) {\n const typeColor = (EVENT_TYPE_COLORS[event.action_type] ?? \"gray\") as \"blue\" | \"green\" | \"gray\" | \"purple\" | \"amber\";\n const resultColor = (RESULT_COLORS[event.result] ?? \"gray\") as \"green\" | \"red\" | \"amber\" | \"gray\";\n // Prefer the actually-billed model from modelUsage over the requested\n // model_used — the SDK can route opus-4-7 → opus-4-6[1m] silently, and the\n // cost in this row reflects whichever model actually ran.\n const billedModels = parseModelUsage(event.model_usage_json);\n const displayModelId = pickDisplayModel(event.model_used, event.model_usage_json);\n const modelLabel = displayModelId ? formatShortModelName(displayModelId) : null;\n const modelMismatch =\n event.model_used != null\n && billedModels.length > 0\n && billedModels.some((m) => m.modelId !== event.model_used);\n\n return (\n <tr\n onClick={onClick}\n className=\"cursor-pointer border-b border-border transition-colors hover:bg-muted/50\"\n >\n <td className=\"px-3 py-2 text-xs font-mono tabular-nums text-muted-foreground whitespace-nowrap\">\n <Tooltip>\n <TooltipTrigger>{formatAbsoluteTime(event.started_at)}</TooltipTrigger>\n <TooltipContent>{formatRelativeTime(event.started_at)}</TooltipContent>\n </Tooltip>\n </td>\n <td className=\"px-3 py-2\">\n <Badge variant={typeColor}>{event.action_type}</Badge>\n </td>\n <td className=\"hidden xl:table-cell px-3 py-2 text-xs text-muted-foreground\">{event.trigger}</td>\n <td className=\"hidden lg:table-cell px-3 py-2\">\n {modelLabel && (\n modelMismatch ? (\n <Tooltip>\n <TooltipTrigger>\n <span className=\"inline-flex items-center gap-1\">\n <Badge variant={modelBadgeVariant(displayModelId)}>{modelLabel}</Badge>\n <Badge variant=\"amber\" className=\"text-[10px] uppercase tracking-wide\">\n routed\n </Badge>\n </span>\n </TooltipTrigger>\n <TooltipContent>\n <div className=\"space-y-0.5 text-xs font-mono\">\n <div>requested: {formatShortModelName(event.model_used)}</div>\n {billedModels.map((m) => (\n <div key={m.modelId}>\n billed: {formatShortModelName(m.modelId)}\n </div>\n ))}\n </div>\n </TooltipContent>\n </Tooltip>\n ) : (\n <Badge variant={modelBadgeVariant(displayModelId)}>{modelLabel}</Badge>\n )\n )}\n </td>\n <td className=\"hidden xl:table-cell px-3 py-2 text-xs font-mono text-muted-foreground\">\n {event.model_used ? (\n <Tooltip>\n <TooltipTrigger>\n {formatTokens(\n event.tokens_input,\n event.tokens_output,\n event.cache_creation_tokens,\n event.cache_read_tokens,\n )}\n </TooltipTrigger>\n <TooltipContent>\n <div className=\"space-y-0.5 text-xs font-mono\">\n <div>fresh in: {formatTokenCount(event.tokens_input)}</div>\n <div>cache write: {formatTokenCount(event.cache_creation_tokens)}</div>\n <div>cache read: {formatTokenCount(event.cache_read_tokens)}</div>\n <div className=\"border-t border-border pt-0.5 mt-1\">\n out: {formatTokenCount(event.tokens_output)}\n </div>\n </div>\n </TooltipContent>\n </Tooltip>\n ) : null}\n </td>\n <td className=\"px-3 py-2 text-xs font-mono text-muted-foreground\">\n {formatCurrency(event.cost_usd)}\n </td>\n <td className=\"hidden lg:table-cell px-3 py-2 text-xs font-mono text-muted-foreground\">\n {formatDuration(event.duration_ms)}\n </td>\n <td className=\"px-3 py-2\">\n <Badge variant={resultColor}>{event.result}</Badge>\n </td>\n </tr>\n );\n}\n","/**\n * Activity → docs concept link map (DOCS_QA_DESIGN.md §8.4 E9, P5 polish).\n *\n * `agent_actions.action_type` is set to `event.type` (see\n * `daemon/src/safety/audit.ts:124`), NOT to the ProcessKey resolved later\n * in routing. That means several keys that look like obvious entries here\n * are actually purely-routing concepts and never appear in the column:\n *\n * - `message.dm` / `message.mention` / `dashboard.chat` — every owner\n * message is emitted as `event.type === \"message.received\"`; the DM /\n * mention / dashboard-chat distinction is computed by `resolveProcessKey`\n * for routing only and never persisted. The single\n * `\"message.received\" → features/messaging/overview` entry below covers\n * all four UI surfaces.\n *\n * The map below is therefore keyed by event-type strings only. Entries are\n * grouped:\n * - \"Currently emitted\" — verified emission paths in the daemon.\n * - \"Reserved (defensive)\" — known-future or rarely-fired ProcessKeys\n * that the daemon may eventually emit as `event.type` (e.g. when the\n * docs QA pipeline finally enqueues `dashboard.docs_qa` events). Safe\n * to keep — `docIdForEventType` simply never returns them today.\n *\n * Iteration: exact-match check first, then prefix rules. The prefix rules\n * cover the dynamic families:\n * - `routine.custom.<slug>` → custom routines doc\n * - `setup.*` → setup wizard walkthrough (defensive — see\n * dispatcher.ts:2236; `setup.initial`/`setup.update` are prompt keys\n * today, but the family is reserved as a future event-type namespace)\n * - `calendar.*` → calendar integration\n * - `git.*` → git integration\n *\n * A null result means \"no doc to link\" — callers must hide the affordance\n * rather than render a dead link. Several real action_types intentionally\n * resolve to null because they have no operator-facing meaning:\n * `attachment.upload.{inbound,outbound}`, `delegated_proxy.invoke`\n * (RESERVED — RPC route is commented; see integrations.ts route notes),\n * `delegated_task.exec` (the active task-mode header row — internal\n * subprocess accounting, no operator UI), `blocked_absolute`,\n * `qa_invalid_citation`.\n */\n\nconst EXACT: Record<string, string> = {\n // ── Currently emitted ───────────────────────────────────────────────\n // Routines\n \"routine.morning_routine\": \"features/routines/morning-routine\",\n \"routine.evening_review\": \"features/routines/evening-review\",\n \"routine.weekly_review\": \"features/routines/weekly-review\",\n \"routine.monthly_review\": \"features/routines/monthly-review\",\n \"routine.hourly_check\": \"features/routines/hourly-check\",\n \"routine.roadmap_refresh\": \"features/memory-files/roadmap\",\n \"routine.today_refresh\": \"features/memory-files/today\",\n \"routine.user_profile_sweep\": \"features/memory-files/user-profile\",\n\n // Messaging — every owner message lands here regardless of DM/mention/\n // dashboard-chat routing distinction (see file-header note).\n \"message.received\": \"features/messaging/overview\",\n\n // Schedule\n \"scheduled.task\": \"features/memory-files/schedule\",\n \"schedule.approaching\": \"features/operations/schedule-approaching\",\n\n // ── Reserved (defensive) ────────────────────────────────────────────\n // `_initial` is currently a prompt-key variant in dispatcher.ts:1152 and\n // does not reach `event.type`, but the scheduler could plausibly start\n // emitting it as a distinct event type for first-day onboarding telemetry.\n \"routine.morning_routine_initial\": \"features/routines/morning-routine\",\n\n // The docs-QA dispatcher path is not yet wired (see DOCS_QA_BACKEND\n // §6 — `docs.ts` has no `/qa/messages` enqueue endpoint today). When\n // it lands, QA turns will likely audit as `dashboard.docs_qa`.\n \"dashboard.docs_qa\": \"features/operations/activity-and-conversations\",\n\n // Gmail classifier is currently invoked outside the AuditLogger path,\n // but `process_backend_config` reserves `gmail_classify` as a ProcessKey\n // and the classifier may be migrated to `agent_actions` later.\n gmail_classify: \"features/integrations/mail\",\n};\n\ninterface PrefixRule {\n prefix: string;\n docId: string;\n}\n\nconst PREFIX: ReadonlyArray<PrefixRule> = [\n { prefix: \"routine.custom.\", docId: \"features/routines/custom-routines\" },\n { prefix: \"setup.\", docId: \"guides/setup-wizard\" },\n { prefix: \"calendar.\", docId: \"features/integrations/calendar\" },\n { prefix: \"git.\", docId: \"features/integrations/git\" },\n];\n\n/**\n * Resolve a docs slug for an event type. Returns `null` when the event\n * type has no operator-facing doc — callers should hide the link.\n */\nexport function docIdForEventType(eventType: string): string | null {\n const exact = EXACT[eventType];\n if (exact) return exact;\n for (const rule of PREFIX) {\n if (eventType.startsWith(rule.prefix)) return rule.docId;\n }\n return null;\n}\n","\"use client\";\n\nimport { useState } from \"react\";\nimport { Sheet, SheetContent, SheetHeader, SheetTitle } from \"@/components/ui/sheet\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Collapsible, CollapsibleTrigger, CollapsibleContent } from \"@/components/ui/collapsible\";\nimport { formatAbsoluteTime, formatCurrency, formatDuration, formatTokenCount } from \"@/lib/utils\";\nimport { RESULT_COLORS } from \"@/lib/constants\";\nimport { ChevronDown } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { parseModelUsage } from \"@/lib/backend-ui\";\nimport type { EventRow } from \"@/lib/api-types\";\nimport { DocsLearnMore } from \"@/components/docs/docs-learn-more\";\nimport { docIdForEventType } from \"@/lib/docs/event-type-doc-map\";\n\ninterface EventDetailSheetProps {\n event: EventRow | null;\n onClose: () => void;\n}\n\nexport function EventDetailSheet({ event, onClose }: EventDetailSheetProps) {\n const [detailOpen, setDetailOpen] = useState(false);\n\n if (!event) return null;\n\n const resultColor = (RESULT_COLORS[event.result] ?? \"gray\") as \"green\" | \"red\" | \"amber\" | \"gray\";\n\n let formattedDetail: string | null = null;\n if (event.detail) {\n try {\n formattedDetail = JSON.stringify(JSON.parse(event.detail), null, 2);\n } catch {\n formattedDetail = event.detail;\n }\n }\n\n return (\n <Sheet open={!!event} onOpenChange={(open) => !open && onClose()}>\n <SheetContent className=\"flex flex-col\">\n <SheetHeader>\n <SheetTitle>Event Detail</SheetTitle>\n </SheetHeader>\n <div className=\"mt-4 flex-1 space-y-4 overflow-y-auto pr-2 -mr-2\">\n <DetailRow label=\"Event ID\">\n <code className=\"font-mono text-xs\">{event.event_id}</code>\n </DetailRow>\n <DetailRow label=\"Type\">\n <div className=\"flex items-center justify-end gap-2\">\n <Badge variant=\"blue\">{event.action_type}</Badge>\n {(() => {\n const docId = docIdForEventType(event.action_type);\n return docId ? (\n <DocsLearnMore docId={docId} label=\"Learn →\" />\n ) : null;\n })()}\n </div>\n </DetailRow>\n <DetailRow label=\"Trigger\">\n <span className=\"text-sm\">{event.trigger}</span>\n </DetailRow>\n <DetailRow label=\"Result\">\n <Badge variant={resultColor}>{event.result}</Badge>\n </DetailRow>\n <DetailRow label=\"Started\">\n <span className=\"text-sm\">{formatAbsoluteTime(event.started_at)}</span>\n </DetailRow>\n {event.completed_at && (\n <DetailRow label=\"Completed\">\n <span className=\"text-sm\">{formatAbsoluteTime(event.completed_at)}</span>\n </DetailRow>\n )}\n <DetailRow label=\"Duration\">\n <span className=\"text-sm font-mono\">{formatDuration(event.duration_ms)}</span>\n </DetailRow>\n {(() => {\n const billed = parseModelUsage(event.model_usage_json);\n // When the SDK billed exactly the model we requested, the\n // requested/billed distinction is noise — collapse to one row.\n const sameAsRequested =\n billed.length === 1\n && billed[0]?.modelId === event.model_used;\n if (billed.length === 0 || sameAsRequested) {\n return (\n <DetailRow label=\"Model\">\n <span className=\"text-sm\">{event.model_used ?? \"—\"}</span>\n </DetailRow>\n );\n }\n return (\n <>\n <DetailRow label=\"Model (requested)\">\n <span className=\"text-sm\">{event.model_used ?? \"—\"}</span>\n </DetailRow>\n <DetailRow label=\"Model (billed)\">\n <div className=\"space-y-0.5 text-right\">\n {billed.map((m) => (\n <div key={m.modelId} className=\"text-sm font-mono\">\n {m.modelId}\n <span className=\"ml-2 text-xs text-muted-foreground\">\n ({formatCurrency(m.costUsd)})\n </span>\n </div>\n ))}\n </div>\n </DetailRow>\n </>\n );\n })()}\n {event.model_used && (\n <>\n <DetailRow label=\"Input (fresh)\">\n <span className=\"text-sm font-mono\">{formatTokenCount(event.tokens_input)}</span>\n </DetailRow>\n <DetailRow label=\"Input (cache write)\">\n <span className=\"text-sm font-mono\">{formatTokenCount(event.cache_creation_tokens)}</span>\n </DetailRow>\n <DetailRow label=\"Input (cache read)\">\n <span className=\"text-sm font-mono\">{formatTokenCount(event.cache_read_tokens)}</span>\n </DetailRow>\n <DetailRow label=\"Input total\">\n <span className=\"text-sm font-mono\">\n {formatTokenCount(\n (event.tokens_input ?? 0)\n + (event.cache_creation_tokens ?? 0)\n + (event.cache_read_tokens ?? 0),\n )}\n </span>\n </DetailRow>\n <DetailRow label=\"Output\">\n <span className=\"text-sm font-mono\">{formatTokenCount(event.tokens_output)}</span>\n </DetailRow>\n </>\n )}\n <DetailRow label=\"Turns\">\n <span className=\"text-sm font-mono\">{event.num_turns}</span>\n </DetailRow>\n <DetailRow label=\"Cost\">\n <span className=\"text-sm font-mono\">{formatCurrency(event.cost_usd)}</span>\n </DetailRow>\n\n {formattedDetail && (\n <Collapsible open={detailOpen} onOpenChange={setDetailOpen}>\n <CollapsibleTrigger className=\"flex w-full items-center gap-1 text-sm text-muted-foreground hover:text-foreground\">\n Detail\n <ChevronDown className={cn(\"h-3 w-3 transition-transform\", detailOpen && \"rotate-180\")} />\n </CollapsibleTrigger>\n <CollapsibleContent>\n <pre className=\"mt-2 max-h-64 overflow-auto rounded-md bg-muted p-3 text-xs font-mono\">\n {formattedDetail}\n </pre>\n </CollapsibleContent>\n </Collapsible>\n )}\n\n {event.error && (\n <div className=\"rounded-lg bg-red-50 p-3 dark:bg-red-950\">\n <p className=\"text-xs font-medium text-red-700 dark:text-red-300\">Error</p>\n <pre className=\"mt-1 whitespace-pre-wrap text-xs text-red-600 dark:text-red-400\">\n {event.error}\n </pre>\n </div>\n )}\n </div>\n </SheetContent>\n </Sheet>\n );\n}\n\nfunction DetailRow({ label, children }: { label: string; children: React.ReactNode }) {\n return (\n <div className=\"flex items-start justify-between gap-4\">\n <span className=\"shrink-0 text-sm text-muted-foreground\">{label}</span>\n <div className=\"text-right\">{children}</div>\n </div>\n );\n}\n","\"use client\";\n\nimport { useState } from \"react\";\nimport { useEvents } from \"@/lib/hooks/use-events\";\nimport { useEventStream } from \"@/lib/hooks/use-event-stream\";\nimport { EventFilters } from \"@/components/logs/event-filters\";\nimport { EventRow } from \"@/components/logs/event-row\";\nimport { EventDetailSheet } from \"@/components/logs/event-detail-sheet\";\nimport { EmptyState } from \"@/components/shared/empty-state\";\nimport { DocsLearnMore } from \"@/components/docs/docs-learn-more\";\nimport { QueryResult, TableSkeleton } from \"@/components/shared/query-result\";\nimport { Button } from \"@/components/ui/button\";\nimport { Activity } from \"lucide-react\";\nimport type { EventRow as EventRowType } from \"@/lib/api-types\";\n\nconst DATE_RANGE_DAYS: Record<string, string> = {\n today: \"1\",\n \"7d\": \"7\",\n \"30d\": \"30\",\n};\n\nexport function EventsContent({ enabled }: { enabled: boolean }) {\n const [type, setType] = useState(\"all\");\n const [result, setResult] = useState(\"all\");\n const [dateRange, setDateRange] = useState(\"today\");\n const [live, setLive] = useState(true);\n const [selectedEvent, setSelectedEvent] = useState<EventRowType | null>(null);\n\n const filters = {\n type: type === \"all\" ? undefined : type,\n result: result === \"all\" ? undefined : result,\n days: DATE_RANGE_DAYS[dateRange],\n };\n\n const { data, fetchNextPage, hasNextPage, isFetchingNextPage, isLoading, isError, error, refetch, isRefetching } = useEvents(\n filters,\n { enabled },\n );\n const streamEvents = useEventStream(live && enabled ? 50 : 0);\n\n // Merge stream events with paginated events (dedup by id, sorted newest first)\n const allApiEvents = data?.pages.flatMap((p) => p.events) ?? [];\n const seen = new Set<number>();\n const merged: EventRowType[] = [];\n\n if (live && enabled) {\n for (const e of streamEvents) {\n if (seen.has(e.id)) continue;\n if (filters.type && e.action_type !== filters.type) continue;\n if (filters.result && e.result !== filters.result) continue;\n seen.add(e.id);\n merged.push(e);\n }\n }\n for (const e of allApiEvents) {\n if (!seen.has(e.id)) {\n seen.add(e.id);\n merged.push(e);\n }\n }\n\n return (\n <div className=\"space-y-6\">\n <EventFilters\n type={type}\n onTypeChange={setType}\n result={result}\n onResultChange={setResult}\n dateRange={dateRange}\n onDateRangeChange={setDateRange}\n live={live}\n onLiveToggle={() => setLive(!live)}\n onRefresh={() => refetch()}\n isRefreshing={isRefetching}\n />\n\n <QueryResult\n isLoading={isLoading}\n isError={isError}\n error={error}\n onRetry={() => refetch()}\n skeleton={<TableSkeleton rows={8} />}\n >\n {merged.length === 0 ? (\n <EmptyState\n icon={Activity}\n title=\"No events found\"\n description=\"Events will appear here as the agent processes tasks\"\n >\n <div className=\"mt-4\">\n <DocsLearnMore docId=\"features/operations/activity-and-conversations\" />\n </div>\n </EmptyState>\n ) : (\n <div className=\"overflow-x-auto rounded-xl border border-border\">\n <table className=\"w-full text-left\" aria-label=\"Agent events\">\n <thead>\n <tr className=\"border-b border-border bg-muted/50\">\n <th className=\"px-3 py-2 text-xs font-medium text-muted-foreground\">Time</th>\n <th className=\"px-3 py-2 text-xs font-medium text-muted-foreground\">Type</th>\n <th className=\"hidden xl:table-cell px-3 py-2 text-xs font-medium text-muted-foreground\">Trigger</th>\n <th className=\"hidden lg:table-cell px-3 py-2 text-xs font-medium text-muted-foreground\">Model</th>\n <th className=\"hidden xl:table-cell px-3 py-2 text-xs font-medium text-muted-foreground\">In / Out</th>\n <th className=\"px-3 py-2 text-xs font-medium text-muted-foreground\">Cost</th>\n <th className=\"hidden lg:table-cell px-3 py-2 text-xs font-medium text-muted-foreground\">Duration</th>\n <th className=\"px-3 py-2 text-xs font-medium text-muted-foreground\">Result</th>\n </tr>\n </thead>\n <tbody>\n {merged.map((event) => (\n <EventRow\n key={event.id}\n event={event}\n onClick={() => setSelectedEvent(event)}\n />\n ))}\n </tbody>\n </table>\n </div>\n )}\n\n {hasNextPage && (\n <div className=\"flex justify-center\">\n <Button\n variant=\"outline\"\n onClick={() => fetchNextPage()}\n disabled={isFetchingNextPage}\n >\n {isFetchingNextPage ? \"Loading...\" : \"Load More\"}\n </Button>\n </div>\n )}\n </QueryResult>\n\n <EventDetailSheet event={selectedEvent} onClose={() => setSelectedEvent(null)} />\n </div>\n );\n}\n","\"use client\";\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useEffect, useRef, useState, useCallback, startTransition } from \"react\";\nimport { api } from \"@/lib/api-client\";\nimport type { LogEntry, SystemLogsResponse } from \"@aitne/shared\";\n\n/** Fetch recent buffered logs via REST. */\nexport function useSystemLogs(\n filters?: { level?: string; logger?: string },\n options?: { enabled?: boolean },\n) {\n return useQuery({\n queryKey: [\"system-logs\", filters],\n queryFn: () =>\n api.get<SystemLogsResponse>(\"/logs\", {\n limit: 500,\n level: filters?.level,\n logger: filters?.logger,\n }),\n enabled: options?.enabled,\n });\n}\n\nfunction mergeLogEntries(\n current: LogEntry[],\n incoming: LogEntry[],\n maxItems: number,\n): LogEntry[] {\n const byId = new Map<number, LogEntry>();\n for (const entry of current) byId.set(entry.id, entry);\n for (const entry of incoming) byId.set(entry.id, entry);\n return [...byId.values()]\n .sort((a, b) => a.id - b.id)\n .slice(-maxItems);\n}\n\n/** Subscribe to real-time log entries via SSE.\n * Pass `maxItems=0` or a falsy value to disconnect the stream entirely. */\nexport function useLogStream(\n maxItems = 500,\n filters?: { level?: string; logger?: string },\n) {\n const [entries, setEntries] = useState<LogEntry[]>([]);\n const [connected, setConnected] = useState(false);\n const esRef = useRef<EventSource | null>(null);\n const lastSeenIdRef = useRef(0);\n\n const clear = useCallback(() => {\n lastSeenIdRef.current = 0;\n setEntries([]);\n }, []);\n\n const mergeEntries = useCallback((incoming: LogEntry[]) => {\n if (incoming.length === 0) return;\n\n setEntries((prev) => {\n const next = mergeLogEntries(prev, incoming, maxItems);\n const last = next[next.length - 1];\n lastSeenIdRef.current = last?.id ?? lastSeenIdRef.current;\n return next;\n });\n }, [maxItems]);\n\n useEffect(() => {\n startTransition(() => {\n clear();\n if (!maxItems) setConnected(false);\n });\n if (!maxItems) return;\n\n // Protected SSE stays on the same-origin dashboard proxy so the browser\n // never needs direct access to the daemon's Bearer token.\n const es = new EventSource(\"/api/logs/stream\");\n esRef.current = es;\n\n es.onopen = () => {\n setConnected(true);\n\n // EventSource auto-reconnects, but it does not replay missed events.\n // On each reconnect, backfill anything newer than the last seen ID\n // from the in-memory log buffer.\n if (lastSeenIdRef.current > 0) {\n void api.get<SystemLogsResponse>(\"/logs\", {\n limit: maxItems,\n afterId: lastSeenIdRef.current,\n level: filters?.level,\n logger: filters?.logger,\n }).then((data) => mergeEntries(data.logs)).catch(() => {});\n }\n };\n es.onerror = () => setConnected(false);\n\n es.addEventListener(\"log\", (e) => {\n try {\n const entry = JSON.parse(e.data) as LogEntry;\n mergeEntries([entry]);\n } catch {\n /* ignore parse errors */\n }\n });\n\n es.addEventListener(\"ping\", () => {});\n\n return () => {\n es.close();\n esRef.current = null;\n setConnected(false);\n };\n }, [clear, filters?.level, filters?.logger, maxItems, mergeEntries]);\n\n return { entries, connected, clear };\n}\n","\"use client\";\n\nimport { useState, useEffect, useRef, useMemo, memo, useCallback } from \"react\";\nimport { useSystemLogs, useLogStream } from \"@/lib/hooks/use-system-logs\";\nimport { EmptyState } from \"@/components/shared/empty-state\";\nimport { QueryResult, TableSkeleton } from \"@/components/shared/query-result\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\";\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\nimport { ScrollText, Trash2, ArrowDown, ChevronRight } from \"lucide-react\";\nimport { cn, parseUtcDate } from \"@/lib/utils\";\nimport type { LogEntry } from \"@aitne/shared\";\n\nconst LEVEL_STYLES: Record<\n string,\n { badge: \"blue\" | \"amber\" | \"red\" | \"gray\" | \"default\"; text: string }\n> = {\n info: { badge: \"blue\", text: \"text-foreground\" },\n warn: { badge: \"amber\", text: \"text-amber-700 dark:text-amber-300\" },\n error: { badge: \"red\", text: \"text-red-700 dark:text-red-300\" },\n fatal: {\n badge: \"red\",\n text: \"text-red-700 dark:text-red-300 font-semibold\",\n },\n};\n\nfunction formatTime(iso: string): string {\n try {\n const d = parseUtcDate(iso);\n return d.toLocaleTimeString(undefined, {\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n });\n } catch {\n return iso;\n }\n}\n\nconst LogEntryRow = memo(function LogEntryRow({\n entry,\n}: {\n entry: LogEntry;\n}) {\n const [expanded, setExpanded] = useState(false);\n const style = LEVEL_STYLES[entry.level] ?? LEVEL_STYLES.info;\n\n return (\n <div\n className={cn(\n \"group border-b border-border/50 px-3 py-1.5 font-mono text-[13px] leading-relaxed hover:bg-muted/30 transition-colors\",\n entry.level === \"error\" || entry.level === \"fatal\"\n ? \"bg-red-50/50 dark:bg-red-950/20\"\n : entry.level === \"warn\"\n ? \"bg-amber-50/30 dark:bg-amber-950/10\"\n : \"\",\n )}\n >\n <div className=\"flex items-start gap-2\">\n <span className=\"shrink-0 text-muted-foreground tabular-nums\">\n {formatTime(entry.timestamp)}\n </span>\n <Badge\n variant={style.badge}\n className=\"shrink-0 w-12 justify-center uppercase text-[10px]\"\n >\n {entry.level}\n </Badge>\n <span\n className=\"shrink-0 text-muted-foreground w-28 truncate\"\n title={entry.logger}\n >\n {entry.logger}\n </span>\n <span className={cn(\"flex-1 break-all\", style.text)}>\n {entry.message}\n </span>\n {entry.data && (\n <button\n onClick={() => setExpanded(!expanded)}\n className=\"shrink-0 p-0.5 text-muted-foreground hover:text-foreground transition-colors\"\n aria-label={expanded ? \"Collapse details\" : \"Expand details\"}\n >\n <ChevronRight\n className={cn(\n \"h-3.5 w-3.5 transition-transform\",\n expanded && \"rotate-90\",\n )}\n />\n </button>\n )}\n </div>\n {expanded && entry.data && (\n <pre className=\"mt-1 pl-44 overflow-x-auto rounded bg-muted/50 p-2 text-xs text-muted-foreground\">\n {JSON.stringify(entry.data, null, 2)}\n </pre>\n )}\n </div>\n );\n});\n\nexport function SystemLogsContent({ enabled }: { enabled: boolean }) {\n const [level, setLevel] = useState(\"all\");\n const [logger, setLogger] = useState(\"all\");\n const [live, setLive] = useState(true);\n const [autoScroll, setAutoScroll] = useState(true);\n const [clearedAt, setClearedAt] = useState(0);\n\n const filters = {\n level: level === \"all\" ? undefined : level,\n logger: logger === \"all\" ? undefined : logger,\n };\n\n const {\n data: initialData,\n isLoading,\n isError,\n error,\n refetch,\n } = useSystemLogs(filters, { enabled });\n\n const { entries: streamEntries, connected, clear: clearStream } = useLogStream(\n live && enabled ? 1000 : 0,\n filters,\n );\n\n const scrollRef = useRef<HTMLDivElement>(null);\n const bottomRef = useRef<HTMLDivElement>(null);\n\n const merged = useMemo(() => {\n const initialLogs = clearedAt === 0 ? (initialData?.logs ?? []) : [];\n const seen = new Set<number>();\n const all: LogEntry[] = [];\n\n for (const e of initialLogs) {\n if (seen.has(e.id)) continue;\n seen.add(e.id);\n all.push(e);\n }\n if (live) {\n for (const e of streamEntries) {\n if (seen.has(e.id)) continue;\n if (e.id <= clearedAt) continue;\n if (filters.level && e.level !== filters.level) continue;\n if (filters.logger && e.logger !== filters.logger) continue;\n seen.add(e.id);\n all.push(e);\n }\n }\n\n all.sort((a, b) => a.id - b.id);\n return all;\n }, [initialData, streamEntries, live, filters.level, filters.logger, clearedAt]);\n\n const loggerNames = useMemo(() => {\n const fromApi = initialData?.loggers ?? [];\n const fromStream = new Set(streamEntries.map((e) => e.logger));\n const combined = new Set([...fromApi, ...fromStream]);\n return [...combined].sort();\n }, [initialData?.loggers, streamEntries]);\n\n useEffect(() => {\n if (autoScroll && bottomRef.current) {\n bottomRef.current.scrollIntoView({ behavior: \"smooth\" });\n }\n }, [merged.length, autoScroll]);\n\n const handleScroll = useCallback(() => {\n const el = scrollRef.current;\n if (!el) return;\n const atBottom = el.scrollHeight - el.scrollTop - el.clientHeight < 40;\n setAutoScroll(atBottom);\n }, []);\n\n const handleClear = useCallback(() => {\n const maxId = streamEntries.length > 0\n ? Math.max(...streamEntries.map((e) => e.id))\n : (initialData?.logs ?? []).reduce((m, e) => Math.max(m, e.id), 0);\n setClearedAt(maxId);\n clearStream();\n }, [streamEntries, initialData?.logs, clearStream]);\n\n return (\n <div className=\"flex h-full flex-col\">\n {/* Header with connection status */}\n <div className=\"mb-4 flex items-center justify-end\">\n <div className=\"flex items-center gap-2 text-xs text-muted-foreground\">\n <span\n className={cn(\n \"h-2 w-2 rounded-full\",\n connected ? \"bg-emerald-500\" : \"bg-gray-400\",\n )}\n />\n {connected ? \"Connected\" : \"Disconnected\"}\n </div>\n </div>\n\n {/* Filters */}\n <div className=\"mb-4 flex flex-wrap items-center gap-3\">\n <Select value={level} onValueChange={setLevel}>\n <SelectTrigger className=\"w-32\">\n <SelectValue placeholder=\"Level\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"all\">All Levels</SelectItem>\n <SelectItem value=\"info\">Info</SelectItem>\n <SelectItem value=\"warn\">Warn</SelectItem>\n <SelectItem value=\"error\">Error</SelectItem>\n <SelectItem value=\"fatal\">Fatal</SelectItem>\n </SelectContent>\n </Select>\n\n <Select value={logger} onValueChange={setLogger}>\n <SelectTrigger className=\"w-44\">\n <SelectValue placeholder=\"Logger\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"all\">All Loggers</SelectItem>\n {loggerNames.map((name) => (\n <SelectItem key={name} value={name}>\n {name}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n\n <Button variant=\"outline\" size=\"sm\" onClick={handleClear}>\n <Trash2 className=\"mr-1.5 h-3.5 w-3.5\" />\n Clear\n </Button>\n\n <div className=\"flex-1\" />\n\n <button\n onClick={() => setLive(!live)}\n className={cn(\n \"flex items-center gap-2 rounded-md px-3 py-1.5 text-xs font-medium transition-colors\",\n live\n ? \"bg-emerald-50 text-emerald-700 dark:bg-emerald-950 dark:text-emerald-300\"\n : \"bg-muted text-muted-foreground\",\n )}\n >\n <span\n className={cn(\n \"h-2 w-2 rounded-full\",\n live ? \"bg-emerald-500 animate-pulse\" : \"bg-gray-400\",\n )}\n />\n Live\n </button>\n\n {!autoScroll && (\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => {\n setAutoScroll(true);\n bottomRef.current?.scrollIntoView({ behavior: \"smooth\" });\n }}\n >\n <ArrowDown className=\"mr-1.5 h-3.5 w-3.5\" />\n Scroll to bottom\n </Button>\n )}\n </div>\n\n {/* Log entries */}\n <QueryResult\n isLoading={isLoading}\n isError={isError}\n error={error}\n onRetry={() => refetch()}\n skeleton={<TableSkeleton rows={12} />}\n >\n {merged.length === 0 ? (\n <EmptyState\n icon={ScrollText}\n title=\"No logs yet\"\n description=\"Application logs will appear here as the daemon runs\"\n />\n ) : (\n <div className=\"min-h-0 flex-1 overflow-hidden rounded-xl border border-border\">\n <ScrollArea\n ref={scrollRef}\n className=\"h-full\"\n onScrollCapture={handleScroll}\n >\n {merged.map((entry) => (\n <LogEntryRow key={entry.id} entry={entry} />\n ))}\n <div ref={bottomRef} />\n </ScrollArea>\n </div>\n )}\n </QueryResult>\n\n <div className=\"mt-2 shrink-0 text-xs text-muted-foreground\">\n {merged.length} entries\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport { useState } from \"react\";\nimport Link from \"next/link\";\nimport { useConversations } from \"@/lib/hooks/use-conversations\";\nimport { EmptyState } from \"@/components/shared/empty-state\";\nimport { QueryResult } from \"@/components/shared/query-result\";\nimport { DocsLearnMore } from \"@/components/docs/docs-learn-more\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Button } from \"@/components/ui/button\";\nimport { Card } from \"@/components/ui/card\";\nimport { Tooltip, TooltipTrigger, TooltipContent } from \"@/components/ui/tooltip\";\nimport { formatShortDateTime, formatAbsoluteTime, formatRelativeTime } from \"@/lib/utils\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { formatShortModelName, modelBadgeVariant } from \"@/lib/backend-ui\";\nimport { Hash, MessageSquare, MessagesSquare, Send, Smartphone, LayoutDashboard } from \"lucide-react\";\n\nconst PLATFORMS = [\"all\", \"slack\", \"discord\", \"telegram\", \"whatsapp\", \"dashboard\"];\nconst STATUSES = [\"all\", \"active\", \"expired\", \"closed\"];\nconst PLATFORM_ICON: Record<string, React.ElementType> = {\n slack: Hash,\n discord: MessagesSquare,\n telegram: Send,\n whatsapp: Smartphone,\n dashboard: LayoutDashboard,\n};\n\nconst STATUS_BADGE_VARIANT: Record<string, \"green\" | \"red\" | \"gray\"> = {\n active: \"green\",\n closed: \"red\",\n expired: \"gray\",\n};\n\nconst PLATFORM_BORDER_COLOR: Record<string, string> = {\n slack: \"border-l-purple-500\",\n discord: \"border-l-indigo-500\",\n telegram: \"border-l-sky-500\",\n whatsapp: \"border-l-emerald-500\",\n dashboard: \"border-l-gray-400\",\n};\n\nexport function ConversationsContent({ enabled = true }: { enabled?: boolean }) {\n const [platform, setPlatform] = useState(\"all\");\n const [status, setStatus] = useState(\"all\");\n\n const { data, fetchNextPage, hasNextPage, isFetchingNextPage, isLoading, isError, error, refetch } = useConversations(\n {\n platform: platform === \"all\" ? undefined : platform,\n status: status === \"all\" ? undefined : status,\n },\n { enabled },\n );\n\n const conversations = data?.pages.flatMap((p) => p.conversations) ?? [];\n\n return (\n <div className=\"space-y-6\">\n {/* Filters */}\n <div className=\"flex flex-wrap items-center gap-3\" role=\"toolbar\" aria-label=\"Conversation filters\">\n <div className=\"flex gap-1\">\n {PLATFORMS.map((p) => (\n <Button\n key={p}\n variant={platform === p ? \"default\" : \"outline\"}\n size=\"sm\"\n onClick={() => setPlatform(p)}\n aria-pressed={platform === p}\n >\n {p === \"all\" ? \"All\" : p}\n </Button>\n ))}\n </div>\n <Separator orientation=\"vertical\" className=\"h-6\" />\n <div className=\"flex gap-1\">\n {STATUSES.map((s) => (\n <Button\n key={s}\n variant={status === s ? \"default\" : \"outline\"}\n size=\"sm\"\n onClick={() => setStatus(s)}\n aria-pressed={status === s}\n >\n {s === \"all\" ? \"All\" : s}\n </Button>\n ))}\n </div>\n </div>\n\n <QueryResult\n isLoading={isLoading}\n isError={isError}\n error={error}\n onRetry={() => refetch()}\n >\n {/* Conversation cards */}\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-3\">\n {conversations.map((conv) => {\n const Icon = PLATFORM_ICON[conv.platform] ?? MessageSquare;\n\n return (\n <Link key={conv.id} href={`/conversations/${conv.id}`}>\n <Card className={`cursor-pointer border-l-4 min-h-[120px] ${PLATFORM_BORDER_COLOR[conv.platform] ?? \"border-l-gray-300\"}`}>\n <div className=\"flex items-start justify-between\">\n <div className=\"flex items-center gap-2\">\n <Icon className=\"h-4 w-4 text-muted-foreground\" />\n <span className=\"text-sm font-medium text-foreground capitalize\">{conv.platform}</span>\n </div>\n <Badge variant={STATUS_BADGE_VARIANT[conv.status] ?? \"gray\"}>\n {conv.status}\n </Badge>\n </div>\n <div className=\"mt-3 space-y-1\">\n <p className=\"text-sm text-muted-foreground\">\n <Badge variant={modelBadgeVariant(conv.model)} className=\"mr-1.5\">\n {formatShortModelName(conv.model)}\n </Badge>\n {conv.message_count} messages\n </p>\n <Tooltip>\n <TooltipTrigger asChild>\n <p className=\"text-xs font-mono tabular-nums text-muted-foreground\">\n {formatShortDateTime(conv.last_message_at)}\n </p>\n </TooltipTrigger>\n <TooltipContent>\n {formatAbsoluteTime(conv.last_message_at)} ({formatRelativeTime(conv.last_message_at)})\n </TooltipContent>\n </Tooltip>\n {conv.summary && (\n <p className=\"line-clamp-1 text-xs text-muted-foreground\">{conv.summary}</p>\n )}\n </div>\n </Card>\n </Link>\n );\n })}\n </div>\n\n {conversations.length === 0 ? (\n <EmptyState\n icon={MessagesSquare}\n title=\"No conversations found\"\n description=\"Conversations will appear here when the agent interacts via messaging platforms\"\n >\n <div className=\"mt-4\">\n <DocsLearnMore docId=\"features/operations/activity-and-conversations\" />\n </div>\n </EmptyState>\n ) : null}\n\n {hasNextPage && (\n <div className=\"flex justify-center\">\n <Button variant=\"outline\" onClick={() => fetchNextPage()} disabled={isFetchingNextPage}>\n {isFetchingNextPage ? \"Loading...\" : \"Load More\"}\n </Button>\n </div>\n )}\n </QueryResult>\n </div>\n );\n}\n","\"use client\";\n\nimport { useInfiniteQuery } from \"@tanstack/react-query\";\nimport { api } from \"@/lib/api-client\";\nimport type { NotificationsResponse } from \"@/lib/api-types\";\n\nexport function useNotifications(\n filters?: { status?: string; priority?: string },\n options?: { enabled?: boolean },\n) {\n return useInfiniteQuery({\n queryKey: [\"notifications\", filters],\n enabled: options?.enabled ?? true,\n queryFn: ({ pageParam = 1 }) =>\n api.get<NotificationsResponse>(\"/notifications\", {\n page: pageParam,\n limit: 50,\n status: filters?.status,\n priority: filters?.priority,\n }),\n getNextPageParam: (lastPage) =>\n lastPage.pagination.page < lastPage.pagination.totalPages\n ? lastPage.pagination.page + 1\n : undefined,\n initialPageParam: 1,\n });\n}\n","\"use client\";\n\nimport { useState } from \"react\";\nimport { useNotifications } from \"@/lib/hooks/use-notifications\";\nimport { useMetrics } from \"@/lib/hooks/use-metrics\";\nimport { EmptyState } from \"@/components/shared/empty-state\";\nimport { DocsLearnMore } from \"@/components/docs/docs-learn-more\";\nimport { QueryResult, CardSkeleton } from \"@/components/shared/query-result\";\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui/select\";\nimport { Button } from \"@/components/ui/button\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Card, CardHeader, CardStatLabel, CardValue } from \"@/components/ui/card\";\nimport { Tooltip, TooltipTrigger, TooltipContent } from \"@/components/ui/tooltip\";\nimport { formatRelativeTime, formatAbsoluteTime } from \"@/lib/utils\";\nimport { Bell } from \"lucide-react\";\n\nconst STATUS_COLORS: Record<string, \"green\" | \"blue\" | \"gray\" | \"red\"> = {\n delivered: \"green\",\n batched: \"blue\",\n suppressed: \"gray\",\n failed: \"red\",\n};\n\nconst PRIORITY_COLORS: Record<string, \"red\" | \"amber\" | \"blue\" | \"gray\"> = {\n critical: \"red\",\n high: \"amber\",\n normal: \"blue\",\n low: \"gray\",\n};\n\nexport function NotificationsContent({ enabled = true }: { enabled?: boolean }) {\n const [status, setStatus] = useState(\"all\");\n const [priority, setPriority] = useState(\"all\");\n\n const { data, fetchNextPage, hasNextPage, isFetchingNextPage, isLoading, isError, error, refetch } = useNotifications(\n {\n status: status === \"all\" ? undefined : status,\n priority: priority === \"all\" ? undefined : priority,\n },\n { enabled },\n );\n const { data: metrics, isLoading: metricsLoading } = useMetrics({ enabled });\n\n const notifications = data?.pages.flatMap((p) => p.notifications) ?? [];\n\n return (\n <div className=\"space-y-6\">\n {/* Summary stats */}\n <QueryResult isLoading={metricsLoading} isError={false} skeleton={<CardSkeleton count={4} />}>\n <div className=\"grid grid-cols-2 gap-4 md:grid-cols-4\">\n <Card>\n <CardHeader><CardStatLabel>Delivered</CardStatLabel></CardHeader>\n <CardValue className=\"text-2xl\">{metrics?.notificationCounts.delivered ?? 0}</CardValue>\n </Card>\n <Card>\n <CardHeader><CardStatLabel>Reacted</CardStatLabel></CardHeader>\n <CardValue className=\"text-2xl\">{metrics?.notificationCounts.reacted ?? 0}</CardValue>\n </Card>\n <Card>\n <CardHeader><CardStatLabel>Suppressed</CardStatLabel></CardHeader>\n <CardValue className=\"text-2xl\">{metrics?.notificationCounts.suppressed ?? 0}</CardValue>\n </Card>\n <Card>\n <CardHeader><CardStatLabel>Confirm Rate</CardStatLabel></CardHeader>\n <CardValue className=\"text-2xl\">\n {metrics?.notificationConfirmRate !== null && metrics?.notificationConfirmRate !== undefined\n ? `${(metrics.notificationConfirmRate * 100).toFixed(0)}%`\n : \"\\u2014\"}\n </CardValue>\n </Card>\n </div>\n </QueryResult>\n\n {/* Filters */}\n <div className=\"flex flex-wrap items-center gap-3\" role=\"toolbar\" aria-label=\"Notification filters\">\n <Select value={status} onValueChange={setStatus}>\n <SelectTrigger className=\"w-40\">\n <SelectValue placeholder=\"Status\" />\n </SelectTrigger>\n <SelectContent>\n {[\"all\", \"delivered\", \"batched\", \"suppressed\", \"failed\"].map((s) => (\n <SelectItem key={s} value={s}>{s === \"all\" ? \"All Status\" : s}</SelectItem>\n ))}\n </SelectContent>\n </Select>\n\n <Select value={priority} onValueChange={setPriority}>\n <SelectTrigger className=\"w-40\">\n <SelectValue placeholder=\"Priority\" />\n </SelectTrigger>\n <SelectContent>\n {[\"all\", \"critical\", \"high\", \"normal\", \"low\"].map((p) => (\n <SelectItem key={p} value={p}>{p === \"all\" ? \"All Priority\" : p}</SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n\n <QueryResult\n isLoading={isLoading}\n isError={isError}\n error={error}\n onRetry={() => refetch()}\n >\n {/* Table */}\n <div className=\"overflow-x-auto rounded-xl border border-border\">\n <table className=\"w-full text-left\" aria-label=\"Notifications\">\n <thead>\n <tr className=\"border-b border-border bg-muted/50\">\n <th className=\"px-3 py-2 text-xs font-medium text-muted-foreground\">Time</th>\n <th className=\"px-3 py-2 text-xs font-medium text-muted-foreground\">Priority</th>\n <th className=\"px-3 py-2 text-xs font-medium text-muted-foreground\">Message</th>\n <th className=\"px-3 py-2 text-xs font-medium text-muted-foreground\">Platform</th>\n <th className=\"px-3 py-2 text-xs font-medium text-muted-foreground\">Status</th>\n </tr>\n </thead>\n <tbody>\n {notifications.map((n) => (\n <tr key={n.id} className=\"border-b border-border\">\n <td className=\"px-3 py-2 text-xs font-mono tabular-nums text-muted-foreground whitespace-nowrap\">\n <Tooltip>\n <TooltipTrigger>{formatAbsoluteTime(n.created_at)}</TooltipTrigger>\n <TooltipContent>{formatRelativeTime(n.created_at)}</TooltipContent>\n </Tooltip>\n </td>\n <td className=\"px-3 py-2\">\n <Badge variant={PRIORITY_COLORS[n.priority] ?? \"gray\"}>{n.priority}</Badge>\n </td>\n <td className=\"max-w-md truncate px-3 py-2 text-sm text-foreground\">{n.message}</td>\n <td className=\"px-3 py-2 text-xs text-muted-foreground\">{n.platform}</td>\n <td className=\"px-3 py-2\">\n <Badge variant={STATUS_COLORS[n.status] ?? \"gray\"}>{n.status}</Badge>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n\n {notifications.length === 0 ? (\n <EmptyState\n icon={Bell}\n title=\"No notifications yet\"\n description=\"Notifications will appear here as the agent sends them\"\n >\n <div className=\"mt-4\">\n <DocsLearnMore docId=\"features/operations/notifications\" />\n </div>\n </EmptyState>\n ) : null}\n\n {hasNextPage && (\n <div className=\"flex justify-center\">\n <Button variant=\"outline\" onClick={() => fetchNextPage()} disabled={isFetchingNextPage}>\n {isFetchingNextPage ? \"Loading...\" : \"Load More\"}\n </Button>\n </div>\n )}\n </QueryResult>\n </div>\n );\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Bell\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIiAvPgogIDxwYXRoIGQ9Ik0zLjI2MiAxNS4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0MxOS40MSAxMy45NTYgMTggMTIuNDk5IDE4IDhBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzM4IDcuMzI2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bell\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 Bell = createLucideIcon('Bell', [\n ['path', { d: 'M10.268 21a2 2 0 0 0 3.464 0', key: 'vwvbt9' }],\n [\n 'path',\n {\n d: 'M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326',\n key: '11g9vi',\n },\n ],\n]);\n\nexport default Bell;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNXYxNCIgLz4KICA8cGF0aCBkPSJtMTkgMTItNyA3LTctNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-down\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 ArrowDown = createLucideIcon('ArrowDown', [\n ['path', { d: 'M12 5v14', key: 's699le' }],\n ['path', { d: 'm19 12-7 7-7-7', key: '1idqje' }],\n]);\n\nexport default ArrowDown;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name MessagesSquare\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgOWEyIDIgMCAwIDEtMiAySDZsLTQgNFY0YTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDEgMiAyeiIgLz4KICA8cGF0aCBkPSJNMTggOWgyYTIgMiAwIDAgMSAyIDJ2MTFsLTQtNGgtNmEyIDIgMCAwIDEtMi0ydi0xIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/messages-square\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 MessagesSquare = createLucideIcon('MessagesSquare', [\n ['path', { d: 'M14 9a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2z', key: 'p1xzt8' }],\n ['path', { d: 'M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1', key: '1cx29u' }],\n]);\n\nexport default MessagesSquare;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ScrollText\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMTJoLTUiIC8+CiAgPHBhdGggZD0iTTE1IDhoLTUiIC8+CiAgPHBhdGggZD0iTTE5IDE3VjVhMiAyIDAgMCAwLTItMkg0IiAvPgogIDxwYXRoIGQ9Ik04IDIxaDEyYTIgMiAwIDAgMCAyLTJ2LTFhMSAxIDAgMCAwLTEtMUgxMWExIDEgMCAwIDAtMSAxdjFhMiAyIDAgMSAxLTQgMFY1YTIgMiAwIDEgMC00IDB2MmExIDEgMCAwIDAgMSAxaDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/scroll-text\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 ScrollText = createLucideIcon('ScrollText', [\n ['path', { d: 'M15 12h-5', key: 'r7krc0' }],\n ['path', { d: 'M15 8h-5', key: '1khuty' }],\n ['path', { d: 'M19 17V5a2 2 0 0 0-2-2H4', key: 'zz82l3' }],\n [\n 'path',\n {\n d: 'M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3',\n key: '1ph1d7',\n },\n ],\n]);\n\nexport default ScrollText;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Send\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNTM2IDIxLjY4NmEuNS41IDAgMCAwIC45MzctLjAyNGw2LjUtMTlhLjQ5Ni40OTYgMCAwIDAtLjYzNS0uNjM1bC0xOSA2LjVhLjUuNSAwIDAgMC0uMDI0LjkzN2w3LjkzIDMuMThhMiAyIDAgMCAxIDEuMTEyIDEuMTF6IiAvPgogIDxwYXRoIGQ9Im0yMS44NTQgMi4xNDctMTAuOTQgMTAuOTM5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/send\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 Send = createLucideIcon('Send', [\n [\n 'path',\n {\n d: 'M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z',\n key: '1ffxy3',\n },\n ],\n ['path', { d: 'm21.854 2.147-10.94 10.939', key: '12cjpa' }],\n]);\n\nexport default Send;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Smartphone\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iMjAiIHg9IjUiIHk9IjIiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNMTIgMThoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/smartphone\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 Smartphone = createLucideIcon('Smartphone', [\n ['rect', { width: '14', height: '20', x: '5', y: '2', rx: '2', ry: '2', key: '1yt0o3' }],\n ['path', { d: 'M12 18h.01', key: 'mhygvu' }],\n]);\n\nexport default Smartphone;\n"],"names":["DATE_RANGES","EVENT_TYPES","value","label","EventFilters","className","props","RESULTS","t","map","result","type","onValueChange","placeholder","onTypeChange","dateRange","r","d","onResultChange","size","onDateRangeChange","onClick","orientation","variant","onRefresh","live","onLiveToggle","isRefreshing","disabled","title"],"mappings":"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","ignoreList":[11,12,13,14,15,16]}
1
+ {"version":3,"sources":["../../../../../../packages/dashboard/src/app/activity/page.tsx","../../../../../../packages/dashboard/src/components/logs/event-filters.tsx","../../../../../../packages/dashboard/src/components/logs/event-row.tsx","../../../../../../packages/dashboard/src/lib/docs/event-type-doc-map.ts","../../../../../../packages/dashboard/src/components/logs/event-detail-sheet.tsx","../../../../../../packages/dashboard/src/components/logs/events-content.tsx","../../../../../../packages/dashboard/src/lib/hooks/use-system-logs.ts","../../../../../../packages/dashboard/src/components/logs/system-logs-content.tsx","../../../../../../packages/dashboard/src/components/activity/conversations-content.tsx","../../../../../../packages/dashboard/src/lib/hooks/use-notifications.ts","../../../../../../packages/dashboard/src/components/activity/notifications-content.tsx","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/bell.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/arrow-down.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/messages-square.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/scroll-text.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/send.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/smartphone.ts"],"sourcesContent":["\"use client\";\n\nimport { Suspense } from \"react\";\nimport { useRouter, useSearchParams } from \"next/navigation\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\nimport { EventsContent } from \"@/components/logs/events-content\";\nimport { SystemLogsContent } from \"@/components/logs/system-logs-content\";\nimport { ConversationsContent } from \"@/components/activity/conversations-content\";\nimport { NotificationsContent } from \"@/components/activity/notifications-content\";\nimport { cn } from \"@/lib/utils\";\n\nfunction ActivityPageInner() {\n const searchParams = useSearchParams();\n const router = useRouter();\n const tab = searchParams.get(\"tab\") ?? \"events\";\n\n const handleTabChange = (next: string) => {\n router.replace(`/activity?tab=${next}`, { scroll: false });\n };\n\n // System Logs uses an internal ScrollArea that needs a bounded parent\n // (h-full → flex-1 chain). All other tabs let the page grow naturally\n // so main's overflow-y-auto scrolls and p-6's bottom padding stays visible.\n const isSystemTab = tab === \"system\";\n\n return (\n <div\n className={cn(\n \"flex flex-col p-6 pb-8\",\n isSystemTab ? \"h-full\" : \"min-h-full\",\n )}\n >\n <h1 className=\"text-2xl font-semibold text-foreground\">Agent Log</h1>\n <p className=\"mt-1 mb-4 max-w-3xl text-sm text-muted-foreground\">\n A historical record of everything the agent has seen or done. Use <strong>Events</strong> for agent invocations (what triggered a run, which backend served it, success/failure),{\" \"}\n <strong>System Logs</strong> for daemon-level output (startup, errors, warnings from the Hono server),{\" \"}\n <strong>Conversations</strong> for completed chat threads from every messaging platform, and <strong>Notifications</strong> for outbound messages the agent sent proactively.\n </p>\n\n <Tabs\n value={tab}\n onValueChange={handleTabChange}\n className={cn(\"flex flex-col\", isSystemTab && \"min-h-0 flex-1\")}\n >\n <TabsList className=\"w-fit\">\n <TabsTrigger value=\"events\">Events</TabsTrigger>\n <TabsTrigger value=\"system\">System Logs</TabsTrigger>\n <TabsTrigger value=\"conversations\">Conversations</TabsTrigger>\n <TabsTrigger value=\"notifications\">Notifications</TabsTrigger>\n </TabsList>\n\n <TabsContent value=\"events\" className=\"mt-4\">\n <EventsContent enabled={tab === \"events\"} />\n </TabsContent>\n\n <TabsContent value=\"system\" className=\"mt-4 flex min-h-0 flex-1 flex-col\">\n <SystemLogsContent enabled={tab === \"system\"} />\n </TabsContent>\n\n <TabsContent value=\"conversations\" className=\"mt-4\">\n <ConversationsContent enabled={tab === \"conversations\"} />\n </TabsContent>\n\n <TabsContent value=\"notifications\" className=\"mt-4\">\n <NotificationsContent enabled={tab === \"notifications\"} />\n </TabsContent>\n </Tabs>\n </div>\n );\n}\n\nexport default function ActivityPage() {\n return (\n <Suspense>\n <ActivityPageInner />\n </Suspense>\n );\n}\n","\"use client\";\n\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui/select\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { Button } from \"@/components/ui/button\";\nimport { RefreshCw } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\ninterface EventFiltersProps {\n type: string;\n onTypeChange: (v: string) => void;\n result: string;\n onResultChange: (v: string) => void;\n dateRange: string;\n onDateRangeChange: (v: string) => void;\n live: boolean;\n onLiveToggle: () => void;\n onRefresh: () => void;\n isRefreshing: boolean;\n}\n\nconst EVENT_TYPES = [\n \"all\",\n \"message.received\",\n \"routine.morning_routine\",\n \"routine.evening_review\",\n \"scheduled.task\",\n \"schedule.approaching\",\n];\n\nconst RESULTS = [\"all\", \"success\", \"failed\", \"partial\", \"skipped\"];\nconst DATE_RANGES = [\n { label: \"Today\", value: \"today\" },\n { label: \"7 days\", value: \"7d\" },\n { label: \"30 days\", value: \"30d\" },\n];\n\nexport function EventFilters(props: EventFiltersProps) {\n return (\n <div className=\"flex flex-wrap items-center gap-3\">\n {/* Filters */}\n <Select value={props.type} onValueChange={props.onTypeChange}>\n <SelectTrigger className=\"w-48\">\n <SelectValue placeholder=\"Event Type\" />\n </SelectTrigger>\n <SelectContent>\n {EVENT_TYPES.map((t) => (\n <SelectItem key={t} value={t}>\n {t === \"all\" ? \"All Types\" : t}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n\n <Select value={props.result} onValueChange={props.onResultChange}>\n <SelectTrigger className=\"w-32\">\n <SelectValue placeholder=\"Result\" />\n </SelectTrigger>\n <SelectContent>\n {RESULTS.map((r) => (\n <SelectItem key={r} value={r}>\n {r === \"all\" ? \"All Results\" : r}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n\n <Separator orientation=\"vertical\" className=\"h-6\" />\n\n {/* Time range */}\n <div className=\"flex gap-1\">\n {DATE_RANGES.map((d) => (\n <Button\n key={d.value}\n variant={props.dateRange === d.value ? \"default\" : \"outline\"}\n size=\"sm\"\n onClick={() => props.onDateRangeChange(d.value)}\n >\n {d.label}\n </Button>\n ))}\n </div>\n\n <Separator orientation=\"vertical\" className=\"h-6\" />\n\n {/* Mode */}\n <button\n onClick={props.onLiveToggle}\n className={cn(\n \"flex items-center gap-2 rounded-md px-3 py-1.5 text-xs font-medium transition-colors\",\n props.live\n ? \"bg-emerald-50 text-emerald-700 dark:bg-emerald-950 dark:text-emerald-300\"\n : \"bg-muted text-muted-foreground\",\n )}\n >\n <span\n className={cn(\n \"h-2 w-2 rounded-full\",\n props.live ? \"bg-emerald-500 animate-pulse\" : \"bg-gray-400\",\n )}\n />\n Live\n </button>\n\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={props.onRefresh}\n disabled={props.isRefreshing}\n aria-label=\"Refresh events\"\n title=\"Refresh events\"\n >\n <RefreshCw\n className={cn(\"h-3.5 w-3.5\", props.isRefreshing && \"animate-spin\")}\n />\n <span className=\"ml-1.5\">Refresh</span>\n </Button>\n </div>\n );\n}\n","\"use client\";\n\nimport { Badge } from \"@/components/ui/badge\";\nimport { Tooltip, TooltipTrigger, TooltipContent } from \"@/components/ui/tooltip\";\nimport { formatRelativeTime, formatAbsoluteTime, formatCurrency, formatDuration, formatTokens, formatTokenCount } from \"@/lib/utils\";\nimport { EVENT_TYPE_COLORS, RESULT_COLORS } from \"@/lib/constants\";\nimport { formatShortModelName, modelBadgeVariant, parseModelUsage, pickDisplayModel } from \"@/lib/backend-ui\";\nimport type { EventRow as EventRowType } from \"@/lib/api-types\";\n\ninterface EventRowProps {\n event: EventRowType;\n onClick: () => void;\n}\n\nexport function EventRow({ event, onClick }: EventRowProps) {\n const typeColor = (EVENT_TYPE_COLORS[event.action_type] ?? \"gray\") as \"blue\" | \"green\" | \"gray\" | \"purple\" | \"amber\";\n const resultColor = (RESULT_COLORS[event.result] ?? \"gray\") as \"green\" | \"red\" | \"amber\" | \"gray\";\n // Prefer the actually-billed model from modelUsage over the requested\n // model_used — the SDK can route opus-4-7 → opus-4-6[1m] silently, and the\n // cost in this row reflects whichever model actually ran.\n const billedModels = parseModelUsage(event.model_usage_json);\n const displayModelId = pickDisplayModel(event.model_used, event.model_usage_json);\n const modelLabel = displayModelId ? formatShortModelName(displayModelId) : null;\n const modelMismatch =\n event.model_used != null\n && billedModels.length > 0\n && billedModels.some((m) => m.modelId !== event.model_used);\n\n return (\n <tr\n onClick={onClick}\n className=\"cursor-pointer border-b border-border transition-colors hover:bg-muted/50\"\n >\n <td className=\"px-3 py-2 text-xs font-mono tabular-nums text-muted-foreground whitespace-nowrap\">\n <Tooltip>\n <TooltipTrigger>{formatAbsoluteTime(event.started_at)}</TooltipTrigger>\n <TooltipContent>{formatRelativeTime(event.started_at)}</TooltipContent>\n </Tooltip>\n </td>\n <td className=\"px-3 py-2\">\n <Badge variant={typeColor}>{event.action_type}</Badge>\n </td>\n <td className=\"hidden xl:table-cell px-3 py-2 text-xs text-muted-foreground\">{event.trigger}</td>\n <td className=\"hidden lg:table-cell px-3 py-2\">\n {modelLabel && (\n modelMismatch ? (\n <Tooltip>\n <TooltipTrigger>\n <span className=\"inline-flex items-center gap-1\">\n <Badge variant={modelBadgeVariant(displayModelId)}>{modelLabel}</Badge>\n <Badge variant=\"amber\" className=\"text-[10px] uppercase tracking-wide\">\n routed\n </Badge>\n </span>\n </TooltipTrigger>\n <TooltipContent>\n <div className=\"space-y-0.5 text-xs font-mono\">\n <div>requested: {formatShortModelName(event.model_used)}</div>\n {billedModels.map((m) => (\n <div key={m.modelId}>\n billed: {formatShortModelName(m.modelId)}\n </div>\n ))}\n </div>\n </TooltipContent>\n </Tooltip>\n ) : (\n <Badge variant={modelBadgeVariant(displayModelId)}>{modelLabel}</Badge>\n )\n )}\n </td>\n <td className=\"hidden xl:table-cell px-3 py-2 text-xs font-mono text-muted-foreground\">\n {event.model_used ? (\n <Tooltip>\n <TooltipTrigger>\n {formatTokens(\n event.tokens_input,\n event.tokens_output,\n event.cache_creation_tokens,\n event.cache_read_tokens,\n )}\n </TooltipTrigger>\n <TooltipContent>\n <div className=\"space-y-0.5 text-xs font-mono\">\n <div>fresh in: {formatTokenCount(event.tokens_input)}</div>\n <div>cache write: {formatTokenCount(event.cache_creation_tokens)}</div>\n <div>cache read: {formatTokenCount(event.cache_read_tokens)}</div>\n <div className=\"border-t border-border pt-0.5 mt-1\">\n out: {formatTokenCount(event.tokens_output)}\n </div>\n </div>\n </TooltipContent>\n </Tooltip>\n ) : null}\n </td>\n <td className=\"px-3 py-2 text-xs font-mono text-muted-foreground\">\n {formatCurrency(event.cost_usd)}\n </td>\n <td className=\"hidden lg:table-cell px-3 py-2 text-xs font-mono text-muted-foreground\">\n {formatDuration(event.duration_ms)}\n </td>\n <td className=\"px-3 py-2\">\n <Badge variant={resultColor}>{event.result}</Badge>\n </td>\n </tr>\n );\n}\n","/**\n * Activity → docs concept link map (DOCS_QA_DESIGN.md §8.4 E9, P5 polish).\n *\n * `agent_actions.action_type` is set to `event.type` (see\n * `daemon/src/safety/audit.ts:124`), NOT to the ProcessKey resolved later\n * in routing. That means several keys that look like obvious entries here\n * are actually purely-routing concepts and never appear in the column:\n *\n * - `message.dm` / `message.mention` / `dashboard.chat` — every owner\n * message is emitted as `event.type === \"message.received\"`; the DM /\n * mention / dashboard-chat distinction is computed by `resolveProcessKey`\n * for routing only and never persisted. The single\n * `\"message.received\" → features/messaging/overview` entry below covers\n * all four UI surfaces.\n *\n * The map below is therefore keyed by event-type strings only. Entries are\n * grouped:\n * - \"Currently emitted\" — verified emission paths in the daemon.\n * - \"Reserved (defensive)\" — known-future or rarely-fired ProcessKeys\n * that the daemon may eventually emit as `event.type` (e.g. when the\n * docs QA pipeline finally enqueues `dashboard.docs_qa` events). Safe\n * to keep — `docIdForEventType` simply never returns them today.\n *\n * Iteration: exact-match check first, then prefix rules. The prefix rules\n * cover the dynamic families:\n * - `routine.custom.<slug>` → custom routines doc\n * - `setup.*` → setup wizard walkthrough (defensive — see\n * dispatcher.ts:2236; `setup.initial`/`setup.update` are prompt keys\n * today, but the family is reserved as a future event-type namespace)\n * - `calendar.*` → calendar integration\n * - `git.*` → git integration\n *\n * A null result means \"no doc to link\" — callers must hide the affordance\n * rather than render a dead link. Several real action_types intentionally\n * resolve to null because they have no operator-facing meaning:\n * `attachment.upload.{inbound,outbound}`, `delegated_proxy.invoke`\n * (RESERVED — RPC route is commented; see integrations.ts route notes),\n * `delegated_task.exec` (the active task-mode header row — internal\n * subprocess accounting, no operator UI), `blocked_absolute`,\n * `qa_invalid_citation`.\n */\n\nconst EXACT: Record<string, string> = {\n // ── Currently emitted ───────────────────────────────────────────────\n // Routines\n \"routine.morning_routine\": \"features/routines/morning-routine\",\n \"routine.evening_review\": \"features/routines/evening-review\",\n \"routine.weekly_review\": \"features/routines/weekly-review\",\n \"routine.monthly_review\": \"features/routines/monthly-review\",\n \"routine.hourly_check\": \"features/routines/hourly-check\",\n \"routine.roadmap_refresh\": \"features/memory-files/roadmap\",\n \"routine.today_refresh\": \"features/memory-files/today\",\n \"routine.user_profile_sweep\": \"features/memory-files/user-profile\",\n\n // Messaging — every owner message lands here regardless of DM/mention/\n // dashboard-chat routing distinction (see file-header note).\n \"message.received\": \"features/messaging/overview\",\n\n // Schedule\n \"scheduled.task\": \"features/memory-files/schedule\",\n \"schedule.approaching\": \"features/operations/schedule-approaching\",\n\n // ── Reserved (defensive) ────────────────────────────────────────────\n // `_initial` is currently a prompt-key variant in dispatcher.ts:1152 and\n // does not reach `event.type`, but the scheduler could plausibly start\n // emitting it as a distinct event type for first-day onboarding telemetry.\n \"routine.morning_routine_initial\": \"features/routines/morning-routine\",\n\n // The docs-QA dispatcher path is not yet wired (see DOCS_QA_BACKEND\n // §6 — `docs.ts` has no `/qa/messages` enqueue endpoint today). When\n // it lands, QA turns will likely audit as `dashboard.docs_qa`.\n \"dashboard.docs_qa\": \"features/operations/activity-and-conversations\",\n\n // Gmail classifier is currently invoked outside the AuditLogger path,\n // but `process_backend_config` reserves `gmail_classify` as a ProcessKey\n // and the classifier may be migrated to `agent_actions` later.\n gmail_classify: \"features/integrations/mail\",\n};\n\ninterface PrefixRule {\n prefix: string;\n docId: string;\n}\n\nconst PREFIX: ReadonlyArray<PrefixRule> = [\n { prefix: \"routine.custom.\", docId: \"features/routines/custom-routines\" },\n { prefix: \"setup.\", docId: \"guides/setup-wizard\" },\n { prefix: \"calendar.\", docId: \"features/integrations/calendar\" },\n { prefix: \"git.\", docId: \"features/integrations/git\" },\n];\n\n/**\n * Resolve a docs slug for an event type. Returns `null` when the event\n * type has no operator-facing doc — callers should hide the link.\n */\nexport function docIdForEventType(eventType: string): string | null {\n const exact = EXACT[eventType];\n if (exact) return exact;\n for (const rule of PREFIX) {\n if (eventType.startsWith(rule.prefix)) return rule.docId;\n }\n return null;\n}\n","\"use client\";\n\nimport { useState } from \"react\";\nimport { Sheet, SheetContent, SheetHeader, SheetTitle } from \"@/components/ui/sheet\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Collapsible, CollapsibleTrigger, CollapsibleContent } from \"@/components/ui/collapsible\";\nimport { formatAbsoluteTime, formatCurrency, formatDuration, formatTokenCount } from \"@/lib/utils\";\nimport { RESULT_COLORS } from \"@/lib/constants\";\nimport { ChevronDown } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { parseModelUsage } from \"@/lib/backend-ui\";\nimport type { EventRow } from \"@/lib/api-types\";\nimport { DocsLearnMore } from \"@/components/docs/docs-learn-more\";\nimport { docIdForEventType } from \"@/lib/docs/event-type-doc-map\";\n\ninterface EventDetailSheetProps {\n event: EventRow | null;\n onClose: () => void;\n}\n\nexport function EventDetailSheet({ event, onClose }: EventDetailSheetProps) {\n // Keep the Sheet root mounted so Radix observes the open→closed transition\n // and clears its body pointer-events lock. Unmounting the Sheet while open\n // skips that cleanup and freezes clicks (including the tab switcher).\n return (\n <Sheet open={!!event} onOpenChange={(open) => !open && onClose()}>\n {event && <EventDetailSheetContent event={event} />}\n </Sheet>\n );\n}\n\nfunction EventDetailSheetContent({ event }: { event: EventRow }) {\n const [detailOpen, setDetailOpen] = useState(false);\n\n const resultColor = (RESULT_COLORS[event.result] ?? \"gray\") as \"green\" | \"red\" | \"amber\" | \"gray\";\n\n let formattedDetail: string | null = null;\n if (event.detail) {\n try {\n formattedDetail = JSON.stringify(JSON.parse(event.detail), null, 2);\n } catch {\n formattedDetail = event.detail;\n }\n }\n\n return (\n <SheetContent className=\"flex flex-col\">\n <SheetHeader>\n <SheetTitle>Event Detail</SheetTitle>\n </SheetHeader>\n <div className=\"mt-4 flex-1 space-y-4 overflow-y-auto pr-2 -mr-2\">\n <DetailRow label=\"Event ID\">\n <code className=\"font-mono text-xs\">{event.event_id}</code>\n </DetailRow>\n <DetailRow label=\"Type\">\n <div className=\"flex items-center justify-end gap-2\">\n <Badge variant=\"blue\">{event.action_type}</Badge>\n {(() => {\n const docId = docIdForEventType(event.action_type);\n return docId ? (\n <DocsLearnMore docId={docId} label=\"Learn →\" />\n ) : null;\n })()}\n </div>\n </DetailRow>\n <DetailRow label=\"Trigger\">\n <span className=\"text-sm\">{event.trigger}</span>\n </DetailRow>\n <DetailRow label=\"Result\">\n <Badge variant={resultColor}>{event.result}</Badge>\n </DetailRow>\n <DetailRow label=\"Started\">\n <span className=\"text-sm\">{formatAbsoluteTime(event.started_at)}</span>\n </DetailRow>\n {event.completed_at && (\n <DetailRow label=\"Completed\">\n <span className=\"text-sm\">{formatAbsoluteTime(event.completed_at)}</span>\n </DetailRow>\n )}\n <DetailRow label=\"Duration\">\n <span className=\"text-sm font-mono\">{formatDuration(event.duration_ms)}</span>\n </DetailRow>\n {(() => {\n const billed = parseModelUsage(event.model_usage_json);\n // When the SDK billed exactly the model we requested, the\n // requested/billed distinction is noise — collapse to one row.\n const sameAsRequested =\n billed.length === 1\n && billed[0]?.modelId === event.model_used;\n if (billed.length === 0 || sameAsRequested) {\n return (\n <DetailRow label=\"Model\">\n <span className=\"text-sm\">{event.model_used ?? \"—\"}</span>\n </DetailRow>\n );\n }\n return (\n <>\n <DetailRow label=\"Model (requested)\">\n <span className=\"text-sm\">{event.model_used ?? \"—\"}</span>\n </DetailRow>\n <DetailRow label=\"Model (billed)\">\n <div className=\"space-y-0.5 text-right\">\n {billed.map((m) => (\n <div key={m.modelId} className=\"text-sm font-mono\">\n {m.modelId}\n <span className=\"ml-2 text-xs text-muted-foreground\">\n ({formatCurrency(m.costUsd)})\n </span>\n </div>\n ))}\n </div>\n </DetailRow>\n </>\n );\n })()}\n {event.model_used && (\n <>\n <DetailRow label=\"Input (fresh)\">\n <span className=\"text-sm font-mono\">{formatTokenCount(event.tokens_input)}</span>\n </DetailRow>\n <DetailRow label=\"Input (cache write)\">\n <span className=\"text-sm font-mono\">{formatTokenCount(event.cache_creation_tokens)}</span>\n </DetailRow>\n <DetailRow label=\"Input (cache read)\">\n <span className=\"text-sm font-mono\">{formatTokenCount(event.cache_read_tokens)}</span>\n </DetailRow>\n <DetailRow label=\"Input total\">\n <span className=\"text-sm font-mono\">\n {formatTokenCount(\n (event.tokens_input ?? 0)\n + (event.cache_creation_tokens ?? 0)\n + (event.cache_read_tokens ?? 0),\n )}\n </span>\n </DetailRow>\n <DetailRow label=\"Output\">\n <span className=\"text-sm font-mono\">{formatTokenCount(event.tokens_output)}</span>\n </DetailRow>\n </>\n )}\n <DetailRow label=\"Turns\">\n <span className=\"text-sm font-mono\">{event.num_turns}</span>\n </DetailRow>\n <DetailRow label=\"Cost\">\n <span className=\"text-sm font-mono\">{formatCurrency(event.cost_usd)}</span>\n </DetailRow>\n\n {formattedDetail && (\n <Collapsible open={detailOpen} onOpenChange={setDetailOpen}>\n <CollapsibleTrigger className=\"flex w-full items-center gap-1 text-sm text-muted-foreground hover:text-foreground\">\n Detail\n <ChevronDown className={cn(\"h-3 w-3 transition-transform\", detailOpen && \"rotate-180\")} />\n </CollapsibleTrigger>\n <CollapsibleContent>\n <pre className=\"mt-2 max-h-64 overflow-auto rounded-md bg-muted p-3 text-xs font-mono\">\n {formattedDetail}\n </pre>\n </CollapsibleContent>\n </Collapsible>\n )}\n\n {event.error && (\n <div className=\"rounded-lg bg-red-50 p-3 dark:bg-red-950\">\n <p className=\"text-xs font-medium text-red-700 dark:text-red-300\">Error</p>\n <pre className=\"mt-1 whitespace-pre-wrap text-xs text-red-600 dark:text-red-400\">\n {event.error}\n </pre>\n </div>\n )}\n </div>\n </SheetContent>\n );\n}\n\nfunction DetailRow({ label, children }: { label: string; children: React.ReactNode }) {\n return (\n <div className=\"flex items-start justify-between gap-4\">\n <span className=\"shrink-0 text-sm text-muted-foreground\">{label}</span>\n <div className=\"text-right\">{children}</div>\n </div>\n );\n}\n","\"use client\";\n\nimport { useState } from \"react\";\nimport { useEvents } from \"@/lib/hooks/use-events\";\nimport { useEventStream } from \"@/lib/hooks/use-event-stream\";\nimport { EventFilters } from \"@/components/logs/event-filters\";\nimport { EventRow } from \"@/components/logs/event-row\";\nimport { EventDetailSheet } from \"@/components/logs/event-detail-sheet\";\nimport { EmptyState } from \"@/components/shared/empty-state\";\nimport { DocsLearnMore } from \"@/components/docs/docs-learn-more\";\nimport { QueryResult, TableSkeleton } from \"@/components/shared/query-result\";\nimport { Button } from \"@/components/ui/button\";\nimport { Activity } from \"lucide-react\";\nimport type { EventRow as EventRowType } from \"@/lib/api-types\";\n\nconst DATE_RANGE_DAYS: Record<string, string> = {\n today: \"1\",\n \"7d\": \"7\",\n \"30d\": \"30\",\n};\n\nexport function EventsContent({ enabled }: { enabled: boolean }) {\n const [type, setType] = useState(\"all\");\n const [result, setResult] = useState(\"all\");\n const [dateRange, setDateRange] = useState(\"today\");\n const [live, setLive] = useState(true);\n const [selectedEvent, setSelectedEvent] = useState<EventRowType | null>(null);\n\n const filters = {\n type: type === \"all\" ? undefined : type,\n result: result === \"all\" ? undefined : result,\n days: DATE_RANGE_DAYS[dateRange],\n };\n\n const { data, fetchNextPage, hasNextPage, isFetchingNextPage, isLoading, isError, error, refetch, isRefetching } = useEvents(\n filters,\n { enabled },\n );\n const streamEvents = useEventStream(live && enabled ? 50 : 0);\n\n // Merge stream events with paginated events (dedup by id, sorted newest first)\n const allApiEvents = data?.pages.flatMap((p) => p.events) ?? [];\n const seen = new Set<number>();\n const merged: EventRowType[] = [];\n\n if (live && enabled) {\n for (const e of streamEvents) {\n if (seen.has(e.id)) continue;\n if (filters.type && e.action_type !== filters.type) continue;\n if (filters.result && e.result !== filters.result) continue;\n seen.add(e.id);\n merged.push(e);\n }\n }\n for (const e of allApiEvents) {\n if (!seen.has(e.id)) {\n seen.add(e.id);\n merged.push(e);\n }\n }\n\n return (\n <div className=\"space-y-6\">\n <EventFilters\n type={type}\n onTypeChange={setType}\n result={result}\n onResultChange={setResult}\n dateRange={dateRange}\n onDateRangeChange={setDateRange}\n live={live}\n onLiveToggle={() => setLive(!live)}\n onRefresh={() => refetch()}\n isRefreshing={isRefetching}\n />\n\n <QueryResult\n isLoading={isLoading}\n isError={isError}\n error={error}\n onRetry={() => refetch()}\n skeleton={<TableSkeleton rows={8} />}\n >\n {merged.length === 0 ? (\n <EmptyState\n icon={Activity}\n title=\"No events found\"\n description=\"Events will appear here as the agent processes tasks\"\n >\n <div className=\"mt-4\">\n <DocsLearnMore docId=\"features/operations/activity-and-conversations\" />\n </div>\n </EmptyState>\n ) : (\n <div className=\"overflow-x-auto rounded-xl border border-border\">\n <table className=\"w-full text-left\" aria-label=\"Agent events\">\n <thead>\n <tr className=\"border-b border-border bg-muted/50\">\n <th className=\"px-3 py-2 text-xs font-medium text-muted-foreground\">Time</th>\n <th className=\"px-3 py-2 text-xs font-medium text-muted-foreground\">Type</th>\n <th className=\"hidden xl:table-cell px-3 py-2 text-xs font-medium text-muted-foreground\">Trigger</th>\n <th className=\"hidden lg:table-cell px-3 py-2 text-xs font-medium text-muted-foreground\">Model</th>\n <th className=\"hidden xl:table-cell px-3 py-2 text-xs font-medium text-muted-foreground\">In / Out</th>\n <th className=\"px-3 py-2 text-xs font-medium text-muted-foreground\">Cost</th>\n <th className=\"hidden lg:table-cell px-3 py-2 text-xs font-medium text-muted-foreground\">Duration</th>\n <th className=\"px-3 py-2 text-xs font-medium text-muted-foreground\">Result</th>\n </tr>\n </thead>\n <tbody>\n {merged.map((event) => (\n <EventRow\n key={event.id}\n event={event}\n onClick={() => setSelectedEvent(event)}\n />\n ))}\n </tbody>\n </table>\n </div>\n )}\n\n {hasNextPage && (\n <div className=\"flex justify-center\">\n <Button\n variant=\"outline\"\n onClick={() => fetchNextPage()}\n disabled={isFetchingNextPage}\n >\n {isFetchingNextPage ? \"Loading...\" : \"Load More\"}\n </Button>\n </div>\n )}\n </QueryResult>\n\n <EventDetailSheet event={selectedEvent} onClose={() => setSelectedEvent(null)} />\n </div>\n );\n}\n","\"use client\";\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useEffect, useRef, useState, useCallback, startTransition } from \"react\";\nimport { api } from \"@/lib/api-client\";\nimport type { LogEntry, SystemLogsResponse } from \"@aitne/shared\";\n\n/** Fetch recent buffered logs via REST. */\nexport function useSystemLogs(\n filters?: { level?: string; logger?: string },\n options?: { enabled?: boolean },\n) {\n return useQuery({\n queryKey: [\"system-logs\", filters],\n queryFn: () =>\n api.get<SystemLogsResponse>(\"/logs\", {\n limit: 500,\n level: filters?.level,\n logger: filters?.logger,\n }),\n enabled: options?.enabled,\n });\n}\n\nfunction mergeLogEntries(\n current: LogEntry[],\n incoming: LogEntry[],\n maxItems: number,\n): LogEntry[] {\n const byId = new Map<number, LogEntry>();\n for (const entry of current) byId.set(entry.id, entry);\n for (const entry of incoming) byId.set(entry.id, entry);\n return [...byId.values()]\n .sort((a, b) => a.id - b.id)\n .slice(-maxItems);\n}\n\n/** Subscribe to real-time log entries via SSE.\n * Pass `maxItems=0` or a falsy value to disconnect the stream entirely. */\nexport function useLogStream(\n maxItems = 500,\n filters?: { level?: string; logger?: string },\n) {\n const [entries, setEntries] = useState<LogEntry[]>([]);\n const [connected, setConnected] = useState(false);\n const esRef = useRef<EventSource | null>(null);\n const lastSeenIdRef = useRef(0);\n\n const clear = useCallback(() => {\n lastSeenIdRef.current = 0;\n setEntries([]);\n }, []);\n\n const mergeEntries = useCallback((incoming: LogEntry[]) => {\n if (incoming.length === 0) return;\n\n setEntries((prev) => {\n const next = mergeLogEntries(prev, incoming, maxItems);\n const last = next[next.length - 1];\n lastSeenIdRef.current = last?.id ?? lastSeenIdRef.current;\n return next;\n });\n }, [maxItems]);\n\n useEffect(() => {\n startTransition(() => {\n clear();\n if (!maxItems) setConnected(false);\n });\n if (!maxItems) return;\n\n // Protected SSE stays on the same-origin dashboard proxy so the browser\n // never needs direct access to the daemon's Bearer token.\n const es = new EventSource(\"/api/logs/stream\");\n esRef.current = es;\n\n es.onopen = () => {\n setConnected(true);\n\n // EventSource auto-reconnects, but it does not replay missed events.\n // On each reconnect, backfill anything newer than the last seen ID\n // from the in-memory log buffer.\n if (lastSeenIdRef.current > 0) {\n void api.get<SystemLogsResponse>(\"/logs\", {\n limit: maxItems,\n afterId: lastSeenIdRef.current,\n level: filters?.level,\n logger: filters?.logger,\n }).then((data) => mergeEntries(data.logs)).catch(() => {});\n }\n };\n es.onerror = () => setConnected(false);\n\n es.addEventListener(\"log\", (e) => {\n try {\n const entry = JSON.parse(e.data) as LogEntry;\n mergeEntries([entry]);\n } catch {\n /* ignore parse errors */\n }\n });\n\n es.addEventListener(\"ping\", () => {});\n\n return () => {\n es.close();\n esRef.current = null;\n setConnected(false);\n };\n }, [clear, filters?.level, filters?.logger, maxItems, mergeEntries]);\n\n return { entries, connected, clear };\n}\n","\"use client\";\n\nimport { useState, useEffect, useRef, useMemo, memo, useCallback } from \"react\";\nimport { useSystemLogs, useLogStream } from \"@/lib/hooks/use-system-logs\";\nimport { EmptyState } from \"@/components/shared/empty-state\";\nimport { QueryResult, TableSkeleton } from \"@/components/shared/query-result\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\";\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\nimport { ScrollText, Trash2, ArrowDown, ChevronRight } from \"lucide-react\";\nimport { cn, parseUtcDate } from \"@/lib/utils\";\nimport type { LogEntry } from \"@aitne/shared\";\n\nconst LEVEL_STYLES: Record<\n string,\n { badge: \"blue\" | \"amber\" | \"red\" | \"gray\" | \"default\"; text: string }\n> = {\n info: { badge: \"blue\", text: \"text-foreground\" },\n warn: { badge: \"amber\", text: \"text-amber-700 dark:text-amber-300\" },\n error: { badge: \"red\", text: \"text-red-700 dark:text-red-300\" },\n fatal: {\n badge: \"red\",\n text: \"text-red-700 dark:text-red-300 font-semibold\",\n },\n};\n\nfunction formatTime(iso: string): string {\n try {\n const d = parseUtcDate(iso);\n return d.toLocaleTimeString(undefined, {\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n });\n } catch {\n return iso;\n }\n}\n\nconst LogEntryRow = memo(function LogEntryRow({\n entry,\n}: {\n entry: LogEntry;\n}) {\n const [expanded, setExpanded] = useState(false);\n const style = LEVEL_STYLES[entry.level] ?? LEVEL_STYLES.info;\n\n return (\n <div\n className={cn(\n \"group border-b border-border/50 px-3 py-1.5 font-mono text-[13px] leading-relaxed hover:bg-muted/30 transition-colors\",\n entry.level === \"error\" || entry.level === \"fatal\"\n ? \"bg-red-50/50 dark:bg-red-950/20\"\n : entry.level === \"warn\"\n ? \"bg-amber-50/30 dark:bg-amber-950/10\"\n : \"\",\n )}\n >\n <div className=\"flex items-start gap-2\">\n <span className=\"shrink-0 text-muted-foreground tabular-nums\">\n {formatTime(entry.timestamp)}\n </span>\n <Badge\n variant={style.badge}\n className=\"shrink-0 w-12 justify-center uppercase text-[10px]\"\n >\n {entry.level}\n </Badge>\n <span\n className=\"shrink-0 text-muted-foreground w-28 truncate\"\n title={entry.logger}\n >\n {entry.logger}\n </span>\n <span className={cn(\"flex-1 break-all\", style.text)}>\n {entry.message}\n </span>\n {entry.data && (\n <button\n onClick={() => setExpanded(!expanded)}\n className=\"shrink-0 p-0.5 text-muted-foreground hover:text-foreground transition-colors\"\n aria-label={expanded ? \"Collapse details\" : \"Expand details\"}\n >\n <ChevronRight\n className={cn(\n \"h-3.5 w-3.5 transition-transform\",\n expanded && \"rotate-90\",\n )}\n />\n </button>\n )}\n </div>\n {expanded && entry.data && (\n <pre className=\"mt-1 pl-44 overflow-x-auto rounded bg-muted/50 p-2 text-xs text-muted-foreground\">\n {JSON.stringify(entry.data, null, 2)}\n </pre>\n )}\n </div>\n );\n});\n\nexport function SystemLogsContent({ enabled }: { enabled: boolean }) {\n const [level, setLevel] = useState(\"all\");\n const [logger, setLogger] = useState(\"all\");\n const [live, setLive] = useState(true);\n const [autoScroll, setAutoScroll] = useState(true);\n const [clearedAt, setClearedAt] = useState(0);\n\n const filters = {\n level: level === \"all\" ? undefined : level,\n logger: logger === \"all\" ? undefined : logger,\n };\n\n const {\n data: initialData,\n isLoading,\n isError,\n error,\n refetch,\n } = useSystemLogs(filters, { enabled });\n\n const { entries: streamEntries, connected, clear: clearStream } = useLogStream(\n live && enabled ? 1000 : 0,\n filters,\n );\n\n const scrollRef = useRef<HTMLDivElement>(null);\n const bottomRef = useRef<HTMLDivElement>(null);\n\n const merged = useMemo(() => {\n const initialLogs = clearedAt === 0 ? (initialData?.logs ?? []) : [];\n const seen = new Set<number>();\n const all: LogEntry[] = [];\n\n for (const e of initialLogs) {\n if (seen.has(e.id)) continue;\n seen.add(e.id);\n all.push(e);\n }\n if (live) {\n for (const e of streamEntries) {\n if (seen.has(e.id)) continue;\n if (e.id <= clearedAt) continue;\n if (filters.level && e.level !== filters.level) continue;\n if (filters.logger && e.logger !== filters.logger) continue;\n seen.add(e.id);\n all.push(e);\n }\n }\n\n all.sort((a, b) => a.id - b.id);\n return all;\n }, [initialData, streamEntries, live, filters.level, filters.logger, clearedAt]);\n\n const loggerNames = useMemo(() => {\n const fromApi = initialData?.loggers ?? [];\n const fromStream = new Set(streamEntries.map((e) => e.logger));\n const combined = new Set([...fromApi, ...fromStream]);\n return [...combined].sort();\n }, [initialData?.loggers, streamEntries]);\n\n useEffect(() => {\n if (autoScroll && bottomRef.current) {\n bottomRef.current.scrollIntoView({ behavior: \"smooth\" });\n }\n }, [merged.length, autoScroll]);\n\n const handleScroll = useCallback(() => {\n const el = scrollRef.current;\n if (!el) return;\n const atBottom = el.scrollHeight - el.scrollTop - el.clientHeight < 40;\n setAutoScroll(atBottom);\n }, []);\n\n const handleClear = useCallback(() => {\n const maxId = streamEntries.length > 0\n ? Math.max(...streamEntries.map((e) => e.id))\n : (initialData?.logs ?? []).reduce((m, e) => Math.max(m, e.id), 0);\n setClearedAt(maxId);\n clearStream();\n }, [streamEntries, initialData?.logs, clearStream]);\n\n return (\n <div className=\"flex h-full flex-col\">\n {/* Header with connection status */}\n <div className=\"mb-4 flex items-center justify-end\">\n <div className=\"flex items-center gap-2 text-xs text-muted-foreground\">\n <span\n className={cn(\n \"h-2 w-2 rounded-full\",\n connected ? \"bg-emerald-500\" : \"bg-gray-400\",\n )}\n />\n {connected ? \"Connected\" : \"Disconnected\"}\n </div>\n </div>\n\n {/* Filters */}\n <div className=\"mb-4 flex flex-wrap items-center gap-3\">\n <Select value={level} onValueChange={setLevel}>\n <SelectTrigger className=\"w-32\">\n <SelectValue placeholder=\"Level\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"all\">All Levels</SelectItem>\n <SelectItem value=\"info\">Info</SelectItem>\n <SelectItem value=\"warn\">Warn</SelectItem>\n <SelectItem value=\"error\">Error</SelectItem>\n <SelectItem value=\"fatal\">Fatal</SelectItem>\n </SelectContent>\n </Select>\n\n <Select value={logger} onValueChange={setLogger}>\n <SelectTrigger className=\"w-44\">\n <SelectValue placeholder=\"Logger\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"all\">All Loggers</SelectItem>\n {loggerNames.map((name) => (\n <SelectItem key={name} value={name}>\n {name}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n\n <Button variant=\"outline\" size=\"sm\" onClick={handleClear}>\n <Trash2 className=\"mr-1.5 h-3.5 w-3.5\" />\n Clear\n </Button>\n\n <div className=\"flex-1\" />\n\n <button\n onClick={() => setLive(!live)}\n className={cn(\n \"flex items-center gap-2 rounded-md px-3 py-1.5 text-xs font-medium transition-colors\",\n live\n ? \"bg-emerald-50 text-emerald-700 dark:bg-emerald-950 dark:text-emerald-300\"\n : \"bg-muted text-muted-foreground\",\n )}\n >\n <span\n className={cn(\n \"h-2 w-2 rounded-full\",\n live ? \"bg-emerald-500 animate-pulse\" : \"bg-gray-400\",\n )}\n />\n Live\n </button>\n\n {!autoScroll && (\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => {\n setAutoScroll(true);\n bottomRef.current?.scrollIntoView({ behavior: \"smooth\" });\n }}\n >\n <ArrowDown className=\"mr-1.5 h-3.5 w-3.5\" />\n Scroll to bottom\n </Button>\n )}\n </div>\n\n {/* Log entries */}\n <QueryResult\n isLoading={isLoading}\n isError={isError}\n error={error}\n onRetry={() => refetch()}\n skeleton={<TableSkeleton rows={12} />}\n >\n {merged.length === 0 ? (\n <EmptyState\n icon={ScrollText}\n title=\"No logs yet\"\n description=\"Application logs will appear here as the daemon runs\"\n />\n ) : (\n <div className=\"min-h-0 flex-1 overflow-hidden rounded-xl border border-border\">\n <ScrollArea\n ref={scrollRef}\n className=\"h-full\"\n onScrollCapture={handleScroll}\n >\n {merged.map((entry) => (\n <LogEntryRow key={entry.id} entry={entry} />\n ))}\n <div ref={bottomRef} />\n </ScrollArea>\n </div>\n )}\n </QueryResult>\n\n <div className=\"mt-2 shrink-0 text-xs text-muted-foreground\">\n {merged.length} entries\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport { useState } from \"react\";\nimport Link from \"next/link\";\nimport { useConversations } from \"@/lib/hooks/use-conversations\";\nimport { EmptyState } from \"@/components/shared/empty-state\";\nimport { QueryResult } from \"@/components/shared/query-result\";\nimport { DocsLearnMore } from \"@/components/docs/docs-learn-more\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Button } from \"@/components/ui/button\";\nimport { Card } from \"@/components/ui/card\";\nimport { Tooltip, TooltipTrigger, TooltipContent } from \"@/components/ui/tooltip\";\nimport { formatShortDateTime, formatAbsoluteTime, formatRelativeTime } from \"@/lib/utils\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { formatShortModelName, modelBadgeVariant } from \"@/lib/backend-ui\";\nimport { Hash, MessageSquare, MessagesSquare, Send, Smartphone, LayoutDashboard } from \"lucide-react\";\n\nconst PLATFORMS = [\"all\", \"slack\", \"discord\", \"telegram\", \"whatsapp\", \"dashboard\"];\nconst STATUSES = [\"all\", \"active\", \"expired\", \"closed\"];\nconst PLATFORM_ICON: Record<string, React.ElementType> = {\n slack: Hash,\n discord: MessagesSquare,\n telegram: Send,\n whatsapp: Smartphone,\n dashboard: LayoutDashboard,\n};\n\nconst STATUS_BADGE_VARIANT: Record<string, \"green\" | \"red\" | \"gray\"> = {\n active: \"green\",\n closed: \"red\",\n expired: \"gray\",\n};\n\nconst PLATFORM_BORDER_COLOR: Record<string, string> = {\n slack: \"border-l-purple-500\",\n discord: \"border-l-indigo-500\",\n telegram: \"border-l-sky-500\",\n whatsapp: \"border-l-emerald-500\",\n dashboard: \"border-l-gray-400\",\n};\n\nexport function ConversationsContent({ enabled = true }: { enabled?: boolean }) {\n const [platform, setPlatform] = useState(\"all\");\n const [status, setStatus] = useState(\"all\");\n\n const { data, fetchNextPage, hasNextPage, isFetchingNextPage, isLoading, isError, error, refetch } = useConversations(\n {\n platform: platform === \"all\" ? undefined : platform,\n status: status === \"all\" ? undefined : status,\n },\n { enabled },\n );\n\n const conversations = data?.pages.flatMap((p) => p.conversations) ?? [];\n\n return (\n <div className=\"space-y-6\">\n {/* Filters */}\n <div className=\"flex flex-wrap items-center gap-3\" role=\"toolbar\" aria-label=\"Conversation filters\">\n <div className=\"flex gap-1\">\n {PLATFORMS.map((p) => (\n <Button\n key={p}\n variant={platform === p ? \"default\" : \"outline\"}\n size=\"sm\"\n onClick={() => setPlatform(p)}\n aria-pressed={platform === p}\n >\n {p === \"all\" ? \"All\" : p}\n </Button>\n ))}\n </div>\n <Separator orientation=\"vertical\" className=\"h-6\" />\n <div className=\"flex gap-1\">\n {STATUSES.map((s) => (\n <Button\n key={s}\n variant={status === s ? \"default\" : \"outline\"}\n size=\"sm\"\n onClick={() => setStatus(s)}\n aria-pressed={status === s}\n >\n {s === \"all\" ? \"All\" : s}\n </Button>\n ))}\n </div>\n </div>\n\n <QueryResult\n isLoading={isLoading}\n isError={isError}\n error={error}\n onRetry={() => refetch()}\n >\n {/* Conversation cards */}\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-3\">\n {conversations.map((conv) => {\n const Icon = PLATFORM_ICON[conv.platform] ?? MessageSquare;\n\n return (\n <Link key={conv.id} href={`/conversations/${conv.id}`}>\n <Card className={`cursor-pointer border-l-4 min-h-[120px] ${PLATFORM_BORDER_COLOR[conv.platform] ?? \"border-l-gray-300\"}`}>\n <div className=\"flex items-start justify-between\">\n <div className=\"flex items-center gap-2\">\n <Icon className=\"h-4 w-4 text-muted-foreground\" />\n <span className=\"text-sm font-medium text-foreground capitalize\">{conv.platform}</span>\n </div>\n <Badge variant={STATUS_BADGE_VARIANT[conv.status] ?? \"gray\"}>\n {conv.status}\n </Badge>\n </div>\n <div className=\"mt-3 space-y-1\">\n <p className=\"text-sm text-muted-foreground\">\n <Badge variant={modelBadgeVariant(conv.model)} className=\"mr-1.5\">\n {formatShortModelName(conv.model)}\n </Badge>\n {conv.message_count} messages\n </p>\n <Tooltip>\n <TooltipTrigger asChild>\n <p className=\"text-xs font-mono tabular-nums text-muted-foreground\">\n {formatShortDateTime(conv.last_message_at)}\n </p>\n </TooltipTrigger>\n <TooltipContent>\n {formatAbsoluteTime(conv.last_message_at)} ({formatRelativeTime(conv.last_message_at)})\n </TooltipContent>\n </Tooltip>\n {conv.summary && (\n <p className=\"line-clamp-1 text-xs text-muted-foreground\">{conv.summary}</p>\n )}\n </div>\n </Card>\n </Link>\n );\n })}\n </div>\n\n {conversations.length === 0 ? (\n <EmptyState\n icon={MessagesSquare}\n title=\"No conversations found\"\n description=\"Conversations will appear here when the agent interacts via messaging platforms\"\n >\n <div className=\"mt-4\">\n <DocsLearnMore docId=\"features/operations/activity-and-conversations\" />\n </div>\n </EmptyState>\n ) : null}\n\n {hasNextPage && (\n <div className=\"flex justify-center\">\n <Button variant=\"outline\" onClick={() => fetchNextPage()} disabled={isFetchingNextPage}>\n {isFetchingNextPage ? \"Loading...\" : \"Load More\"}\n </Button>\n </div>\n )}\n </QueryResult>\n </div>\n );\n}\n","\"use client\";\n\nimport { useInfiniteQuery } from \"@tanstack/react-query\";\nimport { api } from \"@/lib/api-client\";\nimport type { NotificationsResponse } from \"@/lib/api-types\";\n\nexport function useNotifications(\n filters?: { status?: string; priority?: string },\n options?: { enabled?: boolean },\n) {\n return useInfiniteQuery({\n queryKey: [\"notifications\", filters],\n enabled: options?.enabled ?? true,\n queryFn: ({ pageParam = 1 }) =>\n api.get<NotificationsResponse>(\"/notifications\", {\n page: pageParam,\n limit: 50,\n status: filters?.status,\n priority: filters?.priority,\n }),\n getNextPageParam: (lastPage) =>\n lastPage.pagination.page < lastPage.pagination.totalPages\n ? lastPage.pagination.page + 1\n : undefined,\n initialPageParam: 1,\n });\n}\n","\"use client\";\n\nimport { useState } from \"react\";\nimport { useNotifications } from \"@/lib/hooks/use-notifications\";\nimport { useMetrics } from \"@/lib/hooks/use-metrics\";\nimport { EmptyState } from \"@/components/shared/empty-state\";\nimport { DocsLearnMore } from \"@/components/docs/docs-learn-more\";\nimport { QueryResult, CardSkeleton } from \"@/components/shared/query-result\";\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui/select\";\nimport { Button } from \"@/components/ui/button\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Card, CardHeader, CardStatLabel, CardValue } from \"@/components/ui/card\";\nimport { Tooltip, TooltipTrigger, TooltipContent } from \"@/components/ui/tooltip\";\nimport { formatRelativeTime, formatAbsoluteTime } from \"@/lib/utils\";\nimport { Bell } from \"lucide-react\";\n\nconst STATUS_COLORS: Record<string, \"green\" | \"blue\" | \"gray\" | \"red\"> = {\n delivered: \"green\",\n batched: \"blue\",\n suppressed: \"gray\",\n failed: \"red\",\n};\n\nconst PRIORITY_COLORS: Record<string, \"red\" | \"amber\" | \"blue\" | \"gray\"> = {\n critical: \"red\",\n high: \"amber\",\n normal: \"blue\",\n low: \"gray\",\n};\n\nexport function NotificationsContent({ enabled = true }: { enabled?: boolean }) {\n const [status, setStatus] = useState(\"all\");\n const [priority, setPriority] = useState(\"all\");\n\n const { data, fetchNextPage, hasNextPage, isFetchingNextPage, isLoading, isError, error, refetch } = useNotifications(\n {\n status: status === \"all\" ? undefined : status,\n priority: priority === \"all\" ? undefined : priority,\n },\n { enabled },\n );\n const { data: metrics, isLoading: metricsLoading } = useMetrics({ enabled });\n\n const notifications = data?.pages.flatMap((p) => p.notifications) ?? [];\n\n return (\n <div className=\"space-y-6\">\n {/* Summary stats */}\n <QueryResult isLoading={metricsLoading} isError={false} skeleton={<CardSkeleton count={4} />}>\n <div className=\"grid grid-cols-2 gap-4 md:grid-cols-4\">\n <Card>\n <CardHeader><CardStatLabel>Delivered</CardStatLabel></CardHeader>\n <CardValue className=\"text-2xl\">{metrics?.notificationCounts.delivered ?? 0}</CardValue>\n </Card>\n <Card>\n <CardHeader><CardStatLabel>Reacted</CardStatLabel></CardHeader>\n <CardValue className=\"text-2xl\">{metrics?.notificationCounts.reacted ?? 0}</CardValue>\n </Card>\n <Card>\n <CardHeader><CardStatLabel>Suppressed</CardStatLabel></CardHeader>\n <CardValue className=\"text-2xl\">{metrics?.notificationCounts.suppressed ?? 0}</CardValue>\n </Card>\n <Card>\n <CardHeader><CardStatLabel>Confirm Rate</CardStatLabel></CardHeader>\n <CardValue className=\"text-2xl\">\n {metrics?.notificationConfirmRate !== null && metrics?.notificationConfirmRate !== undefined\n ? `${(metrics.notificationConfirmRate * 100).toFixed(0)}%`\n : \"\\u2014\"}\n </CardValue>\n </Card>\n </div>\n </QueryResult>\n\n {/* Filters */}\n <div className=\"flex flex-wrap items-center gap-3\" role=\"toolbar\" aria-label=\"Notification filters\">\n <Select value={status} onValueChange={setStatus}>\n <SelectTrigger className=\"w-40\">\n <SelectValue placeholder=\"Status\" />\n </SelectTrigger>\n <SelectContent>\n {[\"all\", \"delivered\", \"batched\", \"suppressed\", \"failed\"].map((s) => (\n <SelectItem key={s} value={s}>{s === \"all\" ? \"All Status\" : s}</SelectItem>\n ))}\n </SelectContent>\n </Select>\n\n <Select value={priority} onValueChange={setPriority}>\n <SelectTrigger className=\"w-40\">\n <SelectValue placeholder=\"Priority\" />\n </SelectTrigger>\n <SelectContent>\n {[\"all\", \"critical\", \"high\", \"normal\", \"low\"].map((p) => (\n <SelectItem key={p} value={p}>{p === \"all\" ? \"All Priority\" : p}</SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n\n <QueryResult\n isLoading={isLoading}\n isError={isError}\n error={error}\n onRetry={() => refetch()}\n >\n {/* Table */}\n <div className=\"overflow-x-auto rounded-xl border border-border\">\n <table className=\"w-full text-left\" aria-label=\"Notifications\">\n <thead>\n <tr className=\"border-b border-border bg-muted/50\">\n <th className=\"px-3 py-2 text-xs font-medium text-muted-foreground\">Time</th>\n <th className=\"px-3 py-2 text-xs font-medium text-muted-foreground\">Priority</th>\n <th className=\"px-3 py-2 text-xs font-medium text-muted-foreground\">Message</th>\n <th className=\"px-3 py-2 text-xs font-medium text-muted-foreground\">Platform</th>\n <th className=\"px-3 py-2 text-xs font-medium text-muted-foreground\">Status</th>\n </tr>\n </thead>\n <tbody>\n {notifications.map((n) => (\n <tr key={n.id} className=\"border-b border-border\">\n <td className=\"px-3 py-2 text-xs font-mono tabular-nums text-muted-foreground whitespace-nowrap\">\n <Tooltip>\n <TooltipTrigger>{formatAbsoluteTime(n.created_at)}</TooltipTrigger>\n <TooltipContent>{formatRelativeTime(n.created_at)}</TooltipContent>\n </Tooltip>\n </td>\n <td className=\"px-3 py-2\">\n <Badge variant={PRIORITY_COLORS[n.priority] ?? \"gray\"}>{n.priority}</Badge>\n </td>\n <td className=\"max-w-md truncate px-3 py-2 text-sm text-foreground\">{n.message}</td>\n <td className=\"px-3 py-2 text-xs text-muted-foreground\">{n.platform}</td>\n <td className=\"px-3 py-2\">\n <Badge variant={STATUS_COLORS[n.status] ?? \"gray\"}>{n.status}</Badge>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n\n {notifications.length === 0 ? (\n <EmptyState\n icon={Bell}\n title=\"No notifications yet\"\n description=\"Notifications will appear here as the agent sends them\"\n >\n <div className=\"mt-4\">\n <DocsLearnMore docId=\"features/operations/notifications\" />\n </div>\n </EmptyState>\n ) : null}\n\n {hasNextPage && (\n <div className=\"flex justify-center\">\n <Button variant=\"outline\" onClick={() => fetchNextPage()} disabled={isFetchingNextPage}>\n {isFetchingNextPage ? \"Loading...\" : \"Load More\"}\n </Button>\n </div>\n )}\n </QueryResult>\n </div>\n );\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Bell\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIiAvPgogIDxwYXRoIGQ9Ik0zLjI2MiAxNS4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0MxOS40MSAxMy45NTYgMTggMTIuNDk5IDE4IDhBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzM4IDcuMzI2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bell\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 Bell = createLucideIcon('Bell', [\n ['path', { d: 'M10.268 21a2 2 0 0 0 3.464 0', key: 'vwvbt9' }],\n [\n 'path',\n {\n d: 'M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326',\n key: '11g9vi',\n },\n ],\n]);\n\nexport default Bell;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNXYxNCIgLz4KICA8cGF0aCBkPSJtMTkgMTItNyA3LTctNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-down\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 ArrowDown = createLucideIcon('ArrowDown', [\n ['path', { d: 'M12 5v14', key: 's699le' }],\n ['path', { d: 'm19 12-7 7-7-7', key: '1idqje' }],\n]);\n\nexport default ArrowDown;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name MessagesSquare\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgOWEyIDIgMCAwIDEtMiAySDZsLTQgNFY0YTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDEgMiAyeiIgLz4KICA8cGF0aCBkPSJNMTggOWgyYTIgMiAwIDAgMSAyIDJ2MTFsLTQtNGgtNmEyIDIgMCAwIDEtMi0ydi0xIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/messages-square\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 MessagesSquare = createLucideIcon('MessagesSquare', [\n ['path', { d: 'M14 9a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2z', key: 'p1xzt8' }],\n ['path', { d: 'M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1', key: '1cx29u' }],\n]);\n\nexport default MessagesSquare;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ScrollText\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMTJoLTUiIC8+CiAgPHBhdGggZD0iTTE1IDhoLTUiIC8+CiAgPHBhdGggZD0iTTE5IDE3VjVhMiAyIDAgMCAwLTItMkg0IiAvPgogIDxwYXRoIGQ9Ik04IDIxaDEyYTIgMiAwIDAgMCAyLTJ2LTFhMSAxIDAgMCAwLTEtMUgxMWExIDEgMCAwIDAtMSAxdjFhMiAyIDAgMSAxLTQgMFY1YTIgMiAwIDEgMC00IDB2MmExIDEgMCAwIDAgMSAxaDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/scroll-text\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 ScrollText = createLucideIcon('ScrollText', [\n ['path', { d: 'M15 12h-5', key: 'r7krc0' }],\n ['path', { d: 'M15 8h-5', key: '1khuty' }],\n ['path', { d: 'M19 17V5a2 2 0 0 0-2-2H4', key: 'zz82l3' }],\n [\n 'path',\n {\n d: 'M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3',\n key: '1ph1d7',\n },\n ],\n]);\n\nexport default ScrollText;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Send\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNTM2IDIxLjY4NmEuNS41IDAgMCAwIC45MzctLjAyNGw2LjUtMTlhLjQ5Ni40OTYgMCAwIDAtLjYzNS0uNjM1bC0xOSA2LjVhLjUuNSAwIDAgMC0uMDI0LjkzN2w3LjkzIDMuMThhMiAyIDAgMCAxIDEuMTEyIDEuMTF6IiAvPgogIDxwYXRoIGQ9Im0yMS44NTQgMi4xNDctMTAuOTQgMTAuOTM5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/send\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 Send = createLucideIcon('Send', [\n [\n 'path',\n {\n d: 'M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z',\n key: '1ffxy3',\n },\n ],\n ['path', { d: 'm21.854 2.147-10.94 10.939', key: '12cjpa' }],\n]);\n\nexport default Send;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Smartphone\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iMjAiIHg9IjUiIHk9IjIiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNMTIgMThoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/smartphone\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 Smartphone = createLucideIcon('Smartphone', [\n ['rect', { width: '14', height: '20', x: '5', y: '2', rx: '2', ry: '2', key: '1yt0o3' }],\n ['path', { d: 'M12 18h.01', key: 'mhygvu' }],\n]);\n\nexport default Smartphone;\n"],"names":["DATE_RANGES","EVENT_TYPES","value","label","EventFilters","props","className","onTypeChange","RESULTS","t","onValueChange","result","type","placeholder","dateRange","r","map","d","onResultChange","size","onDateRangeChange","onClick","orientation","variant","onRefresh","live","onLiveToggle","isRefreshing","disabled","title"],"mappings":"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","ignoreList":[11,12,13,14,15,16]}