@hotmeshio/long-tail 0.4.5 → 0.4.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 (314) hide show
  1. package/build/api/files.js +8 -0
  2. package/build/api/topics.d.ts +5 -0
  3. package/build/api/topics.js +20 -0
  4. package/build/api/users.d.ts +2 -0
  5. package/build/api/users.js +1 -0
  6. package/build/index.js +8 -0
  7. package/build/routes/topics.js +12 -0
  8. package/build/services/agent/trigger-registry.d.ts +9 -0
  9. package/build/services/agent/trigger-registry.js +25 -2
  10. package/build/services/user/crud.js +4 -0
  11. package/build/services/user/index.d.ts +1 -0
  12. package/build/services/user/index.js +3 -1
  13. package/build/services/user/seed-admin.d.ts +13 -0
  14. package/build/services/user/seed-admin.js +42 -0
  15. package/build/services/user/types.d.ts +1 -0
  16. package/build/start/index.js +2 -2
  17. package/build/start/workers.d.ts +3 -1
  18. package/build/start/workers.js +10 -0
  19. package/build/tsconfig.tsbuildinfo +1 -1
  20. package/build/types/startup.d.ts +41 -0
  21. package/dashboard/dist/assets/AdminDashboard-qZYNzvw8.js +2 -0
  22. package/dashboard/dist/assets/{AdminDashboard-ntLz5Pro.js.map → AdminDashboard-qZYNzvw8.js.map} +1 -1
  23. package/dashboard/dist/assets/AgentConfigPage-_SMbioNp.js +16 -0
  24. package/dashboard/dist/assets/AgentConfigPage-_SMbioNp.js.map +1 -0
  25. package/dashboard/dist/assets/AgentDetailPage-Cf_SRtbT.js +4 -0
  26. package/dashboard/dist/assets/{AgentDetailPage-Cm2KFR4O.js.map → AgentDetailPage-Cf_SRtbT.js.map} +1 -1
  27. package/dashboard/dist/assets/AgentsPage-q53C1Xk_.js +2 -0
  28. package/dashboard/dist/assets/{AgentsPage-_ptA-0YO.js.map → AgentsPage-q53C1Xk_.js.map} +1 -1
  29. package/dashboard/dist/assets/AvailableEscalationsPage-DHWciaKb.js +2 -0
  30. package/dashboard/dist/assets/{AvailableEscalationsPage-bdPqEzbx.js.map → AvailableEscalationsPage-DHWciaKb.js.map} +1 -1
  31. package/dashboard/dist/assets/BotPicker-638n5Jaz.js +2 -0
  32. package/dashboard/dist/assets/{BotPicker-CYfFMpkY.js.map → BotPicker-638n5Jaz.js.map} +1 -1
  33. package/dashboard/dist/assets/CapabilitiesPage-PmgEhPl8.js +2 -0
  34. package/dashboard/dist/assets/{CapabilitiesPage-M7-ZTFNV.js.map → CapabilitiesPage-PmgEhPl8.js.map} +1 -1
  35. package/dashboard/dist/assets/CollapsibleSection-BEZoI6NU.js +2 -0
  36. package/dashboard/dist/assets/{CollapsibleSection-DU5KAtQ-.js.map → CollapsibleSection-BEZoI6NU.js.map} +1 -1
  37. package/dashboard/dist/assets/ConfirmDeleteModal-dOxidrSR.js +2 -0
  38. package/dashboard/dist/assets/{ConfirmDeleteModal-_hW5Vc05.js.map → ConfirmDeleteModal-dOxidrSR.js.map} +1 -1
  39. package/dashboard/dist/assets/CopyableId-D0SQ39nR.js +2 -0
  40. package/dashboard/dist/assets/{CopyableId-DiWqv41D.js.map → CopyableId-D0SQ39nR.js.map} +1 -1
  41. package/dashboard/dist/assets/CredentialsPage-Dl15oW3U.js +2 -0
  42. package/dashboard/dist/assets/{CredentialsPage-CmbwypSF.js.map → CredentialsPage-Dl15oW3U.js.map} +1 -1
  43. package/dashboard/dist/assets/CronLabel-Dg8U0s5a.js +2 -0
  44. package/dashboard/dist/assets/{CronLabel-nycfAefc.js.map → CronLabel-Dg8U0s5a.js.map} +1 -1
  45. package/dashboard/dist/assets/CustomDurationPicker-BCbVMr-4.js +2 -0
  46. package/dashboard/dist/assets/{CustomDurationPicker-gNZRBaHg.js.map → CustomDurationPicker-BCbVMr-4.js.map} +1 -1
  47. package/dashboard/dist/assets/DataTable-D9yuBv0w.js +2 -0
  48. package/dashboard/dist/assets/{DataTable-DGerT2ZM.js.map → DataTable-D9yuBv0w.js.map} +1 -1
  49. package/dashboard/dist/assets/DropZone-lw2wmqty.js +2 -0
  50. package/dashboard/dist/assets/{DropZone-vNcqMd05.js.map → DropZone-lw2wmqty.js.map} +1 -1
  51. package/dashboard/dist/assets/ElapsedCell-fuG5wRDw.js +2 -0
  52. package/dashboard/dist/assets/{ElapsedCell-CdvQbtve.js.map → ElapsedCell-fuG5wRDw.js.map} +1 -1
  53. package/dashboard/dist/assets/EmptyState-BcsfPq9T.js +2 -0
  54. package/dashboard/dist/assets/{EmptyState-DMldv8c5.js.map → EmptyState-BcsfPq9T.js.map} +1 -1
  55. package/dashboard/dist/assets/EscalationsOverview-nYOZczYx.js +2 -0
  56. package/dashboard/dist/assets/{EscalationsOverview-BNENCL_2.js.map → EscalationsOverview-nYOZczYx.js.map} +1 -1
  57. package/dashboard/dist/assets/EventTable-Cm0Ql46x.js +2 -0
  58. package/dashboard/dist/assets/{EventTable-BqDAyXyc.js.map → EventTable-Cm0Ql46x.js.map} +1 -1
  59. package/dashboard/dist/assets/EventTopicPill-RaASGdZz.js +2 -0
  60. package/dashboard/dist/assets/{EventTopicPill-CnHFBglc.js.map → EventTopicPill-RaASGdZz.js.map} +1 -1
  61. package/dashboard/dist/assets/FilterBar-Ck4K4rzu.js +2 -0
  62. package/dashboard/dist/assets/{FilterBar-TYiTtUgv.js.map → FilterBar-Ck4K4rzu.js.map} +1 -1
  63. package/dashboard/dist/assets/HomePage-Cx6pvCFX.js +2 -0
  64. package/dashboard/dist/assets/{HomePage-fterfLKH.js.map → HomePage-Cx6pvCFX.js.map} +1 -1
  65. package/dashboard/dist/assets/ListToolbar-YHesiWwN.js +2 -0
  66. package/dashboard/dist/assets/{ListToolbar-BO5Igi6v.js.map → ListToolbar-YHesiWwN.js.map} +1 -1
  67. package/dashboard/dist/assets/McpOverview-BWsaxVKL.js +2 -0
  68. package/dashboard/dist/assets/{McpOverview-BQokGg0z.js.map → McpOverview-BWsaxVKL.js.map} +1 -1
  69. package/dashboard/dist/assets/McpQueryDetailPage-CQk3YpR-.js +5 -0
  70. package/dashboard/dist/assets/McpQueryDetailPage-CQk3YpR-.js.map +1 -0
  71. package/dashboard/dist/assets/McpQueryPage-Uf5DKujM.js +2 -0
  72. package/dashboard/dist/assets/{McpQueryPage-DUey_h9J.js.map → McpQueryPage-Uf5DKujM.js.map} +1 -1
  73. package/dashboard/dist/assets/McpRunDetailPage-D9GU27cS.js +2 -0
  74. package/dashboard/dist/assets/{McpRunDetailPage-Cv4qyr91.js.map → McpRunDetailPage-D9GU27cS.js.map} +1 -1
  75. package/dashboard/dist/assets/McpRunsPage-5dVAu25-.js +2 -0
  76. package/dashboard/dist/assets/{McpRunsPage-B3R6KZ61.js.map → McpRunsPage-5dVAu25-.js.map} +1 -1
  77. package/dashboard/dist/assets/Modal-DEODGeqx.js +2 -0
  78. package/dashboard/dist/assets/{Modal-Qe8lW7gQ.js.map → Modal-DEODGeqx.js.map} +1 -1
  79. package/dashboard/dist/assets/OperatorDashboard-DNJtUDxl.js +2 -0
  80. package/dashboard/dist/assets/{OperatorDashboard-dldvzjcg.js.map → OperatorDashboard-DNJtUDxl.js.map} +1 -1
  81. package/dashboard/dist/assets/PageHeader-B4w-LDUF.js +2 -0
  82. package/dashboard/dist/assets/{PageHeader-DF4BeEm4.js.map → PageHeader-B4w-LDUF.js.map} +1 -1
  83. package/dashboard/dist/assets/PageHeaderWithStats-DQmNXYcG.js +2 -0
  84. package/dashboard/dist/assets/{PageHeaderWithStats-BQZw6BgA.js.map → PageHeaderWithStats-DQmNXYcG.js.map} +1 -1
  85. package/dashboard/dist/assets/PriorityBadge-DfQY9St9.js +2 -0
  86. package/dashboard/dist/assets/{PriorityBadge-DMyB3WLZ.js.map → PriorityBadge-DfQY9St9.js.map} +1 -1
  87. package/dashboard/dist/assets/ProcessDetailPage-BPsvlG0E.js +2 -0
  88. package/dashboard/dist/assets/{ProcessDetailPage-Beo-QVL-.js.map → ProcessDetailPage-BPsvlG0E.js.map} +1 -1
  89. package/dashboard/dist/assets/ProcessesListPage-CnuCtHSP.js +2 -0
  90. package/dashboard/dist/assets/{ProcessesListPage-C_ars8gp.js.map → ProcessesListPage-CnuCtHSP.js.map} +1 -1
  91. package/dashboard/dist/assets/RolePill-Dk-YUxCm.js +2 -0
  92. package/dashboard/dist/assets/{RolePill-DrBZ7JJj.js.map → RolePill-Dk-YUxCm.js.map} +1 -1
  93. package/dashboard/dist/assets/RolesPage-BGJMx2S2.js +2 -0
  94. package/dashboard/dist/assets/{RolesPage-DgSXFFGL.js.map → RolesPage-BGJMx2S2.js.map} +1 -1
  95. package/dashboard/dist/assets/RowActions-Dg-Fsm5O.js +2 -0
  96. package/dashboard/dist/assets/{RowActions-QcakGbVA.js.map → RowActions-Dg-Fsm5O.js.map} +1 -1
  97. package/dashboard/dist/assets/RunAsSelector-CcNnj5AF.js +2 -0
  98. package/dashboard/dist/assets/{RunAsSelector-CYMeZwrM.js.map → RunAsSelector-CcNnj5AF.js.map} +1 -1
  99. package/dashboard/dist/assets/ServerName-BXSm_14r.js +2 -0
  100. package/dashboard/dist/assets/{ServerName-D5NKD06M.js.map → ServerName-BXSm_14r.js.map} +1 -1
  101. package/dashboard/dist/assets/StatCard-DlgF0CJC.js +2 -0
  102. package/dashboard/dist/assets/{StatCard-PZQmmCHK.js.map → StatCard-DlgF0CJC.js.map} +1 -1
  103. package/dashboard/dist/assets/StatusBadge-XQlNFwmH.js +2 -0
  104. package/dashboard/dist/assets/{StatusBadge-ME2R6a7K.js.map → StatusBadge-XQlNFwmH.js.map} +1 -1
  105. package/dashboard/dist/assets/StepIndicator-CuUIGxKk.js +2 -0
  106. package/dashboard/dist/assets/{StepIndicator-CDDVahOz.js.map → StepIndicator-CuUIGxKk.js.map} +1 -1
  107. package/dashboard/dist/assets/StickyPagination-BWhFSr2d.js +2 -0
  108. package/dashboard/dist/assets/{StickyPagination-Ddy93Q5I.js.map → StickyPagination-BWhFSr2d.js.map} +1 -1
  109. package/dashboard/dist/assets/SwimlaneTimeline-fWiYlTQw.js +2 -0
  110. package/dashboard/dist/assets/{SwimlaneTimeline-CYYA8nd9.js.map → SwimlaneTimeline-fWiYlTQw.js.map} +1 -1
  111. package/dashboard/dist/assets/TagInput-CYh3PFNq.js +2 -0
  112. package/dashboard/dist/assets/{TagInput-B45Dm3IW.js.map → TagInput-CYh3PFNq.js.map} +1 -1
  113. package/dashboard/dist/assets/TaskDetailPage-Byz19B5I.js +2 -0
  114. package/dashboard/dist/assets/TaskDetailPage-Byz19B5I.js.map +1 -0
  115. package/dashboard/dist/assets/TaskQueuePill-BSFLiBcf.js +2 -0
  116. package/dashboard/dist/assets/{TaskQueuePill-BJRUjVDv.js.map → TaskQueuePill-BSFLiBcf.js.map} +1 -1
  117. package/dashboard/dist/assets/TasksListPage-pe1Opw6s.js +2 -0
  118. package/dashboard/dist/assets/{TasksListPage-Czu08px3.js.map → TasksListPage-pe1Opw6s.js.map} +1 -1
  119. package/dashboard/dist/assets/TimeAgo-8aYUlXT9.js +2 -0
  120. package/dashboard/dist/assets/{TimeAgo-CJ56IUy6.js.map → TimeAgo-8aYUlXT9.js.map} +1 -1
  121. package/dashboard/dist/assets/TimestampCell-_1fW34op.js +2 -0
  122. package/dashboard/dist/assets/{TimestampCell-QtcYZ9Jx.js.map → TimestampCell-_1fW34op.js.map} +1 -1
  123. package/dashboard/dist/assets/ToolPill-CcKNnnrK.js +2 -0
  124. package/dashboard/dist/assets/{ToolPill-DpDv3FwI.js.map → ToolPill-CcKNnnrK.js.map} +1 -1
  125. package/dashboard/dist/assets/ToolTestPanel-BD7ZkPeM.js +2 -0
  126. package/dashboard/dist/assets/{ToolTestPanel-BzFOwzd_.js.map → ToolTestPanel-BD7ZkPeM.js.map} +1 -1
  127. package/dashboard/dist/assets/TopicDetailPage-DL6QarSi.js +9 -0
  128. package/dashboard/dist/assets/TopicDetailPage-DL6QarSi.js.map +1 -0
  129. package/dashboard/dist/assets/TopicsPage-JYAk0csl.js +2 -0
  130. package/dashboard/dist/assets/{TopicsPage-DKXlpZl_.js.map → TopicsPage-JYAk0csl.js.map} +1 -1
  131. package/dashboard/dist/assets/UserName-Dcn8reNm.js +2 -0
  132. package/dashboard/dist/assets/{UserName-zlR1so37.js.map → UserName-Dcn8reNm.js.map} +1 -1
  133. package/dashboard/dist/assets/WorkflowExecutionPage-DPie2xiD.js +2 -0
  134. package/dashboard/dist/assets/{WorkflowExecutionPage-BMNIxeJB.js.map → WorkflowExecutionPage-DPie2xiD.js.map} +1 -1
  135. package/dashboard/dist/assets/WorkflowPill-BkfIn8N3.js +2 -0
  136. package/dashboard/dist/assets/{WorkflowPill-B5B3yGlh.js.map → WorkflowPill-BkfIn8N3.js.map} +1 -1
  137. package/dashboard/dist/assets/WorkflowsDashboard-BRKurUye.js +2 -0
  138. package/dashboard/dist/assets/{WorkflowsDashboard-BlAPZbQZ.js.map → WorkflowsDashboard-BRKurUye.js.map} +1 -1
  139. package/dashboard/dist/assets/WorkflowsOverview-C9Wob38P.js +2 -0
  140. package/dashboard/dist/assets/{WorkflowsOverview-NnPi6rwS.js.map → WorkflowsOverview-C9Wob38P.js.map} +1 -1
  141. package/dashboard/dist/assets/YamlWorkflowsPage-BoKSRpKN.js +2 -0
  142. package/dashboard/dist/assets/{YamlWorkflowsPage-C4mZum6x.js.map → YamlWorkflowsPage-BoKSRpKN.js.map} +1 -1
  143. package/dashboard/dist/assets/{agents-B5wvILeV.js → agents-CpLOugsY.js} +2 -2
  144. package/dashboard/dist/assets/{agents-B5wvILeV.js.map → agents-CpLOugsY.js.map} +1 -1
  145. package/dashboard/dist/assets/{bots-BPlouRDm.js → bots-DRrquJqC.js} +2 -2
  146. package/dashboard/dist/assets/{bots-BPlouRDm.js.map → bots-DRrquJqC.js.map} +1 -1
  147. package/dashboard/dist/assets/capabilities-xbHvOXKc.js +2 -0
  148. package/dashboard/dist/assets/{capabilities-DkvRG09b.js.map → capabilities-xbHvOXKc.js.map} +1 -1
  149. package/dashboard/dist/assets/{controlplane-0m_rA-UW.js → controlplane-FilVp8jI.js} +2 -2
  150. package/dashboard/dist/assets/{controlplane-0m_rA-UW.js.map → controlplane-FilVp8jI.js.map} +1 -1
  151. package/dashboard/dist/assets/escalation-SGea3mBy.js +2 -0
  152. package/dashboard/dist/assets/{escalation-CfIAIUg2.js.map → escalation-SGea3mBy.js.map} +1 -1
  153. package/dashboard/dist/assets/escalation-columns-C6sLGnSX.js +2 -0
  154. package/dashboard/dist/assets/{escalation-columns-CLIdxlbe.js.map → escalation-columns-C6sLGnSX.js.map} +1 -1
  155. package/dashboard/dist/assets/helpers-wHzG3Maf.js +2 -0
  156. package/dashboard/dist/assets/{helpers-prGqC38M.js.map → helpers-wHzG3Maf.js.map} +1 -1
  157. package/dashboard/dist/assets/index-90jmsIHz.js +6 -0
  158. package/dashboard/dist/assets/{index-CFoddJDr.js.map → index-90jmsIHz.js.map} +1 -1
  159. package/dashboard/dist/assets/index-B7Vxutyl.js +63 -0
  160. package/dashboard/dist/assets/index-B7Vxutyl.js.map +1 -0
  161. package/dashboard/dist/assets/index-BS3KIrQL.js +2 -0
  162. package/dashboard/dist/assets/{index-P9huxx3-.js.map → index-BS3KIrQL.js.map} +1 -1
  163. package/dashboard/dist/assets/index-Bu2EEWNN.js +2 -0
  164. package/dashboard/dist/assets/{index-C0sDEKdo.js.map → index-Bu2EEWNN.js.map} +1 -1
  165. package/dashboard/dist/assets/index-C7k3xfpt.js +2 -0
  166. package/dashboard/dist/assets/{index-CuY5hPYB.js.map → index-C7k3xfpt.js.map} +1 -1
  167. package/dashboard/dist/assets/index-C8xDd-Ys.js +2 -0
  168. package/dashboard/dist/assets/{index-DqeLbz6j.js.map → index-C8xDd-Ys.js.map} +1 -1
  169. package/dashboard/dist/assets/index-CkYNpw4d.js +2 -0
  170. package/dashboard/dist/assets/{index-BR3SwTNI.js.map → index-CkYNpw4d.js.map} +1 -1
  171. package/dashboard/dist/assets/index-DVxBi47d.js +2 -0
  172. package/dashboard/dist/assets/{index-C2MJzu6J.js.map → index-DVxBi47d.js.map} +1 -1
  173. package/dashboard/dist/assets/{index-BPxglOYm.css → index-DZI2L4ag.css} +1 -1
  174. package/dashboard/dist/assets/index-Dr8WJAGM.js +6 -0
  175. package/dashboard/dist/assets/index-Dr8WJAGM.js.map +1 -0
  176. package/dashboard/dist/assets/index-DzgixtgL.js +2 -0
  177. package/dashboard/dist/assets/{index-DeL84Cag.js.map → index-DzgixtgL.js.map} +1 -1
  178. package/dashboard/dist/assets/index-E1i1ADY1.js +15 -0
  179. package/dashboard/dist/assets/{index-BgVuyWhi.js.map → index-E1i1ADY1.js.map} +1 -1
  180. package/dashboard/dist/assets/index-H2tN256i.js +2 -0
  181. package/dashboard/dist/assets/{index-CwkJBn87.js.map → index-H2tN256i.js.map} +1 -1
  182. package/dashboard/dist/assets/index-WwUcAoas.js +2 -0
  183. package/dashboard/dist/assets/{index-BWKIigEk.js.map → index-WwUcAoas.js.map} +1 -1
  184. package/dashboard/dist/assets/{knowledge-CUZxyRCO.js → knowledge-CQWNz28-.js} +2 -2
  185. package/dashboard/dist/assets/{knowledge-CUZxyRCO.js.map → knowledge-CQWNz28-.js.map} +1 -1
  186. package/dashboard/dist/assets/{mcp-B5VQPoF3.js → mcp-J_cDlKuA.js} +2 -2
  187. package/dashboard/dist/assets/{mcp-B5VQPoF3.js.map → mcp-J_cDlKuA.js.map} +1 -1
  188. package/dashboard/dist/assets/{mcp-query-Ba5Zj3yg.js → mcp-query-C1zyeRvo.js} +2 -2
  189. package/dashboard/dist/assets/{mcp-query-Ba5Zj3yg.js.map → mcp-query-C1zyeRvo.js.map} +1 -1
  190. package/dashboard/dist/assets/{mcp-runs-CAiEr5Fc.js → mcp-runs-BR4fvXXw.js} +2 -2
  191. package/dashboard/dist/assets/{mcp-runs-CAiEr5Fc.js.map → mcp-runs-BR4fvXXw.js.map} +1 -1
  192. package/dashboard/dist/assets/namespaces-XOr9_XCV.js +2 -0
  193. package/dashboard/dist/assets/{namespaces-sVr5scma.js.map → namespaces-XOr9_XCV.js.map} +1 -1
  194. package/dashboard/dist/assets/{roles-E_bA4e0f.js → roles-yuxJgQBf.js} +2 -2
  195. package/dashboard/dist/assets/{roles-E_bA4e0f.js.map → roles-yuxJgQBf.js.map} +1 -1
  196. package/dashboard/dist/assets/{tasks-CL6Gv8jB.js → tasks-CI3qsHdP.js} +2 -2
  197. package/dashboard/dist/assets/{tasks-CL6Gv8jB.js.map → tasks-CI3qsHdP.js.map} +1 -1
  198. package/dashboard/dist/assets/topics-lm2GYKuv.js +2 -0
  199. package/dashboard/dist/assets/{topics-DbtPHERP.js.map → topics-lm2GYKuv.js.map} +1 -1
  200. package/dashboard/dist/assets/{useCollapsedSections-CGNA5oKV.js → useCollapsedSections-BU5HULGs.js} +2 -2
  201. package/dashboard/dist/assets/{useCollapsedSections-CGNA5oKV.js.map → useCollapsedSections-BU5HULGs.js.map} +1 -1
  202. package/dashboard/dist/assets/{useEventHooks-C6c618cj.js → useEventHooks-DpvfSw9p.js} +2 -2
  203. package/dashboard/dist/assets/{useEventHooks-C6c618cj.js.map → useEventHooks-DpvfSw9p.js.map} +1 -1
  204. package/dashboard/dist/assets/{useExpandedRows-Cg9iq6Vy.js → useExpandedRows-CkcEntB-.js} +2 -2
  205. package/dashboard/dist/assets/{useExpandedRows-Cg9iq6Vy.js.map → useExpandedRows-CkcEntB-.js.map} +1 -1
  206. package/dashboard/dist/assets/{useFilterParams-CGRYFw_A.js → useFilterParams-DZCAaBC7.js} +2 -2
  207. package/dashboard/dist/assets/{useFilterParams-CGRYFw_A.js.map → useFilterParams-DZCAaBC7.js.map} +1 -1
  208. package/dashboard/dist/assets/{useYamlActivityEvents-eK7kIUdh.js → useYamlActivityEvents-D-zuU9Ts.js} +2 -2
  209. package/dashboard/dist/assets/{useYamlActivityEvents-eK7kIUdh.js.map → useYamlActivityEvents-D-zuU9Ts.js.map} +1 -1
  210. package/dashboard/dist/assets/{users-CCHSIAxt.js → users-DRkulG9o.js} +2 -2
  211. package/dashboard/dist/assets/{users-CCHSIAxt.js.map → users-DRkulG9o.js.map} +1 -1
  212. package/dashboard/dist/assets/{vendor-icons-D8-ZINAH.js → vendor-icons-5gSix3t2.js} +107 -102
  213. package/dashboard/dist/assets/vendor-icons-5gSix3t2.js.map +1 -0
  214. package/dashboard/dist/assets/vendor-query-B2UbickB.js +18 -0
  215. package/dashboard/dist/assets/vendor-query-B2UbickB.js.map +1 -0
  216. package/dashboard/dist/assets/vendor-react-CX88sFS5.js +22 -0
  217. package/dashboard/dist/assets/vendor-react-CX88sFS5.js.map +1 -0
  218. package/dashboard/dist/assets/{workflows-BNbocg_9.js → workflows-dhvM792w.js} +2 -2
  219. package/dashboard/dist/assets/{workflows-BNbocg_9.js.map → workflows-dhvM792w.js.map} +1 -1
  220. package/dashboard/dist/assets/{yaml-workflows-Cu1FUwrc.js → yaml-workflows-DqbGpE2x.js} +2 -2
  221. package/dashboard/dist/assets/{yaml-workflows-Cu1FUwrc.js.map → yaml-workflows-DqbGpE2x.js.map} +1 -1
  222. package/dashboard/dist/index.html +5 -5
  223. package/package.json +1 -1
  224. package/dashboard/dist/assets/AdminDashboard-ntLz5Pro.js +0 -2
  225. package/dashboard/dist/assets/AgentConfigPage-D27vWOI6.js +0 -16
  226. package/dashboard/dist/assets/AgentConfigPage-D27vWOI6.js.map +0 -1
  227. package/dashboard/dist/assets/AgentDetailPage-Cm2KFR4O.js +0 -4
  228. package/dashboard/dist/assets/AgentsPage-_ptA-0YO.js +0 -2
  229. package/dashboard/dist/assets/AvailableEscalationsPage-bdPqEzbx.js +0 -2
  230. package/dashboard/dist/assets/BotPicker-CYfFMpkY.js +0 -2
  231. package/dashboard/dist/assets/CapabilitiesPage-M7-ZTFNV.js +0 -2
  232. package/dashboard/dist/assets/CollapsibleSection-DU5KAtQ-.js +0 -2
  233. package/dashboard/dist/assets/ConfirmDeleteModal-_hW5Vc05.js +0 -2
  234. package/dashboard/dist/assets/CopyableId-DiWqv41D.js +0 -2
  235. package/dashboard/dist/assets/CredentialsPage-CmbwypSF.js +0 -2
  236. package/dashboard/dist/assets/CronLabel-nycfAefc.js +0 -2
  237. package/dashboard/dist/assets/CustomDurationPicker-gNZRBaHg.js +0 -2
  238. package/dashboard/dist/assets/DataTable-DGerT2ZM.js +0 -2
  239. package/dashboard/dist/assets/DropZone-vNcqMd05.js +0 -2
  240. package/dashboard/dist/assets/ElapsedCell-CdvQbtve.js +0 -2
  241. package/dashboard/dist/assets/EmptyState-DMldv8c5.js +0 -2
  242. package/dashboard/dist/assets/EscalationsOverview-BNENCL_2.js +0 -2
  243. package/dashboard/dist/assets/EventTable-BqDAyXyc.js +0 -2
  244. package/dashboard/dist/assets/EventTopicPill-CnHFBglc.js +0 -2
  245. package/dashboard/dist/assets/FilterBar-TYiTtUgv.js +0 -2
  246. package/dashboard/dist/assets/HomePage-fterfLKH.js +0 -2
  247. package/dashboard/dist/assets/ListToolbar-BO5Igi6v.js +0 -2
  248. package/dashboard/dist/assets/McpOverview-BQokGg0z.js +0 -2
  249. package/dashboard/dist/assets/McpQueryDetailPage-0WOp2n_j.js +0 -5
  250. package/dashboard/dist/assets/McpQueryDetailPage-0WOp2n_j.js.map +0 -1
  251. package/dashboard/dist/assets/McpQueryPage-DUey_h9J.js +0 -2
  252. package/dashboard/dist/assets/McpRunDetailPage-Cv4qyr91.js +0 -2
  253. package/dashboard/dist/assets/McpRunsPage-B3R6KZ61.js +0 -2
  254. package/dashboard/dist/assets/Modal-Qe8lW7gQ.js +0 -2
  255. package/dashboard/dist/assets/OperatorDashboard-dldvzjcg.js +0 -2
  256. package/dashboard/dist/assets/PageHeader-DF4BeEm4.js +0 -2
  257. package/dashboard/dist/assets/PageHeaderWithStats-BQZw6BgA.js +0 -2
  258. package/dashboard/dist/assets/PriorityBadge-DMyB3WLZ.js +0 -2
  259. package/dashboard/dist/assets/ProcessDetailPage-Beo-QVL-.js +0 -2
  260. package/dashboard/dist/assets/ProcessesListPage-C_ars8gp.js +0 -2
  261. package/dashboard/dist/assets/RolePill-DrBZ7JJj.js +0 -2
  262. package/dashboard/dist/assets/RolesPage-DgSXFFGL.js +0 -2
  263. package/dashboard/dist/assets/RowActions-QcakGbVA.js +0 -2
  264. package/dashboard/dist/assets/RunAsSelector-CYMeZwrM.js +0 -2
  265. package/dashboard/dist/assets/ServerName-D5NKD06M.js +0 -2
  266. package/dashboard/dist/assets/StatCard-PZQmmCHK.js +0 -2
  267. package/dashboard/dist/assets/StatusBadge-ME2R6a7K.js +0 -2
  268. package/dashboard/dist/assets/StepIndicator-CDDVahOz.js +0 -2
  269. package/dashboard/dist/assets/StickyPagination-Ddy93Q5I.js +0 -2
  270. package/dashboard/dist/assets/SwimlaneTimeline-CYYA8nd9.js +0 -2
  271. package/dashboard/dist/assets/TagInput-B45Dm3IW.js +0 -2
  272. package/dashboard/dist/assets/TaskDetailPage-CoZFkJ6d.js +0 -2
  273. package/dashboard/dist/assets/TaskDetailPage-CoZFkJ6d.js.map +0 -1
  274. package/dashboard/dist/assets/TaskQueuePill-BJRUjVDv.js +0 -2
  275. package/dashboard/dist/assets/TasksListPage-Czu08px3.js +0 -2
  276. package/dashboard/dist/assets/TimeAgo-CJ56IUy6.js +0 -2
  277. package/dashboard/dist/assets/TimestampCell-QtcYZ9Jx.js +0 -2
  278. package/dashboard/dist/assets/ToolPill-DpDv3FwI.js +0 -2
  279. package/dashboard/dist/assets/ToolTestPanel-BzFOwzd_.js +0 -2
  280. package/dashboard/dist/assets/TopicDetailPage-DwShZbh9.js +0 -9
  281. package/dashboard/dist/assets/TopicDetailPage-DwShZbh9.js.map +0 -1
  282. package/dashboard/dist/assets/TopicsPage-DKXlpZl_.js +0 -2
  283. package/dashboard/dist/assets/UserName-zlR1so37.js +0 -2
  284. package/dashboard/dist/assets/WorkflowExecutionPage-BMNIxeJB.js +0 -2
  285. package/dashboard/dist/assets/WorkflowPill-B5B3yGlh.js +0 -2
  286. package/dashboard/dist/assets/WorkflowsDashboard-BlAPZbQZ.js +0 -2
  287. package/dashboard/dist/assets/WorkflowsOverview-NnPi6rwS.js +0 -2
  288. package/dashboard/dist/assets/YamlWorkflowsPage-C4mZum6x.js +0 -2
  289. package/dashboard/dist/assets/capabilities-DkvRG09b.js +0 -2
  290. package/dashboard/dist/assets/escalation-CfIAIUg2.js +0 -2
  291. package/dashboard/dist/assets/escalation-columns-CLIdxlbe.js +0 -2
  292. package/dashboard/dist/assets/helpers-prGqC38M.js +0 -2
  293. package/dashboard/dist/assets/index-4T7Z_gQ4.js +0 -281
  294. package/dashboard/dist/assets/index-4T7Z_gQ4.js.map +0 -1
  295. package/dashboard/dist/assets/index-BR3SwTNI.js +0 -2
  296. package/dashboard/dist/assets/index-BWKIigEk.js +0 -2
  297. package/dashboard/dist/assets/index-BgVuyWhi.js +0 -15
  298. package/dashboard/dist/assets/index-C0sDEKdo.js +0 -2
  299. package/dashboard/dist/assets/index-C2MJzu6J.js +0 -2
  300. package/dashboard/dist/assets/index-CFoddJDr.js +0 -6
  301. package/dashboard/dist/assets/index-CrMxD5Ib.js +0 -6
  302. package/dashboard/dist/assets/index-CrMxD5Ib.js.map +0 -1
  303. package/dashboard/dist/assets/index-CuY5hPYB.js +0 -2
  304. package/dashboard/dist/assets/index-CwkJBn87.js +0 -2
  305. package/dashboard/dist/assets/index-DeL84Cag.js +0 -2
  306. package/dashboard/dist/assets/index-DqeLbz6j.js +0 -2
  307. package/dashboard/dist/assets/index-P9huxx3-.js +0 -2
  308. package/dashboard/dist/assets/namespaces-sVr5scma.js +0 -2
  309. package/dashboard/dist/assets/topics-DbtPHERP.js +0 -2
  310. package/dashboard/dist/assets/vendor-icons-D8-ZINAH.js.map +0 -1
  311. package/dashboard/dist/assets/vendor-query-DLp59M9_.js +0 -35
  312. package/dashboard/dist/assets/vendor-query-DLp59M9_.js.map +0 -1
  313. package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js +0 -26
  314. package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js.map +0 -1
@@ -7,6 +7,7 @@ exports.uploadFile = uploadFile;
7
7
  exports.generateSignedUrl = generateSignedUrl;
8
8
  const storage_1 = require("../lib/storage");
9
9
  const mime_1 = require("../lib/storage/mime");
10
+ const publish_1 = require("../lib/events/publish");
10
11
  const ALLOWED_EXPIRY = [3600, 21600, 86400, 604800, 2592000]; // 1h, 6h, 24h, 7d, 30d
11
12
  async function browseFiles(input) {
12
13
  try {
@@ -38,6 +39,7 @@ async function deleteFile(input) {
38
39
  if (!result.deleted) {
39
40
  return { status: 404, error: 'File not found' };
40
41
  }
42
+ (0, publish_1.publishFileEvent)({ type: 'file.deleted', path: input.filePath });
41
43
  return { status: 200, data: { deleted: true, path: input.filePath } };
42
44
  }
43
45
  catch (err) {
@@ -48,6 +50,12 @@ async function uploadFile(input) {
48
50
  try {
49
51
  const result = await (0, storage_1.getStorageBackend)().write(input.path, input.buffer);
50
52
  const contentType = (0, mime_1.mimeFromPath)(input.path);
53
+ (0, publish_1.publishFileEvent)({
54
+ type: 'file.stored',
55
+ path: input.path,
56
+ size: result.size,
57
+ mime: contentType,
58
+ });
51
59
  return {
52
60
  status: 200,
53
61
  data: { path: input.path, size: result.size, content_type: contentType },
@@ -20,3 +20,8 @@ export declare function updateTopic(input: {
20
20
  export declare function deleteTopic(input: {
21
21
  topic: string;
22
22
  }): Promise<LTApiResult>;
23
+ export declare function publishTopic(input: {
24
+ topic: string;
25
+ data: Record<string, any>;
26
+ source?: string;
27
+ }): Promise<LTApiResult>;
@@ -38,7 +38,9 @@ exports.getTopic = getTopic;
38
38
  exports.createTopic = createTopic;
39
39
  exports.updateTopic = updateTopic;
40
40
  exports.deleteTopic = deleteTopic;
41
+ exports.publishTopic = publishTopic;
41
42
  const topicService = __importStar(require("../services/topics"));
43
+ const events_1 = require("../lib/events");
42
44
  async function listTopics(input) {
43
45
  try {
44
46
  const result = await topicService.listTopics(input);
@@ -102,3 +104,21 @@ async function deleteTopic(input) {
102
104
  return { status: 500, error: err.message };
103
105
  }
104
106
  }
107
+ async function publishTopic(input) {
108
+ try {
109
+ const event = {
110
+ type: input.topic,
111
+ source: input.source || 'dashboard',
112
+ workflowId: '',
113
+ workflowName: '',
114
+ taskQueue: '',
115
+ data: input.data,
116
+ timestamp: new Date().toISOString(),
117
+ };
118
+ await events_1.eventRegistry.publish(event);
119
+ return { status: 200, data: { published: true, topic: input.topic, timestamp: event.timestamp } };
120
+ }
121
+ catch (err) {
122
+ return { status: 500, error: err.message };
123
+ }
124
+ }
@@ -43,6 +43,7 @@ export declare function createUser(input: {
43
43
  external_id?: string;
44
44
  email?: string;
45
45
  display_name?: string;
46
+ password?: string;
46
47
  roles?: {
47
48
  role: string;
48
49
  type: string;
@@ -65,6 +66,7 @@ export declare function updateUser(input: {
65
66
  id: string;
66
67
  email?: string;
67
68
  display_name?: string;
69
+ password?: string;
68
70
  status?: string;
69
71
  metadata?: Record<string, any>;
70
72
  }): Promise<LTApiResult>;
@@ -111,6 +111,7 @@ async function createUser(input) {
111
111
  external_id: input.external_id,
112
112
  email: input.email,
113
113
  display_name: input.display_name,
114
+ password: input.password,
114
115
  roles: input.roles,
115
116
  metadata: input.metadata,
116
117
  });
package/build/index.js CHANGED
@@ -152,6 +152,14 @@ async function main() {
152
152
  server: {
153
153
  port: config_1.config.PORT,
154
154
  },
155
+ seed: {
156
+ admin: {
157
+ externalId: 'superadmin',
158
+ displayName: 'Super Admin',
159
+ email: 'admin@longtail.local',
160
+ password: 'l0ngt@1l',
161
+ },
162
+ },
155
163
  examples: true,
156
164
  mcp: {
157
165
  server: { enabled: true },
@@ -87,4 +87,16 @@ router.delete('/by-name/:topic', async (req, res) => {
87
87
  const result = await api.deleteTopic({ topic: decodeURIComponent(req.params.topic) });
88
88
  res.status(result.status).json(result.data ?? { error: result.error });
89
89
  });
90
+ /**
91
+ * POST /api/topics/by-name/:topic/publish
92
+ * Publish a test event to the event bus with the given topic and payload.
93
+ */
94
+ router.post('/by-name/:topic/publish', async (req, res) => {
95
+ const result = await api.publishTopic({
96
+ topic: decodeURIComponent(req.params.topic),
97
+ data: req.body.data ?? {},
98
+ source: req.body.source ?? 'dashboard',
99
+ });
100
+ res.status(result.status).json(result.data ?? { error: result.error });
101
+ });
90
102
  exports.default = router;
@@ -34,6 +34,15 @@ declare class AgentTriggerRegistry {
34
34
  * Shallow key-value match: every key in filter must match the corresponding
35
35
  * key in event.data. Missing keys in event.data fail the match.
36
36
  */
37
+ /**
38
+ * Match event.data against a filter object.
39
+ *
40
+ * Supports:
41
+ * - Equality: { "extension": "png" }
42
+ * - Negation: { "extension": { "$ne": "png" } }
43
+ * - In-list: { "extension": { "$in": ["png", "jpg"] } }
44
+ * - Exists: { "trace_id": { "$exists": true } }
45
+ */
37
46
  private matchesFilter;
38
47
  /**
39
48
  * Deterministic workflow ID derived from the subscription + event.
@@ -198,11 +198,34 @@ class AgentTriggerRegistry {
198
198
  * Shallow key-value match: every key in filter must match the corresponding
199
199
  * key in event.data. Missing keys in event.data fail the match.
200
200
  */
201
+ /**
202
+ * Match event.data against a filter object.
203
+ *
204
+ * Supports:
205
+ * - Equality: { "extension": "png" }
206
+ * - Negation: { "extension": { "$ne": "png" } }
207
+ * - In-list: { "extension": { "$in": ["png", "jpg"] } }
208
+ * - Exists: { "trace_id": { "$exists": true } }
209
+ */
201
210
  matchesFilter(event, filter) {
202
211
  const data = event.data ?? {};
203
212
  for (const [key, expected] of Object.entries(filter)) {
204
- if (data[key] !== expected)
205
- return false;
213
+ const actual = data[key];
214
+ if (expected && typeof expected === 'object' && !Array.isArray(expected)) {
215
+ if ('$ne' in expected && actual === expected.$ne)
216
+ return false;
217
+ if ('$in' in expected && !expected.$in.includes(actual))
218
+ return false;
219
+ if ('$exists' in expected) {
220
+ const exists = actual !== undefined && actual !== null;
221
+ if (expected.$exists !== exists)
222
+ return false;
223
+ }
224
+ }
225
+ else {
226
+ if (actual !== expected)
227
+ return false;
228
+ }
206
229
  }
207
230
  return true;
208
231
  }
@@ -98,6 +98,10 @@ async function updateUser(id, input) {
98
98
  sets.push(`status = $${idx++}`);
99
99
  values.push(input.status);
100
100
  }
101
+ if (input.password !== undefined) {
102
+ sets.push(`password_hash = $${idx++}`);
103
+ values.push(await bcryptjs_1.default.hash(input.password, 10));
104
+ }
101
105
  if (input.metadata !== undefined) {
102
106
  sets.push(`metadata = $${idx++}`);
103
107
  values.push(JSON.stringify(input.metadata));
@@ -3,3 +3,4 @@ export { createUser, getUser, getUserByExternalId, getUserByEmail, updateUser, d
3
3
  export { isValidRoleType, addUserRole, removeUserRole, getUserRoles, hasRole, hasRoleType, } from './roles';
4
4
  export { isSuperAdmin, isGroupAdmin, canManageRole } from './rbac';
5
5
  export { verifyPassword } from './auth';
6
+ export { seedAdmin } from './seed-admin';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.verifyPassword = exports.canManageRole = exports.isGroupAdmin = exports.isSuperAdmin = exports.hasRoleType = exports.hasRole = exports.getUserRoles = exports.removeUserRole = exports.addUserRole = exports.isValidRoleType = exports.listUsers = exports.deleteUser = exports.updateUser = exports.getUserByEmail = exports.getUserByExternalId = exports.getUser = exports.createUser = exports.VALID_ROLE_TYPES = void 0;
3
+ exports.seedAdmin = exports.verifyPassword = exports.canManageRole = exports.isGroupAdmin = exports.isSuperAdmin = exports.hasRoleType = exports.hasRole = exports.getUserRoles = exports.removeUserRole = exports.addUserRole = exports.isValidRoleType = exports.listUsers = exports.deleteUser = exports.updateUser = exports.getUserByEmail = exports.getUserByExternalId = exports.getUser = exports.createUser = exports.VALID_ROLE_TYPES = void 0;
4
4
  var types_1 = require("./types");
5
5
  Object.defineProperty(exports, "VALID_ROLE_TYPES", { enumerable: true, get: function () { return types_1.VALID_ROLE_TYPES; } });
6
6
  var crud_1 = require("./crud");
@@ -24,3 +24,5 @@ Object.defineProperty(exports, "isGroupAdmin", { enumerable: true, get: function
24
24
  Object.defineProperty(exports, "canManageRole", { enumerable: true, get: function () { return rbac_1.canManageRole; } });
25
25
  var auth_1 = require("./auth");
26
26
  Object.defineProperty(exports, "verifyPassword", { enumerable: true, get: function () { return auth_1.verifyPassword; } });
27
+ var seed_admin_1 = require("./seed-admin");
28
+ Object.defineProperty(exports, "seedAdmin", { enumerable: true, get: function () { return seed_admin_1.seedAdmin; } });
@@ -0,0 +1,13 @@
1
+ export interface SeedAdminInput {
2
+ externalId: string;
3
+ displayName?: string;
4
+ email?: string;
5
+ password?: string;
6
+ }
7
+ /**
8
+ * Seed a superadmin user. Idempotent — skips creation if the user
9
+ * already exists, but ensures the superadmin role is present.
10
+ *
11
+ * Returns the user's UUID so callers can pass it to `createClient()`.
12
+ */
13
+ export declare function seedAdmin(input: SeedAdminInput): Promise<string>;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.seedAdmin = seedAdmin;
4
+ const logger_1 = require("../../lib/logger");
5
+ const role_1 = require("../role");
6
+ const crud_1 = require("./crud");
7
+ const roles_1 = require("./roles");
8
+ /**
9
+ * Seed a superadmin user. Idempotent — skips creation if the user
10
+ * already exists, but ensures the superadmin role is present.
11
+ *
12
+ * Returns the user's UUID so callers can pass it to `createClient()`.
13
+ */
14
+ async function seedAdmin(input) {
15
+ const { externalId, displayName, email, password } = input;
16
+ // Ensure the superadmin role exists
17
+ try {
18
+ await (0, role_1.createRole)('superadmin');
19
+ }
20
+ catch { /* ON CONFLICT DO NOTHING */ }
21
+ const existing = await (0, crud_1.getUserByExternalId)(externalId);
22
+ if (existing) {
23
+ // Ensure existing user has the superadmin role
24
+ const roles = await (0, roles_1.getUserRoles)(existing.id);
25
+ const hasSuperadmin = roles.some((r) => r.role === 'superadmin' && r.type === 'superadmin');
26
+ if (!hasSuperadmin) {
27
+ await (0, roles_1.addUserRole)(existing.id, 'superadmin', 'superadmin');
28
+ logger_1.loggerRegistry.info(`[seed-admin] granted superadmin role to ${externalId}`);
29
+ }
30
+ logger_1.loggerRegistry.info(`[seed-admin] ${externalId} already exists, skipping creation`);
31
+ return existing.id;
32
+ }
33
+ const user = await (0, crud_1.createUser)({
34
+ external_id: externalId,
35
+ email: email || undefined,
36
+ display_name: displayName || externalId,
37
+ password: password || undefined,
38
+ roles: [{ role: 'superadmin', type: 'superadmin' }],
39
+ });
40
+ logger_1.loggerRegistry.info(`[seed-admin] created superadmin user: ${externalId}`);
41
+ return user.id;
42
+ }
@@ -18,6 +18,7 @@ export interface CreateUserInput {
18
18
  export interface UpdateUserInput {
19
19
  email?: string;
20
20
  display_name?: string;
21
+ password?: string;
21
22
  status?: LTUserStatus;
22
23
  metadata?: Record<string, any>;
23
24
  }
@@ -67,7 +67,7 @@ async function start(startConfig) {
67
67
  logger_1.loggerRegistry.info('[long-tail] starting...');
68
68
  // 4-5. Collect workers, run migrations, start workers, seed data
69
69
  const { workers, builtinMcpServerFactories } = await (0, workers_1.collectWorkers)(startConfig);
70
- await (0, workers_1.startWorkers)(startConfig, workers, builtinMcpServerFactories);
70
+ const { adminUserId } = await (0, workers_1.startWorkers)(startConfig, workers, builtinMcpServerFactories);
71
71
  // 6. Start embedded server (if enabled)
72
72
  const serverEnabled = startConfig.server?.enabled !== false;
73
73
  let httpServer = null;
@@ -107,5 +107,5 @@ async function start(startConfig) {
107
107
  await hotmesh_1.Durable.shutdown();
108
108
  logger_1.loggerRegistry.info('[long-tail] shutdown complete');
109
109
  };
110
- return { client, shutdown };
110
+ return { client, shutdown, adminUserId };
111
111
  }
@@ -26,5 +26,7 @@ export declare function collectWorkers(startConfig: LTStartConfig): Promise<{
26
26
  * Run database migrations, start all workers, connect adapters,
27
27
  * register MCP server factories, and seed data.
28
28
  */
29
- export declare function startWorkers(startConfig: LTStartConfig, workers: WorkerEntry[], builtinMcpServerFactories: Record<string, any>): Promise<void>;
29
+ export declare function startWorkers(startConfig: LTStartConfig, workers: WorkerEntry[], builtinMcpServerFactories: Record<string, any>): Promise<{
30
+ adminUserId?: string;
31
+ }>;
30
32
  export {};
@@ -102,6 +102,15 @@ async function startWorkers(startConfig, workers, builtinMcpServerFactories) {
102
102
  // Run migrations
103
103
  logger_1.loggerRegistry.info('[long-tail] running migrations...');
104
104
  await (0, migrate_1.migrate)();
105
+ // Seed admin user from config (idempotent, runs before workers)
106
+ let adminUserId;
107
+ if (startConfig.seed?.admin) {
108
+ const { seedAdmin } = await Promise.resolve().then(() => __importStar(require('../services/user/seed-admin')));
109
+ adminUserId = await seedAdmin(startConfig.seed.admin).catch((err) => {
110
+ logger_1.loggerRegistry.warn(`[long-tail] seed admin error: ${err.message}`);
111
+ return undefined;
112
+ });
113
+ }
105
114
  const connection = buildConnection();
106
115
  // Readonly mode: all user-provided workers are observers — skip crons, triggers, and agent seeding.
107
116
  // System workers (mcpQuery, etc.) are always added by collectWorkers, so check the original config.
@@ -327,4 +336,5 @@ async function startWorkers(startConfig, workers, builtinMcpServerFactories) {
327
336
  seedExamples(seedClient).catch((err) => logger_1.loggerRegistry.warn(`[long-tail] seed error: ${err.message}`));
328
337
  }, 2000);
329
338
  }
339
+ return { adminUserId };
330
340
  }
@@ -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/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/capability-invoke/activities.ts","../system/workflows/capability-invoke/index.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/seed-admin.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/capability-invoke/activities.ts","../system/workflows/capability-invoke/index.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"}
@@ -227,6 +227,42 @@ export interface LTStartConfig {
227
227
  strategy?: 'default' | 'mcp';
228
228
  adapter?: LTEscalationStrategy;
229
229
  };
230
+ /**
231
+ * Seed data applied after migrations, before workers start.
232
+ *
233
+ * `admin` creates a superadmin user on first boot (idempotent).
234
+ * The seeded user's UUID is returned as `LTInstance.adminUserId`
235
+ * so callers can pass it directly to `createClient()`.
236
+ *
237
+ * @example
238
+ * ```typescript
239
+ * const lt = await start({
240
+ * database: { connectionString: dbUrl },
241
+ * seed: {
242
+ * admin: {
243
+ * externalId: 'system',
244
+ * displayName: 'System',
245
+ * email: 'system@app.internal',
246
+ * },
247
+ * },
248
+ * workers: [...],
249
+ * });
250
+ *
251
+ * const client = createClient({ auth: { userId: lt.adminUserId } });
252
+ * ```
253
+ */
254
+ seed?: {
255
+ admin?: {
256
+ /** Unique external identifier for the admin user. */
257
+ externalId: string;
258
+ /** Display name. Defaults to externalId if omitted. */
259
+ displayName?: string;
260
+ /** Email address. Optional. */
261
+ email?: string;
262
+ /** Initial password. Optional — omit for service accounts that never log in. */
263
+ password?: string;
264
+ };
265
+ };
230
266
  /**
231
267
  * Load example workflows and seed sample data on startup.
232
268
  * When `true`, appends the built-in example workers and starts
@@ -267,4 +303,9 @@ export interface LTInstance {
267
303
  client: any;
268
304
  /** Graceful shutdown — stops workers, server, and adapters. */
269
305
  shutdown: () => Promise<void>;
306
+ /**
307
+ * UUID of the seeded admin user (when `seed.admin` was provided).
308
+ * Pass to `createClient({ auth: { userId: adminUserId } })`.
309
+ */
310
+ adminUserId?: string;
270
311
  }
@@ -0,0 +1,2 @@
1
+ import{j as o}from"./vendor-query-B2UbickB.js";import{c as n}from"./tasks-CI3qsHdP.js";import{r as m}from"./index-B7Vxutyl.js";import{f as c}from"./useEventHooks-DpvfSw9p.js";import{u}from"./mcp-J_cDlKuA.js";import{P as d}from"./PageHeaderWithStats-DQmNXYcG.js";import"./vendor-react-CX88sFS5.js";import"./vendor-icons-5gSix3t2.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-qZYNzvw8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdminDashboard-ntLz5Pro.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-qZYNzvw8.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"}