@hotmeshio/long-tail 0.3.2 → 0.4.0

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 (337) hide show
  1. package/build/api/agents.d.ts +1 -1
  2. package/build/api/agents.js +1 -1
  3. package/build/api/controlplane.d.ts +33 -0
  4. package/build/api/controlplane.js +46 -0
  5. package/build/bin/ltc.js +16 -0
  6. package/build/lib/cli/commands/streams.d.ts +20 -0
  7. package/build/lib/cli/commands/streams.js +134 -0
  8. package/build/lib/db/schemas/003_agents.sql +1 -2
  9. package/build/lib/db/schemas/004_agent_subscriptions.sql +1 -1
  10. package/build/routes/agents.js +3 -3
  11. package/build/routes/controlplane.js +28 -0
  12. package/build/sdk/index.d.ts +1 -0
  13. package/build/sdk/index.js +1 -0
  14. package/build/services/agent/index.d.ts +2 -3
  15. package/build/services/agent/index.js +5 -12
  16. package/build/services/agent/sql.d.ts +3 -4
  17. package/build/services/agent/sql.js +16 -20
  18. package/build/services/agent/subscription-sql.d.ts +1 -1
  19. package/build/services/agent/subscription-sql.js +1 -1
  20. package/build/services/agent/trigger-registry.js +1 -1
  21. package/build/services/controlplane/index.d.ts +9 -1
  22. package/build/services/controlplane/index.js +39 -0
  23. package/build/services/controlplane/stream-messages-sql.d.ts +21 -0
  24. package/build/services/controlplane/stream-messages-sql.js +108 -0
  25. package/build/services/controlplane/types.d.ts +44 -0
  26. package/build/services/cron/index.js +5 -5
  27. package/build/services/export/post-process.js +14 -6
  28. package/build/services/mcp-runs/execution-builder.js +9 -4
  29. package/build/services/topics/index.js +1 -4
  30. package/build/services/topics/sql.d.ts +2 -2
  31. package/build/services/topics/sql.js +9 -2
  32. package/build/services/topics/system-topics.js +2 -3
  33. package/build/start/workers.js +11 -14
  34. package/build/tsconfig.tsbuildinfo +1 -1
  35. package/build/types/agent.d.ts +1 -1
  36. package/dashboard/dist/assets/AdminDashboard-CR0FtTE6.js +2 -0
  37. package/dashboard/dist/assets/{AdminDashboard-CbeSejVX.js.map → AdminDashboard-CR0FtTE6.js.map} +1 -1
  38. package/dashboard/dist/assets/AgentConfigPage-BVypgq9m.js +13 -0
  39. package/dashboard/dist/assets/AgentConfigPage-BVypgq9m.js.map +1 -0
  40. package/dashboard/dist/assets/AgentDetailPage-D64ath8c.js +4 -0
  41. package/dashboard/dist/assets/AgentDetailPage-D64ath8c.js.map +1 -0
  42. package/dashboard/dist/assets/AgentsPage-j-zblMNR.js +2 -0
  43. package/dashboard/dist/assets/AgentsPage-j-zblMNR.js.map +1 -0
  44. package/dashboard/dist/assets/AvailableEscalationsPage-DmUid1h0.js +2 -0
  45. package/dashboard/dist/assets/{AvailableEscalationsPage-DdrzePy4.js.map → AvailableEscalationsPage-DmUid1h0.js.map} +1 -1
  46. package/dashboard/dist/assets/BotPicker-DCScT8BN.js +2 -0
  47. package/dashboard/dist/assets/{BotPicker-kKBifD1w.js.map → BotPicker-DCScT8BN.js.map} +1 -1
  48. package/dashboard/dist/assets/CapabilitiesPage-g5iUvHRL.js +2 -0
  49. package/dashboard/dist/assets/{CapabilitiesPage-Ch5qY0I7.js.map → CapabilitiesPage-g5iUvHRL.js.map} +1 -1
  50. package/dashboard/dist/assets/CollapsibleSection-Dj1YOsVG.js +2 -0
  51. package/dashboard/dist/assets/{CollapsibleSection-kYTBL7dT.js.map → CollapsibleSection-Dj1YOsVG.js.map} +1 -1
  52. package/dashboard/dist/assets/ConfirmDeleteModal-dOxidrSR.js +2 -0
  53. package/dashboard/dist/assets/{ConfirmDeleteModal-CcaAapMl.js.map → ConfirmDeleteModal-dOxidrSR.js.map} +1 -1
  54. package/dashboard/dist/assets/CopyableId-DmLF-RqZ.js +2 -0
  55. package/dashboard/dist/assets/{CopyableId-B4CL12pv.js.map → CopyableId-DmLF-RqZ.js.map} +1 -1
  56. package/dashboard/dist/assets/CredentialsPage-Dvb4QelY.js +2 -0
  57. package/dashboard/dist/assets/{CredentialsPage-D1VAlwid.js.map → CredentialsPage-Dvb4QelY.js.map} +1 -1
  58. package/dashboard/dist/assets/CronLabel-sk1BkcJd.js +2 -0
  59. package/dashboard/dist/assets/{CronLabel-DRmO5rH0.js.map → CronLabel-sk1BkcJd.js.map} +1 -1
  60. package/dashboard/dist/assets/CustomDurationPicker-C0MV2Q06.js +2 -0
  61. package/dashboard/dist/assets/{CustomDurationPicker-C06QDDir.js.map → CustomDurationPicker-C0MV2Q06.js.map} +1 -1
  62. package/dashboard/dist/assets/DataTable-D9yuBv0w.js +2 -0
  63. package/dashboard/dist/assets/{DataTable-J5R6mepB.js.map → DataTable-D9yuBv0w.js.map} +1 -1
  64. package/dashboard/dist/assets/DropZone-DN8uwUtf.js +2 -0
  65. package/dashboard/dist/assets/{DropZone-DwNj3GiG.js.map → DropZone-DN8uwUtf.js.map} +1 -1
  66. package/dashboard/dist/assets/ElapsedCell-CFXhhKKc.js +2 -0
  67. package/dashboard/dist/assets/{ElapsedCell-ChyMzl9n.js.map → ElapsedCell-CFXhhKKc.js.map} +1 -1
  68. package/dashboard/dist/assets/EmptyState-BcsfPq9T.js +2 -0
  69. package/dashboard/dist/assets/{EmptyState-BXGvOADa.js.map → EmptyState-BcsfPq9T.js.map} +1 -1
  70. package/dashboard/dist/assets/EscalationsOverview-BEuUFGwC.js +2 -0
  71. package/dashboard/dist/assets/{EscalationsOverview-DM6zmE4g.js.map → EscalationsOverview-BEuUFGwC.js.map} +1 -1
  72. package/dashboard/dist/assets/EventTable-DcwVWOKb.js +2 -0
  73. package/dashboard/dist/assets/{EventTable-CvJ98E8s.js.map → EventTable-DcwVWOKb.js.map} +1 -1
  74. package/dashboard/dist/assets/EventTopicPill-CWCP1v1O.js +2 -0
  75. package/dashboard/dist/assets/{EventTopicPill-CB_rIGlL.js.map → EventTopicPill-CWCP1v1O.js.map} +1 -1
  76. package/dashboard/dist/assets/FilterBar-Ck4K4rzu.js +2 -0
  77. package/dashboard/dist/assets/{FilterBar-Bdssa-Xn.js.map → FilterBar-Ck4K4rzu.js.map} +1 -1
  78. package/dashboard/dist/assets/HomePage-BH-F5ws9.js +2 -0
  79. package/dashboard/dist/assets/HomePage-BH-F5ws9.js.map +1 -0
  80. package/dashboard/dist/assets/ListToolbar-CUxJlz__.js +2 -0
  81. package/dashboard/dist/assets/{ListToolbar-jy8NL6ll.js.map → ListToolbar-CUxJlz__.js.map} +1 -1
  82. package/dashboard/dist/assets/McpOverview-O8XrOzy0.js +2 -0
  83. package/dashboard/dist/assets/{McpOverview-xkaKuHbX.js.map → McpOverview-O8XrOzy0.js.map} +1 -1
  84. package/dashboard/dist/assets/McpQueryDetailPage-DhiR0Xrx.js +5 -0
  85. package/dashboard/dist/assets/{McpQueryDetailPage-D5ICn6cR.js.map → McpQueryDetailPage-DhiR0Xrx.js.map} +1 -1
  86. package/dashboard/dist/assets/McpQueryPage-Czot0nfl.js +2 -0
  87. package/dashboard/dist/assets/{McpQueryPage-C46fzfm5.js.map → McpQueryPage-Czot0nfl.js.map} +1 -1
  88. package/dashboard/dist/assets/McpRunDetailPage-B1kNnD_t.js +2 -0
  89. package/dashboard/dist/assets/{McpRunDetailPage-Znsl4Yc-.js.map → McpRunDetailPage-B1kNnD_t.js.map} +1 -1
  90. package/dashboard/dist/assets/McpRunsPage-QUY3pWp9.js +2 -0
  91. package/dashboard/dist/assets/McpRunsPage-QUY3pWp9.js.map +1 -0
  92. package/dashboard/dist/assets/Modal-DEODGeqx.js +2 -0
  93. package/dashboard/dist/assets/{Modal-C6k6_5KB.js.map → Modal-DEODGeqx.js.map} +1 -1
  94. package/dashboard/dist/assets/OperatorDashboard-BG1Q9qZk.js +2 -0
  95. package/dashboard/dist/assets/{OperatorDashboard-e5N3_dVl.js.map → OperatorDashboard-BG1Q9qZk.js.map} +1 -1
  96. package/dashboard/dist/assets/PageHeader-DlzOOM4Y.js +2 -0
  97. package/dashboard/dist/assets/{PageHeader-COcgWWf-.js.map → PageHeader-DlzOOM4Y.js.map} +1 -1
  98. package/dashboard/dist/assets/PageHeaderWithStats-C5cZ3IOO.js +2 -0
  99. package/dashboard/dist/assets/{PageHeaderWithStats-C0PCY3aJ.js.map → PageHeaderWithStats-C5cZ3IOO.js.map} +1 -1
  100. package/dashboard/dist/assets/PriorityBadge-DfQY9St9.js +2 -0
  101. package/dashboard/dist/assets/{PriorityBadge-BQCsYMpM.js.map → PriorityBadge-DfQY9St9.js.map} +1 -1
  102. package/dashboard/dist/assets/ProcessDetailPage-DS1AwTso.js +2 -0
  103. package/dashboard/dist/assets/{ProcessDetailPage-C03LOgI0.js.map → ProcessDetailPage-DS1AwTso.js.map} +1 -1
  104. package/dashboard/dist/assets/ProcessesListPage-CAmVcn1P.js +2 -0
  105. package/dashboard/dist/assets/{ProcessesListPage-iyPsmlhm.js.map → ProcessesListPage-CAmVcn1P.js.map} +1 -1
  106. package/dashboard/dist/assets/RolePill-BZaUpkHg.js +2 -0
  107. package/dashboard/dist/assets/{RolePill-CHwys1f9.js.map → RolePill-BZaUpkHg.js.map} +1 -1
  108. package/dashboard/dist/assets/RolesPage-CFdIXfmv.js +2 -0
  109. package/dashboard/dist/assets/{RolesPage-Bmc3XaUk.js.map → RolesPage-CFdIXfmv.js.map} +1 -1
  110. package/dashboard/dist/assets/RowActions-Dg-Fsm5O.js +2 -0
  111. package/dashboard/dist/assets/{RowActions-Bs4PF-Gd.js.map → RowActions-Dg-Fsm5O.js.map} +1 -1
  112. package/dashboard/dist/assets/RunAsSelector-BGww9lta.js +2 -0
  113. package/dashboard/dist/assets/{RunAsSelector-DXzAr2WW.js.map → RunAsSelector-BGww9lta.js.map} +1 -1
  114. package/dashboard/dist/assets/ServerName-DfS3pfon.js +2 -0
  115. package/dashboard/dist/assets/{ServerName-BIdLC1Ay.js.map → ServerName-DfS3pfon.js.map} +1 -1
  116. package/dashboard/dist/assets/StatCard-DlgF0CJC.js +2 -0
  117. package/dashboard/dist/assets/{StatCard-OKzRSSx4.js.map → StatCard-DlgF0CJC.js.map} +1 -1
  118. package/dashboard/dist/assets/StatusBadge-XQlNFwmH.js +2 -0
  119. package/dashboard/dist/assets/{StatusBadge-CQlF46RR.js.map → StatusBadge-XQlNFwmH.js.map} +1 -1
  120. package/dashboard/dist/assets/StepIndicator-CuUIGxKk.js +2 -0
  121. package/dashboard/dist/assets/{StepIndicator-CP7eycjI.js.map → StepIndicator-CuUIGxKk.js.map} +1 -1
  122. package/dashboard/dist/assets/StickyPagination-F9FZsRy9.js +2 -0
  123. package/dashboard/dist/assets/{StickyPagination-CGk8VAKt.js.map → StickyPagination-F9FZsRy9.js.map} +1 -1
  124. package/dashboard/dist/assets/SwimlaneTimeline-C2hGjy0V.js +2 -0
  125. package/dashboard/dist/assets/{SwimlaneTimeline-MEUPc3yJ.js.map → SwimlaneTimeline-C2hGjy0V.js.map} +1 -1
  126. package/dashboard/dist/assets/TagInput-D21mrQx6.js +2 -0
  127. package/dashboard/dist/assets/{TagInput-BGxXKiWD.js.map → TagInput-D21mrQx6.js.map} +1 -1
  128. package/dashboard/dist/assets/TaskDetailPage-B49WQj8W.js +2 -0
  129. package/dashboard/dist/assets/TaskDetailPage-B49WQj8W.js.map +1 -0
  130. package/dashboard/dist/assets/TaskQueuePill-D8UMH1rd.js +2 -0
  131. package/dashboard/dist/assets/{TaskQueuePill-bw8ieKsf.js.map → TaskQueuePill-D8UMH1rd.js.map} +1 -1
  132. package/dashboard/dist/assets/TasksListPage-CJB-EvKX.js +2 -0
  133. package/dashboard/dist/assets/{TasksListPage-D1INzcrA.js.map → TasksListPage-CJB-EvKX.js.map} +1 -1
  134. package/dashboard/dist/assets/TimeAgo-CnjY3XDt.js +2 -0
  135. package/dashboard/dist/assets/{TimeAgo-CywLVIBA.js.map → TimeAgo-CnjY3XDt.js.map} +1 -1
  136. package/dashboard/dist/assets/TimestampCell-u1YA8eA3.js +2 -0
  137. package/dashboard/dist/assets/{TimestampCell-B4Pc6f3A.js.map → TimestampCell-u1YA8eA3.js.map} +1 -1
  138. package/dashboard/dist/assets/ToolPill-Dmcwmqh2.js +2 -0
  139. package/dashboard/dist/assets/{ToolPill-DdLN3JOT.js.map → ToolPill-Dmcwmqh2.js.map} +1 -1
  140. package/dashboard/dist/assets/ToolTestPanel-B1T4Hk0t.js +2 -0
  141. package/dashboard/dist/assets/{ToolTestPanel-DusbUka5.js.map → ToolTestPanel-B1T4Hk0t.js.map} +1 -1
  142. package/dashboard/dist/assets/TopicDetailPage-ClibbST4.js +9 -0
  143. package/dashboard/dist/assets/TopicDetailPage-ClibbST4.js.map +1 -0
  144. package/dashboard/dist/assets/TopicsPage-KjODhitc.js +2 -0
  145. package/dashboard/dist/assets/{TopicsPage-DbtrnQON.js.map → TopicsPage-KjODhitc.js.map} +1 -1
  146. package/dashboard/dist/assets/UserName-DVqimwsO.js +2 -0
  147. package/dashboard/dist/assets/{UserName-CLbusknU.js.map → UserName-DVqimwsO.js.map} +1 -1
  148. package/dashboard/dist/assets/WorkflowExecutionPage-DYNPy7Gk.js +2 -0
  149. package/dashboard/dist/assets/{WorkflowExecutionPage-C61R-3Gg.js.map → WorkflowExecutionPage-DYNPy7Gk.js.map} +1 -1
  150. package/dashboard/dist/assets/WorkflowPill-h43nlUmM.js +2 -0
  151. package/dashboard/dist/assets/{WorkflowPill-7vt2F6wR.js.map → WorkflowPill-h43nlUmM.js.map} +1 -1
  152. package/dashboard/dist/assets/WorkflowsDashboard-DdJm6X7x.js +2 -0
  153. package/dashboard/dist/assets/{WorkflowsDashboard-BWiUNvyl.js.map → WorkflowsDashboard-DdJm6X7x.js.map} +1 -1
  154. package/dashboard/dist/assets/WorkflowsOverview-CBOYkfpD.js +2 -0
  155. package/dashboard/dist/assets/{WorkflowsOverview-DA2ZOs7D.js.map → WorkflowsOverview-CBOYkfpD.js.map} +1 -1
  156. package/dashboard/dist/assets/YamlWorkflowsPage-BZnD_hMw.js +2 -0
  157. package/dashboard/dist/assets/{YamlWorkflowsPage-CLebf2eL.js.map → YamlWorkflowsPage-BZnD_hMw.js.map} +1 -1
  158. package/dashboard/dist/assets/{agents-Dga6NU7U.js → agents-oHMkS1GD.js} +2 -2
  159. package/dashboard/dist/assets/agents-oHMkS1GD.js.map +1 -0
  160. package/dashboard/dist/assets/{bots-CtU4i4OQ.js → bots-BispbsY3.js} +2 -2
  161. package/dashboard/dist/assets/{bots-CtU4i4OQ.js.map → bots-BispbsY3.js.map} +1 -1
  162. package/dashboard/dist/assets/{controlplane-BVoALhbL.js → controlplane-CIbrx5rX.js} +2 -2
  163. package/dashboard/dist/assets/{controlplane-BVoALhbL.js.map → controlplane-CIbrx5rX.js.map} +1 -1
  164. package/dashboard/dist/assets/escalation-columns-Dh_0iVTH.js +2 -0
  165. package/dashboard/dist/assets/{escalation-columns-CoTmTpHp.js.map → escalation-columns-Dh_0iVTH.js.map} +1 -1
  166. package/dashboard/dist/assets/escalation-qhj4TxA3.js +2 -0
  167. package/dashboard/dist/assets/{escalation-_N5GfuIi.js.map → escalation-qhj4TxA3.js.map} +1 -1
  168. package/dashboard/dist/assets/helpers-BYw1qqKV.js +2 -0
  169. package/dashboard/dist/assets/{helpers-Dz2U3Ctb.js.map → helpers-BYw1qqKV.js.map} +1 -1
  170. package/dashboard/dist/assets/index-B9t_vpam.js +2 -0
  171. package/dashboard/dist/assets/{index-Dpjguclc.js.map → index-B9t_vpam.js.map} +1 -1
  172. package/dashboard/dist/assets/index-Bh9g-EOF.js +2 -0
  173. package/dashboard/dist/assets/{index-CS61sh5q.js.map → index-Bh9g-EOF.js.map} +1 -1
  174. package/dashboard/dist/assets/index-BhhWCADo.js +63 -0
  175. package/dashboard/dist/assets/index-BhhWCADo.js.map +1 -0
  176. package/dashboard/dist/assets/index-Bn-VSH41.js +2 -0
  177. package/dashboard/dist/assets/index-Bn-VSH41.js.map +1 -0
  178. package/dashboard/dist/assets/index-C2yJWps6.js +6 -0
  179. package/dashboard/dist/assets/{index-B9ealjkt.js.map → index-C2yJWps6.js.map} +1 -1
  180. package/dashboard/dist/assets/index-C4W1_Rfk.js +5 -0
  181. package/dashboard/dist/assets/{index-CtbG3UN-.js.map → index-C4W1_Rfk.js.map} +1 -1
  182. package/dashboard/dist/assets/index-CEF3Idec.js +2 -0
  183. package/dashboard/dist/assets/{index-6Kd78p_v.js.map → index-CEF3Idec.js.map} +1 -1
  184. package/dashboard/dist/assets/index-CHxvfc97.css +1 -0
  185. package/dashboard/dist/assets/index-CVRVw3g_.js +2 -0
  186. package/dashboard/dist/assets/{index-dM-OgCY3.js.map → index-CVRVw3g_.js.map} +1 -1
  187. package/dashboard/dist/assets/index-CY3EhrEA.js +2 -0
  188. package/dashboard/dist/assets/{index-QicYdUsl.js.map → index-CY3EhrEA.js.map} +1 -1
  189. package/dashboard/dist/assets/index-D-q2lzup.js +2 -0
  190. package/dashboard/dist/assets/{index-DWUunWxh.js.map → index-D-q2lzup.js.map} +1 -1
  191. package/dashboard/dist/assets/index-D6YjH5uG.js +15 -0
  192. package/dashboard/dist/assets/{index-BYwPVJv0.js.map → index-D6YjH5uG.js.map} +1 -1
  193. package/dashboard/dist/assets/index-ht5r_7jQ.js +2 -0
  194. package/dashboard/dist/assets/index-ht5r_7jQ.js.map +1 -0
  195. package/dashboard/dist/assets/index-zHicKKh9.js +2 -0
  196. package/dashboard/dist/assets/{index-D_H_Prht.js.map → index-zHicKKh9.js.map} +1 -1
  197. package/dashboard/dist/assets/{knowledge-DJlebU82.js → knowledge-B23TU6JN.js} +2 -2
  198. package/dashboard/dist/assets/{knowledge-DJlebU82.js.map → knowledge-B23TU6JN.js.map} +1 -1
  199. package/dashboard/dist/assets/{mcp-CsLJ5SRm.js → mcp-Cew_Sb-Q.js} +2 -2
  200. package/dashboard/dist/assets/{mcp-CsLJ5SRm.js.map → mcp-Cew_Sb-Q.js.map} +1 -1
  201. package/dashboard/dist/assets/{mcp-query-WNK1ItRV.js → mcp-query-So0Oz5Lx.js} +2 -2
  202. package/dashboard/dist/assets/{mcp-query-WNK1ItRV.js.map → mcp-query-So0Oz5Lx.js.map} +1 -1
  203. package/dashboard/dist/assets/{mcp-runs-DtTTsuPH.js → mcp-runs-4176y3SA.js} +2 -2
  204. package/dashboard/dist/assets/{mcp-runs-DtTTsuPH.js.map → mcp-runs-4176y3SA.js.map} +1 -1
  205. package/dashboard/dist/assets/namespaces-CqBbWsJx.js +2 -0
  206. package/dashboard/dist/assets/{namespaces-iRejH3_A.js.map → namespaces-CqBbWsJx.js.map} +1 -1
  207. package/dashboard/dist/assets/{roles-3Jm5KtKc.js → roles-BTxMgLE6.js} +2 -2
  208. package/dashboard/dist/assets/{roles-3Jm5KtKc.js.map → roles-BTxMgLE6.js.map} +1 -1
  209. package/dashboard/dist/assets/settings-CtQNxacL.js +2 -0
  210. package/dashboard/dist/assets/{settings-DmN2I-c6.js.map → settings-CtQNxacL.js.map} +1 -1
  211. package/dashboard/dist/assets/{tasks-Cc-QoITQ.js → tasks-CIRlUTbo.js} +2 -2
  212. package/dashboard/dist/assets/{tasks-Cc-QoITQ.js.map → tasks-CIRlUTbo.js.map} +1 -1
  213. package/dashboard/dist/assets/{topics-p8anbgi0.js → topics-C8YmK_j2.js} +2 -2
  214. package/dashboard/dist/assets/topics-C8YmK_j2.js.map +1 -0
  215. package/dashboard/dist/assets/{useEventHooks-VaJ52jMm.js → useEventHooks-BvMUy36X.js} +2 -2
  216. package/dashboard/dist/assets/{useEventHooks-VaJ52jMm.js.map → useEventHooks-BvMUy36X.js.map} +1 -1
  217. package/dashboard/dist/assets/{useExpandedRows-Cg9iq6Vy.js → useExpandedRows-CkcEntB-.js} +2 -2
  218. package/dashboard/dist/assets/{useExpandedRows-Cg9iq6Vy.js.map → useExpandedRows-CkcEntB-.js.map} +1 -1
  219. package/dashboard/dist/assets/{useFilterParams-CGRYFw_A.js → useFilterParams-DZCAaBC7.js} +2 -2
  220. package/dashboard/dist/assets/{useFilterParams-CGRYFw_A.js.map → useFilterParams-DZCAaBC7.js.map} +1 -1
  221. package/dashboard/dist/assets/{useYamlActivityEvents-BU4Uhksl.js → useYamlActivityEvents-DLEzqv-z.js} +2 -2
  222. package/dashboard/dist/assets/{useYamlActivityEvents-BU4Uhksl.js.map → useYamlActivityEvents-DLEzqv-z.js.map} +1 -1
  223. package/dashboard/dist/assets/{users-oXOlnold.js → users-C_bD6mzW.js} +2 -2
  224. package/dashboard/dist/assets/{users-oXOlnold.js.map → users-C_bD6mzW.js.map} +1 -1
  225. package/dashboard/dist/assets/{vendor-icons-CBOM6Es0.js → vendor-icons-DY1ctJgc.js} +111 -101
  226. package/dashboard/dist/assets/vendor-icons-DY1ctJgc.js.map +1 -0
  227. package/dashboard/dist/assets/vendor-query-B2UbickB.js +18 -0
  228. package/dashboard/dist/assets/vendor-query-B2UbickB.js.map +1 -0
  229. package/dashboard/dist/assets/vendor-react-CX88sFS5.js +22 -0
  230. package/dashboard/dist/assets/vendor-react-CX88sFS5.js.map +1 -0
  231. package/dashboard/dist/assets/{workflows-Yq7cK-vR.js → workflows-DFR0-hI3.js} +2 -2
  232. package/dashboard/dist/assets/{workflows-Yq7cK-vR.js.map → workflows-DFR0-hI3.js.map} +1 -1
  233. package/dashboard/dist/assets/{yaml-workflows-Ch53yD43.js → yaml-workflows-wXURdyjP.js} +2 -2
  234. package/dashboard/dist/assets/{yaml-workflows-Ch53yD43.js.map → yaml-workflows-wXURdyjP.js.map} +1 -1
  235. package/dashboard/dist/index.html +5 -5
  236. package/docs/agents.md +1 -1
  237. package/docs/api/http/agents.md +5 -7
  238. package/docs/api/http/controlplane.md +193 -0
  239. package/docs/api/sdk/agents.md +5 -5
  240. package/docs/api/sdk/controlplane.md +36 -0
  241. package/docs/dashboard.md +13 -0
  242. package/package.json +2 -2
  243. package/dashboard/dist/assets/AdminDashboard-CbeSejVX.js +0 -2
  244. package/dashboard/dist/assets/AgentConfigPage-CFJNOrlg.js +0 -13
  245. package/dashboard/dist/assets/AgentConfigPage-CFJNOrlg.js.map +0 -1
  246. package/dashboard/dist/assets/AgentDetailPage-Dbx2t-Uk.js +0 -4
  247. package/dashboard/dist/assets/AgentDetailPage-Dbx2t-Uk.js.map +0 -1
  248. package/dashboard/dist/assets/AgentsPage-Bz61Nl-x.js +0 -2
  249. package/dashboard/dist/assets/AgentsPage-Bz61Nl-x.js.map +0 -1
  250. package/dashboard/dist/assets/AvailableEscalationsPage-DdrzePy4.js +0 -2
  251. package/dashboard/dist/assets/BotPicker-kKBifD1w.js +0 -2
  252. package/dashboard/dist/assets/CapabilitiesPage-Ch5qY0I7.js +0 -2
  253. package/dashboard/dist/assets/CollapsibleSection-kYTBL7dT.js +0 -2
  254. package/dashboard/dist/assets/ConfirmDeleteModal-CcaAapMl.js +0 -2
  255. package/dashboard/dist/assets/CopyableId-B4CL12pv.js +0 -2
  256. package/dashboard/dist/assets/CredentialsPage-D1VAlwid.js +0 -2
  257. package/dashboard/dist/assets/CronLabel-DRmO5rH0.js +0 -2
  258. package/dashboard/dist/assets/CustomDurationPicker-C06QDDir.js +0 -2
  259. package/dashboard/dist/assets/DataTable-J5R6mepB.js +0 -2
  260. package/dashboard/dist/assets/DropZone-DwNj3GiG.js +0 -2
  261. package/dashboard/dist/assets/ElapsedCell-ChyMzl9n.js +0 -2
  262. package/dashboard/dist/assets/EmptyState-BXGvOADa.js +0 -2
  263. package/dashboard/dist/assets/EscalationsOverview-DM6zmE4g.js +0 -2
  264. package/dashboard/dist/assets/EventTable-CvJ98E8s.js +0 -2
  265. package/dashboard/dist/assets/EventTopicPill-CB_rIGlL.js +0 -2
  266. package/dashboard/dist/assets/FilterBar-Bdssa-Xn.js +0 -2
  267. package/dashboard/dist/assets/HomePage-BuZkdXZt.js +0 -2
  268. package/dashboard/dist/assets/HomePage-BuZkdXZt.js.map +0 -1
  269. package/dashboard/dist/assets/ListToolbar-jy8NL6ll.js +0 -2
  270. package/dashboard/dist/assets/McpOverview-xkaKuHbX.js +0 -2
  271. package/dashboard/dist/assets/McpQueryDetailPage-D5ICn6cR.js +0 -5
  272. package/dashboard/dist/assets/McpQueryPage-C46fzfm5.js +0 -2
  273. package/dashboard/dist/assets/McpRunDetailPage-Znsl4Yc-.js +0 -2
  274. package/dashboard/dist/assets/McpRunsPage-DT-armx5.js +0 -2
  275. package/dashboard/dist/assets/McpRunsPage-DT-armx5.js.map +0 -1
  276. package/dashboard/dist/assets/Modal-C6k6_5KB.js +0 -2
  277. package/dashboard/dist/assets/OperatorDashboard-e5N3_dVl.js +0 -2
  278. package/dashboard/dist/assets/PageHeader-COcgWWf-.js +0 -2
  279. package/dashboard/dist/assets/PageHeaderWithStats-C0PCY3aJ.js +0 -2
  280. package/dashboard/dist/assets/PriorityBadge-BQCsYMpM.js +0 -2
  281. package/dashboard/dist/assets/ProcessDetailPage-C03LOgI0.js +0 -2
  282. package/dashboard/dist/assets/ProcessesListPage-iyPsmlhm.js +0 -2
  283. package/dashboard/dist/assets/RolePill-CHwys1f9.js +0 -2
  284. package/dashboard/dist/assets/RolesPage-Bmc3XaUk.js +0 -2
  285. package/dashboard/dist/assets/RowActions-Bs4PF-Gd.js +0 -2
  286. package/dashboard/dist/assets/RunAsSelector-DXzAr2WW.js +0 -2
  287. package/dashboard/dist/assets/ServerName-BIdLC1Ay.js +0 -2
  288. package/dashboard/dist/assets/StatCard-OKzRSSx4.js +0 -2
  289. package/dashboard/dist/assets/StatusBadge-CQlF46RR.js +0 -2
  290. package/dashboard/dist/assets/StepIndicator-CP7eycjI.js +0 -2
  291. package/dashboard/dist/assets/StickyPagination-CGk8VAKt.js +0 -2
  292. package/dashboard/dist/assets/SwimlaneTimeline-MEUPc3yJ.js +0 -2
  293. package/dashboard/dist/assets/TagInput-BGxXKiWD.js +0 -2
  294. package/dashboard/dist/assets/TaskDetailPage-pN5BXzYA.js +0 -2
  295. package/dashboard/dist/assets/TaskDetailPage-pN5BXzYA.js.map +0 -1
  296. package/dashboard/dist/assets/TaskQueuePill-bw8ieKsf.js +0 -2
  297. package/dashboard/dist/assets/TasksListPage-D1INzcrA.js +0 -2
  298. package/dashboard/dist/assets/TimeAgo-CywLVIBA.js +0 -2
  299. package/dashboard/dist/assets/TimestampCell-B4Pc6f3A.js +0 -2
  300. package/dashboard/dist/assets/ToolPill-DdLN3JOT.js +0 -2
  301. package/dashboard/dist/assets/ToolTestPanel-DusbUka5.js +0 -2
  302. package/dashboard/dist/assets/TopicDetailPage-DadwM52Y.js +0 -9
  303. package/dashboard/dist/assets/TopicDetailPage-DadwM52Y.js.map +0 -1
  304. package/dashboard/dist/assets/TopicsPage-DbtrnQON.js +0 -2
  305. package/dashboard/dist/assets/UserName-CLbusknU.js +0 -2
  306. package/dashboard/dist/assets/WorkflowExecutionPage-C61R-3Gg.js +0 -2
  307. package/dashboard/dist/assets/WorkflowPill-7vt2F6wR.js +0 -2
  308. package/dashboard/dist/assets/WorkflowsDashboard-BWiUNvyl.js +0 -2
  309. package/dashboard/dist/assets/WorkflowsOverview-DA2ZOs7D.js +0 -2
  310. package/dashboard/dist/assets/YamlWorkflowsPage-CLebf2eL.js +0 -2
  311. package/dashboard/dist/assets/agents-Dga6NU7U.js.map +0 -1
  312. package/dashboard/dist/assets/escalation-_N5GfuIi.js +0 -2
  313. package/dashboard/dist/assets/escalation-columns-CoTmTpHp.js +0 -2
  314. package/dashboard/dist/assets/helpers-Dz2U3Ctb.js +0 -2
  315. package/dashboard/dist/assets/index-6Kd78p_v.js +0 -2
  316. package/dashboard/dist/assets/index-B9ealjkt.js +0 -6
  317. package/dashboard/dist/assets/index-BIUHY2Jz.css +0 -1
  318. package/dashboard/dist/assets/index-BWHDW_CF.js +0 -2
  319. package/dashboard/dist/assets/index-BWHDW_CF.js.map +0 -1
  320. package/dashboard/dist/assets/index-BYwPVJv0.js +0 -15
  321. package/dashboard/dist/assets/index-CCOSf1PY.js +0 -281
  322. package/dashboard/dist/assets/index-CCOSf1PY.js.map +0 -1
  323. package/dashboard/dist/assets/index-CS61sh5q.js +0 -2
  324. package/dashboard/dist/assets/index-CtbG3UN-.js +0 -5
  325. package/dashboard/dist/assets/index-DWUunWxh.js +0 -2
  326. package/dashboard/dist/assets/index-D_H_Prht.js +0 -2
  327. package/dashboard/dist/assets/index-Dpjguclc.js +0 -2
  328. package/dashboard/dist/assets/index-QicYdUsl.js +0 -2
  329. package/dashboard/dist/assets/index-dM-OgCY3.js +0 -2
  330. package/dashboard/dist/assets/namespaces-iRejH3_A.js +0 -2
  331. package/dashboard/dist/assets/settings-DmN2I-c6.js +0 -2
  332. package/dashboard/dist/assets/topics-p8anbgi0.js.map +0 -1
  333. package/dashboard/dist/assets/vendor-icons-CBOM6Es0.js.map +0 -1
  334. package/dashboard/dist/assets/vendor-query-DLp59M9_.js +0 -35
  335. package/dashboard/dist/assets/vendor-query-DLp59M9_.js.map +0 -1
  336. package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js +0 -26
  337. package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js.map +0 -1
@@ -5,11 +5,13 @@ exports.listApps = listApps;
5
5
  exports.rollCall = rollCall;
6
6
  exports.applyThrottle = applyThrottle;
7
7
  exports.getStreamStats = getStreamStats;
8
+ exports.getStreamMessages = getStreamMessages;
8
9
  exports.subscribeMesh = subscribeMesh;
9
10
  exports.isBridgeActive = isBridgeActive;
10
11
  const hotmesh_1 = require("@hotmeshio/hotmesh");
11
12
  const db_1 = require("../../lib/db");
12
13
  const sql_1 = require("./sql");
14
+ const stream_messages_sql_1 = require("./stream-messages-sql");
13
15
  const quorum_bridge_1 = require("./quorum-bridge");
14
16
  // ─── Engine cache ───────────────────────────────────────────────────────────
15
17
  /** Cached read-only HotMesh engines keyed by appId */
@@ -100,6 +102,43 @@ async function getStreamStats(schema, duration = '1h', streamName) {
100
102
  byStream: byStreamRes.rows,
101
103
  };
102
104
  }
105
+ // ─── Stream message browsing ────────────────────────────────────────────
106
+ /**
107
+ * Browse stream messages across engine_streams and worker_streams tables
108
+ * with pagination, filtering, and sorting.
109
+ *
110
+ * @param schema — the Postgres schema (namespace, e.g. "durable")
111
+ * @param params — pagination, filter, and sort options
112
+ */
113
+ async function getStreamMessages(schema, params) {
114
+ const limit = Math.min(Math.max(params.limit ?? 25, 1), 100);
115
+ const offset = Math.max(params.offset ?? 0, 0);
116
+ const sortColumn = stream_messages_sql_1.VALID_SORT_COLUMNS[params.sort_by ?? 'created_at'];
117
+ if (!sortColumn)
118
+ throw new Error(`Invalid sort_by: ${params.sort_by}`);
119
+ const sortOrder = (params.order ?? 'desc').toLowerCase();
120
+ if (!stream_messages_sql_1.VALID_SORT_ORDERS.has(sortOrder))
121
+ throw new Error(`Invalid order: ${params.order}`);
122
+ const { source } = params;
123
+ const streamName = params.stream_name ? `%${params.stream_name}%` : null;
124
+ const status = params.status ?? null;
125
+ const msgType = params.msg_type ?? null;
126
+ const topic = params.topic ?? null;
127
+ const workflowName = params.workflow_name ?? null;
128
+ const jid = params.jid ?? null;
129
+ const aid = params.aid ?? null;
130
+ const pool = (0, db_1.getPool)();
131
+ const queryParams = [streamName, status, msgType, topic, workflowName, jid, aid, limit, offset];
132
+ const countParams = [streamName, status, msgType, topic, workflowName, jid, aid];
133
+ const [messagesRes, countRes] = await Promise.all([
134
+ pool.query((0, stream_messages_sql_1.LIST_STREAM_MESSAGES)(schema, sortColumn, sortOrder, source), queryParams),
135
+ pool.query((0, stream_messages_sql_1.COUNT_STREAM_MESSAGES)(schema, source), countParams),
136
+ ]);
137
+ return {
138
+ messages: messagesRes.rows,
139
+ total: countRes.rows[0]?.count ?? 0,
140
+ };
141
+ }
103
142
  // ─── Quorum bridge ──────────────────────────────────────────────────────────
104
143
  /** Track which appIds have active quorum bridges */
105
144
  const activeBridges = new Set();
@@ -0,0 +1,21 @@
1
+ /** Allowed sort columns — whitelist prevents injection. */
2
+ export declare const VALID_SORT_COLUMNS: Record<string, string>;
3
+ /** Allowed sort directions. */
4
+ export declare const VALID_SORT_ORDERS: Set<string>;
5
+ /**
6
+ * List stream messages with pagination, filtering, and sorting.
7
+ *
8
+ * Source is required — engine and worker streams are separate tables
9
+ * with different schemas and must never be commingled in a single query.
10
+ *
11
+ * Parameters: $1 = stream_name, $2 = status, $3 = msg_type,
12
+ * $4 = topic, $5 = workflow_name, $6 = jid, $7 = aid,
13
+ * $8 = limit, $9 = offset
14
+ */
15
+ export declare function LIST_STREAM_MESSAGES(schema: string, sortColumn: string, sortOrder: string, source: 'engine' | 'worker'): string;
16
+ /**
17
+ * Count stream messages matching the filter criteria.
18
+ *
19
+ * Parameters: $1 = stream_name, $2 = status, $3 = msg_type
20
+ */
21
+ export declare function COUNT_STREAM_MESSAGES(schema: string, source: 'engine' | 'worker'): string;
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ // ─── Stream message browsing ───────────────────────────────────────────────
3
+ //
4
+ // Paginated queries across engine_streams and worker_streams tables.
5
+ // Both tables are HASH-partitioned on stream_name (8 partitions each).
6
+ // Status is derived from timestamp columns:
7
+ // dead_lettered_at IS NOT NULL → 'dead_lettered'
8
+ // expired_at IS NOT NULL → 'processed'
9
+ // reserved_at IS NOT NULL → 'claimed'
10
+ // else → 'pending'
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.VALID_SORT_ORDERS = exports.VALID_SORT_COLUMNS = void 0;
13
+ exports.LIST_STREAM_MESSAGES = LIST_STREAM_MESSAGES;
14
+ exports.COUNT_STREAM_MESSAGES = COUNT_STREAM_MESSAGES;
15
+ /** Allowed sort columns — whitelist prevents injection. */
16
+ exports.VALID_SORT_COLUMNS = {
17
+ created_at: 'created_at',
18
+ stream_name: 'stream_name',
19
+ priority: 'priority',
20
+ id: 'id',
21
+ };
22
+ /** Allowed sort directions. */
23
+ exports.VALID_SORT_ORDERS = new Set(['asc', 'desc']);
24
+ /**
25
+ * Status derivation CASE expression, reused by both list and count queries.
26
+ */
27
+ const STATUS_CASE = `
28
+ CASE
29
+ WHEN dead_lettered_at IS NOT NULL THEN 'dead_lettered'
30
+ WHEN expired_at IS NOT NULL THEN 'processed'
31
+ WHEN reserved_at IS NOT NULL THEN 'claimed'
32
+ ELSE 'pending'
33
+ END`;
34
+ /**
35
+ * Shared WHERE clause for stream message filtering.
36
+ *
37
+ * Parameters:
38
+ * $1 = stream_name filter (NULL = all, otherwise ILIKE pattern)
39
+ * $2 = status filter (NULL = all, otherwise exact match)
40
+ * $3 = msg_type filter (NULL = all, worker-only)
41
+ * $4 = topic filter (NULL = all, worker-only)
42
+ * $5 = workflow_name filter (NULL = all, worker-only)
43
+ * $6 = jid filter (NULL = all, worker-only)
44
+ * $7 = aid filter (NULL = all, worker-only)
45
+ */
46
+ /** Engine WHERE: supports stream_name, status, and jid (v0.18.0). */
47
+ const ENGINE_WHERE_CLAUSE = `
48
+ WHERE ($1::text IS NULL OR stream_name ILIKE $1)
49
+ AND ($2::text IS NULL OR ${STATUS_CASE} = $2)
50
+ AND ($3::text IS NULL)
51
+ AND ($4::text IS NULL)
52
+ AND ($5::text IS NULL)
53
+ AND ($6::text IS NULL OR jid = $6)
54
+ AND ($7::text IS NULL)`;
55
+ const WORKER_WHERE_CLAUSE = `
56
+ WHERE ($1::text IS NULL OR stream_name ILIKE $1)
57
+ AND ($2::text IS NULL OR ${STATUS_CASE} = $2)
58
+ AND ($3::text IS NULL OR msg_type = $3)
59
+ AND ($4::text IS NULL OR topic = $4)
60
+ AND ($5::text IS NULL OR workflow_name = $5)
61
+ AND ($6::text IS NULL OR jid = $6)
62
+ AND ($7::text IS NULL OR aid = $7)`;
63
+ /**
64
+ * List stream messages with pagination, filtering, and sorting.
65
+ *
66
+ * Source is required — engine and worker streams are separate tables
67
+ * with different schemas and must never be commingled in a single query.
68
+ *
69
+ * Parameters: $1 = stream_name, $2 = status, $3 = msg_type,
70
+ * $4 = topic, $5 = workflow_name, $6 = jid, $7 = aid,
71
+ * $8 = limit, $9 = offset
72
+ */
73
+ function LIST_STREAM_MESSAGES(schema, sortColumn, sortOrder, source) {
74
+ const select = source === 'engine'
75
+ ? `SELECT
76
+ id, 'engine' AS source, stream_name,
77
+ message, ${STATUS_CASE} AS status,
78
+ created_at, reserved_at, reserved_by, expired_at,
79
+ dead_lettered_at, priority, visible_at,
80
+ retry_attempt, max_retry_attempts,
81
+ NULL AS workflow_name, jid, NULL AS aid,
82
+ NULL AS dad, NULL AS msg_type, NULL AS topic
83
+ FROM "${schema}".engine_streams
84
+ ${ENGINE_WHERE_CLAUSE}`
85
+ : `SELECT
86
+ id, 'worker' AS source, stream_name,
87
+ message, ${STATUS_CASE} AS status,
88
+ created_at, reserved_at, reserved_by, expired_at,
89
+ dead_lettered_at, priority, visible_at,
90
+ retry_attempt, max_retry_attempts,
91
+ workflow_name, jid, aid, dad, msg_type, topic
92
+ FROM "${schema}".worker_streams
93
+ ${WORKER_WHERE_CLAUSE}`;
94
+ return `
95
+ SELECT * FROM (${select}) AS q
96
+ ORDER BY ${sortColumn} ${sortOrder}, id DESC
97
+ LIMIT $8::int OFFSET $9::int`;
98
+ }
99
+ /**
100
+ * Count stream messages matching the filter criteria.
101
+ *
102
+ * Parameters: $1 = stream_name, $2 = status, $3 = msg_type
103
+ */
104
+ function COUNT_STREAM_MESSAGES(schema, source) {
105
+ const table = source === 'engine' ? 'engine_streams' : 'worker_streams';
106
+ const where = source === 'engine' ? ENGINE_WHERE_CLAUSE : WORKER_WHERE_CLAUSE;
107
+ return `SELECT COUNT(*)::int AS count FROM "${schema}".${table} ${where}`;
108
+ }
@@ -12,3 +12,47 @@ export interface StreamStats {
12
12
  count: number;
13
13
  }>;
14
14
  }
15
+ export type StreamMessageStatus = 'pending' | 'claimed' | 'processed' | 'dead_lettered';
16
+ export type StreamMessageSource = 'engine' | 'worker';
17
+ export interface StreamMessage {
18
+ id: string;
19
+ source: StreamMessageSource;
20
+ stream_name: string;
21
+ message: string;
22
+ status: StreamMessageStatus;
23
+ created_at: string;
24
+ reserved_at: string | null;
25
+ reserved_by: string | null;
26
+ expired_at: string | null;
27
+ dead_lettered_at: string | null;
28
+ priority: number;
29
+ visible_at: string | null;
30
+ retry_attempt: number;
31
+ max_retry_attempts: number;
32
+ /** Worker-only fields (null for engine messages) */
33
+ workflow_name: string | null;
34
+ jid: string | null;
35
+ aid: string | null;
36
+ dad: string | null;
37
+ msg_type: string | null;
38
+ topic: string | null;
39
+ }
40
+ export interface StreamMessagesParams {
41
+ source: StreamMessageSource;
42
+ limit?: number;
43
+ offset?: number;
44
+ sort_by?: string;
45
+ order?: 'asc' | 'desc';
46
+ stream_name?: string | null;
47
+ status?: StreamMessageStatus | null;
48
+ msg_type?: string | null;
49
+ /** Worker-only filters */
50
+ topic?: string | null;
51
+ workflow_name?: string | null;
52
+ jid?: string | null;
53
+ aid?: string | null;
54
+ }
55
+ export interface StreamMessagesResult {
56
+ messages: StreamMessage[];
57
+ total: number;
58
+ }
@@ -327,10 +327,10 @@ class LTCronRegistry {
327
327
  if (!principal) {
328
328
  principal = this.systemPrincipal ?? undefined;
329
329
  }
330
- logger_1.loggerRegistry.info(`[lt-cron] agent ${agent.name} principal: ${principal?.id ?? 'NONE'} (executeAs=${executeAs ?? 'unset'})`);
330
+ logger_1.loggerRegistry.info(`[lt-cron] agent ${agent.id} principal: ${principal?.id ?? 'NONE'} (executeAs=${executeAs ?? 'unset'})`);
331
331
  const envelope = {
332
332
  data: schedule.envelope ?? {},
333
- metadata: { source: 'agent-cron', agentId: agent.id, agentName: agent.name, certified: true },
333
+ metadata: { source: 'agent-cron', agentId: agent.id, agentName: agent.id, certified: true },
334
334
  lt: {
335
335
  userId: principal?.id ?? 'lt-system',
336
336
  principal,
@@ -371,7 +371,7 @@ class LTCronRegistry {
371
371
  // Expected — deterministic ID dedup when cron fires multiple consumers
372
372
  }
373
373
  else {
374
- logger_1.loggerRegistry.error(`[lt-cron] agent ${agent.name}/${targetLabel} failed: ${msg}`);
374
+ logger_1.loggerRegistry.error(`[lt-cron] agent ${agent.id}/${targetLabel} failed: ${msg}`);
375
375
  }
376
376
  }
377
377
  },
@@ -379,7 +379,7 @@ class LTCronRegistry {
379
379
  options: { id: cronId, interval: schedule.cron },
380
380
  });
381
381
  this.activeCrons.set(key, cronId);
382
- logger_1.loggerRegistry.info(`[lt-cron] agent schedule started: ${agent.name}/${targetLabel} (${schedule.cron})`);
382
+ logger_1.loggerRegistry.info(`[lt-cron] agent schedule started: ${agent.id}/${targetLabel} (${schedule.cron})`);
383
383
  }
384
384
  /**
385
385
  * Stop all cron schedules for an agent.
@@ -436,7 +436,7 @@ class LTCronRegistry {
436
436
  armed++;
437
437
  }
438
438
  catch (err) {
439
- logger_1.loggerRegistry.warn(`[lt-cron] agent schedule failed: ${agent.name}/${sched.cron}: ${err.message}`);
439
+ logger_1.loggerRegistry.warn(`[lt-cron] agent schedule failed: ${agent.id}/${sched.cron}: ${err.message}`);
440
440
  }
441
441
  }
442
442
  }
@@ -108,14 +108,22 @@ function postProcessExecution(execution) {
108
108
  }
109
109
  }
110
110
  }
111
- if (toAdd.length === 0 && !enriched)
112
- return execution;
113
- if (toAdd.length === 0) {
114
- return { ...execution, events };
111
+ if (toAdd.length > 0) {
112
+ events.push(...toAdd);
115
113
  }
116
- events.push(...toAdd);
117
- // Re-sort chronologically and re-number
114
+ // Sort by execution_index first — it reflects the true workflow sequence.
115
+ // Timestamps are unreliable for ordering (e.g. signal_wait_started gets
116
+ // the workflow start time). Fall back to timestamp only when index is absent.
118
117
  events.sort((a, b) => {
118
+ const idxA = a.attributes.execution_index ?? -1;
119
+ const idxB = b.attributes.execution_index ?? -1;
120
+ if (idxA !== -1 && idxB !== -1 && idxA !== idxB)
121
+ return idxA - idxB;
122
+ if (idxA !== -1 && idxB === -1)
123
+ return 1; // indexed after non-indexed (workflow_started)
124
+ if (idxA === -1 && idxB !== -1)
125
+ return -1;
126
+ // Same index (scheduled/completed pairs) — sort by timestamp
119
127
  const cmp = a.event_time.localeCompare(b.event_time);
120
128
  return cmp !== 0 ? cmp : a.event_id - b.event_id;
121
129
  });
@@ -72,9 +72,14 @@ function assembleExport(ctx, events, activities) {
72
72
  const workerCount = ctx.activities.filter((a) => a.type !== 'trigger').length;
73
73
  const completed = events.filter((e) => e.event_type === 'activity_task_completed').length;
74
74
  const failed = events.filter((e) => e.event_type === 'activity_task_failed').length;
75
+ // Derive close_time from the last event when available — meta.ju (job updated)
76
+ // often equals meta.jc (job created), producing 0ms duration.
77
+ const lastEventTime = events.length > 0 ? events[events.length - 1].event_time : null;
78
+ const closeTime = lastEventTime || ctx.closeTime || null;
79
+ const startTime = ctx.startTime || null;
75
80
  let durationMs = null;
76
- if (ctx.startTime && ctx.closeTime) {
77
- const diff = new Date(ctx.closeTime).getTime() - new Date(ctx.startTime).getTime();
81
+ if (startTime && closeTime) {
82
+ const diff = new Date(closeTime).getTime() - new Date(startTime).getTime();
78
83
  if (diff >= 0)
79
84
  durationMs = diff;
80
85
  }
@@ -84,8 +89,8 @@ function assembleExport(ctx, events, activities) {
84
89
  workflow_name: ctx.workflowName,
85
90
  task_queue: ctx.appId,
86
91
  status: ctx.job.status > 0 ? 'running' : ctx.job.status === 0 ? 'completed' : 'failed',
87
- start_time: ctx.startTime || null,
88
- close_time: ctx.closeTime || null,
92
+ start_time: startTime,
93
+ close_time: closeTime,
89
94
  duration_ms: durationMs,
90
95
  trace_id: ctx.traceId,
91
96
  result: ctx.workflowResult,
@@ -9,7 +9,6 @@ exports.upsertTopicOnPublish = upsertTopicOnPublish;
9
9
  exports.seedTopic = seedTopic;
10
10
  exports.resetTopic = resetTopic;
11
11
  const db_1 = require("../../lib/db");
12
- const matching_1 = require("../../lib/events/matching");
13
12
  const sql_1 = require("./sql");
14
13
  async function listTopics(filters = {}) {
15
14
  const pool = (0, db_1.getPool)();
@@ -31,9 +30,7 @@ async function getTopic(topic) {
31
30
  const { rows } = await pool.query(sql_1.GET_TOPIC, [topic]);
32
31
  if (!rows[0])
33
32
  return null;
34
- // Find all active subscriptions whose pattern matches this topic
35
- const { rows: allSubs } = await pool.query(sql_1.LIST_SUBSCRIBERS);
36
- const subscribers = allSubs.filter((sub) => (0, matching_1.subjectMatchesPattern)(topic, sub.topic));
33
+ const { rows: subscribers } = await pool.query(sql_1.LIST_SUBSCRIBERS, [topic]);
37
34
  return { ...rows[0], subscribers };
38
35
  }
39
36
  async function createTopic(data) {
@@ -1,4 +1,4 @@
1
- export declare const LIST_TOPICS = "\n SELECT t.*,\n COALESCE(s.sub_count, 0)::int AS subscriber_count\n FROM lt_topic_catalog t\n LEFT JOIN LATERAL (\n SELECT COUNT(*)::int AS sub_count\n FROM lt_agent_subscriptions\n WHERE enabled = true\n AND (topic = t.topic OR topic LIKE '%>%' OR topic LIKE '%*%')\n ) s ON true\n WHERE ($1::text IS NULL OR t.category = $1)\n AND ($2::text IS NULL OR t.topic ILIKE '%' || $2 || '%' OR t.description ILIKE '%' || $2 || '%')\n ORDER BY t.category, t.topic\n LIMIT $3 OFFSET $4\n";
1
+ export declare const LIST_TOPICS = "\n SELECT t.*,\n COALESCE(s.sub_count, 0)::int AS subscriber_count\n FROM lt_topic_catalog t\n LEFT JOIN LATERAL (\n SELECT COUNT(*)::int AS sub_count\n FROM lt_agent_subscriptions\n WHERE enabled = true\n AND (\n topic = t.topic\n OR t.topic LIKE REPLACE(REPLACE(topic, '*', '%'), '>', '%')\n )\n ) s ON true\n WHERE ($1::text IS NULL OR t.category = $1)\n AND ($2::text IS NULL OR t.topic ILIKE '%' || $2 || '%' OR t.description ILIKE '%' || $2 || '%')\n ORDER BY t.category, t.topic\n LIMIT $3 OFFSET $4\n";
2
2
  export declare const COUNT_TOPICS = "\n SELECT COUNT(*)::int AS total FROM lt_topic_catalog\n WHERE ($1::text IS NULL OR category = $1)\n AND ($2::text IS NULL OR topic ILIKE '%' || $2 || '%' OR description ILIKE '%' || $2 || '%')\n";
3
3
  export declare const GET_TOPIC = "\n SELECT * FROM lt_topic_catalog WHERE topic = $1\n";
4
4
  export declare const INSERT_TOPIC = "\n INSERT INTO lt_topic_catalog\n (topic, description, category, payload_schema, example_payload, source, tags)\n VALUES ($1, $2, $3, $4, $5, $6, $7)\n RETURNING *\n";
@@ -7,4 +7,4 @@ export declare const DELETE_TOPIC = "\n DELETE FROM lt_topic_catalog WHERE topi
7
7
  export declare const UPSERT_ON_PUBLISH = "\n INSERT INTO lt_topic_catalog\n (topic, category, source, example_payload, last_seen_at)\n VALUES ($1, $2, $3, $4, NOW())\n ON CONFLICT (topic) DO UPDATE SET\n last_seen_at = NOW(),\n example_payload = COALESCE(EXCLUDED.example_payload, lt_topic_catalog.example_payload)\n";
8
8
  export declare const SEED_TOPIC = "\n INSERT INTO lt_topic_catalog\n (topic, description, category, payload_schema, example_payload, source, tags)\n VALUES ($1, $2, $3, $4, $5, $6, $7)\n ON CONFLICT (topic) DO NOTHING\n";
9
9
  export declare const RESET_TOPIC = "\n INSERT INTO lt_topic_catalog\n (topic, description, category, payload_schema, example_payload, source, tags, managed)\n VALUES ($1, $2, $3, $4, $5, $6, $7, true)\n ON CONFLICT (topic) DO UPDATE SET\n description = EXCLUDED.description,\n category = EXCLUDED.category,\n payload_schema = EXCLUDED.payload_schema,\n example_payload = EXCLUDED.example_payload,\n source = EXCLUDED.source,\n tags = EXCLUDED.tags,\n managed = true\n";
10
- export declare const LIST_SUBSCRIBERS = "\n SELECT s.id, s.agent_id, s.topic, s.reaction_type,\n a.name AS agent_name\n FROM lt_agent_subscriptions s\n JOIN lt_agents a ON s.agent_id = a.id\n WHERE s.enabled = true AND a.status = 'active'\n ORDER BY s.created_at\n";
10
+ export declare const LIST_SUBSCRIBERS = "\n SELECT s.id, s.agent_id, s.topic, s.reaction_type,\n a.id AS agent_name\n FROM lt_agent_subscriptions s\n JOIN lt_agents a ON s.agent_id = a.id\n WHERE s.enabled = true AND a.status = 'active'\n AND (\n s.topic = $1\n OR $1 LIKE REPLACE(REPLACE(s.topic, '*', '%'), '>', '%')\n )\n ORDER BY s.created_at\n";
@@ -9,7 +9,10 @@ exports.LIST_TOPICS = `
9
9
  SELECT COUNT(*)::int AS sub_count
10
10
  FROM lt_agent_subscriptions
11
11
  WHERE enabled = true
12
- AND (topic = t.topic OR topic LIKE '%>%' OR topic LIKE '%*%')
12
+ AND (
13
+ topic = t.topic
14
+ OR t.topic LIKE REPLACE(REPLACE(topic, '*', '%'), '>', '%')
15
+ )
13
16
  ) s ON true
14
17
  WHERE ($1::text IS NULL OR t.category = $1)
15
18
  AND ($2::text IS NULL OR t.topic ILIKE '%' || $2 || '%' OR t.description ILIKE '%' || $2 || '%')
@@ -72,9 +75,13 @@ exports.RESET_TOPIC = `
72
75
  `;
73
76
  exports.LIST_SUBSCRIBERS = `
74
77
  SELECT s.id, s.agent_id, s.topic, s.reaction_type,
75
- a.name AS agent_name
78
+ a.id AS agent_name
76
79
  FROM lt_agent_subscriptions s
77
80
  JOIN lt_agents a ON s.agent_id = a.id
78
81
  WHERE s.enabled = true AND a.status = 'active'
82
+ AND (
83
+ s.topic = $1
84
+ OR $1 LIKE REPLACE(REPLACE(s.topic, '*', '%'), '>', '%')
85
+ )
79
86
  ORDER BY s.created_at
80
87
  `;
@@ -220,7 +220,7 @@ function inferCategory(topic) {
220
220
  async function seedSystemTopics() {
221
221
  for (const def of SYSTEM_TOPICS) {
222
222
  try {
223
- const inserted = await (0, index_1.seedTopic)({
223
+ await (0, index_1.resetTopic)({
224
224
  topic: def.topic,
225
225
  description: def.description ?? '',
226
226
  category: def.category ?? inferCategory(def.topic),
@@ -229,8 +229,7 @@ async function seedSystemTopics() {
229
229
  source: 'system',
230
230
  tags: def.tags ?? [],
231
231
  });
232
- if (inserted)
233
- logger_1.loggerRegistry.info(`[long-tail] topic seeded: ${def.topic}`);
232
+ logger_1.loggerRegistry.info(`[long-tail] topic seeded: ${def.topic}`);
234
233
  }
235
234
  catch (err) {
236
235
  logger_1.loggerRegistry.warn(`[long-tail] topic seed failed for ${def.topic}: ${err.message}`);
@@ -237,7 +237,7 @@ async function startWorkers(startConfig, workers, builtinMcpServerFactories) {
237
237
  : [];
238
238
  const allAgentConfigs = [...(startConfig.agents ?? []), ...systemAgents];
239
239
  if (allAgentConfigs.length > 0) {
240
- const { seedAgent, getAgentByName } = await Promise.resolve().then(() => __importStar(require('../services/agent')));
240
+ const { seedAgent } = await Promise.resolve().then(() => __importStar(require('../services/agent')));
241
241
  const { seedSubscription } = await Promise.resolve().then(() => __importStar(require('../services/agent/subscriptions')));
242
242
  for (const agentConfig of allAgentConfigs) {
243
243
  try {
@@ -248,7 +248,7 @@ async function startWorkers(startConfig, workers, builtinMcpServerFactories) {
248
248
  behaviors.cron = agentConfig.schedules[0].cron;
249
249
  }
250
250
  const inserted = await seedAgent({
251
- name: agentConfig.name,
251
+ id: agentConfig.name,
252
252
  description: agentConfig.description,
253
253
  goals: agentConfig.goals,
254
254
  rules: agentConfig.rules,
@@ -259,19 +259,16 @@ async function startWorkers(startConfig, workers, builtinMcpServerFactories) {
259
259
  });
260
260
  if (inserted)
261
261
  logger_1.loggerRegistry.info(`[long-tail] agent seeded: ${agentConfig.name}`);
262
- // Seed subscriptions for this agent
262
+ // Seed subscriptions for this agent — id IS the name
263
263
  if (agentConfig.subscriptions?.length) {
264
- const agent = await getAgentByName(agentConfig.name);
265
- if (agent) {
266
- for (const sub of agentConfig.subscriptions) {
267
- try {
268
- const subInserted = await seedSubscription(agent.id, sub);
269
- if (subInserted)
270
- logger_1.loggerRegistry.info(`[long-tail] subscription seeded: ${agentConfig.name}/${sub.topic}`);
271
- }
272
- catch (subErr) {
273
- logger_1.loggerRegistry.warn(`[long-tail] subscription seed failed: ${agentConfig.name}/${sub.topic}: ${subErr.message}`);
274
- }
264
+ for (const sub of agentConfig.subscriptions) {
265
+ try {
266
+ const subInserted = await seedSubscription(agentConfig.name, sub);
267
+ if (subInserted)
268
+ logger_1.loggerRegistry.info(`[long-tail] subscription seeded: ${agentConfig.name}/${sub.topic}`);
269
+ }
270
+ catch (subErr) {
271
+ logger_1.loggerRegistry.warn(`[long-tail] subscription seed failed: ${agentConfig.name}/${sub.topic}: ${subErr.message}`);
275
272
  }
276
273
  }
277
274
  }
@@ -1 +1 @@
1
- {"root":["../index.ts","../vitest.config.ts","../vitest.integration.config.ts","../api/agent-subscriptions.ts","../api/agents.ts","../api/auth.ts","../api/bot-accounts.ts","../api/capabilities.ts","../api/controlplane.ts","../api/dba.ts","../api/exports.ts","../api/files.ts","../api/index.ts","../api/insight.ts","../api/knowledge.ts","../api/maintenance.ts","../api/mcp-runs.ts","../api/namespaces.ts","../api/roles.ts","../api/settings.ts","../api/tasks.ts","../api/topics.ts","../api/users.ts","../api/workflow-sets.ts","../api/escalations/bulk.ts","../api/escalations/claim.ts","../api/escalations/create.ts","../api/escalations/helpers.ts","../api/escalations/index.ts","../api/escalations/list.ts","../api/escalations/resolve.ts","../api/escalations/single.ts","../api/mcp/index.ts","../api/mcp/servers.ts","../api/mcp/tools.ts","../api/workflows/config.ts","../api/workflows/discovery.ts","../api/workflows/index.ts","../api/workflows/invocation.ts","../api/yaml-workflows/cron.ts","../api/yaml-workflows/crud.ts","../api/yaml-workflows/deploy.ts","../api/yaml-workflows/helpers.ts","../api/yaml-workflows/index.ts","../api/yaml-workflows/versions.ts","../bin/ltc.ts","../lib/cli/auth.ts","../lib/cli/client.ts","../lib/cli/compile.ts","../lib/cli/format.ts","../lib/cli/init.ts","../lib/cli/output.ts","../lib/cli/scanner.ts","../lib/cli/types.ts","../lib/cli/commands/escalations.ts","../lib/cli/commands/knowledge.ts","../lib/cli/commands/mcp.ts","../lib/cli/commands/pipelines.ts","../lib/cli/commands/status.ts","../lib/cli/commands/users.ts","../lib/cli/commands/workflows.ts","../lib/db/index.ts","../lib/db/migrate.ts","../lib/events/callback.ts","../lib/events/index.ts","../lib/events/matching.ts","../lib/events/memory.ts","../lib/events/nats.ts","../lib/events/publish.ts","../lib/events/socketio.ts","../lib/logger/index.ts","../lib/logger/pino.ts","../lib/storage/index.ts","../lib/storage/local.ts","../lib/storage/mime.ts","../lib/storage/s3.ts","../lib/storage/types.ts","../lib/telemetry/honeycomb.ts","../lib/telemetry/index.ts","../modules/auth.ts","../modules/config.ts","../modules/defaults.ts","../modules/ltconfig.ts","../modules/maintenance.ts","../modules/utils.ts","../routes/agents.ts","../routes/auth.ts","../routes/bot-accounts.ts","../routes/capabilities.ts","../routes/controlplane.ts","../routes/dba.ts","../routes/delegation.ts","../routes/docs.ts","../routes/exports.ts","../routes/file-browser.ts","../routes/files.ts","../routes/index.ts","../routes/insight.ts","../routes/knowledge.ts","../routes/maintenance.ts","../routes/mcp-runs.ts","../routes/mcp.ts","../routes/namespaces.ts","../routes/nats-credentials.ts","../routes/oauth.ts","../routes/roles.ts","../routes/settings.ts","../routes/tasks.ts","../routes/topics.ts","../routes/users.ts","../routes/workflow-sets.ts","../routes/escalations/bulk.ts","../routes/escalations/index.ts","../routes/escalations/list.ts","../routes/escalations/resolve.ts","../routes/escalations/single.ts","../routes/workflows/config.ts","../routes/workflows/discovery.ts","../routes/workflows/index.ts","../routes/workflows/invocation.ts","../routes/yaml-workflows/cron.ts","../routes/yaml-workflows/crud.ts","../routes/yaml-workflows/deployment.ts","../routes/yaml-workflows/index.ts","../routes/yaml-workflows/versions.ts","../scripts/process-helpers.ts","../scripts/process.ts","../scripts/token.ts","../sdk/index.ts","../services/dba.ts","../services/hotmesh-utils.ts","../services/workflow-invocation.ts","../services/agent/index.ts","../services/agent/input-mapper.ts","../services/agent/sql.ts","../services/agent/subscription-sql.ts","../services/agent/subscriptions.ts","../services/agent/trigger-registry.ts","../services/auth/bot-api-key.ts","../services/auth/delegation.ts","../services/auth/index.ts","../services/auth/service-token.ts","../services/config/cache.ts","../services/config/index.ts","../services/config/provider.ts","../services/config/read.ts","../services/config/sql.ts","../services/config/write.ts","../services/controlplane/index.ts","../services/controlplane/quorum-bridge.ts","../services/controlplane/sql.ts","../services/controlplane/types.ts","../services/cron/index.ts","../services/escalation/bulk.ts","../services/escalation/crud.ts","../services/escalation/index.ts","../services/escalation/queries.ts","../services/escalation/sql.ts","../services/escalation/types.ts","../services/escalation-strategy/default.ts","../services/escalation-strategy/index.ts","../services/escalation-strategy/mcp.ts","../services/export/client.ts","../services/export/index.ts","../services/export/post-process.ts","../services/export/types.ts","../services/iam/activity.ts","../services/iam/bots.ts","../services/iam/context.ts","../services/iam/credentials.ts","../services/iam/envelope.ts","../services/iam/ephemeral.ts","../services/iam/index.ts","../services/iam/principal.ts","../services/iam/resolve.ts","../services/iam/sql.ts","../services/insight/index.ts","../services/insight/prompts.ts","../services/interceptor/activity-interceptor.ts","../services/interceptor/completion.ts","../services/interceptor/context.ts","../services/interceptor/escalation.ts","../services/interceptor/index.ts","../services/interceptor/lifecycle.ts","../services/interceptor/state.ts","../services/interceptor/types.ts","../services/interceptor/activities/config.ts","../services/interceptor/activities/escalation.ts","../services/interceptor/activities/index.ts","../services/interceptor/activities/task.ts","../services/interceptor/activities/workflow.ts","../services/llm/detect.ts","../services/llm/index.ts","../services/llm/translate.ts","../services/llm/types.ts","../services/llm/providers/anthropic.ts","../services/llm/providers/openai.ts","../services/maintenance/index.ts","../services/mcp/adapter.ts","../services/mcp/db.ts","../services/mcp/index.ts","../services/mcp/register-tool.ts","../services/mcp/server-lifecycle.ts","../services/mcp/server-tools.ts","../services/mcp/server.ts","../services/mcp/sql.ts","../services/mcp/types.ts","../services/mcp/workflow-compiler-server.ts","../services/mcp/workflow-server.ts","../services/mcp/client/connection-dispatch.ts","../services/mcp/client/connection-lifecycle.ts","../services/mcp/client/connection-test.ts","../services/mcp/client/connection.ts","../services/mcp/client/index.ts","../services/mcp/client/tools.ts","../services/mcp/db-server/index.ts","../services/mcp/db-server/schemas.ts","../services/mcp/db-server/tools.ts","../services/mcp/playwright-server/index.ts","../services/mcp/playwright-server/lifecycle.ts","../services/mcp/playwright-server/schemas.ts","../services/mcp/playwright-server/tools.ts","../services/mcp-runs/enrichment.ts","../services/mcp-runs/events.ts","../services/mcp-runs/execution-builder.ts","../services/mcp-runs/index.ts","../services/mcp-runs/queries.ts","../services/mcp-runs/sql.ts","../services/mcp-runs/types.ts","../services/namespace/index.ts","../services/namespace/sql.ts","../services/namespace/types.ts","../services/oauth/crypto.ts","../services/oauth/db.ts","../services/oauth/index.ts","../services/oauth/sql.ts","../services/oauth/state.ts","../services/oauth/providers/anthropic.ts","../services/oauth/providers/github.ts","../services/oauth/providers/google.ts","../services/oauth/providers/index.ts","../services/oauth/providers/microsoft.ts","../services/oauth/providers/mock.ts","../services/oauth/providers/registry.ts","../services/oauth/providers/types.ts","../services/orchestrator/condition.ts","../services/orchestrator/index.ts","../services/orchestrator/types.ts","../services/role/index.ts","../services/role/sql.ts","../services/role/types.ts","../services/task/crud.ts","../services/task/index.ts","../services/task/process.ts","../services/task/resolve.ts","../services/task/sql.ts","../services/task/types.ts","../services/topics/index.ts","../services/topics/sql.ts","../services/topics/system-topics.ts","../services/user/auth.ts","../services/user/crud.ts","../services/user/index.ts","../services/user/rbac.ts","../services/user/roles.ts","../services/user/sql.ts","../services/user/types.ts","../services/workers/registry.ts","../services/workflow-sets/db.ts","../services/workflow-sets/index.ts","../services/workflow-sets/sql.ts","../services/yaml-workflow/builder-regenerate.ts","../services/yaml-workflow/db-utils.ts","../services/yaml-workflow/db-versions.ts","../services/yaml-workflow/db.ts","../services/yaml-workflow/deployer-helpers.ts","../services/yaml-workflow/deployer.ts","../services/yaml-workflow/generator.ts","../services/yaml-workflow/index.ts","../services/yaml-workflow/input-analyzer-helpers.ts","../services/yaml-workflow/input-analyzer.ts","../services/yaml-workflow/invoke.ts","../services/yaml-workflow/sql.ts","../services/yaml-workflow/types.ts","../services/yaml-workflow/durable-compiler/index.ts","../services/yaml-workflow/durable-compiler/parser.ts","../services/yaml-workflow/durable-compiler/prompts.ts","../services/yaml-workflow/durable-compiler/types.ts","../services/yaml-workflow/pattern-detector/array-source.ts","../services/yaml-workflow/pattern-detector/collapse.ts","../services/yaml-workflow/pattern-detector/index.ts","../services/yaml-workflow/pattern-detector/run-detection.ts","../services/yaml-workflow/pattern-detector/types.ts","../services/yaml-workflow/pipeline/analyze.ts","../services/yaml-workflow/pipeline/extract-helpers.ts","../services/yaml-workflow/pipeline/extract.ts","../services/yaml-workflow/pipeline/index.ts","../services/yaml-workflow/pipeline/prompt-templates.ts","../services/yaml-workflow/pipeline/prompts.ts","../services/yaml-workflow/pipeline/validate.ts","../services/yaml-workflow/pipeline/build/dag-assembly.ts","../services/yaml-workflow/pipeline/build/dag.ts","../services/yaml-workflow/pipeline/build/index.ts","../services/yaml-workflow/pipeline/build/iteration.ts","../services/yaml-workflow/pipeline/build/metadata.ts","../services/yaml-workflow/pipeline/build/transform.ts","../services/yaml-workflow/pipeline/build/utils.ts","../services/yaml-workflow/pipeline/build/wiring.ts","../services/yaml-workflow/pipeline/compile/index.ts","../services/yaml-workflow/pipeline/compile/llm-call.ts","../services/yaml-workflow/pipeline/compile/parse-plan.ts","../services/yaml-workflow/pipeline/compile/summarize.ts","../services/yaml-workflow/workers/callbacks.ts","../services/yaml-workflow/workers/events.ts","../services/yaml-workflow/workers/index.ts","../services/yaml-workflow/workers/register.ts","../services/yaml-workflow/workers/scope.ts","../start/adapters.ts","../start/config.ts","../start/index.ts","../start/server.ts","../start/socket-auth.ts","../start/workers.ts","../system/index.ts","../system/activities/claude-code.ts","../system/activities/file-storage.ts","../system/activities/http.ts","../system/activities/knowledge.ts","../system/activities/oauth.ts","../system/activities/schema-exchange.ts","../system/activities/sql.ts","../system/activities/triage/cache.ts","../system/activities/triage/context.ts","../system/activities/triage/discovery.ts","../system/activities/triage/index.ts","../system/activities/triage/llm.ts","../system/activities/triage/tools.ts","../system/mcp-servers/claude-code.ts","../system/mcp-servers/docs.ts","../system/mcp-servers/events.ts","../system/mcp-servers/file-storage.ts","../system/mcp-servers/http-fetch.ts","../system/mcp-servers/human-queue-schemas.ts","../system/mcp-servers/human-queue.ts","../system/mcp-servers/knowledge.ts","../system/mcp-servers/oauth.ts","../system/mcp-servers/schema-exchange.ts","../system/mcp-servers/translation.ts","../system/mcp-servers/vision-prompts.ts","../system/mcp-servers/vision.ts","../system/mcp-servers/workflow-compiler.ts","../system/mcp-servers/workflow.ts","../system/mcp-servers/admin/escalations.ts","../system/mcp-servers/admin/index.ts","../system/mcp-servers/admin/maintenance.ts","../system/mcp-servers/admin/mcp-servers.ts","../system/mcp-servers/admin/schemas.ts","../system/mcp-servers/admin/tasks.ts","../system/mcp-servers/admin/users.ts","../system/mcp-servers/admin/workflow-config.ts","../system/mcp-servers/admin/workflows.ts","../system/mcp-servers/admin/yaml-workflows.ts","../system/mcp-servers/db-query/index.ts","../system/mcp-servers/db-query/schemas.ts","../system/mcp-servers/db-query/tools.ts","../system/mcp-servers/playwright/browser-lifecycle.ts","../system/mcp-servers/playwright/index.ts","../system/mcp-servers/playwright/schemas.ts","../system/mcp-servers/playwright/tools-atomic.ts","../system/mcp-servers/playwright/tools-navigation.ts","../system/mcp-servers/playwright/tools-page-interaction.ts","../system/mcp-servers/playwright/tools-run-script.ts","../system/mcp-servers/playwright/types.ts","../system/mcp-servers/playwright/vision-helper.ts","../system/mcp-servers/playwright-cli/helpers.ts","../system/mcp-servers/playwright-cli/index.ts","../system/mcp-servers/playwright-cli/schemas.ts","../system/mcp-servers/playwright-cli/tools-auth.ts","../system/mcp-servers/playwright-cli/tools-capture.ts","../system/seed/index.ts","../system/seed/tool-manifests-admin.ts","../system/seed/tool-manifests-browser.ts","../system/seed/tool-manifests-data.ts","../system/seed/tool-manifests-escalation.ts","../system/seed/tool-manifests-events.ts","../system/seed/tool-manifests-knowledge.ts","../system/seed/tool-manifests-workflows.ts","../system/workflows/tool-result-guard.ts","../system/workflows/mcp-deterministic/activities.ts","../system/workflows/mcp-deterministic/index.ts","../system/workflows/mcp-query/index.ts","../system/workflows/mcp-query/prompts.ts","../system/workflows/mcp-query/strategy-advisors.ts","../system/workflows/mcp-query/types.ts","../system/workflows/mcp-query/activities/caches.ts","../system/workflows/mcp-query/activities/discovery.ts","../system/workflows/mcp-query/activities/index.ts","../system/workflows/mcp-query/activities/llm.ts","../system/workflows/mcp-query/activities/tool-executor.ts","../system/workflows/mcp-query/activities/tool-loader.ts","../system/workflows/mcp-query-router/activities.ts","../system/workflows/mcp-query-router/index.ts","../system/workflows/mcp-query-router/prompts.ts","../system/workflows/mcp-triage/activities-proxy.ts","../system/workflows/mcp-triage/index.ts","../system/workflows/mcp-triage/prompts.ts","../system/workflows/mcp-triage/response-builders.ts","../system/workflows/mcp-triage/response.ts","../system/workflows/mcp-triage/types.ts","../system/workflows/mcp-triage-deterministic/activities.ts","../system/workflows/mcp-triage-deterministic/index.ts","../system/workflows/mcp-triage-router/activities.ts","../system/workflows/mcp-triage-router/index.ts","../system/workflows/mcp-workflow-builder/index.ts","../system/workflows/mcp-workflow-builder/prompts.ts","../system/workflows/mcp-workflow-builder/activities/caches.ts","../system/workflows/mcp-workflow-builder/activities/index.ts","../system/workflows/mcp-workflow-builder/activities/llm.ts","../system/workflows/mcp-workflow-builder/activities/tool-loader.ts","../system/workflows/mcp-workflow-planner/index.ts","../system/workflows/mcp-workflow-planner/prompts.ts","../system/workflows/mcp-workflow-planner/activities/analyze.ts","../system/workflows/mcp-workflow-planner/activities/index.ts","../system/workflows/mcp-workflow-planner/activities/persist.ts","../system/workflows/mcp-workflow-planner/activities/plan.ts","../system/workflows/shared/discovery.ts","../system/workflows/shared/index.ts","../system/workflows/shared/llm-caller.ts","../system/workflows/shared/prompts.ts","../system/workflows/shared/strategy-advisors.ts","../system/workflows/shared/tool-executor.ts","../system/workflows/shared/tool-loader.ts","../system/workflows/shared/types.ts","../types/agent.ts","../types/auth.ts","../types/config.ts","../types/delegation.ts","../types/discovery.ts","../types/envelope.ts","../types/escalation-strategy.ts","../types/escalation.ts","../types/events.ts","../types/export.ts","../types/express.d.ts","../types/index.ts","../types/logger.ts","../types/maintenance.ts","../types/mcp.ts","../types/oauth.ts","../types/sdk.ts","../types/startup.ts","../types/task.ts","../types/telemetry.ts","../types/tool-context.ts","../types/user.ts","../types/workflow-set.ts","../types/workflow.ts","../types/yaml-workflow.ts","../workers/index.ts"],"version":"5.9.3"}
1
+ {"root":["../index.ts","../vitest.config.ts","../vitest.integration.config.ts","../api/agent-subscriptions.ts","../api/agents.ts","../api/auth.ts","../api/bot-accounts.ts","../api/capabilities.ts","../api/controlplane.ts","../api/dba.ts","../api/exports.ts","../api/files.ts","../api/index.ts","../api/insight.ts","../api/knowledge.ts","../api/maintenance.ts","../api/mcp-runs.ts","../api/namespaces.ts","../api/roles.ts","../api/settings.ts","../api/tasks.ts","../api/topics.ts","../api/users.ts","../api/workflow-sets.ts","../api/escalations/bulk.ts","../api/escalations/claim.ts","../api/escalations/create.ts","../api/escalations/helpers.ts","../api/escalations/index.ts","../api/escalations/list.ts","../api/escalations/resolve.ts","../api/escalations/single.ts","../api/mcp/index.ts","../api/mcp/servers.ts","../api/mcp/tools.ts","../api/workflows/config.ts","../api/workflows/discovery.ts","../api/workflows/index.ts","../api/workflows/invocation.ts","../api/yaml-workflows/cron.ts","../api/yaml-workflows/crud.ts","../api/yaml-workflows/deploy.ts","../api/yaml-workflows/helpers.ts","../api/yaml-workflows/index.ts","../api/yaml-workflows/versions.ts","../bin/ltc.ts","../lib/cli/auth.ts","../lib/cli/client.ts","../lib/cli/compile.ts","../lib/cli/format.ts","../lib/cli/init.ts","../lib/cli/output.ts","../lib/cli/scanner.ts","../lib/cli/types.ts","../lib/cli/commands/escalations.ts","../lib/cli/commands/knowledge.ts","../lib/cli/commands/mcp.ts","../lib/cli/commands/pipelines.ts","../lib/cli/commands/status.ts","../lib/cli/commands/streams.ts","../lib/cli/commands/users.ts","../lib/cli/commands/workflows.ts","../lib/db/index.ts","../lib/db/migrate.ts","../lib/events/callback.ts","../lib/events/index.ts","../lib/events/matching.ts","../lib/events/memory.ts","../lib/events/nats.ts","../lib/events/publish.ts","../lib/events/socketio.ts","../lib/logger/index.ts","../lib/logger/pino.ts","../lib/storage/index.ts","../lib/storage/local.ts","../lib/storage/mime.ts","../lib/storage/s3.ts","../lib/storage/types.ts","../lib/telemetry/honeycomb.ts","../lib/telemetry/index.ts","../modules/auth.ts","../modules/config.ts","../modules/defaults.ts","../modules/ltconfig.ts","../modules/maintenance.ts","../modules/utils.ts","../routes/agents.ts","../routes/auth.ts","../routes/bot-accounts.ts","../routes/capabilities.ts","../routes/controlplane.ts","../routes/dba.ts","../routes/delegation.ts","../routes/docs.ts","../routes/exports.ts","../routes/file-browser.ts","../routes/files.ts","../routes/index.ts","../routes/insight.ts","../routes/knowledge.ts","../routes/maintenance.ts","../routes/mcp-runs.ts","../routes/mcp.ts","../routes/namespaces.ts","../routes/nats-credentials.ts","../routes/oauth.ts","../routes/roles.ts","../routes/settings.ts","../routes/tasks.ts","../routes/topics.ts","../routes/users.ts","../routes/workflow-sets.ts","../routes/escalations/bulk.ts","../routes/escalations/index.ts","../routes/escalations/list.ts","../routes/escalations/resolve.ts","../routes/escalations/single.ts","../routes/workflows/config.ts","../routes/workflows/discovery.ts","../routes/workflows/index.ts","../routes/workflows/invocation.ts","../routes/yaml-workflows/cron.ts","../routes/yaml-workflows/crud.ts","../routes/yaml-workflows/deployment.ts","../routes/yaml-workflows/index.ts","../routes/yaml-workflows/versions.ts","../scripts/process-helpers.ts","../scripts/process.ts","../scripts/token.ts","../sdk/index.ts","../services/dba.ts","../services/hotmesh-utils.ts","../services/workflow-invocation.ts","../services/agent/index.ts","../services/agent/input-mapper.ts","../services/agent/sql.ts","../services/agent/subscription-sql.ts","../services/agent/subscriptions.ts","../services/agent/trigger-registry.ts","../services/auth/bot-api-key.ts","../services/auth/delegation.ts","../services/auth/index.ts","../services/auth/service-token.ts","../services/config/cache.ts","../services/config/index.ts","../services/config/provider.ts","../services/config/read.ts","../services/config/sql.ts","../services/config/write.ts","../services/controlplane/index.ts","../services/controlplane/quorum-bridge.ts","../services/controlplane/sql.ts","../services/controlplane/stream-messages-sql.ts","../services/controlplane/types.ts","../services/cron/index.ts","../services/escalation/bulk.ts","../services/escalation/crud.ts","../services/escalation/index.ts","../services/escalation/queries.ts","../services/escalation/sql.ts","../services/escalation/types.ts","../services/escalation-strategy/default.ts","../services/escalation-strategy/index.ts","../services/escalation-strategy/mcp.ts","../services/export/client.ts","../services/export/index.ts","../services/export/post-process.ts","../services/export/types.ts","../services/iam/activity.ts","../services/iam/bots.ts","../services/iam/context.ts","../services/iam/credentials.ts","../services/iam/envelope.ts","../services/iam/ephemeral.ts","../services/iam/index.ts","../services/iam/principal.ts","../services/iam/resolve.ts","../services/iam/sql.ts","../services/insight/index.ts","../services/insight/prompts.ts","../services/interceptor/activity-interceptor.ts","../services/interceptor/completion.ts","../services/interceptor/context.ts","../services/interceptor/escalation.ts","../services/interceptor/index.ts","../services/interceptor/lifecycle.ts","../services/interceptor/state.ts","../services/interceptor/types.ts","../services/interceptor/activities/config.ts","../services/interceptor/activities/escalation.ts","../services/interceptor/activities/index.ts","../services/interceptor/activities/task.ts","../services/interceptor/activities/workflow.ts","../services/llm/detect.ts","../services/llm/index.ts","../services/llm/translate.ts","../services/llm/types.ts","../services/llm/providers/anthropic.ts","../services/llm/providers/openai.ts","../services/maintenance/index.ts","../services/mcp/adapter.ts","../services/mcp/db.ts","../services/mcp/index.ts","../services/mcp/register-tool.ts","../services/mcp/server-lifecycle.ts","../services/mcp/server-tools.ts","../services/mcp/server.ts","../services/mcp/sql.ts","../services/mcp/types.ts","../services/mcp/workflow-compiler-server.ts","../services/mcp/workflow-server.ts","../services/mcp/client/connection-dispatch.ts","../services/mcp/client/connection-lifecycle.ts","../services/mcp/client/connection-test.ts","../services/mcp/client/connection.ts","../services/mcp/client/index.ts","../services/mcp/client/tools.ts","../services/mcp/db-server/index.ts","../services/mcp/db-server/schemas.ts","../services/mcp/db-server/tools.ts","../services/mcp/playwright-server/index.ts","../services/mcp/playwright-server/lifecycle.ts","../services/mcp/playwright-server/schemas.ts","../services/mcp/playwright-server/tools.ts","../services/mcp-runs/enrichment.ts","../services/mcp-runs/events.ts","../services/mcp-runs/execution-builder.ts","../services/mcp-runs/index.ts","../services/mcp-runs/queries.ts","../services/mcp-runs/sql.ts","../services/mcp-runs/types.ts","../services/namespace/index.ts","../services/namespace/sql.ts","../services/namespace/types.ts","../services/oauth/crypto.ts","../services/oauth/db.ts","../services/oauth/index.ts","../services/oauth/sql.ts","../services/oauth/state.ts","../services/oauth/providers/anthropic.ts","../services/oauth/providers/github.ts","../services/oauth/providers/google.ts","../services/oauth/providers/index.ts","../services/oauth/providers/microsoft.ts","../services/oauth/providers/mock.ts","../services/oauth/providers/registry.ts","../services/oauth/providers/types.ts","../services/orchestrator/condition.ts","../services/orchestrator/index.ts","../services/orchestrator/types.ts","../services/role/index.ts","../services/role/sql.ts","../services/role/types.ts","../services/task/crud.ts","../services/task/index.ts","../services/task/process.ts","../services/task/resolve.ts","../services/task/sql.ts","../services/task/types.ts","../services/topics/index.ts","../services/topics/sql.ts","../services/topics/system-topics.ts","../services/user/auth.ts","../services/user/crud.ts","../services/user/index.ts","../services/user/rbac.ts","../services/user/roles.ts","../services/user/sql.ts","../services/user/types.ts","../services/workers/registry.ts","../services/workflow-sets/db.ts","../services/workflow-sets/index.ts","../services/workflow-sets/sql.ts","../services/yaml-workflow/builder-regenerate.ts","../services/yaml-workflow/db-utils.ts","../services/yaml-workflow/db-versions.ts","../services/yaml-workflow/db.ts","../services/yaml-workflow/deployer-helpers.ts","../services/yaml-workflow/deployer.ts","../services/yaml-workflow/generator.ts","../services/yaml-workflow/index.ts","../services/yaml-workflow/input-analyzer-helpers.ts","../services/yaml-workflow/input-analyzer.ts","../services/yaml-workflow/invoke.ts","../services/yaml-workflow/sql.ts","../services/yaml-workflow/types.ts","../services/yaml-workflow/durable-compiler/index.ts","../services/yaml-workflow/durable-compiler/parser.ts","../services/yaml-workflow/durable-compiler/prompts.ts","../services/yaml-workflow/durable-compiler/types.ts","../services/yaml-workflow/pattern-detector/array-source.ts","../services/yaml-workflow/pattern-detector/collapse.ts","../services/yaml-workflow/pattern-detector/index.ts","../services/yaml-workflow/pattern-detector/run-detection.ts","../services/yaml-workflow/pattern-detector/types.ts","../services/yaml-workflow/pipeline/analyze.ts","../services/yaml-workflow/pipeline/extract-helpers.ts","../services/yaml-workflow/pipeline/extract.ts","../services/yaml-workflow/pipeline/index.ts","../services/yaml-workflow/pipeline/prompt-templates.ts","../services/yaml-workflow/pipeline/prompts.ts","../services/yaml-workflow/pipeline/validate.ts","../services/yaml-workflow/pipeline/build/dag-assembly.ts","../services/yaml-workflow/pipeline/build/dag.ts","../services/yaml-workflow/pipeline/build/index.ts","../services/yaml-workflow/pipeline/build/iteration.ts","../services/yaml-workflow/pipeline/build/metadata.ts","../services/yaml-workflow/pipeline/build/transform.ts","../services/yaml-workflow/pipeline/build/utils.ts","../services/yaml-workflow/pipeline/build/wiring.ts","../services/yaml-workflow/pipeline/compile/index.ts","../services/yaml-workflow/pipeline/compile/llm-call.ts","../services/yaml-workflow/pipeline/compile/parse-plan.ts","../services/yaml-workflow/pipeline/compile/summarize.ts","../services/yaml-workflow/workers/callbacks.ts","../services/yaml-workflow/workers/events.ts","../services/yaml-workflow/workers/index.ts","../services/yaml-workflow/workers/register.ts","../services/yaml-workflow/workers/scope.ts","../start/adapters.ts","../start/config.ts","../start/index.ts","../start/server.ts","../start/socket-auth.ts","../start/workers.ts","../system/index.ts","../system/activities/claude-code.ts","../system/activities/file-storage.ts","../system/activities/http.ts","../system/activities/knowledge.ts","../system/activities/oauth.ts","../system/activities/schema-exchange.ts","../system/activities/sql.ts","../system/activities/triage/cache.ts","../system/activities/triage/context.ts","../system/activities/triage/discovery.ts","../system/activities/triage/index.ts","../system/activities/triage/llm.ts","../system/activities/triage/tools.ts","../system/mcp-servers/claude-code.ts","../system/mcp-servers/docs.ts","../system/mcp-servers/events.ts","../system/mcp-servers/file-storage.ts","../system/mcp-servers/http-fetch.ts","../system/mcp-servers/human-queue-schemas.ts","../system/mcp-servers/human-queue.ts","../system/mcp-servers/knowledge.ts","../system/mcp-servers/oauth.ts","../system/mcp-servers/schema-exchange.ts","../system/mcp-servers/translation.ts","../system/mcp-servers/vision-prompts.ts","../system/mcp-servers/vision.ts","../system/mcp-servers/workflow-compiler.ts","../system/mcp-servers/workflow.ts","../system/mcp-servers/admin/escalations.ts","../system/mcp-servers/admin/index.ts","../system/mcp-servers/admin/maintenance.ts","../system/mcp-servers/admin/mcp-servers.ts","../system/mcp-servers/admin/schemas.ts","../system/mcp-servers/admin/tasks.ts","../system/mcp-servers/admin/users.ts","../system/mcp-servers/admin/workflow-config.ts","../system/mcp-servers/admin/workflows.ts","../system/mcp-servers/admin/yaml-workflows.ts","../system/mcp-servers/db-query/index.ts","../system/mcp-servers/db-query/schemas.ts","../system/mcp-servers/db-query/tools.ts","../system/mcp-servers/playwright/browser-lifecycle.ts","../system/mcp-servers/playwright/index.ts","../system/mcp-servers/playwright/schemas.ts","../system/mcp-servers/playwright/tools-atomic.ts","../system/mcp-servers/playwright/tools-navigation.ts","../system/mcp-servers/playwright/tools-page-interaction.ts","../system/mcp-servers/playwright/tools-run-script.ts","../system/mcp-servers/playwright/types.ts","../system/mcp-servers/playwright/vision-helper.ts","../system/mcp-servers/playwright-cli/helpers.ts","../system/mcp-servers/playwright-cli/index.ts","../system/mcp-servers/playwright-cli/schemas.ts","../system/mcp-servers/playwright-cli/tools-auth.ts","../system/mcp-servers/playwright-cli/tools-capture.ts","../system/seed/index.ts","../system/seed/tool-manifests-admin.ts","../system/seed/tool-manifests-browser.ts","../system/seed/tool-manifests-data.ts","../system/seed/tool-manifests-escalation.ts","../system/seed/tool-manifests-events.ts","../system/seed/tool-manifests-knowledge.ts","../system/seed/tool-manifests-workflows.ts","../system/workflows/tool-result-guard.ts","../system/workflows/mcp-deterministic/activities.ts","../system/workflows/mcp-deterministic/index.ts","../system/workflows/mcp-query/index.ts","../system/workflows/mcp-query/prompts.ts","../system/workflows/mcp-query/strategy-advisors.ts","../system/workflows/mcp-query/types.ts","../system/workflows/mcp-query/activities/caches.ts","../system/workflows/mcp-query/activities/discovery.ts","../system/workflows/mcp-query/activities/index.ts","../system/workflows/mcp-query/activities/llm.ts","../system/workflows/mcp-query/activities/tool-executor.ts","../system/workflows/mcp-query/activities/tool-loader.ts","../system/workflows/mcp-query-router/activities.ts","../system/workflows/mcp-query-router/index.ts","../system/workflows/mcp-query-router/prompts.ts","../system/workflows/mcp-triage/activities-proxy.ts","../system/workflows/mcp-triage/index.ts","../system/workflows/mcp-triage/prompts.ts","../system/workflows/mcp-triage/response-builders.ts","../system/workflows/mcp-triage/response.ts","../system/workflows/mcp-triage/types.ts","../system/workflows/mcp-triage-deterministic/activities.ts","../system/workflows/mcp-triage-deterministic/index.ts","../system/workflows/mcp-triage-router/activities.ts","../system/workflows/mcp-triage-router/index.ts","../system/workflows/mcp-workflow-builder/index.ts","../system/workflows/mcp-workflow-builder/prompts.ts","../system/workflows/mcp-workflow-builder/activities/caches.ts","../system/workflows/mcp-workflow-builder/activities/index.ts","../system/workflows/mcp-workflow-builder/activities/llm.ts","../system/workflows/mcp-workflow-builder/activities/tool-loader.ts","../system/workflows/mcp-workflow-planner/index.ts","../system/workflows/mcp-workflow-planner/prompts.ts","../system/workflows/mcp-workflow-planner/activities/analyze.ts","../system/workflows/mcp-workflow-planner/activities/index.ts","../system/workflows/mcp-workflow-planner/activities/persist.ts","../system/workflows/mcp-workflow-planner/activities/plan.ts","../system/workflows/shared/discovery.ts","../system/workflows/shared/index.ts","../system/workflows/shared/llm-caller.ts","../system/workflows/shared/prompts.ts","../system/workflows/shared/strategy-advisors.ts","../system/workflows/shared/tool-executor.ts","../system/workflows/shared/tool-loader.ts","../system/workflows/shared/types.ts","../types/agent.ts","../types/auth.ts","../types/config.ts","../types/delegation.ts","../types/discovery.ts","../types/envelope.ts","../types/escalation-strategy.ts","../types/escalation.ts","../types/events.ts","../types/export.ts","../types/express.d.ts","../types/index.ts","../types/logger.ts","../types/maintenance.ts","../types/mcp.ts","../types/oauth.ts","../types/sdk.ts","../types/startup.ts","../types/task.ts","../types/telemetry.ts","../types/tool-context.ts","../types/user.ts","../types/workflow-set.ts","../types/workflow.ts","../types/yaml-workflow.ts","../workers/index.ts"],"version":"5.9.3"}
@@ -40,8 +40,8 @@ export interface AgentBehaviors {
40
40
  escalationRules?: Record<string, any>;
41
41
  }
42
42
  export interface LTAgent {
43
+ /** Agent identifier — a human-readable kebab-case name (e.g. 'content-triage') */
43
44
  id: string;
44
- name: string;
45
45
  description?: string;
46
46
  status: LTAgentStatus;
47
47
  /** Service account (bot user) this agent runs as */
@@ -0,0 +1,2 @@
1
+ import{j as o}from"./vendor-query-B2UbickB.js";import{c as n}from"./tasks-CIRlUTbo.js";import{q as m}from"./index-BhhWCADo.js";import{f as c}from"./useEventHooks-BvMUy36X.js";import{u}from"./mcp-Cew_Sb-Q.js";import{P as d}from"./PageHeaderWithStats-C5cZ3IOO.js";import"./vendor-react-CX88sFS5.js";import"./vendor-icons-DY1ctJgc.js";function j(){var a;c();const{data:s}=n({limit:1}),{data:e}=m({status:"pending",limit:1}),{data:t}=u(),r=((a=t==null?void 0:t.servers)==null?void 0:a.filter(i=>i.status==="connected").length)??0,l=t?`${r}/${t.total}`:"—";return o.jsx("div",{children:o.jsx(d,{title:"Admin",stats:[{label:"Tasks",value:(s==null?void 0:s.total)??"—"},{label:"Pending Escalations",value:(e==null?void 0:e.total)??"—",dotClass:"bg-status-pending"},{label:"MCP Servers",value:l},{label:"System",value:"Healthy",dotClass:"bg-status-success"}]})})}export{j as AdminDashboard};
2
+ //# sourceMappingURL=AdminDashboard-CR0FtTE6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdminDashboard-CbeSejVX.js","sources":["../../src/pages/admin/AdminDashboard.tsx"],"sourcesContent":["import { useTasks } from '../../api/tasks';\nimport { useEscalations } from '../../api/escalations';\nimport { useEscalationListEvents } from '../../hooks/useEventHooks';\nimport { useMcpServers } from '../../api/mcp';\nimport { PageHeaderWithStats } from '../../components/common/layout/PageHeaderWithStats';\n\nexport function AdminDashboard() {\n useEscalationListEvents();\n const { data: taskData } = useTasks({ limit: 1 });\n const { data: pendingEsc } = useEscalations({ status: 'pending', limit: 1 });\n const { data: mcpData } = useMcpServers();\n\n const connectedServers =\n mcpData?.servers?.filter((s) => s.status === 'connected').length ?? 0;\n const mcpLabel = mcpData ? `${connectedServers}/${mcpData.total}` : '—';\n\n return (\n <div>\n <PageHeaderWithStats\n title=\"Admin\"\n stats={[\n { label: 'Tasks', value: taskData?.total ?? '—' },\n { label: 'Pending Escalations', value: pendingEsc?.total ?? '—', dotClass: 'bg-status-pending' },\n { label: 'MCP Servers', value: mcpLabel },\n { label: 'System', value: 'Healthy', dotClass: 'bg-status-success' },\n ]}\n />\n </div>\n );\n}\n"],"names":["AdminDashboard","useEscalationListEvents","taskData","useTasks","pendingEsc","useEscalations","mcpData","useMcpServers","connectedServers","_a","s","mcpLabel","jsxDEV","PageHeaderWithStats"],"mappings":"uUAMO,SAASA,GAAiB,OAC/BC,EAAA,EACA,KAAM,CAAE,KAAMC,CAAA,EAAaC,EAAS,CAAE,MAAO,EAAG,EAC1C,CAAE,KAAMC,CAAA,EAAeC,EAAe,CAAE,OAAQ,UAAW,MAAO,EAAG,EACrE,CAAE,KAAMC,CAAA,EAAYC,EAAA,EAEpBC,IACJC,EAAAH,GAAA,YAAAA,EAAS,UAAT,YAAAG,EAAkB,OAAQC,GAAMA,EAAE,SAAW,aAAa,SAAU,EAChEC,EAAWL,EAAU,GAAGE,CAAgB,IAAIF,EAAQ,KAAK,GAAK,IAEpE,gBACG,MAAA,CACC,SAAAM,EAAAA,OAACC,EAAA,CACC,MAAM,QACN,MAAO,CACL,CAAE,MAAO,QAAS,OAAOX,GAAA,YAAAA,EAAU,QAAS,GAAA,EAC5C,CAAE,MAAO,sBAAuB,OAAOE,GAAA,YAAAA,EAAY,QAAS,IAAK,SAAU,mBAAA,EAC3E,CAAE,MAAO,cAAe,MAAOO,CAAA,EAC/B,CAAE,MAAO,SAAU,MAAO,UAAW,SAAU,mBAAA,CAAoB,CACrE,EAPF,OAAA,GAAA,CAAA,SAAA,oDAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAAA,CAQA,EATF,OAAA,GAAA,CAAA,SAAA,oDAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAUA,CAEJ"}
1
+ {"version":3,"file":"AdminDashboard-CR0FtTE6.js","sources":["../../src/pages/admin/AdminDashboard.tsx"],"sourcesContent":["import { useTasks } from '../../api/tasks';\nimport { useEscalations } from '../../api/escalations';\nimport { useEscalationListEvents } from '../../hooks/useEventHooks';\nimport { useMcpServers } from '../../api/mcp';\nimport { PageHeaderWithStats } from '../../components/common/layout/PageHeaderWithStats';\n\nexport function AdminDashboard() {\n useEscalationListEvents();\n const { data: taskData } = useTasks({ limit: 1 });\n const { data: pendingEsc } = useEscalations({ status: 'pending', limit: 1 });\n const { data: mcpData } = useMcpServers();\n\n const connectedServers =\n mcpData?.servers?.filter((s) => s.status === 'connected').length ?? 0;\n const mcpLabel = mcpData ? `${connectedServers}/${mcpData.total}` : '—';\n\n return (\n <div>\n <PageHeaderWithStats\n title=\"Admin\"\n stats={[\n { label: 'Tasks', value: taskData?.total ?? '—' },\n { label: 'Pending Escalations', value: pendingEsc?.total ?? '—', dotClass: 'bg-status-pending' },\n { label: 'MCP Servers', value: mcpLabel },\n { label: 'System', value: 'Healthy', dotClass: 'bg-status-success' },\n ]}\n />\n </div>\n );\n}\n"],"names":["AdminDashboard","useEscalationListEvents","taskData","useTasks","pendingEsc","useEscalations","mcpData","useMcpServers","connectedServers","_a","s","mcpLabel","jsx","PageHeaderWithStats"],"mappings":"4UAMO,SAASA,GAAiB,OAC/BC,EAAA,EACA,KAAM,CAAE,KAAMC,CAAA,EAAaC,EAAS,CAAE,MAAO,EAAG,EAC1C,CAAE,KAAMC,CAAA,EAAeC,EAAe,CAAE,OAAQ,UAAW,MAAO,EAAG,EACrE,CAAE,KAAMC,CAAA,EAAYC,EAAA,EAEpBC,IACJC,EAAAH,GAAA,YAAAA,EAAS,UAAT,YAAAG,EAAkB,OAAQC,GAAMA,EAAE,SAAW,aAAa,SAAU,EAChEC,EAAWL,EAAU,GAAGE,CAAgB,IAAIF,EAAQ,KAAK,GAAK,IAEpE,aACG,MAAA,CACC,SAAAM,EAAAA,IAACC,EAAA,CACC,MAAM,QACN,MAAO,CACL,CAAE,MAAO,QAAS,OAAOX,GAAA,YAAAA,EAAU,QAAS,GAAA,EAC5C,CAAE,MAAO,sBAAuB,OAAOE,GAAA,YAAAA,EAAY,QAAS,IAAK,SAAU,mBAAA,EAC3E,CAAE,MAAO,cAAe,MAAOO,CAAA,EAC/B,CAAE,MAAO,SAAU,MAAO,UAAW,SAAU,mBAAA,CAAoB,CACrE,CAAA,EAEJ,CAEJ"}