@hotmeshio/long-tail 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (663) hide show
  1. package/README.md +35 -5
  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 +11 -10
  8. package/build/index.js +13 -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 +4 -7
  12. package/{services → build/lib}/db/schemas/001_schema.sql +3 -0
  13. package/{services → build/lib}/db/schemas/011_system_workflow_configs.sql +7 -0
  14. package/build/lib/db/schemas/015_knowledge.sql +23 -0
  15. package/build/lib/db/schemas/016_streamable_http.sql +7 -0
  16. package/build/{services → lib}/telemetry/honeycomb.d.ts +2 -2
  17. package/build/{services → lib}/telemetry/honeycomb.js +2 -2
  18. package/build/modules/defaults.d.ts +2 -0
  19. package/build/modules/defaults.js +3 -1
  20. package/build/routes/controlplane.js +1 -1
  21. package/build/routes/dba.js +4 -0
  22. package/build/routes/docs.d.ts +2 -0
  23. package/build/routes/docs.js +105 -0
  24. package/build/routes/escalations/bulk.js +120 -202
  25. package/build/routes/escalations/resolve.js +1 -1
  26. package/build/routes/escalations/single.js +1 -1
  27. package/build/routes/files.js +1 -1
  28. package/build/routes/index.js +2 -0
  29. package/build/routes/insight.js +65 -1
  30. package/build/routes/mcp.js +26 -3
  31. package/build/routes/oauth.js +1 -1
  32. package/build/routes/settings.js +4 -4
  33. package/build/routes/workflows/discovery.js +3 -3
  34. package/build/routes/workflows/invocation.js +1 -1
  35. package/build/routes/yaml-workflows/cron.d.ts +2 -0
  36. package/build/routes/yaml-workflows/cron.js +117 -0
  37. package/build/routes/yaml-workflows/crud.js +39 -1
  38. package/build/routes/yaml-workflows/deployment.js +9 -9
  39. package/build/routes/yaml-workflows/index.js +4 -1
  40. package/build/services/auth/bot-api-key.js +1 -1
  41. package/build/services/auth/index.d.ts +4 -0
  42. package/build/services/auth/index.js +17 -0
  43. package/build/services/auth/service-token.js +1 -1
  44. package/build/services/config/provider.js +1 -1
  45. package/build/services/config/read.js +1 -1
  46. package/build/services/config/write.js +1 -1
  47. package/build/services/controlplane/index.js +3 -4
  48. package/build/services/controlplane/quorum-bridge.js +2 -2
  49. package/build/services/cron/index.d.ts +17 -0
  50. package/build/services/cron/index.js +98 -6
  51. package/build/services/dba.d.ts +4 -0
  52. package/build/services/dba.js +3 -6
  53. package/build/services/escalation/bulk.js +1 -1
  54. package/build/services/escalation/crud.js +1 -1
  55. package/build/services/escalation/queries.js +1 -1
  56. package/build/services/export/client.js +2 -5
  57. package/build/services/export/index.js +14 -2
  58. package/build/services/hotmesh-utils.js +1 -1
  59. package/build/services/iam/bots.js +6 -12
  60. package/build/services/iam/context.d.ts +1 -1
  61. package/build/services/iam/context.js +5 -5
  62. package/build/services/iam/credentials.js +1 -1
  63. package/build/services/iam/ephemeral.js +8 -15
  64. package/build/services/iam/principal.js +3 -10
  65. package/build/services/iam/resolve.js +1 -1
  66. package/build/services/iam/sql.d.ts +10 -0
  67. package/build/services/iam/sql.js +42 -0
  68. package/build/services/insight/index.d.ts +12 -0
  69. package/build/services/insight/index.js +34 -6
  70. package/build/services/interceptor/activities/escalation.js +1 -1
  71. package/build/services/interceptor/activities/task.js +9 -6
  72. package/build/services/interceptor/activities/workflow.js +4 -5
  73. package/build/services/interceptor/activity-interceptor.d.ts +1 -1
  74. package/build/services/interceptor/activity-interceptor.js +5 -5
  75. package/build/services/interceptor/completion.js +1 -1
  76. package/build/services/interceptor/escalation.js +1 -1
  77. package/build/services/interceptor/index.js +4 -4
  78. package/build/services/interceptor/lifecycle.js +1 -1
  79. package/build/services/maintenance/index.js +4 -5
  80. package/build/services/mcp/adapter.js +1 -16
  81. package/build/services/mcp/client/connection.d.ts +10 -1
  82. package/build/services/mcp/client/connection.js +51 -3
  83. package/build/services/mcp/client/tools.js +1 -1
  84. package/build/services/mcp/db-server/index.js +1 -1
  85. package/build/services/mcp/db-server/schemas.d.ts +2 -2
  86. package/build/services/mcp/db-server/tools.js +17 -4
  87. package/build/services/mcp/db.d.ts +1 -1
  88. package/build/services/mcp/db.js +11 -1
  89. package/build/services/mcp/playwright-server/index.js +1 -1
  90. package/build/services/mcp/playwright-server/lifecycle.js +1 -1
  91. package/build/services/mcp/playwright-server/schemas.d.ts +2 -2
  92. package/build/services/mcp/playwright-server/tools.js +1 -1
  93. package/build/services/mcp/server.js +1 -1
  94. package/build/services/mcp/sql.d.ts +7 -1
  95. package/build/services/mcp/sql.js +36 -3
  96. package/build/services/mcp/types.d.ts +3 -1
  97. package/build/services/mcp/workflow-compiler-server.js +1 -1
  98. package/build/services/mcp/workflow-server.js +1 -1
  99. package/build/services/mcp-runs/execution-builder.js +8 -6
  100. package/build/services/mcp-runs/queries.js +2 -2
  101. package/build/services/mcp-runs/sql.d.ts +4 -1
  102. package/build/services/mcp-runs/sql.js +23 -2
  103. package/build/services/namespace/index.js +1 -1
  104. package/build/services/oauth/db.js +9 -37
  105. package/build/services/oauth/index.js +1 -1
  106. package/build/services/oauth/providers/registry.js +1 -1
  107. package/build/services/oauth/sql.d.ts +7 -0
  108. package/build/services/oauth/sql.js +32 -0
  109. package/build/services/orchestrator/index.js +3 -3
  110. package/build/services/role/index.js +1 -1
  111. package/build/services/task/crud.js +1 -1
  112. package/build/services/task/process.js +1 -1
  113. package/build/services/task/resolve.js +1 -1
  114. package/build/services/user/auth.js +1 -1
  115. package/build/services/user/crud.js +1 -1
  116. package/build/services/user/rbac.js +1 -1
  117. package/build/services/user/roles.js +1 -1
  118. package/build/services/user/sql.d.ts +2 -0
  119. package/build/services/user/sql.js +3 -1
  120. package/build/services/yaml-workflow/db-utils.js +1 -1
  121. package/build/services/yaml-workflow/db.d.ts +3 -0
  122. package/build/services/yaml-workflow/db.js +25 -1
  123. package/build/services/yaml-workflow/deployer-helpers.js +1 -1
  124. package/build/services/yaml-workflow/deployer.js +4 -4
  125. package/build/services/yaml-workflow/generator.js +1 -1
  126. package/build/services/yaml-workflow/input-analyzer-helpers.d.ts +6 -0
  127. package/build/services/yaml-workflow/input-analyzer-helpers.js +36 -7
  128. package/build/services/yaml-workflow/input-analyzer.js +16 -3
  129. package/build/services/yaml-workflow/invoke.d.ts +19 -0
  130. package/build/services/yaml-workflow/invoke.js +80 -0
  131. package/build/services/yaml-workflow/pipeline/analyze.js +1 -1
  132. package/build/services/yaml-workflow/pipeline/build/dag.js +11 -6
  133. package/build/services/yaml-workflow/pipeline/build/wiring.d.ts +1 -1
  134. package/build/services/yaml-workflow/pipeline/build/wiring.js +89 -2
  135. package/build/services/yaml-workflow/pipeline/compile/llm-call.js +1 -1
  136. package/build/services/yaml-workflow/pipeline/extract.js +5 -3
  137. package/build/services/yaml-workflow/pipeline/index.d.ts +5 -0
  138. package/build/services/yaml-workflow/pipeline/index.js +22 -0
  139. package/build/services/yaml-workflow/pipeline/prompts.d.ts +1 -1
  140. package/build/services/yaml-workflow/pipeline/prompts.js +44 -1
  141. package/build/services/yaml-workflow/pipeline/validate.js +2 -2
  142. package/build/services/yaml-workflow/sql.d.ts +3 -0
  143. package/build/services/yaml-workflow/sql.js +16 -1
  144. package/build/services/yaml-workflow/types.d.ts +13 -1
  145. package/build/services/yaml-workflow/workers/callbacks.js +10 -2
  146. package/build/services/yaml-workflow/workers/events.js +2 -2
  147. package/build/services/yaml-workflow/workers/register.js +37 -9
  148. package/build/start/adapters.js +7 -7
  149. package/build/start/index.js +4 -4
  150. package/build/start/server.js +1 -1
  151. package/build/start/workers.d.ts +1 -2
  152. package/build/start/workers.js +8 -7
  153. package/build/system/activities/claude-code.js +1 -1
  154. package/build/system/activities/file-storage.js +1 -1
  155. package/build/system/activities/knowledge.d.ts +58 -0
  156. package/build/system/activities/knowledge.js +128 -0
  157. package/build/system/activities/sql.d.ts +9 -0
  158. package/build/system/activities/sql.js +41 -0
  159. package/build/system/activities/triage/context.js +1 -1
  160. package/build/system/activities/triage/discovery.d.ts +2 -14
  161. package/build/system/activities/triage/discovery.js +5 -161
  162. package/build/system/activities/triage/llm.d.ts +1 -8
  163. package/build/system/activities/triage/llm.js +2 -28
  164. package/build/system/activities/triage/tools.d.ts +1 -17
  165. package/build/system/activities/triage/tools.js +8 -167
  166. package/build/system/index.js +11 -4
  167. package/build/system/mcp-servers/admin/escalations.d.ts +5 -0
  168. package/build/system/mcp-servers/admin/escalations.js +149 -0
  169. package/build/system/mcp-servers/admin/index.d.ts +31 -0
  170. package/build/system/mcp-servers/admin/index.js +80 -0
  171. package/build/system/mcp-servers/admin/maintenance.d.ts +5 -0
  172. package/build/system/mcp-servers/admin/maintenance.js +58 -0
  173. package/build/system/mcp-servers/admin/mcp-servers.d.ts +5 -0
  174. package/build/system/mcp-servers/admin/mcp-servers.js +146 -0
  175. package/build/system/mcp-servers/admin/schemas.d.ts +411 -0
  176. package/build/system/mcp-servers/admin/schemas.js +177 -0
  177. package/build/system/mcp-servers/admin/tasks.d.ts +5 -0
  178. package/build/system/mcp-servers/admin/tasks.js +112 -0
  179. package/build/system/mcp-servers/admin/users.d.ts +5 -0
  180. package/build/system/mcp-servers/admin/users.js +167 -0
  181. package/build/system/mcp-servers/admin/workflow-config.d.ts +9 -0
  182. package/build/system/mcp-servers/admin/workflow-config.js +118 -0
  183. package/build/system/mcp-servers/admin/workflows.d.ts +6 -0
  184. package/build/system/mcp-servers/admin/workflows.js +138 -0
  185. package/build/system/mcp-servers/admin/yaml-workflows.d.ts +8 -0
  186. package/build/system/mcp-servers/admin/yaml-workflows.js +237 -0
  187. package/build/system/mcp-servers/claude-code.js +1 -1
  188. package/build/system/mcp-servers/db-query/index.js +1 -1
  189. package/build/system/mcp-servers/db-query/schemas.d.ts +2 -2
  190. package/build/system/mcp-servers/db-query/tools.js +17 -4
  191. package/build/system/mcp-servers/docs.d.ts +5 -0
  192. package/build/system/mcp-servers/docs.js +147 -0
  193. package/build/system/mcp-servers/file-storage.js +1 -1
  194. package/build/system/mcp-servers/http-fetch.js +1 -1
  195. package/build/system/mcp-servers/human-queue.js +1 -1
  196. package/build/system/mcp-servers/knowledge.d.ts +4 -0
  197. package/build/system/mcp-servers/knowledge.js +137 -0
  198. package/build/system/mcp-servers/oauth.js +1 -1
  199. package/build/system/mcp-servers/playwright/browser-lifecycle.js +1 -1
  200. package/build/system/mcp-servers/playwright/index.js +1 -1
  201. package/build/system/mcp-servers/playwright/schemas.d.ts +21 -10
  202. package/build/system/mcp-servers/playwright/schemas.js +3 -0
  203. package/build/system/mcp-servers/playwright/tools-navigation.js +22 -9
  204. package/build/system/mcp-servers/playwright/tools-run-script.js +20 -3
  205. package/build/system/mcp-servers/playwright/vision-helper.d.ts +12 -0
  206. package/build/system/mcp-servers/playwright/vision-helper.js +81 -0
  207. package/build/system/mcp-servers/playwright-cli/helpers.js +2 -2
  208. package/build/system/mcp-servers/playwright-cli/index.js +1 -1
  209. package/build/system/mcp-servers/playwright-cli/schemas.d.ts +10 -10
  210. package/build/system/mcp-servers/playwright-cli/schemas.js +1 -1
  211. package/build/system/mcp-servers/playwright-cli/tools-auth.js +1 -1
  212. package/build/system/mcp-servers/playwright-cli/tools-capture.js +9 -3
  213. package/build/system/mcp-servers/translation.d.ts +14 -0
  214. package/build/system/mcp-servers/translation.js +130 -0
  215. package/build/system/mcp-servers/vision-prompts.d.ts +2 -0
  216. package/build/system/mcp-servers/vision-prompts.js +9 -0
  217. package/build/system/mcp-servers/{document-vision.d.ts → vision.d.ts} +3 -4
  218. package/build/system/mcp-servers/vision.js +258 -0
  219. package/build/system/mcp-servers/workflow-compiler.js +1 -1
  220. package/build/system/mcp-servers/workflow.js +1 -1
  221. package/build/system/seed/index.js +13 -2
  222. package/build/system/seed/server-definitions.d.ts +1961 -322
  223. package/build/system/seed/server-definitions.js +68 -34
  224. package/build/system/seed/tool-manifests-admin.d.ts +1645 -0
  225. package/build/system/seed/tool-manifests-admin.js +45 -0
  226. package/build/system/seed/tool-manifests-browser.d.ts +1 -1
  227. package/build/system/seed/tool-manifests-browser.js +3 -3
  228. package/build/system/seed/tool-manifests-data.d.ts +62 -21
  229. package/build/system/seed/tool-manifests-data.js +55 -17
  230. package/build/system/seed/tool-manifests-knowledge.d.ts +171 -0
  231. package/build/system/seed/tool-manifests-knowledge.js +94 -0
  232. package/build/system/seed/tool-manifests-workflows.d.ts +7 -0
  233. package/build/system/seed/tool-manifests-workflows.js +10 -3
  234. package/build/system/workflows/mcp-deterministic/index.js +1 -1
  235. package/build/system/workflows/mcp-query/activities/discovery.d.ts +2 -20
  236. package/build/system/workflows/mcp-query/activities/discovery.js +5 -163
  237. package/build/system/workflows/mcp-query/activities/llm.d.ts +1 -7
  238. package/build/system/workflows/mcp-query/activities/llm.js +2 -27
  239. package/build/system/workflows/mcp-query/activities/tool-executor.d.ts +0 -4
  240. package/build/system/workflows/mcp-query/activities/tool-executor.js +2 -106
  241. package/build/system/workflows/mcp-query/activities/tool-loader.d.ts +0 -9
  242. package/build/system/workflows/mcp-query/activities/tool-loader.js +2 -87
  243. package/build/system/workflows/mcp-query/index.js +55 -5
  244. package/build/system/workflows/mcp-query/prompts.d.ts +1 -2
  245. package/build/system/workflows/mcp-query/prompts.js +5 -32
  246. package/build/system/workflows/mcp-query/strategy-advisors.d.ts +3 -14
  247. package/build/system/workflows/mcp-query/strategy-advisors.js +4 -107
  248. package/build/system/workflows/mcp-query/types.d.ts +2 -10
  249. package/build/system/workflows/mcp-query/types.js +0 -1
  250. package/build/system/workflows/mcp-query-router/index.js +1 -1
  251. package/build/system/workflows/mcp-triage/index.d.ts +2 -2
  252. package/build/system/workflows/mcp-triage/index.js +39 -7
  253. package/build/system/workflows/mcp-triage/prompts.js +7 -14
  254. package/build/system/workflows/mcp-triage-deterministic/index.js +1 -1
  255. package/build/system/workflows/mcp-triage-router/index.js +1 -1
  256. package/build/system/workflows/mcp-workflow-builder/activities/caches.d.ts +5 -0
  257. package/build/system/workflows/mcp-workflow-builder/activities/caches.js +8 -0
  258. package/build/system/workflows/mcp-workflow-builder/activities/index.d.ts +2 -0
  259. package/build/system/workflows/mcp-workflow-builder/activities/index.js +7 -0
  260. package/build/system/workflows/mcp-workflow-builder/activities/llm.d.ts +2 -0
  261. package/build/system/workflows/mcp-workflow-builder/activities/llm.js +25 -0
  262. package/build/system/workflows/mcp-workflow-builder/activities/tool-loader.d.ts +5 -0
  263. package/build/system/workflows/mcp-workflow-builder/activities/tool-loader.js +8 -0
  264. package/build/system/workflows/mcp-workflow-builder/index.d.ts +16 -0
  265. package/build/system/workflows/mcp-workflow-builder/index.js +229 -0
  266. package/build/system/workflows/mcp-workflow-builder/prompts.d.ts +8 -0
  267. package/build/system/workflows/mcp-workflow-builder/prompts.js +247 -0
  268. package/build/system/workflows/shared/discovery.d.ts +35 -0
  269. package/build/system/workflows/shared/discovery.js +175 -0
  270. package/build/system/workflows/shared/index.d.ts +7 -0
  271. package/build/system/workflows/shared/index.js +18 -0
  272. package/build/system/workflows/shared/llm-caller.d.ts +8 -0
  273. package/build/system/workflows/shared/llm-caller.js +31 -0
  274. package/build/system/workflows/shared/prompts.d.ts +2 -0
  275. package/build/system/workflows/shared/prompts.js +32 -0
  276. package/build/system/workflows/shared/strategy-advisors.d.ts +14 -0
  277. package/build/system/workflows/shared/strategy-advisors.js +109 -0
  278. package/build/system/workflows/shared/tool-executor.d.ts +11 -0
  279. package/build/system/workflows/shared/tool-executor.js +111 -0
  280. package/build/system/workflows/shared/tool-loader.d.ts +19 -0
  281. package/build/system/workflows/shared/tool-loader.js +97 -0
  282. package/build/system/workflows/shared/types.d.ts +9 -0
  283. package/build/system/workflows/shared/types.js +2 -0
  284. package/build/system/workflows/tool-result-guard.d.ts +14 -0
  285. package/build/system/workflows/tool-result-guard.js +78 -0
  286. package/build/tsconfig.tsbuildinfo +1 -1
  287. package/build/types/mcp.d.ts +4 -3
  288. package/build/types/user.d.ts +2 -0
  289. package/build/types/yaml-workflow.d.ts +6 -2
  290. package/build/vitest.config.d.ts +1 -1
  291. package/build/vitest.integration.config.d.ts +1 -1
  292. package/build/workers/index.js +2 -8
  293. package/dashboard/dist/assets/AdminDashboard-BXkKGkb5.js +2 -0
  294. package/dashboard/dist/assets/AdminDashboard-BXkKGkb5.js.map +1 -0
  295. package/dashboard/dist/assets/AvailableEscalationsPage-DcH592mc.js +2 -0
  296. package/dashboard/dist/assets/AvailableEscalationsPage-DcH592mc.js.map +1 -0
  297. package/dashboard/dist/assets/BotPicker-A6LtzyuO.js +2 -0
  298. package/dashboard/dist/assets/{BotPicker-D6FYW1Gt.js.map → BotPicker-A6LtzyuO.js.map} +1 -1
  299. package/dashboard/dist/assets/CollapsibleSection-C7nL2_mv.js +2 -0
  300. package/dashboard/dist/assets/{CollapsibleSection-Cxk4wvjT.js.map → CollapsibleSection-C7nL2_mv.js.map} +1 -1
  301. package/dashboard/dist/assets/ConfirmDeleteModal-CWFwJrSl.js +2 -0
  302. package/dashboard/dist/assets/{ConfirmDeleteModal-FSXyKjaB.js.map → ConfirmDeleteModal-CWFwJrSl.js.map} +1 -1
  303. package/dashboard/dist/assets/CopyableId-DbZ5c3jh.js +2 -0
  304. package/dashboard/dist/assets/{CopyableId-CBdxWfp8.js.map → CopyableId-DbZ5c3jh.js.map} +1 -1
  305. package/dashboard/dist/assets/CredentialsPage-ClWkmLPu.js +2 -0
  306. package/dashboard/dist/assets/CredentialsPage-ClWkmLPu.js.map +1 -0
  307. package/dashboard/dist/assets/CustomDurationPicker-CtH2hReF.js +2 -0
  308. package/dashboard/dist/assets/{CustomDurationPicker-CAninCbl.js.map → CustomDurationPicker-CtH2hReF.js.map} +1 -1
  309. package/dashboard/dist/assets/DataTable-CM5ZcpPi.js +2 -0
  310. package/dashboard/dist/assets/DataTable-CM5ZcpPi.js.map +1 -0
  311. package/dashboard/dist/assets/ElapsedCell-CwqavyeC.js +2 -0
  312. package/dashboard/dist/assets/ElapsedCell-CwqavyeC.js.map +1 -0
  313. package/dashboard/dist/assets/EmptyState-BBn78pmm.js +2 -0
  314. package/dashboard/dist/assets/{EmptyState-2CmV-IaS.js.map → EmptyState-BBn78pmm.js.map} +1 -1
  315. package/dashboard/dist/assets/EscalationsOverview-BcJ2E3X7.js +2 -0
  316. package/dashboard/dist/assets/{EscalationsOverview-GXYFPASS.js.map → EscalationsOverview-BcJ2E3X7.js.map} +1 -1
  317. package/dashboard/dist/assets/EventTable-C1en_KZ0.js +2 -0
  318. package/dashboard/dist/assets/{EventTable-B01oJf6Y.js.map → EventTable-C1en_KZ0.js.map} +1 -1
  319. package/dashboard/dist/assets/FilterBar-CZTlrLQT.js +2 -0
  320. package/dashboard/dist/assets/{FilterBar-Ck4K4rzu.js.map → FilterBar-CZTlrLQT.js.map} +1 -1
  321. package/dashboard/dist/assets/ListToolbar-Cdbsapig.js +2 -0
  322. package/dashboard/dist/assets/ListToolbar-Cdbsapig.js.map +1 -0
  323. package/dashboard/dist/assets/McpOverview-CSpEJxKa.js +2 -0
  324. package/dashboard/dist/assets/{McpOverview-JkvRcX2e.js.map → McpOverview-CSpEJxKa.js.map} +1 -1
  325. package/dashboard/dist/assets/McpQueryDetailPage-DhqEI180.js +5 -0
  326. package/dashboard/dist/assets/McpQueryDetailPage-DhqEI180.js.map +1 -0
  327. package/dashboard/dist/assets/McpQueryPage-CIiVMlqo.js +2 -0
  328. package/dashboard/dist/assets/McpQueryPage-CIiVMlqo.js.map +1 -0
  329. package/dashboard/dist/assets/McpRunDetailPage-9xdxgG4d.js +2 -0
  330. package/dashboard/dist/assets/McpRunDetailPage-9xdxgG4d.js.map +1 -0
  331. package/dashboard/dist/assets/McpRunsPage-wWLqHsd4.js +2 -0
  332. package/dashboard/dist/assets/McpRunsPage-wWLqHsd4.js.map +1 -0
  333. package/dashboard/dist/assets/Modal-kB_P7ZOr.js +2 -0
  334. package/dashboard/dist/assets/{Modal-B4rbIVAn.js.map → Modal-kB_P7ZOr.js.map} +1 -1
  335. package/dashboard/dist/assets/OperatorDashboard-jc0vrgDI.js +2 -0
  336. package/dashboard/dist/assets/OperatorDashboard-jc0vrgDI.js.map +1 -0
  337. package/dashboard/dist/assets/PageHeader-NkOeBR05.js +2 -0
  338. package/dashboard/dist/assets/PageHeader-NkOeBR05.js.map +1 -0
  339. package/dashboard/dist/assets/PageHeaderWithStats-ywNhrmFK.js +2 -0
  340. package/dashboard/dist/assets/PageHeaderWithStats-ywNhrmFK.js.map +1 -0
  341. package/dashboard/dist/assets/PriorityBadge-B2MQbSxy.js +2 -0
  342. package/dashboard/dist/assets/{PriorityBadge-DfQY9St9.js.map → PriorityBadge-B2MQbSxy.js.map} +1 -1
  343. package/dashboard/dist/assets/ProcessDetailPage-B7z7IdqE.js +2 -0
  344. package/dashboard/dist/assets/ProcessDetailPage-B7z7IdqE.js.map +1 -0
  345. package/dashboard/dist/assets/ProcessesListPage-C-uHadO6.js +2 -0
  346. package/dashboard/dist/assets/ProcessesListPage-C-uHadO6.js.map +1 -0
  347. package/dashboard/dist/assets/RolePill-C1dgC-fK.js +2 -0
  348. package/dashboard/dist/assets/{RolePill-BTPa8L-P.js.map → RolePill-C1dgC-fK.js.map} +1 -1
  349. package/dashboard/dist/assets/RolesPage-BSxrD1vm.js +2 -0
  350. package/dashboard/dist/assets/RolesPage-BSxrD1vm.js.map +1 -0
  351. package/dashboard/dist/assets/RowActions-lYaHGI-v.js +2 -0
  352. package/dashboard/dist/assets/{RowActions-Dg-Fsm5O.js.map → RowActions-lYaHGI-v.js.map} +1 -1
  353. package/dashboard/dist/assets/RunAsSelector-CJDnyp93.js +2 -0
  354. package/dashboard/dist/assets/RunAsSelector-CJDnyp93.js.map +1 -0
  355. package/dashboard/dist/assets/StatCard-v2TiITVr.js +2 -0
  356. package/dashboard/dist/assets/{StatCard-DlgF0CJC.js.map → StatCard-v2TiITVr.js.map} +1 -1
  357. package/dashboard/dist/assets/StatusBadge-DWlxevgG.js +2 -0
  358. package/dashboard/dist/assets/StatusBadge-DWlxevgG.js.map +1 -0
  359. package/dashboard/dist/assets/StepIndicator-CRM4ft28.js +2 -0
  360. package/dashboard/dist/assets/StepIndicator-CRM4ft28.js.map +1 -0
  361. package/dashboard/dist/assets/StickyPagination-CF0EToEU.js +2 -0
  362. package/dashboard/dist/assets/{StickyPagination-F9FZsRy9.js.map → StickyPagination-CF0EToEU.js.map} +1 -1
  363. package/dashboard/dist/assets/SwimlaneTimeline-CNlj7fgg.js +2 -0
  364. package/dashboard/dist/assets/SwimlaneTimeline-CNlj7fgg.js.map +1 -0
  365. package/dashboard/dist/assets/TagInput-CH8qMGhC.js +2 -0
  366. package/dashboard/dist/assets/TagInput-CH8qMGhC.js.map +1 -0
  367. package/dashboard/dist/assets/TaskDetailPage-CdWo-6mu.js +2 -0
  368. package/dashboard/dist/assets/TaskDetailPage-CdWo-6mu.js.map +1 -0
  369. package/dashboard/dist/assets/TaskQueuePill-BPj4ogVG.js +2 -0
  370. package/dashboard/dist/assets/{TaskQueuePill-awmtb0qw.js.map → TaskQueuePill-BPj4ogVG.js.map} +1 -1
  371. package/dashboard/dist/assets/TasksListPage-CtRkMpKU.js +2 -0
  372. package/dashboard/dist/assets/{TasksListPage-C_QF23c1.js.map → TasksListPage-CtRkMpKU.js.map} +1 -1
  373. package/dashboard/dist/assets/TimeAgo-Di1a3X5P.js +2 -0
  374. package/dashboard/dist/assets/TimeAgo-Di1a3X5P.js.map +1 -0
  375. package/dashboard/dist/assets/TimestampCell-CqrXql-S.js +2 -0
  376. package/dashboard/dist/assets/TimestampCell-CqrXql-S.js.map +1 -0
  377. package/dashboard/dist/assets/UserName-BUFYCnRa.js +2 -0
  378. package/dashboard/dist/assets/{UserName-DaP4YAKr.js.map → UserName-BUFYCnRa.js.map} +1 -1
  379. package/dashboard/dist/assets/WorkflowExecutionPage-25iusMml.js +2 -0
  380. package/dashboard/dist/assets/WorkflowExecutionPage-25iusMml.js.map +1 -0
  381. package/dashboard/dist/assets/WorkflowPill-DPKOcbf4.js +2 -0
  382. package/dashboard/dist/assets/WorkflowPill-DPKOcbf4.js.map +1 -0
  383. package/dashboard/dist/assets/WorkflowsDashboard-BgxslssH.js +2 -0
  384. package/dashboard/dist/assets/WorkflowsDashboard-BgxslssH.js.map +1 -0
  385. package/dashboard/dist/assets/WorkflowsOverview-Doe5L-Re.js +2 -0
  386. package/dashboard/dist/assets/{WorkflowsOverview-D9OzzQqw.js.map → WorkflowsOverview-Doe5L-Re.js.map} +1 -1
  387. package/dashboard/dist/assets/YamlWorkflowsPage-BliAckJ6.js +2 -0
  388. package/dashboard/dist/assets/YamlWorkflowsPage-BliAckJ6.js.map +1 -0
  389. package/dashboard/dist/assets/{bots-BkKVMbUW.js → bots-Bi2_O1Ts.js} +2 -2
  390. package/dashboard/dist/assets/{bots-BkKVMbUW.js.map → bots-Bi2_O1Ts.js.map} +1 -1
  391. package/dashboard/dist/assets/constants-BHkpVaqx.js +2 -0
  392. package/dashboard/dist/assets/constants-BHkpVaqx.js.map +1 -0
  393. package/dashboard/dist/assets/escalation-Ck1KlLkT.js +2 -0
  394. package/dashboard/dist/assets/escalation-Ck1KlLkT.js.map +1 -0
  395. package/dashboard/dist/assets/escalation-columns-ohDsj2eJ.js +2 -0
  396. package/dashboard/dist/assets/{escalation-columns-D6aqStaY.js.map → escalation-columns-ohDsj2eJ.js.map} +1 -1
  397. package/dashboard/dist/assets/helpers-BoD2SgUY.js +2 -0
  398. package/dashboard/dist/assets/helpers-BoD2SgUY.js.map +1 -0
  399. package/dashboard/dist/assets/index-BEtLIsML.js +2 -0
  400. package/dashboard/dist/assets/index-BEtLIsML.js.map +1 -0
  401. package/dashboard/dist/assets/index-Bn2xHDr8.js +5 -0
  402. package/dashboard/dist/assets/index-Bn2xHDr8.js.map +1 -0
  403. package/dashboard/dist/assets/index-BpT-6WgJ.js +2 -0
  404. package/dashboard/dist/assets/{index-DTPzZr_X.js.map → index-BpT-6WgJ.js.map} +1 -1
  405. package/dashboard/dist/assets/index-CZrJ09p-.js +2 -0
  406. package/dashboard/dist/assets/index-CZrJ09p-.js.map +1 -0
  407. package/dashboard/dist/assets/index-D3NyVADW.js +2 -0
  408. package/dashboard/dist/assets/index-D3NyVADW.js.map +1 -0
  409. package/dashboard/dist/assets/index-D7zYZOnH.js +2 -0
  410. package/dashboard/dist/assets/index-D7zYZOnH.js.map +1 -0
  411. package/dashboard/dist/assets/index-DOkHXmyf.js +17 -0
  412. package/dashboard/dist/assets/index-DOkHXmyf.js.map +1 -0
  413. package/dashboard/dist/assets/index-DYyLF-Qb.js +281 -0
  414. package/dashboard/dist/assets/index-DYyLF-Qb.js.map +1 -0
  415. package/dashboard/dist/assets/index-Dk2Q51o0.js +2 -0
  416. package/dashboard/dist/assets/index-Dk2Q51o0.js.map +1 -0
  417. package/dashboard/dist/assets/index-FuohTtaM.js +6 -0
  418. package/dashboard/dist/assets/index-FuohTtaM.js.map +1 -0
  419. package/dashboard/dist/assets/index-PyCTS05D.css +1 -0
  420. package/dashboard/dist/assets/mcp-CJtYjA7A.js +2 -0
  421. package/dashboard/dist/assets/mcp-CJtYjA7A.js.map +1 -0
  422. package/dashboard/dist/assets/mcp-query-jQJQrs_7.js +2 -0
  423. package/dashboard/dist/assets/mcp-query-jQJQrs_7.js.map +1 -0
  424. package/dashboard/dist/assets/{mcp-runs-ChPbpvXK.js → mcp-runs-DUWm9Z4V.js} +2 -2
  425. package/dashboard/dist/assets/{mcp-runs-ChPbpvXK.js.map → mcp-runs-DUWm9Z4V.js.map} +1 -1
  426. package/dashboard/dist/assets/namespaces-BM5P2qmL.js +2 -0
  427. package/dashboard/dist/assets/{namespaces-BgbaC3ow.js.map → namespaces-BM5P2qmL.js.map} +1 -1
  428. package/dashboard/dist/assets/{roles-ZNrqqnQl.js → roles-lv0shpjJ.js} +2 -2
  429. package/dashboard/dist/assets/{roles-ZNrqqnQl.js.map → roles-lv0shpjJ.js.map} +1 -1
  430. package/dashboard/dist/assets/settings-Wlq92mRo.js +2 -0
  431. package/dashboard/dist/assets/{settings-eBRSE0mQ.js.map → settings-Wlq92mRo.js.map} +1 -1
  432. package/dashboard/dist/assets/tasks-BFGm4PuE.js +2 -0
  433. package/dashboard/dist/assets/{tasks-tRqClPns.js.map → tasks-BFGm4PuE.js.map} +1 -1
  434. package/dashboard/dist/assets/useEventHooks-DIE6ue4x.js +2 -0
  435. package/dashboard/dist/assets/useEventHooks-DIE6ue4x.js.map +1 -0
  436. package/dashboard/dist/assets/useExpandedRows-Cg9iq6Vy.js +2 -0
  437. package/dashboard/dist/assets/useExpandedRows-Cg9iq6Vy.js.map +1 -0
  438. package/dashboard/dist/assets/{useFilterParams-BaXUAkYK.js → useFilterParams-BUyLHcx_.js} +2 -2
  439. package/dashboard/dist/assets/{useFilterParams-BaXUAkYK.js.map → useFilterParams-BUyLHcx_.js.map} +1 -1
  440. package/dashboard/dist/assets/{useYamlActivityEvents-BO51u8tm.js → useYamlActivityEvents-DCwSO73t.js} +2 -2
  441. package/dashboard/dist/assets/useYamlActivityEvents-DCwSO73t.js.map +1 -0
  442. package/dashboard/dist/assets/{users-tMvNyOo8.js → users-tA5-K0wA.js} +2 -2
  443. package/dashboard/dist/assets/{users-tMvNyOo8.js.map → users-tA5-K0wA.js.map} +1 -1
  444. package/dashboard/dist/assets/vendor-icons-BiIug1SK.js +402 -0
  445. package/dashboard/dist/assets/vendor-icons-BiIug1SK.js.map +1 -0
  446. package/dashboard/dist/assets/vendor-query-DLp59M9_.js +35 -0
  447. package/dashboard/dist/assets/vendor-query-DLp59M9_.js.map +1 -0
  448. package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js +26 -0
  449. package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js.map +1 -0
  450. package/dashboard/dist/assets/{workflows-Cc4VHcrp.js → workflows-CfLc15Wr.js} +2 -2
  451. package/dashboard/dist/assets/{workflows-Cc4VHcrp.js.map → workflows-CfLc15Wr.js.map} +1 -1
  452. package/dashboard/dist/assets/yaml-workflows-D7JXNqbM.js +2 -0
  453. package/dashboard/dist/assets/yaml-workflows-D7JXNqbM.js.map +1 -0
  454. package/dashboard/dist/index.html +5 -5
  455. package/docs/api/dba.md +81 -0
  456. package/docs/api/escalations.md +575 -0
  457. package/docs/api/exports.md +170 -0
  458. package/docs/api/maintenance.md +93 -0
  459. package/docs/api/mcp-runs.md +128 -0
  460. package/docs/api/mcp-servers.md +253 -0
  461. package/docs/api/namespaces.md +48 -0
  462. package/docs/api/roles.md +390 -0
  463. package/docs/api/service-accounts.md +188 -0
  464. package/docs/api/settings.md +33 -0
  465. package/docs/api/tasks.md +167 -0
  466. package/docs/api/users.md +180 -0
  467. package/docs/api/workflows.md +616 -0
  468. package/docs/api/yaml-workflows.md +312 -0
  469. package/docs/architecture.md +221 -0
  470. package/docs/auth.md +181 -0
  471. package/docs/cloud.md +272 -0
  472. package/docs/compilation.md +136 -0
  473. package/docs/contributing.md +56 -0
  474. package/docs/dashboard.md +145 -0
  475. package/docs/data.md +478 -0
  476. package/docs/escalation-strategies.md +263 -0
  477. package/docs/events.md +251 -0
  478. package/docs/iam.md +222 -0
  479. package/docs/img/01-login.png +0 -0
  480. package/docs/img/02-dashboard-home.png +0 -0
  481. package/docs/img/03-processes-list.png +0 -0
  482. package/docs/img/04-escalations-list.png +0 -0
  483. package/docs/img/05-mcp-servers.png +0 -0
  484. package/docs/img/06-mcp-pipelines.png +0 -0
  485. package/docs/img/07-workflows-list.png +0 -0
  486. package/docs/img/compilation/01-query-submit.png +0 -0
  487. package/docs/img/compilation/02-mcp-servers.png +0 -0
  488. package/docs/img/compilation/03-query-completed.png +0 -0
  489. package/docs/img/compilation/04-wizard-original.png +0 -0
  490. package/docs/img/compilation/05-wizard-timeline.png +0 -0
  491. package/docs/img/compilation/06-wizard-profile.png +0 -0
  492. package/docs/img/compilation/07-wizard-deploy.png +0 -0
  493. package/docs/img/compilation/08-wizard-test-modal.png +0 -0
  494. package/docs/img/compilation/09-wizard-test-compare.png +0 -0
  495. package/docs/img/compilation/10-wizard-verify.png +0 -0
  496. package/docs/logging.md +110 -0
  497. package/docs/maintenance.md +221 -0
  498. package/docs/mcp.md +985 -0
  499. package/docs/oauth-and-delegation.md +469 -0
  500. package/docs/telemetry.md +144 -0
  501. package/docs/workflows.md +695 -0
  502. package/package.json +8 -9
  503. package/build/services/db/index.d.ts +0 -3
  504. package/build/services/mcp/vision-server.d.ts +0 -15
  505. package/build/services/mcp/vision-server.js +0 -214
  506. package/build/system/mcp-servers/document-vision.js +0 -228
  507. package/build/system/mcp-servers/prompts.d.ts +0 -4
  508. package/build/system/mcp-servers/prompts.js +0 -10
  509. package/dashboard/dist/assets/AdminDashboard-jfacvOC7.js +0 -2
  510. package/dashboard/dist/assets/AdminDashboard-jfacvOC7.js.map +0 -1
  511. package/dashboard/dist/assets/AvailableEscalationsPage-BglLDoT8.js +0 -2
  512. package/dashboard/dist/assets/AvailableEscalationsPage-BglLDoT8.js.map +0 -1
  513. package/dashboard/dist/assets/BotPicker-D6FYW1Gt.js +0 -2
  514. package/dashboard/dist/assets/CollapsibleSection-Cxk4wvjT.js +0 -2
  515. package/dashboard/dist/assets/ConfirmDeleteModal-FSXyKjaB.js +0 -2
  516. package/dashboard/dist/assets/CopyableId-CBdxWfp8.js +0 -2
  517. package/dashboard/dist/assets/CredentialsPage-Ikzsot0w.js +0 -2
  518. package/dashboard/dist/assets/CredentialsPage-Ikzsot0w.js.map +0 -1
  519. package/dashboard/dist/assets/CustomDurationPicker-CAninCbl.js +0 -2
  520. package/dashboard/dist/assets/DataTable-BDn1WBHS.js +0 -2
  521. package/dashboard/dist/assets/DataTable-BDn1WBHS.js.map +0 -1
  522. package/dashboard/dist/assets/EmptyState-2CmV-IaS.js +0 -2
  523. package/dashboard/dist/assets/EscalationsOverview-GXYFPASS.js +0 -2
  524. package/dashboard/dist/assets/EventTable-B01oJf6Y.js +0 -2
  525. package/dashboard/dist/assets/Field-DuFBAYhu.js +0 -2
  526. package/dashboard/dist/assets/Field-DuFBAYhu.js.map +0 -1
  527. package/dashboard/dist/assets/FilterBar-Ck4K4rzu.js +0 -2
  528. package/dashboard/dist/assets/McpOverview-JkvRcX2e.js +0 -2
  529. package/dashboard/dist/assets/McpQueryDetailPage-CUMqhQdS.js +0 -2
  530. package/dashboard/dist/assets/McpQueryDetailPage-CUMqhQdS.js.map +0 -1
  531. package/dashboard/dist/assets/McpQueryPage-DRRhw4nN.js +0 -2
  532. package/dashboard/dist/assets/McpQueryPage-DRRhw4nN.js.map +0 -1
  533. package/dashboard/dist/assets/McpRunDetailPage-CmPs5EvE.js +0 -2
  534. package/dashboard/dist/assets/McpRunDetailPage-CmPs5EvE.js.map +0 -1
  535. package/dashboard/dist/assets/McpRunsPage-Dl5Y2u6k.js +0 -2
  536. package/dashboard/dist/assets/McpRunsPage-Dl5Y2u6k.js.map +0 -1
  537. package/dashboard/dist/assets/Modal-B4rbIVAn.js +0 -2
  538. package/dashboard/dist/assets/OperatorDashboard-B56il28q.js +0 -2
  539. package/dashboard/dist/assets/OperatorDashboard-B56il28q.js.map +0 -1
  540. package/dashboard/dist/assets/PageHeader-CpWFly5S.js +0 -2
  541. package/dashboard/dist/assets/PageHeader-CpWFly5S.js.map +0 -1
  542. package/dashboard/dist/assets/PriorityBadge-DfQY9St9.js +0 -2
  543. package/dashboard/dist/assets/ProcessDetailPage-CMLq4M7D.js +0 -2
  544. package/dashboard/dist/assets/ProcessDetailPage-CMLq4M7D.js.map +0 -1
  545. package/dashboard/dist/assets/ProcessesListPage-CZ_HF06v.js +0 -2
  546. package/dashboard/dist/assets/ProcessesListPage-CZ_HF06v.js.map +0 -1
  547. package/dashboard/dist/assets/RolePill-BTPa8L-P.js +0 -2
  548. package/dashboard/dist/assets/RolesPage-9grZW7yR.js +0 -2
  549. package/dashboard/dist/assets/RolesPage-9grZW7yR.js.map +0 -1
  550. package/dashboard/dist/assets/RowActions-Dg-Fsm5O.js +0 -2
  551. package/dashboard/dist/assets/SimpleMarkdown-CBlvaWP4.js +0 -4
  552. package/dashboard/dist/assets/SimpleMarkdown-CBlvaWP4.js.map +0 -1
  553. package/dashboard/dist/assets/StatCard-DlgF0CJC.js +0 -2
  554. package/dashboard/dist/assets/StatusBadge-TlC4jiig.js +0 -2
  555. package/dashboard/dist/assets/StatusBadge-TlC4jiig.js.map +0 -1
  556. package/dashboard/dist/assets/StickyPagination-F9FZsRy9.js +0 -2
  557. package/dashboard/dist/assets/SwimlaneTimeline-7SiwATsZ.js +0 -2
  558. package/dashboard/dist/assets/SwimlaneTimeline-7SiwATsZ.js.map +0 -1
  559. package/dashboard/dist/assets/TaskDetailPage-CbPVTakt.js +0 -2
  560. package/dashboard/dist/assets/TaskDetailPage-CbPVTakt.js.map +0 -1
  561. package/dashboard/dist/assets/TaskQueuePill-awmtb0qw.js +0 -2
  562. package/dashboard/dist/assets/TasksListPage-C_QF23c1.js +0 -2
  563. package/dashboard/dist/assets/TimeAgo-UPG6DoH8.js +0 -2
  564. package/dashboard/dist/assets/TimeAgo-UPG6DoH8.js.map +0 -1
  565. package/dashboard/dist/assets/TimestampCell-DoWMKg6w.js +0 -2
  566. package/dashboard/dist/assets/TimestampCell-DoWMKg6w.js.map +0 -1
  567. package/dashboard/dist/assets/UserName-DaP4YAKr.js +0 -2
  568. package/dashboard/dist/assets/VersionHistory-Bt7WBr6m.js +0 -5
  569. package/dashboard/dist/assets/VersionHistory-Bt7WBr6m.js.map +0 -1
  570. package/dashboard/dist/assets/WorkflowExecutionPage-DjtAQ3hy.js +0 -2
  571. package/dashboard/dist/assets/WorkflowExecutionPage-DjtAQ3hy.js.map +0 -1
  572. package/dashboard/dist/assets/WorkflowPill-CCDSVaQj.js +0 -2
  573. package/dashboard/dist/assets/WorkflowPill-CCDSVaQj.js.map +0 -1
  574. package/dashboard/dist/assets/WorkflowsDashboard-D8z9uBNB.js +0 -2
  575. package/dashboard/dist/assets/WorkflowsDashboard-D8z9uBNB.js.map +0 -1
  576. package/dashboard/dist/assets/WorkflowsOverview-D9OzzQqw.js +0 -2
  577. package/dashboard/dist/assets/YamlWorkflowDetailPage-DrDvvP62.js +0 -3
  578. package/dashboard/dist/assets/YamlWorkflowDetailPage-DrDvvP62.js.map +0 -1
  579. package/dashboard/dist/assets/YamlWorkflowsPage-COqiNCQK.js +0 -2
  580. package/dashboard/dist/assets/YamlWorkflowsPage-COqiNCQK.js.map +0 -1
  581. package/dashboard/dist/assets/constants-CgaZfe5d.js +0 -2
  582. package/dashboard/dist/assets/constants-CgaZfe5d.js.map +0 -1
  583. package/dashboard/dist/assets/escalation-columns-D6aqStaY.js +0 -2
  584. package/dashboard/dist/assets/escalation-qalymbKB.js +0 -2
  585. package/dashboard/dist/assets/escalation-qalymbKB.js.map +0 -1
  586. package/dashboard/dist/assets/format-gXZXQ-HJ.js +0 -2
  587. package/dashboard/dist/assets/format-gXZXQ-HJ.js.map +0 -1
  588. package/dashboard/dist/assets/helpers-0gSleuzT.js +0 -2
  589. package/dashboard/dist/assets/helpers-0gSleuzT.js.map +0 -1
  590. package/dashboard/dist/assets/index-BWvMHed7.js +0 -6
  591. package/dashboard/dist/assets/index-BWvMHed7.js.map +0 -1
  592. package/dashboard/dist/assets/index-BaszoPO_.css +0 -1
  593. package/dashboard/dist/assets/index-Cn2jyj9A.js +0 -2
  594. package/dashboard/dist/assets/index-Cn2jyj9A.js.map +0 -1
  595. package/dashboard/dist/assets/index-D8VH6K8B.js +0 -54
  596. package/dashboard/dist/assets/index-D8VH6K8B.js.map +0 -1
  597. package/dashboard/dist/assets/index-D9SYwJsi.js +0 -3
  598. package/dashboard/dist/assets/index-D9SYwJsi.js.map +0 -1
  599. package/dashboard/dist/assets/index-DTPzZr_X.js +0 -2
  600. package/dashboard/dist/assets/index-D_6AB5BE.js +0 -2
  601. package/dashboard/dist/assets/index-D_6AB5BE.js.map +0 -1
  602. package/dashboard/dist/assets/index-S9Ks2Lj2.js +0 -2
  603. package/dashboard/dist/assets/index-S9Ks2Lj2.js.map +0 -1
  604. package/dashboard/dist/assets/index-X85K5bHC.js +0 -17
  605. package/dashboard/dist/assets/index-X85K5bHC.js.map +0 -1
  606. package/dashboard/dist/assets/index-rjmgHlSH.js +0 -2
  607. package/dashboard/dist/assets/index-rjmgHlSH.js.map +0 -1
  608. package/dashboard/dist/assets/mcp-blCW6IL7.js +0 -2
  609. package/dashboard/dist/assets/mcp-blCW6IL7.js.map +0 -1
  610. package/dashboard/dist/assets/mcp-query-DoAyPbjC.js +0 -2
  611. package/dashboard/dist/assets/mcp-query-DoAyPbjC.js.map +0 -1
  612. package/dashboard/dist/assets/namespaces-BgbaC3ow.js +0 -2
  613. package/dashboard/dist/assets/settings-eBRSE0mQ.js +0 -2
  614. package/dashboard/dist/assets/tasks-tRqClPns.js +0 -2
  615. package/dashboard/dist/assets/useNatsEvents-Xr43X1fG.js +0 -2
  616. package/dashboard/dist/assets/useNatsEvents-Xr43X1fG.js.map +0 -1
  617. package/dashboard/dist/assets/useYamlActivityEvents-BO51u8tm.js.map +0 -1
  618. package/dashboard/dist/assets/vendor-icons-ZTAKVwGc.js +0 -292
  619. package/dashboard/dist/assets/vendor-icons-ZTAKVwGc.js.map +0 -1
  620. package/dashboard/dist/assets/vendor-query-B2UbickB.js +0 -18
  621. package/dashboard/dist/assets/vendor-query-B2UbickB.js.map +0 -1
  622. package/dashboard/dist/assets/vendor-react-Cw8Gy8NJ.js +0 -22
  623. package/dashboard/dist/assets/vendor-react-Cw8Gy8NJ.js.map +0 -1
  624. package/dashboard/dist/assets/yaml-workflows-BL4V5CQy.js +0 -2
  625. package/dashboard/dist/assets/yaml-workflows-BL4V5CQy.js.map +0 -1
  626. package/services/db/README.md +0 -8
  627. /package/build/{services → lib}/db/migrate.d.ts +0 -0
  628. /package/{services → build/lib}/db/schemas/002_seed.sql +0 -0
  629. /package/{services → build/lib}/db/schemas/003_workflow_discovery.sql +0 -0
  630. /package/{services → build/lib}/db/schemas/004_query_router.sql +0 -0
  631. /package/{services → build/lib}/db/schemas/005_triage_router.sql +0 -0
  632. /package/{services → build/lib}/db/schemas/006_oauth.sql +0 -0
  633. /package/{services → build/lib}/db/schemas/007_security.sql +0 -0
  634. /package/{services → build/lib}/db/schemas/008_bot_accounts.sql +0 -0
  635. /package/{services → build/lib}/db/schemas/009_audit_trail.sql +0 -0
  636. /package/{services → build/lib}/db/schemas/010_credential_providers.sql +0 -0
  637. /package/{services → build/lib}/db/schemas/012_drop_modality.sql +0 -0
  638. /package/{services → build/lib}/db/schemas/013_execute_as.sql +0 -0
  639. /package/{services → build/lib}/db/schemas/014_ephemeral_credentials.sql +0 -0
  640. /package/build/{services → lib}/events/index.d.ts +0 -0
  641. /package/build/{services → lib}/events/index.js +0 -0
  642. /package/build/{services → lib}/events/memory.d.ts +0 -0
  643. /package/build/{services → lib}/events/memory.js +0 -0
  644. /package/build/{services → lib}/events/nats.d.ts +0 -0
  645. /package/build/{services → lib}/events/nats.js +0 -0
  646. /package/build/{services → lib}/events/publish.d.ts +0 -0
  647. /package/build/{services → lib}/events/publish.js +0 -0
  648. /package/build/{services → lib}/events/socketio.d.ts +0 -0
  649. /package/build/{services → lib}/events/socketio.js +0 -0
  650. /package/build/{services → lib}/logger/index.d.ts +0 -0
  651. /package/build/{services → lib}/logger/index.js +0 -0
  652. /package/build/{services → lib}/logger/pino.d.ts +0 -0
  653. /package/build/{services → lib}/logger/pino.js +0 -0
  654. /package/build/{services → lib}/storage/index.d.ts +0 -0
  655. /package/build/{services → lib}/storage/index.js +0 -0
  656. /package/build/{services → lib}/storage/local.d.ts +0 -0
  657. /package/build/{services → lib}/storage/local.js +0 -0
  658. /package/build/{services → lib}/storage/s3.d.ts +0 -0
  659. /package/build/{services → lib}/storage/s3.js +0 -0
  660. /package/build/{services → lib}/storage/types.d.ts +0 -0
  661. /package/build/{services → lib}/storage/types.js +0 -0
  662. /package/build/{services → lib}/telemetry/index.d.ts +0 -0
  663. /package/build/{services → lib}/telemetry/index.js +0 -0
@@ -39,12 +39,41 @@ const taskService = __importStar(require("../../services/task"));
39
39
  const userService = __importStar(require("../../services/user"));
40
40
  const workers_1 = require("../../workers");
41
41
  const defaults_1 = require("../../modules/defaults");
42
- const publish_1 = require("../../services/events/publish");
42
+ const publish_1 = require("../../lib/events/publish");
43
+ // ── Shared helpers ──────────────────────────────────────────────────────────
44
+ function validateIds(ids) {
45
+ return Array.isArray(ids) && ids.length > 0;
46
+ }
47
+ async function requireBulkPermission(userId, ids, res) {
48
+ const isSuperAdminUser = await userService.isSuperAdmin(userId);
49
+ if (isSuperAdminUser)
50
+ return true;
51
+ const roles = await escalationService.getEscalationRoles(ids);
52
+ for (const role of roles) {
53
+ const canManage = await userService.isGroupAdmin(userId, role);
54
+ if (!canManage) {
55
+ res.status(403).json({ error: `Insufficient permissions for role "${role}"` });
56
+ return false;
57
+ }
58
+ }
59
+ return true;
60
+ }
61
+ function publishBulkClaimEvents(ids, assignedTo) {
62
+ for (const id of ids) {
63
+ (0, publish_1.publishEscalationEvent)({
64
+ type: 'escalation.claimed',
65
+ source: 'api',
66
+ workflowId: '',
67
+ workflowName: '',
68
+ taskQueue: '',
69
+ escalationId: id,
70
+ status: 'claimed',
71
+ data: { assigned_to: assignedTo, bulk: true },
72
+ });
73
+ }
74
+ }
75
+ // ── Routes ──────────────────────────────────────────────────────────────────
43
76
  function registerBulkRoutes(router) {
44
- /**
45
- * POST /api/escalations/release-expired
46
- * Optional cleanup of stale assignment data.
47
- */
48
77
  router.post('/release-expired', async (_req, res) => {
49
78
  try {
50
79
  const released = await escalationService.releaseExpiredClaims();
@@ -54,38 +83,15 @@ function registerBulkRoutes(router) {
54
83
  res.status(500).json({ error: err.message });
55
84
  }
56
85
  });
57
- /**
58
- * PATCH /api/escalations/priority
59
- * Bulk update priority for selected escalations.
60
- * Body: { ids: string[], priority: 1|2|3|4 }
61
- * Requires admin/superadmin permission for the escalation roles.
62
- */
63
86
  router.patch('/priority', async (req, res) => {
64
87
  try {
65
- const userId = req.auth.userId;
66
88
  const { ids, priority } = req.body || {};
67
- if (!Array.isArray(ids) || ids.length === 0) {
68
- res.status(400).json({ error: 'ids must be a non-empty array' });
69
- return;
70
- }
71
- if (![1, 2, 3, 4].includes(priority)) {
72
- res.status(400).json({ error: 'priority must be 1, 2, 3, or 4' });
89
+ if (!validateIds(ids))
90
+ return res.status(400).json({ error: 'ids must be a non-empty array' });
91
+ if (![1, 2, 3, 4].includes(priority))
92
+ return res.status(400).json({ error: 'priority must be 1, 2, 3, or 4' });
93
+ if (!await requireBulkPermission(req.auth.userId, ids, res))
73
94
  return;
74
- }
75
- // Permission check: superadmin can update any; admin only for their roles
76
- const isSuperAdminUser = await userService.isSuperAdmin(userId);
77
- if (!isSuperAdminUser) {
78
- const roles = await escalationService.getEscalationRoles(ids);
79
- for (const role of roles) {
80
- const canManage = await userService.isGroupAdmin(userId, role);
81
- if (!canManage) {
82
- res.status(403).json({
83
- error: `Insufficient permissions for role "${role}"`,
84
- });
85
- return;
86
- }
87
- }
88
- }
89
95
  const updated = await escalationService.updateEscalationsPriority(ids, priority);
90
96
  res.json({ updated });
91
97
  }
@@ -93,138 +99,62 @@ function registerBulkRoutes(router) {
93
99
  res.status(500).json({ error: err.message });
94
100
  }
95
101
  });
96
- /**
97
- * POST /api/escalations/bulk-claim
98
- * Bulk claim selected escalations for the authenticated user.
99
- * Body: { ids: string[], durationMinutes?: number }
100
- */
101
102
  router.post('/bulk-claim', async (req, res) => {
102
103
  try {
103
104
  const userId = req.auth.userId;
104
105
  const { ids, durationMinutes } = req.body || {};
105
- if (!Array.isArray(ids) || ids.length === 0) {
106
- res.status(400).json({ error: 'ids must be a non-empty array' });
106
+ if (!validateIds(ids))
107
+ return res.status(400).json({ error: 'ids must be a non-empty array' });
108
+ if (!await requireBulkPermission(userId, ids, res))
107
109
  return;
108
- }
109
- const isSuperAdminUser = await userService.isSuperAdmin(userId);
110
- if (!isSuperAdminUser) {
111
- const roles = await escalationService.getEscalationRoles(ids);
112
- for (const role of roles) {
113
- const canManage = await userService.isGroupAdmin(userId, role);
114
- if (!canManage) {
115
- res.status(403).json({ error: `Insufficient permissions for role "${role}"` });
116
- return;
117
- }
118
- }
119
- }
120
110
  const result = await escalationService.bulkClaimEscalations(ids, userId, durationMinutes ?? 30);
121
111
  res.json(result);
122
- if (result.claimed > 0) {
123
- for (const id of ids) {
124
- (0, publish_1.publishEscalationEvent)({
125
- type: 'escalation.claimed',
126
- source: 'api',
127
- workflowId: '',
128
- workflowName: '',
129
- taskQueue: '',
130
- escalationId: id,
131
- status: 'claimed',
132
- data: { assigned_to: userId, bulk: true },
133
- });
134
- }
135
- }
112
+ if (result.claimed > 0)
113
+ publishBulkClaimEvents(ids, userId);
136
114
  }
137
115
  catch (err) {
138
116
  res.status(500).json({ error: err.message });
139
117
  }
140
118
  });
141
- /**
142
- * POST /api/escalations/bulk-assign
143
- * Bulk assign selected escalations to a specific user.
144
- * Body: { ids: string[], targetUserId: string, durationMinutes?: number }
145
- * Superadmin: can assign anyone. Admin: target must hold escalation role.
146
- */
147
119
  router.post('/bulk-assign', async (req, res) => {
148
120
  try {
149
121
  const userId = req.auth.userId;
150
122
  const { ids, targetUserId, durationMinutes } = req.body || {};
151
- if (!Array.isArray(ids) || ids.length === 0) {
152
- res.status(400).json({ error: 'ids must be a non-empty array' });
123
+ if (!validateIds(ids))
124
+ return res.status(400).json({ error: 'ids must be a non-empty array' });
125
+ if (!targetUserId || typeof targetUserId !== 'string')
126
+ return res.status(400).json({ error: 'targetUserId is required' });
127
+ if (!await requireBulkPermission(userId, ids, res))
153
128
  return;
154
- }
155
- if (!targetUserId || typeof targetUserId !== 'string') {
156
- res.status(400).json({ error: 'targetUserId is required' });
157
- return;
158
- }
129
+ // Non-superadmin: target user must hold each escalation's role
159
130
  const isSuperAdminUser = await userService.isSuperAdmin(userId);
160
- const roles = await escalationService.getEscalationRoles(ids);
161
131
  if (!isSuperAdminUser) {
162
- // Caller must be group admin for each escalation's role
163
- for (const role of roles) {
164
- const canManage = await userService.isGroupAdmin(userId, role);
165
- if (!canManage) {
166
- res.status(403).json({ error: `Insufficient permissions for role "${role}"` });
167
- return;
168
- }
169
- }
170
- // Target user must hold each escalation's role
132
+ const roles = await escalationService.getEscalationRoles(ids);
171
133
  for (const role of roles) {
172
134
  const targetHasRole = await userService.hasRole(targetUserId, role);
173
135
  if (!targetHasRole) {
174
- res.status(400).json({ error: `Target user does not hold the "${role}" role` });
175
- return;
136
+ return res.status(400).json({ error: `Target user does not hold the "${role}" role` });
176
137
  }
177
138
  }
178
139
  }
179
140
  const result = await escalationService.bulkAssignEscalations(ids, targetUserId, durationMinutes ?? 30);
180
141
  res.json(result);
181
- if (result.assigned > 0) {
182
- for (const id of ids) {
183
- (0, publish_1.publishEscalationEvent)({
184
- type: 'escalation.claimed',
185
- source: 'api',
186
- workflowId: '',
187
- workflowName: '',
188
- taskQueue: '',
189
- escalationId: id,
190
- status: 'claimed',
191
- data: { assigned_to: targetUserId, bulk: true },
192
- });
193
- }
194
- }
142
+ if (result.assigned > 0)
143
+ publishBulkClaimEvents(ids, targetUserId);
195
144
  }
196
145
  catch (err) {
197
146
  res.status(500).json({ error: err.message });
198
147
  }
199
148
  });
200
- /**
201
- * PATCH /api/escalations/bulk-escalate
202
- * Bulk reassign selected escalations to a different role.
203
- * Body: { ids: string[], targetRole: string }
204
- */
205
149
  router.patch('/bulk-escalate', async (req, res) => {
206
150
  try {
207
- const userId = req.auth.userId;
208
151
  const { ids, targetRole } = req.body || {};
209
- if (!Array.isArray(ids) || ids.length === 0) {
210
- res.status(400).json({ error: 'ids must be a non-empty array' });
152
+ if (!validateIds(ids))
153
+ return res.status(400).json({ error: 'ids must be a non-empty array' });
154
+ if (!targetRole || typeof targetRole !== 'string')
155
+ return res.status(400).json({ error: 'targetRole is required' });
156
+ if (!await requireBulkPermission(req.auth.userId, ids, res))
211
157
  return;
212
- }
213
- if (!targetRole || typeof targetRole !== 'string') {
214
- res.status(400).json({ error: 'targetRole is required' });
215
- return;
216
- }
217
- const isSuperAdminUser = await userService.isSuperAdmin(userId);
218
- if (!isSuperAdminUser) {
219
- const roles = await escalationService.getEscalationRoles(ids);
220
- for (const role of roles) {
221
- const canManage = await userService.isGroupAdmin(userId, role);
222
- if (!canManage) {
223
- res.status(403).json({ error: `Insufficient permissions for role "${role}"` });
224
- return;
225
- }
226
- }
227
- }
228
158
  const updated = await escalationService.bulkEscalateToRole(ids, targetRole);
229
159
  res.json({ updated });
230
160
  }
@@ -232,87 +162,18 @@ function registerBulkRoutes(router) {
232
162
  res.status(500).json({ error: err.message });
233
163
  }
234
164
  });
235
- /**
236
- * POST /api/escalations/bulk-triage
237
- * Bulk resolve selected escalations and start AI triage workflows.
238
- * Body: { ids: string[], hint?: string }
239
- */
240
165
  router.post('/bulk-triage', async (req, res) => {
241
166
  try {
242
- const userId = req.auth.userId;
243
167
  const { ids, hint } = req.body || {};
244
- if (!Array.isArray(ids) || ids.length === 0) {
245
- res.status(400).json({ error: 'ids must be a non-empty array' });
168
+ if (!validateIds(ids))
169
+ return res.status(400).json({ error: 'ids must be a non-empty array' });
170
+ if (!await requireBulkPermission(req.auth.userId, ids, res))
246
171
  return;
247
- }
248
- const isSuperAdminUser = await userService.isSuperAdmin(userId);
249
- if (!isSuperAdminUser) {
250
- const roles = await escalationService.getEscalationRoles(ids);
251
- for (const role of roles) {
252
- const canManage = await userService.isGroupAdmin(userId, role);
253
- if (!canManage) {
254
- res.status(403).json({ error: `Insufficient permissions for role "${role}"` });
255
- return;
256
- }
257
- }
258
- }
259
172
  const resolved = await escalationService.bulkResolveForTriage(ids, hint);
260
173
  const client = (0, workers_1.createClient)();
261
174
  const workflowIds = [];
262
175
  for (const escalation of resolved) {
263
- let escalationPayload = {};
264
- if (escalation.escalation_payload) {
265
- try {
266
- escalationPayload = JSON.parse(escalation.escalation_payload);
267
- }
268
- catch { }
269
- }
270
- let envelope = {};
271
- if (escalation.envelope) {
272
- try {
273
- envelope = JSON.parse(escalation.envelope);
274
- }
275
- catch { }
276
- }
277
- const triageWorkflowId = `triage-${escalation.id}-${Date.now()}`;
278
- const triageEnvelope = {
279
- data: {
280
- escalationId: escalation.id,
281
- originId: escalation.origin_id ?? undefined,
282
- originalWorkflowType: escalation.workflow_type,
283
- originalTaskQueue: escalation.task_queue,
284
- originalTaskId: escalation.task_id,
285
- escalationPayload,
286
- resolverPayload: {
287
- _lt: { needsTriage: true, ...(hint ? { hint } : {}) },
288
- },
289
- },
290
- metadata: envelope.metadata || {},
291
- lt: { ...(envelope.lt || {}), userId: req.auth?.userId },
292
- };
293
- const routing = escalation.task_id
294
- ? (await taskService.getTask(escalation.task_id))?.metadata
295
- : null;
296
- await taskService.createTask({
297
- workflow_id: triageWorkflowId,
298
- workflow_type: 'mcpTriage',
299
- lt_type: 'mcpTriage',
300
- task_queue: 'long-tail-system',
301
- signal_id: `lt-triage-${triageWorkflowId}`,
302
- parent_workflow_id: routing?.parentWorkflowId || triageWorkflowId,
303
- origin_id: escalation.origin_id || triageWorkflowId,
304
- parent_id: escalation.parent_id ?? undefined,
305
- envelope: JSON.stringify(triageEnvelope),
306
- metadata: routing || undefined,
307
- });
308
- await client.workflow.start({
309
- workflowName: 'mcpTriage',
310
- args: [triageEnvelope],
311
- taskQueue: 'long-tail-system',
312
- workflowId: triageWorkflowId,
313
- expire: defaults_1.JOB_EXPIRE_SECS,
314
- entity: 'mcpTriage',
315
- });
176
+ const triageWorkflowId = await startTriageWorkflow(escalation, hint, req.auth?.userId, client);
316
177
  workflowIds.push(triageWorkflowId);
317
178
  }
318
179
  res.json({ triaged: resolved.length, workflows: workflowIds });
@@ -322,3 +183,60 @@ function registerBulkRoutes(router) {
322
183
  }
323
184
  });
324
185
  }
186
+ // ── Triage workflow launcher ────────────────────────────────────────────────
187
+ async function startTriageWorkflow(escalation, hint, userId, client) {
188
+ let escalationPayload = {};
189
+ if (escalation.escalation_payload) {
190
+ try {
191
+ escalationPayload = JSON.parse(escalation.escalation_payload);
192
+ }
193
+ catch { }
194
+ }
195
+ let envelope = {};
196
+ if (escalation.envelope) {
197
+ try {
198
+ envelope = JSON.parse(escalation.envelope);
199
+ }
200
+ catch { }
201
+ }
202
+ const triageWorkflowId = `triage-${escalation.id}-${Date.now()}`;
203
+ const triageEnvelope = {
204
+ data: {
205
+ escalationId: escalation.id,
206
+ originId: escalation.origin_id ?? undefined,
207
+ originalWorkflowType: escalation.workflow_type,
208
+ originalTaskQueue: escalation.task_queue,
209
+ originalTaskId: escalation.task_id,
210
+ escalationPayload,
211
+ resolverPayload: {
212
+ _lt: { needsTriage: true, ...(hint ? { hint } : {}) },
213
+ },
214
+ },
215
+ metadata: envelope.metadata || {},
216
+ lt: { ...(envelope.lt || {}), userId },
217
+ };
218
+ const routing = escalation.task_id
219
+ ? (await taskService.getTask(escalation.task_id))?.metadata
220
+ : null;
221
+ await taskService.createTask({
222
+ workflow_id: triageWorkflowId,
223
+ workflow_type: 'mcpTriage',
224
+ lt_type: 'mcpTriage',
225
+ task_queue: 'long-tail-system',
226
+ signal_id: `lt-triage-${triageWorkflowId}`,
227
+ parent_workflow_id: routing?.parentWorkflowId || triageWorkflowId,
228
+ origin_id: escalation.origin_id || triageWorkflowId,
229
+ parent_id: escalation.parent_id ?? undefined,
230
+ envelope: JSON.stringify(triageEnvelope),
231
+ metadata: routing || undefined,
232
+ });
233
+ await client.workflow.start({
234
+ workflowName: 'mcpTriage',
235
+ args: [triageEnvelope],
236
+ taskQueue: 'long-tail-system',
237
+ workflowId: triageWorkflowId,
238
+ expire: defaults_1.JOB_EXPIRE_SECS,
239
+ entity: 'mcpTriage',
240
+ });
241
+ return triageWorkflowId;
242
+ }
@@ -37,7 +37,7 @@ exports.registerResolveRoutes = registerResolveRoutes;
37
37
  const escalationService = __importStar(require("../../services/escalation"));
38
38
  const taskService = __importStar(require("../../services/task"));
39
39
  const escalation_strategy_1 = require("../../services/escalation-strategy");
40
- const publish_1 = require("../../services/events/publish");
40
+ const publish_1 = require("../../lib/events/publish");
41
41
  const ephemeral_1 = require("../../services/iam/ephemeral");
42
42
  const deployer_1 = require("../../services/yaml-workflow/deployer");
43
43
  const workers_1 = require("../../workers");
@@ -37,7 +37,7 @@ exports.registerSingleRoutes = registerSingleRoutes;
37
37
  const escalationService = __importStar(require("../../services/escalation"));
38
38
  const userService = __importStar(require("../../services/user"));
39
39
  const roleService = __importStar(require("../../services/role"));
40
- const publish_1 = require("../../services/events/publish");
40
+ const publish_1 = require("../../lib/events/publish");
41
41
  function registerSingleRoutes(router) {
42
42
  /**
43
43
  * PATCH /api/escalations/:id/escalate
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const express_1 = require("express");
7
7
  const path_1 = __importDefault(require("path"));
8
- const storage_1 = require("../services/storage");
8
+ const storage_1 = require("../lib/storage");
9
9
  const router = (0, express_1.Router)();
10
10
  const MIME_TYPES = {
11
11
  '.png': 'image/png',
@@ -25,6 +25,7 @@ const namespaces_1 = __importDefault(require("./namespaces"));
25
25
  const files_1 = __importDefault(require("./files"));
26
26
  const controlplane_1 = __importDefault(require("./controlplane"));
27
27
  const bot_accounts_1 = __importDefault(require("./bot-accounts"));
28
+ const docs_1 = __importDefault(require("./docs"));
28
29
  const router = (0, express_1.Router)();
29
30
  // Public routes (no auth required — they handle their own auth)
30
31
  router.use('/auth', auth_2.default);
@@ -49,4 +50,5 @@ router.use('/mcp-runs', mcp_runs_1.default);
49
50
  router.use('/namespaces', namespaces_1.default);
50
51
  router.use('/controlplane', controlplane_1.default);
51
52
  router.use('/bot-accounts', bot_accounts_1.default);
53
+ router.use('/docs', docs_1.default);
52
54
  exports.default = router;
@@ -10,7 +10,7 @@ const router = (0, express_1.Router)();
10
10
  */
11
11
  router.post('/mcp-query', async (req, res) => {
12
12
  try {
13
- const { prompt, tags, wait, direct } = req.body;
13
+ const { prompt, tags, wait, direct, context } = req.body;
14
14
  if (!prompt || typeof prompt !== 'string') {
15
15
  res.status(400).json({ error: 'prompt is required' });
16
16
  return;
@@ -24,6 +24,7 @@ router.post('/mcp-query', async (req, res) => {
24
24
  tags,
25
25
  wait,
26
26
  direct,
27
+ context,
27
28
  userId: req.auth?.userId,
28
29
  });
29
30
  res.json(result);
@@ -36,6 +37,69 @@ router.post('/mcp-query', async (req, res) => {
36
37
  res.status(500).json({ error: err.message });
37
38
  }
38
39
  });
40
+ /**
41
+ * POST /api/insight/build-workflow
42
+ * Build a HotMesh YAML DAG directly from a natural language description.
43
+ * The LLM reasons about tool schemas and constructs the YAML declaratively.
44
+ * Body: { prompt: string, tags?: string[], wait?: boolean, feedback?: string, prior_yaml?: string }
45
+ */
46
+ router.post('/build-workflow', async (req, res) => {
47
+ try {
48
+ const { prompt, tags, wait, feedback, prior_yaml, answers, prior_questions } = req.body;
49
+ if (!prompt || typeof prompt !== 'string') {
50
+ res.status(400).json({ error: 'prompt is required' });
51
+ return;
52
+ }
53
+ if (!process.env.OPENAI_API_KEY && !process.env.ANTHROPIC_API_KEY) {
54
+ res.status(503).json({ error: 'Workflow builder requires an LLM API key (OPENAI_API_KEY or ANTHROPIC_API_KEY)' });
55
+ return;
56
+ }
57
+ const result = await (0, insight_1.startWorkflowBuilder)({
58
+ prompt,
59
+ tags,
60
+ wait,
61
+ feedback,
62
+ prior_yaml,
63
+ answers,
64
+ prior_questions,
65
+ userId: req.auth?.userId,
66
+ });
67
+ res.json(result);
68
+ }
69
+ catch (err) {
70
+ if (err.message?.includes('timeout') || err.message?.includes('TIMEOUT')) {
71
+ res.status(504).json({ error: 'Workflow builder timed out. Try a simpler description.' });
72
+ return;
73
+ }
74
+ res.status(500).json({ error: err.message });
75
+ }
76
+ });
77
+ /**
78
+ * POST /api/insight/build-workflow/refine
79
+ * Refine a previously built workflow using execution feedback.
80
+ * Body: { prompt: string, prior_yaml: string, feedback: string, tags?: string[], wait?: boolean }
81
+ */
82
+ router.post('/build-workflow/refine', async (req, res) => {
83
+ try {
84
+ const { prompt, prior_yaml, feedback, tags, wait } = req.body;
85
+ if (!prompt || !prior_yaml || !feedback) {
86
+ res.status(400).json({ error: 'prompt, prior_yaml, and feedback are required' });
87
+ return;
88
+ }
89
+ const result = await (0, insight_1.startWorkflowBuilder)({
90
+ prompt,
91
+ tags,
92
+ wait,
93
+ feedback,
94
+ prior_yaml,
95
+ userId: req.auth?.userId,
96
+ });
97
+ res.json(result);
98
+ }
99
+ catch (err) {
100
+ res.status(500).json({ error: err.message });
101
+ }
102
+ });
39
103
  /**
40
104
  * POST /api/insight/mcp-query/describe
41
105
  * Generate a workflow description and suggested tags from prompt and result.
@@ -66,7 +66,7 @@ router.get('/servers', async (req, res) => {
66
66
  */
67
67
  router.post('/servers', async (req, res) => {
68
68
  try {
69
- const { name, description, transport_type, transport_config, auto_connect, metadata } = req.body;
69
+ const { name, description, transport_type, transport_config, auto_connect, metadata, tags, compile_hints, credential_providers } = req.body;
70
70
  if (!name || !transport_type || !transport_config) {
71
71
  res.status(400).json({ error: 'name, transport_type, and transport_config are required' });
72
72
  return;
@@ -78,6 +78,9 @@ router.post('/servers', async (req, res) => {
78
78
  transport_config,
79
79
  auto_connect,
80
80
  metadata,
81
+ tags,
82
+ compile_hints,
83
+ credential_providers,
81
84
  });
82
85
  res.status(201).json(server);
83
86
  }
@@ -89,6 +92,25 @@ router.post('/servers', async (req, res) => {
89
92
  res.status(500).json({ error: err.message });
90
93
  }
91
94
  });
95
+ /**
96
+ * POST /api/mcp/servers/test-connection
97
+ * Test connectivity to an MCP server without persisting it.
98
+ */
99
+ router.post('/servers/test-connection', async (req, res) => {
100
+ try {
101
+ const { transport_type, transport_config } = req.body;
102
+ if (!transport_type || !transport_config) {
103
+ res.status(400).json({ error: 'transport_type and transport_config are required' });
104
+ return;
105
+ }
106
+ const { testConnection } = await Promise.resolve().then(() => __importStar(require('../services/mcp/client/connection')));
107
+ const result = await testConnection(transport_type, transport_config);
108
+ res.json(result);
109
+ }
110
+ catch (err) {
111
+ res.json({ success: false, error: err.message, tools: [] });
112
+ }
113
+ });
92
114
  // ── Parameterized routes (must come after literal paths) ──────────────
93
115
  /**
94
116
  * GET /api/mcp/servers/:id
@@ -243,8 +265,9 @@ router.post('/servers/:id/tools/:toolName/call', async (req, res) => {
243
265
  res.status(400).json({ error: 'MCP adapter not registered' });
244
266
  return;
245
267
  }
246
- const authContext = req.auth?.userId
247
- ? { userId: req.auth.userId }
268
+ const executeAs = req.body.execute_as;
269
+ const authContext = (executeAs || req.auth?.userId)
270
+ ? { userId: executeAs || req.auth?.userId }
248
271
  : undefined;
249
272
  const result = await adapter.callTool(req.params.id, req.params.toolName, req.body.arguments || {}, authContext);
250
273
  res.json({ result });
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.setOAuthConfig = setOAuthConfig;
4
4
  const express_1 = require("express");
5
5
  const auth_1 = require("../modules/auth");
6
- const logger_1 = require("../services/logger");
6
+ const logger_1 = require("../lib/logger");
7
7
  const oauth_1 = require("../services/oauth");
8
8
  const user_1 = require("../services/user");
9
9
  const router = (0, express_1.Router)();
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const express_1 = require("express");
4
- const telemetry_1 = require("../services/telemetry");
5
- const events_1 = require("../services/events");
6
- const nats_1 = require("../services/events/nats");
7
- const socketio_1 = require("../services/events/socketio");
4
+ const telemetry_1 = require("../lib/telemetry");
5
+ const events_1 = require("../lib/events");
6
+ const nats_1 = require("../lib/events/nats");
7
+ const socketio_1 = require("../lib/events/socketio");
8
8
  const defaults_1 = require("../modules/defaults");
9
9
  const router = (0, express_1.Router)();
10
10
  /**
@@ -36,8 +36,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  const express_1 = require("express");
37
37
  const configService = __importStar(require("../../services/config"));
38
38
  const cron_1 = require("../../services/cron");
39
- const db_1 = require("../../services/db");
39
+ const db_1 = require("../../lib/db");
40
40
  const registry_1 = require("../../services/workers/registry");
41
+ const sql_1 = require("../../services/mcp-runs/sql");
41
42
  const router = (0, express_1.Router)();
42
43
  // ── Active workers ───────────────────────────────────────────────────────────
43
44
  /**
@@ -78,9 +79,8 @@ router.get('/discovered', async (req, res) => {
78
79
  // 1. Active workers from in-memory registry
79
80
  const activeWorkers = (0, registry_1.getRegisteredWorkers)();
80
81
  // 2. Historical entities from durable.jobs
81
- const DISTINCT_ENTITIES = `SELECT DISTINCT entity FROM durable.jobs WHERE entity IS NOT NULL AND entity != '' ORDER BY entity`;
82
82
  const pool = (0, db_1.getPool)();
83
- const { rows: entityRows } = await pool.query(DISTINCT_ENTITIES);
83
+ const { rows: entityRows } = await pool.query(sql_1.DISTINCT_ENTITIES_DURABLE);
84
84
  const historicalEntities = new Set(entityRows.map((r) => r.entity));
85
85
  // 3. Registered configs
86
86
  const configs = await configService.listWorkflowConfigs();
@@ -136,7 +136,7 @@ router.post('/:workflowId/terminate', async (req, res) => {
136
136
  return;
137
137
  const client = (0, workers_1.createClient)();
138
138
  const handle = await client.workflow.getHandle(resolved.taskQueue, resolved.workflowName, req.params.workflowId);
139
- await handle.interrupt();
139
+ await handle.terminate();
140
140
  res.json({ terminated: true, workflowId: req.params.workflowId });
141
141
  }
142
142
  catch (err) {
@@ -0,0 +1,2 @@
1
+ declare const router: import("express-serve-static-core").Router;
2
+ export default router;