@hotmeshio/long-tail 0.1.3 → 0.1.5

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 (615) hide show
  1. package/README.md +118 -173
  2. package/build/examples/seed.js +1 -1
  3. package/build/examples/workflows/basic-echo/activities.d.ts +2 -2
  4. package/build/examples/workflows/basic-echo/activities.js +7 -7
  5. package/build/examples/workflows/basic-echo/index.js +1 -1
  6. package/build/examples/workflows/kitchen-sink/index.js +2 -2
  7. package/build/index.d.ts +12 -10
  8. package/build/index.js +15 -12
  9. package/build/lib/db/index.d.ts +18 -0
  10. package/build/{services → lib}/db/index.js +9 -0
  11. package/build/{services → lib}/db/migrate.js +3 -3
  12. package/build/{services → lib}/telemetry/honeycomb.d.ts +2 -2
  13. package/build/{services → lib}/telemetry/honeycomb.js +2 -2
  14. package/build/modules/defaults.d.ts +2 -0
  15. package/build/modules/defaults.js +3 -1
  16. package/build/routes/controlplane.js +1 -1
  17. package/build/routes/dba.js +4 -0
  18. package/build/routes/docs.d.ts +2 -0
  19. package/build/routes/docs.js +87 -0
  20. package/build/routes/escalations/bulk.js +120 -202
  21. package/build/routes/escalations/resolve.js +1 -1
  22. package/build/routes/escalations/single.js +1 -1
  23. package/build/routes/files.js +1 -1
  24. package/build/routes/index.js +2 -0
  25. package/build/routes/insight.js +2 -1
  26. package/build/routes/mcp.js +3 -2
  27. package/build/routes/oauth.js +1 -1
  28. package/build/routes/settings.js +4 -4
  29. package/build/routes/workflows/discovery.js +3 -3
  30. package/build/routes/workflows/invocation.js +1 -1
  31. package/build/routes/yaml-workflows/crud.js +1 -1
  32. package/build/routes/yaml-workflows/deployment.js +25 -0
  33. package/build/services/auth/bot-api-key.js +1 -1
  34. package/build/services/auth/index.d.ts +4 -0
  35. package/build/services/auth/index.js +17 -0
  36. package/build/services/auth/service-token.js +1 -1
  37. package/build/services/config/provider.js +1 -1
  38. package/build/services/config/read.js +1 -1
  39. package/build/services/config/write.js +1 -1
  40. package/build/services/controlplane/index.js +3 -4
  41. package/build/services/controlplane/quorum-bridge.js +2 -2
  42. package/build/services/cron/index.js +4 -5
  43. package/build/services/dba.d.ts +4 -0
  44. package/build/services/dba.js +3 -6
  45. package/build/services/escalation/bulk.js +1 -1
  46. package/build/services/escalation/crud.js +1 -1
  47. package/build/services/escalation/queries.js +1 -1
  48. package/build/services/export/client.js +2 -5
  49. package/build/services/export/index.js +14 -2
  50. package/build/services/hotmesh-utils.js +1 -1
  51. package/build/services/iam/bots.js +6 -12
  52. package/build/services/iam/context.d.ts +1 -1
  53. package/build/services/iam/context.js +5 -5
  54. package/build/services/iam/credentials.js +1 -1
  55. package/build/services/iam/ephemeral.js +8 -15
  56. package/build/services/iam/principal.js +3 -10
  57. package/build/services/iam/resolve.js +1 -1
  58. package/build/services/iam/sql.d.ts +10 -0
  59. package/build/services/iam/sql.js +42 -0
  60. package/build/services/insight/index.d.ts +1 -0
  61. package/build/services/insight/index.js +4 -6
  62. package/build/services/interceptor/activities/escalation.js +1 -1
  63. package/build/services/interceptor/activities/task.js +9 -6
  64. package/build/services/interceptor/activities/workflow.js +4 -5
  65. package/build/services/interceptor/activity-interceptor.d.ts +1 -1
  66. package/build/services/interceptor/activity-interceptor.js +5 -5
  67. package/build/services/interceptor/completion.js +1 -1
  68. package/build/services/interceptor/escalation.js +1 -1
  69. package/build/services/interceptor/index.js +4 -4
  70. package/build/services/interceptor/lifecycle.js +1 -1
  71. package/build/services/maintenance/index.js +4 -5
  72. package/build/services/mcp/adapter.js +1 -16
  73. package/build/services/mcp/client/connection.d.ts +1 -1
  74. package/build/services/mcp/client/connection.js +2 -2
  75. package/build/services/mcp/client/tools.js +1 -1
  76. package/build/services/mcp/db-server/index.js +1 -1
  77. package/build/services/mcp/db-server/tools.js +17 -4
  78. package/build/services/mcp/db.js +1 -1
  79. package/build/services/mcp/playwright-server/index.js +1 -1
  80. package/build/services/mcp/playwright-server/lifecycle.js +1 -1
  81. package/build/services/mcp/playwright-server/schemas.d.ts +2 -2
  82. package/build/services/mcp/playwright-server/tools.js +1 -1
  83. package/build/services/mcp/register-tool.d.ts +11 -0
  84. package/build/services/mcp/register-tool.js +15 -0
  85. package/build/services/mcp/server.js +1 -1
  86. package/build/services/mcp/sql.d.ts +6 -0
  87. package/build/services/mcp/sql.js +34 -1
  88. package/build/services/mcp/workflow-compiler-server.js +1 -1
  89. package/build/services/mcp/workflow-server.js +1 -1
  90. package/build/services/mcp-runs/execution-builder.js +8 -6
  91. package/build/services/mcp-runs/queries.js +2 -2
  92. package/build/services/mcp-runs/sql.d.ts +4 -1
  93. package/build/services/mcp-runs/sql.js +23 -2
  94. package/build/services/namespace/index.js +1 -1
  95. package/build/services/oauth/db.js +9 -37
  96. package/build/services/oauth/index.js +1 -1
  97. package/build/services/oauth/providers/registry.js +1 -1
  98. package/build/services/oauth/sql.d.ts +7 -0
  99. package/build/services/oauth/sql.js +32 -0
  100. package/build/services/orchestrator/index.js +3 -3
  101. package/build/services/role/index.js +1 -1
  102. package/build/services/task/crud.js +1 -1
  103. package/build/services/task/process.js +1 -1
  104. package/build/services/task/resolve.js +1 -1
  105. package/build/services/user/auth.js +1 -1
  106. package/build/services/user/crud.js +1 -1
  107. package/build/services/user/rbac.js +1 -1
  108. package/build/services/user/roles.js +1 -1
  109. package/build/services/user/sql.d.ts +2 -0
  110. package/build/services/user/sql.js +3 -1
  111. package/build/services/yaml-workflow/db-utils.js +1 -1
  112. package/build/services/yaml-workflow/db.js +1 -1
  113. package/build/services/yaml-workflow/deployer-helpers.js +1 -1
  114. package/build/services/yaml-workflow/deployer.js +4 -4
  115. package/build/services/yaml-workflow/generator.js +1 -1
  116. package/build/services/yaml-workflow/input-analyzer-helpers.d.ts +6 -0
  117. package/build/services/yaml-workflow/input-analyzer-helpers.js +36 -7
  118. package/build/services/yaml-workflow/input-analyzer.js +16 -3
  119. package/build/services/yaml-workflow/pipeline/analyze.js +1 -1
  120. package/build/services/yaml-workflow/pipeline/build/dag.js +10 -5
  121. package/build/services/yaml-workflow/pipeline/compile/llm-call.js +1 -1
  122. package/build/services/yaml-workflow/pipeline/extract.js +5 -3
  123. package/build/services/yaml-workflow/pipeline/index.d.ts +5 -0
  124. package/build/services/yaml-workflow/pipeline/index.js +22 -0
  125. package/build/services/yaml-workflow/pipeline/validate.js +2 -2
  126. package/build/services/yaml-workflow/workers/callbacks.js +1 -1
  127. package/build/services/yaml-workflow/workers/events.js +2 -2
  128. package/build/services/yaml-workflow/workers/register.js +8 -8
  129. package/build/start/adapters.js +7 -7
  130. package/build/start/index.js +4 -4
  131. package/build/start/server.js +1 -1
  132. package/build/start/workers.d.ts +1 -2
  133. package/build/start/workers.js +8 -7
  134. package/build/system/activities/claude-code.js +1 -1
  135. package/build/system/activities/file-storage.js +1 -1
  136. package/build/system/activities/knowledge.d.ts +58 -0
  137. package/build/system/activities/knowledge.js +128 -0
  138. package/build/system/activities/sql.d.ts +9 -0
  139. package/build/system/activities/sql.js +41 -0
  140. package/build/system/activities/triage/context.js +1 -1
  141. package/build/system/activities/triage/discovery.d.ts +2 -14
  142. package/build/system/activities/triage/discovery.js +5 -161
  143. package/build/system/activities/triage/llm.d.ts +1 -8
  144. package/build/system/activities/triage/llm.js +2 -28
  145. package/build/system/activities/triage/tools.d.ts +1 -17
  146. package/build/system/activities/triage/tools.js +8 -167
  147. package/build/system/index.js +5 -4
  148. package/build/system/mcp-servers/admin/escalations.d.ts +5 -0
  149. package/build/system/mcp-servers/admin/escalations.js +149 -0
  150. package/build/system/mcp-servers/admin/index.d.ts +31 -0
  151. package/build/system/mcp-servers/admin/index.js +80 -0
  152. package/build/system/mcp-servers/admin/maintenance.d.ts +5 -0
  153. package/build/system/mcp-servers/admin/maintenance.js +58 -0
  154. package/build/system/mcp-servers/admin/mcp-servers.d.ts +5 -0
  155. package/build/system/mcp-servers/admin/mcp-servers.js +146 -0
  156. package/build/system/mcp-servers/admin/schemas.d.ts +411 -0
  157. package/build/system/mcp-servers/admin/schemas.js +177 -0
  158. package/build/system/mcp-servers/admin/tasks.d.ts +5 -0
  159. package/build/system/mcp-servers/admin/tasks.js +112 -0
  160. package/build/system/mcp-servers/admin/users.d.ts +5 -0
  161. package/build/system/mcp-servers/admin/users.js +167 -0
  162. package/build/system/mcp-servers/admin/workflow-config.d.ts +9 -0
  163. package/build/system/mcp-servers/admin/workflow-config.js +118 -0
  164. package/build/system/mcp-servers/admin/workflows.d.ts +6 -0
  165. package/build/system/mcp-servers/admin/workflows.js +138 -0
  166. package/build/system/mcp-servers/admin/yaml-workflows.d.ts +8 -0
  167. package/build/system/mcp-servers/admin/yaml-workflows.js +237 -0
  168. package/build/system/mcp-servers/claude-code.js +1 -1
  169. package/build/system/mcp-servers/db-query/index.js +1 -1
  170. package/build/system/mcp-servers/db-query/tools.js +17 -4
  171. package/build/system/mcp-servers/docs.d.ts +5 -0
  172. package/build/system/mcp-servers/docs.js +147 -0
  173. package/build/system/mcp-servers/file-storage.js +1 -1
  174. package/build/system/mcp-servers/http-fetch.js +1 -1
  175. package/build/system/mcp-servers/human-queue.js +1 -1
  176. package/build/system/mcp-servers/knowledge.d.ts +4 -0
  177. package/build/system/mcp-servers/knowledge.js +137 -0
  178. package/build/system/mcp-servers/oauth.js +1 -1
  179. package/build/system/mcp-servers/playwright/browser-lifecycle.js +1 -1
  180. package/build/system/mcp-servers/playwright/index.js +1 -1
  181. package/build/system/mcp-servers/playwright/schemas.d.ts +19 -8
  182. package/build/system/mcp-servers/playwright/schemas.js +3 -0
  183. package/build/system/mcp-servers/playwright/tools-navigation.js +22 -9
  184. package/build/system/mcp-servers/playwright/tools-run-script.js +20 -3
  185. package/build/system/mcp-servers/playwright/vision-helper.d.ts +12 -0
  186. package/build/system/mcp-servers/playwright/vision-helper.js +81 -0
  187. package/build/system/mcp-servers/playwright-cli/helpers.js +2 -2
  188. package/build/system/mcp-servers/playwright-cli/index.js +1 -1
  189. package/build/system/mcp-servers/playwright-cli/schemas.d.ts +28 -28
  190. package/build/system/mcp-servers/playwright-cli/schemas.js +1 -1
  191. package/build/system/mcp-servers/playwright-cli/tools-auth.js +1 -1
  192. package/build/system/mcp-servers/playwright-cli/tools-capture.js +4 -2
  193. package/build/system/mcp-servers/translation.d.ts +14 -0
  194. package/build/system/mcp-servers/translation.js +130 -0
  195. package/build/system/mcp-servers/vision-prompts.d.ts +2 -0
  196. package/build/system/mcp-servers/vision-prompts.js +9 -0
  197. package/build/system/mcp-servers/{document-vision.d.ts → vision.d.ts} +3 -4
  198. package/build/system/mcp-servers/vision.js +221 -0
  199. package/build/system/mcp-servers/workflow-compiler.js +1 -1
  200. package/build/system/mcp-servers/workflow.js +1 -1
  201. package/build/system/seed/index.js +13 -2
  202. package/build/system/seed/server-definitions.d.ts +1954 -322
  203. package/build/system/seed/server-definitions.js +65 -34
  204. package/build/system/seed/tool-manifests-admin.d.ts +1645 -0
  205. package/build/system/seed/tool-manifests-admin.js +45 -0
  206. package/build/system/seed/tool-manifests-browser.d.ts +1 -1
  207. package/build/system/seed/tool-manifests-browser.js +3 -3
  208. package/build/system/seed/tool-manifests-data.d.ts +62 -21
  209. package/build/system/seed/tool-manifests-data.js +55 -17
  210. package/build/system/seed/tool-manifests-knowledge.d.ts +171 -0
  211. package/build/system/seed/tool-manifests-knowledge.js +94 -0
  212. package/build/system/workflows/mcp-deterministic/index.js +1 -1
  213. package/build/system/workflows/mcp-query/activities/discovery.d.ts +2 -20
  214. package/build/system/workflows/mcp-query/activities/discovery.js +5 -163
  215. package/build/system/workflows/mcp-query/activities/llm.d.ts +1 -7
  216. package/build/system/workflows/mcp-query/activities/llm.js +2 -27
  217. package/build/system/workflows/mcp-query/activities/tool-executor.d.ts +0 -4
  218. package/build/system/workflows/mcp-query/activities/tool-executor.js +2 -106
  219. package/build/system/workflows/mcp-query/activities/tool-loader.d.ts +0 -9
  220. package/build/system/workflows/mcp-query/activities/tool-loader.js +2 -87
  221. package/build/system/workflows/mcp-query/index.js +55 -5
  222. package/build/system/workflows/mcp-query/prompts.d.ts +1 -2
  223. package/build/system/workflows/mcp-query/prompts.js +5 -32
  224. package/build/system/workflows/mcp-query/strategy-advisors.d.ts +3 -14
  225. package/build/system/workflows/mcp-query/strategy-advisors.js +4 -107
  226. package/build/system/workflows/mcp-query/types.d.ts +2 -10
  227. package/build/system/workflows/mcp-query/types.js +0 -1
  228. package/build/system/workflows/mcp-query-router/index.js +1 -1
  229. package/build/system/workflows/mcp-triage/index.d.ts +2 -2
  230. package/build/system/workflows/mcp-triage/index.js +39 -7
  231. package/build/system/workflows/mcp-triage/prompts.js +7 -14
  232. package/build/system/workflows/mcp-triage-deterministic/index.js +1 -1
  233. package/build/system/workflows/mcp-triage-router/index.js +1 -1
  234. package/build/system/workflows/shared/discovery.d.ts +35 -0
  235. package/build/system/workflows/shared/discovery.js +175 -0
  236. package/build/system/workflows/shared/index.d.ts +7 -0
  237. package/build/system/workflows/shared/index.js +18 -0
  238. package/build/system/workflows/shared/llm-caller.d.ts +8 -0
  239. package/build/system/workflows/shared/llm-caller.js +31 -0
  240. package/build/system/workflows/shared/prompts.d.ts +2 -0
  241. package/build/system/workflows/shared/prompts.js +32 -0
  242. package/build/system/workflows/shared/strategy-advisors.d.ts +14 -0
  243. package/build/system/workflows/shared/strategy-advisors.js +109 -0
  244. package/build/system/workflows/shared/tool-executor.d.ts +11 -0
  245. package/build/system/workflows/shared/tool-executor.js +111 -0
  246. package/build/system/workflows/shared/tool-loader.d.ts +19 -0
  247. package/build/system/workflows/shared/tool-loader.js +94 -0
  248. package/build/system/workflows/shared/types.d.ts +9 -0
  249. package/build/system/workflows/shared/types.js +2 -0
  250. package/build/system/workflows/tool-result-guard.d.ts +14 -0
  251. package/build/system/workflows/tool-result-guard.js +78 -0
  252. package/build/tsconfig.tsbuildinfo +1 -1
  253. package/build/types/user.d.ts +2 -0
  254. package/build/vitest.config.d.ts +1 -1
  255. package/build/vitest.integration.config.d.ts +1 -1
  256. package/build/workers/index.js +2 -8
  257. package/dashboard/dist/assets/AdminDashboard-CTyAMUJR.js +2 -0
  258. package/dashboard/dist/assets/AdminDashboard-CTyAMUJR.js.map +1 -0
  259. package/dashboard/dist/assets/AvailableEscalationsPage-BMXV3Q4l.js +2 -0
  260. package/dashboard/dist/assets/AvailableEscalationsPage-BMXV3Q4l.js.map +1 -0
  261. package/dashboard/dist/assets/BotPicker-C51nKFEu.js +2 -0
  262. package/dashboard/dist/assets/{BotPicker-D6FYW1Gt.js.map → BotPicker-C51nKFEu.js.map} +1 -1
  263. package/dashboard/dist/assets/CollapsibleSection-BSyfd8uL.js +2 -0
  264. package/dashboard/dist/assets/{CollapsibleSection-Cxk4wvjT.js.map → CollapsibleSection-BSyfd8uL.js.map} +1 -1
  265. package/dashboard/dist/assets/ConfirmDeleteModal-CBdhia5T.js +2 -0
  266. package/dashboard/dist/assets/{ConfirmDeleteModal-FSXyKjaB.js.map → ConfirmDeleteModal-CBdhia5T.js.map} +1 -1
  267. package/dashboard/dist/assets/CopyableId-dGlewBCS.js +2 -0
  268. package/dashboard/dist/assets/{CopyableId-CBdxWfp8.js.map → CopyableId-dGlewBCS.js.map} +1 -1
  269. package/dashboard/dist/assets/CredentialsPage-CoBNFSAu.js +2 -0
  270. package/dashboard/dist/assets/{CredentialsPage-Ikzsot0w.js.map → CredentialsPage-CoBNFSAu.js.map} +1 -1
  271. package/dashboard/dist/assets/CustomDurationPicker-BataWFj8.js +2 -0
  272. package/dashboard/dist/assets/{CustomDurationPicker-CAninCbl.js.map → CustomDurationPicker-BataWFj8.js.map} +1 -1
  273. package/dashboard/dist/assets/DataTable-B3uf5CCo.js +2 -0
  274. package/dashboard/dist/assets/DataTable-B3uf5CCo.js.map +1 -0
  275. package/dashboard/dist/assets/ElapsedCell-G5oSwTpT.js +2 -0
  276. package/dashboard/dist/assets/ElapsedCell-G5oSwTpT.js.map +1 -0
  277. package/dashboard/dist/assets/EmptyState-BChBJNGS.js +2 -0
  278. package/dashboard/dist/assets/{EmptyState-2CmV-IaS.js.map → EmptyState-BChBJNGS.js.map} +1 -1
  279. package/dashboard/dist/assets/EscalationsOverview-CxUv8xjG.js +2 -0
  280. package/dashboard/dist/assets/{EscalationsOverview-GXYFPASS.js.map → EscalationsOverview-CxUv8xjG.js.map} +1 -1
  281. package/dashboard/dist/assets/EventTable-CVt8B0BZ.js +2 -0
  282. package/dashboard/dist/assets/{EventTable-B01oJf6Y.js.map → EventTable-CVt8B0BZ.js.map} +1 -1
  283. package/dashboard/dist/assets/FilterBar-CShf0oe7.js +2 -0
  284. package/dashboard/dist/assets/{FilterBar-Ck4K4rzu.js.map → FilterBar-CShf0oe7.js.map} +1 -1
  285. package/dashboard/dist/assets/McpOverview-CbaZRnJl.js +2 -0
  286. package/dashboard/dist/assets/{McpOverview-JkvRcX2e.js.map → McpOverview-CbaZRnJl.js.map} +1 -1
  287. package/dashboard/dist/assets/McpQueryDetailPage-CGoR9XK6.js +5 -0
  288. package/dashboard/dist/assets/McpQueryDetailPage-CGoR9XK6.js.map +1 -0
  289. package/dashboard/dist/assets/McpQueryPage-BjXoYQuU.js +2 -0
  290. package/dashboard/dist/assets/McpQueryPage-BjXoYQuU.js.map +1 -0
  291. package/dashboard/dist/assets/McpRunDetailPage-DLkA5Aar.js +2 -0
  292. package/dashboard/dist/assets/McpRunDetailPage-DLkA5Aar.js.map +1 -0
  293. package/dashboard/dist/assets/McpRunsPage-DCh9n11D.js +2 -0
  294. package/dashboard/dist/assets/McpRunsPage-DCh9n11D.js.map +1 -0
  295. package/dashboard/dist/assets/Modal-CI5RBPOQ.js +2 -0
  296. package/dashboard/dist/assets/{Modal-B4rbIVAn.js.map → Modal-CI5RBPOQ.js.map} +1 -1
  297. package/dashboard/dist/assets/OperatorDashboard-Dc80suXd.js +2 -0
  298. package/dashboard/dist/assets/OperatorDashboard-Dc80suXd.js.map +1 -0
  299. package/dashboard/dist/assets/PageHeader-SMD9qtOO.js +2 -0
  300. package/dashboard/dist/assets/PageHeader-SMD9qtOO.js.map +1 -0
  301. package/dashboard/dist/assets/PageHeaderWithStats-TikLQsTp.js +2 -0
  302. package/dashboard/dist/assets/PageHeaderWithStats-TikLQsTp.js.map +1 -0
  303. package/dashboard/dist/assets/PriorityBadge-CQ0EsLTA.js +2 -0
  304. package/dashboard/dist/assets/{PriorityBadge-DfQY9St9.js.map → PriorityBadge-CQ0EsLTA.js.map} +1 -1
  305. package/dashboard/dist/assets/ProcessDetailPage-B2GKuGzk.js +2 -0
  306. package/dashboard/dist/assets/ProcessDetailPage-B2GKuGzk.js.map +1 -0
  307. package/dashboard/dist/assets/ProcessesListPage-CTjI3Wn6.js +2 -0
  308. package/dashboard/dist/assets/ProcessesListPage-CTjI3Wn6.js.map +1 -0
  309. package/dashboard/dist/assets/RefreshButton-BcQDObrv.js +2 -0
  310. package/dashboard/dist/assets/RefreshButton-BcQDObrv.js.map +1 -0
  311. package/dashboard/dist/assets/RolePill-Crj4TH5p.js +2 -0
  312. package/dashboard/dist/assets/{RolePill-BTPa8L-P.js.map → RolePill-Crj4TH5p.js.map} +1 -1
  313. package/dashboard/dist/assets/RolesPage-C_RInUwS.js +2 -0
  314. package/dashboard/dist/assets/RolesPage-C_RInUwS.js.map +1 -0
  315. package/dashboard/dist/assets/RowActions-Cp5HyK_w.js +2 -0
  316. package/dashboard/dist/assets/{RowActions-Dg-Fsm5O.js.map → RowActions-Cp5HyK_w.js.map} +1 -1
  317. package/dashboard/dist/assets/RunAsSelector-BhyWtofX.js +2 -0
  318. package/dashboard/dist/assets/RunAsSelector-BhyWtofX.js.map +1 -0
  319. package/dashboard/dist/assets/StatCard-BKZLSgNV.js +2 -0
  320. package/dashboard/dist/assets/{StatCard-DlgF0CJC.js.map → StatCard-BKZLSgNV.js.map} +1 -1
  321. package/dashboard/dist/assets/StatusBadge-BYNGGZK5.js +2 -0
  322. package/dashboard/dist/assets/StatusBadge-BYNGGZK5.js.map +1 -0
  323. package/dashboard/dist/assets/StickyPagination-CTosgiU2.js +2 -0
  324. package/dashboard/dist/assets/{StickyPagination-F9FZsRy9.js.map → StickyPagination-CTosgiU2.js.map} +1 -1
  325. package/dashboard/dist/assets/SwimlaneTimeline-ylG5Ps1s.js +2 -0
  326. package/dashboard/dist/assets/SwimlaneTimeline-ylG5Ps1s.js.map +1 -0
  327. package/dashboard/dist/assets/TaskDetailPage-C9pDGdD2.js +2 -0
  328. package/dashboard/dist/assets/TaskDetailPage-C9pDGdD2.js.map +1 -0
  329. package/dashboard/dist/assets/TaskQueuePill-BtJbZTT0.js +2 -0
  330. package/dashboard/dist/assets/{TaskQueuePill-awmtb0qw.js.map → TaskQueuePill-BtJbZTT0.js.map} +1 -1
  331. package/dashboard/dist/assets/TasksListPage-DtFLUEhg.js +2 -0
  332. package/dashboard/dist/assets/{TasksListPage-C_QF23c1.js.map → TasksListPage-DtFLUEhg.js.map} +1 -1
  333. package/dashboard/dist/assets/TimeAgo-WuM6xImZ.js +2 -0
  334. package/dashboard/dist/assets/TimeAgo-WuM6xImZ.js.map +1 -0
  335. package/dashboard/dist/assets/TimestampCell-IVL_-Upy.js +2 -0
  336. package/dashboard/dist/assets/TimestampCell-IVL_-Upy.js.map +1 -0
  337. package/dashboard/dist/assets/UserName-DU9qeg13.js +2 -0
  338. package/dashboard/dist/assets/{UserName-DaP4YAKr.js.map → UserName-DU9qeg13.js.map} +1 -1
  339. package/dashboard/dist/assets/WorkflowExecutionPage-DOocX81f.js +2 -0
  340. package/dashboard/dist/assets/WorkflowExecutionPage-DOocX81f.js.map +1 -0
  341. package/dashboard/dist/assets/WorkflowPill-Diw8iWBP.js +2 -0
  342. package/dashboard/dist/assets/WorkflowPill-Diw8iWBP.js.map +1 -0
  343. package/dashboard/dist/assets/WorkflowsDashboard-DDtUIrTy.js +2 -0
  344. package/dashboard/dist/assets/WorkflowsDashboard-DDtUIrTy.js.map +1 -0
  345. package/dashboard/dist/assets/WorkflowsOverview-CPuvA4t3.js +2 -0
  346. package/dashboard/dist/assets/{WorkflowsOverview-D9OzzQqw.js.map → WorkflowsOverview-CPuvA4t3.js.map} +1 -1
  347. package/dashboard/dist/assets/YamlWorkflowsPage-DlwwkluN.js +2 -0
  348. package/dashboard/dist/assets/YamlWorkflowsPage-DlwwkluN.js.map +1 -0
  349. package/dashboard/dist/assets/{bots-BkKVMbUW.js → bots-BPiZXf2h.js} +2 -2
  350. package/dashboard/dist/assets/{bots-BkKVMbUW.js.map → bots-BPiZXf2h.js.map} +1 -1
  351. package/dashboard/dist/assets/constants-BHkpVaqx.js +2 -0
  352. package/dashboard/dist/assets/constants-BHkpVaqx.js.map +1 -0
  353. package/dashboard/dist/assets/escalation-DTY_OKRh.js +2 -0
  354. package/dashboard/dist/assets/escalation-DTY_OKRh.js.map +1 -0
  355. package/dashboard/dist/assets/escalation-columns-C91fHSkp.js +2 -0
  356. package/dashboard/dist/assets/{escalation-columns-D6aqStaY.js.map → escalation-columns-C91fHSkp.js.map} +1 -1
  357. package/dashboard/dist/assets/helpers-DBUZ9pnG.js +2 -0
  358. package/dashboard/dist/assets/helpers-DBUZ9pnG.js.map +1 -0
  359. package/dashboard/dist/assets/index-BOeA-gfK.js +17 -0
  360. package/dashboard/dist/assets/{index-X85K5bHC.js.map → index-BOeA-gfK.js.map} +1 -1
  361. package/dashboard/dist/assets/index-BZ6K_kmL.js +3 -0
  362. package/dashboard/dist/assets/index-BZ6K_kmL.js.map +1 -0
  363. package/dashboard/dist/assets/index-Bpm0yeoi.js +2 -0
  364. package/dashboard/dist/assets/index-Bpm0yeoi.js.map +1 -0
  365. package/dashboard/dist/assets/index-BtOwLI0K.js +2 -0
  366. package/dashboard/dist/assets/{index-DTPzZr_X.js.map → index-BtOwLI0K.js.map} +1 -1
  367. package/dashboard/dist/assets/index-CBF3ZvRZ.js +6 -0
  368. package/dashboard/dist/assets/index-CBF3ZvRZ.js.map +1 -0
  369. package/dashboard/dist/assets/index-CDWOfCmi.js +2 -0
  370. package/dashboard/dist/assets/index-CDWOfCmi.js.map +1 -0
  371. package/dashboard/dist/assets/index-Ce6sL__n.js +2 -0
  372. package/dashboard/dist/assets/index-Ce6sL__n.js.map +1 -0
  373. package/dashboard/dist/assets/index-DSzSoku1.js +283 -0
  374. package/dashboard/dist/assets/index-DSzSoku1.js.map +1 -0
  375. package/dashboard/dist/assets/index-D_qEAYrg.js +2 -0
  376. package/dashboard/dist/assets/index-D_qEAYrg.js.map +1 -0
  377. package/dashboard/dist/assets/index-gCy9XX3W.css +1 -0
  378. package/dashboard/dist/assets/mcp-BzVpaaKF.js +2 -0
  379. package/dashboard/dist/assets/{mcp-blCW6IL7.js.map → mcp-BzVpaaKF.js.map} +1 -1
  380. package/dashboard/dist/assets/mcp-query-wTuxTTCV.js +2 -0
  381. package/dashboard/dist/assets/mcp-query-wTuxTTCV.js.map +1 -0
  382. package/dashboard/dist/assets/{mcp-runs-ChPbpvXK.js → mcp-runs-DmXYJD19.js} +2 -2
  383. package/dashboard/dist/assets/{mcp-runs-ChPbpvXK.js.map → mcp-runs-DmXYJD19.js.map} +1 -1
  384. package/dashboard/dist/assets/namespaces-DoGa7jc7.js +2 -0
  385. package/dashboard/dist/assets/{namespaces-BgbaC3ow.js.map → namespaces-DoGa7jc7.js.map} +1 -1
  386. package/dashboard/dist/assets/{roles-ZNrqqnQl.js → roles-wCdQ2Z7k.js} +2 -2
  387. package/dashboard/dist/assets/{roles-ZNrqqnQl.js.map → roles-wCdQ2Z7k.js.map} +1 -1
  388. package/dashboard/dist/assets/settings-DDe_L7JT.js +2 -0
  389. package/dashboard/dist/assets/{settings-eBRSE0mQ.js.map → settings-DDe_L7JT.js.map} +1 -1
  390. package/dashboard/dist/assets/tasks-3Hih8Bt7.js +2 -0
  391. package/dashboard/dist/assets/{tasks-tRqClPns.js.map → tasks-3Hih8Bt7.js.map} +1 -1
  392. package/dashboard/dist/assets/{useFilterParams-BaXUAkYK.js → useFilterParams-BUyLHcx_.js} +2 -2
  393. package/dashboard/dist/assets/{useFilterParams-BaXUAkYK.js.map → useFilterParams-BUyLHcx_.js.map} +1 -1
  394. package/dashboard/dist/assets/{useNatsEvents-Xr43X1fG.js → useNatsEvents-DeGKHFTX.js} +2 -2
  395. package/dashboard/dist/assets/{useNatsEvents-Xr43X1fG.js.map → useNatsEvents-DeGKHFTX.js.map} +1 -1
  396. package/dashboard/dist/assets/{useYamlActivityEvents-BO51u8tm.js → useYamlActivityEvents-B5dHec6Y.js} +2 -2
  397. package/dashboard/dist/assets/{useYamlActivityEvents-BO51u8tm.js.map → useYamlActivityEvents-B5dHec6Y.js.map} +1 -1
  398. package/dashboard/dist/assets/{users-tMvNyOo8.js → users-BTagPmGW.js} +2 -2
  399. package/dashboard/dist/assets/{users-tMvNyOo8.js.map → users-BTagPmGW.js.map} +1 -1
  400. package/dashboard/dist/assets/{vendor-icons-ZTAKVwGc.js → vendor-icons-DCLlGYO9.js} +112 -57
  401. package/dashboard/dist/assets/vendor-icons-DCLlGYO9.js.map +1 -0
  402. package/dashboard/dist/assets/vendor-query-DLp59M9_.js +35 -0
  403. package/dashboard/dist/assets/vendor-query-DLp59M9_.js.map +1 -0
  404. package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js +26 -0
  405. package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js.map +1 -0
  406. package/dashboard/dist/assets/{workflows-Cc4VHcrp.js → workflows-B20dR3NE.js} +2 -2
  407. package/dashboard/dist/assets/{workflows-Cc4VHcrp.js.map → workflows-B20dR3NE.js.map} +1 -1
  408. package/dashboard/dist/assets/yaml-workflows-CaLPMQha.js +2 -0
  409. package/dashboard/dist/assets/yaml-workflows-CaLPMQha.js.map +1 -0
  410. package/dashboard/dist/index.html +5 -5
  411. package/docs/api/dba.md +81 -0
  412. package/docs/api/escalations.md +575 -0
  413. package/docs/api/exports.md +170 -0
  414. package/docs/api/maintenance.md +93 -0
  415. package/docs/api/mcp-runs.md +128 -0
  416. package/docs/api/mcp-servers.md +195 -0
  417. package/docs/api/namespaces.md +48 -0
  418. package/docs/api/roles.md +390 -0
  419. package/docs/api/service-accounts.md +188 -0
  420. package/docs/api/settings.md +33 -0
  421. package/docs/api/tasks.md +167 -0
  422. package/docs/api/users.md +180 -0
  423. package/docs/api/workflows.md +616 -0
  424. package/docs/api/yaml-workflows.md +312 -0
  425. package/docs/architecture.md +221 -0
  426. package/docs/auth.md +181 -0
  427. package/docs/cloud.md +272 -0
  428. package/docs/compilation.md +136 -0
  429. package/docs/contributing.md +56 -0
  430. package/docs/dashboard.md +145 -0
  431. package/docs/data.md +478 -0
  432. package/docs/escalation-strategies.md +264 -0
  433. package/docs/events.md +251 -0
  434. package/docs/iam.md +222 -0
  435. package/docs/img/01-login.png +0 -0
  436. package/docs/img/02-dashboard-home.png +0 -0
  437. package/docs/img/03-processes-list.png +0 -0
  438. package/docs/img/04-escalations-list.png +0 -0
  439. package/docs/img/05-mcp-servers.png +0 -0
  440. package/docs/img/06-mcp-pipelines.png +0 -0
  441. package/docs/img/07-workflows-list.png +0 -0
  442. package/docs/img/compilation/01-query-submit.png +0 -0
  443. package/docs/img/compilation/02-mcp-servers.png +0 -0
  444. package/docs/img/compilation/03-query-completed.png +0 -0
  445. package/docs/img/compilation/04-wizard-original.png +0 -0
  446. package/docs/img/compilation/05-wizard-timeline.png +0 -0
  447. package/docs/img/compilation/06-wizard-profile.png +0 -0
  448. package/docs/img/compilation/07-wizard-deploy.png +0 -0
  449. package/docs/img/compilation/08-wizard-test-modal.png +0 -0
  450. package/docs/img/compilation/09-wizard-test-compare.png +0 -0
  451. package/docs/img/compilation/10-wizard-verify.png +0 -0
  452. package/docs/logging.md +110 -0
  453. package/docs/maintenance.md +221 -0
  454. package/docs/mcp.md +715 -0
  455. package/docs/oauth-and-delegation.md +469 -0
  456. package/docs/telemetry.md +144 -0
  457. package/docs/workflows.md +695 -0
  458. package/lib/db/schemas/015_knowledge.sql +23 -0
  459. package/package.json +8 -9
  460. package/build/services/db/index.d.ts +0 -3
  461. package/build/services/mcp/vision-server.d.ts +0 -15
  462. package/build/services/mcp/vision-server.js +0 -214
  463. package/build/system/mcp-servers/document-vision.js +0 -228
  464. package/build/system/mcp-servers/prompts.d.ts +0 -4
  465. package/build/system/mcp-servers/prompts.js +0 -10
  466. package/dashboard/dist/assets/AdminDashboard-jfacvOC7.js +0 -2
  467. package/dashboard/dist/assets/AdminDashboard-jfacvOC7.js.map +0 -1
  468. package/dashboard/dist/assets/AvailableEscalationsPage-BglLDoT8.js +0 -2
  469. package/dashboard/dist/assets/AvailableEscalationsPage-BglLDoT8.js.map +0 -1
  470. package/dashboard/dist/assets/BotPicker-D6FYW1Gt.js +0 -2
  471. package/dashboard/dist/assets/CollapsibleSection-Cxk4wvjT.js +0 -2
  472. package/dashboard/dist/assets/ConfirmDeleteModal-FSXyKjaB.js +0 -2
  473. package/dashboard/dist/assets/CopyableId-CBdxWfp8.js +0 -2
  474. package/dashboard/dist/assets/CredentialsPage-Ikzsot0w.js +0 -2
  475. package/dashboard/dist/assets/CustomDurationPicker-CAninCbl.js +0 -2
  476. package/dashboard/dist/assets/DataTable-BDn1WBHS.js +0 -2
  477. package/dashboard/dist/assets/DataTable-BDn1WBHS.js.map +0 -1
  478. package/dashboard/dist/assets/EmptyState-2CmV-IaS.js +0 -2
  479. package/dashboard/dist/assets/EscalationsOverview-GXYFPASS.js +0 -2
  480. package/dashboard/dist/assets/EventTable-B01oJf6Y.js +0 -2
  481. package/dashboard/dist/assets/Field-DuFBAYhu.js +0 -2
  482. package/dashboard/dist/assets/Field-DuFBAYhu.js.map +0 -1
  483. package/dashboard/dist/assets/FilterBar-Ck4K4rzu.js +0 -2
  484. package/dashboard/dist/assets/McpOverview-JkvRcX2e.js +0 -2
  485. package/dashboard/dist/assets/McpQueryDetailPage-CUMqhQdS.js +0 -2
  486. package/dashboard/dist/assets/McpQueryDetailPage-CUMqhQdS.js.map +0 -1
  487. package/dashboard/dist/assets/McpQueryPage-DRRhw4nN.js +0 -2
  488. package/dashboard/dist/assets/McpQueryPage-DRRhw4nN.js.map +0 -1
  489. package/dashboard/dist/assets/McpRunDetailPage-CmPs5EvE.js +0 -2
  490. package/dashboard/dist/assets/McpRunDetailPage-CmPs5EvE.js.map +0 -1
  491. package/dashboard/dist/assets/McpRunsPage-Dl5Y2u6k.js +0 -2
  492. package/dashboard/dist/assets/McpRunsPage-Dl5Y2u6k.js.map +0 -1
  493. package/dashboard/dist/assets/Modal-B4rbIVAn.js +0 -2
  494. package/dashboard/dist/assets/OperatorDashboard-B56il28q.js +0 -2
  495. package/dashboard/dist/assets/OperatorDashboard-B56il28q.js.map +0 -1
  496. package/dashboard/dist/assets/PageHeader-CpWFly5S.js +0 -2
  497. package/dashboard/dist/assets/PageHeader-CpWFly5S.js.map +0 -1
  498. package/dashboard/dist/assets/PriorityBadge-DfQY9St9.js +0 -2
  499. package/dashboard/dist/assets/ProcessDetailPage-CMLq4M7D.js +0 -2
  500. package/dashboard/dist/assets/ProcessDetailPage-CMLq4M7D.js.map +0 -1
  501. package/dashboard/dist/assets/ProcessesListPage-CZ_HF06v.js +0 -2
  502. package/dashboard/dist/assets/ProcessesListPage-CZ_HF06v.js.map +0 -1
  503. package/dashboard/dist/assets/RolePill-BTPa8L-P.js +0 -2
  504. package/dashboard/dist/assets/RolesPage-9grZW7yR.js +0 -2
  505. package/dashboard/dist/assets/RolesPage-9grZW7yR.js.map +0 -1
  506. package/dashboard/dist/assets/RowActions-Dg-Fsm5O.js +0 -2
  507. package/dashboard/dist/assets/SimpleMarkdown-CBlvaWP4.js +0 -4
  508. package/dashboard/dist/assets/SimpleMarkdown-CBlvaWP4.js.map +0 -1
  509. package/dashboard/dist/assets/StatCard-DlgF0CJC.js +0 -2
  510. package/dashboard/dist/assets/StatusBadge-TlC4jiig.js +0 -2
  511. package/dashboard/dist/assets/StatusBadge-TlC4jiig.js.map +0 -1
  512. package/dashboard/dist/assets/StickyPagination-F9FZsRy9.js +0 -2
  513. package/dashboard/dist/assets/SwimlaneTimeline-7SiwATsZ.js +0 -2
  514. package/dashboard/dist/assets/SwimlaneTimeline-7SiwATsZ.js.map +0 -1
  515. package/dashboard/dist/assets/TaskDetailPage-CbPVTakt.js +0 -2
  516. package/dashboard/dist/assets/TaskDetailPage-CbPVTakt.js.map +0 -1
  517. package/dashboard/dist/assets/TaskQueuePill-awmtb0qw.js +0 -2
  518. package/dashboard/dist/assets/TasksListPage-C_QF23c1.js +0 -2
  519. package/dashboard/dist/assets/TimeAgo-UPG6DoH8.js +0 -2
  520. package/dashboard/dist/assets/TimeAgo-UPG6DoH8.js.map +0 -1
  521. package/dashboard/dist/assets/TimestampCell-DoWMKg6w.js +0 -2
  522. package/dashboard/dist/assets/TimestampCell-DoWMKg6w.js.map +0 -1
  523. package/dashboard/dist/assets/UserName-DaP4YAKr.js +0 -2
  524. package/dashboard/dist/assets/VersionHistory-Bt7WBr6m.js +0 -5
  525. package/dashboard/dist/assets/VersionHistory-Bt7WBr6m.js.map +0 -1
  526. package/dashboard/dist/assets/WorkflowExecutionPage-DjtAQ3hy.js +0 -2
  527. package/dashboard/dist/assets/WorkflowExecutionPage-DjtAQ3hy.js.map +0 -1
  528. package/dashboard/dist/assets/WorkflowPill-CCDSVaQj.js +0 -2
  529. package/dashboard/dist/assets/WorkflowPill-CCDSVaQj.js.map +0 -1
  530. package/dashboard/dist/assets/WorkflowsDashboard-D8z9uBNB.js +0 -2
  531. package/dashboard/dist/assets/WorkflowsDashboard-D8z9uBNB.js.map +0 -1
  532. package/dashboard/dist/assets/WorkflowsOverview-D9OzzQqw.js +0 -2
  533. package/dashboard/dist/assets/YamlWorkflowDetailPage-DrDvvP62.js +0 -3
  534. package/dashboard/dist/assets/YamlWorkflowDetailPage-DrDvvP62.js.map +0 -1
  535. package/dashboard/dist/assets/YamlWorkflowsPage-COqiNCQK.js +0 -2
  536. package/dashboard/dist/assets/YamlWorkflowsPage-COqiNCQK.js.map +0 -1
  537. package/dashboard/dist/assets/constants-CgaZfe5d.js +0 -2
  538. package/dashboard/dist/assets/constants-CgaZfe5d.js.map +0 -1
  539. package/dashboard/dist/assets/escalation-columns-D6aqStaY.js +0 -2
  540. package/dashboard/dist/assets/escalation-qalymbKB.js +0 -2
  541. package/dashboard/dist/assets/escalation-qalymbKB.js.map +0 -1
  542. package/dashboard/dist/assets/format-gXZXQ-HJ.js +0 -2
  543. package/dashboard/dist/assets/format-gXZXQ-HJ.js.map +0 -1
  544. package/dashboard/dist/assets/helpers-0gSleuzT.js +0 -2
  545. package/dashboard/dist/assets/helpers-0gSleuzT.js.map +0 -1
  546. package/dashboard/dist/assets/index-BWvMHed7.js +0 -6
  547. package/dashboard/dist/assets/index-BWvMHed7.js.map +0 -1
  548. package/dashboard/dist/assets/index-BaszoPO_.css +0 -1
  549. package/dashboard/dist/assets/index-Cn2jyj9A.js +0 -2
  550. package/dashboard/dist/assets/index-Cn2jyj9A.js.map +0 -1
  551. package/dashboard/dist/assets/index-D8VH6K8B.js +0 -54
  552. package/dashboard/dist/assets/index-D8VH6K8B.js.map +0 -1
  553. package/dashboard/dist/assets/index-D9SYwJsi.js +0 -3
  554. package/dashboard/dist/assets/index-D9SYwJsi.js.map +0 -1
  555. package/dashboard/dist/assets/index-DTPzZr_X.js +0 -2
  556. package/dashboard/dist/assets/index-D_6AB5BE.js +0 -2
  557. package/dashboard/dist/assets/index-D_6AB5BE.js.map +0 -1
  558. package/dashboard/dist/assets/index-S9Ks2Lj2.js +0 -2
  559. package/dashboard/dist/assets/index-S9Ks2Lj2.js.map +0 -1
  560. package/dashboard/dist/assets/index-X85K5bHC.js +0 -17
  561. package/dashboard/dist/assets/index-rjmgHlSH.js +0 -2
  562. package/dashboard/dist/assets/index-rjmgHlSH.js.map +0 -1
  563. package/dashboard/dist/assets/mcp-blCW6IL7.js +0 -2
  564. package/dashboard/dist/assets/mcp-query-DoAyPbjC.js +0 -2
  565. package/dashboard/dist/assets/mcp-query-DoAyPbjC.js.map +0 -1
  566. package/dashboard/dist/assets/namespaces-BgbaC3ow.js +0 -2
  567. package/dashboard/dist/assets/settings-eBRSE0mQ.js +0 -2
  568. package/dashboard/dist/assets/tasks-tRqClPns.js +0 -2
  569. package/dashboard/dist/assets/vendor-icons-ZTAKVwGc.js.map +0 -1
  570. package/dashboard/dist/assets/vendor-query-B2UbickB.js +0 -18
  571. package/dashboard/dist/assets/vendor-query-B2UbickB.js.map +0 -1
  572. package/dashboard/dist/assets/vendor-react-Cw8Gy8NJ.js +0 -22
  573. package/dashboard/dist/assets/vendor-react-Cw8Gy8NJ.js.map +0 -1
  574. package/dashboard/dist/assets/yaml-workflows-BL4V5CQy.js +0 -2
  575. package/dashboard/dist/assets/yaml-workflows-BL4V5CQy.js.map +0 -1
  576. /package/build/{services → lib}/db/migrate.d.ts +0 -0
  577. /package/build/{services → lib}/events/index.d.ts +0 -0
  578. /package/build/{services → lib}/events/index.js +0 -0
  579. /package/build/{services → lib}/events/memory.d.ts +0 -0
  580. /package/build/{services → lib}/events/memory.js +0 -0
  581. /package/build/{services → lib}/events/nats.d.ts +0 -0
  582. /package/build/{services → lib}/events/nats.js +0 -0
  583. /package/build/{services → lib}/events/publish.d.ts +0 -0
  584. /package/build/{services → lib}/events/publish.js +0 -0
  585. /package/build/{services → lib}/events/socketio.d.ts +0 -0
  586. /package/build/{services → lib}/events/socketio.js +0 -0
  587. /package/build/{services → lib}/logger/index.d.ts +0 -0
  588. /package/build/{services → lib}/logger/index.js +0 -0
  589. /package/build/{services → lib}/logger/pino.d.ts +0 -0
  590. /package/build/{services → lib}/logger/pino.js +0 -0
  591. /package/build/{services → lib}/storage/index.d.ts +0 -0
  592. /package/build/{services → lib}/storage/index.js +0 -0
  593. /package/build/{services → lib}/storage/local.d.ts +0 -0
  594. /package/build/{services → lib}/storage/local.js +0 -0
  595. /package/build/{services → lib}/storage/s3.d.ts +0 -0
  596. /package/build/{services → lib}/storage/s3.js +0 -0
  597. /package/build/{services → lib}/storage/types.d.ts +0 -0
  598. /package/build/{services → lib}/storage/types.js +0 -0
  599. /package/build/{services → lib}/telemetry/index.d.ts +0 -0
  600. /package/build/{services → lib}/telemetry/index.js +0 -0
  601. /package/{services → lib}/db/README.md +0 -0
  602. /package/{services → lib}/db/schemas/001_schema.sql +0 -0
  603. /package/{services → lib}/db/schemas/002_seed.sql +0 -0
  604. /package/{services → lib}/db/schemas/003_workflow_discovery.sql +0 -0
  605. /package/{services → lib}/db/schemas/004_query_router.sql +0 -0
  606. /package/{services → lib}/db/schemas/005_triage_router.sql +0 -0
  607. /package/{services → lib}/db/schemas/006_oauth.sql +0 -0
  608. /package/{services → lib}/db/schemas/007_security.sql +0 -0
  609. /package/{services → lib}/db/schemas/008_bot_accounts.sql +0 -0
  610. /package/{services → lib}/db/schemas/009_audit_trail.sql +0 -0
  611. /package/{services → lib}/db/schemas/010_credential_providers.sql +0 -0
  612. /package/{services → lib}/db/schemas/011_system_workflow_configs.sql +0 -0
  613. /package/{services → lib}/db/schemas/012_drop_modality.sql +0 -0
  614. /package/{services → lib}/db/schemas/013_execute_as.sql +0 -0
  615. /package/{services → lib}/db/schemas/014_ephemeral_credentials.sql +0 -0
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ // ─── Ephemeral credentials ──────────────────────────────────────────────────
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.GET_USER_WITH_ROLES_FLEXIBLE = exports.GET_USER_BY_EXTERNAL_ID = exports.SET_ACCOUNT_TYPE_BOT = exports.COUNT_BOTS = exports.LIST_BOTS = exports.CLEANUP_EXPIRED_EPHEMERAL = exports.DELETE_EPHEMERAL = exports.EXCHANGE_EPHEMERAL = exports.INSERT_EPHEMERAL = void 0;
5
+ /** Build INSERT for ephemeral credentials. expiresExpr is a SQL expression like 'NULL' or "NOW() + N * INTERVAL '1 second'". */
6
+ const INSERT_EPHEMERAL = (expiresExpr) => `
7
+ INSERT INTO lt_ephemeral_credentials (value, label, max_uses, expires_at)
8
+ VALUES ($1, $2, $3, ${expiresExpr})
9
+ RETURNING token`;
10
+ exports.INSERT_EPHEMERAL = INSERT_EPHEMERAL;
11
+ exports.EXCHANGE_EPHEMERAL = `
12
+ UPDATE lt_ephemeral_credentials
13
+ SET use_count = use_count + 1
14
+ WHERE token = $1
15
+ AND (expires_at IS NULL OR expires_at > NOW())
16
+ AND (max_uses = 0 OR use_count < max_uses)
17
+ RETURNING value, use_count, max_uses`;
18
+ exports.DELETE_EPHEMERAL = `
19
+ DELETE FROM lt_ephemeral_credentials WHERE token = $1`;
20
+ exports.CLEANUP_EXPIRED_EPHEMERAL = `
21
+ DELETE FROM lt_ephemeral_credentials
22
+ WHERE expires_at IS NOT NULL AND expires_at < NOW()`;
23
+ // ─── Bot accounts ───────────────────────────────────────────────────────────
24
+ exports.LIST_BOTS = `
25
+ SELECT * FROM lt_users
26
+ WHERE account_type = 'bot'
27
+ ORDER BY created_at DESC
28
+ LIMIT $1 OFFSET $2`;
29
+ exports.COUNT_BOTS = `
30
+ SELECT COUNT(*)::int AS total FROM lt_users WHERE account_type = 'bot'`;
31
+ exports.SET_ACCOUNT_TYPE_BOT = `
32
+ UPDATE lt_users SET account_type = $1 WHERE id = $2`;
33
+ exports.GET_USER_BY_EXTERNAL_ID = `
34
+ SELECT id FROM lt_users WHERE external_id = $1`;
35
+ // ─── Principal resolution ───────────────────────────────────────────────────
36
+ exports.GET_USER_WITH_ROLES_FLEXIBLE = `
37
+ SELECT u.id, u.external_id, u.display_name, u.status, u.metadata,
38
+ r.role, r.type AS role_type
39
+ FROM lt_users u
40
+ LEFT JOIN lt_user_roles r ON r.user_id = u.id
41
+ WHERE u.external_id = $1 OR u.id::text = $1
42
+ ORDER BY r.created_at`;
@@ -7,6 +7,7 @@ export interface McpQueryInput {
7
7
  tags?: string[];
8
8
  wait?: boolean;
9
9
  direct?: boolean;
10
+ context?: Record<string, any>;
10
11
  userId?: string;
11
12
  }
12
13
  export interface McpQueryResult {
@@ -6,25 +6,23 @@
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.startMcpQuery = startMcpQuery;
8
8
  exports.describeWorkflow = describeWorkflow;
9
- const pg_1 = require("pg");
10
9
  const hotmesh_1 = require("@hotmeshio/hotmesh");
11
- const config_1 = require("../../modules/config");
10
+ const db_1 = require("../../lib/db");
12
11
  const defaults_1 = require("../../modules/defaults");
13
12
  const llm_1 = require("../llm");
14
13
  const prompts_1 = require("./prompts");
15
14
  // ── MCP query invocation ─────────────────────────────────────────────────────
16
15
  async function startMcpQuery(input) {
17
- const { prompt, tags, wait = true, direct = false, userId } = input;
16
+ const { prompt, tags, wait = true, direct = false, context, userId } = input;
18
17
  const startTime = Date.now();
19
- const connection = { class: pg_1.Client, options: config_1.postgres_options };
20
- const client = new hotmesh_1.Durable.Client({ connection });
18
+ const client = new hotmesh_1.Durable.Client({ connection: (0, db_1.getConnection)() });
21
19
  const wfName = direct ? 'mcpQuery' : 'mcpQueryRouter';
22
20
  const entity = direct ? 'mcpQuery' : 'mcpQueryRouter';
23
21
  const prefix = direct ? 'mcp-query-direct' : 'mcp-query';
24
22
  const workflowId = `${prefix}-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
25
23
  const handle = await client.workflow.start({
26
24
  args: [{
27
- data: { prompt, tags },
25
+ data: { prompt, tags, context },
28
26
  metadata: { source: 'dashboard' },
29
27
  lt: { userId },
30
28
  }],
@@ -38,7 +38,7 @@ exports.ltClaimEscalation = ltClaimEscalation;
38
38
  exports.ltEnrichEscalationRouting = ltEnrichEscalationRouting;
39
39
  exports.ltCreateEscalation = ltCreateEscalation;
40
40
  const escalationService = __importStar(require("../../escalation"));
41
- const logger_1 = require("../../logger");
41
+ const logger_1 = require("../../../lib/logger");
42
42
  /**
43
43
  * Resolve an escalation record. Called by the interceptor after
44
44
  * detecting a re-run (resolver data present in the envelope).
@@ -42,17 +42,20 @@ exports.ltAppendMilestones = ltAppendMilestones;
42
42
  exports.ltGetTaskByWorkflowId = ltGetTaskByWorkflowId;
43
43
  exports.ltGetTask = ltGetTask;
44
44
  const taskService = __importStar(require("../../task"));
45
- const publish_1 = require("../../events/publish");
46
- const db_1 = require("../../db");
45
+ const publish_1 = require("../../../lib/events/publish");
46
+ const db_1 = require("../../../lib/db");
47
+ const sql_1 = require("../../user/sql");
47
48
  const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
48
- /** Resolve an external_id to a UUID. Returns null if not found or already a UUID. */
49
+ /** Resolve an identifier to a verified lt_users UUID. Returns undefined if not found. */
49
50
  async function resolveUserUuid(identifier) {
50
51
  if (!identifier)
51
52
  return undefined;
52
- if (UUID_RE.test(identifier))
53
- return identifier;
54
53
  const pool = (0, db_1.getPool)();
55
- const { rows } = await pool.query('SELECT id FROM lt_users WHERE external_id = $1 LIMIT 1', [identifier]);
54
+ if (UUID_RE.test(identifier)) {
55
+ const { rows } = await pool.query(sql_1.VERIFY_USER_BY_ID, [identifier]);
56
+ return rows[0]?.id ?? undefined;
57
+ }
58
+ const { rows } = await pool.query(sql_1.GET_USER_BY_EXTERNAL_ID, [identifier]);
56
59
  return rows[0]?.id ?? undefined;
57
60
  }
58
61
  /**
@@ -2,11 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ltSignalParent = ltSignalParent;
4
4
  exports.ltStartWorkflow = ltStartWorkflow;
5
- const pg_1 = require("pg");
6
5
  const hotmesh_1 = require("@hotmeshio/hotmesh");
7
- const config_1 = require("../../../modules/config");
6
+ const db_1 = require("../../../lib/db");
8
7
  const defaults_1 = require("../../../modules/defaults");
9
- const logger_1 = require("../../logger");
8
+ const logger_1 = require("../../../lib/logger");
10
9
  /**
11
10
  * Signal an orchestrator workflow from within the interceptor.
12
11
  * Used after a child workflow succeeds to send the result back
@@ -14,7 +13,7 @@ const logger_1 = require("../../logger");
14
13
  */
15
14
  async function ltSignalParent(input) {
16
15
  const client = new hotmesh_1.Durable.Client({
17
- connection: { class: pg_1.Client, options: config_1.postgres_options },
16
+ connection: (0, db_1.getConnection)(),
18
17
  });
19
18
  const handle = await client.workflow.getHandle(input.parentTaskQueue, input.parentWorkflowType, input.parentWorkflowId);
20
19
  await handle.signal(input.signalId, input.data);
@@ -28,7 +27,7 @@ async function ltSignalParent(input) {
28
27
  */
29
28
  async function ltStartWorkflow(input) {
30
29
  const client = new hotmesh_1.Durable.Client({
31
- connection: { class: pg_1.Client, options: config_1.postgres_options },
30
+ connection: (0, db_1.getConnection)(),
32
31
  });
33
32
  await client.workflow.start({
34
33
  workflowName: input.workflowName,
@@ -10,7 +10,7 @@
10
10
  * the stored activity result → after-phase runs
11
11
  *
12
12
  * Before phase:
13
- * Injects the envelope's pre-resolved principal into argumentMetadata
13
+ * Injects the envelope's pre-resolved principal into headers
14
14
  * so activities can read it via `Durable.activity.getContext()`.
15
15
  * Skipped for `lt*` interceptor activities (they don't need identity).
16
16
  *
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createLTActivityInterceptor = createLTActivityInterceptor;
4
4
  const hotmesh_1 = require("@hotmeshio/hotmesh");
5
- const publish_1 = require("../events/publish");
5
+ const publish_1 = require("../../lib/events/publish");
6
6
  const state_1 = require("./state");
7
7
  /**
8
8
  * Create an LT Activity Interceptor.
@@ -16,7 +16,7 @@ const state_1 = require("./state");
16
16
  * the stored activity result → after-phase runs
17
17
  *
18
18
  * Before phase:
19
- * Injects the envelope's pre-resolved principal into argumentMetadata
19
+ * Injects the envelope's pre-resolved principal into headers
20
20
  * so activities can read it via `Durable.activity.getContext()`.
21
21
  * Skipped for `lt*` interceptor activities (they don't need identity).
22
22
  *
@@ -32,7 +32,7 @@ function createLTActivityInterceptor(_options) {
32
32
  async execute(activityCtx, workflowCtx, next) {
33
33
  try {
34
34
  // ── Before phase ─────────────────────────────────────────
35
- // Inject principal into argumentMetadata for non-interceptor activities.
35
+ // Inject principal into headers for non-interceptor activities.
36
36
  // The principal was resolved at the front door and travels in the envelope.
37
37
  if (!activityCtx.activityName.startsWith('lt')) {
38
38
  const envelope = (0, state_1.extractEnvelope)(workflowCtx);
@@ -40,8 +40,8 @@ function createLTActivityInterceptor(_options) {
40
40
  if (principal) {
41
41
  activityCtx.options = {
42
42
  ...activityCtx.options,
43
- argumentMetadata: {
44
- ...(activityCtx.options?.argumentMetadata ?? {}),
43
+ headers: {
44
+ ...(activityCtx.options?.headers ?? {}),
45
45
  principal,
46
46
  scopes: envelope.lt?.scopes,
47
47
  ...(envelope.lt?.initiatingPrincipal
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.handleCompletion = handleCompletion;
4
4
  const state_1 = require("./state");
5
- const publish_1 = require("../events/publish");
5
+ const publish_1 = require("../../lib/events/publish");
6
6
  /**
7
7
  * Handle a workflow that returned { type: 'return' }.
8
8
  *
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.handleEscalation = handleEscalation;
4
4
  exports.handleErrorEscalation = handleErrorEscalation;
5
5
  const state_1 = require("./state");
6
- const publish_1 = require("../events/publish");
6
+ const publish_1 = require("../../lib/events/publish");
7
7
  const credentials_1 = require("../iam/credentials");
8
8
  /**
9
9
  * Handle a workflow that returned { type: 'escalation' }.
@@ -56,12 +56,12 @@ const DEFAULT_ACTIVITY_QUEUE = 'lt-interceptor';
56
56
  */
57
57
  async function registerLT(connection, options) {
58
58
  const taskQueue = options?.taskQueue ?? DEFAULT_ACTIVITY_QUEUE;
59
- await hotmesh_1.Durable.registerActivityWorker({ connection, taskQueue }, interceptorActivities, taskQueue);
60
- hotmesh_1.Durable.registerInterceptor(createLTInterceptor({
59
+ await hotmesh_1.Durable.registerActivityWorker({ connection, taskQueue, guid: `interceptor::${taskQueue}-${hotmesh_1.Durable.guid()}` }, interceptorActivities, taskQueue);
60
+ hotmesh_1.Durable.registerInboundInterceptor(createLTInterceptor({
61
61
  activityTaskQueue: taskQueue,
62
62
  defaultRole: options?.defaultRole,
63
63
  }));
64
- hotmesh_1.Durable.registerActivityInterceptor((0, activity_interceptor_1.createLTActivityInterceptor)());
64
+ hotmesh_1.Durable.registerOutboundInterceptor((0, activity_interceptor_1.createLTActivityInterceptor)());
65
65
  }
66
66
  /**
67
67
  * The Long Tail interceptor wraps every registered workflow.
@@ -96,7 +96,7 @@ function createLTInterceptor(options) {
96
96
  const activities = hotmesh_1.Durable.workflow.proxyActivities({
97
97
  activities: interceptorActivities,
98
98
  taskQueue: activityTaskQueue,
99
- retryPolicy: { maximumAttempts: 3 },
99
+ retry: { maximumAttempts: 3 },
100
100
  });
101
101
  // 2. Load config — unregistered workflows still get ToolContext
102
102
  const wfConfig = await activities.ltGetWorkflowConfig(wf.workflowName);
@@ -13,7 +13,7 @@ exports.resolveReRun = resolveReRun;
13
13
  exports.ensureTaskWithRouting = ensureTaskWithRouting;
14
14
  exports.publishStartedEvents = publishStartedEvents;
15
15
  exports.completePlainResult = completePlainResult;
16
- const publish_1 = require("../events/publish");
16
+ const publish_1 = require("../../lib/events/publish");
17
17
  // ── Helpers ──────────────────────────────────────────────────────────────────
18
18
  /** Extract workflow identity fields from the HotMesh context map. */
19
19
  function extractWorkflowIdentity(ctx) {
@@ -35,9 +35,8 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.maintenanceRegistry = void 0;
37
37
  const hotmesh_1 = require("@hotmeshio/hotmesh");
38
- const pg_1 = require("pg");
39
- const config_1 = require("../../modules/config");
40
- const logger_1 = require("../logger");
38
+ const db_1 = require("../../lib/db");
39
+ const logger_1 = require("../../lib/logger");
41
40
  const dbaService = __importStar(require("../dba"));
42
41
  const CRON_TOPIC = 'lt.maintenance.prune';
43
42
  const CRON_ID = 'lt-maintenance-nightly';
@@ -115,7 +114,7 @@ class LTMaintenanceRegistry {
115
114
  return;
116
115
  const rules = this._config.rules;
117
116
  const schedule = this._config.schedule;
118
- const connection = { class: pg_1.Client, options: config_1.postgres_options };
117
+ const connection = (0, db_1.getConnection)();
119
118
  await hotmesh_1.Virtual.cron({
120
119
  topic: CRON_TOPIC,
121
120
  connection,
@@ -147,7 +146,7 @@ class LTMaintenanceRegistry {
147
146
  if (!this.connected)
148
147
  return;
149
148
  try {
150
- const connection = { class: pg_1.Client, options: config_1.postgres_options };
149
+ const connection = (0, db_1.getConnection)();
151
150
  await hotmesh_1.Virtual.interrupt({
152
151
  topic: CRON_TOPIC,
153
152
  connection,
@@ -34,12 +34,9 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.BuiltInMcpAdapter = void 0;
37
- const logger_1 = require("../logger");
37
+ const logger_1 = require("../../lib/logger");
38
38
  const mcpClient = __importStar(require("./client"));
39
39
  const mcpServer = __importStar(require("./server"));
40
- const mcpDbServer = __importStar(require("./db-server"));
41
- const mcpWorkflowCompilerServer = __importStar(require("./workflow-compiler-server"));
42
- const mcpWorkflowServer = __importStar(require("./workflow-server"));
43
40
  const mcpDbService = __importStar(require("./db"));
44
41
  /**
45
42
  * Built-in MCP adapter.
@@ -60,15 +57,6 @@ class BuiltInMcpAdapter {
60
57
  });
61
58
  logger_1.loggerRegistry.info('[lt-mcp] human queue server started');
62
59
  }
63
- // Start DB query MCP server (always available)
64
- await mcpDbServer.createDbServer();
65
- logger_1.loggerRegistry.info('[lt-mcp] db query server started');
66
- // Start Workflow Compiler MCP server (always available)
67
- await mcpWorkflowCompilerServer.createWorkflowCompilerServer();
68
- logger_1.loggerRegistry.info('[lt-mcp] workflow compiler server started');
69
- // Start MCP Workflows server (exposes compiled YAML workflows as tools)
70
- await mcpWorkflowServer.createWorkflowServer();
71
- logger_1.loggerRegistry.info('[lt-mcp] workflow server started');
72
60
  // Connect to auto-connect servers from DB
73
61
  await mcpClient.connectAutoServers();
74
62
  // Also connect to explicitly specified servers
@@ -91,9 +79,6 @@ class BuiltInMcpAdapter {
91
79
  }
92
80
  async disconnect() {
93
81
  await mcpClient.disconnectAll();
94
- await mcpWorkflowServer.stopWorkflowServer();
95
- await mcpWorkflowCompilerServer.stopWorkflowCompilerServer();
96
- await mcpDbServer.stopDbServer();
97
82
  await mcpServer.stopServer();
98
83
  logger_1.loggerRegistry.info('[lt-mcp] disconnected');
99
84
  }
@@ -20,7 +20,7 @@ export declare function disconnectFromServer(serverId: string): Promise<void>;
20
20
  * Returns the client or null if not found.
21
21
  *
22
22
  * Built-in servers are connected once under their canonical factory name.
23
- * Alias lookups (e.g. 'vision' matching 'long-tail-document-vision') reuse
23
+ * Alias lookups (e.g. 'translation' matching 'long-tail-translation') reuse
24
24
  * the same client instance to avoid double-connecting the singleton server.
25
25
  */
26
26
  export declare function resolveClient(serverId: string): Promise<Client | null>;
@@ -46,7 +46,7 @@ const index_js_1 = require("@modelcontextprotocol/sdk/client/index.js");
46
46
  const stdio_js_1 = require("@modelcontextprotocol/sdk/client/stdio.js");
47
47
  const sse_js_1 = require("@modelcontextprotocol/sdk/client/sse.js");
48
48
  const inMemory_js_1 = require("@modelcontextprotocol/sdk/inMemory.js");
49
- const logger_1 = require("../../logger");
49
+ const logger_1 = require("../../../lib/logger");
50
50
  const mcpDbService = __importStar(require("../db"));
51
51
  /** In-memory map of server ID/name to active MCP client */
52
52
  const clients = new Map();
@@ -146,7 +146,7 @@ async function disconnectFromServer(serverId) {
146
146
  * Returns the client or null if not found.
147
147
  *
148
148
  * Built-in servers are connected once under their canonical factory name.
149
- * Alias lookups (e.g. 'vision' matching 'long-tail-document-vision') reuse
149
+ * Alias lookups (e.g. 'translation' matching 'long-tail-translation') reuse
150
150
  * the same client instance to avoid double-connecting the singleton server.
151
151
  */
152
152
  async function resolveClient(serverId) {
@@ -35,7 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.callServerTool = callServerTool;
37
37
  exports.toolActivities = toolActivities;
38
- const logger_1 = require("../../logger");
38
+ const logger_1 = require("../../../lib/logger");
39
39
  const defaults_1 = require("../../../modules/defaults");
40
40
  const context_1 = require("../../iam/context");
41
41
  const mcpDbService = __importStar(require("../db"));
@@ -4,7 +4,7 @@ exports.createDbServer = createDbServer;
4
4
  exports.getDbServer = getDbServer;
5
5
  exports.stopDbServer = stopDbServer;
6
6
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
7
- const logger_1 = require("../../logger");
7
+ const logger_1 = require("../../../lib/logger");
8
8
  const tools_1 = require("./tools");
9
9
  let server = null;
10
10
  /**
@@ -34,7 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.registerDbTools = registerDbTools;
37
- const db_1 = require("../../db");
37
+ const db_1 = require("../../../lib/db");
38
38
  const taskService = __importStar(require("../../task"));
39
39
  const escalationService = __importStar(require("../../escalation"));
40
40
  const configService = __importStar(require("../../config"));
@@ -190,16 +190,22 @@ function registerDbTools(instance) {
190
190
  // get_system_health
191
191
  instance.registerTool('get_system_health', {
192
192
  title: 'Get System Health',
193
- description: 'Overall system health snapshot: task counts by status, escalation counts by status, ' +
194
- 'active workflow types, and recent activity window.',
193
+ description: 'Full system overview: durable workflow execution counts by type (active/completed), ' +
194
+ 'task counts by status, escalation counts by status, recent activity window, ' +
195
+ 'MCP servers (with tool counts and tags), compiled workflow totals, and workflow configurations.',
195
196
  inputSchema: schemas_1.getSystemHealthSchema,
196
197
  }, async (_args) => {
197
198
  const pool = (0, db_1.getPool)();
198
- const [taskCounts, escalationCounts, activeTypes, recentActivity] = await Promise.all([
199
+ const [taskCounts, escalationCounts, activeTypes, recentActivity, mcpServers, mcpServerList, compiledWorkflows, workflowConfigs, durableWorkflows,] = await Promise.all([
199
200
  pool.query(sql_1.HEALTH_TASK_COUNTS),
200
201
  pool.query(sql_1.HEALTH_ESCALATION_COUNTS),
201
202
  pool.query(sql_1.HEALTH_ACTIVE_WORKFLOW_TYPES),
202
203
  pool.query(sql_1.HEALTH_RECENT_ACTIVITY),
204
+ pool.query(sql_1.HEALTH_MCP_SERVERS),
205
+ pool.query(sql_1.HEALTH_MCP_SERVER_LIST),
206
+ pool.query(sql_1.HEALTH_COMPILED_WORKFLOWS),
207
+ pool.query(sql_1.HEALTH_WORKFLOW_CONFIGS),
208
+ pool.query(sql_1.HEALTH_DURABLE_WORKFLOWS),
203
209
  ]);
204
210
  const tasksByStatus = {};
205
211
  for (const row of taskCounts.rows) {
@@ -213,10 +219,17 @@ function registerDbTools(instance) {
213
219
  content: [{
214
220
  type: 'text',
215
221
  text: JSON.stringify({
222
+ durable_workflows: durableWorkflows.rows,
216
223
  tasks: tasksByStatus,
217
224
  escalations: escalationsByStatus,
218
225
  active_workflow_types: activeTypes.rows.map((r) => r.workflow_type),
219
226
  recent_activity: recentActivity.rows[0],
227
+ mcp_servers: {
228
+ ...mcpServers.rows[0],
229
+ servers: mcpServerList.rows,
230
+ },
231
+ compiled_workflows: compiledWorkflows.rows[0],
232
+ workflow_configs: workflowConfigs.rows,
220
233
  }),
221
234
  }],
222
235
  };
@@ -9,7 +9,7 @@ exports.updateMcpServerStatus = updateMcpServerStatus;
9
9
  exports.listMcpServers = listMcpServers;
10
10
  exports.getAutoConnectServers = getAutoConnectServers;
11
11
  exports.findServersByTags = findServersByTags;
12
- const db_1 = require("../db");
12
+ const db_1 = require("../../lib/db");
13
13
  const sql_1 = require("./sql");
14
14
  async function createMcpServer(input) {
15
15
  const pool = (0, db_1.getPool)();
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.stopPlaywrightServer = void 0;
4
4
  exports.createPlaywrightServer = createPlaywrightServer;
5
5
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
6
- const logger_1 = require("../../logger");
6
+ const logger_1 = require("../../../lib/logger");
7
7
  const tools_1 = require("./tools");
8
8
  var lifecycle_1 = require("./lifecycle");
9
9
  Object.defineProperty(exports, "stopPlaywrightServer", { enumerable: true, get: function () { return lifecycle_1.stopPlaywrightServer; } });
@@ -7,7 +7,7 @@ exports.getPage = getPage;
7
7
  exports.getPageId = getPageId;
8
8
  exports.stopPlaywrightServer = stopPlaywrightServer;
9
9
  const playwright_1 = require("playwright");
10
- const logger_1 = require("../../logger");
10
+ const logger_1 = require("../../../lib/logger");
11
11
  // Browser lifecycle: shared instance across tool calls within a single
12
12
  // server lifetime. Lazy-launched on first use, cleaned up via
13
13
  // stopPlaywrightServer().
@@ -17,13 +17,13 @@ export declare const screenshotSchema: z.ZodObject<{
17
17
  }, "strip", z.ZodTypeAny, {
18
18
  path: string;
19
19
  page_id?: string | undefined;
20
- selector?: string | undefined;
21
20
  full_page?: boolean | undefined;
21
+ selector?: string | undefined;
22
22
  }, {
23
23
  path: string;
24
24
  page_id?: string | undefined;
25
- selector?: string | undefined;
26
25
  full_page?: boolean | undefined;
26
+ selector?: string | undefined;
27
27
  }>;
28
28
  export declare const clickSchema: z.ZodObject<{
29
29
  page_id: z.ZodOptional<z.ZodString>;
@@ -36,7 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.registerTools = registerTools;
37
37
  const fs = __importStar(require("fs"));
38
38
  const path = __importStar(require("path"));
39
- const logger_1 = require("../../logger");
39
+ const logger_1 = require("../../../lib/logger");
40
40
  const schemas_1 = require("./schemas");
41
41
  const lifecycle_1 = require("./lifecycle");
42
42
  // Tool-handler registration for the Playwright MCP server.
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Register a tool on an McpServer, bypassing the SDK's generic type
3
+ * inference that causes TypeScript to OOM during compilation.
4
+ *
5
+ * The MCP SDK's .tool() signatures use deeply nested Zod generics
6
+ * that trigger unbounded type expansion in tsc. Routing through
7
+ * `any` avoids this. Runtime validation is unaffected — the SDK
8
+ * still validates inputs against the Zod schemas at call time.
9
+ */
10
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
11
+ export declare const registerMcpTool: (server: McpServer, ...args: any[]) => any;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ /**
3
+ * Register a tool on an McpServer, bypassing the SDK's generic type
4
+ * inference that causes TypeScript to OOM during compilation.
5
+ *
6
+ * The MCP SDK's .tool() signatures use deeply nested Zod generics
7
+ * that trigger unbounded type expansion in tsc. Routing through
8
+ * `any` avoids this. Runtime validation is unaffected — the SDK
9
+ * still validates inputs against the Zod schemas at call time.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.registerMcpTool = void 0;
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
+ const registerMcpTool = (server, ...args) => server.tool(...args);
15
+ exports.registerMcpTool = registerMcpTool;
@@ -39,7 +39,7 @@ exports.stopServer = stopServer;
39
39
  const crypto = __importStar(require("crypto"));
40
40
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
41
41
  const zod_1 = require("zod");
42
- const logger_1 = require("../logger");
42
+ const logger_1 = require("../../lib/logger");
43
43
  const escalationService = __importStar(require("../escalation"));
44
44
  let server = null;
45
45
  // ── Schemas (extracted to break TS2589 deep-instantiation in registerTool generics) ──
@@ -9,4 +9,10 @@ export declare const HEALTH_TASK_COUNTS = "\n SELECT status, COUNT(*)::int AS c
9
9
  export declare const HEALTH_ESCALATION_COUNTS = "\n SELECT status, COUNT(*)::int AS count\n FROM lt_escalations GROUP BY status ORDER BY status";
10
10
  export declare const HEALTH_ACTIVE_WORKFLOW_TYPES = "\n SELECT DISTINCT workflow_type FROM lt_tasks\n WHERE status IN ('pending', 'in_progress')\n ORDER BY workflow_type";
11
11
  export declare const HEALTH_RECENT_ACTIVITY = "\n SELECT\n COUNT(*) FILTER (WHERE created_at > NOW() - INTERVAL '1 hour')::int AS tasks_created_1h,\n COUNT(*) FILTER (WHERE completed_at > NOW() - INTERVAL '1 hour')::int AS tasks_completed_1h,\n COUNT(*) FILTER (WHERE created_at > NOW() - INTERVAL '24 hours')::int AS tasks_created_24h,\n COUNT(*) FILTER (WHERE completed_at > NOW() - INTERVAL '24 hours')::int AS tasks_completed_24h\n FROM lt_tasks";
12
+ export declare const HEALTH_MCP_SERVERS = "\n SELECT\n COUNT(*)::int AS total,\n COUNT(*) FILTER (WHERE status = 'connected')::int AS connected,\n SUM(jsonb_array_length(COALESCE(tool_manifest::jsonb, '[]'::jsonb)))::int AS total_tools\n FROM lt_mcp_servers";
13
+ export declare const HEALTH_MCP_SERVER_LIST = "\n SELECT name, status, tags,\n jsonb_array_length(COALESCE(tool_manifest::jsonb, '[]'::jsonb))::int AS tool_count\n FROM lt_mcp_servers ORDER BY name";
14
+ export declare const HEALTH_COMPILED_WORKFLOWS = "\n SELECT\n COUNT(*)::int AS total,\n COUNT(*) FILTER (WHERE status = 'active')::int AS active\n FROM lt_yaml_workflows";
15
+ export declare const HEALTH_WORKFLOW_CONFIGS = "\n SELECT workflow_type, task_queue, description\n FROM lt_config_workflows ORDER BY workflow_type";
16
+ export declare const HEALTH_DURABLE_WORKFLOWS = "\n SELECT\n COALESCE(entity, '_internal') AS entity,\n COUNT(*)::int AS total,\n COUNT(*) FILTER (WHERE status = 0)::int AS active,\n COUNT(*) FILTER (WHERE status = 1)::int AS completed\n FROM durable.jobs\n WHERE entity IS NOT NULL AND entity != ''\n GROUP BY entity\n ORDER BY entity";
17
+ export declare const DELETE_STALE_BUILTIN_SERVERS = "\n DELETE FROM lt_mcp_servers\n WHERE (metadata->>'builtin')::boolean = true\n AND name != ALL($1)\n RETURNING name";
12
18
  export declare const SEED_MCP_SERVER = "\n INSERT INTO lt_mcp_servers\n (name, description, transport_type, transport_config, auto_connect, status, tool_manifest, metadata, tags, compile_hints, credential_providers, last_connected_at)\n VALUES ($1, $2, $3, $4, true, 'connected', $5, $6, $7, $8, $9, NOW())\n ON CONFLICT (name) DO UPDATE SET\n tool_manifest = EXCLUDED.tool_manifest,\n metadata = EXCLUDED.metadata,\n description = EXCLUDED.description,\n tags = EXCLUDED.tags,\n compile_hints = EXCLUDED.compile_hints,\n credential_providers = EXCLUDED.credential_providers,\n status = 'connected',\n last_connected_at = NOW()";
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  // ─── MCP server CRUD ────────────────────────────────────────────────────────
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.SEED_MCP_SERVER = exports.HEALTH_RECENT_ACTIVITY = exports.HEALTH_ACTIVE_WORKFLOW_TYPES = exports.HEALTH_ESCALATION_COUNTS = exports.HEALTH_TASK_COUNTS = exports.GET_AUTO_CONNECT_SERVERS = exports.UPDATE_STATUS = exports.UPDATE_STATUS_CONNECTED = exports.DELETE_MCP_SERVER = exports.GET_MCP_SERVER_BY_NAME = exports.GET_MCP_SERVER = exports.CREATE_MCP_SERVER = void 0;
4
+ exports.SEED_MCP_SERVER = exports.DELETE_STALE_BUILTIN_SERVERS = exports.HEALTH_DURABLE_WORKFLOWS = exports.HEALTH_WORKFLOW_CONFIGS = exports.HEALTH_COMPILED_WORKFLOWS = exports.HEALTH_MCP_SERVER_LIST = exports.HEALTH_MCP_SERVERS = exports.HEALTH_RECENT_ACTIVITY = exports.HEALTH_ACTIVE_WORKFLOW_TYPES = exports.HEALTH_ESCALATION_COUNTS = exports.HEALTH_TASK_COUNTS = exports.GET_AUTO_CONNECT_SERVERS = exports.UPDATE_STATUS = exports.UPDATE_STATUS_CONNECTED = exports.DELETE_MCP_SERVER = exports.GET_MCP_SERVER_BY_NAME = exports.GET_MCP_SERVER = exports.CREATE_MCP_SERVER = void 0;
5
5
  exports.CREATE_MCP_SERVER = `
6
6
  INSERT INTO lt_mcp_servers
7
7
  (name, description, transport_type, transport_config, auto_connect, metadata, tags)
@@ -43,7 +43,40 @@ exports.HEALTH_RECENT_ACTIVITY = `
43
43
  COUNT(*) FILTER (WHERE created_at > NOW() - INTERVAL '24 hours')::int AS tasks_created_24h,
44
44
  COUNT(*) FILTER (WHERE completed_at > NOW() - INTERVAL '24 hours')::int AS tasks_completed_24h
45
45
  FROM lt_tasks`;
46
+ exports.HEALTH_MCP_SERVERS = `
47
+ SELECT
48
+ COUNT(*)::int AS total,
49
+ COUNT(*) FILTER (WHERE status = 'connected')::int AS connected,
50
+ SUM(jsonb_array_length(COALESCE(tool_manifest::jsonb, '[]'::jsonb)))::int AS total_tools
51
+ FROM lt_mcp_servers`;
52
+ exports.HEALTH_MCP_SERVER_LIST = `
53
+ SELECT name, status, tags,
54
+ jsonb_array_length(COALESCE(tool_manifest::jsonb, '[]'::jsonb))::int AS tool_count
55
+ FROM lt_mcp_servers ORDER BY name`;
56
+ exports.HEALTH_COMPILED_WORKFLOWS = `
57
+ SELECT
58
+ COUNT(*)::int AS total,
59
+ COUNT(*) FILTER (WHERE status = 'active')::int AS active
60
+ FROM lt_yaml_workflows`;
61
+ exports.HEALTH_WORKFLOW_CONFIGS = `
62
+ SELECT workflow_type, task_queue, description
63
+ FROM lt_config_workflows ORDER BY workflow_type`;
64
+ exports.HEALTH_DURABLE_WORKFLOWS = `
65
+ SELECT
66
+ COALESCE(entity, '_internal') AS entity,
67
+ COUNT(*)::int AS total,
68
+ COUNT(*) FILTER (WHERE status = 0)::int AS active,
69
+ COUNT(*) FILTER (WHERE status = 1)::int AS completed
70
+ FROM durable.jobs
71
+ WHERE entity IS NOT NULL AND entity != ''
72
+ GROUP BY entity
73
+ ORDER BY entity`;
46
74
  // ─── Seed (used by system/seed.ts) ──────────────────────────────────────────
75
+ exports.DELETE_STALE_BUILTIN_SERVERS = `
76
+ DELETE FROM lt_mcp_servers
77
+ WHERE (metadata->>'builtin')::boolean = true
78
+ AND name != ALL($1)
79
+ RETURNING name`;
47
80
  exports.SEED_MCP_SERVER = `
48
81
  INSERT INTO lt_mcp_servers
49
82
  (name, description, transport_type, transport_config, auto_connect, status, tool_manifest, metadata, tags, compile_hints, credential_providers, last_connected_at)
@@ -38,7 +38,7 @@ exports.getWorkflowCompilerServer = getWorkflowCompilerServer;
38
38
  exports.stopWorkflowCompilerServer = stopWorkflowCompilerServer;
39
39
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
40
40
  const zod_1 = require("zod");
41
- const logger_1 = require("../logger");
41
+ const logger_1 = require("../../lib/logger");
42
42
  const yamlGenerator = __importStar(require("../yaml-workflow/generator"));
43
43
  const yamlDb = __importStar(require("../yaml-workflow/db"));
44
44
  const yamlDeployer = __importStar(require("../yaml-workflow/deployer"));
@@ -39,7 +39,7 @@ exports.stopWorkflowServer = stopWorkflowServer;
39
39
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
40
40
  const zod_1 = require("zod");
41
41
  const defaults_1 = require("../../modules/defaults");
42
- const logger_1 = require("../logger");
42
+ const logger_1 = require("../../lib/logger");
43
43
  const yamlDb = __importStar(require("../yaml-workflow/db"));
44
44
  const yamlDeployer = __importStar(require("../yaml-workflow/deployer"));
45
45
  let server = null;