@hotmeshio/long-tail 0.1.4 → 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 (613) hide show
  1. package/README.md +1 -1
  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 +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/server.js +1 -1
  84. package/build/services/mcp/sql.d.ts +6 -0
  85. package/build/services/mcp/sql.js +34 -1
  86. package/build/services/mcp/workflow-compiler-server.js +1 -1
  87. package/build/services/mcp/workflow-server.js +1 -1
  88. package/build/services/mcp-runs/execution-builder.js +8 -6
  89. package/build/services/mcp-runs/queries.js +2 -2
  90. package/build/services/mcp-runs/sql.d.ts +4 -1
  91. package/build/services/mcp-runs/sql.js +23 -2
  92. package/build/services/namespace/index.js +1 -1
  93. package/build/services/oauth/db.js +9 -37
  94. package/build/services/oauth/index.js +1 -1
  95. package/build/services/oauth/providers/registry.js +1 -1
  96. package/build/services/oauth/sql.d.ts +7 -0
  97. package/build/services/oauth/sql.js +32 -0
  98. package/build/services/orchestrator/index.js +3 -3
  99. package/build/services/role/index.js +1 -1
  100. package/build/services/task/crud.js +1 -1
  101. package/build/services/task/process.js +1 -1
  102. package/build/services/task/resolve.js +1 -1
  103. package/build/services/user/auth.js +1 -1
  104. package/build/services/user/crud.js +1 -1
  105. package/build/services/user/rbac.js +1 -1
  106. package/build/services/user/roles.js +1 -1
  107. package/build/services/user/sql.d.ts +2 -0
  108. package/build/services/user/sql.js +3 -1
  109. package/build/services/yaml-workflow/db-utils.js +1 -1
  110. package/build/services/yaml-workflow/db.js +1 -1
  111. package/build/services/yaml-workflow/deployer-helpers.js +1 -1
  112. package/build/services/yaml-workflow/deployer.js +4 -4
  113. package/build/services/yaml-workflow/generator.js +1 -1
  114. package/build/services/yaml-workflow/input-analyzer-helpers.d.ts +6 -0
  115. package/build/services/yaml-workflow/input-analyzer-helpers.js +36 -7
  116. package/build/services/yaml-workflow/input-analyzer.js +16 -3
  117. package/build/services/yaml-workflow/pipeline/analyze.js +1 -1
  118. package/build/services/yaml-workflow/pipeline/build/dag.js +10 -5
  119. package/build/services/yaml-workflow/pipeline/compile/llm-call.js +1 -1
  120. package/build/services/yaml-workflow/pipeline/extract.js +5 -3
  121. package/build/services/yaml-workflow/pipeline/index.d.ts +5 -0
  122. package/build/services/yaml-workflow/pipeline/index.js +22 -0
  123. package/build/services/yaml-workflow/pipeline/validate.js +2 -2
  124. package/build/services/yaml-workflow/workers/callbacks.js +1 -1
  125. package/build/services/yaml-workflow/workers/events.js +2 -2
  126. package/build/services/yaml-workflow/workers/register.js +8 -8
  127. package/build/start/adapters.js +7 -7
  128. package/build/start/index.js +4 -4
  129. package/build/start/server.js +1 -1
  130. package/build/start/workers.d.ts +1 -2
  131. package/build/start/workers.js +8 -7
  132. package/build/system/activities/claude-code.js +1 -1
  133. package/build/system/activities/file-storage.js +1 -1
  134. package/build/system/activities/knowledge.d.ts +58 -0
  135. package/build/system/activities/knowledge.js +128 -0
  136. package/build/system/activities/sql.d.ts +9 -0
  137. package/build/system/activities/sql.js +41 -0
  138. package/build/system/activities/triage/context.js +1 -1
  139. package/build/system/activities/triage/discovery.d.ts +2 -14
  140. package/build/system/activities/triage/discovery.js +5 -161
  141. package/build/system/activities/triage/llm.d.ts +1 -8
  142. package/build/system/activities/triage/llm.js +2 -28
  143. package/build/system/activities/triage/tools.d.ts +1 -17
  144. package/build/system/activities/triage/tools.js +8 -167
  145. package/build/system/index.js +5 -4
  146. package/build/system/mcp-servers/admin/escalations.d.ts +5 -0
  147. package/build/system/mcp-servers/admin/escalations.js +149 -0
  148. package/build/system/mcp-servers/admin/index.d.ts +31 -0
  149. package/build/system/mcp-servers/admin/index.js +80 -0
  150. package/build/system/mcp-servers/admin/maintenance.d.ts +5 -0
  151. package/build/system/mcp-servers/admin/maintenance.js +58 -0
  152. package/build/system/mcp-servers/admin/mcp-servers.d.ts +5 -0
  153. package/build/system/mcp-servers/admin/mcp-servers.js +146 -0
  154. package/build/system/mcp-servers/admin/schemas.d.ts +411 -0
  155. package/build/system/mcp-servers/admin/schemas.js +177 -0
  156. package/build/system/mcp-servers/admin/tasks.d.ts +5 -0
  157. package/build/system/mcp-servers/admin/tasks.js +112 -0
  158. package/build/system/mcp-servers/admin/users.d.ts +5 -0
  159. package/build/system/mcp-servers/admin/users.js +167 -0
  160. package/build/system/mcp-servers/admin/workflow-config.d.ts +9 -0
  161. package/build/system/mcp-servers/admin/workflow-config.js +118 -0
  162. package/build/system/mcp-servers/admin/workflows.d.ts +6 -0
  163. package/build/system/mcp-servers/admin/workflows.js +138 -0
  164. package/build/system/mcp-servers/admin/yaml-workflows.d.ts +8 -0
  165. package/build/system/mcp-servers/admin/yaml-workflows.js +237 -0
  166. package/build/system/mcp-servers/claude-code.js +1 -1
  167. package/build/system/mcp-servers/db-query/index.js +1 -1
  168. package/build/system/mcp-servers/db-query/tools.js +17 -4
  169. package/build/system/mcp-servers/docs.d.ts +5 -0
  170. package/build/system/mcp-servers/docs.js +147 -0
  171. package/build/system/mcp-servers/file-storage.js +1 -1
  172. package/build/system/mcp-servers/http-fetch.js +1 -1
  173. package/build/system/mcp-servers/human-queue.js +1 -1
  174. package/build/system/mcp-servers/knowledge.d.ts +4 -0
  175. package/build/system/mcp-servers/knowledge.js +137 -0
  176. package/build/system/mcp-servers/oauth.js +1 -1
  177. package/build/system/mcp-servers/playwright/browser-lifecycle.js +1 -1
  178. package/build/system/mcp-servers/playwright/index.js +1 -1
  179. package/build/system/mcp-servers/playwright/schemas.d.ts +19 -8
  180. package/build/system/mcp-servers/playwright/schemas.js +3 -0
  181. package/build/system/mcp-servers/playwright/tools-navigation.js +22 -9
  182. package/build/system/mcp-servers/playwright/tools-run-script.js +20 -3
  183. package/build/system/mcp-servers/playwright/vision-helper.d.ts +12 -0
  184. package/build/system/mcp-servers/playwright/vision-helper.js +81 -0
  185. package/build/system/mcp-servers/playwright-cli/helpers.js +2 -2
  186. package/build/system/mcp-servers/playwright-cli/index.js +1 -1
  187. package/build/system/mcp-servers/playwright-cli/schemas.d.ts +28 -28
  188. package/build/system/mcp-servers/playwright-cli/schemas.js +1 -1
  189. package/build/system/mcp-servers/playwright-cli/tools-auth.js +1 -1
  190. package/build/system/mcp-servers/playwright-cli/tools-capture.js +4 -2
  191. package/build/system/mcp-servers/translation.d.ts +14 -0
  192. package/build/system/mcp-servers/translation.js +130 -0
  193. package/build/system/mcp-servers/vision-prompts.d.ts +2 -0
  194. package/build/system/mcp-servers/vision-prompts.js +9 -0
  195. package/build/system/mcp-servers/{document-vision.d.ts → vision.d.ts} +3 -4
  196. package/build/system/mcp-servers/vision.js +221 -0
  197. package/build/system/mcp-servers/workflow-compiler.js +1 -1
  198. package/build/system/mcp-servers/workflow.js +1 -1
  199. package/build/system/seed/index.js +13 -2
  200. package/build/system/seed/server-definitions.d.ts +1954 -322
  201. package/build/system/seed/server-definitions.js +65 -34
  202. package/build/system/seed/tool-manifests-admin.d.ts +1645 -0
  203. package/build/system/seed/tool-manifests-admin.js +45 -0
  204. package/build/system/seed/tool-manifests-browser.d.ts +1 -1
  205. package/build/system/seed/tool-manifests-browser.js +3 -3
  206. package/build/system/seed/tool-manifests-data.d.ts +62 -21
  207. package/build/system/seed/tool-manifests-data.js +55 -17
  208. package/build/system/seed/tool-manifests-knowledge.d.ts +171 -0
  209. package/build/system/seed/tool-manifests-knowledge.js +94 -0
  210. package/build/system/workflows/mcp-deterministic/index.js +1 -1
  211. package/build/system/workflows/mcp-query/activities/discovery.d.ts +2 -20
  212. package/build/system/workflows/mcp-query/activities/discovery.js +5 -163
  213. package/build/system/workflows/mcp-query/activities/llm.d.ts +1 -7
  214. package/build/system/workflows/mcp-query/activities/llm.js +2 -27
  215. package/build/system/workflows/mcp-query/activities/tool-executor.d.ts +0 -4
  216. package/build/system/workflows/mcp-query/activities/tool-executor.js +2 -106
  217. package/build/system/workflows/mcp-query/activities/tool-loader.d.ts +0 -9
  218. package/build/system/workflows/mcp-query/activities/tool-loader.js +2 -87
  219. package/build/system/workflows/mcp-query/index.js +55 -5
  220. package/build/system/workflows/mcp-query/prompts.d.ts +1 -2
  221. package/build/system/workflows/mcp-query/prompts.js +5 -32
  222. package/build/system/workflows/mcp-query/strategy-advisors.d.ts +3 -14
  223. package/build/system/workflows/mcp-query/strategy-advisors.js +4 -107
  224. package/build/system/workflows/mcp-query/types.d.ts +2 -10
  225. package/build/system/workflows/mcp-query/types.js +0 -1
  226. package/build/system/workflows/mcp-query-router/index.js +1 -1
  227. package/build/system/workflows/mcp-triage/index.d.ts +2 -2
  228. package/build/system/workflows/mcp-triage/index.js +39 -7
  229. package/build/system/workflows/mcp-triage/prompts.js +7 -14
  230. package/build/system/workflows/mcp-triage-deterministic/index.js +1 -1
  231. package/build/system/workflows/mcp-triage-router/index.js +1 -1
  232. package/build/system/workflows/shared/discovery.d.ts +35 -0
  233. package/build/system/workflows/shared/discovery.js +175 -0
  234. package/build/system/workflows/shared/index.d.ts +7 -0
  235. package/build/system/workflows/shared/index.js +18 -0
  236. package/build/system/workflows/shared/llm-caller.d.ts +8 -0
  237. package/build/system/workflows/shared/llm-caller.js +31 -0
  238. package/build/system/workflows/shared/prompts.d.ts +2 -0
  239. package/build/system/workflows/shared/prompts.js +32 -0
  240. package/build/system/workflows/shared/strategy-advisors.d.ts +14 -0
  241. package/build/system/workflows/shared/strategy-advisors.js +109 -0
  242. package/build/system/workflows/shared/tool-executor.d.ts +11 -0
  243. package/build/system/workflows/shared/tool-executor.js +111 -0
  244. package/build/system/workflows/shared/tool-loader.d.ts +19 -0
  245. package/build/system/workflows/shared/tool-loader.js +94 -0
  246. package/build/system/workflows/shared/types.d.ts +9 -0
  247. package/build/system/workflows/shared/types.js +2 -0
  248. package/build/system/workflows/tool-result-guard.d.ts +14 -0
  249. package/build/system/workflows/tool-result-guard.js +78 -0
  250. package/build/tsconfig.tsbuildinfo +1 -1
  251. package/build/types/user.d.ts +2 -0
  252. package/build/vitest.config.d.ts +1 -1
  253. package/build/vitest.integration.config.d.ts +1 -1
  254. package/build/workers/index.js +2 -8
  255. package/dashboard/dist/assets/AdminDashboard-CTyAMUJR.js +2 -0
  256. package/dashboard/dist/assets/AdminDashboard-CTyAMUJR.js.map +1 -0
  257. package/dashboard/dist/assets/AvailableEscalationsPage-BMXV3Q4l.js +2 -0
  258. package/dashboard/dist/assets/AvailableEscalationsPage-BMXV3Q4l.js.map +1 -0
  259. package/dashboard/dist/assets/BotPicker-C51nKFEu.js +2 -0
  260. package/dashboard/dist/assets/{BotPicker-D6FYW1Gt.js.map → BotPicker-C51nKFEu.js.map} +1 -1
  261. package/dashboard/dist/assets/CollapsibleSection-BSyfd8uL.js +2 -0
  262. package/dashboard/dist/assets/{CollapsibleSection-Cxk4wvjT.js.map → CollapsibleSection-BSyfd8uL.js.map} +1 -1
  263. package/dashboard/dist/assets/ConfirmDeleteModal-CBdhia5T.js +2 -0
  264. package/dashboard/dist/assets/{ConfirmDeleteModal-FSXyKjaB.js.map → ConfirmDeleteModal-CBdhia5T.js.map} +1 -1
  265. package/dashboard/dist/assets/CopyableId-dGlewBCS.js +2 -0
  266. package/dashboard/dist/assets/{CopyableId-CBdxWfp8.js.map → CopyableId-dGlewBCS.js.map} +1 -1
  267. package/dashboard/dist/assets/CredentialsPage-CoBNFSAu.js +2 -0
  268. package/dashboard/dist/assets/{CredentialsPage-Ikzsot0w.js.map → CredentialsPage-CoBNFSAu.js.map} +1 -1
  269. package/dashboard/dist/assets/CustomDurationPicker-BataWFj8.js +2 -0
  270. package/dashboard/dist/assets/{CustomDurationPicker-CAninCbl.js.map → CustomDurationPicker-BataWFj8.js.map} +1 -1
  271. package/dashboard/dist/assets/DataTable-B3uf5CCo.js +2 -0
  272. package/dashboard/dist/assets/DataTable-B3uf5CCo.js.map +1 -0
  273. package/dashboard/dist/assets/ElapsedCell-G5oSwTpT.js +2 -0
  274. package/dashboard/dist/assets/ElapsedCell-G5oSwTpT.js.map +1 -0
  275. package/dashboard/dist/assets/EmptyState-BChBJNGS.js +2 -0
  276. package/dashboard/dist/assets/{EmptyState-2CmV-IaS.js.map → EmptyState-BChBJNGS.js.map} +1 -1
  277. package/dashboard/dist/assets/EscalationsOverview-CxUv8xjG.js +2 -0
  278. package/dashboard/dist/assets/{EscalationsOverview-GXYFPASS.js.map → EscalationsOverview-CxUv8xjG.js.map} +1 -1
  279. package/dashboard/dist/assets/EventTable-CVt8B0BZ.js +2 -0
  280. package/dashboard/dist/assets/{EventTable-B01oJf6Y.js.map → EventTable-CVt8B0BZ.js.map} +1 -1
  281. package/dashboard/dist/assets/FilterBar-CShf0oe7.js +2 -0
  282. package/dashboard/dist/assets/{FilterBar-Ck4K4rzu.js.map → FilterBar-CShf0oe7.js.map} +1 -1
  283. package/dashboard/dist/assets/McpOverview-CbaZRnJl.js +2 -0
  284. package/dashboard/dist/assets/{McpOverview-JkvRcX2e.js.map → McpOverview-CbaZRnJl.js.map} +1 -1
  285. package/dashboard/dist/assets/McpQueryDetailPage-CGoR9XK6.js +5 -0
  286. package/dashboard/dist/assets/McpQueryDetailPage-CGoR9XK6.js.map +1 -0
  287. package/dashboard/dist/assets/McpQueryPage-BjXoYQuU.js +2 -0
  288. package/dashboard/dist/assets/McpQueryPage-BjXoYQuU.js.map +1 -0
  289. package/dashboard/dist/assets/McpRunDetailPage-DLkA5Aar.js +2 -0
  290. package/dashboard/dist/assets/McpRunDetailPage-DLkA5Aar.js.map +1 -0
  291. package/dashboard/dist/assets/McpRunsPage-DCh9n11D.js +2 -0
  292. package/dashboard/dist/assets/McpRunsPage-DCh9n11D.js.map +1 -0
  293. package/dashboard/dist/assets/Modal-CI5RBPOQ.js +2 -0
  294. package/dashboard/dist/assets/{Modal-B4rbIVAn.js.map → Modal-CI5RBPOQ.js.map} +1 -1
  295. package/dashboard/dist/assets/OperatorDashboard-Dc80suXd.js +2 -0
  296. package/dashboard/dist/assets/OperatorDashboard-Dc80suXd.js.map +1 -0
  297. package/dashboard/dist/assets/PageHeader-SMD9qtOO.js +2 -0
  298. package/dashboard/dist/assets/PageHeader-SMD9qtOO.js.map +1 -0
  299. package/dashboard/dist/assets/PageHeaderWithStats-TikLQsTp.js +2 -0
  300. package/dashboard/dist/assets/PageHeaderWithStats-TikLQsTp.js.map +1 -0
  301. package/dashboard/dist/assets/PriorityBadge-CQ0EsLTA.js +2 -0
  302. package/dashboard/dist/assets/{PriorityBadge-DfQY9St9.js.map → PriorityBadge-CQ0EsLTA.js.map} +1 -1
  303. package/dashboard/dist/assets/ProcessDetailPage-B2GKuGzk.js +2 -0
  304. package/dashboard/dist/assets/ProcessDetailPage-B2GKuGzk.js.map +1 -0
  305. package/dashboard/dist/assets/ProcessesListPage-CTjI3Wn6.js +2 -0
  306. package/dashboard/dist/assets/ProcessesListPage-CTjI3Wn6.js.map +1 -0
  307. package/dashboard/dist/assets/RefreshButton-BcQDObrv.js +2 -0
  308. package/dashboard/dist/assets/RefreshButton-BcQDObrv.js.map +1 -0
  309. package/dashboard/dist/assets/RolePill-Crj4TH5p.js +2 -0
  310. package/dashboard/dist/assets/{RolePill-BTPa8L-P.js.map → RolePill-Crj4TH5p.js.map} +1 -1
  311. package/dashboard/dist/assets/RolesPage-C_RInUwS.js +2 -0
  312. package/dashboard/dist/assets/RolesPage-C_RInUwS.js.map +1 -0
  313. package/dashboard/dist/assets/RowActions-Cp5HyK_w.js +2 -0
  314. package/dashboard/dist/assets/{RowActions-Dg-Fsm5O.js.map → RowActions-Cp5HyK_w.js.map} +1 -1
  315. package/dashboard/dist/assets/RunAsSelector-BhyWtofX.js +2 -0
  316. package/dashboard/dist/assets/RunAsSelector-BhyWtofX.js.map +1 -0
  317. package/dashboard/dist/assets/StatCard-BKZLSgNV.js +2 -0
  318. package/dashboard/dist/assets/{StatCard-DlgF0CJC.js.map → StatCard-BKZLSgNV.js.map} +1 -1
  319. package/dashboard/dist/assets/StatusBadge-BYNGGZK5.js +2 -0
  320. package/dashboard/dist/assets/StatusBadge-BYNGGZK5.js.map +1 -0
  321. package/dashboard/dist/assets/StickyPagination-CTosgiU2.js +2 -0
  322. package/dashboard/dist/assets/{StickyPagination-F9FZsRy9.js.map → StickyPagination-CTosgiU2.js.map} +1 -1
  323. package/dashboard/dist/assets/SwimlaneTimeline-ylG5Ps1s.js +2 -0
  324. package/dashboard/dist/assets/SwimlaneTimeline-ylG5Ps1s.js.map +1 -0
  325. package/dashboard/dist/assets/TaskDetailPage-C9pDGdD2.js +2 -0
  326. package/dashboard/dist/assets/TaskDetailPage-C9pDGdD2.js.map +1 -0
  327. package/dashboard/dist/assets/TaskQueuePill-BtJbZTT0.js +2 -0
  328. package/dashboard/dist/assets/{TaskQueuePill-awmtb0qw.js.map → TaskQueuePill-BtJbZTT0.js.map} +1 -1
  329. package/dashboard/dist/assets/TasksListPage-DtFLUEhg.js +2 -0
  330. package/dashboard/dist/assets/{TasksListPage-C_QF23c1.js.map → TasksListPage-DtFLUEhg.js.map} +1 -1
  331. package/dashboard/dist/assets/TimeAgo-WuM6xImZ.js +2 -0
  332. package/dashboard/dist/assets/TimeAgo-WuM6xImZ.js.map +1 -0
  333. package/dashboard/dist/assets/TimestampCell-IVL_-Upy.js +2 -0
  334. package/dashboard/dist/assets/TimestampCell-IVL_-Upy.js.map +1 -0
  335. package/dashboard/dist/assets/UserName-DU9qeg13.js +2 -0
  336. package/dashboard/dist/assets/{UserName-DaP4YAKr.js.map → UserName-DU9qeg13.js.map} +1 -1
  337. package/dashboard/dist/assets/WorkflowExecutionPage-DOocX81f.js +2 -0
  338. package/dashboard/dist/assets/WorkflowExecutionPage-DOocX81f.js.map +1 -0
  339. package/dashboard/dist/assets/WorkflowPill-Diw8iWBP.js +2 -0
  340. package/dashboard/dist/assets/WorkflowPill-Diw8iWBP.js.map +1 -0
  341. package/dashboard/dist/assets/WorkflowsDashboard-DDtUIrTy.js +2 -0
  342. package/dashboard/dist/assets/WorkflowsDashboard-DDtUIrTy.js.map +1 -0
  343. package/dashboard/dist/assets/WorkflowsOverview-CPuvA4t3.js +2 -0
  344. package/dashboard/dist/assets/{WorkflowsOverview-D9OzzQqw.js.map → WorkflowsOverview-CPuvA4t3.js.map} +1 -1
  345. package/dashboard/dist/assets/YamlWorkflowsPage-DlwwkluN.js +2 -0
  346. package/dashboard/dist/assets/YamlWorkflowsPage-DlwwkluN.js.map +1 -0
  347. package/dashboard/dist/assets/{bots-BkKVMbUW.js → bots-BPiZXf2h.js} +2 -2
  348. package/dashboard/dist/assets/{bots-BkKVMbUW.js.map → bots-BPiZXf2h.js.map} +1 -1
  349. package/dashboard/dist/assets/constants-BHkpVaqx.js +2 -0
  350. package/dashboard/dist/assets/constants-BHkpVaqx.js.map +1 -0
  351. package/dashboard/dist/assets/escalation-DTY_OKRh.js +2 -0
  352. package/dashboard/dist/assets/escalation-DTY_OKRh.js.map +1 -0
  353. package/dashboard/dist/assets/escalation-columns-C91fHSkp.js +2 -0
  354. package/dashboard/dist/assets/{escalation-columns-D6aqStaY.js.map → escalation-columns-C91fHSkp.js.map} +1 -1
  355. package/dashboard/dist/assets/helpers-DBUZ9pnG.js +2 -0
  356. package/dashboard/dist/assets/helpers-DBUZ9pnG.js.map +1 -0
  357. package/dashboard/dist/assets/index-BOeA-gfK.js +17 -0
  358. package/dashboard/dist/assets/{index-X85K5bHC.js.map → index-BOeA-gfK.js.map} +1 -1
  359. package/dashboard/dist/assets/index-BZ6K_kmL.js +3 -0
  360. package/dashboard/dist/assets/index-BZ6K_kmL.js.map +1 -0
  361. package/dashboard/dist/assets/index-Bpm0yeoi.js +2 -0
  362. package/dashboard/dist/assets/index-Bpm0yeoi.js.map +1 -0
  363. package/dashboard/dist/assets/index-BtOwLI0K.js +2 -0
  364. package/dashboard/dist/assets/{index-DTPzZr_X.js.map → index-BtOwLI0K.js.map} +1 -1
  365. package/dashboard/dist/assets/index-CBF3ZvRZ.js +6 -0
  366. package/dashboard/dist/assets/index-CBF3ZvRZ.js.map +1 -0
  367. package/dashboard/dist/assets/index-CDWOfCmi.js +2 -0
  368. package/dashboard/dist/assets/index-CDWOfCmi.js.map +1 -0
  369. package/dashboard/dist/assets/index-Ce6sL__n.js +2 -0
  370. package/dashboard/dist/assets/index-Ce6sL__n.js.map +1 -0
  371. package/dashboard/dist/assets/index-DSzSoku1.js +283 -0
  372. package/dashboard/dist/assets/index-DSzSoku1.js.map +1 -0
  373. package/dashboard/dist/assets/index-D_qEAYrg.js +2 -0
  374. package/dashboard/dist/assets/index-D_qEAYrg.js.map +1 -0
  375. package/dashboard/dist/assets/index-gCy9XX3W.css +1 -0
  376. package/dashboard/dist/assets/mcp-BzVpaaKF.js +2 -0
  377. package/dashboard/dist/assets/{mcp-blCW6IL7.js.map → mcp-BzVpaaKF.js.map} +1 -1
  378. package/dashboard/dist/assets/mcp-query-wTuxTTCV.js +2 -0
  379. package/dashboard/dist/assets/mcp-query-wTuxTTCV.js.map +1 -0
  380. package/dashboard/dist/assets/{mcp-runs-ChPbpvXK.js → mcp-runs-DmXYJD19.js} +2 -2
  381. package/dashboard/dist/assets/{mcp-runs-ChPbpvXK.js.map → mcp-runs-DmXYJD19.js.map} +1 -1
  382. package/dashboard/dist/assets/namespaces-DoGa7jc7.js +2 -0
  383. package/dashboard/dist/assets/{namespaces-BgbaC3ow.js.map → namespaces-DoGa7jc7.js.map} +1 -1
  384. package/dashboard/dist/assets/{roles-ZNrqqnQl.js → roles-wCdQ2Z7k.js} +2 -2
  385. package/dashboard/dist/assets/{roles-ZNrqqnQl.js.map → roles-wCdQ2Z7k.js.map} +1 -1
  386. package/dashboard/dist/assets/settings-DDe_L7JT.js +2 -0
  387. package/dashboard/dist/assets/{settings-eBRSE0mQ.js.map → settings-DDe_L7JT.js.map} +1 -1
  388. package/dashboard/dist/assets/tasks-3Hih8Bt7.js +2 -0
  389. package/dashboard/dist/assets/{tasks-tRqClPns.js.map → tasks-3Hih8Bt7.js.map} +1 -1
  390. package/dashboard/dist/assets/{useFilterParams-BaXUAkYK.js → useFilterParams-BUyLHcx_.js} +2 -2
  391. package/dashboard/dist/assets/{useFilterParams-BaXUAkYK.js.map → useFilterParams-BUyLHcx_.js.map} +1 -1
  392. package/dashboard/dist/assets/{useNatsEvents-Xr43X1fG.js → useNatsEvents-DeGKHFTX.js} +2 -2
  393. package/dashboard/dist/assets/{useNatsEvents-Xr43X1fG.js.map → useNatsEvents-DeGKHFTX.js.map} +1 -1
  394. package/dashboard/dist/assets/{useYamlActivityEvents-BO51u8tm.js → useYamlActivityEvents-B5dHec6Y.js} +2 -2
  395. package/dashboard/dist/assets/{useYamlActivityEvents-BO51u8tm.js.map → useYamlActivityEvents-B5dHec6Y.js.map} +1 -1
  396. package/dashboard/dist/assets/{users-tMvNyOo8.js → users-BTagPmGW.js} +2 -2
  397. package/dashboard/dist/assets/{users-tMvNyOo8.js.map → users-BTagPmGW.js.map} +1 -1
  398. package/dashboard/dist/assets/{vendor-icons-ZTAKVwGc.js → vendor-icons-DCLlGYO9.js} +112 -57
  399. package/dashboard/dist/assets/vendor-icons-DCLlGYO9.js.map +1 -0
  400. package/dashboard/dist/assets/vendor-query-DLp59M9_.js +35 -0
  401. package/dashboard/dist/assets/vendor-query-DLp59M9_.js.map +1 -0
  402. package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js +26 -0
  403. package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js.map +1 -0
  404. package/dashboard/dist/assets/{workflows-Cc4VHcrp.js → workflows-B20dR3NE.js} +2 -2
  405. package/dashboard/dist/assets/{workflows-Cc4VHcrp.js.map → workflows-B20dR3NE.js.map} +1 -1
  406. package/dashboard/dist/assets/yaml-workflows-CaLPMQha.js +2 -0
  407. package/dashboard/dist/assets/yaml-workflows-CaLPMQha.js.map +1 -0
  408. package/dashboard/dist/index.html +5 -5
  409. package/docs/api/dba.md +81 -0
  410. package/docs/api/escalations.md +575 -0
  411. package/docs/api/exports.md +170 -0
  412. package/docs/api/maintenance.md +93 -0
  413. package/docs/api/mcp-runs.md +128 -0
  414. package/docs/api/mcp-servers.md +195 -0
  415. package/docs/api/namespaces.md +48 -0
  416. package/docs/api/roles.md +390 -0
  417. package/docs/api/service-accounts.md +188 -0
  418. package/docs/api/settings.md +33 -0
  419. package/docs/api/tasks.md +167 -0
  420. package/docs/api/users.md +180 -0
  421. package/docs/api/workflows.md +616 -0
  422. package/docs/api/yaml-workflows.md +312 -0
  423. package/docs/architecture.md +221 -0
  424. package/docs/auth.md +181 -0
  425. package/docs/cloud.md +272 -0
  426. package/docs/compilation.md +136 -0
  427. package/docs/contributing.md +56 -0
  428. package/docs/dashboard.md +145 -0
  429. package/docs/data.md +478 -0
  430. package/docs/escalation-strategies.md +264 -0
  431. package/docs/events.md +251 -0
  432. package/docs/iam.md +222 -0
  433. package/docs/img/01-login.png +0 -0
  434. package/docs/img/02-dashboard-home.png +0 -0
  435. package/docs/img/03-processes-list.png +0 -0
  436. package/docs/img/04-escalations-list.png +0 -0
  437. package/docs/img/05-mcp-servers.png +0 -0
  438. package/docs/img/06-mcp-pipelines.png +0 -0
  439. package/docs/img/07-workflows-list.png +0 -0
  440. package/docs/img/compilation/01-query-submit.png +0 -0
  441. package/docs/img/compilation/02-mcp-servers.png +0 -0
  442. package/docs/img/compilation/03-query-completed.png +0 -0
  443. package/docs/img/compilation/04-wizard-original.png +0 -0
  444. package/docs/img/compilation/05-wizard-timeline.png +0 -0
  445. package/docs/img/compilation/06-wizard-profile.png +0 -0
  446. package/docs/img/compilation/07-wizard-deploy.png +0 -0
  447. package/docs/img/compilation/08-wizard-test-modal.png +0 -0
  448. package/docs/img/compilation/09-wizard-test-compare.png +0 -0
  449. package/docs/img/compilation/10-wizard-verify.png +0 -0
  450. package/docs/logging.md +110 -0
  451. package/docs/maintenance.md +221 -0
  452. package/docs/mcp.md +715 -0
  453. package/docs/oauth-and-delegation.md +469 -0
  454. package/docs/telemetry.md +144 -0
  455. package/docs/workflows.md +695 -0
  456. package/lib/db/schemas/015_knowledge.sql +23 -0
  457. package/package.json +8 -9
  458. package/build/services/db/index.d.ts +0 -3
  459. package/build/services/mcp/vision-server.d.ts +0 -15
  460. package/build/services/mcp/vision-server.js +0 -214
  461. package/build/system/mcp-servers/document-vision.js +0 -228
  462. package/build/system/mcp-servers/prompts.d.ts +0 -4
  463. package/build/system/mcp-servers/prompts.js +0 -10
  464. package/dashboard/dist/assets/AdminDashboard-jfacvOC7.js +0 -2
  465. package/dashboard/dist/assets/AdminDashboard-jfacvOC7.js.map +0 -1
  466. package/dashboard/dist/assets/AvailableEscalationsPage-BglLDoT8.js +0 -2
  467. package/dashboard/dist/assets/AvailableEscalationsPage-BglLDoT8.js.map +0 -1
  468. package/dashboard/dist/assets/BotPicker-D6FYW1Gt.js +0 -2
  469. package/dashboard/dist/assets/CollapsibleSection-Cxk4wvjT.js +0 -2
  470. package/dashboard/dist/assets/ConfirmDeleteModal-FSXyKjaB.js +0 -2
  471. package/dashboard/dist/assets/CopyableId-CBdxWfp8.js +0 -2
  472. package/dashboard/dist/assets/CredentialsPage-Ikzsot0w.js +0 -2
  473. package/dashboard/dist/assets/CustomDurationPicker-CAninCbl.js +0 -2
  474. package/dashboard/dist/assets/DataTable-BDn1WBHS.js +0 -2
  475. package/dashboard/dist/assets/DataTable-BDn1WBHS.js.map +0 -1
  476. package/dashboard/dist/assets/EmptyState-2CmV-IaS.js +0 -2
  477. package/dashboard/dist/assets/EscalationsOverview-GXYFPASS.js +0 -2
  478. package/dashboard/dist/assets/EventTable-B01oJf6Y.js +0 -2
  479. package/dashboard/dist/assets/Field-DuFBAYhu.js +0 -2
  480. package/dashboard/dist/assets/Field-DuFBAYhu.js.map +0 -1
  481. package/dashboard/dist/assets/FilterBar-Ck4K4rzu.js +0 -2
  482. package/dashboard/dist/assets/McpOverview-JkvRcX2e.js +0 -2
  483. package/dashboard/dist/assets/McpQueryDetailPage-CUMqhQdS.js +0 -2
  484. package/dashboard/dist/assets/McpQueryDetailPage-CUMqhQdS.js.map +0 -1
  485. package/dashboard/dist/assets/McpQueryPage-DRRhw4nN.js +0 -2
  486. package/dashboard/dist/assets/McpQueryPage-DRRhw4nN.js.map +0 -1
  487. package/dashboard/dist/assets/McpRunDetailPage-CmPs5EvE.js +0 -2
  488. package/dashboard/dist/assets/McpRunDetailPage-CmPs5EvE.js.map +0 -1
  489. package/dashboard/dist/assets/McpRunsPage-Dl5Y2u6k.js +0 -2
  490. package/dashboard/dist/assets/McpRunsPage-Dl5Y2u6k.js.map +0 -1
  491. package/dashboard/dist/assets/Modal-B4rbIVAn.js +0 -2
  492. package/dashboard/dist/assets/OperatorDashboard-B56il28q.js +0 -2
  493. package/dashboard/dist/assets/OperatorDashboard-B56il28q.js.map +0 -1
  494. package/dashboard/dist/assets/PageHeader-CpWFly5S.js +0 -2
  495. package/dashboard/dist/assets/PageHeader-CpWFly5S.js.map +0 -1
  496. package/dashboard/dist/assets/PriorityBadge-DfQY9St9.js +0 -2
  497. package/dashboard/dist/assets/ProcessDetailPage-CMLq4M7D.js +0 -2
  498. package/dashboard/dist/assets/ProcessDetailPage-CMLq4M7D.js.map +0 -1
  499. package/dashboard/dist/assets/ProcessesListPage-CZ_HF06v.js +0 -2
  500. package/dashboard/dist/assets/ProcessesListPage-CZ_HF06v.js.map +0 -1
  501. package/dashboard/dist/assets/RolePill-BTPa8L-P.js +0 -2
  502. package/dashboard/dist/assets/RolesPage-9grZW7yR.js +0 -2
  503. package/dashboard/dist/assets/RolesPage-9grZW7yR.js.map +0 -1
  504. package/dashboard/dist/assets/RowActions-Dg-Fsm5O.js +0 -2
  505. package/dashboard/dist/assets/SimpleMarkdown-CBlvaWP4.js +0 -4
  506. package/dashboard/dist/assets/SimpleMarkdown-CBlvaWP4.js.map +0 -1
  507. package/dashboard/dist/assets/StatCard-DlgF0CJC.js +0 -2
  508. package/dashboard/dist/assets/StatusBadge-TlC4jiig.js +0 -2
  509. package/dashboard/dist/assets/StatusBadge-TlC4jiig.js.map +0 -1
  510. package/dashboard/dist/assets/StickyPagination-F9FZsRy9.js +0 -2
  511. package/dashboard/dist/assets/SwimlaneTimeline-7SiwATsZ.js +0 -2
  512. package/dashboard/dist/assets/SwimlaneTimeline-7SiwATsZ.js.map +0 -1
  513. package/dashboard/dist/assets/TaskDetailPage-CbPVTakt.js +0 -2
  514. package/dashboard/dist/assets/TaskDetailPage-CbPVTakt.js.map +0 -1
  515. package/dashboard/dist/assets/TaskQueuePill-awmtb0qw.js +0 -2
  516. package/dashboard/dist/assets/TasksListPage-C_QF23c1.js +0 -2
  517. package/dashboard/dist/assets/TimeAgo-UPG6DoH8.js +0 -2
  518. package/dashboard/dist/assets/TimeAgo-UPG6DoH8.js.map +0 -1
  519. package/dashboard/dist/assets/TimestampCell-DoWMKg6w.js +0 -2
  520. package/dashboard/dist/assets/TimestampCell-DoWMKg6w.js.map +0 -1
  521. package/dashboard/dist/assets/UserName-DaP4YAKr.js +0 -2
  522. package/dashboard/dist/assets/VersionHistory-Bt7WBr6m.js +0 -5
  523. package/dashboard/dist/assets/VersionHistory-Bt7WBr6m.js.map +0 -1
  524. package/dashboard/dist/assets/WorkflowExecutionPage-DjtAQ3hy.js +0 -2
  525. package/dashboard/dist/assets/WorkflowExecutionPage-DjtAQ3hy.js.map +0 -1
  526. package/dashboard/dist/assets/WorkflowPill-CCDSVaQj.js +0 -2
  527. package/dashboard/dist/assets/WorkflowPill-CCDSVaQj.js.map +0 -1
  528. package/dashboard/dist/assets/WorkflowsDashboard-D8z9uBNB.js +0 -2
  529. package/dashboard/dist/assets/WorkflowsDashboard-D8z9uBNB.js.map +0 -1
  530. package/dashboard/dist/assets/WorkflowsOverview-D9OzzQqw.js +0 -2
  531. package/dashboard/dist/assets/YamlWorkflowDetailPage-DrDvvP62.js +0 -3
  532. package/dashboard/dist/assets/YamlWorkflowDetailPage-DrDvvP62.js.map +0 -1
  533. package/dashboard/dist/assets/YamlWorkflowsPage-COqiNCQK.js +0 -2
  534. package/dashboard/dist/assets/YamlWorkflowsPage-COqiNCQK.js.map +0 -1
  535. package/dashboard/dist/assets/constants-CgaZfe5d.js +0 -2
  536. package/dashboard/dist/assets/constants-CgaZfe5d.js.map +0 -1
  537. package/dashboard/dist/assets/escalation-columns-D6aqStaY.js +0 -2
  538. package/dashboard/dist/assets/escalation-qalymbKB.js +0 -2
  539. package/dashboard/dist/assets/escalation-qalymbKB.js.map +0 -1
  540. package/dashboard/dist/assets/format-gXZXQ-HJ.js +0 -2
  541. package/dashboard/dist/assets/format-gXZXQ-HJ.js.map +0 -1
  542. package/dashboard/dist/assets/helpers-0gSleuzT.js +0 -2
  543. package/dashboard/dist/assets/helpers-0gSleuzT.js.map +0 -1
  544. package/dashboard/dist/assets/index-BWvMHed7.js +0 -6
  545. package/dashboard/dist/assets/index-BWvMHed7.js.map +0 -1
  546. package/dashboard/dist/assets/index-BaszoPO_.css +0 -1
  547. package/dashboard/dist/assets/index-Cn2jyj9A.js +0 -2
  548. package/dashboard/dist/assets/index-Cn2jyj9A.js.map +0 -1
  549. package/dashboard/dist/assets/index-D8VH6K8B.js +0 -54
  550. package/dashboard/dist/assets/index-D8VH6K8B.js.map +0 -1
  551. package/dashboard/dist/assets/index-D9SYwJsi.js +0 -3
  552. package/dashboard/dist/assets/index-D9SYwJsi.js.map +0 -1
  553. package/dashboard/dist/assets/index-DTPzZr_X.js +0 -2
  554. package/dashboard/dist/assets/index-D_6AB5BE.js +0 -2
  555. package/dashboard/dist/assets/index-D_6AB5BE.js.map +0 -1
  556. package/dashboard/dist/assets/index-S9Ks2Lj2.js +0 -2
  557. package/dashboard/dist/assets/index-S9Ks2Lj2.js.map +0 -1
  558. package/dashboard/dist/assets/index-X85K5bHC.js +0 -17
  559. package/dashboard/dist/assets/index-rjmgHlSH.js +0 -2
  560. package/dashboard/dist/assets/index-rjmgHlSH.js.map +0 -1
  561. package/dashboard/dist/assets/mcp-blCW6IL7.js +0 -2
  562. package/dashboard/dist/assets/mcp-query-DoAyPbjC.js +0 -2
  563. package/dashboard/dist/assets/mcp-query-DoAyPbjC.js.map +0 -1
  564. package/dashboard/dist/assets/namespaces-BgbaC3ow.js +0 -2
  565. package/dashboard/dist/assets/settings-eBRSE0mQ.js +0 -2
  566. package/dashboard/dist/assets/tasks-tRqClPns.js +0 -2
  567. package/dashboard/dist/assets/vendor-icons-ZTAKVwGc.js.map +0 -1
  568. package/dashboard/dist/assets/vendor-query-B2UbickB.js +0 -18
  569. package/dashboard/dist/assets/vendor-query-B2UbickB.js.map +0 -1
  570. package/dashboard/dist/assets/vendor-react-Cw8Gy8NJ.js +0 -22
  571. package/dashboard/dist/assets/vendor-react-Cw8Gy8NJ.js.map +0 -1
  572. package/dashboard/dist/assets/yaml-workflows-BL4V5CQy.js +0 -2
  573. package/dashboard/dist/assets/yaml-workflows-BL4V5CQy.js.map +0 -1
  574. /package/build/{services → lib}/db/migrate.d.ts +0 -0
  575. /package/build/{services → lib}/events/index.d.ts +0 -0
  576. /package/build/{services → lib}/events/index.js +0 -0
  577. /package/build/{services → lib}/events/memory.d.ts +0 -0
  578. /package/build/{services → lib}/events/memory.js +0 -0
  579. /package/build/{services → lib}/events/nats.d.ts +0 -0
  580. /package/build/{services → lib}/events/nats.js +0 -0
  581. /package/build/{services → lib}/events/publish.d.ts +0 -0
  582. /package/build/{services → lib}/events/publish.js +0 -0
  583. /package/build/{services → lib}/events/socketio.d.ts +0 -0
  584. /package/build/{services → lib}/events/socketio.js +0 -0
  585. /package/build/{services → lib}/logger/index.d.ts +0 -0
  586. /package/build/{services → lib}/logger/index.js +0 -0
  587. /package/build/{services → lib}/logger/pino.d.ts +0 -0
  588. /package/build/{services → lib}/logger/pino.js +0 -0
  589. /package/build/{services → lib}/storage/index.d.ts +0 -0
  590. /package/build/{services → lib}/storage/index.js +0 -0
  591. /package/build/{services → lib}/storage/local.d.ts +0 -0
  592. /package/build/{services → lib}/storage/local.js +0 -0
  593. /package/build/{services → lib}/storage/s3.d.ts +0 -0
  594. /package/build/{services → lib}/storage/s3.js +0 -0
  595. /package/build/{services → lib}/storage/types.d.ts +0 -0
  596. /package/build/{services → lib}/storage/types.js +0 -0
  597. /package/build/{services → lib}/telemetry/index.d.ts +0 -0
  598. /package/build/{services → lib}/telemetry/index.js +0 -0
  599. /package/{services → lib}/db/README.md +0 -0
  600. /package/{services → lib}/db/schemas/001_schema.sql +0 -0
  601. /package/{services → lib}/db/schemas/002_seed.sql +0 -0
  602. /package/{services → lib}/db/schemas/003_workflow_discovery.sql +0 -0
  603. /package/{services → lib}/db/schemas/004_query_router.sql +0 -0
  604. /package/{services → lib}/db/schemas/005_triage_router.sql +0 -0
  605. /package/{services → lib}/db/schemas/006_oauth.sql +0 -0
  606. /package/{services → lib}/db/schemas/007_security.sql +0 -0
  607. /package/{services → lib}/db/schemas/008_bot_accounts.sql +0 -0
  608. /package/{services → lib}/db/schemas/009_audit_trail.sql +0 -0
  609. /package/{services → lib}/db/schemas/010_credential_providers.sql +0 -0
  610. /package/{services → lib}/db/schemas/011_system_workflow_configs.sql +0 -0
  611. /package/{services → lib}/db/schemas/012_drop_modality.sql +0 -0
  612. /package/{services → lib}/db/schemas/013_execute_as.sql +0 -0
  613. /package/{services → lib}/db/schemas/014_ephemeral_credentials.sql +0 -0
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ // ─── OAuth token CRUD ───────────────────────────────────────────────────────
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.GET_USER_BY_OAUTH = exports.DELETE_TOKEN_DEFAULT = exports.DELETE_TOKEN = exports.LIST_CONNECTIONS = exports.GET_TOKEN_DEFAULT = exports.GET_TOKEN = exports.UPSERT_TOKEN = void 0;
5
+ exports.UPSERT_TOKEN = `
6
+ INSERT INTO lt_oauth_tokens
7
+ (user_id, provider, label, access_token_enc, refresh_token_enc, token_type, scopes,
8
+ expires_at, provider_user_id, provider_email, metadata)
9
+ VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11)
10
+ ON CONFLICT (user_id, provider, label) DO UPDATE SET
11
+ access_token_enc = EXCLUDED.access_token_enc,
12
+ refresh_token_enc = COALESCE(EXCLUDED.refresh_token_enc, lt_oauth_tokens.refresh_token_enc),
13
+ token_type = EXCLUDED.token_type,
14
+ scopes = EXCLUDED.scopes,
15
+ expires_at = EXCLUDED.expires_at,
16
+ provider_user_id = EXCLUDED.provider_user_id,
17
+ provider_email = COALESCE(EXCLUDED.provider_email, lt_oauth_tokens.provider_email),
18
+ metadata = COALESCE(EXCLUDED.metadata, lt_oauth_tokens.metadata)
19
+ RETURNING id`;
20
+ exports.GET_TOKEN = `
21
+ SELECT * FROM lt_oauth_tokens WHERE user_id = $1 AND provider = $2 AND label = $3`;
22
+ exports.GET_TOKEN_DEFAULT = `
23
+ SELECT * FROM lt_oauth_tokens WHERE user_id = $1 AND provider = $2 AND label = 'default'`;
24
+ exports.LIST_CONNECTIONS = `
25
+ SELECT provider, label, provider_email, scopes, expires_at, metadata
26
+ FROM lt_oauth_tokens WHERE user_id = $1 ORDER BY provider, label`;
27
+ exports.DELETE_TOKEN = `
28
+ DELETE FROM lt_oauth_tokens WHERE user_id = $1 AND provider = $2 AND label = $3`;
29
+ exports.DELETE_TOKEN_DEFAULT = `
30
+ DELETE FROM lt_oauth_tokens WHERE user_id = $1 AND provider = $2 AND label = 'default'`;
31
+ exports.GET_USER_BY_OAUTH = `
32
+ SELECT * FROM lt_users WHERE oauth_provider = $1 AND oauth_provider_id = $2`;
@@ -69,13 +69,13 @@ async function executeLT(options) {
69
69
  const { ltCreateTask, ltStartTask, ltCompleteTask, ltGetWorkflowConfig, ltGetProviderData, } = hotmesh_1.Durable.workflow.proxyActivities({
70
70
  activities: interceptorActivities,
71
71
  taskQueue: LT_ACTIVITY_QUEUE,
72
- retryPolicy: { maximumAttempts: 3 },
72
+ retry: { maximumAttempts: 3 },
73
73
  });
74
74
  // Derive child workflow ID deterministically from the parent context.
75
75
  // Combines parent workflowId (globally unique) with the execution
76
76
  // counter (unique per step within this workflow) — zero-cost, fully
77
77
  // replay-safe, and self-documents its lineage.
78
- const ctx = hotmesh_1.Durable.workflow.getContext();
78
+ const ctx = hotmesh_1.Durable.workflow.workflowInfo();
79
79
  const childWorkflowId = options.workflowId || `${workflowName}-${ctx.workflowId}-${ctx.counter}`;
80
80
  const signalId = `lt-result-${childWorkflowId}`;
81
81
  // Read orchestrator context (set by interceptor wrapping the container)
@@ -142,7 +142,7 @@ async function executeLT(options) {
142
142
  entity: workflowName,
143
143
  });
144
144
  // 6. Wait for the child's interceptor to signal back with the result
145
- const result = await hotmesh_1.Durable.workflow.waitFor(signalId);
145
+ const result = await hotmesh_1.Durable.workflow.condition(signalId);
146
146
  // 7. Complete the task — persist result data
147
147
  await ltCompleteTask({
148
148
  taskId,
@@ -10,7 +10,7 @@ exports.listDistinctRoles = listDistinctRoles;
10
10
  exports.listRolesWithDetails = listRolesWithDetails;
11
11
  exports.createRole = createRole;
12
12
  exports.deleteRole = deleteRole;
13
- const db_1 = require("../db");
13
+ const db_1 = require("../../lib/db");
14
14
  const user_1 = require("../user");
15
15
  const sql_1 = require("./sql");
16
16
  /**
@@ -7,7 +7,7 @@ exports.getTask = getTask;
7
7
  exports.getTaskBySignalId = getTaskBySignalId;
8
8
  exports.getTaskByWorkflowId = getTaskByWorkflowId;
9
9
  exports.listTasks = listTasks;
10
- const db_1 = require("../db");
10
+ const db_1 = require("../../lib/db");
11
11
  const sql_1 = require("./sql");
12
12
  async function createTask(input) {
13
13
  const pool = (0, db_1.getPool)();
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.listProcesses = listProcesses;
4
4
  exports.getProcessStats = getProcessStats;
5
5
  exports.getProcessTasks = getProcessTasks;
6
- const db_1 = require("../db");
6
+ const db_1 = require("../../lib/db");
7
7
  const types_1 = require("./types");
8
8
  const sql_1 = require("./sql");
9
9
  async function listProcesses(filters) {
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveWorkflowHandle = resolveWorkflowHandle;
4
- const db_1 = require("../db");
4
+ const db_1 = require("../../lib/db");
5
5
  const registry_1 = require("../workers/registry");
6
6
  const sql_1 = require("./sql");
7
7
  /**
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.verifyPassword = verifyPassword;
7
7
  const bcryptjs_1 = __importDefault(require("bcryptjs"));
8
- const db_1 = require("../db");
8
+ const db_1 = require("../../lib/db");
9
9
  const crud_1 = require("./crud");
10
10
  const sql_1 = require("./sql");
11
11
  // ─── Password authentication ────────────────────────────────────────────────
@@ -12,7 +12,7 @@ exports.updateUser = updateUser;
12
12
  exports.deleteUser = deleteUser;
13
13
  exports.listUsers = listUsers;
14
14
  const bcryptjs_1 = __importDefault(require("bcryptjs"));
15
- const db_1 = require("../db");
15
+ const db_1 = require("../../lib/db");
16
16
  const sql_1 = require("./sql");
17
17
  // ─── Private helpers (exported for internal use by auth.ts) ──────────────────
18
18
  async function attachRoles(user) {
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isSuperAdmin = isSuperAdmin;
4
4
  exports.isGroupAdmin = isGroupAdmin;
5
5
  exports.canManageRole = canManageRole;
6
- const db_1 = require("../db");
6
+ const db_1 = require("../../lib/db");
7
7
  const roles_1 = require("./roles");
8
8
  const sql_1 = require("./sql");
9
9
  // ─── RBAC helpers ─────────────────────────────────────────────────────────────
@@ -6,7 +6,7 @@ exports.removeUserRole = removeUserRole;
6
6
  exports.getUserRoles = getUserRoles;
7
7
  exports.hasRole = hasRole;
8
8
  exports.hasRoleType = hasRoleType;
9
- const db_1 = require("../db");
9
+ const db_1 = require("../../lib/db");
10
10
  const sql_1 = require("./sql");
11
11
  const types_1 = require("./types");
12
12
  // ─── Role management ──────────────────────────────────────────────────────────
@@ -8,6 +8,8 @@ export declare const INSERT_USER = "INSERT INTO lt_users (external_id, email, di
8
8
  export declare const GET_USER_BY_EMAIL = "SELECT * FROM lt_users WHERE email = $1 LIMIT 1";
9
9
  export declare const INSERT_USER_ROLE_IGNORE = "INSERT INTO lt_user_roles (user_id, role, type) VALUES ($1, $2, $3)\n ON CONFLICT DO NOTHING";
10
10
  export declare const GET_USER_BY_ID = "SELECT * FROM lt_users WHERE id = $1";
11
+ /** Check if a user exists by id. Lightweight — returns only the id column. */
12
+ export declare const VERIFY_USER_BY_ID = "SELECT id FROM lt_users WHERE id = $1 LIMIT 1";
11
13
  /** Fetch user + roles in a single query. Returns one row per role (or one row with nulls if no roles). */
12
14
  export declare const GET_USER_WITH_ROLES = "SELECT u.id, u.external_id, u.display_name, u.status, u.metadata,\n r.role, r.type AS role_type\n FROM lt_users u\n LEFT JOIN lt_user_roles r ON r.user_id = u.id\n WHERE u.external_id = $1\n ORDER BY r.created_at";
13
15
  export declare const DELETE_USER_BY_ID = "DELETE FROM lt_users WHERE id = $1";
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  // ─── Shared queries (used by multiple modules) ──────────────────────────────
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.IS_GROUP_ADMIN = exports.HAS_ROLE_TYPE = exports.HAS_ROLE = exports.DELETE_USER_ROLE = exports.UPSERT_USER_ROLE = exports.GET_ROLES_BY_USER_IDS = exports.DELETE_USER_BY_ID = exports.GET_USER_WITH_ROLES = exports.GET_USER_BY_ID = exports.INSERT_USER_ROLE_IGNORE = exports.GET_USER_BY_EMAIL = exports.INSERT_USER = exports.GET_USER_BY_EXTERNAL_ID = exports.GET_ROLES_BY_USER_ID = exports.ENSURE_ROLE_EXISTS = void 0;
4
+ exports.IS_GROUP_ADMIN = exports.HAS_ROLE_TYPE = exports.HAS_ROLE = exports.DELETE_USER_ROLE = exports.UPSERT_USER_ROLE = exports.GET_ROLES_BY_USER_IDS = exports.DELETE_USER_BY_ID = exports.GET_USER_WITH_ROLES = exports.VERIFY_USER_BY_ID = exports.GET_USER_BY_ID = exports.INSERT_USER_ROLE_IGNORE = exports.GET_USER_BY_EMAIL = exports.INSERT_USER = exports.GET_USER_BY_EXTERNAL_ID = exports.GET_ROLES_BY_USER_ID = exports.ENSURE_ROLE_EXISTS = void 0;
5
5
  /** Ensure a role name exists in the lt_roles lookup table (FK target). */
6
6
  exports.ENSURE_ROLE_EXISTS = 'INSERT INTO lt_roles (role) VALUES ($1) ON CONFLICT DO NOTHING';
7
7
  /** Fetch roles for a single user, ordered by creation time. */
@@ -16,6 +16,8 @@ exports.GET_USER_BY_EMAIL = `SELECT * FROM lt_users WHERE email = $1 LIMIT 1`;
16
16
  exports.INSERT_USER_ROLE_IGNORE = `INSERT INTO lt_user_roles (user_id, role, type) VALUES ($1, $2, $3)
17
17
  ON CONFLICT DO NOTHING`;
18
18
  exports.GET_USER_BY_ID = 'SELECT * FROM lt_users WHERE id = $1';
19
+ /** Check if a user exists by id. Lightweight — returns only the id column. */
20
+ exports.VERIFY_USER_BY_ID = 'SELECT id FROM lt_users WHERE id = $1 LIMIT 1';
19
21
  /** Fetch user + roles in a single query. Returns one row per role (or one row with nulls if no roles). */
20
22
  exports.GET_USER_WITH_ROLES = `SELECT u.id, u.external_id, u.display_name, u.status, u.metadata,
21
23
  r.role, r.type AS role_type
@@ -4,7 +4,7 @@ exports.parseVersionFromYaml = parseVersionFromYaml;
4
4
  exports.updateYamlWorkflowStatus = updateYamlWorkflowStatus;
5
5
  exports.listYamlWorkflows = listYamlWorkflows;
6
6
  exports.findYamlWorkflowsByTags = findYamlWorkflowsByTags;
7
- const db_1 = require("../db");
7
+ const db_1 = require("../../lib/db");
8
8
  const defaults_1 = require("../../modules/defaults");
9
9
  const sql_1 = require("./sql");
10
10
  /**
@@ -16,7 +16,7 @@ exports.getVersionHistory = getVersionHistory;
16
16
  exports.getVersionSnapshot = getVersionSnapshot;
17
17
  exports.markContentDeployed = markContentDeployed;
18
18
  exports.markAppIdContentDeployed = markAppIdContentDeployed;
19
- const db_1 = require("../db");
19
+ const db_1 = require("../../lib/db");
20
20
  const defaults_1 = require("../../modules/defaults");
21
21
  const sql_1 = require("./sql");
22
22
  const db_utils_1 = require("./db-utils");
@@ -38,7 +38,7 @@ exports.recompileWithContext = recompileWithContext;
38
38
  // eslint-disable-next-line @typescript-eslint/no-var-requires
39
39
  const yaml = require('js-yaml');
40
40
  const defaults_1 = require("../../modules/defaults");
41
- const logger_1 = require("../logger");
41
+ const logger_1 = require("../../lib/logger");
42
42
  const yamlDb = __importStar(require("./db"));
43
43
  /**
44
44
  * Merge all YAML graphs for an app_id into a single YAML document.
@@ -43,10 +43,9 @@ exports.invokeYamlWorkflowSync = invokeYamlWorkflowSync;
43
43
  exports.stopEngine = stopEngine;
44
44
  exports.stopAllEngines = stopAllEngines;
45
45
  const hotmesh_1 = require("@hotmeshio/hotmesh");
46
- const pg_1 = require("pg");
47
- const config_1 = require("../../modules/config");
46
+ const db_1 = require("../../lib/db");
48
47
  const defaults_1 = require("../../modules/defaults");
49
- const logger_1 = require("../logger");
48
+ const logger_1 = require("../../lib/logger");
50
49
  const namespaceService = __importStar(require("../namespace"));
51
50
  const deployer_helpers_1 = require("./deployer-helpers");
52
51
  // Re-export helpers so existing `import * from './deployer'` consumers keep working
@@ -64,8 +63,9 @@ async function getEngine(appId) {
64
63
  return cached;
65
64
  const engine = await hotmesh_1.HotMesh.init({
66
65
  appId,
66
+ guid: `deployer::${appId}-${hotmesh_1.HotMesh.guid()}`,
67
67
  engine: {
68
- connection: { class: pg_1.Client, options: config_1.postgres_options },
68
+ connection: (0, db_1.getConnection)(),
69
69
  },
70
70
  });
71
71
  engines.set(appId, engine);
@@ -96,7 +96,7 @@ async function generateYamlFromExecution(options) {
96
96
  ctx = await (0, validate_1.validate)(ctx);
97
97
  // 4. Log validation warnings (informational — do not recompile)
98
98
  if (ctx.validationIssues.length > 0) {
99
- const { loggerRegistry } = await Promise.resolve().then(() => __importStar(require('../logger')));
99
+ const { loggerRegistry } = await Promise.resolve().then(() => __importStar(require('../../lib/logger')));
100
100
  loggerRegistry.warn(`[yaml-workflow] Validation warnings (${ctx.validationIssues.length}): ${ctx.validationIssues.join('; ')}`);
101
101
  }
102
102
  // 5. Return result
@@ -21,6 +21,7 @@ export interface ExtractedStepLike {
21
21
  kind: 'tool' | 'llm';
22
22
  toolName: string;
23
23
  arguments: Record<string, unknown>;
24
+ result?: unknown;
24
25
  }
25
26
  /**
26
27
  * Classify a single argument key as dynamic, fixed, or wired.
@@ -29,6 +30,11 @@ export declare function classifyArgument(key: string, value: unknown, _context?:
29
30
  stepIndex: number;
30
31
  toolName: string;
31
32
  }): 'dynamic' | 'fixed' | 'wired';
33
+ /**
34
+ * Check if an array argument was likely produced by a prior step's result.
35
+ * Compares the item keys of the argument array against result arrays from prior steps.
36
+ */
37
+ export declare function isArrayWiredFromPriorStep(value: unknown[], priorSteps: ExtractedStepLike[]): boolean;
32
38
  /** Convert a snake_case/camelCase field name to a readable description. */
33
39
  export declare function humanize(name: string): string;
34
40
  /** Infer a JSON Schema type string from a JS value. */
@@ -8,6 +8,7 @@
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.WIRED_KEYS = exports.FIXED_KEYS = exports.DYNAMIC_KEYS = exports.MAX_DEFAULT_STRING_LENGTH = exports.MAX_DEFAULT_OBJECT_SIZE = exports.MAX_DEFAULT_ARRAY_LENGTH = void 0;
10
10
  exports.classifyArgument = classifyArgument;
11
+ exports.isArrayWiredFromPriorStep = isArrayWiredFromPriorStep;
11
12
  exports.humanize = humanize;
12
13
  exports.inferType = inferType;
13
14
  exports.capDefault = capDefault;
@@ -64,15 +65,11 @@ function classifyArgument(key, value, _context) {
64
65
  return 'dynamic';
65
66
  }
66
67
  }
67
- // Arrays: complex instruction arrays (like browser steps) are fixed implementation details.
68
- // Only flat data arrays (URLs, IDs) that are large should be dynamic.
68
+ // Arrays of objects are always fixed (structured implementation details)
69
+ // or wired (from a prior step's output). Never user-provided dynamic inputs.
69
70
  if (Array.isArray(value)) {
70
71
  if (value.length > 0 && value[0] && typeof value[0] === 'object' && !Array.isArray(value[0])) {
71
- // Array of objects — check if it's an instruction array (has 'action', 'step', 'type' keys)
72
- const firstItem = value[0];
73
- if ('action' in firstItem || 'step' in firstItem || 'type' in firstItem) {
74
- return 'fixed'; // Implementation recipe — not user input
75
- }
72
+ return 'fixed';
76
73
  }
77
74
  if (value.length > exports.MAX_DEFAULT_ARRAY_LENGTH) {
78
75
  return 'dynamic';
@@ -99,6 +96,38 @@ function objectContainsDynamicKeys(obj) {
99
96
  }
100
97
  return false;
101
98
  }
99
+ /**
100
+ * Check if an array argument was likely produced by a prior step's result.
101
+ * Compares the item keys of the argument array against result arrays from prior steps.
102
+ */
103
+ function isArrayWiredFromPriorStep(value, priorSteps) {
104
+ if (value.length === 0 || !value[0] || typeof value[0] !== 'object')
105
+ return false;
106
+ const argKeys = new Set(Object.keys(value[0]));
107
+ if (argKeys.size === 0)
108
+ return false;
109
+ for (const step of priorSteps) {
110
+ if (!step.result || typeof step.result !== 'object')
111
+ continue;
112
+ const result = step.result;
113
+ for (const field of Object.values(result)) {
114
+ if (!Array.isArray(field) || field.length === 0)
115
+ continue;
116
+ const first = field[0];
117
+ if (!first || typeof first !== 'object')
118
+ continue;
119
+ const resultKeys = new Set(Object.keys(first));
120
+ // If the result array items share keys with the argument array items, it's wired
121
+ let overlap = 0;
122
+ for (const k of argKeys)
123
+ if (resultKeys.has(k))
124
+ overlap++;
125
+ if (overlap >= 2 || (overlap >= 1 && argKeys.size <= 3))
126
+ return true;
127
+ }
128
+ }
129
+ return false;
130
+ }
102
131
  /** Convert a snake_case/camelCase field name to a readable description. */
103
132
  function humanize(name) {
104
133
  return name
@@ -37,6 +37,10 @@ function extractSemanticInputs(steps, originalPrompt) {
37
37
  // First occurrence wins
38
38
  if (seen.has(key))
39
39
  continue;
40
+ // Arrays of objects that match a prior step's result are wired, not inputs
41
+ if (Array.isArray(value) && (0, input_analyzer_helpers_1.isArrayWiredFromPriorStep)(value, steps.slice(0, i))) {
42
+ continue;
43
+ }
40
44
  const classification = (0, input_analyzer_helpers_1.classifyArgument)(key, value, {
41
45
  stepIndex: i,
42
46
  toolName: step.toolName,
@@ -44,10 +48,19 @@ function extractSemanticInputs(steps, originalPrompt) {
44
48
  // Skip wired arguments — they come from step chaining
45
49
  if (classification === 'wired')
46
50
  continue;
47
- // Flatten nested objects that contain dynamic keys.
48
- // e.g., login: { url, username, password } login_url, username, password
51
+ // Flatten nested objects that contain dynamic keys — but only if the
52
+ // dynamic children aren't already captured as top-level args from an
53
+ // earlier step. If all dynamic children are already seen, treat the
54
+ // whole object as fixed (structured implementation detail).
49
55
  if (classification === 'dynamic' && value && typeof value === 'object' && !Array.isArray(value)) {
50
- (0, input_analyzer_helpers_1.flattenDynamicObject)(key, value, i, step.toolName, originalPrompt, seen);
56
+ const obj = value;
57
+ const dynamicChildren = Object.keys(obj).filter((k) => (0, input_analyzer_helpers_1.classifyArgument)(k, obj[k], { stepIndex: i, toolName: step.toolName }) === 'dynamic');
58
+ const allDynamicAlreadySeen = dynamicChildren.length > 0 && dynamicChildren.every((k) => seen.has(k));
59
+ if (allDynamicAlreadySeen) {
60
+ // All dynamic values are already captured — treat as fixed, don't flatten
61
+ continue;
62
+ }
63
+ (0, input_analyzer_helpers_1.flattenDynamicObject)(key, obj, i, step.toolName, originalPrompt, seen);
51
64
  continue;
52
65
  }
53
66
  let description = (0, input_analyzer_helpers_1.humanize)(key);
@@ -54,7 +54,7 @@ async function analyze(ctx) {
54
54
  const consecutiveSameServer = ctx.collapsedSteps.filter((s, i) => s.kind === 'tool' && s.mcpServerId &&
55
55
  i > 0 && ctx.collapsedSteps[i - 1].mcpServerId === s.mcpServerId);
56
56
  if (consecutiveSameServer.length > 0) {
57
- const { loggerRegistry } = await Promise.resolve().then(() => __importStar(require('../../logger')));
57
+ const { loggerRegistry } = await Promise.resolve().then(() => __importStar(require('../../../lib/logger')));
58
58
  const serverIds = [...new Set(consecutiveSameServer.map(s => s.mcpServerId))];
59
59
  loggerRegistry.info(`[yaml-workflow] hint: ${consecutiveSameServer.length + 1} consecutive same-server steps detected (${serverIds.join(', ')}) — pattern detector may collapse these`);
60
60
  }
@@ -222,12 +222,17 @@ function extractOutputFields(step) {
222
222
  return [];
223
223
  }
224
224
  function buildJobMaps(stepIdx, totalSteps, outputFields) {
225
- if (stepIdx !== totalSteps - 1 || outputFields.length === 0)
225
+ if (stepIdx !== totalSteps - 1)
226
226
  return undefined;
227
- return outputFields.reduce((acc, field) => {
228
- acc[field] = `{$self.output.data.${field}}`;
229
- return acc;
230
- }, {});
227
+ if (outputFields.length > 0) {
228
+ return outputFields.reduce((acc, field) => {
229
+ acc[field] = `{$self.output.data.${field}}`;
230
+ return acc;
231
+ }, {});
232
+ }
233
+ // Final step with no structured output fields (e.g., string result) —
234
+ // persist the raw response so the workflow result isn't null
235
+ return { response: '{$self.output.data.response}' };
231
236
  }
232
237
  function buildManifestEntry(actId, title, step, topic, workflowName, inputMappings, outputFields) {
233
238
  const promptTemplate = step.kind === 'llm' && step.promptMessages
@@ -146,7 +146,7 @@ async function callCompilationLLM(steps, originalPrompt, naiveInputs, patternAnn
146
146
  return (0, parse_plan_1.parsePlan)(raw, steps.length);
147
147
  }
148
148
  catch (err) {
149
- const { loggerRegistry } = await Promise.resolve().then(() => __importStar(require('../../../logger')));
149
+ const { loggerRegistry } = await Promise.resolve().then(() => __importStar(require('../../../../lib/logger')));
150
150
  loggerRegistry.warn(`[yaml-workflow] LLM compilation failed, using mechanical fallback: ${err}`);
151
151
  return null;
152
152
  }
@@ -108,8 +108,10 @@ function extractStepSequence(events) {
108
108
  const actualArgs = (0, extract_helpers_1.extractToolArgs)(attrs);
109
109
  const args = Object.keys(actualArgs).length > 0 ? actualArgs : pendingLlmCall.arguments;
110
110
  const result = attrs.result;
111
- // Skip failed steps
112
- if (result && (result.error || result.code === 'TIMEOUT')) {
111
+ // Skip failed steps — detect both object errors and string error messages
112
+ // (e.g., Playwright timeout errors return as plain error strings)
113
+ if (result && ((typeof result === 'object' && (result.error || result.code === 'TIMEOUT')) ||
114
+ (typeof result === 'string' && /error|timeout|failed|ECONNREFUSED/i.test(result)))) {
113
115
  pendingLlmCall = pendingQueue.shift() || null;
114
116
  continue;
115
117
  }
@@ -122,7 +124,7 @@ function extractStepSequence(events) {
122
124
  mcpServerId: serverSlug,
123
125
  });
124
126
  // Detect escalate_and_wait → waitFor pattern: emit a signal step
125
- if (result?.type === 'waitFor' && result?.signalId) {
127
+ if (typeof result === 'object' && result?.type === 'waitFor' && result?.signalId) {
126
128
  const signalId = result.signalId;
127
129
  const signalData = signaledEvents.get(signalId) || {};
128
130
  const formSchema = args.form_schema;
@@ -0,0 +1,5 @@
1
+ export { analyze } from './analyze';
2
+ export { extract, extractStepSequence, resolveServerIds } from './extract';
3
+ export { validate } from './validate';
4
+ export { parseMcpActivityType, extractToolArgs, extractLlmMessages, buildDefaultPrompt, } from './extract-helpers';
5
+ export { COMPILATION_PROMPT, buildRecompilationHint, VALIDATION_PROMPT, EXTRACT_DEFAULT_SYSTEM_PROMPT, EXTRACT_DEFAULT_USER_TEMPLATE, } from './prompts';
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EXTRACT_DEFAULT_USER_TEMPLATE = exports.EXTRACT_DEFAULT_SYSTEM_PROMPT = exports.VALIDATION_PROMPT = exports.buildRecompilationHint = exports.COMPILATION_PROMPT = exports.buildDefaultPrompt = exports.extractLlmMessages = exports.extractToolArgs = exports.parseMcpActivityType = exports.validate = exports.resolveServerIds = exports.extractStepSequence = exports.extract = exports.analyze = void 0;
4
+ var analyze_1 = require("./analyze");
5
+ Object.defineProperty(exports, "analyze", { enumerable: true, get: function () { return analyze_1.analyze; } });
6
+ var extract_1 = require("./extract");
7
+ Object.defineProperty(exports, "extract", { enumerable: true, get: function () { return extract_1.extract; } });
8
+ Object.defineProperty(exports, "extractStepSequence", { enumerable: true, get: function () { return extract_1.extractStepSequence; } });
9
+ Object.defineProperty(exports, "resolveServerIds", { enumerable: true, get: function () { return extract_1.resolveServerIds; } });
10
+ var validate_1 = require("./validate");
11
+ Object.defineProperty(exports, "validate", { enumerable: true, get: function () { return validate_1.validate; } });
12
+ var extract_helpers_1 = require("./extract-helpers");
13
+ Object.defineProperty(exports, "parseMcpActivityType", { enumerable: true, get: function () { return extract_helpers_1.parseMcpActivityType; } });
14
+ Object.defineProperty(exports, "extractToolArgs", { enumerable: true, get: function () { return extract_helpers_1.extractToolArgs; } });
15
+ Object.defineProperty(exports, "extractLlmMessages", { enumerable: true, get: function () { return extract_helpers_1.extractLlmMessages; } });
16
+ Object.defineProperty(exports, "buildDefaultPrompt", { enumerable: true, get: function () { return extract_helpers_1.buildDefaultPrompt; } });
17
+ var prompts_1 = require("./prompts");
18
+ Object.defineProperty(exports, "COMPILATION_PROMPT", { enumerable: true, get: function () { return prompts_1.COMPILATION_PROMPT; } });
19
+ Object.defineProperty(exports, "buildRecompilationHint", { enumerable: true, get: function () { return prompts_1.buildRecompilationHint; } });
20
+ Object.defineProperty(exports, "VALIDATION_PROMPT", { enumerable: true, get: function () { return prompts_1.VALIDATION_PROMPT; } });
21
+ Object.defineProperty(exports, "EXTRACT_DEFAULT_SYSTEM_PROMPT", { enumerable: true, get: function () { return prompts_1.EXTRACT_DEFAULT_SYSTEM_PROMPT; } });
22
+ Object.defineProperty(exports, "EXTRACT_DEFAULT_USER_TEMPLATE", { enumerable: true, get: function () { return prompts_1.EXTRACT_DEFAULT_USER_TEMPLATE; } });
@@ -99,12 +99,12 @@ async function validate(ctx) {
99
99
  const parsed = JSON.parse(cleaned);
100
100
  if (Array.isArray(parsed.issues) && parsed.issues.length > 0) {
101
101
  ctx.validationIssues = parsed.issues;
102
- const { loggerRegistry } = await Promise.resolve().then(() => __importStar(require('../../logger')));
102
+ const { loggerRegistry } = await Promise.resolve().then(() => __importStar(require('../../../lib/logger')));
103
103
  loggerRegistry.warn(`[yaml-workflow] Validation issues found: ${parsed.issues.join('; ')}`);
104
104
  }
105
105
  }
106
106
  catch (err) {
107
- const { loggerRegistry } = await Promise.resolve().then(() => __importStar(require('../../logger')));
107
+ const { loggerRegistry } = await Promise.resolve().then(() => __importStar(require('../../../lib/logger')));
108
108
  loggerRegistry.info(`[yaml-workflow] Validation skipped: ${err}`);
109
109
  }
110
110
  return ctx;
@@ -4,7 +4,7 @@ exports.compactForLlm = compactForLlm;
4
4
  exports.buildLlmCallback = buildLlmCallback;
5
5
  exports.buildTransformCallback = buildTransformCallback;
6
6
  const defaults_1 = require("../../../modules/defaults");
7
- const logger_1 = require("../../logger");
7
+ const logger_1 = require("../../../lib/logger");
8
8
  const llm_1 = require("../../llm");
9
9
  /** Call the LLM with messages and optional format options. */
10
10
  async function callWorkerLLM(messages, options) {
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.wrapWithEvents = wrapWithEvents;
4
- const logger_1 = require("../../logger");
5
- const publish_1 = require("../../events/publish");
4
+ const logger_1 = require("../../../lib/logger");
5
+ const publish_1 = require("../../../lib/events/publish");
6
6
  /**
7
7
  * Wrap a worker callback with activity lifecycle event publishing.
8
8
  * Publishes activity.started before and activity.completed/failed after.
@@ -36,9 +36,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.registerWorkersForWorkflow = registerWorkersForWorkflow;
37
37
  exports.registerAllActiveWorkers = registerAllActiveWorkers;
38
38
  const hotmesh_1 = require("@hotmeshio/hotmesh");
39
- const pg_1 = require("pg");
40
- const config_1 = require("../../../modules/config");
41
- const logger_1 = require("../../logger");
39
+ const db_1 = require("../../../lib/db");
40
+ const logger_1 = require("../../../lib/logger");
42
41
  const ephemeral_1 = require("../../iam/ephemeral");
43
42
  const mcpClient = __importStar(require("../../mcp/client"));
44
43
  const yamlDb = __importStar(require("../db"));
@@ -94,7 +93,7 @@ async function registerWorkersForWorkflow(workflow) {
94
93
  workerConfigs.push({
95
94
  topic: activity.topic,
96
95
  workflowName: activity.workflow_name,
97
- connection: { class: pg_1.Client, options: config_1.postgres_options },
96
+ connection: (0, db_1.getConnection)(),
98
97
  callback: wrap((0, callbacks_1.buildTransformCallback)(activity)),
99
98
  });
100
99
  }
@@ -103,7 +102,7 @@ async function registerWorkersForWorkflow(workflow) {
103
102
  workerConfigs.push({
104
103
  topic: activity.topic,
105
104
  workflowName: activity.workflow_name,
106
- connection: { class: pg_1.Client, options: config_1.postgres_options },
105
+ connection: (0, db_1.getConnection)(),
107
106
  callback: wrap((0, callbacks_1.buildLlmCallback)(activity)),
108
107
  });
109
108
  }
@@ -116,7 +115,7 @@ async function registerWorkersForWorkflow(workflow) {
116
115
  workerConfigs.push({
117
116
  topic: activity.topic,
118
117
  workflowName: activity.workflow_name,
119
- connection: { class: pg_1.Client, options: config_1.postgres_options },
118
+ connection: (0, db_1.getConnection)(),
120
119
  callback: wrap(async (data) => {
121
120
  const args = (data.data || {});
122
121
  let mergedArgs = toolArgs ? { ...toolArgs, ...args } : args;
@@ -143,7 +142,7 @@ async function registerWorkersForWorkflow(workflow) {
143
142
  workerConfigs.push({
144
143
  topic: activity.topic,
145
144
  workflowName: activity.workflow_name,
146
- connection: { class: pg_1.Client, options: config_1.postgres_options },
145
+ connection: (0, db_1.getConnection)(),
147
146
  callback: wrap(async (data) => {
148
147
  const args = (data.data || {});
149
148
  const mergedArgs = storedArgs ? { ...storedArgs } : {};
@@ -184,8 +183,9 @@ async function registerWorkersForWorkflow(workflow) {
184
183
  return;
185
184
  await hotmesh_1.HotMesh.init({
186
185
  appId: workflow.app_id,
186
+ guid: `compiled::${workflow.graph_topic}-${hotmesh_1.HotMesh.guid()}`,
187
187
  engine: {
188
- connection: { class: pg_1.Client, options: config_1.postgres_options },
188
+ connection: (0, db_1.getConnection)(),
189
189
  },
190
190
  workers: workerConfigs,
191
191
  });
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.registerAdapters = registerAdapters;
4
- const logger_1 = require("../services/logger");
5
- const pino_1 = require("../services/logger/pino");
6
- const telemetry_1 = require("../services/telemetry");
7
- const honeycomb_1 = require("../services/telemetry/honeycomb");
8
- const events_1 = require("../services/events");
9
- const nats_1 = require("../services/events/nats");
10
- const socketio_1 = require("../services/events/socketio");
4
+ const logger_1 = require("../lib/logger");
5
+ const pino_1 = require("../lib/logger/pino");
6
+ const telemetry_1 = require("../lib/telemetry");
7
+ const honeycomb_1 = require("../lib/telemetry/honeycomb");
8
+ const events_1 = require("../lib/events");
9
+ const nats_1 = require("../lib/events/nats");
10
+ const socketio_1 = require("../lib/events/socketio");
11
11
  const maintenance_1 = require("../services/maintenance");
12
12
  const maintenance_2 = require("../modules/maintenance");
13
13
  const mcp_1 = require("../services/mcp");
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.start = start;
4
4
  const hotmesh_1 = require("@hotmeshio/hotmesh");
5
- const logger_1 = require("../services/logger");
6
- const telemetry_1 = require("../services/telemetry");
7
- const events_1 = require("../services/events");
5
+ const logger_1 = require("../lib/logger");
6
+ const telemetry_1 = require("../lib/telemetry");
7
+ const events_1 = require("../lib/events");
8
8
  const maintenance_1 = require("../services/maintenance");
9
9
  const cron_1 = require("../services/cron");
10
10
  const mcp_1 = require("../services/mcp");
@@ -13,7 +13,7 @@ const config_1 = require("./config");
13
13
  const adapters_1 = require("./adapters");
14
14
  const workers_1 = require("./workers");
15
15
  const server_1 = require("./server");
16
- const socketio_1 = require("../services/events/socketio");
16
+ const socketio_1 = require("../lib/events/socketio");
17
17
  /**
18
18
  * Start Long Tail with a declarative configuration.
19
19
  *
@@ -8,7 +8,7 @@ const fs_1 = require("fs");
8
8
  const path_1 = __importDefault(require("path"));
9
9
  const express_1 = __importDefault(require("express"));
10
10
  const config_1 = require("../modules/config");
11
- const logger_1 = require("../services/logger");
11
+ const logger_1 = require("../lib/logger");
12
12
  const routes_1 = __importDefault(require("../routes"));
13
13
  /**
14
14
  * Create and start the embedded Express server with health check,